@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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as checks from "./checks.js";
|
|
2
2
|
import * as core from "./core.js";
|
|
3
3
|
import { Doc } from "./doc.js";
|
|
4
|
-
import { parse, parseAsync
|
|
4
|
+
import { parse, parseAsync } from "./parse.js";
|
|
5
5
|
import * as regexes from "./regexes.js";
|
|
6
6
|
import * as util from "./util.js";
|
|
7
7
|
import { version } from "./versions.js";
|
|
@@ -128,16 +128,24 @@ export const $ZodType = /*@__PURE__*/ core.$constructor("$ZodType", (inst, def)
|
|
|
128
128
|
},
|
|
129
129
|
});
|
|
130
130
|
/** The Standard Schema surface for `inst`. Shared so wrappers can extend it without forcing it. */
|
|
131
|
-
|
|
131
|
+
// a Standard Schema result only reports issues, so a failure finalizes them straight off the raw payload: no ZodError, and no lazy result to read through
|
|
132
|
+
const toStandardResult = (r, ctx) => r.issues.length ? { issues: r.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())) } : { value: r.value };
|
|
133
|
+
async function validateAsync(inst, value) {
|
|
134
|
+
const ctx = { async: true };
|
|
135
|
+
return toStandardResult((await inst._zod.run({ value, issues: [] }, ctx)), ctx);
|
|
136
|
+
}
|
|
132
137
|
export function standardProps(inst) {
|
|
133
138
|
return {
|
|
134
139
|
validate: (value) => {
|
|
140
|
+
const ctx = { async: false };
|
|
135
141
|
try {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
return safeParseAsync(inst, value).then(toStandardResult);
|
|
142
|
+
const r = inst._zod.run({ value, issues: [] }, ctx);
|
|
143
|
+
if (!(r instanceof Promise))
|
|
144
|
+
return toStandardResult(r, ctx);
|
|
140
145
|
}
|
|
146
|
+
catch (_) { }
|
|
147
|
+
// async function so a synchronously throwing check rejects instead of escaping validate
|
|
148
|
+
return validateAsync(inst, value);
|
|
141
149
|
},
|
|
142
150
|
vendor: "zod",
|
|
143
151
|
version: 1,
|
|
@@ -146,7 +154,8 @@ export function standardProps(inst) {
|
|
|
146
154
|
export { clone } from "./util.js";
|
|
147
155
|
export const $ZodString = /*@__PURE__*/ core.$constructor("$ZodString", (inst, def) => {
|
|
148
156
|
$ZodType.init(inst, def);
|
|
149
|
-
|
|
157
|
+
// a format's own pattern, else unbounded; a template literal derives the check-aware form itself
|
|
158
|
+
inst._zod.pattern = def.pattern ?? regexes.anyString;
|
|
150
159
|
inst._zod.parse = (payload, _) => {
|
|
151
160
|
if (def.coerce)
|
|
152
161
|
try {
|
|
@@ -200,15 +209,37 @@ export const $ZodEmail = /*@__PURE__*/ core.$constructor("$ZodEmail", (inst, def
|
|
|
200
209
|
});
|
|
201
210
|
/** The `://` guard rejected the input before the URL constructor saw it. */
|
|
202
211
|
export const URL_BAD_FORMAT = 1;
|
|
203
|
-
/** The URL
|
|
212
|
+
/** The URL parser rejected the input. */
|
|
204
213
|
export const URL_UNPARSEABLE = 2;
|
|
205
|
-
|
|
214
|
+
export function canParseURL(input) {
|
|
215
|
+
try {
|
|
216
|
+
if (typeof URL !== "undefined" && typeof URL.canParse === "function")
|
|
217
|
+
return URL.canParse(input);
|
|
218
|
+
new URL(input);
|
|
219
|
+
return true;
|
|
220
|
+
}
|
|
221
|
+
catch {
|
|
222
|
+
return false;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
export function validateURL(trimmed, def) {
|
|
226
|
+
if (!("normalize" in def) && !("hostname" in def) && !("protocol" in def)) {
|
|
227
|
+
return canParseURL(trimmed) || URL_UNPARSEABLE;
|
|
228
|
+
}
|
|
229
|
+
return parseURLObject(trimmed, def);
|
|
230
|
+
}
|
|
231
|
+
/** Parses a URL while preserving the non-normalizing HTTP guard. */
|
|
206
232
|
export function parseURLObject(trimmed, def) {
|
|
207
233
|
// When normalize is off, require :// for http/https URLs. This prevents strings like "http:example.com" or "https:/path" from being silently accepted
|
|
208
234
|
if (!def.normalize && def.protocol?.source === regexes.httpProtocol.source && !/^https?:\/\//i.test(trimmed)) {
|
|
209
235
|
return URL_BAD_FORMAT;
|
|
210
236
|
}
|
|
211
237
|
try {
|
|
238
|
+
if (typeof URL !== "undefined") {
|
|
239
|
+
const URLStatic = URL;
|
|
240
|
+
if (typeof URLStatic.parse === "function")
|
|
241
|
+
return URLStatic.parse(trimmed) ?? URL_UNPARSEABLE;
|
|
242
|
+
}
|
|
212
243
|
// @ts-ignore
|
|
213
244
|
return new URL(trimmed);
|
|
214
245
|
}
|
|
@@ -235,7 +266,7 @@ export const $ZodURL = /*@__PURE__*/ core.$constructor("$ZodURL", (inst, def) =>
|
|
|
235
266
|
try {
|
|
236
267
|
// Trim whitespace from input
|
|
237
268
|
const trimmed = payload.value.trim();
|
|
238
|
-
const url =
|
|
269
|
+
const url = validateURL(trimmed, def);
|
|
239
270
|
if (url === URL_BAD_FORMAT) {
|
|
240
271
|
payload.issues.push({
|
|
241
272
|
code: "invalid_format",
|
|
@@ -257,6 +288,10 @@ export const $ZodURL = /*@__PURE__*/ core.$constructor("$ZodURL", (inst, def) =>
|
|
|
257
288
|
});
|
|
258
289
|
return;
|
|
259
290
|
}
|
|
291
|
+
if (url === true) {
|
|
292
|
+
payload.value = stripTabAndNewline(trimmed);
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
260
295
|
if (def.hostname && !urlHostnameOk(url, def.hostname)) {
|
|
261
296
|
payload.issues.push({
|
|
262
297
|
code: "invalid_format",
|
|
@@ -332,13 +367,6 @@ export const $ZodKSUID = /*@__PURE__*/ core.$constructor("$ZodKSUID", (inst, def
|
|
|
332
367
|
export const $ZodISODateTime = /*@__PURE__*/ core.$constructor("$ZodISODateTime", (inst, def) => {
|
|
333
368
|
def.pattern ?? (def.pattern = regexes.datetime(def));
|
|
334
369
|
$ZodStringFormat.init(inst, def);
|
|
335
|
-
// these two drop the offset or seconds `date-time` requires — on the bag not the def, since `z.string().check(...)` lands the format on a different schema
|
|
336
|
-
if (def.local || def.precision === -1) {
|
|
337
|
-
inst._zod.bag.laxFormat = true;
|
|
338
|
-
inst._zod.onattach.push((s) => {
|
|
339
|
-
s._zod.bag.laxFormat = true;
|
|
340
|
-
});
|
|
341
|
-
}
|
|
342
370
|
});
|
|
343
371
|
export const $ZodISODate = /*@__PURE__*/ core.$constructor("$ZodISODate", (inst, def) => {
|
|
344
372
|
def.pattern ?? (def.pattern = regexes.date);
|
|
@@ -355,26 +383,17 @@ export const $ZodISODuration = /*@__PURE__*/ core.$constructor("$ZodISODuration"
|
|
|
355
383
|
export const $ZodIPv4 = /*@__PURE__*/ core.$constructor("$ZodIPv4", (inst, def) => {
|
|
356
384
|
def.pattern ?? (def.pattern = regexes.ipv4);
|
|
357
385
|
$ZodStringFormat.init(inst, def);
|
|
358
|
-
inst._zod.bag.format = `ipv4`;
|
|
359
386
|
});
|
|
360
387
|
/** An IPv6 address is written with hex digits, colons and dots, and nothing else. The guard is what makes the check below an IPv6 check: `new URL("http://[...]")` parses an authority, not an address, so `@` and `\` re-delimit it and `"::@1\\"` validates against the host `0.0.0.1`. The URL parser also deletes ASCII tab, LF and CR rather than failing, which is how `"::1\n"` validated as `::1`. */
|
|
361
388
|
const ipv6Alphabet = /^[0-9a-fA-F:.]+$/;
|
|
362
389
|
export function isValidIPv6(value) {
|
|
363
390
|
if (!ipv6Alphabet.test(value))
|
|
364
391
|
return false;
|
|
365
|
-
|
|
366
|
-
// @ts-ignore
|
|
367
|
-
new URL(`http://[${value}]`);
|
|
368
|
-
return true;
|
|
369
|
-
}
|
|
370
|
-
catch {
|
|
371
|
-
return false;
|
|
372
|
-
}
|
|
392
|
+
return canParseURL(`http://[${value}]`);
|
|
373
393
|
}
|
|
374
394
|
export const $ZodIPv6 = /*@__PURE__*/ core.$constructor("$ZodIPv6", (inst, def) => {
|
|
375
395
|
def.pattern ?? (def.pattern = regexes.ipv6);
|
|
376
396
|
$ZodStringFormat.init(inst, def);
|
|
377
|
-
inst._zod.bag.format = `ipv6`;
|
|
378
397
|
inst._zod.check = (payload) => {
|
|
379
398
|
if (!isValidIPv6(payload.value)) {
|
|
380
399
|
payload.issues.push({
|
|
@@ -390,7 +409,6 @@ export const $ZodIPv6 = /*@__PURE__*/ core.$constructor("$ZodIPv6", (inst, def)
|
|
|
390
409
|
export const $ZodMAC = /*@__PURE__*/ core.$constructor("$ZodMAC", (inst, def) => {
|
|
391
410
|
def.pattern ?? (def.pattern = regexes.mac(def.delimiter));
|
|
392
411
|
$ZodStringFormat.init(inst, def);
|
|
393
|
-
inst._zod.bag.format = `mac`;
|
|
394
412
|
});
|
|
395
413
|
export const $ZodCIDRv4 = /*@__PURE__*/ core.$constructor("$ZodCIDRv4", (inst, def) => {
|
|
396
414
|
def.pattern ?? (def.pattern = regexes.cidrv4);
|
|
@@ -443,10 +461,11 @@ export function isValidBase64(data) {
|
|
|
443
461
|
return false;
|
|
444
462
|
}
|
|
445
463
|
}
|
|
464
|
+
// lax on purpose: the quantified regexes.base64 overflows the regex stack on multi-MB input and its leading ^$| alternation leaks through template-literal composition; isValidBase64 enforces length and padding
|
|
465
|
+
export const base64Charset = /^[0-9a-zA-Z+/]*={0,2}$/;
|
|
446
466
|
export const $ZodBase64 = /*@__PURE__*/ core.$constructor("$ZodBase64", (inst, def) => {
|
|
447
|
-
def.pattern ?? (def.pattern =
|
|
467
|
+
def.pattern ?? (def.pattern = base64Charset);
|
|
448
468
|
$ZodStringFormat.init(inst, def);
|
|
449
|
-
inst._zod.bag.contentEncoding = "base64";
|
|
450
469
|
inst._zod.check = (payload) => {
|
|
451
470
|
if (isValidBase64(payload.value))
|
|
452
471
|
return;
|
|
@@ -459,18 +478,19 @@ export const $ZodBase64 = /*@__PURE__*/ core.$constructor("$ZodBase64", (inst, d
|
|
|
459
478
|
});
|
|
460
479
|
};
|
|
461
480
|
});
|
|
462
|
-
//////////////////////////////
|
|
481
|
+
////////////////////////////// ZodBase64URL //////////////////////////////
|
|
482
|
+
// lax on purpose: the quantified regexes.base64url overflows the regex stack on multi-MB input; isValidBase64 enforces length on the padded string
|
|
483
|
+
export const base64urlCharset = /^[A-Za-z0-9_-]*$/;
|
|
463
484
|
export function isValidBase64URL(data) {
|
|
464
|
-
if (!
|
|
485
|
+
if (!base64urlCharset.test(data))
|
|
465
486
|
return false;
|
|
466
487
|
const base64 = data.replace(/[-_]/g, (c) => (c === "-" ? "+" : "/"));
|
|
467
488
|
const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, "=");
|
|
468
489
|
return isValidBase64(padded);
|
|
469
490
|
}
|
|
470
491
|
export const $ZodBase64URL = /*@__PURE__*/ core.$constructor("$ZodBase64URL", (inst, def) => {
|
|
471
|
-
def.pattern ?? (def.pattern =
|
|
492
|
+
def.pattern ?? (def.pattern = base64urlCharset);
|
|
472
493
|
$ZodStringFormat.init(inst, def);
|
|
473
|
-
inst._zod.bag.contentEncoding = "base64url";
|
|
474
494
|
inst._zod.check = (payload) => {
|
|
475
495
|
if (isValidBase64URL(payload.value))
|
|
476
496
|
return;
|
|
@@ -495,7 +515,7 @@ function isLuhnAlgo(digits) {
|
|
|
495
515
|
let bit = 1;
|
|
496
516
|
let sum = 0;
|
|
497
517
|
while (length) {
|
|
498
|
-
const value =
|
|
518
|
+
const value = digits.charCodeAt(--length) - 48;
|
|
499
519
|
bit ^= 1;
|
|
500
520
|
sum += bit ? [0, 2, 4, 6, 8, 1, 3, 5, 7, 9][value] : value;
|
|
501
521
|
}
|
|
@@ -522,6 +542,42 @@ export const $ZodCreditCard = /*@__PURE__*/ core.$constructor("$ZodCreditCard",
|
|
|
522
542
|
});
|
|
523
543
|
};
|
|
524
544
|
});
|
|
545
|
+
////////////////////////////// ZodIBAN //////////////////////////////
|
|
546
|
+
// iso 7064 mod 97-10 checksum without BigInt
|
|
547
|
+
function isIso7064Mod97(iban) {
|
|
548
|
+
let remainder = 0;
|
|
549
|
+
const len = iban.length;
|
|
550
|
+
for (let i = 4; i < len; i++) {
|
|
551
|
+
const code = iban.charCodeAt(i);
|
|
552
|
+
remainder = (code >= 65 ? remainder * 100 + (code - 55) : remainder * 10 + (code - 48)) % 97;
|
|
553
|
+
}
|
|
554
|
+
for (let i = 0; i < 4; i++) {
|
|
555
|
+
const code = iban.charCodeAt(i);
|
|
556
|
+
remainder = (code >= 65 ? remainder * 100 + (code - 55) : remainder * 10 + (code - 48)) % 97;
|
|
557
|
+
}
|
|
558
|
+
return remainder === 1;
|
|
559
|
+
}
|
|
560
|
+
export function isValidIBAN(input) {
|
|
561
|
+
if (!regexes.iban.test(input))
|
|
562
|
+
return false;
|
|
563
|
+
return isIso7064Mod97(input);
|
|
564
|
+
}
|
|
565
|
+
export const $ZodIBAN = /*@__PURE__*/ core.$constructor("$ZodIBAN", (inst, def) => {
|
|
566
|
+
// shape only — checksum is not expressible as a pattern
|
|
567
|
+
def.pattern ?? (def.pattern = regexes.iban);
|
|
568
|
+
$ZodStringFormat.init(inst, def);
|
|
569
|
+
inst._zod.check = (payload) => {
|
|
570
|
+
if (isValidIBAN(payload.value))
|
|
571
|
+
return;
|
|
572
|
+
payload.issues.push({
|
|
573
|
+
code: "invalid_format",
|
|
574
|
+
format: "iban",
|
|
575
|
+
input: payload.value,
|
|
576
|
+
inst,
|
|
577
|
+
continue: !def.abort,
|
|
578
|
+
});
|
|
579
|
+
};
|
|
580
|
+
});
|
|
525
581
|
////////////////////////////// ZodJWT //////////////////////////////
|
|
526
582
|
export function isValidJWT(token, algorithm = null) {
|
|
527
583
|
try {
|
|
@@ -575,7 +631,7 @@ export const $ZodCustomStringFormat = /*@__PURE__*/ core.$constructor("$ZodCusto
|
|
|
575
631
|
});
|
|
576
632
|
export const $ZodNumber = /*@__PURE__*/ core.$constructor("$ZodNumber", (inst, def) => {
|
|
577
633
|
$ZodType.init(inst, def);
|
|
578
|
-
inst._zod.pattern =
|
|
634
|
+
inst._zod.pattern = regexes.number;
|
|
579
635
|
inst._zod.parse = (payload, _ctx) => {
|
|
580
636
|
if (def.coerce)
|
|
581
637
|
try {
|
|
@@ -783,6 +839,7 @@ export const $ZodArray = /*@__PURE__*/ core.$constructor("$ZodArray", (inst, def
|
|
|
783
839
|
}
|
|
784
840
|
payload.value = memo ? memo.alloc(inst, payload, Array(input.length), ctx) : Array(input.length);
|
|
785
841
|
const proms = [];
|
|
842
|
+
const abortEarly = ctx?.abortEarly;
|
|
786
843
|
for (let i = 0; i < input.length; i++) {
|
|
787
844
|
const item = input[i];
|
|
788
845
|
const result = def.element._zod.run({
|
|
@@ -794,6 +851,9 @@ export const $ZodArray = /*@__PURE__*/ core.$constructor("$ZodArray", (inst, def
|
|
|
794
851
|
}
|
|
795
852
|
else {
|
|
796
853
|
handleArrayResult(result, payload, i);
|
|
854
|
+
// the element's payload is authoritative here, since handleArrayResult forwards every issue; an object's is not, because it drops a failed absent optional
|
|
855
|
+
if (abortEarly && result.issues.length !== 0 && util.aborted(result))
|
|
856
|
+
break;
|
|
797
857
|
}
|
|
798
858
|
}
|
|
799
859
|
if (proms.length) {
|
|
@@ -828,7 +888,7 @@ function handlePropertyResult(result, final, key, input, optin, optout) {
|
|
|
828
888
|
return;
|
|
829
889
|
}
|
|
830
890
|
if (result.value === undefined) {
|
|
831
|
-
if (isPresent) {
|
|
891
|
+
if (isPresent || (optin === "defaulted" && !isOptionalOut)) {
|
|
832
892
|
final.value[key] = undefined;
|
|
833
893
|
}
|
|
834
894
|
}
|
|
@@ -860,14 +920,21 @@ function normalizeDef(def) {
|
|
|
860
920
|
optionalKeys: new Set(okeys),
|
|
861
921
|
};
|
|
862
922
|
}
|
|
863
|
-
function handleCatchall(proms, input, payload, ctx, def, inst) {
|
|
923
|
+
function handleCatchall(proms, input, payload, ctx, def, inst, abortEarly) {
|
|
864
924
|
const unrecognized = [];
|
|
865
925
|
const keySet = def.keySet;
|
|
866
926
|
const _catchall = def.catchall._zod;
|
|
867
927
|
const t = _catchall.def.type;
|
|
868
928
|
const optin = _catchall.optin;
|
|
869
929
|
const optout = _catchall.optout;
|
|
930
|
+
// starts at 0, not the current length: the shape phase already ran and may have aborted
|
|
931
|
+
let seen = 0;
|
|
870
932
|
for (const key in input) {
|
|
933
|
+
if (abortEarly && payload.issues.length !== seen) {
|
|
934
|
+
if (util.aborted(payload, seen))
|
|
935
|
+
break;
|
|
936
|
+
seen = payload.issues.length;
|
|
937
|
+
}
|
|
871
938
|
// Must precede the __proto__ branch: a declared key is not unrecognized, even though the shape loop deliberately strips __proto__ from the parsed output.
|
|
872
939
|
if (keySet.has(key))
|
|
873
940
|
continue;
|
|
@@ -905,26 +972,22 @@ function handleCatchall(proms, input, payload, ctx, def, inst) {
|
|
|
905
972
|
return payload;
|
|
906
973
|
});
|
|
907
974
|
}
|
|
908
|
-
// Whichever object a def's `shape` currently answers from: the one the caller passed until the first read, the frozen copy after it. Keyed by def, so a def rebuilt by a builder is simply absent rather than inheriting the source's. Read its keys with `Object.keys`, which does not invoke them — that is what lets a discriminated union check its discriminator without resolving an option whose getters reference the union being constructed.
|
|
909
|
-
const propShapes = new WeakMap();
|
|
910
975
|
export const $ZodObject = /*@__PURE__*/ core.$constructor("$ZodObject", (inst, def) => {
|
|
911
976
|
// requires cast because technically $ZodObject doesn't extend
|
|
912
977
|
$ZodType.init(inst, def);
|
|
913
|
-
// const sh = def.shape;
|
|
914
978
|
const desc = Object.getOwnPropertyDescriptor(def, "shape");
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
});
|
|
979
|
+
// a cloned def carries its source's accessor, which knows the shape it answers from; adopting that keeps the clone's keys readable without running it
|
|
980
|
+
const sh = desc?.get ? desc.get.raw : (def.shape ?? {});
|
|
981
|
+
if (sh) {
|
|
982
|
+
// Freezes the shape on first read, so its getters resolve once and every later read sees the same schemas.
|
|
983
|
+
const get = () => {
|
|
984
|
+
const newSh = { ...sh };
|
|
985
|
+
Object.defineProperty(def, "shape", { value: newSh });
|
|
986
|
+
get.raw = newSh;
|
|
987
|
+
return newSh;
|
|
988
|
+
};
|
|
989
|
+
get.raw = sh;
|
|
990
|
+
Object.defineProperty(def, "shape", { get });
|
|
928
991
|
}
|
|
929
992
|
const _normalized = util.cached(() => normalizeDef(def));
|
|
930
993
|
util.defineLazyInternal(inst, "propValues", (zod) => {
|
|
@@ -965,7 +1028,14 @@ export const $ZodObject = /*@__PURE__*/ core.$constructor("$ZodObject", (inst, d
|
|
|
965
1028
|
payload.value = memo ? memo.alloc(inst, payload, {}, ctx) : {};
|
|
966
1029
|
const proms = [];
|
|
967
1030
|
const shape = value.shape;
|
|
1031
|
+
const abortEarly = ctx?.abortEarly;
|
|
1032
|
+
let seen = payload.issues.length;
|
|
968
1033
|
for (const key of value.allKeys) {
|
|
1034
|
+
if (abortEarly && payload.issues.length !== seen) {
|
|
1035
|
+
if (util.aborted(payload, seen))
|
|
1036
|
+
break;
|
|
1037
|
+
seen = payload.issues.length;
|
|
1038
|
+
}
|
|
969
1039
|
if (key === "__proto__")
|
|
970
1040
|
continue;
|
|
971
1041
|
const el = shape[key];
|
|
@@ -982,7 +1052,7 @@ export const $ZodObject = /*@__PURE__*/ core.$constructor("$ZodObject", (inst, d
|
|
|
982
1052
|
if (!catchall) {
|
|
983
1053
|
return proms.length ? Promise.all(proms).then(() => payload) : payload;
|
|
984
1054
|
}
|
|
985
|
-
return handleCatchall(proms, input, payload, ctx, _normalized.value, inst);
|
|
1055
|
+
return handleCatchall(proms, input, payload, ctx, _normalized.value, inst, abortEarly === true);
|
|
986
1056
|
};
|
|
987
1057
|
});
|
|
988
1058
|
export const $ZodObjectJIT = /*@__PURE__*/ core.$constructor("$ZodObjectJIT", (inst, def) => {
|
|
@@ -997,12 +1067,18 @@ export const $ZodObjectJIT = /*@__PURE__*/ core.$constructor("$ZodObjectJIT", (i
|
|
|
997
1067
|
// a symbol has no source literal, so it is read as `syms[i]` off the closed-over scope
|
|
998
1068
|
const doc = new Doc(["payload", "ctx"], { shape, inst, memo, syms });
|
|
999
1069
|
const parseStr = (k) => `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`;
|
|
1000
|
-
//
|
|
1070
|
+
// prefixes in place, like util.prefixIssues. newResult must land before the early return: a catchall runs after this and would otherwise write onto the caller's input
|
|
1001
1071
|
const prefixStr = (id, k) => `
|
|
1072
|
+
let ${id}_ab = false;
|
|
1002
1073
|
for (let i = 0; i < ${id}.issues.length; i++) {
|
|
1003
1074
|
const iss = ${id}.issues[i];
|
|
1004
1075
|
iss.path = iss.path ? [${k}, ...iss.path] : [${k}];
|
|
1005
1076
|
payload.issues.push(iss);
|
|
1077
|
+
if (iss.continue !== true) ${id}_ab = true;
|
|
1078
|
+
}
|
|
1079
|
+
if (${id}_ab && ctx && ctx.abortEarly) {
|
|
1080
|
+
payload.value = newResult;
|
|
1081
|
+
return payload;
|
|
1006
1082
|
}`;
|
|
1007
1083
|
doc.write(`const input = payload.value;`);
|
|
1008
1084
|
const ids = Object.create(null);
|
|
@@ -1051,6 +1127,10 @@ export const $ZodObjectJIT = /*@__PURE__*/ core.$constructor("$ZodObjectJIT", (i
|
|
|
1051
1127
|
input: undefined,
|
|
1052
1128
|
path: [${k}]
|
|
1053
1129
|
});
|
|
1130
|
+
if (ctx && ctx.abortEarly) {
|
|
1131
|
+
payload.value = newResult;
|
|
1132
|
+
return payload;
|
|
1133
|
+
}
|
|
1054
1134
|
}
|
|
1055
1135
|
|
|
1056
1136
|
if (${id}_present) {
|
|
@@ -1063,16 +1143,17 @@ export const $ZodObjectJIT = /*@__PURE__*/ core.$constructor("$ZodObjectJIT", (i
|
|
|
1063
1143
|
doc.write(`
|
|
1064
1144
|
if (${id}.issues.length) {${prefixStr(id, k)}
|
|
1065
1145
|
}
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1146
|
+
`);
|
|
1147
|
+
if (optin === "defaulted") {
|
|
1148
|
+
doc.write(`newResult[${k}] = ${id}.value;`);
|
|
1149
|
+
}
|
|
1150
|
+
else {
|
|
1151
|
+
doc.write(`
|
|
1152
|
+
if (${id}.value !== undefined || ${isPresent}) {
|
|
1072
1153
|
newResult[${k}] = ${id}.value;
|
|
1073
1154
|
}
|
|
1074
|
-
|
|
1075
1155
|
`);
|
|
1156
|
+
}
|
|
1076
1157
|
}
|
|
1077
1158
|
}
|
|
1078
1159
|
doc.write(`payload.value = newResult;`);
|
|
@@ -1106,7 +1187,7 @@ export const $ZodObjectJIT = /*@__PURE__*/ core.$constructor("$ZodObjectJIT", (i
|
|
|
1106
1187
|
payload = fastpass(payload, ctx);
|
|
1107
1188
|
if (!catchall)
|
|
1108
1189
|
return payload;
|
|
1109
|
-
return handleCatchall([], input, payload, ctx, value, inst);
|
|
1190
|
+
return handleCatchall([], input, payload, ctx, value, inst, ctx?.abortEarly === true);
|
|
1110
1191
|
}
|
|
1111
1192
|
return superParse(payload, ctx);
|
|
1112
1193
|
};
|
|
@@ -1243,22 +1324,38 @@ export const $ZodXor = /*@__PURE__*/ core.$constructor("$ZodXor", (inst, def) =>
|
|
|
1243
1324
|
});
|
|
1244
1325
|
};
|
|
1245
1326
|
});
|
|
1246
|
-
/** Returns the option
|
|
1327
|
+
/** Returns the option whose discriminator claims `value`, or throws if ambiguous. */
|
|
1247
1328
|
export function getDiscriminatedOption(union, value) {
|
|
1248
1329
|
const internals = union._zod;
|
|
1249
1330
|
let map = internals.bag.optionsMap;
|
|
1250
1331
|
if (!map) {
|
|
1251
|
-
map =
|
|
1252
|
-
const { options, discriminator } = internals.def;
|
|
1253
|
-
for (const option of options) {
|
|
1254
|
-
// First declaration wins, matching the order the parse path resolves a duplicate in.
|
|
1255
|
-
for (const v of option._zod.propValues?.[discriminator] ?? [])
|
|
1256
|
-
if (!map.has(v))
|
|
1257
|
-
map.set(v, option);
|
|
1258
|
-
}
|
|
1332
|
+
map = discriminatorMap(internals.def);
|
|
1259
1333
|
internals.bag.optionsMap = map;
|
|
1260
1334
|
}
|
|
1261
|
-
|
|
1335
|
+
const option = map.get(value);
|
|
1336
|
+
if (option === null)
|
|
1337
|
+
throw new Error(`Ambiguous discriminator value "${String(value)}"`);
|
|
1338
|
+
return option;
|
|
1339
|
+
}
|
|
1340
|
+
function discriminatorMap(def) {
|
|
1341
|
+
const map = new Map();
|
|
1342
|
+
for (const option of def.options) {
|
|
1343
|
+
const values = option._zod.propValues?.[def.discriminator];
|
|
1344
|
+
if (!values || values.size === 0)
|
|
1345
|
+
throw new Error(`Invalid discriminated union option at index "${def.options.indexOf(option)}"`);
|
|
1346
|
+
for (const value of values) {
|
|
1347
|
+
if (map.has(value)) {
|
|
1348
|
+
if (value !== undefined)
|
|
1349
|
+
throw new Error(`Duplicate discriminator value "${String(value)}"`);
|
|
1350
|
+
// keep the collision marked so a later member cannot reclaim it
|
|
1351
|
+
map.set(value, null);
|
|
1352
|
+
}
|
|
1353
|
+
else {
|
|
1354
|
+
map.set(value, option);
|
|
1355
|
+
}
|
|
1356
|
+
}
|
|
1357
|
+
}
|
|
1358
|
+
return map;
|
|
1262
1359
|
}
|
|
1263
1360
|
export const $ZodDiscriminatedUnion =
|
|
1264
1361
|
/*@__PURE__*/
|
|
@@ -1268,10 +1365,13 @@ core.$constructor("$ZodDiscriminatedUnion", (inst, def) => {
|
|
|
1268
1365
|
const _super = inst._zod.parse;
|
|
1269
1366
|
util.defineLazyInternal(inst, "propValues", (zod) => {
|
|
1270
1367
|
const propValues = {};
|
|
1368
|
+
let undefinedCount = 0;
|
|
1271
1369
|
for (const option of zod.def.options) {
|
|
1272
1370
|
const pv = option._zod.propValues;
|
|
1273
1371
|
if (!pv || Object.keys(pv).length === 0)
|
|
1274
1372
|
throw new Error(`Invalid discriminated union option at index "${zod.def.options.indexOf(option)}"`);
|
|
1373
|
+
if (pv[zod.def.discriminator]?.has(undefined))
|
|
1374
|
+
undefinedCount++;
|
|
1275
1375
|
for (const [k, v] of Object.entries(pv)) {
|
|
1276
1376
|
if (!Object.prototype.hasOwnProperty.call(propValues, k)) {
|
|
1277
1377
|
util.assignProp(propValues, k, new Set());
|
|
@@ -1281,31 +1381,18 @@ core.$constructor("$ZodDiscriminatedUnion", (inst, def) => {
|
|
|
1281
1381
|
}
|
|
1282
1382
|
}
|
|
1283
1383
|
}
|
|
1384
|
+
if (!zod.def.unionFallback && undefinedCount > 1)
|
|
1385
|
+
propValues[zod.def.discriminator]?.delete(undefined);
|
|
1284
1386
|
return propValues;
|
|
1285
1387
|
});
|
|
1286
|
-
// Checked now rather than in the lookup map below, so an option that lacks the discriminator fails at the `discriminatedUnion` call instead of on the first object parsed. Options whose shape cannot be enumerated without resolving it — pipes
|
|
1388
|
+
// Checked now rather than in the lookup map below, so an option that lacks the discriminator fails at the `discriminatedUnion` call instead of on the first object parsed. Options whose shape cannot be enumerated without resolving it — pipes and lazies — are left to the map.
|
|
1287
1389
|
def.options.forEach((option, i) => {
|
|
1288
|
-
const propShape =
|
|
1390
|
+
const propShape = util.rawShape(option._zod.def);
|
|
1289
1391
|
if (propShape && !Object.prototype.hasOwnProperty.call(propShape, def.discriminator)) {
|
|
1290
1392
|
throw new Error(`Invalid discriminated union option at index "${i}"`);
|
|
1291
1393
|
}
|
|
1292
1394
|
});
|
|
1293
|
-
const disc = util.cached(() =>
|
|
1294
|
-
const opts = def.options;
|
|
1295
|
-
const map = new Map();
|
|
1296
|
-
for (const o of opts) {
|
|
1297
|
-
const values = o._zod.propValues?.[def.discriminator];
|
|
1298
|
-
if (!values || values.size === 0)
|
|
1299
|
-
throw new Error(`Invalid discriminated union option at index "${def.options.indexOf(o)}"`);
|
|
1300
|
-
for (const v of values) {
|
|
1301
|
-
if (map.has(v)) {
|
|
1302
|
-
throw new Error(`Duplicate discriminator value "${String(v)}"`);
|
|
1303
|
-
}
|
|
1304
|
-
map.set(v, o);
|
|
1305
|
-
}
|
|
1306
|
-
}
|
|
1307
|
-
return map;
|
|
1308
|
-
});
|
|
1395
|
+
const disc = util.cached(() => discriminatorMap(def));
|
|
1309
1396
|
inst._zod.parse = (payload, ctx) => {
|
|
1310
1397
|
const input = payload.value;
|
|
1311
1398
|
if (!util.isObject(input)) {
|
|
@@ -1317,8 +1404,10 @@ core.$constructor("$ZodDiscriminatedUnion", (inst, def) => {
|
|
|
1317
1404
|
});
|
|
1318
1405
|
return payload;
|
|
1319
1406
|
}
|
|
1320
|
-
const
|
|
1321
|
-
|
|
1407
|
+
const value = input?.[def.discriminator];
|
|
1408
|
+
const opt = disc.value.get(value);
|
|
1409
|
+
// forward metadata cannot choose an encoder for an absent tag
|
|
1410
|
+
if (opt && (value !== undefined || ctx.direction !== "backward")) {
|
|
1322
1411
|
return opt._zod.run(payload, ctx);
|
|
1323
1412
|
}
|
|
1324
1413
|
// Fall back to union matching when the fast discriminator path fails:
|
|
@@ -1333,7 +1422,7 @@ core.$constructor("$ZodDiscriminatedUnion", (inst, def) => {
|
|
|
1333
1422
|
errors: [],
|
|
1334
1423
|
note: "No matching discriminator",
|
|
1335
1424
|
discriminator: def.discriminator,
|
|
1336
|
-
options: Array.from(disc.value.keys()),
|
|
1425
|
+
options: Array.from(disc.value.keys()).filter((value) => disc.value.get(value) !== null),
|
|
1337
1426
|
input,
|
|
1338
1427
|
path: [def.discriminator],
|
|
1339
1428
|
inst,
|
|
@@ -1506,6 +1595,9 @@ export const $ZodTuple = /*@__PURE__*/ core.$constructor("$ZodTuple", (inst, def
|
|
|
1506
1595
|
}
|
|
1507
1596
|
// Run every item in parallel, collecting results into an indexed array. The post-processing in `handleTupleResults` walks them in order so it can decide whether an absent optional-output error can truncate the tail or must be reported to preserve required output.
|
|
1508
1597
|
const itemResults = new Array(items.length);
|
|
1598
|
+
// only tracked when there is a rest loop to skip
|
|
1599
|
+
const abortEarly = def.rest ? ctx?.abortEarly : undefined;
|
|
1600
|
+
let itemAborted = false;
|
|
1509
1601
|
for (let i = 0; i < items.length; i++) {
|
|
1510
1602
|
const r = items[i]._zod.run({ value: input[i], issues: [] }, ctx);
|
|
1511
1603
|
if (r instanceof Promise) {
|
|
@@ -1515,12 +1607,21 @@ export const $ZodTuple = /*@__PURE__*/ core.$constructor("$ZodTuple", (inst, def
|
|
|
1515
1607
|
}
|
|
1516
1608
|
else {
|
|
1517
1609
|
itemResults[i] = r;
|
|
1610
|
+
if (abortEarly && !itemAborted && r.issues.length)
|
|
1611
|
+
itemAborted = util.aborted(r);
|
|
1518
1612
|
}
|
|
1519
1613
|
}
|
|
1520
|
-
|
|
1614
|
+
// sound because rest is non-empty exactly when every fixed index is present, the one case handleTupleResults cannot discard an item's issues
|
|
1615
|
+
if (def.rest && !itemAborted) {
|
|
1521
1616
|
let i = items.length - 1;
|
|
1522
1617
|
const rest = input.slice(items.length);
|
|
1618
|
+
let seen = payload.issues.length;
|
|
1523
1619
|
for (const el of rest) {
|
|
1620
|
+
if (abortEarly && payload.issues.length !== seen) {
|
|
1621
|
+
if (util.aborted(payload, seen))
|
|
1622
|
+
break;
|
|
1623
|
+
seen = payload.issues.length;
|
|
1624
|
+
}
|
|
1524
1625
|
i++;
|
|
1525
1626
|
const result = def.rest._zod.run({ value: el, issues: [] }, ctx);
|
|
1526
1627
|
if (result instanceof Promise) {
|
|
@@ -1602,6 +1703,7 @@ export const $ZodRecord = /*@__PURE__*/ core.$constructor("$ZodRecord", (inst, d
|
|
|
1602
1703
|
});
|
|
1603
1704
|
return payload;
|
|
1604
1705
|
}
|
|
1706
|
+
// no guard in either loop below: a record's invalid_key aborts but an enclosing intersection can reconcile it, so a stopped loop hides keys the sibling does not own and the intersection then rejects nothing
|
|
1605
1707
|
const proms = [];
|
|
1606
1708
|
const values = def.keyType._zod.values;
|
|
1607
1709
|
if (values && !def.partial) {
|
|
@@ -1773,7 +1875,14 @@ export const $ZodMap = /*@__PURE__*/ core.$constructor("$ZodMap", (inst, def) =>
|
|
|
1773
1875
|
}
|
|
1774
1876
|
const proms = [];
|
|
1775
1877
|
payload.value = memo ? memo.alloc(inst, payload, new Map(), ctx) : new Map();
|
|
1878
|
+
const abortEarly = ctx?.abortEarly;
|
|
1879
|
+
let seen = payload.issues.length;
|
|
1776
1880
|
for (const [key, value] of input) {
|
|
1881
|
+
if (abortEarly && payload.issues.length !== seen) {
|
|
1882
|
+
if (util.aborted(payload, seen))
|
|
1883
|
+
break;
|
|
1884
|
+
seen = payload.issues.length;
|
|
1885
|
+
}
|
|
1777
1886
|
const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);
|
|
1778
1887
|
const valueResult = def.valueType._zod.run({ value: value, issues: [] }, ctx);
|
|
1779
1888
|
if (keyResult instanceof Promise || valueResult instanceof Promise) {
|
|
@@ -1839,7 +1948,14 @@ export const $ZodSet = /*@__PURE__*/ core.$constructor("$ZodSet", (inst, def) =>
|
|
|
1839
1948
|
}
|
|
1840
1949
|
const proms = [];
|
|
1841
1950
|
payload.value = memo ? memo.alloc(inst, payload, new Set(), ctx) : new Set();
|
|
1951
|
+
const abortEarly = ctx?.abortEarly;
|
|
1952
|
+
let seen = payload.issues.length;
|
|
1842
1953
|
for (const item of input) {
|
|
1954
|
+
if (abortEarly && payload.issues.length !== seen) {
|
|
1955
|
+
if (util.aborted(payload, seen))
|
|
1956
|
+
break;
|
|
1957
|
+
seen = payload.issues.length;
|
|
1958
|
+
}
|
|
1843
1959
|
const result = def.valueType._zod.run({ value: item, issues: [] }, ctx);
|
|
1844
1960
|
if (result instanceof Promise) {
|
|
1845
1961
|
proms.push(result.then((result) => handleSetResult(result, payload)));
|
|
@@ -1863,9 +1979,11 @@ export const $ZodEnum = /*@__PURE__*/ core.$constructor("$ZodEnum", (inst, def)
|
|
|
1863
1979
|
const values = util.getEnumValues(def.entries);
|
|
1864
1980
|
const valuesSet = new Set(values);
|
|
1865
1981
|
inst._zod.values = valuesSet;
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1982
|
+
util.defineLazyInternal(inst, "pattern", (zod) => {
|
|
1983
|
+
const patternValues = util.getEnumValues(zod.def.entries).filter((k) => util.propertyKeyTypes.has(typeof k));
|
|
1984
|
+
// unmatchable fallback, RE2-safe: an empty alternation would compile to /^()$/, which matches ""
|
|
1985
|
+
return new RegExp(patternValues.length ? `^(${patternValues.map((o) => util.escapeRegex(o.toString())).join("|")})$` : "^[^\\s\\S]$");
|
|
1986
|
+
});
|
|
1869
1987
|
inst._zod.parse = (payload, _ctx) => {
|
|
1870
1988
|
const input = payload.value;
|
|
1871
1989
|
if (valuesSet.has(input)) {
|
|
@@ -1884,12 +2002,15 @@ export const $ZodLiteral = /*@__PURE__*/ core.$constructor("$ZodLiteral", (inst,
|
|
|
1884
2002
|
$ZodType.init(inst, def);
|
|
1885
2003
|
const values = new Set(def.values);
|
|
1886
2004
|
inst._zod.values = values;
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
2005
|
+
util.defineLazyInternal(inst, "pattern", (zod) => {
|
|
2006
|
+
const vals = zod.def.values;
|
|
2007
|
+
// unmatchable fallback, RE2-safe: an empty alternation would compile to /^()$/, which matches ""
|
|
2008
|
+
return new RegExp(vals.length
|
|
2009
|
+
? `^(${vals
|
|
2010
|
+
.map((o) => typeof o === "string" ? util.escapeRegex(o) : o ? util.escapeRegex(o.toString()) : String(o))
|
|
2011
|
+
.join("|")})$`
|
|
2012
|
+
: "^[^\\s\\S]$");
|
|
2013
|
+
});
|
|
1893
2014
|
inst._zod.parse = (payload, _ctx) => {
|
|
1894
2015
|
const input = payload.value;
|
|
1895
2016
|
if (values.has(input)) {
|
|
@@ -2253,22 +2374,67 @@ function handleReadonlyResult(payload) {
|
|
|
2253
2374
|
payload.value = Object.freeze(payload.value);
|
|
2254
2375
|
return payload;
|
|
2255
2376
|
}
|
|
2377
|
+
// a leaf's pattern source with its own checks folded in: the last pattern-carrying check wins, else length bounds narrow the catch-all, else an integer format narrows the number form. the fold lives here instead of on `_zod.pattern` so a bundle without template literals never pays for it
|
|
2378
|
+
function leafPattern(schema) {
|
|
2379
|
+
const def = schema._zod.def;
|
|
2380
|
+
let pattern = def.pattern;
|
|
2381
|
+
let isInt = !!def.format?.includes("int");
|
|
2382
|
+
let minimum;
|
|
2383
|
+
let maximum;
|
|
2384
|
+
for (const ch of def.checks ?? []) {
|
|
2385
|
+
const d = ch._zod.def;
|
|
2386
|
+
if (d.pattern)
|
|
2387
|
+
pattern = d.pattern;
|
|
2388
|
+
isInt || (isInt = !!d.format?.includes("int"));
|
|
2389
|
+
const lo = d.minimum ?? d.length;
|
|
2390
|
+
const hi = d.maximum ?? d.length;
|
|
2391
|
+
if (lo !== undefined && (minimum === undefined || lo > minimum))
|
|
2392
|
+
minimum = lo;
|
|
2393
|
+
if (hi !== undefined && (maximum === undefined || hi < maximum))
|
|
2394
|
+
maximum = hi;
|
|
2395
|
+
}
|
|
2396
|
+
if (pattern)
|
|
2397
|
+
return pattern.source;
|
|
2398
|
+
// an empty range matches nothing at runtime, and `{8,5}` is not a legal quantifier
|
|
2399
|
+
if (minimum !== undefined && maximum !== undefined && minimum > maximum)
|
|
2400
|
+
return "(?!)";
|
|
2401
|
+
if (minimum !== undefined || maximum !== undefined)
|
|
2402
|
+
return regexes.string({ minimum, maximum }).source;
|
|
2403
|
+
const own = schema._zod.pattern;
|
|
2404
|
+
return (isInt && own === regexes.number ? regexes.integer : own)?.source;
|
|
2405
|
+
}
|
|
2406
|
+
// a part's pattern source. a wrapper's pattern embeds its inner pattern's source verbatim, so the folded form is substituted in place without knowing the wrapper's own composition; a union's options are joined the way the union builds its own pattern
|
|
2407
|
+
function partPattern(schema) {
|
|
2408
|
+
const def = schema._zod.def;
|
|
2409
|
+
const own = schema._zod.pattern?.source;
|
|
2410
|
+
// lazy resolves its inner on the internals, not the def
|
|
2411
|
+
const inner = def.innerType ?? schema._zod.innerType;
|
|
2412
|
+
if (inner) {
|
|
2413
|
+
const before = inner._zod.pattern?.source;
|
|
2414
|
+
const after = partPattern(inner);
|
|
2415
|
+
if (own && before && after && after !== before) {
|
|
2416
|
+
return own.replace(util.cleanRegex(before), () => util.cleanRegex(after));
|
|
2417
|
+
}
|
|
2418
|
+
return own;
|
|
2419
|
+
}
|
|
2420
|
+
if (def.options) {
|
|
2421
|
+
const sources = def.options.map(partPattern);
|
|
2422
|
+
if (sources.every(Boolean))
|
|
2423
|
+
return `^(${sources.map((s) => util.cleanRegex(s)).join("|")})$`;
|
|
2424
|
+
}
|
|
2425
|
+
return leafPattern(schema);
|
|
2426
|
+
}
|
|
2256
2427
|
export const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor("$ZodTemplateLiteral", (inst, def) => {
|
|
2257
2428
|
$ZodType.init(inst, def);
|
|
2258
2429
|
const regexParts = [];
|
|
2259
2430
|
for (const part of def.parts) {
|
|
2260
2431
|
if (typeof part === "object" && part !== null) {
|
|
2261
2432
|
// is Zod schema
|
|
2262
|
-
|
|
2263
|
-
|
|
2433
|
+
const source = partPattern(part);
|
|
2434
|
+
if (!source) {
|
|
2264
2435
|
throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);
|
|
2265
2436
|
}
|
|
2266
|
-
|
|
2267
|
-
if (!source)
|
|
2268
|
-
throw new Error(`Invalid template literal part: ${part._zod.traits}`);
|
|
2269
|
-
const start = source.startsWith("^") ? 1 : 0;
|
|
2270
|
-
const end = source.endsWith("$") ? source.length - 1 : source.length;
|
|
2271
|
-
regexParts.push(source.slice(start, end));
|
|
2437
|
+
regexParts.push(util.cleanRegex(source));
|
|
2272
2438
|
}
|
|
2273
2439
|
else if (part === null || util.primitiveTypes.has(typeof part)) {
|
|
2274
2440
|
regexParts.push(util.escapeRegex(`${part}`));
|