@psnext/slingcli 3.0.20260827-1 → 3.3.20260911-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/util/index.js +5 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/util/hasOwn.js +3 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/util/index.js +1 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/util/hasOwn.d.ts +4 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/util/index.d.ts +1 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/util/hasOwn.d.ts +1 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/util/index.d.ts +1 -0
- package/node_modules/@aws-sdk/core/package.json +1 -1
- package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-cjs/index.js +11 -4
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/http2/ClientHttp2SessionRef.js +1 -0
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-manager.js +2 -3
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/node-http2-handler.js +8 -1
- package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-http/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-ini/package.json +9 -9
- package/node_modules/@aws-sdk/credential-provider-login/package.json +3 -3
- package/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js +2 -0
- package/node_modules/@aws-sdk/credential-provider-node/dist-es/runtime/memoize-chain.js +2 -0
- package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
- package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/package.json +3 -3
- package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
- package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
- package/node_modules/@aws-sdk/middleware-websocket/package.json +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-cjs/index.js +11 -4
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/http2/ClientHttp2SessionRef.js +1 -0
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-manager.js +2 -3
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/node-http2-handler.js +8 -1
- package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/package.json +2 -2
- package/node_modules/@aws-sdk/nested-clients/package.json +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{chunk-PBNSMEG7.js → chunk-VDBOM5UG.js} +9 -9
- package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/cli.js +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/index.js +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/rpc-entry.js +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Client.md +25 -8
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +3 -2
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/EventSource.md +4 -0
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Interceptors.md +7 -3
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +7 -1
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/api/readable.js +33 -43
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/cache/memory-cache-store.js +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/connect.js +16 -2
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/symbols.js +3 -0
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/agent.js +7 -2
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/balanced-pool.js +7 -4
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/client-h1.js +9 -1
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/client-h2.js +221 -12
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/client.js +76 -30
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/dispatcher-base.js +13 -1
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/dispatcher.js +15 -1
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +3 -0
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +37 -8
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/proxy-agent.js +18 -1
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/retry-agent.js +3 -0
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/round-robin-pool.js +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +106 -22
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/cache-handler.js +29 -5
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/decorator-handler.js +7 -1
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/deduplication-handler.js +12 -6
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/redirect-handler.js +21 -4
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/retry-handler.js +155 -32
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/cache.js +65 -9
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/decompress.js +115 -13
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/deduplicate.js +5 -4
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/dns.js +7 -0
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/dump.js +10 -23
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/mock/mock-agent.js +13 -1
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/mock/mock-utils.js +217 -27
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/util/cache.js +43 -3
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/cookies/parse.js +150 -147
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/eventsource/eventsource-stream.js +28 -1
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/eventsource/eventsource.js +13 -3
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/index.js +6 -0
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/request.js +2 -3
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/util.js +6 -1
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/webidl/index.js +3 -3
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/connection.js +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/permessage-deflate.js +5 -0
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/stream/websocketstream.js +8 -10
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/websocket.js +22 -0
- package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/package.json +3 -3
- package/node_modules/@earendil-works/pi-coding-agent/npm-shrinkwrap.json +4 -4
- package/node_modules/@earendil-works/pi-coding-agent/package.json +1 -1
- package/node_modules/@earendil-works/pi-telemetry/package.json +1 -1
- package/node_modules/@smithy/core/dist-cjs/submodules/errors/index.js +20 -0
- package/node_modules/@smithy/core/dist-cjs/submodules/retry/index.browser.js +11 -10
- package/node_modules/@smithy/core/dist-cjs/submodules/retry/index.js +11 -10
- package/node_modules/@smithy/core/dist-es/submodules/errors/errors.js +18 -0
- package/node_modules/@smithy/core/dist-es/submodules/errors/index.js +1 -0
- package/node_modules/@smithy/core/dist-es/submodules/retry/service-error-classification/service-error-classification.js +11 -10
- package/node_modules/@smithy/core/dist-types/submodules/errors/errors.d.ts +44 -0
- package/node_modules/@smithy/core/dist-types/submodules/errors/index.d.ts +1 -0
- package/node_modules/@smithy/core/dist-types/submodules/retry/service-error-classification/service-error-classification.d.ts +4 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/errors/errors.d.ts +44 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/errors/index.d.ts +1 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/retry/service-error-classification/service-error-classification.d.ts +4 -0
- package/node_modules/@smithy/core/errors.d.ts +5 -0
- package/node_modules/@smithy/core/errors.js +5 -0
- package/node_modules/@smithy/core/package.json +11 -2
- package/node_modules/@smithy/fetch-http-handler/dist-cjs/index.js +2 -1
- package/node_modules/@smithy/fetch-http-handler/dist-es/fetch-http-handler.js +2 -1
- package/node_modules/@smithy/fetch-http-handler/package.json +3 -3
- package/node_modules/@smithy/types/dist-types/http/httpHandlerInitialization.d.ts +14 -0
- package/node_modules/@smithy/types/dist-types/ts3.4/http/httpHandlerInitialization.d.ts +14 -0
- package/node_modules/@smithy/types/package.json +1 -1
- package/node_modules/@types/node/README.md +3 -3
- package/node_modules/@types/node/assert/strict.d.ts +56 -13
- package/node_modules/@types/node/assert.d.ts +190 -189
- package/node_modules/@types/node/async_hooks.d.ts +43 -151
- package/node_modules/@types/node/buffer.buffer.d.ts +13 -12
- package/node_modules/@types/node/buffer.d.ts +237 -102
- package/node_modules/@types/node/child_process.d.ts +154 -39
- package/node_modules/@types/node/cluster.d.ts +384 -238
- package/node_modules/@types/node/compatibility/disposable.d.ts +14 -0
- package/node_modules/@types/node/compatibility/index.d.ts +9 -0
- package/node_modules/@types/node/compatibility/indexable.d.ts +20 -0
- package/node_modules/@types/node/compatibility/iterators.d.ts +20 -0
- package/node_modules/@types/node/console.d.ts +404 -45
- package/node_modules/@types/node/constants.d.ts +10 -3
- package/node_modules/@types/node/crypto.d.ts +1600 -1007
- package/node_modules/@types/node/dgram.d.ts +81 -133
- package/node_modules/@types/node/diagnostics_channel.d.ts +59 -277
- package/node_modules/@types/node/dns/promises.d.ts +15 -9
- package/node_modules/@types/node/dns.d.ts +183 -136
- package/node_modules/@types/node/domain.d.ts +32 -12
- package/node_modules/@types/node/events.d.ts +696 -728
- package/node_modules/@types/node/fs/promises.d.ts +85 -256
- package/node_modules/@types/node/fs.d.ts +525 -865
- package/node_modules/@types/node/globals.d.ts +34 -12
- package/node_modules/@types/node/globals.typedarray.d.ts +0 -63
- package/node_modules/@types/node/http.d.ts +311 -432
- package/node_modules/@types/node/http2.d.ts +891 -545
- package/node_modules/@types/node/https.d.ts +243 -64
- package/node_modules/@types/node/index.d.ts +7 -25
- package/node_modules/@types/node/inspector.d.ts +58 -70
- package/node_modules/@types/node/inspector.generated.d.ts +411 -765
- package/node_modules/@types/node/module.d.ts +219 -54
- package/node_modules/@types/node/net.d.ts +222 -208
- package/node_modules/@types/node/os.d.ts +49 -41
- package/node_modules/@types/node/package.json +3 -13
- package/node_modules/@types/node/path.d.ts +141 -119
- package/node_modules/@types/node/perf_hooks.d.ts +673 -310
- package/node_modules/@types/node/process.d.ts +205 -389
- package/node_modules/@types/node/punycode.d.ts +31 -3
- package/node_modules/@types/node/querystring.d.ts +16 -3
- package/node_modules/@types/node/readline/promises.d.ts +6 -3
- package/node_modules/@types/node/readline.d.ts +152 -66
- package/node_modules/@types/node/repl.d.ts +109 -101
- package/node_modules/@types/node/sea.d.ts +116 -1
- package/node_modules/@types/node/sqlite.d.ts +68 -486
- package/node_modules/@types/node/stream/consumers.d.ts +15 -91
- package/node_modules/@types/node/stream/promises.d.ts +15 -136
- package/node_modules/@types/node/stream/web.d.ts +456 -179
- package/node_modules/@types/node/stream.d.ts +491 -603
- package/node_modules/@types/node/string_decoder.d.ts +43 -3
- package/node_modules/@types/node/test.d.ts +292 -513
- package/node_modules/@types/node/timers/promises.d.ts +18 -3
- package/node_modules/@types/node/timers.d.ts +141 -3
- package/node_modules/@types/node/tls.d.ts +242 -140
- package/node_modules/@types/node/trace_events.d.ts +97 -3
- package/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +8 -7
- package/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -2
- package/node_modules/@types/node/ts5.6/index.d.ts +6 -26
- package/node_modules/@types/node/tty.d.ts +43 -61
- package/node_modules/@types/node/url.d.ts +584 -156
- package/node_modules/@types/node/util.d.ts +1110 -181
- package/node_modules/@types/node/v8.d.ts +36 -175
- package/node_modules/@types/node/vm.d.ts +209 -292
- package/node_modules/@types/node/wasi.d.ts +74 -24
- package/node_modules/@types/node/web-globals/abortcontroller.d.ts +2 -27
- package/node_modules/@types/node/web-globals/domexception.d.ts +0 -15
- package/node_modules/@types/node/web-globals/events.d.ts +0 -9
- package/node_modules/@types/node/web-globals/fetch.d.ts +0 -14
- package/node_modules/@types/node/web-globals/navigator.d.ts +0 -3
- package/node_modules/@types/node/web-globals/streams.d.ts +0 -93
- package/node_modules/@types/node/worker_threads.d.ts +407 -257
- package/node_modules/@types/node/zlib.d.ts +165 -7
- package/node_modules/express-rate-limit/dist/index.cjs +6 -3
- package/node_modules/express-rate-limit/dist/index.d.cts +11 -0
- package/node_modules/express-rate-limit/dist/index.d.mts +11 -0
- package/node_modules/express-rate-limit/dist/index.d.ts +11 -0
- package/node_modules/express-rate-limit/dist/index.mjs +6 -3
- package/node_modules/express-rate-limit/{license.md → license} +7 -6
- package/node_modules/express-rate-limit/package.json +5 -5
- package/node_modules/express-rate-limit/readme.md +1 -0
- package/node_modules/fast-uri/index.js +20 -5
- package/node_modules/fast-uri/lib/utils.js +8 -1
- package/node_modules/fast-uri/package.json +1 -1
- package/node_modules/fast-uri/test/component-safe-serialization.test.js +58 -0
- package/node_modules/fast-uri/test/ipv6-validation.test.js +34 -0
- package/node_modules/hono/dist/cjs/client/client.js +4 -4
- package/node_modules/hono/dist/cjs/hono-base.js +7 -6
- package/node_modules/hono/dist/cjs/jsx/base.js +18 -1
- package/node_modules/hono/dist/cjs/jsx/components.js +25 -26
- package/node_modules/hono/dist/cjs/jsx/context.js +5 -5
- package/node_modules/hono/dist/cjs/jsx/dom/server.js +5 -1
- package/node_modules/hono/dist/cjs/jsx/intrinsic-element/components.js +2 -2
- package/node_modules/hono/dist/cjs/jsx/streaming.js +4 -5
- package/node_modules/hono/dist/client/client.js +4 -4
- package/node_modules/hono/dist/hono-base.js +7 -6
- package/node_modules/hono/dist/jsx/base.js +15 -1
- package/node_modules/hono/dist/jsx/components.js +26 -27
- package/node_modules/hono/dist/jsx/context.js +6 -6
- package/node_modules/hono/dist/jsx/dom/server.js +5 -1
- package/node_modules/hono/dist/jsx/intrinsic-element/components.js +3 -3
- package/node_modules/hono/dist/jsx/streaming.js +5 -6
- package/node_modules/hono/dist/types/context.d.ts +2 -2
- package/node_modules/hono/dist/types/jsx/base.d.ts +3 -0
- package/node_modules/hono/package.json +2 -2
- package/node_modules/ip-address/README.md +92 -82
- package/node_modules/ip-address/dist/common.d.ts +20 -0
- package/node_modules/ip-address/dist/common.js +36 -0
- package/node_modules/ip-address/dist/common.js.map +1 -1
- package/node_modules/ip-address/dist/ipv4.d.ts +50 -0
- package/node_modules/ip-address/dist/ipv4.js +75 -0
- package/node_modules/ip-address/dist/ipv4.js.map +1 -1
- package/node_modules/ip-address/dist/ipv6.d.ts +79 -10
- package/node_modules/ip-address/dist/ipv6.js +120 -30
- package/node_modules/ip-address/dist/ipv6.js.map +1 -1
- package/node_modules/ip-address/dist/v4/constants.d.ts +12 -0
- package/node_modules/ip-address/dist/v4/constants.js +40 -1
- package/node_modules/ip-address/dist/v4/constants.js.map +1 -1
- package/node_modules/ip-address/dist/v6/constants.d.ts +14 -0
- package/node_modules/ip-address/dist/v6/constants.js +47 -1
- package/node_modules/ip-address/dist/v6/constants.js.map +1 -1
- package/node_modules/ip-address/package.json +1 -1
- package/node_modules/jose/dist/types/index.d.ts +1 -2
- package/node_modules/jose/dist/types/jwe/compact/decrypt.d.ts +12 -25
- package/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +18 -32
- package/node_modules/jose/dist/types/jwe/flattened/decrypt.d.ts +12 -25
- package/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +24 -50
- package/node_modules/jose/dist/types/jwe/general/decrypt.d.ts +15 -30
- package/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +29 -52
- package/node_modules/jose/dist/types/jwk/embedded.d.ts +5 -8
- package/node_modules/jose/dist/types/jwk/thumbprint.d.ts +7 -9
- package/node_modules/jose/dist/types/jwks/local.d.ts +10 -13
- package/node_modules/jose/dist/types/jwks/remote.d.ts +29 -41
- package/node_modules/jose/dist/types/jws/compact/sign.d.ts +8 -13
- package/node_modules/jose/dist/types/jws/compact/verify.d.ts +14 -26
- package/node_modules/jose/dist/types/jws/flattened/sign.d.ts +10 -19
- package/node_modules/jose/dist/types/jws/flattened/verify.d.ts +14 -26
- package/node_modules/jose/dist/types/jws/general/sign.d.ts +19 -33
- package/node_modules/jose/dist/types/jws/general/verify.d.ts +17 -32
- package/node_modules/jose/dist/types/jwt/decrypt.d.ts +20 -27
- package/node_modules/jose/dist/types/jwt/encrypt.d.ts +30 -35
- package/node_modules/jose/dist/types/jwt/sign.d.ts +8 -13
- package/node_modules/jose/dist/types/jwt/unsecured.d.ts +10 -19
- package/node_modules/jose/dist/types/jwt/verify.d.ts +19 -22
- package/node_modules/jose/dist/types/key/export.d.ts +10 -10
- package/node_modules/jose/dist/types/key/generate_key_pair.d.ts +15 -22
- package/node_modules/jose/dist/types/key/generate_secret.d.ts +12 -19
- package/node_modules/jose/dist/types/key/import.d.ts +25 -31
- package/node_modules/jose/dist/types/types.d.ts +184 -319
- package/node_modules/jose/dist/types/util/base64url.d.ts +7 -7
- package/node_modules/jose/dist/types/util/decode_jwt.d.ts +5 -7
- package/node_modules/jose/dist/types/util/decode_protected_header.d.ts +6 -5
- package/node_modules/jose/dist/types/util/errors.d.ts +50 -88
- package/node_modules/jose/dist/webapi/index.js +70 -32
- package/node_modules/jose/dist/webapi/jwe/compact/decrypt.js +6 -8
- package/node_modules/jose/dist/webapi/jwe/compact/encrypt.js +25 -48
- package/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js +14 -14
- package/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js +34 -64
- package/node_modules/jose/dist/webapi/jwe/general/decrypt.js +38 -49
- package/node_modules/jose/dist/webapi/jwe/general/encrypt.js +100 -172
- package/node_modules/jose/dist/webapi/jwk/embedded.js +29 -32
- package/node_modules/jose/dist/webapi/jwk/thumbprint.js +51 -70
- package/node_modules/jose/dist/webapi/jwks/local.js +53 -64
- package/node_modules/jose/dist/webapi/jwks/remote.js +88 -136
- package/node_modules/jose/dist/webapi/jws/compact/sign.js +19 -21
- package/node_modules/jose/dist/webapi/jws/compact/verify.js +7 -8
- package/node_modules/jose/dist/webapi/jws/flattened/sign.js +22 -31
- package/node_modules/jose/dist/webapi/jws/flattened/verify.js +11 -24
- package/node_modules/jose/dist/webapi/jws/general/sign.js +55 -73
- package/node_modules/jose/dist/webapi/jws/general/verify.js +43 -69
- package/node_modules/jose/dist/webapi/jwt/decrypt.js +12 -20
- package/node_modules/jose/dist/webapi/jwt/encrypt.js +43 -70
- package/node_modules/jose/dist/webapi/jwt/sign.js +17 -16
- package/node_modules/jose/dist/webapi/jwt/unsecured.js +31 -40
- package/node_modules/jose/dist/webapi/jwt/verify.js +12 -14
- package/node_modules/jose/dist/webapi/key/export.js +32 -41
- package/node_modules/jose/dist/webapi/key/generate_key_pair.js +32 -49
- package/node_modules/jose/dist/webapi/key/generate_secret.js +35 -40
- package/node_modules/jose/dist/webapi/key/import.js +48 -56
- package/node_modules/jose/dist/webapi/lib/asn1.js +128 -169
- package/node_modules/jose/dist/webapi/lib/buffer_utils.js +72 -41
- package/node_modules/jose/dist/webapi/lib/content_encryption.js +75 -119
- package/node_modules/jose/dist/webapi/lib/deflate.js +35 -47
- package/node_modules/jose/dist/webapi/lib/jwe_algorithms.js +102 -93
- package/node_modules/jose/dist/webapi/lib/jwe_decrypt.js +178 -234
- package/node_modules/jose/dist/webapi/lib/jwe_encrypt.js +71 -138
- package/node_modules/jose/dist/webapi/lib/jws_algorithms.js +62 -61
- package/node_modules/jose/dist/webapi/lib/jws_sign.js +43 -82
- package/node_modules/jose/dist/webapi/lib/jws_verify.js +78 -131
- package/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +123 -209
- package/node_modules/jose/dist/webapi/lib/key.js +147 -139
- package/node_modules/jose/dist/webapi/lib/key_algorithm.js +13 -8
- package/node_modules/jose/dist/webapi/lib/key_descriptor.js +8 -6
- package/node_modules/jose/dist/webapi/lib/key_management.js +169 -235
- package/node_modules/jose/dist/webapi/lib/validate.js +122 -0
- package/node_modules/jose/dist/webapi/util/base64url.js +14 -37
- package/node_modules/jose/dist/webapi/util/decode_jwt.js +32 -31
- package/node_modules/jose/dist/webapi/util/decode_protected_header.js +18 -23
- package/node_modules/jose/dist/webapi/util/errors.js +94 -84
- package/node_modules/jose/package.json +17 -81
- package/node_modules/protobufjs/dist/light/protobuf.js +59 -6
- package/node_modules/protobufjs/dist/light/protobuf.js.map +1 -1
- package/node_modules/protobufjs/dist/light/protobuf.min.js +3 -3
- package/node_modules/protobufjs/dist/light/protobuf.min.js.map +1 -1
- package/node_modules/protobufjs/dist/minimal/protobuf.js +22 -2
- package/node_modules/protobufjs/dist/minimal/protobuf.js.map +1 -1
- package/node_modules/protobufjs/dist/minimal/protobuf.min.js +3 -3
- package/node_modules/protobufjs/dist/minimal/protobuf.min.js.map +1 -1
- package/node_modules/protobufjs/dist/protobuf.js +59 -6
- package/node_modules/protobufjs/dist/protobuf.js.map +1 -1
- package/node_modules/protobufjs/dist/protobuf.min.js +3 -3
- package/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
- package/node_modules/protobufjs/package.json +1 -1
- package/node_modules/protobufjs/src/decoder.js +32 -3
- package/node_modules/protobufjs/src/reader.js +20 -0
- package/node_modules/protobufjs/src/wrappers.js +5 -1
- package/node_modules/qs/.github/THREAT_MODEL.md +3 -3
- package/node_modules/qs/CHANGELOG.md +15 -0
- package/node_modules/qs/README.md +19 -1
- package/node_modules/qs/dist/qs.js +21 -21
- package/node_modules/qs/eslint.config.mjs +1 -1
- package/node_modules/qs/lib/parse.js +3 -4
- package/node_modules/qs/lib/stringify.js +23 -8
- package/node_modules/qs/lib/utils.js +10 -3
- package/node_modules/qs/package.json +4 -4
- package/node_modules/qs/test/parse.js +192 -3
- package/node_modules/qs/test/stringify.js +317 -0
- package/node_modules/qs/test/utils.js +12 -0
- package/node_modules/undici/lib/dispatcher/balanced-pool.js +4 -2
- package/node_modules/undici/lib/dispatcher/client-h1.js +12 -4
- package/node_modules/undici/lib/dispatcher/client-h2.js +70 -14
- package/node_modules/undici/lib/dispatcher/client.js +6 -2
- package/node_modules/undici/lib/handler/cache-handler.js +21 -5
- package/node_modules/undici/lib/handler/retry-handler.js +42 -7
- package/node_modules/undici/lib/interceptor/cache.js +20 -1
- package/node_modules/undici/lib/interceptor/decompress.js +146 -14
- package/node_modules/undici/lib/interceptor/dump.js +10 -23
- package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +245 -150
- package/node_modules/undici/lib/web/websocket/connection.js +1 -1
- package/node_modules/undici/lib/web/websocket/permessage-deflate.js +5 -0
- package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +8 -10
- package/node_modules/undici/package.json +1 -1
- package/node_modules/undici/types/interceptors.d.ts +2 -0
- package/node_modules/undici-types/agent.d.ts +13 -12
- package/node_modules/undici-types/api.d.ts +26 -26
- package/node_modules/undici-types/balanced-pool.d.ts +12 -13
- package/node_modules/undici-types/client.d.ts +34 -55
- package/node_modules/undici-types/connector.d.ts +2 -4
- package/node_modules/undici-types/cookies.d.ts +0 -2
- package/node_modules/undici-types/diagnostics-channel.d.ts +10 -18
- package/node_modules/undici-types/dispatcher.d.ts +137 -134
- package/node_modules/undici-types/env-http-proxy-agent.d.ts +3 -4
- package/node_modules/undici-types/errors.d.ts +54 -82
- package/node_modules/undici-types/eventsource.d.ts +4 -9
- package/node_modules/undici-types/fetch.d.ts +24 -46
- package/node_modules/undici-types/file.d.ts +39 -0
- package/node_modules/undici-types/filereader.d.ts +54 -0
- package/node_modules/undici-types/formdata.d.ts +7 -7
- package/node_modules/undici-types/global-dispatcher.d.ts +4 -4
- package/node_modules/undici-types/global-origin.d.ts +5 -5
- package/node_modules/undici-types/handlers.d.ts +9 -8
- package/node_modules/undici-types/header.d.ts +1 -162
- package/node_modules/undici-types/index.d.ts +47 -69
- package/node_modules/undici-types/interceptors.d.ts +9 -72
- package/node_modules/undici-types/mock-agent.d.ts +18 -36
- package/node_modules/undici-types/mock-client.d.ts +4 -6
- package/node_modules/undici-types/mock-errors.d.ts +3 -3
- package/node_modules/undici-types/mock-interceptor.d.ts +20 -21
- package/node_modules/undici-types/mock-pool.d.ts +4 -6
- package/node_modules/undici-types/package.json +1 -1
- package/node_modules/undici-types/patch.d.ts +4 -0
- package/node_modules/undici-types/pool-stats.d.ts +8 -8
- package/node_modules/undici-types/pool.d.ts +14 -14
- package/node_modules/undici-types/proxy-agent.d.ts +6 -7
- package/node_modules/undici-types/readable.d.ts +16 -19
- package/node_modules/undici-types/retry-agent.d.ts +1 -1
- package/node_modules/undici-types/retry-handler.d.ts +10 -19
- package/node_modules/undici-types/util.d.ts +3 -3
- package/node_modules/undici-types/webidl.d.ts +30 -148
- package/node_modules/undici-types/websocket.d.ts +10 -48
- package/node_modules/zod/README.md +27 -0
- package/node_modules/zod/compile.cjs +96 -0
- package/node_modules/zod/compile.d.cts +1 -0
- package/node_modules/zod/compile.d.ts +1 -0
- package/node_modules/zod/compile.js +52 -0
- package/node_modules/zod/index.cjs +21 -2
- package/node_modules/zod/index.d.cts +1 -2
- package/node_modules/zod/index.d.ts +1 -2
- package/node_modules/zod/index.js +5 -2
- package/node_modules/zod/locales/index.cjs +19 -0
- package/node_modules/zod/mini/index.cjs +19 -0
- package/node_modules/zod/package.json +20 -8
- package/node_modules/zod/src/compile.ts +56 -0
- package/node_modules/zod/src/index.ts +5 -2
- package/node_modules/zod/src/v3/ZodError.ts +22 -12
- package/node_modules/zod/src/v3/helpers/errorUtil.ts +1 -1
- package/node_modules/zod/src/v3/tests/error.test.ts +35 -0
- package/node_modules/zod/src/v3/tests/intersection.test.ts +18 -0
- package/node_modules/zod/src/v3/tests/language-server.test.ts +1 -2
- package/node_modules/zod/src/v3/tests/object.test.ts +3 -6
- package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -80
- package/node_modules/zod/src/v3/tests/string.test.ts +6 -0
- package/node_modules/zod/src/v3/types.ts +5 -5
- package/node_modules/zod/src/v4/classic/compat.ts +26 -18
- package/node_modules/zod/src/v4/classic/deep-partial.ts +76 -0
- package/node_modules/zod/src/v4/classic/errors.ts +59 -44
- package/node_modules/zod/src/v4/classic/external.ts +14 -9
- package/node_modules/zod/src/v4/classic/from-json-schema.ts +363 -78
- package/node_modules/zod/src/v4/classic/in-out.ts +45 -0
- package/node_modules/zod/src/v4/classic/index.ts +2 -2
- package/node_modules/zod/src/v4/classic/iso.ts +2 -72
- package/node_modules/zod/src/v4/classic/parse.ts +10 -4
- package/node_modules/zod/src/v4/classic/schemas.ts +652 -371
- package/node_modules/zod/src/v4/classic/tests/apply.test.ts +27 -0
- package/node_modules/zod/src/v4/classic/tests/array.test.ts +2 -2
- package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +185 -0
- package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +36 -1
- package/node_modules/zod/src/v4/classic/tests/catch.test.ts +278 -0
- package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +1 -2
- package/node_modules/zod/src/v4/classic/tests/codec.test.ts +2 -1
- package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +3 -3
- package/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +76 -0
- package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +994 -0
- package/node_modules/zod/src/v4/classic/tests/date.test.ts +30 -0
- package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +32 -18
- package/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +380 -0
- package/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +32 -0
- package/node_modules/zod/src/v4/classic/tests/default.test.ts +46 -0
- package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +31 -7
- package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +261 -13
- package/node_modules/zod/src/v4/classic/tests/enum.test.ts +20 -0
- package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +112 -2
- package/node_modules/zod/src/v4/classic/tests/error.test.ts +403 -6
- package/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +4 -0
- package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +582 -10
- package/node_modules/zod/src/v4/classic/tests/function.test.ts +31 -0
- package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +2 -9
- package/node_modules/zod/src/v4/classic/tests/hash.test.ts +1 -2
- package/node_modules/zod/src/v4/classic/tests/iban.test.ts +81 -0
- package/node_modules/zod/src/v4/classic/tests/in-out.test.ts +159 -0
- package/node_modules/zod/src/v4/classic/tests/index.test.ts +21 -2
- package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +297 -0
- package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +67 -0
- package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +136 -0
- package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +215 -0
- package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +3 -10
- package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +36 -1
- package/node_modules/zod/src/v4/classic/tests/literal.test.ts +12 -1
- package/node_modules/zod/src/v4/classic/tests/map.test.ts +12 -0
- package/node_modules/zod/src/v4/classic/tests/number.test.ts +46 -9
- package/node_modules/zod/src/v4/classic/tests/object.test.ts +301 -12
- package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +235 -0
- package/node_modules/zod/src/v4/classic/tests/optional.test.ts +49 -16
- package/node_modules/zod/src/v4/classic/tests/partial.test.ts +51 -4
- package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +70 -0
- package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +20 -2
- package/node_modules/zod/src/v4/classic/tests/properties.test.ts +225 -0
- package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -68
- package/node_modules/zod/src/v4/classic/tests/record.test.ts +186 -18
- package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +79 -3
- package/node_modules/zod/src/v4/classic/tests/redos.test.ts +68 -0
- package/node_modules/zod/src/v4/classic/tests/refine.test.ts +60 -0
- package/node_modules/zod/src/v4/classic/tests/set.test.ts +9 -0
- package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +19 -0
- package/node_modules/zod/src/v4/classic/tests/string.test.ts +152 -5
- package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +18 -0
- package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +44 -3
- package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +1758 -202
- package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +45 -30
- package/node_modules/zod/src/v4/classic/tests/union.test.ts +39 -2
- package/node_modules/zod/src/v4/classic/tests/validate.test.ts +645 -0
- package/node_modules/zod/src/v4/classic/tests/validations.test.ts +2 -2
- package/node_modules/zod/src/v4/core/api.ts +73 -13
- package/node_modules/zod/src/v4/core/checks.ts +58 -145
- package/node_modules/zod/src/v4/core/compile.ts +2302 -0
- package/node_modules/zod/src/v4/core/core.ts +98 -19
- package/node_modules/zod/src/v4/core/doc.ts +17 -9
- package/node_modules/zod/src/v4/core/errors.ts +113 -25
- package/node_modules/zod/src/v4/core/index.ts +3 -0
- package/node_modules/zod/src/v4/core/json-schema-generator.ts +8 -3
- package/node_modules/zod/src/v4/core/json-schema-processors.ts +468 -146
- package/node_modules/zod/src/v4/core/json-schema.ts +2 -1
- package/node_modules/zod/src/v4/core/memoizer.ts +334 -0
- package/node_modules/zod/src/v4/core/parse.ts +164 -50
- package/node_modules/zod/src/v4/core/regexes.ts +38 -15
- package/node_modules/zod/src/v4/core/registries.ts +2 -2
- package/node_modules/zod/src/v4/core/schemas.ts +1073 -538
- package/node_modules/zod/src/v4/core/tests/cached.test.ts +54 -0
- package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +969 -0
- package/node_modules/zod/src/v4/core/tests/compile-generative.test.ts +445 -0
- package/node_modules/zod/src/v4/core/tests/compile-global.test.ts +89 -0
- package/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +26 -0
- package/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +34 -0
- package/node_modules/zod/src/v4/core/tests/compile.test.ts +1859 -0
- package/node_modules/zod/src/v4/core/tests/email-regex.test.ts +140 -0
- package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +1 -2
- package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +1 -2
- package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +3 -3
- package/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +42 -0
- package/node_modules/zod/src/v4/core/tests/locales/tg.test.ts +85 -0
- package/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +69 -0
- package/node_modules/zod/src/v4/core/tests/polyfill-collision.test.ts +46 -0
- package/node_modules/zod/src/v4/core/tests/treeshake.test.ts +51 -0
- package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +31 -0
- package/node_modules/zod/src/v4/core/to-json-schema.ts +284 -49
- package/node_modules/zod/src/v4/core/util.ts +458 -157
- package/node_modules/zod/src/v4/core/versions.ts +2 -2
- package/node_modules/zod/src/v4/core/visit.ts +204 -0
- package/node_modules/zod/src/v4/index.ts +3 -3
- package/node_modules/zod/src/v4/locales/ar.ts +4 -0
- package/node_modules/zod/src/v4/locales/az.ts +4 -0
- package/node_modules/zod/src/v4/locales/be.ts +11 -0
- package/node_modules/zod/src/v4/locales/bg.ts +4 -0
- package/node_modules/zod/src/v4/locales/bn.ts +122 -0
- package/node_modules/zod/src/v4/locales/ca.ts +4 -0
- package/node_modules/zod/src/v4/locales/ckb.ts +139 -0
- package/node_modules/zod/src/v4/locales/cs.ts +4 -0
- package/node_modules/zod/src/v4/locales/da.ts +6 -2
- package/node_modules/zod/src/v4/locales/de.ts +4 -0
- package/node_modules/zod/src/v4/locales/el.ts +2 -0
- package/node_modules/zod/src/v4/locales/en.ts +16 -4
- package/node_modules/zod/src/v4/locales/eo.ts +4 -0
- package/node_modules/zod/src/v4/locales/es.ts +3 -0
- package/node_modules/zod/src/v4/locales/fa.ts +4 -0
- package/node_modules/zod/src/v4/locales/fi.ts +4 -0
- package/node_modules/zod/src/v4/locales/fr-CA.ts +4 -0
- package/node_modules/zod/src/v4/locales/fr.ts +20 -14
- package/node_modules/zod/src/v4/locales/gu.ts +122 -0
- package/node_modules/zod/src/v4/locales/he.ts +7 -1
- package/node_modules/zod/src/v4/locales/hi.ts +125 -0
- package/node_modules/zod/src/v4/locales/hr.ts +3 -0
- package/node_modules/zod/src/v4/locales/hu.ts +4 -0
- package/node_modules/zod/src/v4/locales/hy.ts +10 -0
- package/node_modules/zod/src/v4/locales/id.ts +4 -0
- package/node_modules/zod/src/v4/locales/index.ts +11 -0
- package/node_modules/zod/src/v4/locales/is.ts +4 -0
- package/node_modules/zod/src/v4/locales/it.ts +4 -0
- package/node_modules/zod/src/v4/locales/ja.ts +4 -0
- package/node_modules/zod/src/v4/locales/ka.ts +4 -0
- package/node_modules/zod/src/v4/locales/km.ts +4 -0
- package/node_modules/zod/src/v4/locales/kn.ts +125 -0
- package/node_modules/zod/src/v4/locales/ko.ts +4 -0
- package/node_modules/zod/src/v4/locales/lt.ts +3 -0
- package/node_modules/zod/src/v4/locales/mk.ts +4 -0
- package/node_modules/zod/src/v4/locales/ms.ts +4 -0
- package/node_modules/zod/src/v4/locales/ne.ts +127 -0
- package/node_modules/zod/src/v4/locales/nl.ts +4 -0
- package/node_modules/zod/src/v4/locales/nn.ts +120 -0
- package/node_modules/zod/src/v4/locales/no.ts +6 -2
- package/node_modules/zod/src/v4/locales/ota.ts +4 -0
- package/node_modules/zod/src/v4/locales/pl.ts +4 -0
- package/node_modules/zod/src/v4/locales/ps.ts +4 -0
- package/node_modules/zod/src/v4/locales/pt-BR.ts +160 -0
- package/node_modules/zod/src/v4/locales/pt.ts +100 -58
- package/node_modules/zod/src/v4/locales/ro.ts +2 -0
- package/node_modules/zod/src/v4/locales/ru.ts +11 -0
- package/node_modules/zod/src/v4/locales/sk.ts +122 -0
- package/node_modules/zod/src/v4/locales/sl.ts +4 -0
- package/node_modules/zod/src/v4/locales/sv.ts +6 -2
- package/node_modules/zod/src/v4/locales/ta.ts +4 -0
- package/node_modules/zod/src/v4/locales/tg.ts +134 -0
- package/node_modules/zod/src/v4/locales/th.ts +4 -0
- package/node_modules/zod/src/v4/locales/tk.ts +112 -0
- package/node_modules/zod/src/v4/locales/tr.ts +4 -0
- package/node_modules/zod/src/v4/locales/uk.ts +4 -0
- package/node_modules/zod/src/v4/locales/ur.ts +4 -0
- package/node_modules/zod/src/v4/locales/uz.ts +2 -0
- package/node_modules/zod/src/v4/locales/vi.ts +4 -0
- package/node_modules/zod/src/v4/locales/yo.ts +4 -0
- package/node_modules/zod/src/v4/locales/zh-CN.ts +4 -0
- package/node_modules/zod/src/v4/locales/zh-TW.ts +4 -0
- package/node_modules/zod/src/v4/mini/deep-partial.ts +73 -0
- package/node_modules/zod/src/v4/mini/external.ts +12 -1
- package/node_modules/zod/src/v4/mini/in-out.ts +45 -0
- package/node_modules/zod/src/v4/mini/parse.ts +2 -0
- package/node_modules/zod/src/v4/mini/schemas.ts +174 -59
- package/node_modules/zod/src/v4/mini/tests/apply.test.ts +33 -0
- package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +62 -1
- package/node_modules/zod/src/v4/mini/tests/checks.test.ts +14 -0
- package/node_modules/zod/src/v4/mini/tests/codec.test.ts +35 -1
- package/node_modules/zod/src/v4/mini/tests/computed.test.ts +11 -17
- package/node_modules/zod/src/v4/mini/tests/cyclic-data.test.ts +84 -0
- package/node_modules/zod/src/v4/mini/tests/deep-partial.test.ts +54 -0
- package/node_modules/zod/src/v4/mini/tests/error.test.ts +23 -4
- package/node_modules/zod/src/v4/mini/tests/functions.test.ts +9 -0
- package/node_modules/zod/src/v4/mini/tests/index.test.ts +102 -5
- package/node_modules/zod/src/v4/mini/tests/number.test.ts +14 -0
- package/node_modules/zod/src/v4/mini/tests/object.test.ts +65 -0
- package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +16 -0
- package/node_modules/zod/src/v4/mini/tests/string.test.ts +37 -0
- package/node_modules/zod/v3/ZodError.cjs +41 -12
- package/node_modules/zod/v3/ZodError.d.cts +1 -1
- package/node_modules/zod/v3/ZodError.d.ts +1 -1
- package/node_modules/zod/v3/ZodError.js +22 -12
- package/node_modules/zod/v3/errors.cjs +19 -0
- package/node_modules/zod/v3/external.cjs +19 -0
- package/node_modules/zod/v3/helpers/enumUtil.cjs +19 -0
- package/node_modules/zod/v3/helpers/errorUtil.cjs +20 -1
- package/node_modules/zod/v3/helpers/errorUtil.js +1 -1
- package/node_modules/zod/v3/helpers/parseUtil.cjs +19 -0
- package/node_modules/zod/v3/helpers/partialUtil.cjs +19 -0
- package/node_modules/zod/v3/helpers/typeAliases.cjs +19 -0
- package/node_modules/zod/v3/helpers/util.cjs +19 -0
- package/node_modules/zod/v3/index.cjs +19 -0
- package/node_modules/zod/v3/standard-schema.cjs +19 -0
- package/node_modules/zod/v3/types.cjs +26 -5
- package/node_modules/zod/v3/types.js +7 -5
- package/node_modules/zod/v4/classic/checks.cjs +19 -0
- package/node_modules/zod/v4/classic/coerce.cjs +19 -0
- package/node_modules/zod/v4/classic/compat.cjs +19 -0
- package/node_modules/zod/v4/classic/compat.d.cts +9 -11
- package/node_modules/zod/v4/classic/compat.d.ts +9 -11
- package/node_modules/zod/v4/classic/deep-partial.cjs +58 -0
- package/node_modules/zod/v4/classic/deep-partial.d.cts +14 -0
- package/node_modules/zod/v4/classic/deep-partial.d.ts +14 -0
- package/node_modules/zod/v4/classic/deep-partial.js +13 -0
- package/node_modules/zod/v4/classic/errors.cjs +62 -34
- package/node_modules/zod/v4/classic/errors.d.cts +3 -4
- package/node_modules/zod/v4/classic/errors.d.ts +3 -4
- package/node_modules/zod/v4/classic/errors.js +43 -34
- package/node_modules/zod/v4/classic/external.cjs +51 -27
- package/node_modules/zod/v4/classic/external.d.cts +5 -2
- package/node_modules/zod/v4/classic/external.d.ts +5 -2
- package/node_modules/zod/v4/classic/external.js +5 -8
- package/node_modules/zod/v4/classic/from-json-schema.cjs +376 -75
- package/node_modules/zod/v4/classic/from-json-schema.js +357 -75
- package/node_modules/zod/v4/classic/in-out.cjs +82 -0
- package/node_modules/zod/v4/classic/in-out.d.cts +8 -0
- package/node_modules/zod/v4/classic/in-out.d.ts +8 -0
- package/node_modules/zod/v4/classic/in-out.js +36 -0
- package/node_modules/zod/v4/classic/index.cjs +21 -2
- package/node_modules/zod/v4/classic/index.d.cts +1 -2
- package/node_modules/zod/v4/classic/index.d.ts +1 -2
- package/node_modules/zod/v4/classic/index.js +2 -2
- package/node_modules/zod/v4/classic/iso.cjs +30 -22
- package/node_modules/zod/v4/classic/iso.d.cts +2 -17
- package/node_modules/zod/v4/classic/iso.d.ts +2 -17
- package/node_modules/zod/v4/classic/iso.js +2 -17
- package/node_modules/zod/v4/classic/parse.cjs +23 -1
- package/node_modules/zod/v4/classic/parse.d.cts +17 -4
- package/node_modules/zod/v4/classic/parse.d.ts +17 -4
- package/node_modules/zod/v4/classic/parse.js +1 -0
- package/node_modules/zod/v4/classic/schemas.cjs +591 -422
- package/node_modules/zod/v4/classic/schemas.d.cts +70 -19
- package/node_modules/zod/v4/classic/schemas.d.ts +70 -19
- package/node_modules/zod/v4/classic/schemas.js +564 -420
- package/node_modules/zod/v4/core/api.cjs +58 -4
- package/node_modules/zod/v4/core/api.d.cts +16 -10
- package/node_modules/zod/v4/core/api.d.ts +16 -10
- package/node_modules/zod/v4/core/api.js +36 -4
- package/node_modules/zod/v4/core/checks.cjs +56 -127
- package/node_modules/zod/v4/core/checks.d.cts +13 -13
- package/node_modules/zod/v4/core/checks.d.ts +13 -13
- package/node_modules/zod/v4/core/checks.js +37 -127
- package/node_modules/zod/v4/core/compile.cjs +1913 -0
- package/node_modules/zod/v4/core/compile.d.cts +65 -0
- package/node_modules/zod/v4/core/compile.d.ts +65 -0
- package/node_modules/zod/v4/core/compile.js +1863 -0
- package/node_modules/zod/v4/core/core.cjs +100 -18
- package/node_modules/zod/v4/core/core.d.cts +16 -4
- package/node_modules/zod/v4/core/core.d.ts +16 -4
- package/node_modules/zod/v4/core/core.js +82 -19
- package/node_modules/zod/v4/core/doc.cjs +31 -9
- package/node_modules/zod/v4/core/doc.d.cts +3 -1
- package/node_modules/zod/v4/core/doc.d.ts +3 -1
- package/node_modules/zod/v4/core/doc.js +12 -9
- package/node_modules/zod/v4/core/errors.cjs +126 -25
- package/node_modules/zod/v4/core/errors.d.cts +4 -0
- package/node_modules/zod/v4/core/errors.d.ts +4 -0
- package/node_modules/zod/v4/core/errors.js +107 -25
- package/node_modules/zod/v4/core/index.cjs +24 -1
- package/node_modules/zod/v4/core/index.d.cts +3 -0
- package/node_modules/zod/v4/core/index.d.ts +3 -0
- package/node_modules/zod/v4/core/index.js +3 -0
- package/node_modules/zod/v4/core/json-schema-generator.cjs +24 -1
- package/node_modules/zod/v4/core/json-schema-generator.d.cts +2 -2
- package/node_modules/zod/v4/core/json-schema-generator.d.ts +2 -2
- package/node_modules/zod/v4/core/json-schema-generator.js +6 -2
- package/node_modules/zod/v4/core/json-schema-processors.cjs +470 -149
- package/node_modules/zod/v4/core/json-schema-processors.d.cts +17 -0
- package/node_modules/zod/v4/core/json-schema-processors.d.ts +17 -0
- package/node_modules/zod/v4/core/json-schema-processors.js +427 -150
- package/node_modules/zod/v4/core/json-schema.cjs +19 -0
- package/node_modules/zod/v4/core/json-schema.d.cts +2 -1
- package/node_modules/zod/v4/core/json-schema.d.ts +2 -1
- package/node_modules/zod/v4/core/memoizer.cjs +363 -0
- package/node_modules/zod/v4/core/memoizer.d.cts +15 -0
- package/node_modules/zod/v4/core/memoizer.d.ts +15 -0
- package/node_modules/zod/v4/core/memoizer.js +314 -0
- package/node_modules/zod/v4/core/parse.cjs +148 -46
- package/node_modules/zod/v4/core/parse.d.cts +14 -11
- package/node_modules/zod/v4/core/parse.d.ts +14 -11
- package/node_modules/zod/v4/core/parse.js +127 -45
- package/node_modules/zod/v4/core/regexes.cjs +52 -17
- package/node_modules/zod/v4/core/regexes.d.cts +4 -0
- package/node_modules/zod/v4/core/regexes.d.ts +4 -0
- package/node_modules/zod/v4/core/regexes.js +30 -15
- package/node_modules/zod/v4/core/registries.cjs +19 -0
- package/node_modules/zod/v4/core/registries.js +2 -2
- package/node_modules/zod/v4/core/schemas.cjs +826 -387
- package/node_modules/zod/v4/core/schemas.d.cts +140 -36
- package/node_modules/zod/v4/core/schemas.d.ts +140 -36
- package/node_modules/zod/v4/core/schemas.js +796 -387
- package/node_modules/zod/v4/core/standard-schema.cjs +19 -0
- package/node_modules/zod/v4/core/to-json-schema.cjs +270 -45
- package/node_modules/zod/v4/core/to-json-schema.d.cts +48 -5
- package/node_modules/zod/v4/core/to-json-schema.d.ts +48 -5
- package/node_modules/zod/v4/core/to-json-schema.js +248 -45
- package/node_modules/zod/v4/core/util.cjs +376 -157
- package/node_modules/zod/v4/core/util.d.cts +79 -1
- package/node_modules/zod/v4/core/util.d.ts +79 -1
- package/node_modules/zod/v4/core/util.js +345 -156
- package/node_modules/zod/v4/core/versions.cjs +21 -2
- package/node_modules/zod/v4/core/versions.d.cts +1 -1
- package/node_modules/zod/v4/core/versions.d.ts +1 -1
- package/node_modules/zod/v4/core/versions.js +2 -2
- package/node_modules/zod/v4/core/visit.cjs +226 -0
- package/node_modules/zod/v4/core/visit.d.cts +30 -0
- package/node_modules/zod/v4/core/visit.d.ts +30 -0
- package/node_modules/zod/v4/core/visit.js +181 -0
- package/node_modules/zod/v4/index.cjs +34 -5
- package/node_modules/zod/v4/index.d.cts +2 -2
- package/node_modules/zod/v4/index.d.ts +2 -2
- package/node_modules/zod/v4/index.js +3 -2
- package/node_modules/zod/v4/locales/ar.cjs +4 -0
- package/node_modules/zod/v4/locales/ar.js +4 -0
- package/node_modules/zod/v4/locales/az.cjs +4 -0
- package/node_modules/zod/v4/locales/az.js +4 -0
- package/node_modules/zod/v4/locales/be.cjs +11 -0
- package/node_modules/zod/v4/locales/be.js +11 -0
- package/node_modules/zod/v4/locales/bg.cjs +4 -0
- package/node_modules/zod/v4/locales/bg.js +4 -0
- package/node_modules/zod/v4/locales/bn.cjs +139 -0
- package/node_modules/zod/v4/locales/bn.d.cts +5 -0
- package/node_modules/zod/v4/locales/bn.d.ts +4 -0
- package/node_modules/zod/v4/locales/bn.js +112 -0
- package/node_modules/zod/v4/locales/ca.cjs +4 -0
- package/node_modules/zod/v4/locales/ca.js +4 -0
- package/node_modules/zod/v4/locales/ckb.cjs +159 -0
- package/node_modules/zod/v4/locales/ckb.d.cts +5 -0
- package/node_modules/zod/v4/locales/ckb.d.ts +4 -0
- package/node_modules/zod/v4/locales/ckb.js +132 -0
- package/node_modules/zod/v4/locales/cs.cjs +4 -0
- package/node_modules/zod/v4/locales/cs.js +4 -0
- package/node_modules/zod/v4/locales/da.cjs +6 -2
- package/node_modules/zod/v4/locales/da.js +6 -2
- package/node_modules/zod/v4/locales/de.cjs +4 -0
- package/node_modules/zod/v4/locales/de.js +4 -0
- package/node_modules/zod/v4/locales/el.cjs +2 -0
- package/node_modules/zod/v4/locales/el.js +2 -0
- package/node_modules/zod/v4/locales/en.cjs +15 -4
- package/node_modules/zod/v4/locales/en.js +15 -4
- package/node_modules/zod/v4/locales/eo.cjs +4 -0
- package/node_modules/zod/v4/locales/eo.js +4 -0
- package/node_modules/zod/v4/locales/es.cjs +3 -0
- package/node_modules/zod/v4/locales/es.js +3 -0
- package/node_modules/zod/v4/locales/fa.cjs +4 -0
- package/node_modules/zod/v4/locales/fa.js +4 -0
- package/node_modules/zod/v4/locales/fi.cjs +4 -0
- package/node_modules/zod/v4/locales/fi.js +4 -0
- package/node_modules/zod/v4/locales/fr-CA.cjs +4 -0
- package/node_modules/zod/v4/locales/fr-CA.js +4 -0
- package/node_modules/zod/v4/locales/fr.cjs +17 -14
- package/node_modules/zod/v4/locales/fr.js +17 -14
- package/node_modules/zod/v4/locales/gu.cjs +139 -0
- package/node_modules/zod/v4/locales/gu.d.cts +5 -0
- package/node_modules/zod/v4/locales/gu.d.ts +4 -0
- package/node_modules/zod/v4/locales/gu.js +112 -0
- package/node_modules/zod/v4/locales/he.cjs +6 -0
- package/node_modules/zod/v4/locales/he.js +6 -0
- package/node_modules/zod/v4/locales/hi.cjs +137 -0
- package/node_modules/zod/v4/locales/hi.d.cts +5 -0
- package/node_modules/zod/v4/locales/hi.d.ts +4 -0
- package/node_modules/zod/v4/locales/hi.js +110 -0
- package/node_modules/zod/v4/locales/hr.cjs +3 -0
- package/node_modules/zod/v4/locales/hr.js +3 -0
- package/node_modules/zod/v4/locales/hu.cjs +4 -0
- package/node_modules/zod/v4/locales/hu.js +4 -0
- package/node_modules/zod/v4/locales/hy.cjs +10 -0
- package/node_modules/zod/v4/locales/hy.js +10 -0
- package/node_modules/zod/v4/locales/id.cjs +4 -0
- package/node_modules/zod/v4/locales/id.js +4 -0
- package/node_modules/zod/v4/locales/index.cjs +43 -2
- package/node_modules/zod/v4/locales/index.d.cts +11 -0
- package/node_modules/zod/v4/locales/index.d.ts +11 -0
- package/node_modules/zod/v4/locales/index.js +11 -0
- package/node_modules/zod/v4/locales/is.cjs +4 -0
- package/node_modules/zod/v4/locales/is.js +4 -0
- package/node_modules/zod/v4/locales/it.cjs +4 -0
- package/node_modules/zod/v4/locales/it.js +4 -0
- package/node_modules/zod/v4/locales/ja.cjs +4 -0
- package/node_modules/zod/v4/locales/ja.js +4 -0
- package/node_modules/zod/v4/locales/ka.cjs +4 -0
- package/node_modules/zod/v4/locales/ka.js +4 -0
- package/node_modules/zod/v4/locales/km.cjs +4 -0
- package/node_modules/zod/v4/locales/km.js +4 -0
- package/node_modules/zod/v4/locales/kn.cjs +142 -0
- package/node_modules/zod/v4/locales/kn.d.cts +5 -0
- package/node_modules/zod/v4/locales/kn.d.ts +4 -0
- package/node_modules/zod/v4/locales/kn.js +115 -0
- package/node_modules/zod/v4/locales/ko.cjs +4 -0
- package/node_modules/zod/v4/locales/ko.js +4 -0
- package/node_modules/zod/v4/locales/lt.cjs +3 -0
- package/node_modules/zod/v4/locales/lt.js +3 -0
- package/node_modules/zod/v4/locales/mk.cjs +4 -0
- package/node_modules/zod/v4/locales/mk.js +4 -0
- package/node_modules/zod/v4/locales/ms.cjs +4 -0
- package/node_modules/zod/v4/locales/ms.js +4 -0
- package/node_modules/zod/v4/locales/ne.cjs +137 -0
- package/node_modules/zod/v4/locales/ne.d.cts +5 -0
- package/node_modules/zod/v4/locales/ne.d.ts +4 -0
- package/node_modules/zod/v4/locales/ne.js +110 -0
- package/node_modules/zod/v4/locales/nl.cjs +4 -0
- package/node_modules/zod/v4/locales/nl.js +4 -0
- package/node_modules/zod/v4/locales/nn.cjs +139 -0
- package/node_modules/zod/v4/locales/nn.d.cts +5 -0
- package/node_modules/zod/v4/locales/nn.d.ts +4 -0
- package/node_modules/zod/v4/locales/nn.js +112 -0
- package/node_modules/zod/v4/locales/no.cjs +6 -2
- package/node_modules/zod/v4/locales/no.js +6 -2
- package/node_modules/zod/v4/locales/ota.cjs +4 -0
- package/node_modules/zod/v4/locales/ota.js +4 -0
- package/node_modules/zod/v4/locales/pl.cjs +4 -0
- package/node_modules/zod/v4/locales/pl.js +4 -0
- package/node_modules/zod/v4/locales/ps.cjs +4 -0
- package/node_modules/zod/v4/locales/ps.js +4 -0
- package/node_modules/zod/v4/locales/pt-BR.cjs +169 -0
- package/node_modules/zod/v4/locales/pt-BR.d.cts +5 -0
- package/node_modules/zod/v4/locales/pt-BR.d.ts +4 -0
- package/node_modules/zod/v4/locales/pt-BR.js +142 -0
- package/node_modules/zod/v4/locales/pt.cjs +88 -55
- package/node_modules/zod/v4/locales/pt.js +88 -55
- package/node_modules/zod/v4/locales/ro.cjs +2 -0
- package/node_modules/zod/v4/locales/ro.js +2 -0
- package/node_modules/zod/v4/locales/ru.cjs +11 -0
- package/node_modules/zod/v4/locales/ru.js +11 -0
- package/node_modules/zod/v4/locales/sk.cjs +142 -0
- package/node_modules/zod/v4/locales/sk.d.cts +5 -0
- package/node_modules/zod/v4/locales/sk.d.ts +4 -0
- package/node_modules/zod/v4/locales/sk.js +115 -0
- package/node_modules/zod/v4/locales/sl.cjs +4 -0
- package/node_modules/zod/v4/locales/sl.js +4 -0
- package/node_modules/zod/v4/locales/sv.cjs +6 -2
- package/node_modules/zod/v4/locales/sv.js +6 -2
- package/node_modules/zod/v4/locales/ta.cjs +4 -0
- package/node_modules/zod/v4/locales/ta.js +4 -0
- package/node_modules/zod/v4/locales/tg.cjs +143 -0
- package/node_modules/zod/v4/locales/tg.d.cts +5 -0
- package/node_modules/zod/v4/locales/tg.d.ts +4 -0
- package/node_modules/zod/v4/locales/tg.js +116 -0
- package/node_modules/zod/v4/locales/th.cjs +4 -0
- package/node_modules/zod/v4/locales/th.js +4 -0
- package/node_modules/zod/v4/locales/tk.cjs +133 -0
- package/node_modules/zod/v4/locales/tk.d.cts +5 -0
- package/node_modules/zod/v4/locales/tk.d.ts +4 -0
- package/node_modules/zod/v4/locales/tk.js +106 -0
- package/node_modules/zod/v4/locales/tr.cjs +4 -0
- package/node_modules/zod/v4/locales/tr.js +4 -0
- package/node_modules/zod/v4/locales/uk.cjs +4 -0
- package/node_modules/zod/v4/locales/uk.js +4 -0
- package/node_modules/zod/v4/locales/ur.cjs +4 -0
- package/node_modules/zod/v4/locales/ur.js +4 -0
- package/node_modules/zod/v4/locales/uz.cjs +2 -0
- package/node_modules/zod/v4/locales/uz.js +2 -0
- package/node_modules/zod/v4/locales/vi.cjs +4 -0
- package/node_modules/zod/v4/locales/vi.js +4 -0
- package/node_modules/zod/v4/locales/yo.cjs +4 -0
- package/node_modules/zod/v4/locales/yo.js +4 -0
- package/node_modules/zod/v4/locales/zh-CN.cjs +4 -0
- package/node_modules/zod/v4/locales/zh-CN.js +4 -0
- package/node_modules/zod/v4/locales/zh-TW.cjs +4 -0
- package/node_modules/zod/v4/locales/zh-TW.js +4 -0
- package/node_modules/zod/v4/mini/checks.cjs +19 -0
- package/node_modules/zod/v4/mini/coerce.cjs +19 -0
- package/node_modules/zod/v4/mini/deep-partial.cjs +58 -0
- package/node_modules/zod/v4/mini/deep-partial.d.cts +14 -0
- package/node_modules/zod/v4/mini/deep-partial.d.ts +14 -0
- package/node_modules/zod/v4/mini/deep-partial.js +13 -0
- package/node_modules/zod/v4/mini/external.cjs +33 -1
- package/node_modules/zod/v4/mini/external.d.cts +5 -2
- package/node_modules/zod/v4/mini/external.d.ts +5 -2
- package/node_modules/zod/v4/mini/external.js +3 -1
- package/node_modules/zod/v4/mini/in-out.cjs +82 -0
- package/node_modules/zod/v4/mini/in-out.d.cts +8 -0
- package/node_modules/zod/v4/mini/in-out.d.ts +8 -0
- package/node_modules/zod/v4/mini/in-out.js +36 -0
- package/node_modules/zod/v4/mini/index.cjs +19 -0
- package/node_modules/zod/v4/mini/iso.cjs +19 -0
- package/node_modules/zod/v4/mini/parse.cjs +22 -1
- package/node_modules/zod/v4/mini/parse.d.cts +1 -1
- package/node_modules/zod/v4/mini/parse.d.ts +1 -1
- package/node_modules/zod/v4/mini/parse.js +1 -1
- package/node_modules/zod/v4/mini/schemas.cjs +115 -49
- package/node_modules/zod/v4/mini/schemas.d.cts +52 -14
- package/node_modules/zod/v4/mini/schemas.d.ts +52 -14
- package/node_modules/zod/v4/mini/schemas.js +90 -47
- package/node_modules/zod/v4-mini/index.cjs +19 -0
- package/package.json +3 -2
- package/skills/context-management/SKILL.md +258 -0
- package/skills/figma-implement-design/SKILL.md +258 -0
- package/skills/orchestrator/SKILL.md +82 -0
- package/skills/s-help/SKILL.md +42 -0
- package/skills/s-help/resources/README.md +23 -0
- package/skills/s-help/resources/commands.json +78 -0
- package/skills/s-help/resources/s-acm.md +26 -0
- package/skills/s-help/resources/s-bash-mode.md +23 -0
- package/skills/s-help/resources/s-bash-reset.md +23 -0
- package/skills/s-help/resources/s-context.md +25 -0
- package/skills/s-help/resources/s-filechanges-accept.md +25 -0
- package/skills/s-help/resources/s-filechanges-decline.md +30 -0
- package/skills/s-help/resources/s-filechanges.md +38 -0
- package/skills/s-help/resources/s-footer.md +38 -0
- package/skills/s-help/resources/s-promptlib.md +28 -0
- package/skills/s-help/resources/s-skills-manager.md +31 -0
- package/skills/s-help/resources/s-stash-history.md +26 -0
- package/skills/screenshot/SKILL.md +267 -0
- package/skills/screenshot/scripts/ensure_macos_permissions.sh +54 -0
- package/skills/screenshot/scripts/macos_display_info.swift +22 -0
- package/skills/screenshot/scripts/macos_permissions.swift +40 -0
- package/skills/screenshot/scripts/macos_window_info.swift +126 -0
- package/skills/screenshot/scripts/take_screenshot.ps1 +163 -0
- package/skills/screenshot/scripts/take_screenshot.py +585 -0
- package/slingshot/index.js +232 -230
- package/node_modules/@types/node/ffi.d.ts +0 -486
- package/node_modules/@types/node/inspector/promises.d.ts +0 -35
- package/node_modules/@types/node/path/posix.d.ts +0 -8
- package/node_modules/@types/node/path/win32.d.ts +0 -8
- package/node_modules/@types/node/quic.d.ts +0 -2151
- package/node_modules/@types/node/stream/iter.d.ts +0 -452
- package/node_modules/@types/node/test/reporters.d.ts +0 -59
- package/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +0 -71
- package/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +0 -72
- package/node_modules/@types/node/ts5.7/index.d.ts +0 -118
- package/node_modules/@types/node/util/types.d.ts +0 -558
- package/node_modules/@types/node/vfs.d.ts +0 -210
- package/node_modules/@types/node/web-globals/blob.d.ts +0 -23
- package/node_modules/@types/node/web-globals/console.d.ts +0 -9
- package/node_modules/@types/node/web-globals/crypto.d.ts +0 -39
- package/node_modules/@types/node/web-globals/encoding.d.ts +0 -11
- package/node_modules/@types/node/web-globals/importmeta.d.ts +0 -13
- package/node_modules/@types/node/web-globals/messaging.d.ts +0 -23
- package/node_modules/@types/node/web-globals/performance.d.ts +0 -45
- package/node_modules/@types/node/web-globals/timers.d.ts +0 -44
- package/node_modules/@types/node/web-globals/url.d.ts +0 -24
- package/node_modules/@types/node/zlib/iter.d.ts +0 -131
- package/node_modules/jose/dist/webapi/lib/base64.js +0 -22
- package/node_modules/jose/dist/webapi/lib/crypto_key.js +0 -28
- package/node_modules/jose/dist/webapi/lib/helpers.js +0 -42
- package/node_modules/jose/dist/webapi/lib/invalid_key_input.js +0 -26
- package/node_modules/jose/dist/webapi/lib/is_key_like.js +0 -17
- package/node_modules/jose/dist/webapi/lib/jwk_metadata.js +0 -20
- package/node_modules/jose/dist/webapi/lib/jwk_to_key.js +0 -17
- package/node_modules/jose/dist/webapi/lib/key_options.js +0 -6
- package/node_modules/jose/dist/webapi/lib/options.js +0 -74
- package/node_modules/jose/dist/webapi/lib/signing.js +0 -26
- package/node_modules/jose/dist/webapi/lib/type_checks.js +0 -33
- package/node_modules/undici-types/cache-interceptor.d.ts +0 -179
- package/node_modules/undici-types/client-stats.d.ts +0 -15
- package/node_modules/undici-types/dispatcher1-wrapper.d.ts +0 -7
- package/node_modules/undici-types/h2c-client.d.ts +0 -73
- package/node_modules/undici-types/mock-call-history.d.ts +0 -111
- package/node_modules/undici-types/round-robin-pool.d.ts +0 -39
- package/node_modules/undici-types/snapshot-agent.d.ts +0 -113
- package/node_modules/undici-types/socks5-proxy-agent.d.ts +0 -25
- package/node_modules/undici-types/utility.d.ts +0 -7
- package/node_modules/zod/src/v4/core/config.ts +0 -15
|
@@ -1,18 +1,131 @@
|
|
|
1
1
|
import type * as checks from "./checks.js";
|
|
2
2
|
import type * as JSONSchema from "./json-schema.js";
|
|
3
|
+
import * as regexes from "./regexes.js";
|
|
3
4
|
import type { $ZodRegistry } from "./registries.js";
|
|
5
|
+
import { base64Charset, base64urlCharset } from "./schemas.js";
|
|
4
6
|
import type * as schemas from "./schemas.js";
|
|
5
7
|
import {
|
|
8
|
+
type ProcessParams,
|
|
6
9
|
type Processor,
|
|
7
10
|
type RegistryToJSONSchemaParams,
|
|
11
|
+
type Seen,
|
|
12
|
+
type ToJSONSchemaContext,
|
|
8
13
|
type ToJSONSchemaParams,
|
|
9
14
|
type ZodStandardJSONSchemaPayload,
|
|
10
15
|
extractDefs,
|
|
11
16
|
finalize,
|
|
17
|
+
handleUnrepresentable,
|
|
12
18
|
initializeContext,
|
|
13
|
-
|
|
19
|
+
isTransforming,
|
|
20
|
+
processSchema,
|
|
14
21
|
} from "./to-json-schema.js";
|
|
15
|
-
import { getEnumValues } from "./util.js";
|
|
22
|
+
import { BIGINT_FORMAT_RANGES, NUMBER_FORMAT_RANGES, assignProp, getEnumValues } from "./util.js";
|
|
23
|
+
|
|
24
|
+
// ==================== CHECK AGGREGATION ====================
|
|
25
|
+
|
|
26
|
+
// constraint metadata comes from folding `def.checks` here, not from trusting `_zod.bag`: the bag is written by each check's own `onattach` in chain order, which has repeatedly produced order-dependent and lossy values (#6550). runtime checks are a conjunction, so every merge below is the conjunction's — tightest bound wins, patterns union, divisors collect, mime lists intersect
|
|
27
|
+
type Bound = number | bigint | Date;
|
|
28
|
+
|
|
29
|
+
interface CheckAggregate<N extends Bound = Bound> {
|
|
30
|
+
minimum?: N;
|
|
31
|
+
maximum?: N;
|
|
32
|
+
exclusiveMinimum?: N;
|
|
33
|
+
exclusiveMaximum?: N;
|
|
34
|
+
multipleOf?: number[];
|
|
35
|
+
format?: string;
|
|
36
|
+
// ORed across formats: any integer format keeps the conjunction integer, whatever format lands last
|
|
37
|
+
isInt?: boolean;
|
|
38
|
+
patterns?: Set<RegExp>;
|
|
39
|
+
mime?: string[];
|
|
40
|
+
contentEncoding?: string;
|
|
41
|
+
// a datetime that drops the offset or the seconds accepts what `date-time` forbids, so the keyword is withheld
|
|
42
|
+
laxFormat?: boolean;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const narrowMin = (agg: CheckAggregate, key: "minimum" | "exclusiveMinimum", value: Bound): void => {
|
|
46
|
+
if (agg[key] === undefined || value > agg[key]) agg[key] = value;
|
|
47
|
+
};
|
|
48
|
+
const narrowMax = (agg: CheckAggregate, key: "maximum" | "exclusiveMaximum", value: Bound): void => {
|
|
49
|
+
if (agg[key] === undefined || value < agg[key]) agg[key] = value;
|
|
50
|
+
};
|
|
51
|
+
const narrowBoth = (agg: CheckAggregate, value: number): void => {
|
|
52
|
+
narrowMin(agg, "minimum", value);
|
|
53
|
+
narrowMax(agg, "maximum", value);
|
|
54
|
+
};
|
|
55
|
+
const addDivisor = (agg: CheckAggregate, value: number): void => {
|
|
56
|
+
agg.multipleOf ??= [];
|
|
57
|
+
if (!agg.multipleOf.includes(value)) agg.multipleOf.push(value);
|
|
58
|
+
};
|
|
59
|
+
const addPattern = (agg: CheckAggregate, pattern: RegExp): void => {
|
|
60
|
+
agg.patterns ??= new Set();
|
|
61
|
+
agg.patterns.add(pattern);
|
|
62
|
+
};
|
|
63
|
+
const intersectMime = (agg: CheckAggregate, mime: string[]): void => {
|
|
64
|
+
agg.mime = agg.mime ? agg.mime.filter((m) => mime.includes(m)) : [...mime];
|
|
65
|
+
};
|
|
66
|
+
// last-wins, matching the bag's historical write order; the flag keeps an integer format from being lost to a later float one
|
|
67
|
+
const setFormat = (agg: CheckAggregate, format: string): void => {
|
|
68
|
+
agg.format = format;
|
|
69
|
+
if (format.includes("int")) agg.isInt = true;
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
type Contributor = (agg: CheckAggregate, def: any) => void;
|
|
73
|
+
const minContributor: Contributor = (agg, def) => narrowMin(agg, "minimum", def.minimum);
|
|
74
|
+
const maxContributor: Contributor = (agg, def) => narrowMax(agg, "maximum", def.maximum);
|
|
75
|
+
const formatContributor =
|
|
76
|
+
(ranges: Record<string, [Bound, Bound]>): Contributor =>
|
|
77
|
+
(agg, def) => {
|
|
78
|
+
setFormat(agg, def.format);
|
|
79
|
+
const [minimum, maximum] = ranges[def.format]!;
|
|
80
|
+
narrowMin(agg, "minimum", minimum);
|
|
81
|
+
narrowMax(agg, "maximum", maximum);
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
const contributors: Record<string, Contributor> = {
|
|
85
|
+
greater_than: (agg, def) => narrowMin(agg, def.inclusive ? "minimum" : "exclusiveMinimum", def.value),
|
|
86
|
+
less_than: (agg, def) => narrowMax(agg, def.inclusive ? "maximum" : "exclusiveMaximum", def.value),
|
|
87
|
+
multiple_of: (agg, def) => addDivisor(agg, def.value),
|
|
88
|
+
number_format: formatContributor(NUMBER_FORMAT_RANGES),
|
|
89
|
+
bigint_format: formatContributor(BIGINT_FORMAT_RANGES),
|
|
90
|
+
min_length: minContributor,
|
|
91
|
+
max_length: maxContributor,
|
|
92
|
+
length_equals: (agg, def) => narrowBoth(agg, def.length),
|
|
93
|
+
min_size: minContributor,
|
|
94
|
+
max_size: maxContributor,
|
|
95
|
+
size_equals: (agg, def) => narrowBoth(agg, def.size),
|
|
96
|
+
string_format: (agg, def) => {
|
|
97
|
+
setFormat(agg, def.format);
|
|
98
|
+
if (def.pattern) addPattern(agg, def.pattern);
|
|
99
|
+
if (def.format === "base64" || def.format === "base64url") agg.contentEncoding = def.format;
|
|
100
|
+
if (def.local || def.precision === -1) agg.laxFormat = true;
|
|
101
|
+
},
|
|
102
|
+
mime_type: (agg, def) => intersectMime(agg, def.mime),
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
export function aggregateChecks<N extends Bound = Bound>(schema: schemas.$ZodType): CheckAggregate<N> {
|
|
106
|
+
const agg: CheckAggregate = {};
|
|
107
|
+
const def = schema._zod.def;
|
|
108
|
+
// a format schema is its own first check, same rule as $ZodType init
|
|
109
|
+
const list: checks.$ZodCheck[] = schema._zod.traits.has("$ZodCheck")
|
|
110
|
+
? [schema as unknown as checks.$ZodCheck, ...(def.checks ?? [])]
|
|
111
|
+
: (def.checks ?? []);
|
|
112
|
+
for (const ch of list) contributors[ch._zod.def.check]?.(agg, ch._zod.def);
|
|
113
|
+
|
|
114
|
+
// reconcile with the bag so third-party onattach contributions still land; first-party residue is never tighter than the fold, so merging it back is idempotent for one and additive for the other
|
|
115
|
+
const bag = schema._zod.bag as Omit<CheckAggregate, "multipleOf"> & { multipleOf?: number };
|
|
116
|
+
if (bag.minimum !== undefined) narrowMin(agg, "minimum", bag.minimum);
|
|
117
|
+
if (bag.exclusiveMinimum !== undefined) narrowMin(agg, "exclusiveMinimum", bag.exclusiveMinimum);
|
|
118
|
+
if (bag.maximum !== undefined) narrowMax(agg, "maximum", bag.maximum);
|
|
119
|
+
if (bag.exclusiveMaximum !== undefined) narrowMax(agg, "exclusiveMaximum", bag.exclusiveMaximum);
|
|
120
|
+
if (bag.multipleOf !== undefined) addDivisor(agg, bag.multipleOf);
|
|
121
|
+
if (bag.format !== undefined) {
|
|
122
|
+
agg.format ??= bag.format;
|
|
123
|
+
if (bag.format.includes("int")) agg.isInt = true;
|
|
124
|
+
}
|
|
125
|
+
if (bag.mime) intersectMime(agg, bag.mime);
|
|
126
|
+
for (const pattern of bag.patterns ?? []) addPattern(agg, pattern);
|
|
127
|
+
return agg as CheckAggregate<N>;
|
|
128
|
+
}
|
|
16
129
|
|
|
17
130
|
const formatMap: Partial<Record<checks.$ZodStringFormats, string | undefined>> = {
|
|
18
131
|
guid: "uuid",
|
|
@@ -24,11 +137,17 @@ const formatMap: Partial<Record<checks.$ZodStringFormats, string | undefined>> =
|
|
|
24
137
|
|
|
25
138
|
// ==================== SIMPLE TYPE PROCESSORS ====================
|
|
26
139
|
|
|
140
|
+
// the runtime patterns are lax so parse paths never overflow the regex stack; the emitted schema swaps in the exact block forms, which zod itself never executes
|
|
141
|
+
const exactPatterns: Map<RegExp, RegExp> = new Map([
|
|
142
|
+
[base64Charset, regexes.base64],
|
|
143
|
+
[base64urlCharset, regexes.base64url],
|
|
144
|
+
]);
|
|
145
|
+
const exactPattern = (p: RegExp): RegExp => exactPatterns.get(p) ?? p;
|
|
146
|
+
|
|
27
147
|
export const stringProcessor: Processor<schemas.$ZodString> = (schema, ctx, _json, _params) => {
|
|
28
148
|
const json = _json as JSONSchema.StringSchema;
|
|
29
149
|
json.type = "string";
|
|
30
|
-
const { minimum, maximum, format, patterns, contentEncoding } = schema
|
|
31
|
-
.bag as schemas.$ZodStringInternals<unknown>["bag"];
|
|
150
|
+
const { minimum, maximum, format, patterns, contentEncoding, laxFormat } = aggregateChecks(schema);
|
|
32
151
|
if (typeof minimum === "number") json.minLength = minimum;
|
|
33
152
|
if (typeof maximum === "number") json.maxLength = maximum;
|
|
34
153
|
// custom pattern overrides format
|
|
@@ -36,19 +155,18 @@ export const stringProcessor: Processor<schemas.$ZodString> = (schema, ctx, _jso
|
|
|
36
155
|
json.format = formatMap[format as checks.$ZodStringFormats] ?? format;
|
|
37
156
|
if (json.format === "") delete json.format; // empty format is not valid
|
|
38
157
|
|
|
39
|
-
//
|
|
40
|
-
|
|
41
|
-
if (format === "time") {
|
|
158
|
+
// `z.iso.time()` is never full-time, and `laxFormat` carries the datetime shapes that also accept what their keyword forbids
|
|
159
|
+
if (format === "time" || laxFormat) {
|
|
42
160
|
delete json.format;
|
|
43
161
|
}
|
|
44
162
|
}
|
|
45
163
|
if (contentEncoding) json.contentEncoding = contentEncoding;
|
|
46
164
|
if (patterns && patterns.size > 0) {
|
|
47
|
-
const
|
|
48
|
-
if (
|
|
49
|
-
else if (
|
|
165
|
+
const patternList = [...patterns].map(exactPattern);
|
|
166
|
+
if (patternList.length === 1) json.pattern = patternList[0]!.source;
|
|
167
|
+
else if (patternList.length > 1) {
|
|
50
168
|
json.allOf = [
|
|
51
|
-
...
|
|
169
|
+
...patternList.map((regex) => ({
|
|
52
170
|
...(ctx.target === "draft-07" || ctx.target === "draft-04" || ctx.target === "openapi-3.0"
|
|
53
171
|
? ({ type: "string" } as const)
|
|
54
172
|
: {}),
|
|
@@ -59,11 +177,10 @@ export const stringProcessor: Processor<schemas.$ZodString> = (schema, ctx, _jso
|
|
|
59
177
|
}
|
|
60
178
|
};
|
|
61
179
|
|
|
62
|
-
export const numberProcessor: Processor<schemas.$ZodNumber> = (schema, ctx, _json,
|
|
180
|
+
export const numberProcessor: Processor<schemas.$ZodNumber> = (schema, ctx, _json, params) => {
|
|
63
181
|
const json = _json as JSONSchema.NumberSchema | JSONSchema.IntegerSchema;
|
|
64
|
-
const { minimum, maximum,
|
|
65
|
-
|
|
66
|
-
else json.type = "number";
|
|
182
|
+
const { minimum, maximum, multipleOf, exclusiveMaximum, exclusiveMinimum, isInt } = aggregateChecks<number>(schema);
|
|
183
|
+
json.type = isInt ? "integer" : "number";
|
|
67
184
|
|
|
68
185
|
// when both minimum and exclusiveMinimum exist, pick the more restrictive one
|
|
69
186
|
const exMin = typeof exclusiveMinimum === "number" && exclusiveMinimum >= (minimum ?? Number.NEGATIVE_INFINITY);
|
|
@@ -92,23 +209,37 @@ export const numberProcessor: Processor<schemas.$ZodNumber> = (schema, ctx, _jso
|
|
|
92
209
|
json.maximum = maximum;
|
|
93
210
|
}
|
|
94
211
|
|
|
95
|
-
if (
|
|
212
|
+
if (multipleOf) {
|
|
213
|
+
// JSON Schema requires a divisor strictly greater than zero, and a non-finite one does not survive JSON at all. A negative divisor accepts exactly what its absolute value accepts, so it still maps; zero, NaN and Infinity have no keyword form.
|
|
214
|
+
const divisors = new Set<number>();
|
|
215
|
+
for (const divisor of multipleOf) {
|
|
216
|
+
if (Number.isFinite(divisor) && divisor !== 0) divisors.add(Math.abs(divisor));
|
|
217
|
+
else
|
|
218
|
+
handleUnrepresentable(
|
|
219
|
+
schema,
|
|
220
|
+
ctx,
|
|
221
|
+
json,
|
|
222
|
+
params,
|
|
223
|
+
`A multipleOf divisor of ${divisor} cannot be represented in JSON Schema`
|
|
224
|
+
);
|
|
225
|
+
}
|
|
226
|
+
// chained divisors are a conjunction the keyword cannot carry alone, so extras ride an allOf, same as stacked patterns
|
|
227
|
+
const [first, ...rest] = divisors;
|
|
228
|
+
if (first !== undefined) json.multipleOf = first;
|
|
229
|
+
if (rest.length) json.allOf = [...(json.allOf ?? []), ...rest.map((m) => ({ multipleOf: m }))];
|
|
230
|
+
}
|
|
96
231
|
};
|
|
97
232
|
|
|
98
233
|
export const booleanProcessor: Processor<schemas.$ZodBoolean> = (_schema, _ctx, json, _params) => {
|
|
99
234
|
(json as JSONSchema.BooleanSchema).type = "boolean";
|
|
100
235
|
};
|
|
101
236
|
|
|
102
|
-
export const bigintProcessor: Processor<schemas.$ZodBigInt> = (
|
|
103
|
-
|
|
104
|
-
throw new Error("BigInt cannot be represented in JSON Schema");
|
|
105
|
-
}
|
|
237
|
+
export const bigintProcessor: Processor<schemas.$ZodBigInt> = (schema, ctx, json, params) => {
|
|
238
|
+
handleUnrepresentable(schema, ctx, json, params, "BigInt cannot be represented in JSON Schema");
|
|
106
239
|
};
|
|
107
240
|
|
|
108
|
-
export const symbolProcessor: Processor<schemas.$ZodSymbol> = (
|
|
109
|
-
|
|
110
|
-
throw new Error("Symbols cannot be represented in JSON Schema");
|
|
111
|
-
}
|
|
241
|
+
export const symbolProcessor: Processor<schemas.$ZodSymbol> = (schema, ctx, json, params) => {
|
|
242
|
+
handleUnrepresentable(schema, ctx, json, params, "Symbols cannot be represented in JSON Schema");
|
|
112
243
|
};
|
|
113
244
|
|
|
114
245
|
export const nullProcessor: Processor<schemas.$ZodNull> = (_schema, ctx, json, _params) => {
|
|
@@ -121,16 +252,12 @@ export const nullProcessor: Processor<schemas.$ZodNull> = (_schema, ctx, json, _
|
|
|
121
252
|
}
|
|
122
253
|
};
|
|
123
254
|
|
|
124
|
-
export const undefinedProcessor: Processor<schemas.$ZodUndefined> = (
|
|
125
|
-
|
|
126
|
-
throw new Error("Undefined cannot be represented in JSON Schema");
|
|
127
|
-
}
|
|
255
|
+
export const undefinedProcessor: Processor<schemas.$ZodUndefined> = (schema, ctx, json, params) => {
|
|
256
|
+
handleUnrepresentable(schema, ctx, json, params, "Undefined cannot be represented in JSON Schema");
|
|
128
257
|
};
|
|
129
258
|
|
|
130
|
-
export const voidProcessor: Processor<schemas.$ZodVoid> = (
|
|
131
|
-
|
|
132
|
-
throw new Error("Void cannot be represented in JSON Schema");
|
|
133
|
-
}
|
|
259
|
+
export const voidProcessor: Processor<schemas.$ZodVoid> = (schema, ctx, json, params) => {
|
|
260
|
+
handleUnrepresentable(schema, ctx, json, params, "Void cannot be represented in JSON Schema");
|
|
134
261
|
};
|
|
135
262
|
|
|
136
263
|
export const neverProcessor: Processor<schemas.$ZodNever> = (_schema, _ctx, json, _params) => {
|
|
@@ -145,37 +272,46 @@ export const unknownProcessor: Processor<schemas.$ZodUnknown> = (_schema, _ctx,
|
|
|
145
272
|
// empty schema accepts anything
|
|
146
273
|
};
|
|
147
274
|
|
|
148
|
-
export const dateProcessor: Processor<schemas.$ZodDate> = (
|
|
149
|
-
|
|
150
|
-
throw new Error("Date cannot be represented in JSON Schema");
|
|
151
|
-
}
|
|
275
|
+
export const dateProcessor: Processor<schemas.$ZodDate> = (schema, ctx, json, params) => {
|
|
276
|
+
handleUnrepresentable(schema, ctx, json, params, "Date cannot be represented in JSON Schema");
|
|
152
277
|
};
|
|
153
278
|
|
|
154
279
|
export const enumProcessor: Processor<schemas.$ZodEnum> = (schema, _ctx, json, _params) => {
|
|
155
280
|
const def = schema._zod.def as schemas.$ZodEnumDef;
|
|
156
281
|
const values = getEnumValues(def.entries);
|
|
282
|
+
|
|
283
|
+
// an empty enum accepts nothing, same as z.never()
|
|
284
|
+
if (values.length === 0) {
|
|
285
|
+
json.not = {};
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
288
|
+
|
|
157
289
|
// Number enums can have both string and number values
|
|
158
290
|
if (values.every((v) => typeof v === "number")) json.type = "number";
|
|
159
291
|
if (values.every((v) => typeof v === "string")) json.type = "string";
|
|
160
292
|
json.enum = values;
|
|
161
293
|
};
|
|
162
294
|
|
|
163
|
-
export const literalProcessor: Processor<schemas.$ZodLiteral> = (schema, ctx, json,
|
|
295
|
+
export const literalProcessor: Processor<schemas.$ZodLiteral> = (schema, ctx, json, params) => {
|
|
164
296
|
const def = schema._zod.def as schemas.$ZodLiteralDef<any>;
|
|
297
|
+
|
|
298
|
+
// a literal with no values accepts nothing, same as z.never()
|
|
299
|
+
if (def.values.length === 0) {
|
|
300
|
+
json.not = {};
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
|
|
165
304
|
const vals: (string | number | boolean | null)[] = [];
|
|
166
305
|
for (const val of def.values) {
|
|
167
306
|
if (val === undefined) {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
}
|
|
307
|
+
// a custom schema replaces the whole literal, so there is nothing left to accumulate
|
|
308
|
+
if (handleUnrepresentable(schema, ctx, json, params, "Literal `undefined` cannot be represented in JSON Schema"))
|
|
309
|
+
return;
|
|
310
|
+
// otherwise do not add to vals
|
|
173
311
|
} else if (typeof val === "bigint") {
|
|
174
|
-
if (ctx
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
vals.push(Number(val));
|
|
178
|
-
}
|
|
312
|
+
if (handleUnrepresentable(schema, ctx, json, params, "BigInt literals cannot be represented in JSON Schema"))
|
|
313
|
+
return;
|
|
314
|
+
vals.push(Number(val));
|
|
179
315
|
} else {
|
|
180
316
|
vals.push(val);
|
|
181
317
|
}
|
|
@@ -199,10 +335,8 @@ export const literalProcessor: Processor<schemas.$ZodLiteral> = (schema, ctx, js
|
|
|
199
335
|
}
|
|
200
336
|
};
|
|
201
337
|
|
|
202
|
-
export const nanProcessor: Processor<schemas.$ZodNaN> = (
|
|
203
|
-
|
|
204
|
-
throw new Error("NaN cannot be represented in JSON Schema");
|
|
205
|
-
}
|
|
338
|
+
export const nanProcessor: Processor<schemas.$ZodNaN> = (schema, ctx, json, params) => {
|
|
339
|
+
handleUnrepresentable(schema, ctx, json, params, "NaN cannot be represented in JSON Schema");
|
|
206
340
|
};
|
|
207
341
|
|
|
208
342
|
export const templateLiteralProcessor: Processor<schemas.$ZodTemplateLiteral> = (schema, _ctx, json, _params) => {
|
|
@@ -215,60 +349,43 @@ export const templateLiteralProcessor: Processor<schemas.$ZodTemplateLiteral> =
|
|
|
215
349
|
|
|
216
350
|
export const fileProcessor: Processor<schemas.$ZodFile> = (schema, _ctx, json, _params) => {
|
|
217
351
|
const _json = json as JSONSchema.StringSchema;
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
contentEncoding: "binary",
|
|
222
|
-
};
|
|
352
|
+
_json.type = "string";
|
|
353
|
+
_json.format = "binary";
|
|
354
|
+
_json.contentEncoding = "binary";
|
|
223
355
|
|
|
224
|
-
const { minimum, maximum, mime } = schema
|
|
225
|
-
if (minimum !== undefined)
|
|
226
|
-
if (maximum !== undefined)
|
|
227
|
-
if (mime)
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
_json.anyOf = mime.map((m) => ({ contentMediaType: m })); // only contentMediaType differs
|
|
234
|
-
}
|
|
235
|
-
} else {
|
|
236
|
-
Object.assign(_json, file);
|
|
237
|
-
}
|
|
356
|
+
const { minimum, maximum, mime } = aggregateChecks<number>(schema);
|
|
357
|
+
if (minimum !== undefined) _json.minLength = minimum;
|
|
358
|
+
if (maximum !== undefined) _json.maxLength = maximum;
|
|
359
|
+
if (!mime) return;
|
|
360
|
+
// an empty intersection means the mime checks share no value, so nothing passes at runtime; `anyOf` must be non-empty, so the false schema is `not: {}`
|
|
361
|
+
if (mime.length === 0) _json.not = {};
|
|
362
|
+
else if (mime.length === 1) _json.contentMediaType = mime[0]!;
|
|
363
|
+
// only contentMediaType differs, so the shared props stay at the root
|
|
364
|
+
else _json.anyOf = mime.map((m) => ({ contentMediaType: m }));
|
|
238
365
|
};
|
|
239
366
|
|
|
240
367
|
export const successProcessor: Processor<schemas.$ZodSuccess> = (_schema, _ctx, json, _params) => {
|
|
241
368
|
(json as JSONSchema.BooleanSchema).type = "boolean";
|
|
242
369
|
};
|
|
243
370
|
|
|
244
|
-
export const customProcessor: Processor<schemas.$ZodCustom> = (
|
|
245
|
-
|
|
246
|
-
throw new Error("Custom types cannot be represented in JSON Schema");
|
|
247
|
-
}
|
|
371
|
+
export const customProcessor: Processor<schemas.$ZodCustom> = (schema, ctx, json, params) => {
|
|
372
|
+
handleUnrepresentable(schema, ctx, json, params, "Custom types cannot be represented in JSON Schema");
|
|
248
373
|
};
|
|
249
374
|
|
|
250
|
-
export const functionProcessor: Processor<schemas.$ZodFunction> = (
|
|
251
|
-
|
|
252
|
-
throw new Error("Function types cannot be represented in JSON Schema");
|
|
253
|
-
}
|
|
375
|
+
export const functionProcessor: Processor<schemas.$ZodFunction> = (schema, ctx, json, params) => {
|
|
376
|
+
handleUnrepresentable(schema, ctx, json, params, "Function types cannot be represented in JSON Schema");
|
|
254
377
|
};
|
|
255
378
|
|
|
256
|
-
export const transformProcessor: Processor<schemas.$ZodTransform> = (
|
|
257
|
-
|
|
258
|
-
throw new Error("Transforms cannot be represented in JSON Schema");
|
|
259
|
-
}
|
|
379
|
+
export const transformProcessor: Processor<schemas.$ZodTransform> = (schema, ctx, json, params) => {
|
|
380
|
+
handleUnrepresentable(schema, ctx, json, params, "Transforms cannot be represented in JSON Schema");
|
|
260
381
|
};
|
|
261
382
|
|
|
262
|
-
export const mapProcessor: Processor<schemas.$ZodMap> = (
|
|
263
|
-
|
|
264
|
-
throw new Error("Map cannot be represented in JSON Schema");
|
|
265
|
-
}
|
|
383
|
+
export const mapProcessor: Processor<schemas.$ZodMap> = (schema, ctx, json, params) => {
|
|
384
|
+
handleUnrepresentable(schema, ctx, json, params, "Map cannot be represented in JSON Schema");
|
|
266
385
|
};
|
|
267
386
|
|
|
268
|
-
export const setProcessor: Processor<schemas.$ZodSet> = (
|
|
269
|
-
|
|
270
|
-
throw new Error("Set cannot be represented in JSON Schema");
|
|
271
|
-
}
|
|
387
|
+
export const setProcessor: Processor<schemas.$ZodSet> = (schema, ctx, json, params) => {
|
|
388
|
+
handleUnrepresentable(schema, ctx, json, params, "Set cannot be represented in JSON Schema");
|
|
272
389
|
};
|
|
273
390
|
|
|
274
391
|
// ==================== COMPOSITE TYPE PROCESSORS ====================
|
|
@@ -276,40 +393,71 @@ export const setProcessor: Processor<schemas.$ZodSet> = (_schema, ctx, _json, _p
|
|
|
276
393
|
export const arrayProcessor: Processor<schemas.$ZodArray> = (schema, ctx, _json, params) => {
|
|
277
394
|
const json = _json as JSONSchema.ArraySchema;
|
|
278
395
|
const def = schema._zod.def as schemas.$ZodArrayDef;
|
|
279
|
-
const { minimum, maximum } = schema
|
|
396
|
+
const { minimum, maximum } = aggregateChecks(schema);
|
|
280
397
|
if (typeof minimum === "number") json.minItems = minimum;
|
|
281
398
|
if (typeof maximum === "number") json.maxItems = maximum;
|
|
282
399
|
|
|
283
400
|
json.type = "array";
|
|
284
|
-
json.items =
|
|
401
|
+
json.items = processSchema(def.element, ctx as any, {
|
|
285
402
|
...params,
|
|
286
403
|
path: [...params.path, "items"],
|
|
287
404
|
});
|
|
288
405
|
};
|
|
289
406
|
|
|
407
|
+
// Transform and catch set `optin = "optional"` at runtime so the parser lets them observe an
|
|
408
|
+
// absent key, but their declared input type stays required. An input JSON Schema describes the
|
|
409
|
+
// declared type, so resolve past them to the schema that actually carries the optionality.
|
|
410
|
+
// Used by both `objectProcessor` (for `required`) and `tupleProcessor` (for `minItems`); see
|
|
411
|
+
// wiki/optionality.md, "The JSON Schema emitter reads the *static* value".
|
|
412
|
+
function inputOptin(schema: schemas.$ZodType): "optional" | "defaulted" | undefined {
|
|
413
|
+
const def = schema._zod.def;
|
|
414
|
+
if (def.type === "pipe" && (def as schemas.$ZodPipeDef).in._zod.traits.has("$ZodTransform")) {
|
|
415
|
+
return inputOptin((def as schemas.$ZodPipeDef).out);
|
|
416
|
+
}
|
|
417
|
+
if (def.type === "catch") {
|
|
418
|
+
return inputOptin((def as schemas.$ZodCatchDef).innerType);
|
|
419
|
+
}
|
|
420
|
+
return schema._zod.optin;
|
|
421
|
+
}
|
|
422
|
+
|
|
290
423
|
export const objectProcessor: Processor<schemas.$ZodObject> = (schema, ctx, _json, params) => {
|
|
291
424
|
const json = _json as JSONSchema.ObjectSchema;
|
|
292
425
|
const def = schema._zod.def as schemas.$ZodObjectDef;
|
|
426
|
+
const shape = def.shape;
|
|
427
|
+
|
|
428
|
+
// dropping it while still emitting `additionalProperties: false` would emit a schema that rejects data this one requires
|
|
429
|
+
const symbolKeys = Object.getOwnPropertySymbols(shape);
|
|
430
|
+
if (
|
|
431
|
+
symbolKeys.length &&
|
|
432
|
+
handleUnrepresentable(schema, ctx, json, params, "Symbol keys cannot be represented in JSON Schema")
|
|
433
|
+
) {
|
|
434
|
+
return;
|
|
435
|
+
}
|
|
436
|
+
|
|
293
437
|
json.type = "object";
|
|
294
438
|
json.properties = {};
|
|
295
|
-
const shape = def.shape;
|
|
296
439
|
|
|
297
440
|
for (const key in shape) {
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
441
|
+
// assignProp so a __proto__ key becomes an own property instead of hitting the inherited setter on the plain {} we build into
|
|
442
|
+
assignProp(
|
|
443
|
+
json.properties,
|
|
444
|
+
key,
|
|
445
|
+
processSchema(shape[key]!, ctx as any, {
|
|
446
|
+
...params,
|
|
447
|
+
path: [...params.path, "properties", key],
|
|
448
|
+
})
|
|
449
|
+
);
|
|
302
450
|
}
|
|
303
451
|
|
|
304
452
|
// required keys
|
|
305
453
|
const allKeys = new Set(Object.keys(shape));
|
|
306
454
|
const requiredKeys = new Set(
|
|
307
455
|
[...allKeys].filter((key) => {
|
|
308
|
-
const
|
|
456
|
+
const field = def.shape[key]!;
|
|
309
457
|
if (ctx.io === "input") {
|
|
310
|
-
return
|
|
458
|
+
return inputOptin(field) === undefined;
|
|
311
459
|
} else {
|
|
312
|
-
return
|
|
460
|
+
return field._zod.optout === undefined;
|
|
313
461
|
}
|
|
314
462
|
})
|
|
315
463
|
);
|
|
@@ -326,20 +474,67 @@ export const objectProcessor: Processor<schemas.$ZodObject> = (schema, ctx, _jso
|
|
|
326
474
|
// regular
|
|
327
475
|
if (ctx.io === "output") json.additionalProperties = false;
|
|
328
476
|
} else if (def.catchall) {
|
|
329
|
-
json.additionalProperties =
|
|
477
|
+
json.additionalProperties = processSchema(def.catchall, ctx as any, {
|
|
330
478
|
...params,
|
|
331
479
|
path: [...params.path, "additionalProperties"],
|
|
332
480
|
});
|
|
333
481
|
}
|
|
334
482
|
};
|
|
335
483
|
|
|
484
|
+
// asserts named properties in place and passes everything else through, so no additionalProperties constraint is emitted
|
|
485
|
+
export const propertiesProcessor: Processor<schemas.$ZodProperties> = (schema, ctx, _json, params) => {
|
|
486
|
+
const json = _json as JSONSchema.ObjectSchema;
|
|
487
|
+
const def = schema._zod.def;
|
|
488
|
+
|
|
489
|
+
// dropping a symbol key silently would emit a schema that asserts less than this one does
|
|
490
|
+
if (
|
|
491
|
+
Object.getOwnPropertySymbols(def.shape).length &&
|
|
492
|
+
handleUnrepresentable(schema, ctx, json, params, "Symbol keys cannot be represented in JSON Schema")
|
|
493
|
+
) {
|
|
494
|
+
return;
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
// the parsed value is the input, so an output-mode emission would describe a transformed value this schema never returns
|
|
498
|
+
if (ctx.io === "output") {
|
|
499
|
+
for (const key in def.shape) {
|
|
500
|
+
if (
|
|
501
|
+
isTransforming(def.shape[key]!) &&
|
|
502
|
+
handleUnrepresentable(
|
|
503
|
+
schema,
|
|
504
|
+
ctx,
|
|
505
|
+
json,
|
|
506
|
+
params,
|
|
507
|
+
`z.properties() returns its input, so the output of a transforming schema at key "${key}" cannot be represented in JSON Schema`
|
|
508
|
+
)
|
|
509
|
+
) {
|
|
510
|
+
return;
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
json.type = "object";
|
|
516
|
+
json.properties = {};
|
|
517
|
+
for (const key in def.shape) {
|
|
518
|
+
assignProp(
|
|
519
|
+
json.properties,
|
|
520
|
+
key,
|
|
521
|
+
processSchema(def.shape[key]!, ctx as any, {
|
|
522
|
+
...params,
|
|
523
|
+
path: [...params.path, "properties", key],
|
|
524
|
+
})
|
|
525
|
+
);
|
|
526
|
+
}
|
|
527
|
+
// input-side optionality in both modes: the parsed value is the input, so a defaulted key that stays absent must not be required of the output either
|
|
528
|
+
const required = Object.keys(def.shape).filter((key) => inputOptin(def.shape[key]!) === undefined);
|
|
529
|
+
if (required.length > 0) json.required = required;
|
|
530
|
+
};
|
|
531
|
+
|
|
336
532
|
export const unionProcessor: Processor<schemas.$ZodUnion> = (schema, ctx, json, params) => {
|
|
337
533
|
const def = schema._zod.def as schemas.$ZodUnionDef;
|
|
338
|
-
// Exclusive unions (inclusive === false) use oneOf (exactly one match) instead of anyOf (one or more matches)
|
|
339
|
-
// This includes both z.xor() and discriminated unions
|
|
534
|
+
// Exclusive unions (inclusive === false) use oneOf (exactly one match) instead of anyOf (one or more matches). This includes both z.xor() and discriminated unions
|
|
340
535
|
const isExclusive = def.inclusive === false;
|
|
341
536
|
const options = def.options.map((x, i) =>
|
|
342
|
-
|
|
537
|
+
processSchema(x, ctx as any, {
|
|
343
538
|
...params,
|
|
344
539
|
path: [...params.path, isExclusive ? "oneOf" : "anyOf", i],
|
|
345
540
|
})
|
|
@@ -353,11 +548,11 @@ export const unionProcessor: Processor<schemas.$ZodUnion> = (schema, ctx, json,
|
|
|
353
548
|
|
|
354
549
|
export const intersectionProcessor: Processor<schemas.$ZodIntersection> = (schema, ctx, json, params) => {
|
|
355
550
|
const def = schema._zod.def as schemas.$ZodIntersectionDef;
|
|
356
|
-
const a =
|
|
551
|
+
const a = processSchema(def.left, ctx as any, {
|
|
357
552
|
...params,
|
|
358
553
|
path: [...params.path, "allOf", 0],
|
|
359
554
|
});
|
|
360
|
-
const b =
|
|
555
|
+
const b = processSchema(def.right, ctx as any, {
|
|
361
556
|
...params,
|
|
362
557
|
path: [...params.path, "allOf", 1],
|
|
363
558
|
});
|
|
@@ -368,6 +563,8 @@ export const intersectionProcessor: Processor<schemas.$ZodIntersection> = (schem
|
|
|
368
563
|
...(isSimpleIntersection(b) ? (b.allOf as any[]) : [b]),
|
|
369
564
|
];
|
|
370
565
|
json.allOf = allOf;
|
|
566
|
+
// Recorded innermost first, so a nested intersection has already folded by the time this one is considered. The array is the handle rather than the schema, because a wrapper that inherits this schema shares the same array; `finalize` folds every object holding it. See `foldIntersection`.
|
|
567
|
+
ctx.intersections.push(allOf);
|
|
371
568
|
};
|
|
372
569
|
|
|
373
570
|
export const tupleProcessor: Processor<schemas.$ZodTuple> = (schema, ctx, _json, params) => {
|
|
@@ -380,23 +577,37 @@ export const tupleProcessor: Processor<schemas.$ZodTuple> = (schema, ctx, _json,
|
|
|
380
577
|
ctx.target === "draft-2020-12" ? "items" : ctx.target === "openapi-3.0" ? "items" : "additionalItems";
|
|
381
578
|
|
|
382
579
|
const prefixItems = def.items.map((x, i) =>
|
|
383
|
-
|
|
580
|
+
processSchema(x, ctx as any, {
|
|
384
581
|
...params,
|
|
385
582
|
path: [...params.path, prefixPath, i],
|
|
386
583
|
})
|
|
387
584
|
);
|
|
388
585
|
const rest = def.rest
|
|
389
|
-
?
|
|
586
|
+
? processSchema(def.rest, ctx as any, {
|
|
390
587
|
...params,
|
|
391
588
|
path: [...params.path, restPath, ...(ctx.target === "openapi-3.0" ? [def.items.length] : [])],
|
|
392
589
|
})
|
|
393
590
|
: null;
|
|
394
591
|
|
|
592
|
+
let minItems = def.items.length;
|
|
593
|
+
while (minItems > 0) {
|
|
594
|
+
const item = def.items[minItems - 1] as schemas.$ZodType;
|
|
595
|
+
const optional = ctx.io === "input" ? inputOptin(item) !== undefined : item._zod.optout === "optional";
|
|
596
|
+
if (!optional) break;
|
|
597
|
+
minItems--;
|
|
598
|
+
}
|
|
599
|
+
const maxItems = def.items.length;
|
|
600
|
+
const isClosed = !def.rest;
|
|
601
|
+
|
|
395
602
|
if (ctx.target === "draft-2020-12") {
|
|
396
603
|
json.prefixItems = prefixItems;
|
|
397
|
-
if (
|
|
604
|
+
if (isClosed) {
|
|
605
|
+
json.items = false;
|
|
606
|
+
} else if (rest) {
|
|
398
607
|
json.items = rest;
|
|
399
608
|
}
|
|
609
|
+
if (minItems > 0) json.minItems = minItems;
|
|
610
|
+
if (isClosed) json.maxItems = maxItems;
|
|
400
611
|
} else if (ctx.target === "openapi-3.0") {
|
|
401
612
|
json.items = {
|
|
402
613
|
anyOf: prefixItems,
|
|
@@ -405,57 +616,139 @@ export const tupleProcessor: Processor<schemas.$ZodTuple> = (schema, ctx, _json,
|
|
|
405
616
|
if (rest) {
|
|
406
617
|
json.items.anyOf!.push(rest);
|
|
407
618
|
}
|
|
408
|
-
json.minItems =
|
|
409
|
-
if (
|
|
410
|
-
json.maxItems = prefixItems.length;
|
|
411
|
-
}
|
|
619
|
+
if (minItems > 0) json.minItems = minItems;
|
|
620
|
+
if (isClosed) json.maxItems = maxItems;
|
|
412
621
|
} else {
|
|
413
622
|
json.items = prefixItems;
|
|
414
|
-
if (
|
|
623
|
+
if (isClosed) {
|
|
624
|
+
json.additionalItems = false;
|
|
625
|
+
} else if (rest) {
|
|
415
626
|
json.additionalItems = rest;
|
|
416
627
|
}
|
|
628
|
+
if (minItems > 0) json.minItems = minItems;
|
|
629
|
+
if (isClosed) json.maxItems = maxItems;
|
|
417
630
|
}
|
|
418
631
|
|
|
419
|
-
// length
|
|
420
|
-
const { minimum, maximum } = schema
|
|
421
|
-
minimum?: number;
|
|
422
|
-
maximum?: number;
|
|
423
|
-
};
|
|
632
|
+
// explicit user-defined length checks take precedence
|
|
633
|
+
const { minimum, maximum } = aggregateChecks(schema);
|
|
424
634
|
if (typeof minimum === "number") json.minItems = minimum;
|
|
425
635
|
if (typeof maximum === "number") json.maxItems = maximum;
|
|
426
636
|
};
|
|
427
637
|
|
|
638
|
+
/** JSON object keys are always strings, so a numeric record key schema is re-expressed over the
|
|
639
|
+
* numeric-string form the record parser matches. Deferred to `finalize`, after the flatten: a key
|
|
640
|
+
* behind a wrapper only carries its own `type` before then, and a union key only has its branches.
|
|
641
|
+
*
|
|
642
|
+
* A numeric bound cannot apply to a property name, so `minimum` and its siblings are dropped rather
|
|
643
|
+
* than carried over: keeping them beside `type: "string"` reproduces the match-nothing schema this
|
|
644
|
+
* exists to fix. A key that carries one therefore emits wider than the record parses — `z.record(z.number().min(5), V)`
|
|
645
|
+
* accepts `"3"` — which is the deliberate trade, since throwing on it would reject an ordinary schema
|
|
646
|
+
* outright. */
|
|
647
|
+
function stringifyKeyNames(
|
|
648
|
+
bySchema: Map<JSONSchema.BaseSchema, Seen>,
|
|
649
|
+
json: JSONSchema.BaseSchema,
|
|
650
|
+
visited: Set<JSONSchema.BaseSchema>
|
|
651
|
+
): JSONSchema.BaseSchema {
|
|
652
|
+
// an extracted key that rewrites cannot go on sharing its definition — the string form a key position needs is not the number form every other reference wants — so it inlines. One that does not rewrite keeps the `$ref`.
|
|
653
|
+
if (json.$ref) {
|
|
654
|
+
// a recursive key holds its own reference inside its definition, so a node already on the path is left alone rather than resolved again
|
|
655
|
+
if (visited.has(json)) return json;
|
|
656
|
+
visited.add(json);
|
|
657
|
+
const def = bySchema.get(json)?.def;
|
|
658
|
+
if (!def) return json;
|
|
659
|
+
const inlined = stringifyKeyNames(bySchema, def, visited);
|
|
660
|
+
return inlined === def ? json : inlined;
|
|
661
|
+
}
|
|
662
|
+
|
|
663
|
+
for (const keyword of ["anyOf", "oneOf"] as const) {
|
|
664
|
+
const branches = json[keyword];
|
|
665
|
+
if (!Array.isArray(branches)) continue;
|
|
666
|
+
const mapped = branches.map((branch) => stringifyKeyNames(bySchema, branch, visited));
|
|
667
|
+
// rebuilding regardless would detach a key that had nothing to re-express, dropping its `$ref` and leaking the internal `id`
|
|
668
|
+
if (mapped.some((branch, i) => branch !== branches[i])) json = { ...json, [keyword]: mapped };
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
// a member that already admits a string leaves the key unconstrained, so the node's own type re-expresses only when every member is numeric
|
|
672
|
+
const types = Array.isArray(json.type) ? json.type : [json.type];
|
|
673
|
+
const numericType = !types.includes("string") && types.some((t) => t === "number" || t === "integer");
|
|
674
|
+
// a heterogeneous key carries no type at all, so its numeric members are caught here instead
|
|
675
|
+
const values = json.enum ?? (json.const !== undefined ? [json.const] : undefined);
|
|
676
|
+
if (!numericType && !values?.some((v) => typeof v === "number")) return json;
|
|
677
|
+
|
|
678
|
+
const { minimum, maximum, exclusiveMinimum, exclusiveMaximum, multipleOf, format, id, ...rest } = json;
|
|
679
|
+
if (rest.enum) rest.enum = rest.enum.map((v) => (typeof v === "number" ? String(v) : v));
|
|
680
|
+
else if (typeof rest.const === "number") rest.const = String(rest.const);
|
|
681
|
+
// a heterogeneous key keeps its absent type: the stringified members already say what a key may be
|
|
682
|
+
if (!numericType) return rest;
|
|
683
|
+
rest.type = "string";
|
|
684
|
+
if (!values) rest.pattern = (types.includes("number") ? regexes.number : regexes.integer).source;
|
|
685
|
+
return rest;
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
/** Every record of one conversion, so the carriers are found in a single pass rather than once per record. */
|
|
689
|
+
const pendingRecords = new WeakMap<ToJSONSchemaContext, schemas.$ZodType[]>();
|
|
690
|
+
|
|
691
|
+
function rewriteKeyNames(ctx: ToJSONSchemaContext): void {
|
|
692
|
+
// an extracted key is resolved by the object `extractToDef` left in its place, so the map is built once rather than searched per reference. `_zod.toJSONSchema` can hand the same object to two schemas, so the first entry carrying a body wins, as a search would have found it.
|
|
693
|
+
const bySchema = new Map<JSONSchema.BaseSchema, Seen>();
|
|
694
|
+
for (const entry of ctx.seen.values()) {
|
|
695
|
+
if (entry.def && !bySchema.has(entry.schema)) bySchema.set(entry.schema, entry);
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
const rewrites = new Map<JSONSchema.BaseSchema, JSONSchema.BaseSchema>();
|
|
699
|
+
for (const record of pendingRecords.get(ctx) ?? []) {
|
|
700
|
+
const seen = ctx.seen.get(record);
|
|
701
|
+
const names = (seen?.def ?? seen?.schema)?.propertyNames;
|
|
702
|
+
if (!names || names === true || rewrites.has(names)) continue;
|
|
703
|
+
const rewritten = stringifyKeyNames(bySchema, names, new Set());
|
|
704
|
+
if (rewritten !== names) rewrites.set(names, rewritten);
|
|
705
|
+
}
|
|
706
|
+
if (!rewrites.size) return;
|
|
707
|
+
|
|
708
|
+
// the flatten has already copied each record's own properties onto every wrapper by reference, and an extracted body is another such copy, so every carrier holding a rewritten key is updated together
|
|
709
|
+
for (const entry of ctx.seen.values()) {
|
|
710
|
+
for (const carrier of [entry.schema, entry.def]) {
|
|
711
|
+
const rewritten = carrier && rewrites.get(carrier.propertyNames as JSONSchema.BaseSchema);
|
|
712
|
+
if (rewritten) carrier!.propertyNames = rewritten;
|
|
713
|
+
}
|
|
714
|
+
}
|
|
715
|
+
}
|
|
716
|
+
|
|
428
717
|
export const recordProcessor: Processor<schemas.$ZodRecord> = (schema, ctx, _json, params) => {
|
|
429
718
|
const json = _json as JSONSchema.ObjectSchema;
|
|
430
719
|
const def = schema._zod.def as schemas.$ZodRecordDef;
|
|
431
720
|
json.type = "object";
|
|
432
721
|
|
|
433
|
-
// For looseRecord with regex patterns, use patternProperties
|
|
434
|
-
// This correctly represents "only validate keys matching the pattern" semantics
|
|
435
|
-
// and composes well with allOf (intersections)
|
|
722
|
+
// For looseRecord with regex patterns, use patternProperties. This correctly represents "only validate keys matching the pattern" semantics and composes well with allOf (intersections)
|
|
436
723
|
const keyType = def.keyType as schemas.$ZodTypes;
|
|
437
|
-
const
|
|
438
|
-
const patterns = keyBag?.patterns;
|
|
724
|
+
const patterns = aggregateChecks(keyType).patterns;
|
|
439
725
|
|
|
440
726
|
if (def.mode === "loose" && patterns && patterns.size > 0) {
|
|
441
727
|
// Use patternProperties for looseRecord with regex patterns
|
|
442
|
-
const valueSchema =
|
|
728
|
+
const valueSchema = processSchema(def.valueType, ctx as any, {
|
|
443
729
|
...params,
|
|
444
730
|
path: [...params.path, "patternProperties", "*"],
|
|
445
731
|
});
|
|
446
732
|
json.patternProperties = {};
|
|
447
733
|
for (const pattern of patterns) {
|
|
448
|
-
json.patternProperties
|
|
734
|
+
assignProp(json.patternProperties, exactPattern(pattern).source, valueSchema);
|
|
449
735
|
}
|
|
450
736
|
} else {
|
|
451
737
|
// Default behavior: use propertyNames + additionalProperties
|
|
452
738
|
if (ctx.target === "draft-07" || ctx.target === "draft-2020-12") {
|
|
453
|
-
json.propertyNames =
|
|
739
|
+
json.propertyNames = processSchema(def.keyType, ctx as any, {
|
|
454
740
|
...params,
|
|
455
741
|
path: [...params.path, "propertyNames"],
|
|
456
742
|
});
|
|
743
|
+
let pending = pendingRecords.get(ctx);
|
|
744
|
+
if (!pending) {
|
|
745
|
+
pending = [];
|
|
746
|
+
pendingRecords.set(ctx, pending);
|
|
747
|
+
ctx.deferred.push(() => rewriteKeyNames(ctx));
|
|
748
|
+
}
|
|
749
|
+
pending.push(schema);
|
|
457
750
|
}
|
|
458
|
-
json.additionalProperties =
|
|
751
|
+
json.additionalProperties = processSchema(def.valueType, ctx as any, {
|
|
459
752
|
...params,
|
|
460
753
|
path: [...params.path, "additionalProperties"],
|
|
461
754
|
});
|
|
@@ -463,20 +756,22 @@ export const recordProcessor: Processor<schemas.$ZodRecord> = (schema, ctx, _jso
|
|
|
463
756
|
|
|
464
757
|
// Add required for keys with discrete values (enum, literal, etc.)
|
|
465
758
|
const keyValues = keyType._zod.values;
|
|
466
|
-
|
|
759
|
+
// Every key shares one value schema, so an optional-in value makes the whole key set omittable on input. Output keeps them: the exhaustive branch assigns every key, even one whose value came back undefined.
|
|
760
|
+
const omittableOnInput = ctx.io === "input" && inputOptin(def.valueType as schemas.$ZodType) !== undefined;
|
|
761
|
+
if (keyValues && !def.partial && !omittableOnInput) {
|
|
467
762
|
const validKeyValues = [...keyValues].filter(
|
|
468
763
|
(v): v is string | number => typeof v === "string" || typeof v === "number"
|
|
469
764
|
);
|
|
470
765
|
|
|
471
766
|
if (validKeyValues.length > 0) {
|
|
472
|
-
json.required = validKeyValues
|
|
767
|
+
json.required = validKeyValues.map(String);
|
|
473
768
|
}
|
|
474
769
|
}
|
|
475
770
|
};
|
|
476
771
|
|
|
477
772
|
export const nullableProcessor: Processor<schemas.$ZodNullable> = (schema, ctx, json, params) => {
|
|
478
773
|
const def = schema._zod.def as schemas.$ZodNullableDef;
|
|
479
|
-
const inner =
|
|
774
|
+
const inner = processSchema(def.innerType, ctx as any, params);
|
|
480
775
|
const seen = ctx.seen.get(schema)!;
|
|
481
776
|
if (ctx.target === "openapi-3.0") {
|
|
482
777
|
seen.ref = def.innerType;
|
|
@@ -488,37 +783,63 @@ export const nullableProcessor: Processor<schemas.$ZodNullable> = (schema, ctx,
|
|
|
488
783
|
|
|
489
784
|
export const nonoptionalProcessor: Processor<schemas.$ZodNonOptional> = (schema, ctx, _json, params) => {
|
|
490
785
|
const def = schema._zod.def as schemas.$ZodNonOptionalDef;
|
|
491
|
-
|
|
786
|
+
processSchema(def.innerType, ctx as any, params);
|
|
492
787
|
const seen = ctx.seen.get(schema)!;
|
|
493
788
|
seen.ref = def.innerType;
|
|
494
789
|
};
|
|
495
790
|
|
|
791
|
+
/** Round-trips a default value through JSON so the emitted schema is guaranteed to be valid JSON.
|
|
792
|
+
* A BigInt has no reliable encoding, so it goes through `unrepresentable` like any other
|
|
793
|
+
* unrepresentable value. Returns a sentinel when the caller must not write a default of its own. */
|
|
794
|
+
const UNREPRESENTABLE_DEFAULT = Symbol();
|
|
795
|
+
function serializeDefaultValue(
|
|
796
|
+
value: unknown,
|
|
797
|
+
schema: schemas.$ZodType,
|
|
798
|
+
ctx: ToJSONSchemaContext,
|
|
799
|
+
json: JSONSchema.BaseSchema,
|
|
800
|
+
params: ProcessParams
|
|
801
|
+
): any {
|
|
802
|
+
let unrepresentable = false;
|
|
803
|
+
const serialized = JSON.stringify(value, (_, val) => {
|
|
804
|
+
if (typeof val !== "bigint") return val;
|
|
805
|
+
unrepresentable = true;
|
|
806
|
+
return null;
|
|
807
|
+
});
|
|
808
|
+
if (!unrepresentable) return JSON.parse(serialized);
|
|
809
|
+
handleUnrepresentable(schema, ctx, json, params, "BigInt defaults cannot be represented in JSON Schema");
|
|
810
|
+
return UNREPRESENTABLE_DEFAULT;
|
|
811
|
+
}
|
|
812
|
+
|
|
496
813
|
export const defaultProcessor: Processor<schemas.$ZodDefault> = (schema, ctx, json, params) => {
|
|
497
814
|
const def = schema._zod.def as schemas.$ZodDefaultDef;
|
|
498
|
-
|
|
815
|
+
processSchema(def.innerType, ctx as any, params);
|
|
499
816
|
const seen = ctx.seen.get(schema)!;
|
|
500
817
|
seen.ref = def.innerType;
|
|
501
|
-
|
|
818
|
+
const value = serializeDefaultValue(def.defaultValue, schema, ctx as ToJSONSchemaContext, json, params);
|
|
819
|
+
if (value !== UNREPRESENTABLE_DEFAULT) json.default = value;
|
|
502
820
|
};
|
|
503
821
|
|
|
504
822
|
export const prefaultProcessor: Processor<schemas.$ZodPrefault> = (schema, ctx, json, params) => {
|
|
505
823
|
const def = schema._zod.def as schemas.$ZodPrefaultDef;
|
|
506
|
-
|
|
824
|
+
processSchema(def.innerType, ctx as any, params);
|
|
507
825
|
const seen = ctx.seen.get(schema)!;
|
|
508
826
|
seen.ref = def.innerType;
|
|
509
|
-
if (ctx.io
|
|
827
|
+
if (ctx.io !== "input") return;
|
|
828
|
+
const value = serializeDefaultValue(def.defaultValue, schema, ctx as ToJSONSchemaContext, json, params);
|
|
829
|
+
if (value !== UNREPRESENTABLE_DEFAULT) json._prefault = value;
|
|
510
830
|
};
|
|
511
831
|
|
|
512
832
|
export const catchProcessor: Processor<schemas.$ZodCatch> = (schema, ctx, json, params) => {
|
|
513
833
|
const def = schema._zod.def as schemas.$ZodCatchDef;
|
|
514
|
-
|
|
834
|
+
processSchema(def.innerType, ctx as any, params);
|
|
515
835
|
const seen = ctx.seen.get(schema)!;
|
|
516
836
|
seen.ref = def.innerType;
|
|
517
837
|
let catchValue: any;
|
|
518
838
|
try {
|
|
519
839
|
catchValue = def.catchValue(undefined as any);
|
|
520
840
|
} catch {
|
|
521
|
-
|
|
841
|
+
handleUnrepresentable(schema, ctx, json, params, "Dynamic catch values are not supported in JSON Schema");
|
|
842
|
+
return;
|
|
522
843
|
}
|
|
523
844
|
json.default = catchValue;
|
|
524
845
|
};
|
|
@@ -527,14 +848,14 @@ export const pipeProcessor: Processor<schemas.$ZodPipe> = (schema, ctx, _json, p
|
|
|
527
848
|
const def = schema._zod.def as schemas.$ZodPipeDef;
|
|
528
849
|
const inIsTransform = def.in._zod.traits.has("$ZodTransform");
|
|
529
850
|
const innerType = ctx.io === "input" ? (inIsTransform ? def.out : def.in) : def.out;
|
|
530
|
-
|
|
851
|
+
processSchema(innerType, ctx as any, params);
|
|
531
852
|
const seen = ctx.seen.get(schema)!;
|
|
532
853
|
seen.ref = innerType;
|
|
533
854
|
};
|
|
534
855
|
|
|
535
856
|
export const readonlyProcessor: Processor<schemas.$ZodReadonly> = (schema, ctx, json, params) => {
|
|
536
857
|
const def = schema._zod.def as schemas.$ZodReadonlyDef;
|
|
537
|
-
|
|
858
|
+
processSchema(def.innerType, ctx as any, params);
|
|
538
859
|
const seen = ctx.seen.get(schema)!;
|
|
539
860
|
seen.ref = def.innerType;
|
|
540
861
|
json.readOnly = true;
|
|
@@ -542,21 +863,21 @@ export const readonlyProcessor: Processor<schemas.$ZodReadonly> = (schema, ctx,
|
|
|
542
863
|
|
|
543
864
|
export const promiseProcessor: Processor<schemas.$ZodPromise> = (schema, ctx, _json, params) => {
|
|
544
865
|
const def = schema._zod.def as schemas.$ZodPromiseDef;
|
|
545
|
-
|
|
866
|
+
processSchema(def.innerType, ctx as any, params);
|
|
546
867
|
const seen = ctx.seen.get(schema)!;
|
|
547
868
|
seen.ref = def.innerType;
|
|
548
869
|
};
|
|
549
870
|
|
|
550
871
|
export const optionalProcessor: Processor<schemas.$ZodOptional> = (schema, ctx, _json, params) => {
|
|
551
872
|
const def = schema._zod.def as schemas.$ZodOptionalDef;
|
|
552
|
-
|
|
873
|
+
processSchema(def.innerType, ctx as any, params);
|
|
553
874
|
const seen = ctx.seen.get(schema)!;
|
|
554
875
|
seen.ref = def.innerType;
|
|
555
876
|
};
|
|
556
877
|
|
|
557
878
|
export const lazyProcessor: Processor<schemas.$ZodLazy> = (schema, ctx, _json, params) => {
|
|
558
879
|
const innerType = (schema as schemas.$ZodLazy)._zod.innerType;
|
|
559
|
-
|
|
880
|
+
processSchema(innerType, ctx as any, params);
|
|
560
881
|
const seen = ctx.seen.get(schema)!;
|
|
561
882
|
seen.ref = innerType;
|
|
562
883
|
};
|
|
@@ -583,6 +904,7 @@ export const allProcessors: Record<string, Processor<any>> = {
|
|
|
583
904
|
file: fileProcessor,
|
|
584
905
|
success: successProcessor,
|
|
585
906
|
custom: customProcessor,
|
|
907
|
+
properties: propertiesProcessor,
|
|
586
908
|
function: functionProcessor,
|
|
587
909
|
transform: transformProcessor,
|
|
588
910
|
map: mapProcessor,
|
|
@@ -628,7 +950,7 @@ export function toJSONSchema(
|
|
|
628
950
|
// First pass: process all schemas to build the seen map
|
|
629
951
|
for (const entry of registry._idmap.entries()) {
|
|
630
952
|
const [_, schema] = entry;
|
|
631
|
-
|
|
953
|
+
processSchema(schema, ctx as any);
|
|
632
954
|
}
|
|
633
955
|
|
|
634
956
|
const schemas: Record<string, JSONSchema.BaseSchema> = {};
|
|
@@ -645,7 +967,7 @@ export function toJSONSchema(
|
|
|
645
967
|
for (const entry of registry._idmap.entries()) {
|
|
646
968
|
const [key, schema] = entry;
|
|
647
969
|
extractDefs(ctx as any, schema);
|
|
648
|
-
schemas
|
|
970
|
+
assignProp(schemas, key, finalize(ctx as any, schema));
|
|
649
971
|
}
|
|
650
972
|
|
|
651
973
|
if (Object.keys(defs).length > 0) {
|
|
@@ -660,7 +982,7 @@ export function toJSONSchema(
|
|
|
660
982
|
|
|
661
983
|
// Single schema case
|
|
662
984
|
const ctx = initializeContext({ ...params, processors: allProcessors });
|
|
663
|
-
|
|
985
|
+
processSchema(input, ctx as any);
|
|
664
986
|
extractDefs(ctx as any, input);
|
|
665
987
|
return finalize(ctx as any, input);
|
|
666
988
|
}
|