@openclaw/feishu 2026.9.4 → 2026.9.5
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/assets/activity.svg +3 -0
- package/assets/icon.png +0 -0
- package/dist/{accounts-cCMNFBKg.js → .setup/accounts-DmU0xYPx.mjs} +1 -1
- package/dist/{app-registration-BI99e_JI.js → .setup/app-registration-Bv4mvauR.mjs} +1 -1
- package/dist/{channel-HDnQAH4Z.js → .setup/channel-C1KrXXJa.mjs} +93 -86
- package/dist/{channel.runtime-B-f6ajOp.js → .setup/channel.runtime-Bizuv7WZ.mjs} +32 -18
- package/dist/{chat-zhIPXu4X.js → .setup/chat-dWJYS63b.mjs} +2 -2
- package/dist/{client-DMbIL3UH.js → .setup/client-DCwNVFZg.mjs} +128 -11
- package/dist/{conversation-id-VYgGQ-GX.js → .setup/conversation-id-H-lUayji.mjs} +49 -14
- package/dist/{monitor-EuNsFn2T.js → .setup/monitor-C69OLzgO.mjs} +4 -4
- package/dist/{monitor.account-CZ7EtqYS.js → .setup/monitor.account-zwHb3HKM.mjs} +68 -52
- package/dist/{probe-D_SatdZl.js → .setup/probe-bdidyhAn.mjs} +2 -2
- package/dist/{reply-delivery-result-C3smdVzb.js → .setup/reply-delivery-result-DFjxGLgX.mjs} +129 -116
- package/dist/.setup/runtime-setter-api-CG-RC4_r.mjs +3 -0
- package/dist/.setup/secret-contract-api-jmCkqVLc.mjs +3 -0
- package/dist/{security-audit-DKfR4Cv3.js → .setup/security-audit-CmiKKfU-.mjs} +1 -1
- package/dist/{session-conversation-DFCIvQK-.js → .setup/session-conversation-ZC6TC1zk.mjs} +1 -1
- package/dist/.setup/setup-api-CTRwX09n.mjs +3 -0
- package/dist/{subagent-hooks-Buadpie_.js → .setup/subagent-hooks-BBfF1hZk.mjs} +3 -19
- package/dist/api.js +29 -15
- package/dist/channel-plugin-api.js +1 -1
- package/dist/contract-api.js +3 -3
- package/dist/doctor-contract-api.js +1 -1
- package/dist/runtime-api.js +1 -1
- package/dist/runtime-setter-api.js +1 -1
- package/dist/secret-contract-api.js +1 -1
- package/dist/security-contract-api.js +1 -1
- package/dist/session-binding-contract-api.js +1 -1
- package/dist/session-key-api.js +1 -1
- package/dist/setup-api.js +1 -1
- package/dist/setup-entry.js +4 -3
- package/dist/subagent-hooks-api.js +1 -1
- package/node_modules/@larksuiteoapi/node-sdk/es/index.js +199 -35
- package/node_modules/@larksuiteoapi/node-sdk/lib/index.js +199 -35
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/CHANGELOG.md +62 -0
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/README.md +233 -5
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/dist/axios.js +387 -89
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/dist/axios.min.js +3 -3
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/dist/axios.min.js.map +1 -1
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/dist/browser/axios.cjs +458 -98
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/dist/esm/axios.js +458 -98
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/dist/esm/axios.min.js +2 -2
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/dist/esm/axios.min.js.map +1 -1
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/dist/node/axios.cjs +568 -116
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/index.d.cts +4 -0
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/index.d.ts +4 -0
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/lib/adapters/fetch.js +64 -11
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/lib/adapters/http.js +134 -50
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/lib/adapters/xhr.js +52 -3
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/lib/core/Axios.js +19 -14
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/lib/core/InterceptorManager.js +107 -8
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/lib/core/buildFullPath.js +1 -13
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/lib/core/dispatchRequest.js +8 -2
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/lib/core/mergeConfig.js +1 -1
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/lib/core/methodList.js +17 -0
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/lib/defaults/index.js +2 -1
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/lib/env/data.js +1 -1
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/lib/helpers/Http2Sessions.js +2 -0
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/lib/helpers/HttpStatusCode.js +11 -1
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/lib/helpers/fromDataURI.js +5 -4
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/lib/helpers/normalizeURLForProtocolCheck.js +24 -0
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/lib/helpers/progressEventReducer.js +1 -1
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/lib/helpers/resolveConfig.js +4 -2
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/lib/helpers/shouldBypassProxy.js +182 -6
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/lib/helpers/throttle.js +3 -2
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/lib/helpers/toFormData.js +14 -21
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/lib/utils.js +134 -13
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/axios/package.json +1 -1
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/README.md +24 -17
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/dist/light/protobuf.js +124 -14
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/dist/light/protobuf.js.map +1 -1
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/dist/light/protobuf.min.js +3 -3
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/dist/light/protobuf.min.js.map +1 -1
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/dist/minimal/protobuf.js +63 -9
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/dist/minimal/protobuf.js.map +1 -1
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/dist/minimal/protobuf.min.js +3 -3
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/dist/minimal/protobuf.min.js.map +1 -1
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/dist/protobuf.js +133 -18
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/dist/protobuf.js.map +1 -1
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/dist/protobuf.min.js +3 -3
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/ext/descriptor.generated.d.ts +7 -0
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/ext/descriptor.js +24 -0
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/ext/protojson.js +14 -4
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/ext/textformat.js +8 -4
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/google/protobuf/descriptor.json +20 -1
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/google/protobuf/descriptor.proto +14 -1
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/index.d.ts +12 -0
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/package.json +1 -1
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/src/decoder.js +31 -2
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/src/enum.js +10 -0
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/src/object.js +5 -2
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/src/parse.js +9 -4
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/src/reader.js +61 -7
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/src/type.js +10 -0
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/protobufjs/src/wrappers.js +5 -1
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/qs/.github/THREAT_MODEL.md +3 -3
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/qs/CHANGELOG.md +15 -0
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/qs/README.md +19 -1
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/qs/dist/qs.js +21 -21
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/qs/eslint.config.mjs +1 -1
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/qs/lib/parse.js +3 -4
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/qs/lib/stringify.js +23 -8
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/qs/lib/utils.js +10 -3
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/qs/package.json +4 -4
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/qs/test/parse.js +192 -3
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/qs/test/stringify.js +317 -0
- package/node_modules/@larksuiteoapi/node-sdk/node_modules/qs/test/utils.js +12 -0
- package/node_modules/@larksuiteoapi/node-sdk/package.json +1 -1
- package/node_modules/@larksuiteoapi/node-sdk/types/index.d.ts +35 -0
- package/node_modules/typebox/build/compile/validator.d.mts +1 -1
- package/node_modules/typebox/build/compile/validator.mjs +1 -1
- package/node_modules/typebox/build/format/idna/idn-hostname.mjs +7 -5
- package/node_modules/typebox/build/format/iri.mjs +5 -1
- package/node_modules/typebox/build/guard/emit.mjs +2 -4
- package/node_modules/typebox/build/guard/guard.mjs +6 -18
- package/node_modules/typebox/build/guard/string.mjs +16 -24
- package/node_modules/typebox/build/schema/build.mjs +2 -2
- package/node_modules/typebox/build/schema/check.mjs +1 -1
- package/node_modules/typebox/build/schema/compile.d.mts +3 -2
- package/node_modules/typebox/build/schema/compile.mjs +8 -8
- package/node_modules/typebox/build/schema/engine/_context.d.mts +6 -7
- package/node_modules/typebox/build/schema/engine/_context.mjs +23 -15
- package/node_modules/typebox/build/schema/engine/_functions.d.mts +2 -2
- package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/_reducer.d.mts +3 -3
- package/node_modules/typebox/build/schema/engine/_refine.d.mts +5 -5
- package/node_modules/typebox/build/schema/engine/_refine.mjs +4 -7
- package/node_modules/typebox/build/schema/engine/_stack.d.mts +34 -16
- package/node_modules/typebox/build/schema/engine/_stack.mjs +148 -104
- package/node_modules/typebox/build/schema/engine/additionalItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/additionalProperties.d.mts +8 -8
- package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +26 -18
- package/node_modules/typebox/build/schema/engine/allOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/allOf.mjs +3 -3
- package/node_modules/typebox/build/schema/engine/anyOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/anyOf.mjs +5 -10
- package/node_modules/typebox/build/schema/engine/boolean.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/boolean.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/const.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/const.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/contains.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/contains.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/dependencies.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dependencies.mjs +3 -6
- package/node_modules/typebox/build/schema/engine/dependentRequired.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dependentRequired.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/dependentSchemas.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +11 -7
- package/node_modules/typebox/build/schema/engine/enum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/enum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/exclusiveMaximum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/exclusiveMaximum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/exclusiveMinimum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/exclusiveMinimum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/format.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/format.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/if.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/if.mjs +7 -15
- package/node_modules/typebox/build/schema/engine/items.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/items.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/maxContains.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxContains.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maxItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxItems.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maxLength.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxLength.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maxProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxProperties.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maximum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maximum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minContains.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minContains.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minItems.d.mts +5 -5
- package/node_modules/typebox/build/schema/engine/minItems.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minLength.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minLength.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minProperties.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minimum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minimum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/multipleOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/multipleOf.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/not.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/not.mjs +4 -8
- package/node_modules/typebox/build/schema/engine/oneOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/oneOf.mjs +6 -11
- package/node_modules/typebox/build/schema/engine/pattern.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -7
- package/node_modules/typebox/build/schema/engine/patternProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/patternProperties.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/prefixItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/prefixItems.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/properties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/properties.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/propertyNames.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/propertyNames.mjs +4 -10
- package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +11 -7
- package/node_modules/typebox/build/schema/engine/ref.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/ref.mjs +19 -15
- package/node_modules/typebox/build/schema/engine/required.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/required.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/schema.d.mts +7 -7
- package/node_modules/typebox/build/schema/engine/schema.mjs +137 -133
- package/node_modules/typebox/build/schema/engine/type.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/type.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/unevaluatedItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/unevaluatedItems.mjs +5 -9
- package/node_modules/typebox/build/schema/engine/unevaluatedProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs +5 -9
- package/node_modules/typebox/build/schema/engine/uniqueItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/uniqueItems.mjs +2 -6
- package/node_modules/typebox/build/schema/errors.d.mts +2 -2
- package/node_modules/typebox/build/schema/errors.mjs +8 -14
- package/node_modules/typebox/build/schema/intern/index.d.mts +1 -0
- package/node_modules/typebox/build/schema/intern/index.mjs +1 -0
- package/node_modules/typebox/build/schema/intern/intern.d.mts +11 -0
- package/node_modules/typebox/build/schema/intern/intern.mjs +293 -0
- package/node_modules/typebox/build/schema/meta/draft_2019_09.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_2019_09.mjs +288 -0
- package/node_modules/typebox/build/schema/meta/draft_2020_12.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_2020_12.mjs +300 -0
- package/node_modules/typebox/build/schema/meta/draft_3.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_3.mjs +143 -0
- package/node_modules/typebox/build/schema/meta/draft_4.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_4.mjs +149 -0
- package/node_modules/typebox/build/schema/meta/draft_6.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_6.mjs +155 -0
- package/node_modules/typebox/build/schema/meta/draft_7.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_7.mjs +172 -0
- package/node_modules/typebox/build/schema/meta/index.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/index.mjs +2 -0
- package/node_modules/typebox/build/schema/meta/meta.d.mts +9 -0
- package/node_modules/typebox/build/schema/meta/meta.mjs +15 -0
- package/node_modules/typebox/build/schema/meta/schema.d.mts +6 -0
- package/node_modules/typebox/build/schema/meta/schema.mjs +1 -0
- package/node_modules/typebox/build/schema/parse.d.mts +1 -0
- package/node_modules/typebox/build/schema/parse.mjs +10 -5
- package/node_modules/typebox/build/schema/resolve/resolve.d.mts +8 -3
- package/node_modules/typebox/build/schema/resolve/resolve.mjs +268 -139
- package/node_modules/typebox/build/schema/schema.d.mts +2 -0
- package/node_modules/typebox/build/schema/schema.mjs +2 -0
- package/node_modules/typebox/build/value/errors/errors.d.mts +2 -12
- package/node_modules/typebox/build/value/errors/errors.mjs +2 -7
- package/node_modules/typebox/package.json +1 -1
- package/node_modules/typebox/readme.md +59 -89
- package/node_modules/zod/README.md +27 -0
- package/node_modules/zod/compile.cjs +77 -0
- package/node_modules/zod/compile.d.cts +1 -0
- package/node_modules/zod/compile.d.ts +1 -0
- package/node_modules/zod/compile.js +52 -0
- package/node_modules/zod/index.cjs +2 -2
- package/node_modules/zod/index.d.cts +1 -2
- package/node_modules/zod/index.d.ts +1 -2
- package/node_modules/zod/index.js +5 -2
- package/node_modules/zod/package.json +13 -2
- package/node_modules/zod/src/compile.ts +56 -0
- package/node_modules/zod/src/index.ts +5 -2
- package/node_modules/zod/src/v3/ZodError.ts +22 -12
- package/node_modules/zod/src/v3/tests/error.test.ts +35 -0
- package/node_modules/zod/src/v3/tests/intersection.test.ts +18 -0
- package/node_modules/zod/src/v3/tests/language-server.test.ts +1 -2
- package/node_modules/zod/src/v3/tests/object.test.ts +3 -6
- package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -80
- package/node_modules/zod/src/v3/tests/string.test.ts +6 -0
- package/node_modules/zod/src/v3/types.ts +5 -5
- package/node_modules/zod/src/v4/classic/checks.ts +1 -0
- package/node_modules/zod/src/v4/classic/compat.ts +26 -18
- package/node_modules/zod/src/v4/classic/deep-partial.ts +76 -0
- package/node_modules/zod/src/v4/classic/errors.ts +59 -44
- package/node_modules/zod/src/v4/classic/external.ts +12 -9
- package/node_modules/zod/src/v4/classic/from-json-schema.ts +140 -78
- package/node_modules/zod/src/v4/classic/in-out.ts +45 -0
- package/node_modules/zod/src/v4/classic/index.ts +2 -2
- package/node_modules/zod/src/v4/classic/iso.ts +2 -72
- package/node_modules/zod/src/v4/classic/parse.ts +10 -4
- package/node_modules/zod/src/v4/classic/schemas.ts +452 -262
- package/node_modules/zod/src/v4/classic/tests/apply.test.ts +27 -0
- package/node_modules/zod/src/v4/classic/tests/array.test.ts +2 -2
- package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +135 -0
- package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +30 -1
- package/node_modules/zod/src/v4/classic/tests/catch.test.ts +278 -0
- package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +1 -2
- package/node_modules/zod/src/v4/classic/tests/codec.test.ts +2 -1
- package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
- package/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +76 -0
- package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +720 -0
- package/node_modules/zod/src/v4/classic/tests/date.test.ts +30 -0
- package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +32 -18
- package/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +380 -0
- package/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +32 -0
- package/node_modules/zod/src/v4/classic/tests/default.test.ts +46 -0
- package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +31 -7
- package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +155 -13
- package/node_modules/zod/src/v4/classic/tests/enum.test.ts +11 -0
- package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +112 -2
- package/node_modules/zod/src/v4/classic/tests/error.test.ts +274 -6
- package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +425 -10
- package/node_modules/zod/src/v4/classic/tests/function.test.ts +31 -0
- package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +2 -9
- package/node_modules/zod/src/v4/classic/tests/hash.test.ts +1 -2
- package/node_modules/zod/src/v4/classic/tests/in-out.test.ts +159 -0
- package/node_modules/zod/src/v4/classic/tests/index.test.ts +21 -2
- package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +281 -0
- package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +47 -0
- package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +136 -0
- package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +183 -0
- package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +3 -10
- package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +36 -1
- package/node_modules/zod/src/v4/classic/tests/literal.test.ts +12 -1
- package/node_modules/zod/src/v4/classic/tests/map.test.ts +12 -0
- package/node_modules/zod/src/v4/classic/tests/number.test.ts +46 -9
- package/node_modules/zod/src/v4/classic/tests/object.test.ts +245 -12
- package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +234 -0
- package/node_modules/zod/src/v4/classic/tests/optional.test.ts +49 -16
- package/node_modules/zod/src/v4/classic/tests/partial.test.ts +51 -4
- package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +20 -2
- package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -68
- package/node_modules/zod/src/v4/classic/tests/record.test.ts +186 -18
- package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +33 -2
- package/node_modules/zod/src/v4/classic/tests/redos.test.ts +68 -0
- package/node_modules/zod/src/v4/classic/tests/refine.test.ts +60 -0
- package/node_modules/zod/src/v4/classic/tests/set.test.ts +9 -0
- package/node_modules/zod/src/v4/classic/tests/string.test.ts +127 -5
- package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +18 -0
- package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +11 -2
- package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +1585 -173
- package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +45 -30
- package/node_modules/zod/src/v4/classic/tests/union.test.ts +39 -2
- package/node_modules/zod/src/v4/classic/tests/validate.test.ts +76 -0
- package/node_modules/zod/src/v4/classic/tests/validations.test.ts +2 -2
- package/node_modules/zod/src/v4/core/api.ts +48 -12
- package/node_modules/zod/src/v4/core/checks.ts +57 -44
- package/node_modules/zod/src/v4/core/compile.ts +2188 -0
- package/node_modules/zod/src/v4/core/core.ts +98 -19
- package/node_modules/zod/src/v4/core/doc.ts +11 -7
- package/node_modules/zod/src/v4/core/errors.ts +115 -24
- package/node_modules/zod/src/v4/core/index.ts +3 -0
- package/node_modules/zod/src/v4/core/json-schema-generator.ts +6 -1
- package/node_modules/zod/src/v4/core/json-schema-processors.ts +257 -93
- package/node_modules/zod/src/v4/core/json-schema.ts +2 -1
- package/node_modules/zod/src/v4/core/memoizer.ts +284 -0
- package/node_modules/zod/src/v4/core/parse.ts +131 -38
- package/node_modules/zod/src/v4/core/regexes.ts +30 -13
- package/node_modules/zod/src/v4/core/registries.ts +2 -2
- package/node_modules/zod/src/v4/core/schemas.ts +759 -461
- package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +969 -0
- package/node_modules/zod/src/v4/core/tests/compile-global.test.ts +89 -0
- package/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +26 -0
- package/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +34 -0
- package/node_modules/zod/src/v4/core/tests/compile.test.ts +1639 -0
- package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +1 -2
- package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +1 -2
- package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +3 -3
- package/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +42 -0
- package/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +69 -0
- package/node_modules/zod/src/v4/core/tests/treeshake.test.ts +51 -0
- package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +31 -0
- package/node_modules/zod/src/v4/core/to-json-schema.ts +275 -42
- package/node_modules/zod/src/v4/core/util.ts +268 -42
- package/node_modules/zod/src/v4/core/versions.ts +2 -2
- package/node_modules/zod/src/v4/core/visit.ts +193 -0
- package/node_modules/zod/src/v4/index.ts +3 -3
- package/node_modules/zod/src/v4/locales/ar.ts +3 -0
- package/node_modules/zod/src/v4/locales/az.ts +3 -0
- package/node_modules/zod/src/v4/locales/be.ts +10 -0
- package/node_modules/zod/src/v4/locales/bg.ts +3 -0
- package/node_modules/zod/src/v4/locales/bn.ts +121 -0
- package/node_modules/zod/src/v4/locales/ca.ts +3 -0
- package/node_modules/zod/src/v4/locales/ckb.ts +138 -0
- package/node_modules/zod/src/v4/locales/cs.ts +3 -0
- package/node_modules/zod/src/v4/locales/da.ts +5 -2
- package/node_modules/zod/src/v4/locales/de.ts +3 -0
- package/node_modules/zod/src/v4/locales/el.ts +1 -0
- package/node_modules/zod/src/v4/locales/en.ts +15 -4
- package/node_modules/zod/src/v4/locales/eo.ts +3 -0
- package/node_modules/zod/src/v4/locales/es.ts +2 -0
- package/node_modules/zod/src/v4/locales/fa.ts +3 -0
- package/node_modules/zod/src/v4/locales/fi.ts +3 -0
- package/node_modules/zod/src/v4/locales/fr-CA.ts +3 -0
- package/node_modules/zod/src/v4/locales/fr.ts +19 -14
- package/node_modules/zod/src/v4/locales/gu.ts +121 -0
- package/node_modules/zod/src/v4/locales/he.ts +6 -1
- package/node_modules/zod/src/v4/locales/hi.ts +124 -0
- package/node_modules/zod/src/v4/locales/hr.ts +2 -0
- package/node_modules/zod/src/v4/locales/hu.ts +3 -0
- package/node_modules/zod/src/v4/locales/hy.ts +9 -0
- package/node_modules/zod/src/v4/locales/id.ts +3 -0
- package/node_modules/zod/src/v4/locales/index.ts +10 -0
- package/node_modules/zod/src/v4/locales/is.ts +3 -0
- package/node_modules/zod/src/v4/locales/it.ts +3 -0
- package/node_modules/zod/src/v4/locales/ja.ts +3 -0
- package/node_modules/zod/src/v4/locales/ka.ts +3 -0
- package/node_modules/zod/src/v4/locales/km.ts +3 -0
- package/node_modules/zod/src/v4/locales/kn.ts +124 -0
- package/node_modules/zod/src/v4/locales/ko.ts +3 -0
- package/node_modules/zod/src/v4/locales/lt.ts +2 -0
- package/node_modules/zod/src/v4/locales/mk.ts +3 -0
- package/node_modules/zod/src/v4/locales/ms.ts +3 -0
- package/node_modules/zod/src/v4/locales/ne.ts +126 -0
- package/node_modules/zod/src/v4/locales/nl.ts +3 -0
- package/node_modules/zod/src/v4/locales/nn.ts +119 -0
- package/node_modules/zod/src/v4/locales/no.ts +5 -2
- package/node_modules/zod/src/v4/locales/ota.ts +3 -0
- package/node_modules/zod/src/v4/locales/pl.ts +3 -0
- package/node_modules/zod/src/v4/locales/ps.ts +3 -0
- package/node_modules/zod/src/v4/locales/pt-BR.ts +159 -0
- package/node_modules/zod/src/v4/locales/pt.ts +99 -58
- package/node_modules/zod/src/v4/locales/ro.ts +1 -0
- package/node_modules/zod/src/v4/locales/ru.ts +10 -0
- package/node_modules/zod/src/v4/locales/sk.ts +121 -0
- package/node_modules/zod/src/v4/locales/sl.ts +3 -0
- package/node_modules/zod/src/v4/locales/sv.ts +5 -2
- package/node_modules/zod/src/v4/locales/ta.ts +3 -0
- package/node_modules/zod/src/v4/locales/th.ts +3 -0
- package/node_modules/zod/src/v4/locales/tk.ts +111 -0
- package/node_modules/zod/src/v4/locales/tr.ts +3 -0
- package/node_modules/zod/src/v4/locales/uk.ts +3 -0
- package/node_modules/zod/src/v4/locales/ur.ts +3 -0
- package/node_modules/zod/src/v4/locales/uz.ts +1 -0
- package/node_modules/zod/src/v4/locales/vi.ts +3 -0
- package/node_modules/zod/src/v4/locales/yo.ts +3 -0
- package/node_modules/zod/src/v4/locales/zh-CN.ts +3 -0
- package/node_modules/zod/src/v4/locales/zh-TW.ts +3 -0
- package/node_modules/zod/src/v4/mini/checks.ts +1 -0
- package/node_modules/zod/src/v4/mini/deep-partial.ts +73 -0
- package/node_modules/zod/src/v4/mini/external.ts +10 -1
- package/node_modules/zod/src/v4/mini/in-out.ts +45 -0
- package/node_modules/zod/src/v4/mini/parse.ts +2 -0
- package/node_modules/zod/src/v4/mini/schemas.ts +135 -56
- package/node_modules/zod/src/v4/mini/tests/apply.test.ts +33 -0
- package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +62 -1
- package/node_modules/zod/src/v4/mini/tests/checks.test.ts +14 -0
- package/node_modules/zod/src/v4/mini/tests/codec.test.ts +35 -1
- package/node_modules/zod/src/v4/mini/tests/cyclic-data.test.ts +84 -0
- package/node_modules/zod/src/v4/mini/tests/deep-partial.test.ts +54 -0
- package/node_modules/zod/src/v4/mini/tests/error.test.ts +23 -4
- package/node_modules/zod/src/v4/mini/tests/functions.test.ts +9 -0
- package/node_modules/zod/src/v4/mini/tests/index.test.ts +72 -5
- package/node_modules/zod/src/v4/mini/tests/number.test.ts +14 -0
- package/node_modules/zod/src/v4/mini/tests/object.test.ts +65 -0
- package/node_modules/zod/src/v4/mini/tests/string.test.ts +21 -0
- package/node_modules/zod/v3/ZodError.cjs +22 -12
- package/node_modules/zod/v3/ZodError.d.cts +1 -1
- package/node_modules/zod/v3/ZodError.d.ts +1 -1
- package/node_modules/zod/v3/ZodError.js +22 -12
- package/node_modules/zod/v3/types.cjs +7 -5
- package/node_modules/zod/v3/types.js +7 -5
- package/node_modules/zod/v4/classic/checks.cjs +2 -1
- package/node_modules/zod/v4/classic/checks.d.cts +1 -1
- package/node_modules/zod/v4/classic/checks.d.ts +1 -1
- package/node_modules/zod/v4/classic/checks.js +1 -1
- package/node_modules/zod/v4/classic/compat.d.cts +9 -11
- package/node_modules/zod/v4/classic/compat.d.ts +9 -11
- package/node_modules/zod/v4/classic/deep-partial.cjs +39 -0
- package/node_modules/zod/v4/classic/deep-partial.d.cts +14 -0
- package/node_modules/zod/v4/classic/deep-partial.d.ts +14 -0
- package/node_modules/zod/v4/classic/deep-partial.js +13 -0
- package/node_modules/zod/v4/classic/errors.cjs +43 -34
- package/node_modules/zod/v4/classic/errors.d.cts +3 -4
- package/node_modules/zod/v4/classic/errors.d.ts +3 -4
- package/node_modules/zod/v4/classic/errors.js +43 -34
- package/node_modules/zod/v4/classic/external.cjs +30 -27
- package/node_modules/zod/v4/classic/external.d.cts +5 -2
- package/node_modules/zod/v4/classic/external.d.ts +5 -2
- package/node_modules/zod/v4/classic/external.js +5 -8
- package/node_modules/zod/v4/classic/from-json-schema.cjs +136 -75
- package/node_modules/zod/v4/classic/from-json-schema.js +136 -75
- package/node_modules/zod/v4/classic/in-out.cjs +63 -0
- package/node_modules/zod/v4/classic/in-out.d.cts +8 -0
- package/node_modules/zod/v4/classic/in-out.d.ts +8 -0
- package/node_modules/zod/v4/classic/in-out.js +36 -0
- package/node_modules/zod/v4/classic/index.cjs +2 -2
- package/node_modules/zod/v4/classic/index.d.cts +1 -2
- package/node_modules/zod/v4/classic/index.d.ts +1 -2
- package/node_modules/zod/v4/classic/index.js +2 -2
- package/node_modules/zod/v4/classic/iso.cjs +11 -22
- package/node_modules/zod/v4/classic/iso.d.cts +2 -17
- package/node_modules/zod/v4/classic/iso.d.ts +2 -17
- package/node_modules/zod/v4/classic/iso.js +2 -17
- package/node_modules/zod/v4/classic/parse.cjs +4 -1
- package/node_modules/zod/v4/classic/parse.d.cts +17 -4
- package/node_modules/zod/v4/classic/parse.d.ts +17 -4
- package/node_modules/zod/v4/classic/parse.js +1 -0
- package/node_modules/zod/v4/classic/schemas.cjs +498 -398
- package/node_modules/zod/v4/classic/schemas.d.cts +53 -18
- package/node_modules/zod/v4/classic/schemas.d.ts +53 -18
- package/node_modules/zod/v4/classic/schemas.js +492 -396
- package/node_modules/zod/v4/core/api.cjs +23 -4
- package/node_modules/zod/v4/core/api.d.cts +13 -9
- package/node_modules/zod/v4/core/api.d.ts +13 -9
- package/node_modules/zod/v4/core/api.js +21 -4
- package/node_modules/zod/v4/core/checks.cjs +37 -31
- package/node_modules/zod/v4/core/checks.d.cts +13 -13
- package/node_modules/zod/v4/core/checks.d.ts +13 -13
- package/node_modules/zod/v4/core/checks.js +37 -31
- package/node_modules/zod/v4/core/compile.cjs +1813 -0
- package/node_modules/zod/v4/core/compile.d.cts +51 -0
- package/node_modules/zod/v4/core/compile.d.ts +51 -0
- package/node_modules/zod/v4/core/compile.js +1783 -0
- package/node_modules/zod/v4/core/core.cjs +81 -18
- package/node_modules/zod/v4/core/core.d.cts +16 -4
- package/node_modules/zod/v4/core/core.d.ts +16 -4
- package/node_modules/zod/v4/core/core.js +82 -19
- package/node_modules/zod/v4/core/doc.cjs +5 -7
- package/node_modules/zod/v4/core/doc.d.cts +3 -1
- package/node_modules/zod/v4/core/doc.d.ts +3 -1
- package/node_modules/zod/v4/core/doc.js +5 -7
- package/node_modules/zod/v4/core/errors.cjs +110 -25
- package/node_modules/zod/v4/core/errors.d.cts +4 -0
- package/node_modules/zod/v4/core/errors.d.ts +4 -0
- package/node_modules/zod/v4/core/errors.js +110 -25
- package/node_modules/zod/v4/core/index.cjs +5 -1
- package/node_modules/zod/v4/core/index.d.cts +3 -0
- package/node_modules/zod/v4/core/index.d.ts +3 -0
- package/node_modules/zod/v4/core/index.js +3 -0
- package/node_modules/zod/v4/core/json-schema-generator.cjs +4 -0
- package/node_modules/zod/v4/core/json-schema-generator.d.cts +2 -2
- package/node_modules/zod/v4/core/json-schema-generator.d.ts +2 -2
- package/node_modules/zod/v4/core/json-schema-generator.js +4 -0
- package/node_modules/zod/v4/core/json-schema-processors.cjs +264 -95
- package/node_modules/zod/v4/core/json-schema-processors.js +243 -97
- package/node_modules/zod/v4/core/json-schema.d.cts +2 -1
- package/node_modules/zod/v4/core/json-schema.d.ts +2 -1
- package/node_modules/zod/v4/core/memoizer.cjs +272 -0
- package/node_modules/zod/v4/core/memoizer.d.cts +15 -0
- package/node_modules/zod/v4/core/memoizer.d.ts +15 -0
- package/node_modules/zod/v4/core/memoizer.js +265 -0
- package/node_modules/zod/v4/core/parse.cjs +96 -34
- package/node_modules/zod/v4/core/parse.d.cts +14 -11
- package/node_modules/zod/v4/core/parse.d.ts +14 -11
- package/node_modules/zod/v4/core/parse.js +94 -33
- package/node_modules/zod/v4/core/regexes.cjs +27 -15
- package/node_modules/zod/v4/core/regexes.d.cts +2 -0
- package/node_modules/zod/v4/core/regexes.d.ts +2 -0
- package/node_modules/zod/v4/core/regexes.js +24 -13
- package/node_modules/zod/v4/core/registries.js +2 -2
- package/node_modules/zod/v4/core/schemas.cjs +537 -326
- package/node_modules/zod/v4/core/schemas.d.cts +100 -31
- package/node_modules/zod/v4/core/schemas.d.ts +100 -31
- package/node_modules/zod/v4/core/schemas.js +526 -325
- package/node_modules/zod/v4/core/to-json-schema.cjs +242 -39
- package/node_modules/zod/v4/core/to-json-schema.d.cts +42 -3
- package/node_modules/zod/v4/core/to-json-schema.d.ts +42 -3
- package/node_modules/zod/v4/core/to-json-schema.js +241 -39
- package/node_modules/zod/v4/core/util.cjs +212 -31
- package/node_modules/zod/v4/core/util.d.cts +58 -1
- package/node_modules/zod/v4/core/util.d.ts +58 -1
- package/node_modules/zod/v4/core/util.js +202 -30
- package/node_modules/zod/v4/core/versions.cjs +2 -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 +195 -0
- package/node_modules/zod/v4/core/visit.d.cts +30 -0
- package/node_modules/zod/v4/core/visit.d.ts +30 -0
- package/node_modules/zod/v4/core/visit.js +169 -0
- package/node_modules/zod/v4/index.cjs +15 -5
- package/node_modules/zod/v4/index.d.cts +2 -2
- package/node_modules/zod/v4/index.d.ts +2 -2
- package/node_modules/zod/v4/index.js +3 -2
- package/node_modules/zod/v4/locales/ar.cjs +3 -0
- package/node_modules/zod/v4/locales/ar.js +3 -0
- package/node_modules/zod/v4/locales/az.cjs +3 -0
- package/node_modules/zod/v4/locales/az.js +3 -0
- package/node_modules/zod/v4/locales/be.cjs +10 -0
- package/node_modules/zod/v4/locales/be.js +10 -0
- package/node_modules/zod/v4/locales/bg.cjs +3 -0
- package/node_modules/zod/v4/locales/bg.js +3 -0
- package/node_modules/zod/v4/locales/bn.cjs +138 -0
- package/node_modules/zod/v4/locales/bn.d.cts +5 -0
- package/node_modules/zod/v4/locales/bn.d.ts +4 -0
- package/node_modules/zod/v4/locales/bn.js +111 -0
- package/node_modules/zod/v4/locales/ca.cjs +3 -0
- package/node_modules/zod/v4/locales/ca.js +3 -0
- package/node_modules/zod/v4/locales/ckb.cjs +158 -0
- package/node_modules/zod/v4/locales/ckb.d.cts +5 -0
- package/node_modules/zod/v4/locales/ckb.d.ts +4 -0
- package/node_modules/zod/v4/locales/ckb.js +131 -0
- package/node_modules/zod/v4/locales/cs.cjs +3 -0
- package/node_modules/zod/v4/locales/cs.js +3 -0
- package/node_modules/zod/v4/locales/da.cjs +5 -2
- package/node_modules/zod/v4/locales/da.js +5 -2
- package/node_modules/zod/v4/locales/de.cjs +3 -0
- package/node_modules/zod/v4/locales/de.js +3 -0
- package/node_modules/zod/v4/locales/el.cjs +1 -0
- package/node_modules/zod/v4/locales/el.js +1 -0
- package/node_modules/zod/v4/locales/en.cjs +14 -4
- package/node_modules/zod/v4/locales/en.js +14 -4
- package/node_modules/zod/v4/locales/eo.cjs +3 -0
- package/node_modules/zod/v4/locales/eo.js +3 -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 +3 -0
- package/node_modules/zod/v4/locales/fa.js +3 -0
- package/node_modules/zod/v4/locales/fi.cjs +3 -0
- package/node_modules/zod/v4/locales/fi.js +3 -0
- package/node_modules/zod/v4/locales/fr-CA.cjs +3 -0
- package/node_modules/zod/v4/locales/fr-CA.js +3 -0
- package/node_modules/zod/v4/locales/fr.cjs +16 -14
- package/node_modules/zod/v4/locales/fr.js +16 -14
- package/node_modules/zod/v4/locales/gu.cjs +138 -0
- package/node_modules/zod/v4/locales/gu.d.cts +5 -0
- package/node_modules/zod/v4/locales/gu.d.ts +4 -0
- package/node_modules/zod/v4/locales/gu.js +111 -0
- package/node_modules/zod/v4/locales/he.cjs +5 -0
- package/node_modules/zod/v4/locales/he.js +5 -0
- package/node_modules/zod/v4/locales/hi.cjs +136 -0
- package/node_modules/zod/v4/locales/hi.d.cts +5 -0
- package/node_modules/zod/v4/locales/hi.d.ts +4 -0
- package/node_modules/zod/v4/locales/hi.js +109 -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 +3 -0
- package/node_modules/zod/v4/locales/hu.js +3 -0
- package/node_modules/zod/v4/locales/hy.cjs +9 -0
- package/node_modules/zod/v4/locales/hy.js +9 -0
- package/node_modules/zod/v4/locales/id.cjs +3 -0
- package/node_modules/zod/v4/locales/id.js +3 -0
- package/node_modules/zod/v4/locales/index.cjs +22 -2
- package/node_modules/zod/v4/locales/index.d.cts +10 -0
- package/node_modules/zod/v4/locales/index.d.ts +10 -0
- package/node_modules/zod/v4/locales/index.js +10 -0
- package/node_modules/zod/v4/locales/is.cjs +3 -0
- package/node_modules/zod/v4/locales/is.js +3 -0
- package/node_modules/zod/v4/locales/it.cjs +3 -0
- package/node_modules/zod/v4/locales/it.js +3 -0
- package/node_modules/zod/v4/locales/ja.cjs +3 -0
- package/node_modules/zod/v4/locales/ja.js +3 -0
- package/node_modules/zod/v4/locales/ka.cjs +3 -0
- package/node_modules/zod/v4/locales/ka.js +3 -0
- package/node_modules/zod/v4/locales/km.cjs +3 -0
- package/node_modules/zod/v4/locales/km.js +3 -0
- package/node_modules/zod/v4/locales/kn.cjs +141 -0
- package/node_modules/zod/v4/locales/kn.d.cts +5 -0
- package/node_modules/zod/v4/locales/kn.d.ts +4 -0
- package/node_modules/zod/v4/locales/kn.js +114 -0
- package/node_modules/zod/v4/locales/ko.cjs +3 -0
- package/node_modules/zod/v4/locales/ko.js +3 -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 +3 -0
- package/node_modules/zod/v4/locales/mk.js +3 -0
- package/node_modules/zod/v4/locales/ms.cjs +3 -0
- package/node_modules/zod/v4/locales/ms.js +3 -0
- package/node_modules/zod/v4/locales/ne.cjs +136 -0
- package/node_modules/zod/v4/locales/ne.d.cts +5 -0
- package/node_modules/zod/v4/locales/ne.d.ts +4 -0
- package/node_modules/zod/v4/locales/ne.js +109 -0
- package/node_modules/zod/v4/locales/nl.cjs +3 -0
- package/node_modules/zod/v4/locales/nl.js +3 -0
- package/node_modules/zod/v4/locales/nn.cjs +138 -0
- package/node_modules/zod/v4/locales/nn.d.cts +5 -0
- package/node_modules/zod/v4/locales/nn.d.ts +4 -0
- package/node_modules/zod/v4/locales/nn.js +111 -0
- package/node_modules/zod/v4/locales/no.cjs +5 -2
- package/node_modules/zod/v4/locales/no.js +5 -2
- package/node_modules/zod/v4/locales/ota.cjs +3 -0
- package/node_modules/zod/v4/locales/ota.js +3 -0
- package/node_modules/zod/v4/locales/pl.cjs +3 -0
- package/node_modules/zod/v4/locales/pl.js +3 -0
- package/node_modules/zod/v4/locales/ps.cjs +3 -0
- package/node_modules/zod/v4/locales/ps.js +3 -0
- package/node_modules/zod/v4/locales/pt-BR.cjs +168 -0
- package/node_modules/zod/v4/locales/pt-BR.d.cts +5 -0
- package/node_modules/zod/v4/locales/pt-BR.d.ts +4 -0
- package/node_modules/zod/v4/locales/pt-BR.js +141 -0
- package/node_modules/zod/v4/locales/pt.cjs +87 -55
- package/node_modules/zod/v4/locales/pt.js +87 -55
- package/node_modules/zod/v4/locales/ro.cjs +1 -0
- package/node_modules/zod/v4/locales/ro.js +1 -0
- package/node_modules/zod/v4/locales/ru.cjs +10 -0
- package/node_modules/zod/v4/locales/ru.js +10 -0
- package/node_modules/zod/v4/locales/sk.cjs +141 -0
- package/node_modules/zod/v4/locales/sk.d.cts +5 -0
- package/node_modules/zod/v4/locales/sk.d.ts +4 -0
- package/node_modules/zod/v4/locales/sk.js +114 -0
- package/node_modules/zod/v4/locales/sl.cjs +3 -0
- package/node_modules/zod/v4/locales/sl.js +3 -0
- package/node_modules/zod/v4/locales/sv.cjs +5 -2
- package/node_modules/zod/v4/locales/sv.js +5 -2
- package/node_modules/zod/v4/locales/ta.cjs +3 -0
- package/node_modules/zod/v4/locales/ta.js +3 -0
- package/node_modules/zod/v4/locales/th.cjs +3 -0
- package/node_modules/zod/v4/locales/th.js +3 -0
- package/node_modules/zod/v4/locales/tk.cjs +132 -0
- package/node_modules/zod/v4/locales/tk.d.cts +5 -0
- package/node_modules/zod/v4/locales/tk.d.ts +4 -0
- package/node_modules/zod/v4/locales/tk.js +105 -0
- package/node_modules/zod/v4/locales/tr.cjs +3 -0
- package/node_modules/zod/v4/locales/tr.js +3 -0
- package/node_modules/zod/v4/locales/uk.cjs +3 -0
- package/node_modules/zod/v4/locales/uk.js +3 -0
- package/node_modules/zod/v4/locales/ur.cjs +3 -0
- package/node_modules/zod/v4/locales/ur.js +3 -0
- package/node_modules/zod/v4/locales/uz.cjs +1 -0
- package/node_modules/zod/v4/locales/uz.js +1 -0
- package/node_modules/zod/v4/locales/vi.cjs +3 -0
- package/node_modules/zod/v4/locales/vi.js +3 -0
- package/node_modules/zod/v4/locales/yo.cjs +3 -0
- package/node_modules/zod/v4/locales/yo.js +3 -0
- package/node_modules/zod/v4/locales/zh-CN.cjs +3 -0
- package/node_modules/zod/v4/locales/zh-CN.js +3 -0
- package/node_modules/zod/v4/locales/zh-TW.cjs +3 -0
- package/node_modules/zod/v4/locales/zh-TW.js +3 -0
- package/node_modules/zod/v4/mini/checks.cjs +2 -1
- package/node_modules/zod/v4/mini/checks.d.cts +1 -1
- package/node_modules/zod/v4/mini/checks.d.ts +1 -1
- package/node_modules/zod/v4/mini/checks.js +1 -1
- package/node_modules/zod/v4/mini/deep-partial.cjs +39 -0
- package/node_modules/zod/v4/mini/deep-partial.d.cts +14 -0
- package/node_modules/zod/v4/mini/deep-partial.d.ts +14 -0
- package/node_modules/zod/v4/mini/deep-partial.js +13 -0
- package/node_modules/zod/v4/mini/external.cjs +12 -1
- package/node_modules/zod/v4/mini/external.d.cts +5 -2
- package/node_modules/zod/v4/mini/external.d.ts +5 -2
- package/node_modules/zod/v4/mini/external.js +3 -1
- package/node_modules/zod/v4/mini/in-out.cjs +63 -0
- package/node_modules/zod/v4/mini/in-out.d.cts +8 -0
- package/node_modules/zod/v4/mini/in-out.d.ts +8 -0
- package/node_modules/zod/v4/mini/in-out.js +36 -0
- package/node_modules/zod/v4/mini/parse.cjs +3 -1
- package/node_modules/zod/v4/mini/parse.d.cts +1 -1
- package/node_modules/zod/v4/mini/parse.d.ts +1 -1
- package/node_modules/zod/v4/mini/parse.js +1 -1
- package/node_modules/zod/v4/mini/schemas.cjs +75 -47
- package/node_modules/zod/v4/mini/schemas.d.cts +43 -13
- package/node_modules/zod/v4/mini/schemas.d.ts +43 -13
- package/node_modules/zod/v4/mini/schemas.js +71 -45
- package/openclaw.plugin.json +25 -58
- package/package.json +10 -7
- package/dist/targets-BTQCYRZQ.js +0 -48
- package/node_modules/zod/src/v4/core/config.ts +0 -15
- /package/dist/{audio-preflight.runtime-BBfC9elv.js → .setup/audio-preflight.runtime-BBfC9elv.mjs} +0 -0
- /package/dist/{doctor-contract-w6FpMypv.js → .setup/doctor-contract-w6FpMypv.mjs} +0 -0
- /package/dist/{json-response-DXajw_FU.js → .setup/json-response-DXajw_FU.mjs} +0 -0
- /package/dist/{rolldown-runtime-8H4AJuhK.js → .setup/rolldown-runtime-8H4AJuhK.mjs} +0 -0
- /package/dist/{runtime-C5JxBWZp.js → .setup/runtime-C5JxBWZp.mjs} +0 -0
- /package/dist/{secret-contract-BCpDLdg9.js → .setup/secret-contract-BCpDLdg9.mjs} +0 -0
- /package/dist/{security-audit-shared-CK5rVR-1.js → .setup/security-audit-shared-CK5rVR-1.mjs} +0 -0
- /package/dist/{thread-bindings-BiL1wGqK.js → .setup/thread-bindings-BiL1wGqK.mjs} +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import * as regexes from "./regexes.js";
|
|
2
|
+
import { extractDefs, finalize, handleUnrepresentable, initializeContext, process, } from "./to-json-schema.js";
|
|
3
|
+
import { assignProp, getEnumValues } from "./util.js";
|
|
3
4
|
const formatMap = {
|
|
4
5
|
guid: "uuid",
|
|
5
6
|
url: "uri",
|
|
@@ -11,7 +12,7 @@ const formatMap = {
|
|
|
11
12
|
export const stringProcessor = (schema, ctx, _json, _params) => {
|
|
12
13
|
const json = _json;
|
|
13
14
|
json.type = "string";
|
|
14
|
-
const { minimum, maximum, format, patterns, contentEncoding } = schema._zod
|
|
15
|
+
const { minimum, maximum, format, patterns, contentEncoding, laxFormat } = schema._zod
|
|
15
16
|
.bag;
|
|
16
17
|
if (typeof minimum === "number")
|
|
17
18
|
json.minLength = minimum;
|
|
@@ -22,21 +23,20 @@ export const stringProcessor = (schema, ctx, _json, _params) => {
|
|
|
22
23
|
json.format = formatMap[format] ?? format;
|
|
23
24
|
if (json.format === "")
|
|
24
25
|
delete json.format; // empty format is not valid
|
|
25
|
-
//
|
|
26
|
-
|
|
27
|
-
if (format === "time") {
|
|
26
|
+
// `z.iso.time()` is never full-time, and `laxFormat` carries the datetime shapes that also accept what their keyword forbids
|
|
27
|
+
if (format === "time" || laxFormat) {
|
|
28
28
|
delete json.format;
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
if (contentEncoding)
|
|
32
32
|
json.contentEncoding = contentEncoding;
|
|
33
33
|
if (patterns && patterns.size > 0) {
|
|
34
|
-
const
|
|
35
|
-
if (
|
|
36
|
-
json.pattern =
|
|
37
|
-
else if (
|
|
34
|
+
const patternList = [...patterns];
|
|
35
|
+
if (patternList.length === 1)
|
|
36
|
+
json.pattern = patternList[0].source;
|
|
37
|
+
else if (patternList.length > 1) {
|
|
38
38
|
json.allOf = [
|
|
39
|
-
...
|
|
39
|
+
...patternList.map((regex) => ({
|
|
40
40
|
...(ctx.target === "draft-07" || ctx.target === "draft-04" || ctx.target === "openapi-3.0"
|
|
41
41
|
? { type: "string" }
|
|
42
42
|
: {}),
|
|
@@ -46,7 +46,7 @@ export const stringProcessor = (schema, ctx, _json, _params) => {
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
|
-
export const numberProcessor = (schema, ctx, _json,
|
|
49
|
+
export const numberProcessor = (schema, ctx, _json, params) => {
|
|
50
50
|
const json = _json;
|
|
51
51
|
const { minimum, maximum, format, multipleOf, exclusiveMaximum, exclusiveMinimum } = schema._zod.bag;
|
|
52
52
|
if (typeof format === "string" && format.includes("int"))
|
|
@@ -81,21 +81,22 @@ export const numberProcessor = (schema, ctx, _json, _params) => {
|
|
|
81
81
|
else if (typeof maximum === "number") {
|
|
82
82
|
json.maximum = maximum;
|
|
83
83
|
}
|
|
84
|
-
if (typeof multipleOf === "number")
|
|
85
|
-
|
|
84
|
+
if (typeof multipleOf === "number") {
|
|
85
|
+
// 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.
|
|
86
|
+
if (Number.isFinite(multipleOf) && multipleOf !== 0)
|
|
87
|
+
json.multipleOf = Math.abs(multipleOf);
|
|
88
|
+
else
|
|
89
|
+
handleUnrepresentable(schema, ctx, json, params, `A multipleOf divisor of ${multipleOf} cannot be represented in JSON Schema`);
|
|
90
|
+
}
|
|
86
91
|
};
|
|
87
92
|
export const booleanProcessor = (_schema, _ctx, json, _params) => {
|
|
88
93
|
json.type = "boolean";
|
|
89
94
|
};
|
|
90
|
-
export const bigintProcessor = (
|
|
91
|
-
|
|
92
|
-
throw new Error("BigInt cannot be represented in JSON Schema");
|
|
93
|
-
}
|
|
95
|
+
export const bigintProcessor = (schema, ctx, json, params) => {
|
|
96
|
+
handleUnrepresentable(schema, ctx, json, params, "BigInt cannot be represented in JSON Schema");
|
|
94
97
|
};
|
|
95
|
-
export const symbolProcessor = (
|
|
96
|
-
|
|
97
|
-
throw new Error("Symbols cannot be represented in JSON Schema");
|
|
98
|
-
}
|
|
98
|
+
export const symbolProcessor = (schema, ctx, json, params) => {
|
|
99
|
+
handleUnrepresentable(schema, ctx, json, params, "Symbols cannot be represented in JSON Schema");
|
|
99
100
|
};
|
|
100
101
|
export const nullProcessor = (_schema, ctx, json, _params) => {
|
|
101
102
|
if (ctx.target === "openapi-3.0") {
|
|
@@ -107,15 +108,11 @@ export const nullProcessor = (_schema, ctx, json, _params) => {
|
|
|
107
108
|
json.type = "null";
|
|
108
109
|
}
|
|
109
110
|
};
|
|
110
|
-
export const undefinedProcessor = (
|
|
111
|
-
|
|
112
|
-
throw new Error("Undefined cannot be represented in JSON Schema");
|
|
113
|
-
}
|
|
111
|
+
export const undefinedProcessor = (schema, ctx, json, params) => {
|
|
112
|
+
handleUnrepresentable(schema, ctx, json, params, "Undefined cannot be represented in JSON Schema");
|
|
114
113
|
};
|
|
115
|
-
export const voidProcessor = (
|
|
116
|
-
|
|
117
|
-
throw new Error("Void cannot be represented in JSON Schema");
|
|
118
|
-
}
|
|
114
|
+
export const voidProcessor = (schema, ctx, json, params) => {
|
|
115
|
+
handleUnrepresentable(schema, ctx, json, params, "Void cannot be represented in JSON Schema");
|
|
119
116
|
};
|
|
120
117
|
export const neverProcessor = (_schema, _ctx, json, _params) => {
|
|
121
118
|
json.not = {};
|
|
@@ -126,14 +123,17 @@ export const anyProcessor = (_schema, _ctx, _json, _params) => {
|
|
|
126
123
|
export const unknownProcessor = (_schema, _ctx, _json, _params) => {
|
|
127
124
|
// empty schema accepts anything
|
|
128
125
|
};
|
|
129
|
-
export const dateProcessor = (
|
|
130
|
-
|
|
131
|
-
throw new Error("Date cannot be represented in JSON Schema");
|
|
132
|
-
}
|
|
126
|
+
export const dateProcessor = (schema, ctx, json, params) => {
|
|
127
|
+
handleUnrepresentable(schema, ctx, json, params, "Date cannot be represented in JSON Schema");
|
|
133
128
|
};
|
|
134
129
|
export const enumProcessor = (schema, _ctx, json, _params) => {
|
|
135
130
|
const def = schema._zod.def;
|
|
136
131
|
const values = getEnumValues(def.entries);
|
|
132
|
+
// an empty enum accepts nothing, same as z.never()
|
|
133
|
+
if (values.length === 0) {
|
|
134
|
+
json.not = {};
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
137
|
// Number enums can have both string and number values
|
|
138
138
|
if (values.every((v) => typeof v === "number"))
|
|
139
139
|
json.type = "number";
|
|
@@ -141,25 +141,25 @@ export const enumProcessor = (schema, _ctx, json, _params) => {
|
|
|
141
141
|
json.type = "string";
|
|
142
142
|
json.enum = values;
|
|
143
143
|
};
|
|
144
|
-
export const literalProcessor = (schema, ctx, json,
|
|
144
|
+
export const literalProcessor = (schema, ctx, json, params) => {
|
|
145
145
|
const def = schema._zod.def;
|
|
146
|
+
// a literal with no values accepts nothing, same as z.never()
|
|
147
|
+
if (def.values.length === 0) {
|
|
148
|
+
json.not = {};
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
146
151
|
const vals = [];
|
|
147
152
|
for (const val of def.values) {
|
|
148
153
|
if (val === undefined) {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
// do not add to vals
|
|
154
|
-
}
|
|
154
|
+
// a custom schema replaces the whole literal, so there is nothing left to accumulate
|
|
155
|
+
if (handleUnrepresentable(schema, ctx, json, params, "Literal `undefined` cannot be represented in JSON Schema"))
|
|
156
|
+
return;
|
|
157
|
+
// otherwise do not add to vals
|
|
155
158
|
}
|
|
156
159
|
else if (typeof val === "bigint") {
|
|
157
|
-
if (ctx
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
else {
|
|
161
|
-
vals.push(Number(val));
|
|
162
|
-
}
|
|
160
|
+
if (handleUnrepresentable(schema, ctx, json, params, "BigInt literals cannot be represented in JSON Schema"))
|
|
161
|
+
return;
|
|
162
|
+
vals.push(Number(val));
|
|
163
163
|
}
|
|
164
164
|
else {
|
|
165
165
|
vals.push(val);
|
|
@@ -190,10 +190,8 @@ export const literalProcessor = (schema, ctx, json, _params) => {
|
|
|
190
190
|
json.enum = vals;
|
|
191
191
|
}
|
|
192
192
|
};
|
|
193
|
-
export const nanProcessor = (
|
|
194
|
-
|
|
195
|
-
throw new Error("NaN cannot be represented in JSON Schema");
|
|
196
|
-
}
|
|
193
|
+
export const nanProcessor = (schema, ctx, json, params) => {
|
|
194
|
+
handleUnrepresentable(schema, ctx, json, params, "NaN cannot be represented in JSON Schema");
|
|
197
195
|
};
|
|
198
196
|
export const templateLiteralProcessor = (schema, _ctx, json, _params) => {
|
|
199
197
|
const _json = json;
|
|
@@ -232,30 +230,20 @@ export const fileProcessor = (schema, _ctx, json, _params) => {
|
|
|
232
230
|
export const successProcessor = (_schema, _ctx, json, _params) => {
|
|
233
231
|
json.type = "boolean";
|
|
234
232
|
};
|
|
235
|
-
export const customProcessor = (
|
|
236
|
-
|
|
237
|
-
throw new Error("Custom types cannot be represented in JSON Schema");
|
|
238
|
-
}
|
|
233
|
+
export const customProcessor = (schema, ctx, json, params) => {
|
|
234
|
+
handleUnrepresentable(schema, ctx, json, params, "Custom types cannot be represented in JSON Schema");
|
|
239
235
|
};
|
|
240
|
-
export const functionProcessor = (
|
|
241
|
-
|
|
242
|
-
throw new Error("Function types cannot be represented in JSON Schema");
|
|
243
|
-
}
|
|
236
|
+
export const functionProcessor = (schema, ctx, json, params) => {
|
|
237
|
+
handleUnrepresentable(schema, ctx, json, params, "Function types cannot be represented in JSON Schema");
|
|
244
238
|
};
|
|
245
|
-
export const transformProcessor = (
|
|
246
|
-
|
|
247
|
-
throw new Error("Transforms cannot be represented in JSON Schema");
|
|
248
|
-
}
|
|
239
|
+
export const transformProcessor = (schema, ctx, json, params) => {
|
|
240
|
+
handleUnrepresentable(schema, ctx, json, params, "Transforms cannot be represented in JSON Schema");
|
|
249
241
|
};
|
|
250
|
-
export const mapProcessor = (
|
|
251
|
-
|
|
252
|
-
throw new Error("Map cannot be represented in JSON Schema");
|
|
253
|
-
}
|
|
242
|
+
export const mapProcessor = (schema, ctx, json, params) => {
|
|
243
|
+
handleUnrepresentable(schema, ctx, json, params, "Map cannot be represented in JSON Schema");
|
|
254
244
|
};
|
|
255
|
-
export const setProcessor = (
|
|
256
|
-
|
|
257
|
-
throw new Error("Set cannot be represented in JSON Schema");
|
|
258
|
-
}
|
|
245
|
+
export const setProcessor = (schema, ctx, json, params) => {
|
|
246
|
+
handleUnrepresentable(schema, ctx, json, params, "Set cannot be represented in JSON Schema");
|
|
259
247
|
};
|
|
260
248
|
// ==================== COMPOSITE TYPE PROCESSORS ====================
|
|
261
249
|
export const arrayProcessor = (schema, ctx, _json, params) => {
|
|
@@ -272,27 +260,49 @@ export const arrayProcessor = (schema, ctx, _json, params) => {
|
|
|
272
260
|
path: [...params.path, "items"],
|
|
273
261
|
});
|
|
274
262
|
};
|
|
263
|
+
// Transform and catch set `optin = "optional"` at runtime so the parser lets them observe an
|
|
264
|
+
// absent key, but their declared input type stays required. An input JSON Schema describes the
|
|
265
|
+
// declared type, so resolve past them to the schema that actually carries the optionality.
|
|
266
|
+
// Used by both `objectProcessor` (for `required`) and `tupleProcessor` (for `minItems`); see
|
|
267
|
+
// wiki/optionality.md, "The JSON Schema emitter reads the *static* value".
|
|
268
|
+
function inputOptin(schema) {
|
|
269
|
+
const def = schema._zod.def;
|
|
270
|
+
if (def.type === "pipe" && def.in._zod.traits.has("$ZodTransform")) {
|
|
271
|
+
return inputOptin(def.out);
|
|
272
|
+
}
|
|
273
|
+
if (def.type === "catch") {
|
|
274
|
+
return inputOptin(def.innerType);
|
|
275
|
+
}
|
|
276
|
+
return schema._zod.optin;
|
|
277
|
+
}
|
|
275
278
|
export const objectProcessor = (schema, ctx, _json, params) => {
|
|
276
279
|
const json = _json;
|
|
277
280
|
const def = schema._zod.def;
|
|
281
|
+
const shape = def.shape;
|
|
282
|
+
// dropping it while still emitting `additionalProperties: false` would emit a schema that rejects data this one requires
|
|
283
|
+
const symbolKeys = Object.getOwnPropertySymbols(shape);
|
|
284
|
+
if (symbolKeys.length &&
|
|
285
|
+
handleUnrepresentable(schema, ctx, json, params, "Symbol keys cannot be represented in JSON Schema")) {
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
278
288
|
json.type = "object";
|
|
279
289
|
json.properties = {};
|
|
280
|
-
const shape = def.shape;
|
|
281
290
|
for (const key in shape) {
|
|
282
|
-
|
|
291
|
+
// assignProp so a __proto__ key becomes an own property instead of hitting the inherited setter on the plain {} we build into
|
|
292
|
+
assignProp(json.properties, key, process(shape[key], ctx, {
|
|
283
293
|
...params,
|
|
284
294
|
path: [...params.path, "properties", key],
|
|
285
|
-
});
|
|
295
|
+
}));
|
|
286
296
|
}
|
|
287
297
|
// required keys
|
|
288
298
|
const allKeys = new Set(Object.keys(shape));
|
|
289
299
|
const requiredKeys = new Set([...allKeys].filter((key) => {
|
|
290
|
-
const
|
|
300
|
+
const field = def.shape[key];
|
|
291
301
|
if (ctx.io === "input") {
|
|
292
|
-
return
|
|
302
|
+
return inputOptin(field) === undefined;
|
|
293
303
|
}
|
|
294
304
|
else {
|
|
295
|
-
return
|
|
305
|
+
return field._zod.optout === undefined;
|
|
296
306
|
}
|
|
297
307
|
}));
|
|
298
308
|
if (requiredKeys.size > 0) {
|
|
@@ -317,8 +327,7 @@ export const objectProcessor = (schema, ctx, _json, params) => {
|
|
|
317
327
|
};
|
|
318
328
|
export const unionProcessor = (schema, ctx, json, params) => {
|
|
319
329
|
const def = schema._zod.def;
|
|
320
|
-
// Exclusive unions (inclusive === false) use oneOf (exactly one match) instead of anyOf (one or more matches)
|
|
321
|
-
// This includes both z.xor() and discriminated unions
|
|
330
|
+
// Exclusive unions (inclusive === false) use oneOf (exactly one match) instead of anyOf (one or more matches). This includes both z.xor() and discriminated unions
|
|
322
331
|
const isExclusive = def.inclusive === false;
|
|
323
332
|
const options = def.options.map((x, i) => process(x, ctx, {
|
|
324
333
|
...params,
|
|
@@ -347,6 +356,8 @@ export const intersectionProcessor = (schema, ctx, json, params) => {
|
|
|
347
356
|
...(isSimpleIntersection(b) ? b.allOf : [b]),
|
|
348
357
|
];
|
|
349
358
|
json.allOf = allOf;
|
|
359
|
+
// Recorded innermost first, so a nested intersection has already folded by the time this one is considered. The array is the handle rather than the schema, because a wrapper that inherits this schema shares the same array; `finalize` folds every object holding it. See `foldIntersection`.
|
|
360
|
+
ctx.intersections.push(allOf);
|
|
350
361
|
};
|
|
351
362
|
export const tupleProcessor = (schema, ctx, _json, params) => {
|
|
352
363
|
const json = _json;
|
|
@@ -364,11 +375,28 @@ export const tupleProcessor = (schema, ctx, _json, params) => {
|
|
|
364
375
|
path: [...params.path, restPath, ...(ctx.target === "openapi-3.0" ? [def.items.length] : [])],
|
|
365
376
|
})
|
|
366
377
|
: null;
|
|
378
|
+
let minItems = def.items.length;
|
|
379
|
+
while (minItems > 0) {
|
|
380
|
+
const item = def.items[minItems - 1];
|
|
381
|
+
const optional = ctx.io === "input" ? inputOptin(item) !== undefined : item._zod.optout === "optional";
|
|
382
|
+
if (!optional)
|
|
383
|
+
break;
|
|
384
|
+
minItems--;
|
|
385
|
+
}
|
|
386
|
+
const maxItems = def.items.length;
|
|
387
|
+
const isClosed = !def.rest;
|
|
367
388
|
if (ctx.target === "draft-2020-12") {
|
|
368
389
|
json.prefixItems = prefixItems;
|
|
369
|
-
if (
|
|
390
|
+
if (isClosed) {
|
|
391
|
+
json.items = false;
|
|
392
|
+
}
|
|
393
|
+
else if (rest) {
|
|
370
394
|
json.items = rest;
|
|
371
395
|
}
|
|
396
|
+
if (minItems > 0)
|
|
397
|
+
json.minItems = minItems;
|
|
398
|
+
if (isClosed)
|
|
399
|
+
json.maxItems = maxItems;
|
|
372
400
|
}
|
|
373
401
|
else if (ctx.target === "openapi-3.0") {
|
|
374
402
|
json.items = {
|
|
@@ -377,31 +405,117 @@ export const tupleProcessor = (schema, ctx, _json, params) => {
|
|
|
377
405
|
if (rest) {
|
|
378
406
|
json.items.anyOf.push(rest);
|
|
379
407
|
}
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
408
|
+
if (minItems > 0)
|
|
409
|
+
json.minItems = minItems;
|
|
410
|
+
if (isClosed)
|
|
411
|
+
json.maxItems = maxItems;
|
|
384
412
|
}
|
|
385
413
|
else {
|
|
386
414
|
json.items = prefixItems;
|
|
387
|
-
if (
|
|
415
|
+
if (isClosed) {
|
|
416
|
+
json.additionalItems = false;
|
|
417
|
+
}
|
|
418
|
+
else if (rest) {
|
|
388
419
|
json.additionalItems = rest;
|
|
389
420
|
}
|
|
421
|
+
if (minItems > 0)
|
|
422
|
+
json.minItems = minItems;
|
|
423
|
+
if (isClosed)
|
|
424
|
+
json.maxItems = maxItems;
|
|
390
425
|
}
|
|
391
|
-
// length
|
|
426
|
+
// explicit user-defined length checks take precedence
|
|
392
427
|
const { minimum, maximum } = schema._zod.bag;
|
|
393
428
|
if (typeof minimum === "number")
|
|
394
429
|
json.minItems = minimum;
|
|
395
430
|
if (typeof maximum === "number")
|
|
396
431
|
json.maxItems = maximum;
|
|
397
432
|
};
|
|
433
|
+
/** JSON object keys are always strings, so a numeric record key schema is re-expressed over the
|
|
434
|
+
* numeric-string form the record parser matches. Deferred to `finalize`, after the flatten: a key
|
|
435
|
+
* behind a wrapper only carries its own `type` before then, and a union key only has its branches.
|
|
436
|
+
*
|
|
437
|
+
* A numeric bound cannot apply to a property name, so `minimum` and its siblings are dropped rather
|
|
438
|
+
* than carried over: keeping them beside `type: "string"` reproduces the match-nothing schema this
|
|
439
|
+
* exists to fix. A key that carries one therefore emits wider than the record parses — `z.record(z.number().min(5), V)`
|
|
440
|
+
* accepts `"3"` — which is the deliberate trade, since throwing on it would reject an ordinary schema
|
|
441
|
+
* outright. */
|
|
442
|
+
function stringifyKeyNames(bySchema, json, visited) {
|
|
443
|
+
// an extracted key that rewrites cannot go on sharing its definition — the string form a key position needs is not the number form every other reference wants — so it inlines. One that does not rewrite keeps the `$ref`.
|
|
444
|
+
if (json.$ref) {
|
|
445
|
+
// a recursive key holds its own reference inside its definition, so a node already on the path is left alone rather than resolved again
|
|
446
|
+
if (visited.has(json))
|
|
447
|
+
return json;
|
|
448
|
+
visited.add(json);
|
|
449
|
+
const def = bySchema.get(json)?.def;
|
|
450
|
+
if (!def)
|
|
451
|
+
return json;
|
|
452
|
+
const inlined = stringifyKeyNames(bySchema, def, visited);
|
|
453
|
+
return inlined === def ? json : inlined;
|
|
454
|
+
}
|
|
455
|
+
for (const keyword of ["anyOf", "oneOf"]) {
|
|
456
|
+
const branches = json[keyword];
|
|
457
|
+
if (!Array.isArray(branches))
|
|
458
|
+
continue;
|
|
459
|
+
const mapped = branches.map((branch) => stringifyKeyNames(bySchema, branch, visited));
|
|
460
|
+
// rebuilding regardless would detach a key that had nothing to re-express, dropping its `$ref` and leaking the internal `id`
|
|
461
|
+
if (mapped.some((branch, i) => branch !== branches[i]))
|
|
462
|
+
json = { ...json, [keyword]: mapped };
|
|
463
|
+
}
|
|
464
|
+
// a member that already admits a string leaves the key unconstrained, so the node's own type re-expresses only when every member is numeric
|
|
465
|
+
const types = Array.isArray(json.type) ? json.type : [json.type];
|
|
466
|
+
const numericType = !types.includes("string") && types.some((t) => t === "number" || t === "integer");
|
|
467
|
+
// a heterogeneous key carries no type at all, so its numeric members are caught here instead
|
|
468
|
+
const values = json.enum ?? (json.const !== undefined ? [json.const] : undefined);
|
|
469
|
+
if (!numericType && !values?.some((v) => typeof v === "number"))
|
|
470
|
+
return json;
|
|
471
|
+
const { minimum, maximum, exclusiveMinimum, exclusiveMaximum, multipleOf, format, id, ...rest } = json;
|
|
472
|
+
if (rest.enum)
|
|
473
|
+
rest.enum = rest.enum.map((v) => (typeof v === "number" ? String(v) : v));
|
|
474
|
+
else if (typeof rest.const === "number")
|
|
475
|
+
rest.const = String(rest.const);
|
|
476
|
+
// a heterogeneous key keeps its absent type: the stringified members already say what a key may be
|
|
477
|
+
if (!numericType)
|
|
478
|
+
return rest;
|
|
479
|
+
rest.type = "string";
|
|
480
|
+
if (!values)
|
|
481
|
+
rest.pattern = (types.includes("number") ? regexes.number : regexes.integer).source;
|
|
482
|
+
return rest;
|
|
483
|
+
}
|
|
484
|
+
/** Every record of one conversion, so the carriers are found in a single pass rather than once per record. */
|
|
485
|
+
const pendingRecords = new WeakMap();
|
|
486
|
+
function rewriteKeyNames(ctx) {
|
|
487
|
+
// an extracted key is resolved by the object `extractToDef` left in its place, so the map is built once rather than searched per reference. `_zod.toJSONSchema` can hand the same object to two schemas, so the first entry carrying a body wins, as a search would have found it.
|
|
488
|
+
const bySchema = new Map();
|
|
489
|
+
for (const entry of ctx.seen.values()) {
|
|
490
|
+
if (entry.def && !bySchema.has(entry.schema))
|
|
491
|
+
bySchema.set(entry.schema, entry);
|
|
492
|
+
}
|
|
493
|
+
const rewrites = new Map();
|
|
494
|
+
for (const record of pendingRecords.get(ctx) ?? []) {
|
|
495
|
+
const seen = ctx.seen.get(record);
|
|
496
|
+
const names = (seen?.def ?? seen?.schema)?.propertyNames;
|
|
497
|
+
if (!names || names === true || rewrites.has(names))
|
|
498
|
+
continue;
|
|
499
|
+
const rewritten = stringifyKeyNames(bySchema, names, new Set());
|
|
500
|
+
if (rewritten !== names)
|
|
501
|
+
rewrites.set(names, rewritten);
|
|
502
|
+
}
|
|
503
|
+
if (!rewrites.size)
|
|
504
|
+
return;
|
|
505
|
+
// the flatten has already copied each record's own properties onto every wrapper by reference, and an extracted body is another such copy, so every carrier holding a rewritten key is updated together
|
|
506
|
+
for (const entry of ctx.seen.values()) {
|
|
507
|
+
for (const carrier of [entry.schema, entry.def]) {
|
|
508
|
+
const rewritten = carrier && rewrites.get(carrier.propertyNames);
|
|
509
|
+
if (rewritten)
|
|
510
|
+
carrier.propertyNames = rewritten;
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
}
|
|
398
514
|
export const recordProcessor = (schema, ctx, _json, params) => {
|
|
399
515
|
const json = _json;
|
|
400
516
|
const def = schema._zod.def;
|
|
401
517
|
json.type = "object";
|
|
402
|
-
// For looseRecord with regex patterns, use patternProperties
|
|
403
|
-
// This correctly represents "only validate keys matching the pattern" semantics
|
|
404
|
-
// and composes well with allOf (intersections)
|
|
518
|
+
// For looseRecord with regex patterns, use patternProperties. This correctly represents "only validate keys matching the pattern" semantics and composes well with allOf (intersections)
|
|
405
519
|
const keyType = def.keyType;
|
|
406
520
|
const keyBag = keyType._zod.bag;
|
|
407
521
|
const patterns = keyBag?.patterns;
|
|
@@ -413,7 +527,7 @@ export const recordProcessor = (schema, ctx, _json, params) => {
|
|
|
413
527
|
});
|
|
414
528
|
json.patternProperties = {};
|
|
415
529
|
for (const pattern of patterns) {
|
|
416
|
-
json.patternProperties
|
|
530
|
+
assignProp(json.patternProperties, pattern.source, valueSchema);
|
|
417
531
|
}
|
|
418
532
|
}
|
|
419
533
|
else {
|
|
@@ -423,6 +537,13 @@ export const recordProcessor = (schema, ctx, _json, params) => {
|
|
|
423
537
|
...params,
|
|
424
538
|
path: [...params.path, "propertyNames"],
|
|
425
539
|
});
|
|
540
|
+
let pending = pendingRecords.get(ctx);
|
|
541
|
+
if (!pending) {
|
|
542
|
+
pending = [];
|
|
543
|
+
pendingRecords.set(ctx, pending);
|
|
544
|
+
ctx.deferred.push(() => rewriteKeyNames(ctx));
|
|
545
|
+
}
|
|
546
|
+
pending.push(schema);
|
|
426
547
|
}
|
|
427
548
|
json.additionalProperties = process(def.valueType, ctx, {
|
|
428
549
|
...params,
|
|
@@ -431,10 +552,12 @@ export const recordProcessor = (schema, ctx, _json, params) => {
|
|
|
431
552
|
}
|
|
432
553
|
// Add required for keys with discrete values (enum, literal, etc.)
|
|
433
554
|
const keyValues = keyType._zod.values;
|
|
434
|
-
|
|
555
|
+
// Every key shares one value schema, so an optional-in value makes the whole key set omittable on input. Output keeps them: the exhaustive branch assigns every key, even one whose value came back undefined.
|
|
556
|
+
const omittableOnInput = ctx.io === "input" && inputOptin(def.valueType) !== undefined;
|
|
557
|
+
if (keyValues && !def.partial && !omittableOnInput) {
|
|
435
558
|
const validKeyValues = [...keyValues].filter((v) => typeof v === "string" || typeof v === "number");
|
|
436
559
|
if (validKeyValues.length > 0) {
|
|
437
|
-
json.required = validKeyValues;
|
|
560
|
+
json.required = validKeyValues.map(String);
|
|
438
561
|
}
|
|
439
562
|
}
|
|
440
563
|
};
|
|
@@ -456,20 +579,42 @@ export const nonoptionalProcessor = (schema, ctx, _json, params) => {
|
|
|
456
579
|
const seen = ctx.seen.get(schema);
|
|
457
580
|
seen.ref = def.innerType;
|
|
458
581
|
};
|
|
582
|
+
/** Round-trips a default value through JSON so the emitted schema is guaranteed to be valid JSON.
|
|
583
|
+
* A BigInt has no reliable encoding, so it goes through `unrepresentable` like any other
|
|
584
|
+
* unrepresentable value. Returns a sentinel when the caller must not write a default of its own. */
|
|
585
|
+
const UNREPRESENTABLE_DEFAULT = Symbol();
|
|
586
|
+
function serializeDefaultValue(value, schema, ctx, json, params) {
|
|
587
|
+
let unrepresentable = false;
|
|
588
|
+
const serialized = JSON.stringify(value, (_, val) => {
|
|
589
|
+
if (typeof val !== "bigint")
|
|
590
|
+
return val;
|
|
591
|
+
unrepresentable = true;
|
|
592
|
+
return null;
|
|
593
|
+
});
|
|
594
|
+
if (!unrepresentable)
|
|
595
|
+
return JSON.parse(serialized);
|
|
596
|
+
handleUnrepresentable(schema, ctx, json, params, "BigInt defaults cannot be represented in JSON Schema");
|
|
597
|
+
return UNREPRESENTABLE_DEFAULT;
|
|
598
|
+
}
|
|
459
599
|
export const defaultProcessor = (schema, ctx, json, params) => {
|
|
460
600
|
const def = schema._zod.def;
|
|
461
601
|
process(def.innerType, ctx, params);
|
|
462
602
|
const seen = ctx.seen.get(schema);
|
|
463
603
|
seen.ref = def.innerType;
|
|
464
|
-
|
|
604
|
+
const value = serializeDefaultValue(def.defaultValue, schema, ctx, json, params);
|
|
605
|
+
if (value !== UNREPRESENTABLE_DEFAULT)
|
|
606
|
+
json.default = value;
|
|
465
607
|
};
|
|
466
608
|
export const prefaultProcessor = (schema, ctx, json, params) => {
|
|
467
609
|
const def = schema._zod.def;
|
|
468
610
|
process(def.innerType, ctx, params);
|
|
469
611
|
const seen = ctx.seen.get(schema);
|
|
470
612
|
seen.ref = def.innerType;
|
|
471
|
-
if (ctx.io
|
|
472
|
-
|
|
613
|
+
if (ctx.io !== "input")
|
|
614
|
+
return;
|
|
615
|
+
const value = serializeDefaultValue(def.defaultValue, schema, ctx, json, params);
|
|
616
|
+
if (value !== UNREPRESENTABLE_DEFAULT)
|
|
617
|
+
json._prefault = value;
|
|
473
618
|
};
|
|
474
619
|
export const catchProcessor = (schema, ctx, json, params) => {
|
|
475
620
|
const def = schema._zod.def;
|
|
@@ -481,7 +626,8 @@ export const catchProcessor = (schema, ctx, json, params) => {
|
|
|
481
626
|
catchValue = def.catchValue(undefined);
|
|
482
627
|
}
|
|
483
628
|
catch {
|
|
484
|
-
|
|
629
|
+
handleUnrepresentable(schema, ctx, json, params, "Dynamic catch values are not supported in JSON Schema");
|
|
630
|
+
return;
|
|
485
631
|
}
|
|
486
632
|
json.default = catchValue;
|
|
487
633
|
};
|
|
@@ -583,7 +729,7 @@ export function toJSONSchema(input, params) {
|
|
|
583
729
|
for (const entry of registry._idmap.entries()) {
|
|
584
730
|
const [key, schema] = entry;
|
|
585
731
|
extractDefs(ctx, schema);
|
|
586
|
-
schemas
|
|
732
|
+
assignProp(schemas, key, finalize(ctx, schema));
|
|
587
733
|
}
|
|
588
734
|
if (Object.keys(defs).length > 0) {
|
|
589
735
|
const defsSegment = ctx.target === "draft-2020-12" ? "$defs" : "definitions";
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export type Schema = ObjectSchema | ArraySchema | StringSchema | NumberSchema | IntegerSchema | BooleanSchema | NullSchema;
|
|
2
2
|
export type _JSONSchema = boolean | JSONSchema;
|
|
3
|
+
export type SchemaType = "object" | "array" | "string" | "number" | "boolean" | "null" | "integer";
|
|
3
4
|
export type JSONSchema = {
|
|
4
5
|
[k: string]: unknown;
|
|
5
6
|
$schema?: "https://json-schema.org/draft/2020-12/schema" | "http://json-schema.org/draft-07/schema#" | "http://json-schema.org/draft-04/schema#";
|
|
@@ -11,7 +12,7 @@ export type JSONSchema = {
|
|
|
11
12
|
$vocabulary?: Record<string, boolean>;
|
|
12
13
|
$comment?: string;
|
|
13
14
|
$defs?: Record<string, JSONSchema>;
|
|
14
|
-
type?:
|
|
15
|
+
type?: SchemaType | SchemaType[];
|
|
15
16
|
additionalItems?: _JSONSchema;
|
|
16
17
|
unevaluatedItems?: _JSONSchema;
|
|
17
18
|
prefixItems?: _JSONSchema[];
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export type Schema = ObjectSchema | ArraySchema | StringSchema | NumberSchema | IntegerSchema | BooleanSchema | NullSchema;
|
|
2
2
|
export type _JSONSchema = boolean | JSONSchema;
|
|
3
|
+
export type SchemaType = "object" | "array" | "string" | "number" | "boolean" | "null" | "integer";
|
|
3
4
|
export type JSONSchema = {
|
|
4
5
|
[k: string]: unknown;
|
|
5
6
|
$schema?: "https://json-schema.org/draft/2020-12/schema" | "http://json-schema.org/draft-07/schema#" | "http://json-schema.org/draft-04/schema#";
|
|
@@ -11,7 +12,7 @@ export type JSONSchema = {
|
|
|
11
12
|
$vocabulary?: Record<string, boolean>;
|
|
12
13
|
$comment?: string;
|
|
13
14
|
$defs?: Record<string, JSONSchema>;
|
|
14
|
-
type?:
|
|
15
|
+
type?: SchemaType | SchemaType[];
|
|
15
16
|
additionalItems?: _JSONSchema;
|
|
16
17
|
unevaluatedItems?: _JSONSchema;
|
|
17
18
|
prefixItems?: _JSONSchema[];
|