@psnext/slingcli 3.1.20260904-1 → 3.3.20260914-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/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/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/package.json +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{chunk-PBNSMEG7.js → chunk-BRL3MDQL.js} +10 -10
- 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/dist/modes/interactive/components/model-selector.js +79 -32
- 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/@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-cjs/submodules/serde/index.browser.js +2 -0
- package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +25 -8
- package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.native.js +2 -0
- 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-es/submodules/serde/util-stream/getAwsChunkedEncodingStream.browser.js +2 -0
- package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/getAwsChunkedEncodingStream.js +23 -8
- 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/@types/node/README.md +1 -1
- package/node_modules/@types/node/buffer.d.ts +1 -0
- package/node_modules/@types/node/diagnostics_channel.d.ts +4 -4
- package/node_modules/@types/node/http.d.ts +1 -1
- package/node_modules/@types/node/package.json +3 -3
- package/node_modules/@types/node/perf_hooks.d.ts +31 -19
- package/node_modules/@types/node/quic.d.ts +6 -4
- package/node_modules/@types/node/stream/web.d.ts +20 -0
- package/node_modules/@types/node/tls.d.ts +26 -15
- package/node_modules/@types/node/vfs.d.ts +7 -6
- package/node_modules/@types/node/web-globals/streams.d.ts +4 -0
- package/node_modules/@types/node/zlib.d.ts +17 -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/jose/dist/types/index.d.ts +1 -2
- package/node_modules/jose/dist/types/jwe/compact/decrypt.d.ts +7 -11
- package/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +13 -16
- package/node_modules/jose/dist/types/jwe/flattened/decrypt.d.ts +7 -11
- package/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +16 -19
- package/node_modules/jose/dist/types/jwe/general/decrypt.d.ts +10 -16
- package/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +18 -21
- package/node_modules/jose/dist/types/jwk/embedded.d.ts +3 -1
- package/node_modules/jose/dist/types/jwk/thumbprint.d.ts +4 -6
- package/node_modules/jose/dist/types/jwks/local.d.ts +5 -4
- package/node_modules/jose/dist/types/jwks/remote.d.ts +20 -21
- package/node_modules/jose/dist/types/jws/compact/sign.d.ts +4 -4
- package/node_modules/jose/dist/types/jws/compact/verify.d.ts +8 -11
- package/node_modules/jose/dist/types/jws/flattened/sign.d.ts +5 -5
- package/node_modules/jose/dist/types/jws/flattened/verify.d.ts +8 -11
- package/node_modules/jose/dist/types/jws/general/sign.d.ts +10 -14
- package/node_modules/jose/dist/types/jws/general/verify.d.ts +11 -17
- package/node_modules/jose/dist/types/jwt/decrypt.d.ts +14 -11
- package/node_modules/jose/dist/types/jwt/encrypt.d.ts +24 -22
- package/node_modules/jose/dist/types/jwt/sign.d.ts +3 -7
- package/node_modules/jose/dist/types/jwt/unsecured.d.ts +2 -6
- package/node_modules/jose/dist/types/jwt/verify.d.ts +13 -6
- package/node_modules/jose/dist/types/key/export.d.ts +6 -6
- package/node_modules/jose/dist/types/key/generate_key_pair.d.ts +9 -14
- package/node_modules/jose/dist/types/key/generate_secret.d.ts +10 -10
- package/node_modules/jose/dist/types/key/import.d.ts +19 -18
- package/node_modules/jose/dist/types/types.d.ts +152 -247
- package/node_modules/jose/dist/types/util/base64url.d.ts +7 -7
- package/node_modules/jose/dist/types/util/decode_jwt.d.ts +6 -1
- package/node_modules/jose/dist/types/util/decode_protected_header.d.ts +4 -3
- package/node_modules/jose/dist/types/util/errors.d.ts +29 -40
- package/node_modules/jose/dist/webapi/jwe/compact/decrypt.js +1 -2
- package/node_modules/jose/dist/webapi/jwe/compact/encrypt.js +9 -26
- package/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js +3 -3
- package/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js +11 -30
- package/node_modules/jose/dist/webapi/jwe/general/decrypt.js +6 -6
- package/node_modules/jose/dist/webapi/jwe/general/encrypt.js +33 -57
- package/node_modules/jose/dist/webapi/jwk/embedded.js +3 -4
- package/node_modules/jose/dist/webapi/jwk/thumbprint.js +3 -6
- package/node_modules/jose/dist/webapi/jwks/local.js +16 -10
- package/node_modules/jose/dist/webapi/jwks/remote.js +2 -2
- package/node_modules/jose/dist/webapi/jws/compact/sign.js +2 -4
- package/node_modules/jose/dist/webapi/jws/compact/verify.js +2 -2
- package/node_modules/jose/dist/webapi/jws/flattened/sign.js +8 -15
- package/node_modules/jose/dist/webapi/jws/flattened/verify.js +4 -14
- package/node_modules/jose/dist/webapi/jws/general/sign.js +4 -11
- package/node_modules/jose/dist/webapi/jws/general/verify.js +5 -7
- package/node_modules/jose/dist/webapi/jwt/decrypt.js +2 -3
- package/node_modules/jose/dist/webapi/jwt/encrypt.js +11 -25
- package/node_modules/jose/dist/webapi/jwt/sign.js +1 -1
- package/node_modules/jose/dist/webapi/jwt/unsecured.js +1 -2
- package/node_modules/jose/dist/webapi/jwt/verify.js +4 -4
- package/node_modules/jose/dist/webapi/key/export.js +12 -16
- package/node_modules/jose/dist/webapi/key/generate_key_pair.js +4 -13
- package/node_modules/jose/dist/webapi/key/generate_secret.js +1 -1
- package/node_modules/jose/dist/webapi/key/import.js +5 -9
- package/node_modules/jose/dist/webapi/lib/asn1.js +2 -4
- package/node_modules/jose/dist/webapi/lib/buffer_utils.js +35 -0
- package/node_modules/jose/dist/webapi/lib/content_encryption.js +21 -29
- package/node_modules/jose/dist/webapi/lib/deflate.js +9 -19
- package/node_modules/jose/dist/webapi/lib/jwe_algorithms.js +0 -4
- package/node_modules/jose/dist/webapi/lib/jwe_decrypt.js +21 -54
- package/node_modules/jose/dist/webapi/lib/jwe_encrypt.js +26 -59
- package/node_modules/jose/dist/webapi/lib/jws_sign.js +29 -43
- package/node_modules/jose/dist/webapi/lib/jws_verify.js +37 -45
- package/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +1 -1
- package/node_modules/jose/dist/webapi/lib/key.js +119 -59
- package/node_modules/jose/dist/webapi/lib/key_management.js +45 -80
- package/node_modules/jose/dist/webapi/lib/{options.js → validate.js} +64 -3
- package/node_modules/jose/dist/webapi/util/base64url.js +5 -19
- package/node_modules/jose/dist/webapi/util/decode_jwt.js +1 -1
- package/node_modules/jose/dist/webapi/util/decode_protected_header.js +1 -1
- package/node_modules/jose/package.json +1 -1
- 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/client.d.ts +8 -3
- package/node_modules/undici-types/connector.d.ts +1 -0
- package/node_modules/undici-types/cookies.d.ts +1 -1
- package/node_modules/undici-types/dispatcher.d.ts +3 -3
- package/node_modules/undici-types/errors.d.ts +10 -0
- package/node_modules/undici-types/fetch.d.ts +5 -1
- package/node_modules/undici-types/handlers.d.ts +2 -0
- package/node_modules/undici-types/interceptors.d.ts +1 -1
- package/node_modules/undici-types/mock-interceptor.d.ts +5 -1
- package/node_modules/undici-types/package.json +1 -1
- package/node_modules/undici-types/proxy-agent.d.ts +7 -0
- package/node_modules/zod/README.md +2 -2
- package/node_modules/zod/compile.cjs +19 -0
- package/node_modules/zod/index.cjs +19 -0
- package/node_modules/zod/locales/index.cjs +19 -0
- package/node_modules/zod/mini/index.cjs +19 -0
- package/node_modules/zod/package.json +8 -7
- package/node_modules/zod/src/v3/helpers/errorUtil.ts +1 -1
- package/node_modules/zod/src/v4/classic/external.ts +2 -0
- package/node_modules/zod/src/v4/classic/from-json-schema.ts +248 -25
- package/node_modules/zod/src/v4/classic/schemas.ts +243 -168
- package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +60 -9
- package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +6 -0
- package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
- package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +265 -0
- package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +112 -6
- package/node_modules/zod/src/v4/classic/tests/enum.test.ts +9 -0
- package/node_modules/zod/src/v4/classic/tests/error.test.ts +130 -1
- package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +157 -0
- package/node_modules/zod/src/v4/classic/tests/iban.test.ts +81 -0
- package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +40 -2
- package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +27 -7
- package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +88 -56
- package/node_modules/zod/src/v4/classic/tests/number.test.ts +39 -0
- package/node_modules/zod/src/v4/classic/tests/object.test.ts +56 -0
- package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +3 -2
- package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +70 -0
- package/node_modules/zod/src/v4/classic/tests/properties.test.ts +141 -0
- package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +46 -1
- 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 +95 -1
- package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +33 -1
- package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +234 -38
- package/node_modules/zod/src/v4/classic/tests/validate.test.ts +569 -0
- package/node_modules/zod/src/v4/core/api.ts +44 -28
- package/node_modules/zod/src/v4/core/checks.ts +62 -102
- package/node_modules/zod/src/v4/core/compile.ts +218 -93
- package/node_modules/zod/src/v4/core/core.ts +1 -3
- package/node_modules/zod/src/v4/core/doc.ts +6 -2
- package/node_modules/zod/src/v4/core/errors.ts +3 -6
- package/node_modules/zod/src/v4/core/json-schema-generator.ts +2 -2
- package/node_modules/zod/src/v4/core/json-schema-processors.ts +185 -81
- package/node_modules/zod/src/v4/core/memoizer.ts +75 -28
- package/node_modules/zod/src/v4/core/parse.ts +37 -16
- package/node_modules/zod/src/v4/core/regexes.ts +14 -4
- package/node_modules/zod/src/v4/core/schemas.ts +296 -132
- 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 +35 -0
- package/node_modules/zod/src/v4/core/tests/compile-generative.test.ts +445 -0
- package/node_modules/zod/src/v4/core/tests/compile.test.ts +399 -2
- package/node_modules/zod/src/v4/core/tests/email-regex.test.ts +140 -0
- package/node_modules/zod/src/v4/core/tests/locales/tg.test.ts +85 -0
- package/node_modules/zod/src/v4/core/tests/polyfill-collision.test.ts +46 -0
- package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +118 -16
- package/node_modules/zod/src/v4/core/to-json-schema.ts +9 -7
- package/node_modules/zod/src/v4/core/util.ts +218 -147
- package/node_modules/zod/src/v4/core/versions.ts +2 -2
- package/node_modules/zod/src/v4/locales/ar.ts +2 -0
- package/node_modules/zod/src/v4/locales/az.ts +2 -0
- package/node_modules/zod/src/v4/locales/be.ts +2 -0
- package/node_modules/zod/src/v4/locales/bg.ts +2 -0
- package/node_modules/zod/src/v4/locales/bn.ts +2 -0
- package/node_modules/zod/src/v4/locales/ca.ts +2 -0
- package/node_modules/zod/src/v4/locales/ckb.ts +2 -0
- package/node_modules/zod/src/v4/locales/cs.ts +2 -0
- package/node_modules/zod/src/v4/locales/da.ts +2 -0
- package/node_modules/zod/src/v4/locales/de.ts +2 -0
- package/node_modules/zod/src/v4/locales/el.ts +2 -0
- package/node_modules/zod/src/v4/locales/en.ts +2 -0
- package/node_modules/zod/src/v4/locales/eo.ts +2 -0
- package/node_modules/zod/src/v4/locales/es.ts +2 -0
- package/node_modules/zod/src/v4/locales/fa.ts +2 -0
- package/node_modules/zod/src/v4/locales/fi.ts +2 -0
- package/node_modules/zod/src/v4/locales/fr-CA.ts +2 -0
- package/node_modules/zod/src/v4/locales/fr.ts +2 -0
- package/node_modules/zod/src/v4/locales/gu.ts +2 -0
- package/node_modules/zod/src/v4/locales/he.ts +2 -0
- package/node_modules/zod/src/v4/locales/hi.ts +2 -0
- package/node_modules/zod/src/v4/locales/hr.ts +2 -0
- package/node_modules/zod/src/v4/locales/hu.ts +2 -0
- package/node_modules/zod/src/v4/locales/hy.ts +2 -0
- package/node_modules/zod/src/v4/locales/id.ts +2 -0
- package/node_modules/zod/src/v4/locales/index.ts +1 -0
- package/node_modules/zod/src/v4/locales/is.ts +2 -0
- package/node_modules/zod/src/v4/locales/it.ts +2 -0
- package/node_modules/zod/src/v4/locales/ja.ts +2 -0
- package/node_modules/zod/src/v4/locales/ka.ts +2 -0
- package/node_modules/zod/src/v4/locales/km.ts +2 -0
- package/node_modules/zod/src/v4/locales/kn.ts +2 -0
- package/node_modules/zod/src/v4/locales/ko.ts +2 -0
- package/node_modules/zod/src/v4/locales/lt.ts +2 -0
- package/node_modules/zod/src/v4/locales/mk.ts +2 -0
- package/node_modules/zod/src/v4/locales/ms.ts +2 -0
- package/node_modules/zod/src/v4/locales/ne.ts +2 -0
- package/node_modules/zod/src/v4/locales/nl.ts +2 -0
- package/node_modules/zod/src/v4/locales/nn.ts +2 -0
- package/node_modules/zod/src/v4/locales/no.ts +2 -0
- package/node_modules/zod/src/v4/locales/ota.ts +2 -0
- package/node_modules/zod/src/v4/locales/pl.ts +2 -0
- package/node_modules/zod/src/v4/locales/ps.ts +2 -0
- package/node_modules/zod/src/v4/locales/pt-BR.ts +2 -0
- package/node_modules/zod/src/v4/locales/pt.ts +2 -0
- package/node_modules/zod/src/v4/locales/ro.ts +2 -0
- package/node_modules/zod/src/v4/locales/ru.ts +2 -0
- package/node_modules/zod/src/v4/locales/sk.ts +2 -0
- package/node_modules/zod/src/v4/locales/sl.ts +2 -0
- package/node_modules/zod/src/v4/locales/sv.ts +2 -0
- package/node_modules/zod/src/v4/locales/ta.ts +2 -0
- package/node_modules/zod/src/v4/locales/tg.ts +135 -0
- package/node_modules/zod/src/v4/locales/th.ts +2 -0
- package/node_modules/zod/src/v4/locales/tk.ts +2 -0
- package/node_modules/zod/src/v4/locales/tr.ts +2 -0
- package/node_modules/zod/src/v4/locales/uk.ts +2 -0
- package/node_modules/zod/src/v4/locales/ur.ts +2 -0
- package/node_modules/zod/src/v4/locales/uz.ts +2 -0
- package/node_modules/zod/src/v4/locales/vi.ts +2 -0
- package/node_modules/zod/src/v4/locales/yo.ts +2 -0
- package/node_modules/zod/src/v4/locales/zh-CN.ts +2 -0
- package/node_modules/zod/src/v4/locales/zh-TW.ts +2 -0
- package/node_modules/zod/src/v4/mini/external.ts +2 -0
- package/node_modules/zod/src/v4/mini/schemas.ts +32 -7
- package/node_modules/zod/src/v4/mini/tests/checks.test.ts +1 -1
- package/node_modules/zod/src/v4/mini/tests/computed.test.ts +11 -17
- package/node_modules/zod/src/v4/mini/tests/index.test.ts +86 -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 +23 -0
- package/node_modules/zod/v3/ZodError.cjs +19 -0
- 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 +19 -0
- 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/deep-partial.cjs +19 -0
- package/node_modules/zod/v4/classic/errors.cjs +19 -0
- package/node_modules/zod/v4/classic/external.cjs +22 -1
- package/node_modules/zod/v4/classic/external.d.cts +1 -1
- package/node_modules/zod/v4/classic/external.d.ts +1 -1
- package/node_modules/zod/v4/classic/external.js +1 -1
- package/node_modules/zod/v4/classic/from-json-schema.cjs +264 -24
- package/node_modules/zod/v4/classic/from-json-schema.js +245 -24
- package/node_modules/zod/v4/classic/in-out.cjs +19 -0
- package/node_modules/zod/v4/classic/index.cjs +19 -0
- package/node_modules/zod/v4/classic/iso.cjs +19 -0
- package/node_modules/zod/v4/classic/parse.cjs +19 -0
- package/node_modules/zod/v4/classic/schemas.cjs +100 -35
- package/node_modules/zod/v4/classic/schemas.d.cts +15 -1
- package/node_modules/zod/v4/classic/schemas.d.ts +15 -1
- package/node_modules/zod/v4/classic/schemas.js +77 -33
- package/node_modules/zod/v4/core/api.cjs +45 -22
- package/node_modules/zod/v4/core/api.d.cts +12 -6
- package/node_modules/zod/v4/core/api.d.ts +12 -6
- package/node_modules/zod/v4/core/api.js +25 -22
- package/node_modules/zod/v4/core/checks.cjs +51 -97
- package/node_modules/zod/v4/core/checks.d.cts +17 -1
- package/node_modules/zod/v4/core/checks.d.ts +17 -1
- package/node_modules/zod/v4/core/checks.js +31 -96
- package/node_modules/zod/v4/core/compile.cjs +173 -78
- package/node_modules/zod/v4/core/compile.d.cts +18 -4
- package/node_modules/zod/v4/core/compile.d.ts +18 -4
- package/node_modules/zod/v4/core/compile.js +154 -79
- package/node_modules/zod/v4/core/core.cjs +20 -1
- package/node_modules/zod/v4/core/core.js +1 -1
- package/node_modules/zod/v4/core/doc.cjs +26 -2
- package/node_modules/zod/v4/core/doc.js +7 -2
- package/node_modules/zod/v4/core/errors.cjs +21 -5
- package/node_modules/zod/v4/core/errors.js +2 -5
- package/node_modules/zod/v4/core/index.cjs +19 -0
- package/node_modules/zod/v4/core/json-schema-generator.cjs +20 -1
- package/node_modules/zod/v4/core/json-schema-generator.js +2 -2
- package/node_modules/zod/v4/core/json-schema-processors.cjs +188 -72
- package/node_modules/zod/v4/core/json-schema-processors.d.cts +16 -0
- package/node_modules/zod/v4/core/json-schema-processors.d.ts +16 -0
- package/node_modules/zod/v4/core/json-schema-processors.js +170 -74
- package/node_modules/zod/v4/core/json-schema.cjs +19 -0
- package/node_modules/zod/v4/core/memoizer.cjs +111 -23
- package/node_modules/zod/v4/core/memoizer.js +69 -23
- package/node_modules/zod/v4/core/parse.cjs +56 -16
- package/node_modules/zod/v4/core/parse.js +37 -16
- package/node_modules/zod/v4/core/regexes.cjs +31 -6
- package/node_modules/zod/v4/core/regexes.d.cts +3 -0
- package/node_modules/zod/v4/core/regexes.d.ts +3 -0
- package/node_modules/zod/v4/core/regexes.js +10 -4
- package/node_modules/zod/v4/core/registries.cjs +19 -0
- package/node_modules/zod/v4/core/schemas.cjs +302 -114
- package/node_modules/zod/v4/core/schemas.d.cts +28 -8
- package/node_modules/zod/v4/core/schemas.d.ts +28 -8
- package/node_modules/zod/v4/core/schemas.js +279 -113
- package/node_modules/zod/v4/core/standard-schema.cjs +19 -0
- package/node_modules/zod/v4/core/to-json-schema.cjs +28 -7
- package/node_modules/zod/v4/core/to-json-schema.d.cts +4 -3
- package/node_modules/zod/v4/core/to-json-schema.d.ts +4 -3
- package/node_modules/zod/v4/core/to-json-schema.js +7 -6
- package/node_modules/zod/v4/core/util.cjs +177 -143
- package/node_modules/zod/v4/core/util.d.cts +25 -4
- package/node_modules/zod/v4/core/util.d.ts +25 -4
- package/node_modules/zod/v4/core/util.js +156 -143
- 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 +19 -0
- package/node_modules/zod/v4/index.cjs +19 -0
- package/node_modules/zod/v4/locales/ar.cjs +2 -0
- package/node_modules/zod/v4/locales/ar.js +2 -0
- package/node_modules/zod/v4/locales/az.cjs +2 -0
- package/node_modules/zod/v4/locales/az.js +2 -0
- package/node_modules/zod/v4/locales/be.cjs +2 -0
- package/node_modules/zod/v4/locales/be.js +2 -0
- package/node_modules/zod/v4/locales/bg.cjs +2 -0
- package/node_modules/zod/v4/locales/bg.js +2 -0
- package/node_modules/zod/v4/locales/bn.cjs +2 -0
- package/node_modules/zod/v4/locales/bn.js +2 -0
- package/node_modules/zod/v4/locales/ca.cjs +2 -0
- package/node_modules/zod/v4/locales/ca.js +2 -0
- package/node_modules/zod/v4/locales/ckb.cjs +2 -0
- package/node_modules/zod/v4/locales/ckb.js +2 -0
- package/node_modules/zod/v4/locales/cs.cjs +2 -0
- package/node_modules/zod/v4/locales/cs.js +2 -0
- package/node_modules/zod/v4/locales/da.cjs +2 -0
- package/node_modules/zod/v4/locales/da.js +2 -0
- package/node_modules/zod/v4/locales/de.cjs +2 -0
- package/node_modules/zod/v4/locales/de.js +2 -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 +2 -0
- package/node_modules/zod/v4/locales/en.js +2 -0
- package/node_modules/zod/v4/locales/eo.cjs +2 -0
- package/node_modules/zod/v4/locales/eo.js +2 -0
- package/node_modules/zod/v4/locales/es.cjs +2 -0
- package/node_modules/zod/v4/locales/es.js +2 -0
- package/node_modules/zod/v4/locales/fa.cjs +2 -0
- package/node_modules/zod/v4/locales/fa.js +2 -0
- package/node_modules/zod/v4/locales/fi.cjs +2 -0
- package/node_modules/zod/v4/locales/fi.js +2 -0
- package/node_modules/zod/v4/locales/fr-CA.cjs +2 -0
- package/node_modules/zod/v4/locales/fr-CA.js +2 -0
- package/node_modules/zod/v4/locales/fr.cjs +2 -0
- package/node_modules/zod/v4/locales/fr.js +2 -0
- package/node_modules/zod/v4/locales/gu.cjs +2 -0
- package/node_modules/zod/v4/locales/gu.js +2 -0
- package/node_modules/zod/v4/locales/he.cjs +2 -0
- package/node_modules/zod/v4/locales/he.js +2 -0
- package/node_modules/zod/v4/locales/hi.cjs +2 -0
- package/node_modules/zod/v4/locales/hi.js +2 -0
- package/node_modules/zod/v4/locales/hr.cjs +2 -0
- package/node_modules/zod/v4/locales/hr.js +2 -0
- package/node_modules/zod/v4/locales/hu.cjs +2 -0
- package/node_modules/zod/v4/locales/hu.js +2 -0
- package/node_modules/zod/v4/locales/hy.cjs +2 -0
- package/node_modules/zod/v4/locales/hy.js +2 -0
- package/node_modules/zod/v4/locales/id.cjs +2 -0
- package/node_modules/zod/v4/locales/id.js +2 -0
- package/node_modules/zod/v4/locales/index.cjs +22 -1
- package/node_modules/zod/v4/locales/index.d.cts +1 -0
- package/node_modules/zod/v4/locales/index.d.ts +1 -0
- package/node_modules/zod/v4/locales/index.js +1 -0
- package/node_modules/zod/v4/locales/is.cjs +2 -0
- package/node_modules/zod/v4/locales/is.js +2 -0
- package/node_modules/zod/v4/locales/it.cjs +2 -0
- package/node_modules/zod/v4/locales/it.js +2 -0
- package/node_modules/zod/v4/locales/ja.cjs +2 -0
- package/node_modules/zod/v4/locales/ja.js +2 -0
- package/node_modules/zod/v4/locales/ka.cjs +2 -0
- package/node_modules/zod/v4/locales/ka.js +2 -0
- package/node_modules/zod/v4/locales/km.cjs +2 -0
- package/node_modules/zod/v4/locales/km.js +2 -0
- package/node_modules/zod/v4/locales/kn.cjs +2 -0
- package/node_modules/zod/v4/locales/kn.js +2 -0
- package/node_modules/zod/v4/locales/ko.cjs +2 -0
- package/node_modules/zod/v4/locales/ko.js +2 -0
- package/node_modules/zod/v4/locales/lt.cjs +2 -0
- package/node_modules/zod/v4/locales/lt.js +2 -0
- package/node_modules/zod/v4/locales/mk.cjs +2 -0
- package/node_modules/zod/v4/locales/mk.js +2 -0
- package/node_modules/zod/v4/locales/ms.cjs +2 -0
- package/node_modules/zod/v4/locales/ms.js +2 -0
- package/node_modules/zod/v4/locales/ne.cjs +2 -0
- package/node_modules/zod/v4/locales/ne.js +2 -0
- package/node_modules/zod/v4/locales/nl.cjs +2 -0
- package/node_modules/zod/v4/locales/nl.js +2 -0
- package/node_modules/zod/v4/locales/nn.cjs +2 -0
- package/node_modules/zod/v4/locales/nn.js +2 -0
- package/node_modules/zod/v4/locales/no.cjs +2 -0
- package/node_modules/zod/v4/locales/no.js +2 -0
- package/node_modules/zod/v4/locales/ota.cjs +2 -0
- package/node_modules/zod/v4/locales/ota.js +2 -0
- package/node_modules/zod/v4/locales/pl.cjs +2 -0
- package/node_modules/zod/v4/locales/pl.js +2 -0
- package/node_modules/zod/v4/locales/ps.cjs +2 -0
- package/node_modules/zod/v4/locales/ps.js +2 -0
- package/node_modules/zod/v4/locales/pt-BR.cjs +2 -0
- package/node_modules/zod/v4/locales/pt-BR.js +2 -0
- package/node_modules/zod/v4/locales/pt.cjs +2 -0
- package/node_modules/zod/v4/locales/pt.js +2 -0
- 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 +2 -0
- package/node_modules/zod/v4/locales/ru.js +2 -0
- package/node_modules/zod/v4/locales/sk.cjs +2 -0
- package/node_modules/zod/v4/locales/sk.js +2 -0
- package/node_modules/zod/v4/locales/sl.cjs +2 -0
- package/node_modules/zod/v4/locales/sl.js +2 -0
- package/node_modules/zod/v4/locales/sv.cjs +2 -0
- package/node_modules/zod/v4/locales/sv.js +2 -0
- package/node_modules/zod/v4/locales/ta.cjs +2 -0
- package/node_modules/zod/v4/locales/ta.js +2 -0
- package/node_modules/zod/v4/locales/tg.cjs +144 -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 +117 -0
- package/node_modules/zod/v4/locales/th.cjs +2 -0
- package/node_modules/zod/v4/locales/th.js +2 -0
- package/node_modules/zod/v4/locales/tk.cjs +2 -0
- package/node_modules/zod/v4/locales/tk.js +2 -0
- package/node_modules/zod/v4/locales/tr.cjs +2 -0
- package/node_modules/zod/v4/locales/tr.js +2 -0
- package/node_modules/zod/v4/locales/uk.cjs +2 -0
- package/node_modules/zod/v4/locales/uk.js +2 -0
- package/node_modules/zod/v4/locales/ur.cjs +2 -0
- package/node_modules/zod/v4/locales/ur.js +2 -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 +2 -0
- package/node_modules/zod/v4/locales/vi.js +2 -0
- package/node_modules/zod/v4/locales/yo.cjs +2 -0
- package/node_modules/zod/v4/locales/yo.js +2 -0
- package/node_modules/zod/v4/locales/zh-CN.cjs +2 -0
- package/node_modules/zod/v4/locales/zh-CN.js +2 -0
- package/node_modules/zod/v4/locales/zh-TW.cjs +2 -0
- package/node_modules/zod/v4/locales/zh-TW.js +2 -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 +19 -0
- package/node_modules/zod/v4/mini/external.cjs +22 -1
- package/node_modules/zod/v4/mini/external.d.cts +1 -1
- package/node_modules/zod/v4/mini/external.d.ts +1 -1
- package/node_modules/zod/v4/mini/external.js +1 -1
- package/node_modules/zod/v4/mini/in-out.cjs +19 -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 +19 -0
- package/node_modules/zod/v4/mini/schemas.cjs +44 -8
- package/node_modules/zod/v4/mini/schemas.d.cts +6 -1
- package/node_modules/zod/v4/mini/schemas.d.ts +6 -1
- package/node_modules/zod/v4/mini/schemas.js +21 -6
- package/node_modules/zod/v4-mini/index.cjs +19 -0
- package/package.json +2 -2
- package/slingshot/index.js +201 -198
- package/node_modules/jose/dist/webapi/lib/base64.js +0 -20
- package/node_modules/jose/dist/webapi/lib/crypto_key.js +0 -27
- package/node_modules/jose/dist/webapi/lib/helpers.js +0 -45
- package/node_modules/jose/dist/webapi/lib/invalid_key_input.js +0 -12
- package/node_modules/jose/dist/webapi/lib/is_key_like.js +0 -19
- package/node_modules/jose/dist/webapi/lib/jwk_metadata.js +0 -19
- package/node_modules/jose/dist/webapi/lib/jwk_to_key.js +0 -10
- package/node_modules/jose/dist/webapi/lib/key_options.js +0 -8
- package/node_modules/jose/dist/webapi/lib/signing.js +0 -22
- package/node_modules/jose/dist/webapi/lib/type_checks.js +0 -30
|
@@ -2,6 +2,7 @@ import type * as checks from "./checks.js";
|
|
|
2
2
|
import type * as JSONSchema from "./json-schema.js";
|
|
3
3
|
import * as regexes from "./regexes.js";
|
|
4
4
|
import type { $ZodRegistry } from "./registries.js";
|
|
5
|
+
import { base64Charset, base64urlCharset } from "./schemas.js";
|
|
5
6
|
import type * as schemas from "./schemas.js";
|
|
6
7
|
import {
|
|
7
8
|
type ProcessParams,
|
|
@@ -15,9 +16,115 @@ import {
|
|
|
15
16
|
finalize,
|
|
16
17
|
handleUnrepresentable,
|
|
17
18
|
initializeContext,
|
|
18
|
-
|
|
19
|
+
processSchema,
|
|
19
20
|
} from "./to-json-schema.js";
|
|
20
|
-
import { assignProp, getEnumValues } from "./util.js";
|
|
21
|
+
import { BIGINT_FORMAT_RANGES, NUMBER_FORMAT_RANGES, assignProp, getEnumValues } from "./util.js";
|
|
22
|
+
|
|
23
|
+
// ==================== CHECK AGGREGATION ====================
|
|
24
|
+
|
|
25
|
+
// 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
|
|
26
|
+
type Bound = number | bigint | Date;
|
|
27
|
+
|
|
28
|
+
interface CheckAggregate<N extends Bound = Bound> {
|
|
29
|
+
minimum?: N;
|
|
30
|
+
maximum?: N;
|
|
31
|
+
exclusiveMinimum?: N;
|
|
32
|
+
exclusiveMaximum?: N;
|
|
33
|
+
multipleOf?: number[];
|
|
34
|
+
format?: string;
|
|
35
|
+
// ORed across formats: any integer format keeps the conjunction integer, whatever format lands last
|
|
36
|
+
isInt?: boolean;
|
|
37
|
+
patterns?: Set<RegExp>;
|
|
38
|
+
mime?: string[];
|
|
39
|
+
contentEncoding?: string;
|
|
40
|
+
// a datetime that drops the offset or the seconds accepts what `date-time` forbids, so the keyword is withheld
|
|
41
|
+
laxFormat?: boolean;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const narrowMin = (agg: CheckAggregate, key: "minimum" | "exclusiveMinimum", value: Bound): void => {
|
|
45
|
+
if (agg[key] === undefined || value > agg[key]) agg[key] = value;
|
|
46
|
+
};
|
|
47
|
+
const narrowMax = (agg: CheckAggregate, key: "maximum" | "exclusiveMaximum", value: Bound): void => {
|
|
48
|
+
if (agg[key] === undefined || value < agg[key]) agg[key] = value;
|
|
49
|
+
};
|
|
50
|
+
const narrowBoth = (agg: CheckAggregate, value: number): void => {
|
|
51
|
+
narrowMin(agg, "minimum", value);
|
|
52
|
+
narrowMax(agg, "maximum", value);
|
|
53
|
+
};
|
|
54
|
+
const addDivisor = (agg: CheckAggregate, value: number): void => {
|
|
55
|
+
agg.multipleOf ??= [];
|
|
56
|
+
if (!agg.multipleOf.includes(value)) agg.multipleOf.push(value);
|
|
57
|
+
};
|
|
58
|
+
const addPattern = (agg: CheckAggregate, pattern: RegExp): void => {
|
|
59
|
+
agg.patterns ??= new Set();
|
|
60
|
+
agg.patterns.add(pattern);
|
|
61
|
+
};
|
|
62
|
+
const intersectMime = (agg: CheckAggregate, mime: string[]): void => {
|
|
63
|
+
agg.mime = agg.mime ? agg.mime.filter((m) => mime.includes(m)) : [...mime];
|
|
64
|
+
};
|
|
65
|
+
// last-wins, matching the bag's historical write order; the flag keeps an integer format from being lost to a later float one
|
|
66
|
+
const setFormat = (agg: CheckAggregate, format: string): void => {
|
|
67
|
+
agg.format = format;
|
|
68
|
+
if (format.includes("int")) agg.isInt = true;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
type Contributor = (agg: CheckAggregate, def: any) => void;
|
|
72
|
+
const minContributor: Contributor = (agg, def) => narrowMin(agg, "minimum", def.minimum);
|
|
73
|
+
const maxContributor: Contributor = (agg, def) => narrowMax(agg, "maximum", def.maximum);
|
|
74
|
+
const formatContributor =
|
|
75
|
+
(ranges: Record<string, [Bound, Bound]>): Contributor =>
|
|
76
|
+
(agg, def) => {
|
|
77
|
+
setFormat(agg, def.format);
|
|
78
|
+
const [minimum, maximum] = ranges[def.format]!;
|
|
79
|
+
narrowMin(agg, "minimum", minimum);
|
|
80
|
+
narrowMax(agg, "maximum", maximum);
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
const contributors: Record<string, Contributor> = {
|
|
84
|
+
greater_than: (agg, def) => narrowMin(agg, def.inclusive ? "minimum" : "exclusiveMinimum", def.value),
|
|
85
|
+
less_than: (agg, def) => narrowMax(agg, def.inclusive ? "maximum" : "exclusiveMaximum", def.value),
|
|
86
|
+
multiple_of: (agg, def) => addDivisor(agg, def.value),
|
|
87
|
+
number_format: formatContributor(NUMBER_FORMAT_RANGES),
|
|
88
|
+
bigint_format: formatContributor(BIGINT_FORMAT_RANGES),
|
|
89
|
+
min_length: minContributor,
|
|
90
|
+
max_length: maxContributor,
|
|
91
|
+
length_equals: (agg, def) => narrowBoth(agg, def.length),
|
|
92
|
+
min_size: minContributor,
|
|
93
|
+
max_size: maxContributor,
|
|
94
|
+
size_equals: (agg, def) => narrowBoth(agg, def.size),
|
|
95
|
+
string_format: (agg, def) => {
|
|
96
|
+
setFormat(agg, def.format);
|
|
97
|
+
if (def.pattern) addPattern(agg, def.pattern);
|
|
98
|
+
if (def.format === "base64" || def.format === "base64url") agg.contentEncoding = def.format;
|
|
99
|
+
if (def.local || def.precision === -1) agg.laxFormat = true;
|
|
100
|
+
},
|
|
101
|
+
mime_type: (agg, def) => intersectMime(agg, def.mime),
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
export function aggregateChecks<N extends Bound = Bound>(schema: schemas.$ZodType): CheckAggregate<N> {
|
|
105
|
+
const agg: CheckAggregate = {};
|
|
106
|
+
const def = schema._zod.def;
|
|
107
|
+
// a format schema is its own first check, same rule as $ZodType init
|
|
108
|
+
const list: checks.$ZodCheck[] = schema._zod.traits.has("$ZodCheck")
|
|
109
|
+
? [schema as unknown as checks.$ZodCheck, ...(def.checks ?? [])]
|
|
110
|
+
: (def.checks ?? []);
|
|
111
|
+
for (const ch of list) contributors[ch._zod.def.check]?.(agg, ch._zod.def);
|
|
112
|
+
|
|
113
|
+
// 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
|
|
114
|
+
const bag = schema._zod.bag as Omit<CheckAggregate, "multipleOf"> & { multipleOf?: number };
|
|
115
|
+
if (bag.minimum !== undefined) narrowMin(agg, "minimum", bag.minimum);
|
|
116
|
+
if (bag.exclusiveMinimum !== undefined) narrowMin(agg, "exclusiveMinimum", bag.exclusiveMinimum);
|
|
117
|
+
if (bag.maximum !== undefined) narrowMax(agg, "maximum", bag.maximum);
|
|
118
|
+
if (bag.exclusiveMaximum !== undefined) narrowMax(agg, "exclusiveMaximum", bag.exclusiveMaximum);
|
|
119
|
+
if (bag.multipleOf !== undefined) addDivisor(agg, bag.multipleOf);
|
|
120
|
+
if (bag.format !== undefined) {
|
|
121
|
+
agg.format ??= bag.format;
|
|
122
|
+
if (bag.format.includes("int")) agg.isInt = true;
|
|
123
|
+
}
|
|
124
|
+
if (bag.mime) intersectMime(agg, bag.mime);
|
|
125
|
+
for (const pattern of bag.patterns ?? []) addPattern(agg, pattern);
|
|
126
|
+
return agg as CheckAggregate<N>;
|
|
127
|
+
}
|
|
21
128
|
|
|
22
129
|
const formatMap: Partial<Record<checks.$ZodStringFormats, string | undefined>> = {
|
|
23
130
|
guid: "uuid",
|
|
@@ -29,11 +136,17 @@ const formatMap: Partial<Record<checks.$ZodStringFormats, string | undefined>> =
|
|
|
29
136
|
|
|
30
137
|
// ==================== SIMPLE TYPE PROCESSORS ====================
|
|
31
138
|
|
|
139
|
+
// 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
|
|
140
|
+
const exactPatterns: Map<RegExp, RegExp> = new Map([
|
|
141
|
+
[base64Charset, regexes.base64],
|
|
142
|
+
[base64urlCharset, regexes.base64url],
|
|
143
|
+
]);
|
|
144
|
+
const exactPattern = (p: RegExp): RegExp => exactPatterns.get(p) ?? p;
|
|
145
|
+
|
|
32
146
|
export const stringProcessor: Processor<schemas.$ZodString> = (schema, ctx, _json, _params) => {
|
|
33
147
|
const json = _json as JSONSchema.StringSchema;
|
|
34
148
|
json.type = "string";
|
|
35
|
-
const { minimum, maximum, format, patterns, contentEncoding, laxFormat } = schema
|
|
36
|
-
.bag as schemas.$ZodStringInternals<unknown>["bag"];
|
|
149
|
+
const { minimum, maximum, format, patterns, contentEncoding, laxFormat } = aggregateChecks(schema);
|
|
37
150
|
if (typeof minimum === "number") json.minLength = minimum;
|
|
38
151
|
if (typeof maximum === "number") json.maxLength = maximum;
|
|
39
152
|
// custom pattern overrides format
|
|
@@ -48,7 +161,7 @@ export const stringProcessor: Processor<schemas.$ZodString> = (schema, ctx, _jso
|
|
|
48
161
|
}
|
|
49
162
|
if (contentEncoding) json.contentEncoding = contentEncoding;
|
|
50
163
|
if (patterns && patterns.size > 0) {
|
|
51
|
-
const patternList = [...patterns];
|
|
164
|
+
const patternList = [...patterns].map(exactPattern);
|
|
52
165
|
if (patternList.length === 1) json.pattern = patternList[0]!.source;
|
|
53
166
|
else if (patternList.length > 1) {
|
|
54
167
|
json.allOf = [
|
|
@@ -65,9 +178,8 @@ export const stringProcessor: Processor<schemas.$ZodString> = (schema, ctx, _jso
|
|
|
65
178
|
|
|
66
179
|
export const numberProcessor: Processor<schemas.$ZodNumber> = (schema, ctx, _json, params) => {
|
|
67
180
|
const json = _json as JSONSchema.NumberSchema | JSONSchema.IntegerSchema;
|
|
68
|
-
const { minimum, maximum,
|
|
69
|
-
|
|
70
|
-
else json.type = "number";
|
|
181
|
+
const { minimum, maximum, multipleOf, exclusiveMaximum, exclusiveMinimum, isInt } = aggregateChecks<number>(schema);
|
|
182
|
+
json.type = isInt ? "integer" : "number";
|
|
71
183
|
|
|
72
184
|
// when both minimum and exclusiveMinimum exist, pick the more restrictive one
|
|
73
185
|
const exMin = typeof exclusiveMinimum === "number" && exclusiveMinimum >= (minimum ?? Number.NEGATIVE_INFINITY);
|
|
@@ -96,17 +208,24 @@ export const numberProcessor: Processor<schemas.$ZodNumber> = (schema, ctx, _jso
|
|
|
96
208
|
json.maximum = maximum;
|
|
97
209
|
}
|
|
98
210
|
|
|
99
|
-
if (
|
|
211
|
+
if (multipleOf) {
|
|
100
212
|
// 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.
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
213
|
+
const divisors = new Set<number>();
|
|
214
|
+
for (const divisor of multipleOf) {
|
|
215
|
+
if (Number.isFinite(divisor) && divisor !== 0) divisors.add(Math.abs(divisor));
|
|
216
|
+
else
|
|
217
|
+
handleUnrepresentable(
|
|
218
|
+
schema,
|
|
219
|
+
ctx,
|
|
220
|
+
json,
|
|
221
|
+
params,
|
|
222
|
+
`A multipleOf divisor of ${divisor} cannot be represented in JSON Schema`
|
|
223
|
+
);
|
|
224
|
+
}
|
|
225
|
+
// chained divisors are a conjunction the keyword cannot carry alone, so extras ride an allOf, same as stacked patterns
|
|
226
|
+
const [first, ...rest] = divisors;
|
|
227
|
+
if (first !== undefined) json.multipleOf = first;
|
|
228
|
+
if (rest.length) json.allOf = [...(json.allOf ?? []), ...rest.map((m) => ({ multipleOf: m }))];
|
|
110
229
|
}
|
|
111
230
|
};
|
|
112
231
|
|
|
@@ -229,26 +348,19 @@ export const templateLiteralProcessor: Processor<schemas.$ZodTemplateLiteral> =
|
|
|
229
348
|
|
|
230
349
|
export const fileProcessor: Processor<schemas.$ZodFile> = (schema, _ctx, json, _params) => {
|
|
231
350
|
const _json = json as JSONSchema.StringSchema;
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
contentEncoding: "binary",
|
|
236
|
-
};
|
|
351
|
+
_json.type = "string";
|
|
352
|
+
_json.format = "binary";
|
|
353
|
+
_json.contentEncoding = "binary";
|
|
237
354
|
|
|
238
|
-
const { minimum, maximum, mime } = schema
|
|
239
|
-
if (minimum !== undefined)
|
|
240
|
-
if (maximum !== undefined)
|
|
241
|
-
if (mime)
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
_json.anyOf = mime.map((m) => ({ contentMediaType: m })); // only contentMediaType differs
|
|
248
|
-
}
|
|
249
|
-
} else {
|
|
250
|
-
Object.assign(_json, file);
|
|
251
|
-
}
|
|
355
|
+
const { minimum, maximum, mime } = aggregateChecks<number>(schema);
|
|
356
|
+
if (minimum !== undefined) _json.minLength = minimum;
|
|
357
|
+
if (maximum !== undefined) _json.maxLength = maximum;
|
|
358
|
+
if (!mime) return;
|
|
359
|
+
// 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: {}`
|
|
360
|
+
if (mime.length === 0) _json.not = {};
|
|
361
|
+
else if (mime.length === 1) _json.contentMediaType = mime[0]!;
|
|
362
|
+
// only contentMediaType differs, so the shared props stay at the root
|
|
363
|
+
else _json.anyOf = mime.map((m) => ({ contentMediaType: m }));
|
|
252
364
|
};
|
|
253
365
|
|
|
254
366
|
export const successProcessor: Processor<schemas.$ZodSuccess> = (_schema, _ctx, json, _params) => {
|
|
@@ -280,12 +392,12 @@ export const setProcessor: Processor<schemas.$ZodSet> = (schema, ctx, json, para
|
|
|
280
392
|
export const arrayProcessor: Processor<schemas.$ZodArray> = (schema, ctx, _json, params) => {
|
|
281
393
|
const json = _json as JSONSchema.ArraySchema;
|
|
282
394
|
const def = schema._zod.def as schemas.$ZodArrayDef;
|
|
283
|
-
const { minimum, maximum } = schema
|
|
395
|
+
const { minimum, maximum } = aggregateChecks(schema);
|
|
284
396
|
if (typeof minimum === "number") json.minItems = minimum;
|
|
285
397
|
if (typeof maximum === "number") json.maxItems = maximum;
|
|
286
398
|
|
|
287
399
|
json.type = "array";
|
|
288
|
-
json.items =
|
|
400
|
+
json.items = processSchema(def.element, ctx as any, {
|
|
289
401
|
...params,
|
|
290
402
|
path: [...params.path, "items"],
|
|
291
403
|
});
|
|
@@ -329,7 +441,7 @@ export const objectProcessor: Processor<schemas.$ZodObject> = (schema, ctx, _jso
|
|
|
329
441
|
assignProp(
|
|
330
442
|
json.properties,
|
|
331
443
|
key,
|
|
332
|
-
|
|
444
|
+
processSchema(shape[key]!, ctx as any, {
|
|
333
445
|
...params,
|
|
334
446
|
path: [...params.path, "properties", key],
|
|
335
447
|
})
|
|
@@ -337,20 +449,16 @@ export const objectProcessor: Processor<schemas.$ZodObject> = (schema, ctx, _jso
|
|
|
337
449
|
}
|
|
338
450
|
|
|
339
451
|
// required keys
|
|
340
|
-
const
|
|
341
|
-
const
|
|
342
|
-
[
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
return field._zod.optout === undefined;
|
|
348
|
-
}
|
|
349
|
-
})
|
|
350
|
-
);
|
|
452
|
+
const requiredKeys: string[] = [];
|
|
453
|
+
for (const key of Object.keys(shape)) {
|
|
454
|
+
const field = def.shape[key]!;
|
|
455
|
+
if (ctx.io === "input" ? inputOptin(field) === undefined : field._zod.optout === undefined) {
|
|
456
|
+
requiredKeys.push(key);
|
|
457
|
+
}
|
|
458
|
+
}
|
|
351
459
|
|
|
352
|
-
if (requiredKeys.
|
|
353
|
-
json.required =
|
|
460
|
+
if (requiredKeys.length > 0) {
|
|
461
|
+
json.required = requiredKeys;
|
|
354
462
|
}
|
|
355
463
|
|
|
356
464
|
// catchall
|
|
@@ -361,7 +469,7 @@ export const objectProcessor: Processor<schemas.$ZodObject> = (schema, ctx, _jso
|
|
|
361
469
|
// regular
|
|
362
470
|
if (ctx.io === "output") json.additionalProperties = false;
|
|
363
471
|
} else if (def.catchall) {
|
|
364
|
-
json.additionalProperties =
|
|
472
|
+
json.additionalProperties = processSchema(def.catchall, ctx as any, {
|
|
365
473
|
...params,
|
|
366
474
|
path: [...params.path, "additionalProperties"],
|
|
367
475
|
});
|
|
@@ -373,7 +481,7 @@ export const unionProcessor: Processor<schemas.$ZodUnion> = (schema, ctx, json,
|
|
|
373
481
|
// Exclusive unions (inclusive === false) use oneOf (exactly one match) instead of anyOf (one or more matches). This includes both z.xor() and discriminated unions
|
|
374
482
|
const isExclusive = def.inclusive === false;
|
|
375
483
|
const options = def.options.map((x, i) =>
|
|
376
|
-
|
|
484
|
+
processSchema(x, ctx as any, {
|
|
377
485
|
...params,
|
|
378
486
|
path: [...params.path, isExclusive ? "oneOf" : "anyOf", i],
|
|
379
487
|
})
|
|
@@ -387,11 +495,11 @@ export const unionProcessor: Processor<schemas.$ZodUnion> = (schema, ctx, json,
|
|
|
387
495
|
|
|
388
496
|
export const intersectionProcessor: Processor<schemas.$ZodIntersection> = (schema, ctx, json, params) => {
|
|
389
497
|
const def = schema._zod.def as schemas.$ZodIntersectionDef;
|
|
390
|
-
const a =
|
|
498
|
+
const a = processSchema(def.left, ctx as any, {
|
|
391
499
|
...params,
|
|
392
500
|
path: [...params.path, "allOf", 0],
|
|
393
501
|
});
|
|
394
|
-
const b =
|
|
502
|
+
const b = processSchema(def.right, ctx as any, {
|
|
395
503
|
...params,
|
|
396
504
|
path: [...params.path, "allOf", 1],
|
|
397
505
|
});
|
|
@@ -416,13 +524,13 @@ export const tupleProcessor: Processor<schemas.$ZodTuple> = (schema, ctx, _json,
|
|
|
416
524
|
ctx.target === "draft-2020-12" ? "items" : ctx.target === "openapi-3.0" ? "items" : "additionalItems";
|
|
417
525
|
|
|
418
526
|
const prefixItems = def.items.map((x, i) =>
|
|
419
|
-
|
|
527
|
+
processSchema(x, ctx as any, {
|
|
420
528
|
...params,
|
|
421
529
|
path: [...params.path, prefixPath, i],
|
|
422
530
|
})
|
|
423
531
|
);
|
|
424
532
|
const rest = def.rest
|
|
425
|
-
?
|
|
533
|
+
? processSchema(def.rest, ctx as any, {
|
|
426
534
|
...params,
|
|
427
535
|
path: [...params.path, restPath, ...(ctx.target === "openapi-3.0" ? [def.items.length] : [])],
|
|
428
536
|
})
|
|
@@ -469,10 +577,7 @@ export const tupleProcessor: Processor<schemas.$ZodTuple> = (schema, ctx, _json,
|
|
|
469
577
|
}
|
|
470
578
|
|
|
471
579
|
// explicit user-defined length checks take precedence
|
|
472
|
-
const { minimum, maximum } = schema
|
|
473
|
-
minimum?: number;
|
|
474
|
-
maximum?: number;
|
|
475
|
-
};
|
|
580
|
+
const { minimum, maximum } = aggregateChecks(schema);
|
|
476
581
|
if (typeof minimum === "number") json.minItems = minimum;
|
|
477
582
|
if (typeof maximum === "number") json.maxItems = maximum;
|
|
478
583
|
};
|
|
@@ -563,23 +668,22 @@ export const recordProcessor: Processor<schemas.$ZodRecord> = (schema, ctx, _jso
|
|
|
563
668
|
|
|
564
669
|
// For looseRecord with regex patterns, use patternProperties. This correctly represents "only validate keys matching the pattern" semantics and composes well with allOf (intersections)
|
|
565
670
|
const keyType = def.keyType as schemas.$ZodTypes;
|
|
566
|
-
const
|
|
567
|
-
const patterns = keyBag?.patterns;
|
|
671
|
+
const patterns = aggregateChecks(keyType).patterns;
|
|
568
672
|
|
|
569
673
|
if (def.mode === "loose" && patterns && patterns.size > 0) {
|
|
570
674
|
// Use patternProperties for looseRecord with regex patterns
|
|
571
|
-
const valueSchema =
|
|
675
|
+
const valueSchema = processSchema(def.valueType, ctx as any, {
|
|
572
676
|
...params,
|
|
573
677
|
path: [...params.path, "patternProperties", "*"],
|
|
574
678
|
});
|
|
575
679
|
json.patternProperties = {};
|
|
576
680
|
for (const pattern of patterns) {
|
|
577
|
-
assignProp(json.patternProperties, pattern.source, valueSchema);
|
|
681
|
+
assignProp(json.patternProperties, exactPattern(pattern).source, valueSchema);
|
|
578
682
|
}
|
|
579
683
|
} else {
|
|
580
684
|
// Default behavior: use propertyNames + additionalProperties
|
|
581
685
|
if (ctx.target === "draft-07" || ctx.target === "draft-2020-12") {
|
|
582
|
-
json.propertyNames =
|
|
686
|
+
json.propertyNames = processSchema(def.keyType, ctx as any, {
|
|
583
687
|
...params,
|
|
584
688
|
path: [...params.path, "propertyNames"],
|
|
585
689
|
});
|
|
@@ -591,7 +695,7 @@ export const recordProcessor: Processor<schemas.$ZodRecord> = (schema, ctx, _jso
|
|
|
591
695
|
}
|
|
592
696
|
pending.push(schema);
|
|
593
697
|
}
|
|
594
|
-
json.additionalProperties =
|
|
698
|
+
json.additionalProperties = processSchema(def.valueType, ctx as any, {
|
|
595
699
|
...params,
|
|
596
700
|
path: [...params.path, "additionalProperties"],
|
|
597
701
|
});
|
|
@@ -614,7 +718,7 @@ export const recordProcessor: Processor<schemas.$ZodRecord> = (schema, ctx, _jso
|
|
|
614
718
|
|
|
615
719
|
export const nullableProcessor: Processor<schemas.$ZodNullable> = (schema, ctx, json, params) => {
|
|
616
720
|
const def = schema._zod.def as schemas.$ZodNullableDef;
|
|
617
|
-
const inner =
|
|
721
|
+
const inner = processSchema(def.innerType, ctx as any, params);
|
|
618
722
|
const seen = ctx.seen.get(schema)!;
|
|
619
723
|
if (ctx.target === "openapi-3.0") {
|
|
620
724
|
seen.ref = def.innerType;
|
|
@@ -626,7 +730,7 @@ export const nullableProcessor: Processor<schemas.$ZodNullable> = (schema, ctx,
|
|
|
626
730
|
|
|
627
731
|
export const nonoptionalProcessor: Processor<schemas.$ZodNonOptional> = (schema, ctx, _json, params) => {
|
|
628
732
|
const def = schema._zod.def as schemas.$ZodNonOptionalDef;
|
|
629
|
-
|
|
733
|
+
processSchema(def.innerType, ctx as any, params);
|
|
630
734
|
const seen = ctx.seen.get(schema)!;
|
|
631
735
|
seen.ref = def.innerType;
|
|
632
736
|
};
|
|
@@ -655,7 +759,7 @@ function serializeDefaultValue(
|
|
|
655
759
|
|
|
656
760
|
export const defaultProcessor: Processor<schemas.$ZodDefault> = (schema, ctx, json, params) => {
|
|
657
761
|
const def = schema._zod.def as schemas.$ZodDefaultDef;
|
|
658
|
-
|
|
762
|
+
processSchema(def.innerType, ctx as any, params);
|
|
659
763
|
const seen = ctx.seen.get(schema)!;
|
|
660
764
|
seen.ref = def.innerType;
|
|
661
765
|
const value = serializeDefaultValue(def.defaultValue, schema, ctx as ToJSONSchemaContext, json, params);
|
|
@@ -664,7 +768,7 @@ export const defaultProcessor: Processor<schemas.$ZodDefault> = (schema, ctx, js
|
|
|
664
768
|
|
|
665
769
|
export const prefaultProcessor: Processor<schemas.$ZodPrefault> = (schema, ctx, json, params) => {
|
|
666
770
|
const def = schema._zod.def as schemas.$ZodPrefaultDef;
|
|
667
|
-
|
|
771
|
+
processSchema(def.innerType, ctx as any, params);
|
|
668
772
|
const seen = ctx.seen.get(schema)!;
|
|
669
773
|
seen.ref = def.innerType;
|
|
670
774
|
if (ctx.io !== "input") return;
|
|
@@ -674,7 +778,7 @@ export const prefaultProcessor: Processor<schemas.$ZodPrefault> = (schema, ctx,
|
|
|
674
778
|
|
|
675
779
|
export const catchProcessor: Processor<schemas.$ZodCatch> = (schema, ctx, json, params) => {
|
|
676
780
|
const def = schema._zod.def as schemas.$ZodCatchDef;
|
|
677
|
-
|
|
781
|
+
processSchema(def.innerType, ctx as any, params);
|
|
678
782
|
const seen = ctx.seen.get(schema)!;
|
|
679
783
|
seen.ref = def.innerType;
|
|
680
784
|
let catchValue: any;
|
|
@@ -691,14 +795,14 @@ export const pipeProcessor: Processor<schemas.$ZodPipe> = (schema, ctx, _json, p
|
|
|
691
795
|
const def = schema._zod.def as schemas.$ZodPipeDef;
|
|
692
796
|
const inIsTransform = def.in._zod.traits.has("$ZodTransform");
|
|
693
797
|
const innerType = ctx.io === "input" ? (inIsTransform ? def.out : def.in) : def.out;
|
|
694
|
-
|
|
798
|
+
processSchema(innerType, ctx as any, params);
|
|
695
799
|
const seen = ctx.seen.get(schema)!;
|
|
696
800
|
seen.ref = innerType;
|
|
697
801
|
};
|
|
698
802
|
|
|
699
803
|
export const readonlyProcessor: Processor<schemas.$ZodReadonly> = (schema, ctx, json, params) => {
|
|
700
804
|
const def = schema._zod.def as schemas.$ZodReadonlyDef;
|
|
701
|
-
|
|
805
|
+
processSchema(def.innerType, ctx as any, params);
|
|
702
806
|
const seen = ctx.seen.get(schema)!;
|
|
703
807
|
seen.ref = def.innerType;
|
|
704
808
|
json.readOnly = true;
|
|
@@ -706,21 +810,21 @@ export const readonlyProcessor: Processor<schemas.$ZodReadonly> = (schema, ctx,
|
|
|
706
810
|
|
|
707
811
|
export const promiseProcessor: Processor<schemas.$ZodPromise> = (schema, ctx, _json, params) => {
|
|
708
812
|
const def = schema._zod.def as schemas.$ZodPromiseDef;
|
|
709
|
-
|
|
813
|
+
processSchema(def.innerType, ctx as any, params);
|
|
710
814
|
const seen = ctx.seen.get(schema)!;
|
|
711
815
|
seen.ref = def.innerType;
|
|
712
816
|
};
|
|
713
817
|
|
|
714
818
|
export const optionalProcessor: Processor<schemas.$ZodOptional> = (schema, ctx, _json, params) => {
|
|
715
819
|
const def = schema._zod.def as schemas.$ZodOptionalDef;
|
|
716
|
-
|
|
820
|
+
processSchema(def.innerType, ctx as any, params);
|
|
717
821
|
const seen = ctx.seen.get(schema)!;
|
|
718
822
|
seen.ref = def.innerType;
|
|
719
823
|
};
|
|
720
824
|
|
|
721
825
|
export const lazyProcessor: Processor<schemas.$ZodLazy> = (schema, ctx, _json, params) => {
|
|
722
826
|
const innerType = (schema as schemas.$ZodLazy)._zod.innerType;
|
|
723
|
-
|
|
827
|
+
processSchema(innerType, ctx as any, params);
|
|
724
828
|
const seen = ctx.seen.get(schema)!;
|
|
725
829
|
seen.ref = innerType;
|
|
726
830
|
};
|
|
@@ -792,7 +896,7 @@ export function toJSONSchema(
|
|
|
792
896
|
// First pass: process all schemas to build the seen map
|
|
793
897
|
for (const entry of registry._idmap.entries()) {
|
|
794
898
|
const [_, schema] = entry;
|
|
795
|
-
|
|
899
|
+
processSchema(schema, ctx as any);
|
|
796
900
|
}
|
|
797
901
|
|
|
798
902
|
const schemas: Record<string, JSONSchema.BaseSchema> = {};
|
|
@@ -824,7 +928,7 @@ export function toJSONSchema(
|
|
|
824
928
|
|
|
825
929
|
// Single schema case
|
|
826
930
|
const ctx = initializeContext({ ...params, processors: allProcessors });
|
|
827
|
-
|
|
931
|
+
processSchema(input, ctx as any);
|
|
828
932
|
extractDefs(ctx as any, input);
|
|
829
933
|
return finalize(ctx as any, input);
|
|
830
934
|
}
|