From 54e872312ba74144abad82a08d4b931c37a735e5 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Tue, 3 Mar 2026 02:33:23 +0000 Subject: [PATCH 1/2] ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.739.0 --- .devcontainer/README.md | 5 + .npmignore | 6 +- .speakeasy/gen.lock | 72 ++-- .speakeasy/gen.yaml | 14 +- .speakeasy/workflow.lock | 12 +- README.md | 18 +- RELEASES.md | 11 + examples/package-lock.json | 8 +- jsr.json | 2 +- package-lock.json | 824 +++++++++++++------------------------ package.json | 12 +- src/hooks/hooks.ts | 3 - src/lib/config.ts | 6 +- src/lib/matchers.ts | 5 +- src/lib/sdks.ts | 4 +- src/lib/security.ts | 3 +- src/types/smartUnion.ts | 8 + tsconfig.json | 3 +- 18 files changed, 406 insertions(+), 610 deletions(-) create mode 100644 RELEASES.md diff --git a/.devcontainer/README.md b/.devcontainer/README.md index cdef18c..24de35b 100644 --- a/.devcontainer/README.md +++ b/.devcontainer/README.md @@ -1,4 +1,9 @@ +
+ +
+
+ > **Remember to shutdown a GitHub Codespace when it is not in use!** # Dev Containers Quick Start diff --git a/.npmignore b/.npmignore index cf98a6b..670ac0a 100644 --- a/.npmignore +++ b/.npmignore @@ -5,10 +5,14 @@ !/**/*.ts !/**/*.js !/**/*.mjs -!/**/*.json +!/package.json +!/jsr.json +!/dist/**/*.json +!/esm/**/*.json !/**/*.map /eslint.config.mjs +/.oxlintrc.json /cjs /.tshy /.tshy-* diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index cf467a0..671c642 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -3,38 +3,40 @@ id: bb9fbe39-0cc0-477c-83ed-4287efb73030 management: docChecksum: cbdbb55b781de735d194bd761a125aeb docVersion: 1.0.0 - speakeasyVersion: 1.680.3 - generationVersion: 2.788.5 - releaseVersion: 0.1.3 - configChecksum: 303b383000c4e13c9eb1b790381dffa0 + speakeasyVersion: 1.739.0 + generationVersion: 2.846.1 + releaseVersion: 0.2.0 + configChecksum: 4541fcac0749a7e5f0f4bb0616f12395 + repoURL: https://github.com/WaveShieldDev/waveshield-sdk-typescript.git + installationURL: https://github.com/WaveShieldDev/waveshield-sdk-typescript published: true persistentEdits: - generation_id: dafb8776-49d1-498f-9203-bd545e3dcb54 - pristine_commit_hash: 5ee899f3270e988c66dd54438ab32f6af9262f00 - pristine_tree_hash: 322c6ebfe48cb9d159f5dabacfe558e22c45a235 + generation_id: e41c1509-778b-457e-9142-8a43f6530bbd + pristine_commit_hash: 335c33283409b288d18047a0f86bab77cf20a361 + pristine_tree_hash: ccc6d86829887ccb4545062e9a14b1c9774696bf features: typescript: additionalDependencies: 0.1.0 - constsAndDefaults: 0.1.12 - core: 3.26.16 + constsAndDefaults: 0.1.14 + core: 3.26.40 defaultEnabledRetries: 0.1.0 devContainers: 2.90.1 enumUnions: 0.1.0 envVarSecurityUsage: 0.1.2 - globalSecurity: 2.82.14 + globalSecurity: 2.82.15 globalSecurityCallbacks: 0.1.0 - globalServerURLs: 2.83.0 + globalServerURLs: 2.83.1 methodArguments: 0.1.2 - nameOverrides: 2.81.2 + nameOverrides: 2.81.4 nullables: 0.1.1 - responseFormat: 0.2.3 + responseFormat: 0.3.0 retries: 2.83.0 sdkHooks: 0.4.0 trackedFiles: .devcontainer/README.md: id: b170c0f184ac - last_write_checksum: sha1:b6564d2a7c8ae764fff6d1b4666dcd787210a000 - pristine_git_object: cdef18c30e383534a868742e1b9148f2670606f9 + last_write_checksum: sha1:667cae9c93d407d906714e48ec0febb8d59b2190 + pristine_git_object: 24de35b7489d0890a9545cb5c0202635e13fd74b .devcontainer/devcontainer.json: id: b34062a34eb1 last_write_checksum: sha1:d0b15193202c961e7d1875864ddb15f9d17c84dd @@ -49,8 +51,8 @@ trackedFiles: pristine_git_object: 113eead5093c17d43a46159132885318f281a68a .npmignore: id: aa70c1f807c3 - last_write_checksum: sha1:3d5eb92f81539175db1ff0280e0aefbdd701f200 - pristine_git_object: cf98a6bf092538eb10ff0edc915102682ce9a6e6 + last_write_checksum: sha1:6572da81f2e7a978ec29c22c2210bf461c5897b2 + pristine_git_object: 670ac0a62d7e568c9d44a14f5deafb8442a255d8 FUNCTIONS.md: id: 21b9df02aaeb last_write_checksum: sha1:fb7bd26c478c98bc4e7c899f86d7bfcaab90d4d4 @@ -621,12 +623,12 @@ trackedFiles: pristine_git_object: 68d3ec3935f19be0925166a2932fa2eea594e8aa jsr.json: id: 7f6ab7767282 - last_write_checksum: sha1:7ba0bcca5e9b667f90d53e0e1011e2983ba9f142 - pristine_git_object: 0be6c8d07ed9db40567193761408517413b15688 + last_write_checksum: sha1:f41299ac2863e4d06205a75a4399f75891bb6ef5 + pristine_git_object: 8275cea99043700fae1eca7e6c18cc9eeaa05c33 package.json: id: 7030d0b2f71b - last_write_checksum: sha1:89848460ca21382d1f9ac907b8526873dd31a30e - pristine_git_object: a1f8779fcd95fe7a9f3d309a5d7491a2ccb60a08 + last_write_checksum: sha1:f4bf6986bd44b14f1d061264c4d7d92abd991ddc + pristine_git_object: 7550c15f84756a67e2f080fd14ee56abd14fa9d3 src/core.ts: id: f431fdbcd144 last_write_checksum: sha1:c9afa55f684e53734a7a103bcd1c4f2ece9ec0b7 @@ -785,8 +787,8 @@ trackedFiles: pristine_git_object: 6078490b881a9600d20ca51000a2ab754a3e1bc6 src/hooks/hooks.ts: id: a2463fc6f69b - last_write_checksum: sha1:7dd975bbcc46a32dd394f86a4652b74ecc70d874 - pristine_git_object: 7ed9e0445ac189e0f90687c6ef602212702bde90 + last_write_checksum: sha1:3a90d88b4c6c07247db8e5f6441a79538232394e + pristine_git_object: 94ad0a323123b34dc638717c5d67a3c23c54d5c6 src/hooks/index.ts: id: 5f2dab62b520 last_write_checksum: sha1:1a11c073a6cd792932218e1d4ed36b8567bad8ef @@ -805,8 +807,8 @@ trackedFiles: pristine_git_object: 44be0eae8246521b230e8e711a88eff738fc015d src/lib/config.ts: id: 320761608fb3 - last_write_checksum: sha1:c02d3f05d61610ba4bfc4726fe6f293ec30e0cac - pristine_git_object: 2d455d61317a9b2ca66b72d52b9be35c5e237faa + last_write_checksum: sha1:4b2c00413fbb1ba333a7d944d265985d9cc7232a + pristine_git_object: 7d2b5ff5f5f028e52fc7c4bcf6f039c1cb380c0f src/lib/dlv.ts: id: b1988214835a last_write_checksum: sha1:1dd3e3fbb4550c4bf31f5ef997faff355d6f3250 @@ -837,8 +839,8 @@ trackedFiles: pristine_git_object: d181f2937d4128afbe9b0327e0f81d1fa9c877b7 src/lib/matchers.ts: id: d54b2253b719 - last_write_checksum: sha1:981701ec24c8df7014827a6e277b29af0bf6bcd0 - pristine_git_object: f533f21b45943d078ecedee5be2ab32b3afc0cd2 + last_write_checksum: sha1:f9bf856feec20188bfe3fabe73f9b5caaa4dc4c0 + pristine_git_object: f3015720f7fcc85ba8eb0f3638c3ed549ec65ef1 src/lib/primitives.ts: id: 74859f750b28 last_write_checksum: sha1:987869fc54790b9c22e9182099103d6aa7c67016 @@ -853,12 +855,12 @@ trackedFiles: pristine_git_object: 61d7649b3d804f5c3ce4b2e3f7cc7ab8d087c4e1 src/lib/sdks.ts: id: 8a6d91f1218d - last_write_checksum: sha1:9716dfab1669821b30b725196422faaefb53bb49 - pristine_git_object: 698f95540a5cc9ffe4b2f96a0a582cc41c33c690 + last_write_checksum: sha1:0489fcda80da9efa9394787210effa7609ac298e + pristine_git_object: 390cfdeb01c1acc45660563c88af93068998722d src/lib/security.ts: id: 0502afa7922e - last_write_checksum: sha1:c6f389b8b83c310eb72bc1341baa1d3ee391b1b9 - pristine_git_object: 3ca46cb2367bbb8686b834c7924d03d8b26ed085 + last_write_checksum: sha1:51545b06b6f6b922755aee1a704c0f9493d19a18 + pristine_git_object: 1d8465666381fc84c61beb70077e22caf1afcade src/lib/url.ts: id: b0057e24ed76 last_write_checksum: sha1:d124050c7e755c0cce233b9e029afb584ff65201 @@ -1149,8 +1151,8 @@ trackedFiles: pristine_git_object: c79b3f53a3dd922aa2ace5a4191c8652cf9a8e89 src/types/smartUnion.ts: id: b65a1bd4c0e9 - last_write_checksum: sha1:d6c9754e1231a36cffe46c384849be413d5e2a72 - pristine_git_object: 266e39ba2e58c1b8eba39834612ca34c36e186a8 + last_write_checksum: sha1:aa3829a12a514b6c9a8ae76aab95086d7ccbc30f + pristine_git_object: 1eabf9aa2e6dd5052f2a337279b6ba0452122958 src/types/streams.ts: id: f99be9c4bf14 last_write_checksum: sha1:cc9ced2dd34a76c3a1bd7784ccda1cc3b37ab9a9 @@ -1161,8 +1163,8 @@ trackedFiles: pristine_git_object: b7a2a13f3dff50663429df24ae2f55b647ff1084 tsconfig.json: id: 61ebb9fd6e8c - last_write_checksum: sha1:c3ec7996536cdb9a54319e7d1eb3b199b733d34c - pristine_git_object: 0ccdbe286a8780e06a469a9eb7e2fb95322fd507 + last_write_checksum: sha1:79dc1550d921fefec69f8632ed3b24dad41ca2f6 + pristine_git_object: 76110f883cac40bb04fb2f376cd69ea8c8d6d215 examples: post_/v1/auth/verify: speakeasy-default-post-/v1-/auth/verify: diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 917b8da..d97b5b4 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -16,22 +16,25 @@ generation: requestResponseComponentNamesFeb2024: true securityFeb2025: true sharedErrorComponentsApr2025: true + sharedNestedComponentsJan2026: false + nameOverrideFeb2026: false auth: - oAuth2ClientCredentialsEnabled: true - oAuth2PasswordEnabled: true + oAuth2ClientCredentialsEnabled: false + oAuth2PasswordEnabled: false hoistGlobalSecurity: true inferSSEOverload: true sdkHooksConfigAccess: true schemas: allOfMergeStrategy: shallowMerge requestBodyFieldName: body + versioningStrategy: automatic persistentEdits: {} tests: generateTests: false generateNewTests: true skipResponseBodyAssertions: false typescript: - version: 0.1.3 + version: 0.2.0 acceptHeaderEnum: false additionalDependencies: dependencies: {} @@ -51,6 +54,7 @@ typescript: enumFormat: union envVarPrefix: WAVESHIELD exportZodModelNamespace: false + flatAdditionalProperties: false flattenGlobalSecurity: true flatteningOrder: parameters-first formStringArrayEncodeMode: array @@ -69,6 +73,7 @@ typescript: inputModelSuffix: input jsonpath: rfc9535 laxMode: lax + legacyFileNaming: true maxMethodParams: 0 methodArguments: infer-optional-args modelPropertyCasing: camel @@ -77,10 +82,13 @@ typescript: outputModelSuffix: output packageName: waveshield preApplyUnionDiscriminators: true + preserveModelFieldNames: false responseFormat: flat sseFlatResponse: false templateVersion: v2 unionStrategy: populated-fields usageSDKInitImports: [] useIndexModules: true + useOxlint: false + useTsgo: false zodVersion: v4-mini diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 3044c96..6531350 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,9 +1,9 @@ -speakeasyVersion: 1.680.3 +speakeasyVersion: 1.739.0 sources: WaveShield API: sourceNamespace: wave-shield-api - sourceRevisionDigest: sha256:1a52ea5c2d3808d09db6786a0eef0b363d7007d02083551a4cd3fc1990868a19 - sourceBlobDigest: sha256:5e4220899ecf4ec9d9f3e80bb13d139c5b71386d0ab9c1d5b2b5b38b406ba572 + sourceRevisionDigest: sha256:6f8c0949d81930f4091b84b8700c784595000be39c3d27fdc21f2bd416451b60 + sourceBlobDigest: sha256:8245e990802889d893fe64f99f5c56f54fe50534768bf82ac80e9d64618ed33f tags: - latest - 1.0.0 @@ -11,10 +11,10 @@ targets: wave-shield: source: WaveShield API sourceNamespace: wave-shield-api - sourceRevisionDigest: sha256:1a52ea5c2d3808d09db6786a0eef0b363d7007d02083551a4cd3fc1990868a19 - sourceBlobDigest: sha256:5e4220899ecf4ec9d9f3e80bb13d139c5b71386d0ab9c1d5b2b5b38b406ba572 + sourceRevisionDigest: sha256:6f8c0949d81930f4091b84b8700c784595000be39c3d27fdc21f2bd416451b60 + sourceBlobDigest: sha256:8245e990802889d893fe64f99f5c56f54fe50534768bf82ac80e9d64618ed33f codeSamplesNamespace: wave-shield-api-typescript-code-samples - codeSamplesRevisionDigest: sha256:d4e9344a86ab5aa47969ea3cb05e66f910e8d0090d9ad1ab43a7012e0b94f489 + codeSamplesRevisionDigest: sha256:0bc30aeef58881e42ad00d1f0ed7ac4ec78e1cc0b09c175bc72328e810474a39 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/README.md b/README.md index da0b0a9..177a18a 100644 --- a/README.md +++ b/README.md @@ -448,19 +448,23 @@ The `HTTPClient` constructor takes an optional `fetcher` argument that can be used to integrate a third-party HTTP client or when writing tests to mock out the HTTP client and feed in fixtures. -The following example shows how to use the `"beforeRequest"` hook to to add a -custom header and a timeout to requests and how to use the `"requestError"` hook -to log errors: +The following example shows how to: +- route requests through a proxy server using [undici](https://www.npmjs.com/package/undici)'s ProxyAgent +- use the `"beforeRequest"` hook to add a custom header and a timeout to requests +- use the `"requestError"` hook to log errors ```typescript import { WaveShield } from "waveshield"; +import { ProxyAgent } from "undici"; import { HTTPClient } from "waveshield/lib/http"; +const dispatcher = new ProxyAgent("http://proxy.example.com:8080"); + const httpClient = new HTTPClient({ - // fetcher takes a function that has the same signature as native `fetch`. - fetcher: (request) => { - return fetch(request); - } + // 'fetcher' takes a function that has the same signature as native 'fetch'. + fetcher: (input, init) => + // 'dispatcher' is specific to undici and not part of the standard Fetch API. + fetch(input, { ...init, dispatcher } as RequestInit), }); httpClient.addHook("beforeRequest", (request) => { diff --git a/RELEASES.md b/RELEASES.md new file mode 100644 index 0000000..abe17c3 --- /dev/null +++ b/RELEASES.md @@ -0,0 +1,11 @@ + + +## 2026-03-03 02:32:29 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.739.0 (2.846.1) https://github.com/speakeasy-api/speakeasy +### Generated +- [typescript v0.2.0] . +### Releases +- [NPM v0.2.0] https://www.npmjs.com/package/waveshield/v/0.2.0 - . \ No newline at end of file diff --git a/examples/package-lock.json b/examples/package-lock.json index aed8f3d..16414df 100644 --- a/examples/package-lock.json +++ b/examples/package-lock.json @@ -18,15 +18,15 @@ }, "..": { "name": "waveshield", - "version": "0.1.3", + "version": "0.2.0", "dependencies": { "zod": "^3.25.65 || ^4.0.0" }, "devDependencies": { - "@eslint/js": "^9.19.0", - "eslint": "^9.19.0", + "@eslint/js": "^9.26.0", + "eslint": "^9.26.0", "globals": "^15.14.0", - "tshy": "^2.0.0", + "tshy": "^3.3.2", "typescript": "~5.8.3", "typescript-eslint": "^8.26.0" } diff --git a/jsr.json b/jsr.json index 0be6c8d..8275cea 100644 --- a/jsr.json +++ b/jsr.json @@ -2,7 +2,7 @@ { "name": "waveshield", - "version": "0.1.3", + "version": "0.2.0", "exports": { ".": "./src/index.ts", "./models/errors": "./src/models/errors/index.ts", diff --git a/package-lock.json b/package-lock.json index cca5c1d..96bc603 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,20 +1,20 @@ { "name": "waveshield", - "version": "0.1.3", + "version": "0.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "waveshield", - "version": "0.1.3", + "version": "0.2.0", "dependencies": { "zod": "^3.25.65 || ^4.0.0" }, "devDependencies": { - "@eslint/js": "^9.19.0", - "eslint": "^9.19.0", + "@eslint/js": "^9.26.0", + "eslint": "^9.26.0", "globals": "^15.14.0", - "tshy": "^2.0.0", + "tshy": "^3.3.2", "typescript": "~5.8.3", "typescript-eslint": "^8.26.0" } @@ -228,35 +228,6 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, "node_modules/@types/estree": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", @@ -527,6 +498,123 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript/native-preview": { + "version": "7.0.0-dev.20260302.1", + "resolved": "https://registry.npmjs.org/@typescript/native-preview/-/native-preview-7.0.0-dev.20260302.1.tgz", + "integrity": "sha512-KR2mM+hGSF9CcYRFLe/8jAFuRr0Ao3vJDnfGtEoSSpgfw0kCZTMv8fyBc5Vicrg/ByZSwGhZf7Q8HDc5lPYLGg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsgo": "bin/tsgo.js" + }, + "optionalDependencies": { + "@typescript/native-preview-darwin-arm64": "7.0.0-dev.20260302.1", + "@typescript/native-preview-darwin-x64": "7.0.0-dev.20260302.1", + "@typescript/native-preview-linux-arm": "7.0.0-dev.20260302.1", + "@typescript/native-preview-linux-arm64": "7.0.0-dev.20260302.1", + "@typescript/native-preview-linux-x64": "7.0.0-dev.20260302.1", + "@typescript/native-preview-win32-arm64": "7.0.0-dev.20260302.1", + "@typescript/native-preview-win32-x64": "7.0.0-dev.20260302.1" + } + }, + "node_modules/@typescript/native-preview-darwin-arm64": { + "version": "7.0.0-dev.20260302.1", + "resolved": "https://registry.npmjs.org/@typescript/native-preview-darwin-arm64/-/native-preview-darwin-arm64-7.0.0-dev.20260302.1.tgz", + "integrity": "sha512-bSSHf2/3/pUa1FHdHkoD2SbACh4G8GQElQmkHksf42L30rgED+thloZPyQEvaIXE44IsfFDEvsa6reF/pob5Aw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@typescript/native-preview-darwin-x64": { + "version": "7.0.0-dev.20260302.1", + "resolved": "https://registry.npmjs.org/@typescript/native-preview-darwin-x64/-/native-preview-darwin-x64-7.0.0-dev.20260302.1.tgz", + "integrity": "sha512-CfBxf/qEFgoe1zZ8U/DfgP2izrDEnERXj2uuX5Mi2m6NIdS6yo9fv+TiQS7UDINIOcRaN17NMUmIRrj8RLz3TA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@typescript/native-preview-linux-arm": { + "version": "7.0.0-dev.20260302.1", + "resolved": "https://registry.npmjs.org/@typescript/native-preview-linux-arm/-/native-preview-linux-arm-7.0.0-dev.20260302.1.tgz", + "integrity": "sha512-TWdwsqactujpdAuu/pepoXg7DK2TQ6Q3kYeqLlTic+0d61jece12yqk4hlmXXzQrc5D2ht9Qr3ny4BHyBvKlZw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@typescript/native-preview-linux-arm64": { + "version": "7.0.0-dev.20260302.1", + "resolved": "https://registry.npmjs.org/@typescript/native-preview-linux-arm64/-/native-preview-linux-arm64-7.0.0-dev.20260302.1.tgz", + "integrity": "sha512-Ojecn2PD9Pgs3UUkxzKNwesFmKiCrRHHc6DFlE7Tpsf53tLEOkVTS8SdYOxoPvbM+ee9lQ+WDWyHsOHfbUXFuQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@typescript/native-preview-linux-x64": { + "version": "7.0.0-dev.20260302.1", + "resolved": "https://registry.npmjs.org/@typescript/native-preview-linux-x64/-/native-preview-linux-x64-7.0.0-dev.20260302.1.tgz", + "integrity": "sha512-f+8wzy/4xcDMgAdkJy722BL0pau8O0S4+HUR2CyFJy7HbDIGbbl/Zm5ZAq2xjMGEdq83+klp+7y/JuDIb0herA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@typescript/native-preview-win32-arm64": { + "version": "7.0.0-dev.20260302.1", + "resolved": "https://registry.npmjs.org/@typescript/native-preview-win32-arm64/-/native-preview-win32-arm64-7.0.0-dev.20260302.1.tgz", + "integrity": "sha512-yN+UMH41G2UgXn5ER0FzgVQPQ6YLfpSoSaWV38l+hIkgKQSv7TsF778Svgh0dd5OpFKoeQ1aPOMalugxI3FnWw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@typescript/native-preview-win32-x64": { + "version": "7.0.0-dev.20260302.1", + "resolved": "https://registry.npmjs.org/@typescript/native-preview-win32-x64/-/native-preview-win32-x64-7.0.0-dev.20260302.1.tgz", + "integrity": "sha512-Ni9nVkZRt3MofSUSilF51w1tkxlPegz3+zJLDPZZdc0IIaENTP37gfVkngio4tdsjIjsPFieJOkogej/wYT1AA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/acorn": { "version": "8.15.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", @@ -567,19 +655,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -596,20 +671,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -624,19 +685,6 @@ "dev": true, "license": "MIT" }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/brace-expansion": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", @@ -648,19 +696,6 @@ "concat-map": "0.0.1" } }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -689,41 +724,19 @@ } }, "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "dev": true, "license": "MIT", "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "readdirp": "^4.0.1" }, "engines": { - "node": ">= 8.10.0" + "node": ">= 14.16.0" }, "funding": { "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" } }, "node_modules/color-convert": { @@ -793,20 +806,6 @@ "dev": true, "license": "MIT" }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -1008,19 +1007,6 @@ "node": ">=16.0.0" } }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -1060,53 +1046,34 @@ "license": "ISC" }, "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-4.0.3.tgz", + "integrity": "sha512-yeXZaNbCBGaT9giTpLPBdtedzjwhlJBUoL/R4BVQU5mn0TQXOHwVIl1Q2DMuBIdNno4ktA1abZ7dQFVxD6uHxw==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" }, "engines": { - "node": ">=14" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" }, - "bin": { - "glob": "dist/esm/bin.mjs" + "engines": { + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -1125,27 +1092,40 @@ "node": ">=10.13.0" } }, + "node_modules/glob/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" } }, "node_modules/glob/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^5.0.2" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -1211,19 +1191,6 @@ "node": ">=0.8.19" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -1234,16 +1201,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -1257,16 +1214,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -1274,22 +1221,6 @@ "dev": true, "license": "ISC" }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, "node_modules/js-yaml": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", @@ -1324,6 +1255,15 @@ "dev": true, "license": "MIT" }, + "node_modules/jsonc-simple-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-simple-parser/-/jsonc-simple-parser-3.0.0.tgz", + "integrity": "sha512-0qi9Kuj4JPar4/3b9wZteuPZrTeFzXsQyOZj7hksnReCZN3Vr17Doz7w/i3E9XH7vRkVTHhHES+r1h97I+hfww==", + "dev": true, + "dependencies": { + "reghex": "^3.0.2" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -1372,11 +1312,14 @@ "license": "MIT" }, "node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz", + "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==", "dev": true, - "license": "ISC" + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } }, "node_modules/minimatch": { "version": "3.1.2", @@ -1392,11 +1335,11 @@ } }, "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "engines": { "node": ">=16 || 14 >=14.17" } @@ -1431,16 +1374,6 @@ "dev": true, "license": "MIT" }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -1532,35 +1465,22 @@ } }, "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=16 || 14 >=14.18" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/polite-json": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/polite-json/-/polite-json-5.0.0.tgz", @@ -1595,18 +1515,26 @@ } }, "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "dev": true, "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, "engines": { - "node": ">=8.10.0" + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, + "node_modules/reghex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/reghex/-/reghex-3.0.2.tgz", + "integrity": "sha512-Zb9DJ5u6GhgqRSBnxV2QSnLqEwcKxHWFA1N2yUa4ZUAO1P8jlWKYtWZ6/ooV6yylspGXJX0O/uNzEv0xrCtwaA==", + "dev": true, + "license": "MIT" + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -1618,34 +1546,38 @@ } }, "node_modules/resolve-import": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/resolve-import/-/resolve-import-1.4.6.tgz", - "integrity": "sha512-CIw9e64QcKcCFUj9+KxUCJPy8hYofv6eVfo3U9wdhCm2E4IjvFnZ6G4/yIC4yP3f11+h6uU5b3LdS7O64LgqrA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/resolve-import/-/resolve-import-2.4.0.tgz", + "integrity": "sha512-gLWKdA5tiv5j/D7ipR47u3ovbVfzFPrctTdw2Ulnpmr6PPVVSvPKGNWu09jXVNlOSLLAeD6CA13bjIelpWttSw==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "glob": "^10.3.3", - "walk-up-path": "^3.0.1" + "glob": "^13.0.0", + "walk-up-path": "^4.0.0" }, "engines": { - "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/rimraf": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", - "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.3.tgz", + "integrity": "sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "glob": "^10.3.7" + "glob": "^13.0.3", + "package-json-from-dist": "^1.0.1" }, "bin": { "rimraf": "dist/esm/bin.mjs" }, + "engines": { + "node": "20 || >=22" + }, "funding": { "url": "https://github.com/sponsors/isaacs" } @@ -1699,110 +1631,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -1830,22 +1658,22 @@ } }, "node_modules/sync-content": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/sync-content/-/sync-content-1.0.2.tgz", - "integrity": "sha512-znd3rYiiSxU3WteWyS9a6FXkTA/Wjk8WQsOyzHbineeL837dLn3DA4MRhsIX3qGcxDMH6+uuFV4axztssk7wEQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sync-content/-/sync-content-2.0.4.tgz", + "integrity": "sha512-w3ioiBmbaogob33WdLnuwFk+8tpePI58CTWKqtdAgEqc2hfGuSwP02gPETqNX/3PLS5skv5a1wQR0gbaa2W0XQ==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "glob": "^10.2.6", + "glob": "^13.0.1", "mkdirp": "^3.0.1", - "path-scurry": "^1.9.2", - "rimraf": "^5.0.1" + "path-scurry": "^2.0.0", + "rimraf": "^6.0.0" }, "bin": { - "sync-content": "dist/mjs/bin.mjs" + "sync-content": "dist/esm/bin.mjs" }, "engines": { - "node": ">=14" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -1899,19 +1727,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, "node_modules/ts-api-utils": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.3.0.tgz", @@ -1926,39 +1741,54 @@ } }, "node_modules/tshy": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tshy/-/tshy-2.0.1.tgz", - "integrity": "sha512-U5fC+3pMaGfmULhPTVpxKMd62AcX13yfsFrjhAP/daTLG6LFRLIuxqYOmkejJ4MT/s5bEa29+1Jy/9mXkMiMfA==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/tshy/-/tshy-3.3.2.tgz", + "integrity": "sha512-vOIXkqMtBWNjKUR/c99+6N50LhWdnKG1xE3+5wf8IPdzxx2lcIFPvbGgFdBBgoTMbdNb8mz06MUm7hY+TFnJcw==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "chalk": "^5.3.0", - "chokidar": "^3.6.0", - "foreground-child": "^3.1.1", - "minimatch": "^9.0.4", + "@typescript/native-preview": "^7.0.0-dev.20260218.1", + "chalk": "^5.6.2", + "chokidar": "^4.0.3", + "foreground-child": "^4.0.0", + "jsonc-simple-parser": "^3.0.0", + "minimatch": "^10.0.3", "mkdirp": "^3.0.1", "polite-json": "^5.0.0", - "resolve-import": "^1.4.5", - "rimraf": "^5.0.1", - "sync-content": "^1.0.2", - "typescript": "5", - "walk-up-path": "^3.0.1" + "resolve-import": "^2.4.0", + "rimraf": "^6.1.2", + "sync-content": "^2.0.3", + "typescript": "^5.9.3", + "walk-up-path": "^4.0.0" }, "bin": { - "tshy": "dist/esm/index.js" + "tshy": "dist/esm/bin-min.mjs" }, "engines": { - "node": "16 >=16.17 || 18 >=18.15.0 || >=20.6.1" + "node": "20 || >=22" + } + }, + "node_modules/tshy/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" } }, "node_modules/tshy/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" } }, "node_modules/tshy/node_modules/chalk": { @@ -1975,21 +1805,35 @@ } }, "node_modules/tshy/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^5.0.2" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/tshy/node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -2052,11 +1896,14 @@ } }, "node_modules/walk-up-path": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz", - "integrity": "sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-4.0.0.tgz", + "integrity": "sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==", "dev": true, - "license": "ISC" + "license": "ISC", + "engines": { + "node": "20 || >=22" + } }, "node_modules/which": { "version": "2.0.2", @@ -2084,101 +1931,6 @@ "node": ">=0.10.0" } }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index a1f8779..7550c15 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "waveshield", - "version": "0.1.3", + "version": "0.2.0", "author": "Speakeasy", "type": "module", "tshy": { @@ -19,6 +19,10 @@ } }, "sideEffects": false, + "repository": { + "type": "git", + "url": "https://github.com/WaveShieldDev/waveshield-sdk-typescript.git" + }, "scripts": { "lint": "eslint --cache --max-warnings=0 src", "build": "tshy", @@ -26,10 +30,10 @@ }, "peerDependencies": {}, "devDependencies": { - "@eslint/js": "^9.19.0", - "eslint": "^9.19.0", + "@eslint/js": "^9.26.0", + "eslint": "^9.26.0", "globals": "^15.14.0", - "tshy": "^2.0.0", + "tshy": "^3.3.2", "typescript": "~5.8.3", "typescript-eslint": "^8.26.0" }, diff --git a/src/hooks/hooks.ts b/src/hooks/hooks.ts index 7ed9e04..94ad0a3 100644 --- a/src/hooks/hooks.ts +++ b/src/hooks/hooks.ts @@ -18,8 +18,6 @@ import { SDKInitHook, } from "./types.js"; -import { initHooks } from "./registration.js"; - export class SDKHooks implements Hooks { sdkInitHooks: SDKInitHook[] = []; beforeCreateRequestHooks: BeforeCreateRequestHook[] = []; @@ -47,7 +45,6 @@ export class SDKHooks implements Hooks { this.registerAfterErrorHook(hook); } } - initHooks(this); } registerSDKInitHook(hook: SDKInitHook) { diff --git a/src/lib/config.ts b/src/lib/config.ts index 2d455d6..7d2b5ff 100644 --- a/src/lib/config.ts +++ b/src/lib/config.ts @@ -65,7 +65,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null { export const SDK_METADATA = { language: "typescript", openapiDocVersion: "1.0.0", - sdkVersion: "0.1.3", - genVersion: "2.788.5", - userAgent: "speakeasy-sdk/typescript 0.1.3 2.788.5 1.0.0 waveshield", + sdkVersion: "0.2.0", + genVersion: "2.846.1", + userAgent: "speakeasy-sdk/typescript 0.2.0 2.846.1 1.0.0 waveshield", } as const; diff --git a/src/lib/matchers.ts b/src/lib/matchers.ts index f533f21..f301572 100644 --- a/src/lib/matchers.ts +++ b/src/lib/matchers.ts @@ -251,8 +251,9 @@ export function match( raw = body; break; default: - encoding satisfies never; - throw new Error(`Unsupported response type: ${encoding}`); + throw new Error( + `Unsupported response type: ${encoding satisfies never}`, + ); } if (matcher.enc === "fail") { diff --git a/src/lib/sdks.ts b/src/lib/sdks.ts index 698f955..390cfde 100644 --- a/src/lib/sdks.ts +++ b/src/lib/sdks.ts @@ -307,9 +307,9 @@ export class ClientSDK { } } -const jsonLikeContentTypeRE = /(application|text)\/.*?\+*json.*/; +const jsonLikeContentTypeRE = /^(application|text)\/([^+]+\+)*json.*/; const jsonlLikeContentTypeRE = - /(application|text)\/(.*?\+*\bjsonl\b.*|.*?\+*\bx-ndjson\b.*)/; + /^(application|text)\/([^+]+\+)*(jsonl|x-ndjson)\b.*/; async function logRequest(logger: Logger | undefined, req: Request) { if (!logger) { return; diff --git a/src/lib/security.ts b/src/lib/security.ts index 3ca46cb..1d84656 100644 --- a/src/lib/security.ts +++ b/src/lib/security.ts @@ -198,8 +198,7 @@ export function resolveSecurity( applyBearer(state, spec); break; default: - spec satisfies never; - throw SecurityError.unrecognizedType(type); + throw SecurityError.unrecognizedType((spec satisfies never, type)); } }); diff --git a/src/types/smartUnion.ts b/src/types/smartUnion.ts index 266e39b..1eabf9a 100644 --- a/src/types/smartUnion.ts +++ b/src/types/smartUnion.ts @@ -88,6 +88,14 @@ export function smartUnion< } function better(a: Candidate, b: Candidate): Candidate { + // First prefer exact matches over inexact ones + const aIsExact = a.inexactCount === 0; + const bIsExact = b.inexactCount === 0; + if (aIsExact !== bIsExact) { + return aIsExact ? a : b; + } + + // Then compare field counts const actualFieldCountA = a.fieldCount - a.zeroDefaultCount; const actualFieldCountB = b.fieldCount - b.zeroDefaultCount; if (actualFieldCountA !== actualFieldCountB) { diff --git a/tsconfig.json b/tsconfig.json index 0ccdbe2..76110f8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,6 +13,7 @@ "declaration": true, "declarationMap": true, "sourceMap": true, + "rootDir": "src", "outDir": ".", @@ -36,5 +37,5 @@ "forceConsistentCasingInFileNames": true }, "include": ["src"], - "exclude": ["node_modules"] + "exclude": ["node_modules", "src/__tests__"] } From 598455bebeda361468b53aff968aa5f7a70bd37d Mon Sep 17 00:00:00 2001 From: "speakeasy-github[bot]" <128539517+speakeasy-github[bot]@users.noreply.github.com> Date: Tue, 3 Mar 2026 02:33:31 +0000 Subject: [PATCH 2/2] empty commit to trigger [run-tests] workflow