@openclaw/buzz 2026.9.4 → 2026.9.6
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/{adapter.runtime-CaDdxQ2C.js → .setup/adapter.runtime-FIC9NMFI.mjs} +3 -3
- package/dist/{channel-C6rro-f7.js → .setup/channel-qV8kQiPi.mjs} +203 -105
- package/dist/.setup/directory-config-CzHz6fzo.mjs +43 -0
- package/dist/{room-membership-a8IHfdgL.js → .setup/room-membership-tqLQznFE.mjs} +1 -1
- package/dist/{secret-contract-DNuqbK64.js → .setup/secret-contract-DjibkTDL.mjs} +1 -1
- package/dist/.setup/secret-contract-api-DcFDI-eR.mjs +3 -0
- package/dist/.setup/setup-plugin-api-DI8WfvKQ.mjs +47 -0
- package/dist/.setup/setup-plugin-api-H-XWBzaF.mjs +2 -0
- package/dist/{setup-surface-DDUmAluL.js → .setup/setup-surface-DOHxdPor.mjs} +3 -3
- package/dist/api.js +2 -2
- package/dist/channel-plugin-api.js +1 -1
- package/dist/directory-contract-api.js +1 -1
- package/dist/qa-runner-api.js +1 -1
- package/dist/secret-contract-api.js +1 -1
- package/dist/setup-entry.js +3 -2
- package/dist/setup-plugin-api.js +1 -46
- package/node_modules/nostr-tools/lib/cjs/abstract-pool.js +3 -1
- package/node_modules/nostr-tools/lib/cjs/abstract-pool.js.map +2 -2
- package/node_modules/nostr-tools/lib/cjs/abstract-relay.js +3 -1
- package/node_modules/nostr-tools/lib/cjs/abstract-relay.js.map +2 -2
- package/node_modules/nostr-tools/lib/cjs/index.js +3 -1
- package/node_modules/nostr-tools/lib/cjs/index.js.map +2 -2
- package/node_modules/nostr-tools/lib/cjs/nip46.js +3 -1
- package/node_modules/nostr-tools/lib/cjs/nip46.js.map +2 -2
- package/node_modules/nostr-tools/lib/cjs/pool.js +3 -1
- package/node_modules/nostr-tools/lib/cjs/pool.js.map +2 -2
- package/node_modules/nostr-tools/lib/cjs/relay.js +3 -1
- package/node_modules/nostr-tools/lib/cjs/relay.js.map +2 -2
- package/node_modules/nostr-tools/lib/esm/abstract-pool.js +3 -1
- package/node_modules/nostr-tools/lib/esm/abstract-pool.js.map +2 -2
- package/node_modules/nostr-tools/lib/esm/abstract-relay.js +3 -1
- package/node_modules/nostr-tools/lib/esm/abstract-relay.js.map +2 -2
- package/node_modules/nostr-tools/lib/esm/index.js +3 -1
- package/node_modules/nostr-tools/lib/esm/index.js.map +2 -2
- package/node_modules/nostr-tools/lib/esm/nip46.js +3 -1
- package/node_modules/nostr-tools/lib/esm/nip46.js.map +2 -2
- package/node_modules/nostr-tools/lib/esm/pool.js +3 -1
- package/node_modules/nostr-tools/lib/esm/pool.js.map +2 -2
- package/node_modules/nostr-tools/lib/esm/relay.js +3 -1
- package/node_modules/nostr-tools/lib/esm/relay.js.map +2 -2
- package/node_modules/nostr-tools/lib/nostr.bundle.js +3 -1
- package/node_modules/nostr-tools/lib/nostr.bundle.js.map +2 -2
- package/node_modules/nostr-tools/package.json +1 -1
- package/node_modules/zod/README.md +29 -2
- package/node_modules/zod/compile.cjs +96 -0
- package/node_modules/zod/compile.d.cts +1 -0
- package/node_modules/zod/compile.d.ts +1 -0
- package/node_modules/zod/compile.js +52 -0
- package/node_modules/zod/index.cjs +21 -2
- package/node_modules/zod/index.d.cts +1 -2
- package/node_modules/zod/index.d.ts +1 -2
- package/node_modules/zod/index.js +5 -2
- package/node_modules/zod/locales/index.cjs +19 -0
- package/node_modules/zod/mini/index.cjs +19 -0
- package/node_modules/zod/package.json +20 -8
- package/node_modules/zod/src/compile.ts +56 -0
- package/node_modules/zod/src/index.ts +5 -2
- package/node_modules/zod/src/v3/ZodError.ts +22 -12
- package/node_modules/zod/src/v3/helpers/errorUtil.ts +1 -1
- package/node_modules/zod/src/v3/tests/error.test.ts +35 -0
- package/node_modules/zod/src/v3/tests/intersection.test.ts +18 -0
- package/node_modules/zod/src/v3/tests/language-server.test.ts +1 -2
- package/node_modules/zod/src/v3/tests/object.test.ts +3 -6
- package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -80
- package/node_modules/zod/src/v3/tests/string.test.ts +6 -0
- package/node_modules/zod/src/v3/types.ts +5 -5
- package/node_modules/zod/src/v4/classic/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 +14 -9
- package/node_modules/zod/src/v4/classic/from-json-schema.ts +363 -78
- package/node_modules/zod/src/v4/classic/in-out.ts +45 -0
- package/node_modules/zod/src/v4/classic/index.ts +2 -2
- package/node_modules/zod/src/v4/classic/iso.ts +2 -72
- package/node_modules/zod/src/v4/classic/parse.ts +10 -4
- package/node_modules/zod/src/v4/classic/schemas.ts +640 -375
- 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 +186 -0
- package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +36 -1
- package/node_modules/zod/src/v4/classic/tests/catch.test.ts +278 -0
- package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +1 -2
- package/node_modules/zod/src/v4/classic/tests/codec.test.ts +2 -1
- package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +3 -3
- package/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +76 -0
- package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +985 -0
- package/node_modules/zod/src/v4/classic/tests/date.test.ts +30 -0
- package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +32 -18
- package/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +380 -0
- package/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +32 -0
- package/node_modules/zod/src/v4/classic/tests/default.test.ts +46 -0
- package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +31 -7
- package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +261 -13
- package/node_modules/zod/src/v4/classic/tests/enum.test.ts +20 -0
- package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +112 -2
- package/node_modules/zod/src/v4/classic/tests/error.test.ts +403 -6
- package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +582 -10
- package/node_modules/zod/src/v4/classic/tests/function.test.ts +31 -0
- package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +2 -9
- package/node_modules/zod/src/v4/classic/tests/hash.test.ts +1 -2
- package/node_modules/zod/src/v4/classic/tests/iban.test.ts +81 -0
- package/node_modules/zod/src/v4/classic/tests/in-out.test.ts +159 -0
- package/node_modules/zod/src/v4/classic/tests/index.test.ts +21 -2
- package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +319 -0
- package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +67 -0
- package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +136 -0
- package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +215 -0
- package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +3 -10
- package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +36 -1
- package/node_modules/zod/src/v4/classic/tests/literal.test.ts +12 -1
- package/node_modules/zod/src/v4/classic/tests/map.test.ts +12 -0
- package/node_modules/zod/src/v4/classic/tests/number.test.ts +85 -9
- package/node_modules/zod/src/v4/classic/tests/object.test.ts +301 -12
- package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +235 -0
- package/node_modules/zod/src/v4/classic/tests/optional.test.ts +49 -16
- package/node_modules/zod/src/v4/classic/tests/partial.test.ts +51 -4
- package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +70 -0
- package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +20 -2
- package/node_modules/zod/src/v4/classic/tests/properties.test.ts +141 -0
- package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -68
- package/node_modules/zod/src/v4/classic/tests/record.test.ts +186 -18
- package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +79 -3
- package/node_modules/zod/src/v4/classic/tests/redos.test.ts +68 -0
- package/node_modules/zod/src/v4/classic/tests/refine.test.ts +60 -0
- package/node_modules/zod/src/v4/classic/tests/set.test.ts +9 -0
- package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +19 -0
- package/node_modules/zod/src/v4/classic/tests/string.test.ts +222 -6
- package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +18 -0
- package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +44 -3
- package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +1812 -204
- package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +45 -30
- package/node_modules/zod/src/v4/classic/tests/union.test.ts +39 -2
- package/node_modules/zod/src/v4/classic/tests/validate.test.ts +645 -0
- package/node_modules/zod/src/v4/classic/tests/validations.test.ts +2 -2
- package/node_modules/zod/src/v4/core/api.ts +87 -35
- package/node_modules/zod/src/v4/core/checks.ts +119 -146
- package/node_modules/zod/src/v4/core/compile.ts +2313 -0
- package/node_modules/zod/src/v4/core/core.ts +99 -22
- package/node_modules/zod/src/v4/core/doc.ts +17 -9
- package/node_modules/zod/src/v4/core/errors.ts +113 -25
- package/node_modules/zod/src/v4/core/index.ts +3 -0
- package/node_modules/zod/src/v4/core/json-schema-generator.ts +8 -3
- package/node_modules/zod/src/v4/core/json-schema-processors.ts +424 -156
- package/node_modules/zod/src/v4/core/json-schema.ts +2 -1
- package/node_modules/zod/src/v4/core/memoizer.ts +331 -0
- package/node_modules/zod/src/v4/core/parse.ts +164 -50
- package/node_modules/zod/src/v4/core/regexes.ts +42 -15
- package/node_modules/zod/src/v4/core/registries.ts +2 -2
- package/node_modules/zod/src/v4/core/schemas.ts +1000 -538
- package/node_modules/zod/src/v4/core/tests/cached.test.ts +54 -0
- package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +1004 -0
- package/node_modules/zod/src/v4/core/tests/compile-generative.test.ts +445 -0
- package/node_modules/zod/src/v4/core/tests/compile-global.test.ts +89 -0
- package/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +26 -0
- package/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +34 -0
- package/node_modules/zod/src/v4/core/tests/compile.test.ts +2036 -0
- package/node_modules/zod/src/v4/core/tests/email-regex.test.ts +140 -0
- package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +1 -2
- package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +1 -2
- package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +3 -3
- package/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +42 -0
- package/node_modules/zod/src/v4/core/tests/locales/tg.test.ts +85 -0
- package/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +69 -0
- package/node_modules/zod/src/v4/core/tests/polyfill-collision.test.ts +46 -0
- package/node_modules/zod/src/v4/core/tests/treeshake.test.ts +51 -0
- package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +133 -0
- package/node_modules/zod/src/v4/core/to-json-schema.ts +283 -48
- package/node_modules/zod/src/v4/core/util.ts +454 -157
- 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 +5 -0
- package/node_modules/zod/src/v4/locales/az.ts +5 -0
- package/node_modules/zod/src/v4/locales/be.ts +12 -0
- package/node_modules/zod/src/v4/locales/bg.ts +5 -0
- package/node_modules/zod/src/v4/locales/bn.ts +123 -0
- package/node_modules/zod/src/v4/locales/ca.ts +5 -0
- package/node_modules/zod/src/v4/locales/ckb.ts +140 -0
- package/node_modules/zod/src/v4/locales/cs.ts +5 -0
- package/node_modules/zod/src/v4/locales/da.ts +7 -2
- package/node_modules/zod/src/v4/locales/de.ts +5 -0
- package/node_modules/zod/src/v4/locales/el.ts +3 -0
- package/node_modules/zod/src/v4/locales/en.ts +17 -4
- package/node_modules/zod/src/v4/locales/eo.ts +5 -0
- package/node_modules/zod/src/v4/locales/es.ts +4 -0
- package/node_modules/zod/src/v4/locales/fa.ts +5 -0
- package/node_modules/zod/src/v4/locales/fi.ts +5 -0
- package/node_modules/zod/src/v4/locales/fr-CA.ts +5 -0
- package/node_modules/zod/src/v4/locales/fr.ts +21 -14
- package/node_modules/zod/src/v4/locales/gu.ts +123 -0
- package/node_modules/zod/src/v4/locales/he.ts +8 -1
- package/node_modules/zod/src/v4/locales/hi.ts +126 -0
- package/node_modules/zod/src/v4/locales/hr.ts +4 -0
- package/node_modules/zod/src/v4/locales/hu.ts +5 -0
- package/node_modules/zod/src/v4/locales/hy.ts +11 -0
- package/node_modules/zod/src/v4/locales/id.ts +5 -0
- package/node_modules/zod/src/v4/locales/index.ts +11 -0
- package/node_modules/zod/src/v4/locales/is.ts +5 -0
- package/node_modules/zod/src/v4/locales/it.ts +5 -0
- package/node_modules/zod/src/v4/locales/ja.ts +5 -0
- package/node_modules/zod/src/v4/locales/ka.ts +5 -0
- package/node_modules/zod/src/v4/locales/km.ts +5 -0
- package/node_modules/zod/src/v4/locales/kn.ts +126 -0
- package/node_modules/zod/src/v4/locales/ko.ts +5 -0
- package/node_modules/zod/src/v4/locales/lt.ts +4 -0
- package/node_modules/zod/src/v4/locales/mk.ts +5 -0
- package/node_modules/zod/src/v4/locales/ms.ts +5 -0
- package/node_modules/zod/src/v4/locales/ne.ts +128 -0
- package/node_modules/zod/src/v4/locales/nl.ts +5 -0
- package/node_modules/zod/src/v4/locales/nn.ts +121 -0
- package/node_modules/zod/src/v4/locales/no.ts +7 -2
- package/node_modules/zod/src/v4/locales/ota.ts +5 -0
- package/node_modules/zod/src/v4/locales/pl.ts +5 -0
- package/node_modules/zod/src/v4/locales/ps.ts +5 -0
- package/node_modules/zod/src/v4/locales/pt-BR.ts +161 -0
- package/node_modules/zod/src/v4/locales/pt.ts +101 -58
- package/node_modules/zod/src/v4/locales/ro.ts +3 -0
- package/node_modules/zod/src/v4/locales/ru.ts +12 -0
- package/node_modules/zod/src/v4/locales/sk.ts +123 -0
- package/node_modules/zod/src/v4/locales/sl.ts +5 -0
- package/node_modules/zod/src/v4/locales/sv.ts +7 -2
- package/node_modules/zod/src/v4/locales/ta.ts +5 -0
- package/node_modules/zod/src/v4/locales/tg.ts +135 -0
- package/node_modules/zod/src/v4/locales/th.ts +5 -0
- package/node_modules/zod/src/v4/locales/tk.ts +113 -0
- package/node_modules/zod/src/v4/locales/tr.ts +5 -0
- package/node_modules/zod/src/v4/locales/uk.ts +5 -0
- package/node_modules/zod/src/v4/locales/ur.ts +5 -0
- package/node_modules/zod/src/v4/locales/uz.ts +3 -0
- package/node_modules/zod/src/v4/locales/vi.ts +5 -0
- package/node_modules/zod/src/v4/locales/yo.ts +5 -0
- package/node_modules/zod/src/v4/locales/zh-CN.ts +5 -0
- package/node_modules/zod/src/v4/locales/zh-TW.ts +5 -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 +12 -1
- package/node_modules/zod/src/v4/mini/in-out.ts +45 -0
- package/node_modules/zod/src/v4/mini/parse.ts +2 -0
- package/node_modules/zod/src/v4/mini/schemas.ts +167 -63
- package/node_modules/zod/src/v4/mini/tests/apply.test.ts +33 -0
- package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +62 -1
- package/node_modules/zod/src/v4/mini/tests/checks.test.ts +14 -0
- package/node_modules/zod/src/v4/mini/tests/codec.test.ts +35 -1
- package/node_modules/zod/src/v4/mini/tests/computed.test.ts +11 -17
- package/node_modules/zod/src/v4/mini/tests/cyclic-data.test.ts +84 -0
- package/node_modules/zod/src/v4/mini/tests/deep-partial.test.ts +54 -0
- package/node_modules/zod/src/v4/mini/tests/error.test.ts +23 -4
- package/node_modules/zod/src/v4/mini/tests/functions.test.ts +9 -0
- package/node_modules/zod/src/v4/mini/tests/index.test.ts +158 -5
- package/node_modules/zod/src/v4/mini/tests/number.test.ts +14 -0
- package/node_modules/zod/src/v4/mini/tests/object.test.ts +65 -0
- package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +16 -0
- package/node_modules/zod/src/v4/mini/tests/string.test.ts +44 -0
- package/node_modules/zod/v3/ZodError.cjs +41 -12
- package/node_modules/zod/v3/ZodError.d.cts +1 -1
- package/node_modules/zod/v3/ZodError.d.ts +1 -1
- package/node_modules/zod/v3/ZodError.js +22 -12
- package/node_modules/zod/v3/errors.cjs +19 -0
- package/node_modules/zod/v3/external.cjs +19 -0
- package/node_modules/zod/v3/helpers/enumUtil.cjs +19 -0
- package/node_modules/zod/v3/helpers/errorUtil.cjs +20 -1
- package/node_modules/zod/v3/helpers/errorUtil.js +1 -1
- package/node_modules/zod/v3/helpers/parseUtil.cjs +19 -0
- package/node_modules/zod/v3/helpers/partialUtil.cjs +19 -0
- package/node_modules/zod/v3/helpers/typeAliases.cjs +19 -0
- package/node_modules/zod/v3/helpers/util.cjs +19 -0
- package/node_modules/zod/v3/index.cjs +19 -0
- package/node_modules/zod/v3/standard-schema.cjs +19 -0
- package/node_modules/zod/v3/types.cjs +26 -5
- package/node_modules/zod/v3/types.js +7 -5
- package/node_modules/zod/v4/classic/checks.cjs +21 -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/coerce.cjs +19 -0
- package/node_modules/zod/v4/classic/compat.cjs +19 -0
- package/node_modules/zod/v4/classic/compat.d.cts +9 -11
- package/node_modules/zod/v4/classic/compat.d.ts +9 -11
- package/node_modules/zod/v4/classic/deep-partial.cjs +58 -0
- package/node_modules/zod/v4/classic/deep-partial.d.cts +14 -0
- package/node_modules/zod/v4/classic/deep-partial.d.ts +14 -0
- package/node_modules/zod/v4/classic/deep-partial.js +13 -0
- package/node_modules/zod/v4/classic/errors.cjs +62 -34
- package/node_modules/zod/v4/classic/errors.d.cts +3 -4
- package/node_modules/zod/v4/classic/errors.d.ts +3 -4
- package/node_modules/zod/v4/classic/errors.js +43 -34
- package/node_modules/zod/v4/classic/external.cjs +51 -27
- package/node_modules/zod/v4/classic/external.d.cts +5 -2
- package/node_modules/zod/v4/classic/external.d.ts +5 -2
- package/node_modules/zod/v4/classic/external.js +5 -8
- package/node_modules/zod/v4/classic/from-json-schema.cjs +376 -75
- package/node_modules/zod/v4/classic/from-json-schema.js +357 -75
- package/node_modules/zod/v4/classic/in-out.cjs +82 -0
- package/node_modules/zod/v4/classic/in-out.d.cts +8 -0
- package/node_modules/zod/v4/classic/in-out.d.ts +8 -0
- package/node_modules/zod/v4/classic/in-out.js +36 -0
- package/node_modules/zod/v4/classic/index.cjs +21 -2
- package/node_modules/zod/v4/classic/index.d.cts +1 -2
- package/node_modules/zod/v4/classic/index.d.ts +1 -2
- package/node_modules/zod/v4/classic/index.js +2 -2
- package/node_modules/zod/v4/classic/iso.cjs +30 -22
- package/node_modules/zod/v4/classic/iso.d.cts +2 -17
- package/node_modules/zod/v4/classic/iso.d.ts +2 -17
- package/node_modules/zod/v4/classic/iso.js +2 -17
- package/node_modules/zod/v4/classic/parse.cjs +23 -1
- package/node_modules/zod/v4/classic/parse.d.cts +17 -4
- package/node_modules/zod/v4/classic/parse.d.ts +17 -4
- package/node_modules/zod/v4/classic/parse.js +1 -0
- package/node_modules/zod/v4/classic/schemas.cjs +591 -426
- package/node_modules/zod/v4/classic/schemas.d.cts +68 -19
- package/node_modules/zod/v4/classic/schemas.d.ts +68 -19
- package/node_modules/zod/v4/classic/schemas.js +564 -424
- package/node_modules/zod/v4/core/api.cjs +66 -24
- package/node_modules/zod/v4/core/api.d.cts +22 -12
- package/node_modules/zod/v4/core/api.d.ts +22 -12
- package/node_modules/zod/v4/core/api.js +44 -24
- package/node_modules/zod/v4/core/checks.cjs +88 -128
- package/node_modules/zod/v4/core/checks.d.cts +29 -13
- package/node_modules/zod/v4/core/checks.d.ts +29 -13
- package/node_modules/zod/v4/core/checks.js +68 -127
- package/node_modules/zod/v4/core/compile.cjs +1908 -0
- package/node_modules/zod/v4/core/compile.d.cts +65 -0
- package/node_modules/zod/v4/core/compile.d.ts +65 -0
- package/node_modules/zod/v4/core/compile.js +1858 -0
- package/node_modules/zod/v4/core/core.cjs +101 -19
- 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 +83 -20
- package/node_modules/zod/v4/core/doc.cjs +31 -9
- package/node_modules/zod/v4/core/doc.d.cts +3 -1
- package/node_modules/zod/v4/core/doc.d.ts +3 -1
- package/node_modules/zod/v4/core/doc.js +12 -9
- package/node_modules/zod/v4/core/errors.cjs +126 -25
- package/node_modules/zod/v4/core/errors.d.cts +4 -0
- package/node_modules/zod/v4/core/errors.d.ts +4 -0
- package/node_modules/zod/v4/core/errors.js +107 -25
- package/node_modules/zod/v4/core/index.cjs +24 -1
- package/node_modules/zod/v4/core/index.d.cts +3 -0
- package/node_modules/zod/v4/core/index.d.ts +3 -0
- package/node_modules/zod/v4/core/index.js +3 -0
- package/node_modules/zod/v4/core/json-schema-generator.cjs +24 -1
- package/node_modules/zod/v4/core/json-schema-generator.d.cts +2 -2
- package/node_modules/zod/v4/core/json-schema-generator.d.ts +2 -2
- package/node_modules/zod/v4/core/json-schema-generator.js +6 -2
- package/node_modules/zod/v4/core/json-schema-processors.cjs +441 -156
- 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 +400 -158
- package/node_modules/zod/v4/core/json-schema.cjs +19 -0
- package/node_modules/zod/v4/core/json-schema.d.cts +2 -1
- package/node_modules/zod/v4/core/json-schema.d.ts +2 -1
- package/node_modules/zod/v4/core/memoizer.cjs +360 -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 +311 -0
- package/node_modules/zod/v4/core/parse.cjs +148 -46
- package/node_modules/zod/v4/core/parse.d.cts +14 -11
- package/node_modules/zod/v4/core/parse.d.ts +14 -11
- package/node_modules/zod/v4/core/parse.js +127 -45
- package/node_modules/zod/v4/core/regexes.cjs +54 -17
- package/node_modules/zod/v4/core/regexes.d.cts +5 -0
- package/node_modules/zod/v4/core/regexes.d.ts +5 -0
- package/node_modules/zod/v4/core/regexes.js +32 -15
- package/node_modules/zod/v4/core/registries.cjs +19 -0
- package/node_modules/zod/v4/core/registries.js +2 -2
- package/node_modules/zod/v4/core/schemas.cjs +785 -386
- package/node_modules/zod/v4/core/schemas.d.cts +123 -34
- package/node_modules/zod/v4/core/schemas.d.ts +123 -34
- package/node_modules/zod/v4/core/schemas.js +753 -386
- package/node_modules/zod/v4/core/standard-schema.cjs +19 -0
- package/node_modules/zod/v4/core/to-json-schema.cjs +269 -45
- package/node_modules/zod/v4/core/to-json-schema.d.cts +45 -5
- package/node_modules/zod/v4/core/to-json-schema.d.ts +45 -5
- package/node_modules/zod/v4/core/to-json-schema.js +247 -44
- package/node_modules/zod/v4/core/util.cjs +372 -157
- package/node_modules/zod/v4/core/util.d.cts +79 -1
- package/node_modules/zod/v4/core/util.d.ts +79 -1
- package/node_modules/zod/v4/core/util.js +341 -156
- package/node_modules/zod/v4/core/versions.cjs +21 -2
- package/node_modules/zod/v4/core/versions.d.cts +1 -1
- package/node_modules/zod/v4/core/versions.d.ts +1 -1
- package/node_modules/zod/v4/core/versions.js +2 -2
- package/node_modules/zod/v4/core/visit.cjs +214 -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 +34 -5
- package/node_modules/zod/v4/index.d.cts +2 -2
- package/node_modules/zod/v4/index.d.ts +2 -2
- package/node_modules/zod/v4/index.js +3 -2
- package/node_modules/zod/v4/locales/ar.cjs +5 -0
- package/node_modules/zod/v4/locales/ar.js +5 -0
- package/node_modules/zod/v4/locales/az.cjs +5 -0
- package/node_modules/zod/v4/locales/az.js +5 -0
- package/node_modules/zod/v4/locales/be.cjs +12 -0
- package/node_modules/zod/v4/locales/be.js +12 -0
- package/node_modules/zod/v4/locales/bg.cjs +5 -0
- package/node_modules/zod/v4/locales/bg.js +5 -0
- package/node_modules/zod/v4/locales/bn.cjs +140 -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 +113 -0
- package/node_modules/zod/v4/locales/ca.cjs +5 -0
- package/node_modules/zod/v4/locales/ca.js +5 -0
- package/node_modules/zod/v4/locales/ckb.cjs +160 -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 +133 -0
- package/node_modules/zod/v4/locales/cs.cjs +5 -0
- package/node_modules/zod/v4/locales/cs.js +5 -0
- package/node_modules/zod/v4/locales/da.cjs +7 -2
- package/node_modules/zod/v4/locales/da.js +7 -2
- package/node_modules/zod/v4/locales/de.cjs +5 -0
- package/node_modules/zod/v4/locales/de.js +5 -0
- package/node_modules/zod/v4/locales/el.cjs +3 -0
- package/node_modules/zod/v4/locales/el.js +3 -0
- package/node_modules/zod/v4/locales/en.cjs +16 -4
- package/node_modules/zod/v4/locales/en.js +16 -4
- package/node_modules/zod/v4/locales/eo.cjs +5 -0
- package/node_modules/zod/v4/locales/eo.js +5 -0
- package/node_modules/zod/v4/locales/es.cjs +4 -0
- package/node_modules/zod/v4/locales/es.js +4 -0
- package/node_modules/zod/v4/locales/fa.cjs +5 -0
- package/node_modules/zod/v4/locales/fa.js +5 -0
- package/node_modules/zod/v4/locales/fi.cjs +5 -0
- package/node_modules/zod/v4/locales/fi.js +5 -0
- package/node_modules/zod/v4/locales/fr-CA.cjs +5 -0
- package/node_modules/zod/v4/locales/fr-CA.js +5 -0
- package/node_modules/zod/v4/locales/fr.cjs +18 -14
- package/node_modules/zod/v4/locales/fr.js +18 -14
- package/node_modules/zod/v4/locales/gu.cjs +140 -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 +113 -0
- package/node_modules/zod/v4/locales/he.cjs +7 -0
- package/node_modules/zod/v4/locales/he.js +7 -0
- package/node_modules/zod/v4/locales/hi.cjs +138 -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 +111 -0
- package/node_modules/zod/v4/locales/hr.cjs +4 -0
- package/node_modules/zod/v4/locales/hr.js +4 -0
- package/node_modules/zod/v4/locales/hu.cjs +5 -0
- package/node_modules/zod/v4/locales/hu.js +5 -0
- package/node_modules/zod/v4/locales/hy.cjs +11 -0
- package/node_modules/zod/v4/locales/hy.js +11 -0
- package/node_modules/zod/v4/locales/id.cjs +5 -0
- package/node_modules/zod/v4/locales/id.js +5 -0
- package/node_modules/zod/v4/locales/index.cjs +43 -2
- package/node_modules/zod/v4/locales/index.d.cts +11 -0
- package/node_modules/zod/v4/locales/index.d.ts +11 -0
- package/node_modules/zod/v4/locales/index.js +11 -0
- package/node_modules/zod/v4/locales/is.cjs +5 -0
- package/node_modules/zod/v4/locales/is.js +5 -0
- package/node_modules/zod/v4/locales/it.cjs +5 -0
- package/node_modules/zod/v4/locales/it.js +5 -0
- package/node_modules/zod/v4/locales/ja.cjs +5 -0
- package/node_modules/zod/v4/locales/ja.js +5 -0
- package/node_modules/zod/v4/locales/ka.cjs +5 -0
- package/node_modules/zod/v4/locales/ka.js +5 -0
- package/node_modules/zod/v4/locales/km.cjs +5 -0
- package/node_modules/zod/v4/locales/km.js +5 -0
- package/node_modules/zod/v4/locales/kn.cjs +143 -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 +116 -0
- package/node_modules/zod/v4/locales/ko.cjs +5 -0
- package/node_modules/zod/v4/locales/ko.js +5 -0
- package/node_modules/zod/v4/locales/lt.cjs +4 -0
- package/node_modules/zod/v4/locales/lt.js +4 -0
- package/node_modules/zod/v4/locales/mk.cjs +5 -0
- package/node_modules/zod/v4/locales/mk.js +5 -0
- package/node_modules/zod/v4/locales/ms.cjs +5 -0
- package/node_modules/zod/v4/locales/ms.js +5 -0
- package/node_modules/zod/v4/locales/ne.cjs +138 -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 +111 -0
- package/node_modules/zod/v4/locales/nl.cjs +5 -0
- package/node_modules/zod/v4/locales/nl.js +5 -0
- package/node_modules/zod/v4/locales/nn.cjs +140 -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 +113 -0
- package/node_modules/zod/v4/locales/no.cjs +7 -2
- package/node_modules/zod/v4/locales/no.js +7 -2
- package/node_modules/zod/v4/locales/ota.cjs +5 -0
- package/node_modules/zod/v4/locales/ota.js +5 -0
- package/node_modules/zod/v4/locales/pl.cjs +5 -0
- package/node_modules/zod/v4/locales/pl.js +5 -0
- package/node_modules/zod/v4/locales/ps.cjs +5 -0
- package/node_modules/zod/v4/locales/ps.js +5 -0
- package/node_modules/zod/v4/locales/pt-BR.cjs +170 -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 +143 -0
- package/node_modules/zod/v4/locales/pt.cjs +89 -55
- package/node_modules/zod/v4/locales/pt.js +89 -55
- package/node_modules/zod/v4/locales/ro.cjs +3 -0
- package/node_modules/zod/v4/locales/ro.js +3 -0
- package/node_modules/zod/v4/locales/ru.cjs +12 -0
- package/node_modules/zod/v4/locales/ru.js +12 -0
- package/node_modules/zod/v4/locales/sk.cjs +143 -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 +116 -0
- package/node_modules/zod/v4/locales/sl.cjs +5 -0
- package/node_modules/zod/v4/locales/sl.js +5 -0
- package/node_modules/zod/v4/locales/sv.cjs +7 -2
- package/node_modules/zod/v4/locales/sv.js +7 -2
- package/node_modules/zod/v4/locales/ta.cjs +5 -0
- package/node_modules/zod/v4/locales/ta.js +5 -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 +5 -0
- package/node_modules/zod/v4/locales/th.js +5 -0
- package/node_modules/zod/v4/locales/tk.cjs +134 -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 +107 -0
- package/node_modules/zod/v4/locales/tr.cjs +5 -0
- package/node_modules/zod/v4/locales/tr.js +5 -0
- package/node_modules/zod/v4/locales/uk.cjs +5 -0
- package/node_modules/zod/v4/locales/uk.js +5 -0
- package/node_modules/zod/v4/locales/ur.cjs +5 -0
- package/node_modules/zod/v4/locales/ur.js +5 -0
- package/node_modules/zod/v4/locales/uz.cjs +3 -0
- package/node_modules/zod/v4/locales/uz.js +3 -0
- package/node_modules/zod/v4/locales/vi.cjs +5 -0
- package/node_modules/zod/v4/locales/vi.js +5 -0
- package/node_modules/zod/v4/locales/yo.cjs +5 -0
- package/node_modules/zod/v4/locales/yo.js +5 -0
- package/node_modules/zod/v4/locales/zh-CN.cjs +5 -0
- package/node_modules/zod/v4/locales/zh-CN.js +5 -0
- package/node_modules/zod/v4/locales/zh-TW.cjs +5 -0
- package/node_modules/zod/v4/locales/zh-TW.js +5 -0
- package/node_modules/zod/v4/mini/checks.cjs +21 -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/coerce.cjs +19 -0
- package/node_modules/zod/v4/mini/deep-partial.cjs +58 -0
- package/node_modules/zod/v4/mini/deep-partial.d.cts +14 -0
- package/node_modules/zod/v4/mini/deep-partial.d.ts +14 -0
- package/node_modules/zod/v4/mini/deep-partial.js +13 -0
- package/node_modules/zod/v4/mini/external.cjs +33 -1
- package/node_modules/zod/v4/mini/external.d.cts +5 -2
- package/node_modules/zod/v4/mini/external.d.ts +5 -2
- package/node_modules/zod/v4/mini/external.js +3 -1
- package/node_modules/zod/v4/mini/in-out.cjs +82 -0
- package/node_modules/zod/v4/mini/in-out.d.cts +8 -0
- package/node_modules/zod/v4/mini/in-out.d.ts +8 -0
- package/node_modules/zod/v4/mini/in-out.js +36 -0
- package/node_modules/zod/v4/mini/index.cjs +19 -0
- package/node_modules/zod/v4/mini/iso.cjs +19 -0
- package/node_modules/zod/v4/mini/parse.cjs +22 -1
- package/node_modules/zod/v4/mini/parse.d.cts +1 -1
- package/node_modules/zod/v4/mini/parse.d.ts +1 -1
- package/node_modules/zod/v4/mini/parse.js +1 -1
- package/node_modules/zod/v4/mini/schemas.cjs +117 -53
- package/node_modules/zod/v4/mini/schemas.d.cts +49 -14
- package/node_modules/zod/v4/mini/schemas.d.ts +49 -14
- package/node_modules/zod/v4/mini/schemas.js +92 -51
- package/node_modules/zod/v4-mini/index.cjs +19 -0
- package/openclaw.plugin.json +12 -28
- package/package.json +9 -7
- package/dist/directory-config-B0shiBa4.js +0 -33
- package/node_modules/zod/src/v4/core/config.ts +0 -15
- /package/dist/{message-event-X_aBiM1X.js → .setup/message-event-X_aBiM1X.mjs} +0 -0
- /package/dist/{types-CeupBG0P.js → .setup/types-CeupBG0P.mjs} +0 -0
|
@@ -113,6 +113,33 @@ await schema.parseAsync("hello");
|
|
|
113
113
|
// => "hello"
|
|
114
114
|
```
|
|
115
115
|
|
|
116
|
+
### AOT compilation
|
|
117
|
+
|
|
118
|
+
For hot validation paths, `z.compile(schema)` returns a schema clone with an ahead-of-time compiled fast path. Valid inputs take the compiled path; invalid inputs fall back to the regular parser so error reporting stays identical.
|
|
119
|
+
|
|
120
|
+
Across a 55-schema benchmark the median speedup is **2.4x**, and it scales with how much work the schema does per parse: a large array of objects is ~9x, a 20-key object ~9x, a nested object ~4.5x, while a bare `z.string()` gains nothing — compilation removes per-node dispatch and allocation, and a single `typeof` has none to remove.
|
|
121
|
+
|
|
122
|
+
```ts
|
|
123
|
+
const CompiledPlayer = z.compile(Player);
|
|
124
|
+
|
|
125
|
+
CompiledPlayer.parse({ username: "billie", xp: 100 });
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
To enable compilation globally for schemas constructed after import:
|
|
129
|
+
|
|
130
|
+
```ts
|
|
131
|
+
import "zod/compile"; // place before modules that define schemas
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Things to know:
|
|
135
|
+
|
|
136
|
+
- Compilation uses `new Function`. Global mode is automatically disabled when `z.config({ jitless: true })` is set (e.g. CSP environments); calling `z.compile()` directly is an explicit opt-in.
|
|
137
|
+
- Schemas with async refinements or transforms can't be compiled, and neither can a few other constructs. That is not an error: `z.compile()` hands the schema back unchanged and it keeps using the regular parser, exactly as global mode leaves it. Pass `{ strict: true }` to throw `ZodCompileAsyncError` / `ZodCompileUnsupportedError` instead.
|
|
138
|
+
- On invalid input, refinements and transforms may run twice (fast path, then fallback).
|
|
139
|
+
- Deriving a new schema from a compiled one (`.refine()`, `.extend()`, etc.) returns an uncompiled schema — compile the final schema.
|
|
140
|
+
|
|
141
|
+
See [`compile` docs](https://zod.dev/compile) for details.
|
|
142
|
+
|
|
116
143
|
### Handling errors
|
|
117
144
|
|
|
118
145
|
When validation fails, the `.parse()` method will throw a `ZodError` instance with granular information about the validation issues.
|
|
@@ -128,13 +155,13 @@ try {
|
|
|
128
155
|
expected: 'string',
|
|
129
156
|
code: 'invalid_type',
|
|
130
157
|
path: [ 'username' ],
|
|
131
|
-
message: 'Invalid input: expected string'
|
|
158
|
+
message: 'Invalid input: expected string, received number'
|
|
132
159
|
},
|
|
133
160
|
{
|
|
134
161
|
expected: 'number',
|
|
135
162
|
code: 'invalid_type',
|
|
136
163
|
path: [ 'xp' ],
|
|
137
|
-
message: 'Invalid input: expected number'
|
|
164
|
+
message: 'Invalid input: expected number, received string'
|
|
138
165
|
}
|
|
139
166
|
] */
|
|
140
167
|
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Side-effect-only: installs the post-processor on `globalConfig`. Listed in `package.json`'s `sideEffects`, and nothing else references it, so apps that never import it drop the compiler.
|
|
3
|
+
//
|
|
4
|
+
// Usage:
|
|
5
|
+
//
|
|
6
|
+
// import "zod/compile";
|
|
7
|
+
// import * as z from "zod";
|
|
8
|
+
// // every schema constructed below this is compiled on first parse
|
|
9
|
+
//
|
|
10
|
+
// Module evaluation order matters: schemas constructed in modules that evaluate before this import will not be compiled. Place this import in the app entry point, before any module that constructs schemas at top level.
|
|
11
|
+
//
|
|
12
|
+
// Failure handling: if the compiler refuses a schema (async refinement, unsupported feature, etc.) the shim permanently restores the runtime `_zod.run` for that schema. The schema continues to work via the regular runtime parser — no observable difference to the caller.
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
const compile_js_1 = require("./v4/core/compile.cjs");
|
|
38
|
+
const core = __importStar(require("./v4/core/index.cjs"));
|
|
39
|
+
let compiling = false;
|
|
40
|
+
core.globalConfig.postProcessor = (inst) => {
|
|
41
|
+
if (compiling)
|
|
42
|
+
return;
|
|
43
|
+
const originalRun = inst._zod?.run;
|
|
44
|
+
if (typeof originalRun !== "function")
|
|
45
|
+
return;
|
|
46
|
+
const shim = (payload, ctx) => {
|
|
47
|
+
// Bypass the fast path for any non-forward / non-sync / check-skipping call. The runtime owns those contracts.
|
|
48
|
+
if (ctx?.async || ctx?.direction === "backward" || ctx?.skipChecks) {
|
|
49
|
+
return originalRun(payload, ctx);
|
|
50
|
+
}
|
|
51
|
+
compiling = true;
|
|
52
|
+
try {
|
|
53
|
+
// Respect the jitless config: it exists precisely so CSP/no-eval environments never reach `new Function`. Global mode must not bypass it (explicit z.compile calls remain an explicit opt-in).
|
|
54
|
+
if (core.globalConfig.jitless) {
|
|
55
|
+
inst._zod.run = originalRun;
|
|
56
|
+
return originalRun(payload, ctx);
|
|
57
|
+
}
|
|
58
|
+
// Strict: the shim owns its own fallback below, and a non-strict compile would hand back `inst` — whose run is this shim — and reinstall it on itself.
|
|
59
|
+
const compiled = (0, compile_js_1.compile)(inst, { strict: true });
|
|
60
|
+
// Only the run wrapper. Copying the compiled parse/safeParse closures would make their fallback re-enter this instance and run user callbacks a third time.
|
|
61
|
+
inst._zod.run = compiled._zod.run;
|
|
62
|
+
inst._zod.bag.fallbackRun = compiled._zod.bag.fallbackRun;
|
|
63
|
+
inst._zod.bag.validator = compiled._zod.bag.validator;
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
// Permanent fallback for unsupported schemas.
|
|
67
|
+
inst._zod.run = originalRun;
|
|
68
|
+
}
|
|
69
|
+
finally {
|
|
70
|
+
compiling = false;
|
|
71
|
+
}
|
|
72
|
+
return inst._zod.run(payload, ctx);
|
|
73
|
+
};
|
|
74
|
+
// Expose the pre-shim runtime so `compile()` invoked elsewhere can unwrap past the shim and capture the source-of-truth runtime. Without this, a user calling `z.compile(s)` after global mode is enabled would capture the shim itself, which would feed the wrapper into itself on fallback.
|
|
75
|
+
shim.__originalRun = originalRun;
|
|
76
|
+
inst._zod.run = shim;
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
// seal-cjs-exports
|
|
80
|
+
(function () {
|
|
81
|
+
var keys = Object.getOwnPropertyNames(exports);
|
|
82
|
+
for (var i = 0; i < keys.length; i++) {
|
|
83
|
+
var desc = Object.getOwnPropertyDescriptor(exports, keys[i]);
|
|
84
|
+
if (!desc || !desc.get || !desc.configurable) continue;
|
|
85
|
+
var value;
|
|
86
|
+
try {
|
|
87
|
+
value = desc.get();
|
|
88
|
+
} catch (e) {
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
// a circular require may not have settled this one yet, so leave it live
|
|
92
|
+
if (value === undefined) continue;
|
|
93
|
+
Object.defineProperty(exports, keys[i], { value: value, writable: false, enumerable: desc.enumerable, configurable: false });
|
|
94
|
+
}
|
|
95
|
+
Object.freeze(exports);
|
|
96
|
+
})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// Side-effect-only: installs the post-processor on `globalConfig`. Listed in `package.json`'s `sideEffects`, and nothing else references it, so apps that never import it drop the compiler.
|
|
2
|
+
//
|
|
3
|
+
// Usage:
|
|
4
|
+
//
|
|
5
|
+
// import "zod/compile";
|
|
6
|
+
// import * as z from "zod";
|
|
7
|
+
// // every schema constructed below this is compiled on first parse
|
|
8
|
+
//
|
|
9
|
+
// Module evaluation order matters: schemas constructed in modules that evaluate before this import will not be compiled. Place this import in the app entry point, before any module that constructs schemas at top level.
|
|
10
|
+
//
|
|
11
|
+
// Failure handling: if the compiler refuses a schema (async refinement, unsupported feature, etc.) the shim permanently restores the runtime `_zod.run` for that schema. The schema continues to work via the regular runtime parser — no observable difference to the caller.
|
|
12
|
+
import { compile } from "./v4/core/compile.js";
|
|
13
|
+
import * as core from "./v4/core/index.js";
|
|
14
|
+
let compiling = false;
|
|
15
|
+
core.globalConfig.postProcessor = (inst) => {
|
|
16
|
+
if (compiling)
|
|
17
|
+
return;
|
|
18
|
+
const originalRun = inst._zod?.run;
|
|
19
|
+
if (typeof originalRun !== "function")
|
|
20
|
+
return;
|
|
21
|
+
const shim = (payload, ctx) => {
|
|
22
|
+
// Bypass the fast path for any non-forward / non-sync / check-skipping call. The runtime owns those contracts.
|
|
23
|
+
if (ctx?.async || ctx?.direction === "backward" || ctx?.skipChecks) {
|
|
24
|
+
return originalRun(payload, ctx);
|
|
25
|
+
}
|
|
26
|
+
compiling = true;
|
|
27
|
+
try {
|
|
28
|
+
// Respect the jitless config: it exists precisely so CSP/no-eval environments never reach `new Function`. Global mode must not bypass it (explicit z.compile calls remain an explicit opt-in).
|
|
29
|
+
if (core.globalConfig.jitless) {
|
|
30
|
+
inst._zod.run = originalRun;
|
|
31
|
+
return originalRun(payload, ctx);
|
|
32
|
+
}
|
|
33
|
+
// Strict: the shim owns its own fallback below, and a non-strict compile would hand back `inst` — whose run is this shim — and reinstall it on itself.
|
|
34
|
+
const compiled = compile(inst, { strict: true });
|
|
35
|
+
// Only the run wrapper. Copying the compiled parse/safeParse closures would make their fallback re-enter this instance and run user callbacks a third time.
|
|
36
|
+
inst._zod.run = compiled._zod.run;
|
|
37
|
+
inst._zod.bag.fallbackRun = compiled._zod.bag.fallbackRun;
|
|
38
|
+
inst._zod.bag.validator = compiled._zod.bag.validator;
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
// Permanent fallback for unsupported schemas.
|
|
42
|
+
inst._zod.run = originalRun;
|
|
43
|
+
}
|
|
44
|
+
finally {
|
|
45
|
+
compiling = false;
|
|
46
|
+
}
|
|
47
|
+
return inst._zod.run(payload, ctx);
|
|
48
|
+
};
|
|
49
|
+
// Expose the pre-shim runtime so `compile()` invoked elsewhere can unwrap past the shim and capture the source-of-truth runtime. Without this, a user calling `z.compile(s)` after global mode is enabled would capture the shim itself, which would feed the wrapper into itself on fallback.
|
|
50
|
+
shim.__originalRun = originalRun;
|
|
51
|
+
inst._zod.run = shim;
|
|
52
|
+
};
|
|
@@ -26,8 +26,27 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
26
26
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.z = void 0;
|
|
29
|
+
exports.default = exports.z = void 0;
|
|
30
30
|
const z = __importStar(require("./v4/classic/external.cjs"));
|
|
31
31
|
exports.z = z;
|
|
32
|
-
__exportStar(require("./v4/classic/external.cjs"), exports);
|
|
33
32
|
exports.default = z;
|
|
33
|
+
__exportStar(require("./v4/classic/external.cjs"), exports);
|
|
34
|
+
|
|
35
|
+
// seal-cjs-exports
|
|
36
|
+
(function () {
|
|
37
|
+
var keys = Object.getOwnPropertyNames(exports);
|
|
38
|
+
for (var i = 0; i < keys.length; i++) {
|
|
39
|
+
var desc = Object.getOwnPropertyDescriptor(exports, keys[i]);
|
|
40
|
+
if (!desc || !desc.get || !desc.configurable) continue;
|
|
41
|
+
var value;
|
|
42
|
+
try {
|
|
43
|
+
value = desc.get();
|
|
44
|
+
} catch (e) {
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
// a circular require may not have settled this one yet, so leave it live
|
|
48
|
+
if (value === undefined) continue;
|
|
49
|
+
Object.defineProperty(exports, keys[i], { value: value, writable: false, enumerable: desc.enumerable, configurable: false });
|
|
50
|
+
}
|
|
51
|
+
Object.freeze(exports);
|
|
52
|
+
})();
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import * as z from "./v4/classic/external.js";
|
|
2
2
|
export * from "./v4/classic/external.js";
|
|
3
|
-
export
|
|
4
|
-
export
|
|
3
|
+
// Aliasing the binding, instead of `export default z`, keeps the default export a
|
|
4
|
+
// re-export of `z` rather than a fresh namespace value. Rollup and Webpack can then
|
|
5
|
+
// shake `import z from "zod"` as they already shake `import { z } from "zod"` — without
|
|
6
|
+
// this they pull in every locale. See #6050.
|
|
7
|
+
export { z, z as default };
|
|
@@ -15,3 +15,22 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("../v4/locales/index.cjs"), exports);
|
|
18
|
+
|
|
19
|
+
// seal-cjs-exports
|
|
20
|
+
(function () {
|
|
21
|
+
var keys = Object.getOwnPropertyNames(exports);
|
|
22
|
+
for (var i = 0; i < keys.length; i++) {
|
|
23
|
+
var desc = Object.getOwnPropertyDescriptor(exports, keys[i]);
|
|
24
|
+
if (!desc || !desc.get || !desc.configurable) continue;
|
|
25
|
+
var value;
|
|
26
|
+
try {
|
|
27
|
+
value = desc.get();
|
|
28
|
+
} catch (e) {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
// a circular require may not have settled this one yet, so leave it live
|
|
32
|
+
if (value === undefined) continue;
|
|
33
|
+
Object.defineProperty(exports, keys[i], { value: value, writable: false, enumerable: desc.enumerable, configurable: false });
|
|
34
|
+
}
|
|
35
|
+
Object.freeze(exports);
|
|
36
|
+
})();
|
|
@@ -30,3 +30,22 @@ exports.z = void 0;
|
|
|
30
30
|
const z = __importStar(require("../v4/mini/external.cjs"));
|
|
31
31
|
exports.z = z;
|
|
32
32
|
__exportStar(require("../v4/mini/external.cjs"), exports);
|
|
33
|
+
|
|
34
|
+
// seal-cjs-exports
|
|
35
|
+
(function () {
|
|
36
|
+
var keys = Object.getOwnPropertyNames(exports);
|
|
37
|
+
for (var i = 0; i < keys.length; i++) {
|
|
38
|
+
var desc = Object.getOwnPropertyDescriptor(exports, keys[i]);
|
|
39
|
+
if (!desc || !desc.get || !desc.configurable) continue;
|
|
40
|
+
var value;
|
|
41
|
+
try {
|
|
42
|
+
value = desc.get();
|
|
43
|
+
} catch (e) {
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
// a circular require may not have settled this one yet, so leave it live
|
|
47
|
+
if (value === undefined) continue;
|
|
48
|
+
Object.defineProperty(exports, keys[i], { value: value, writable: false, enumerable: desc.enumerable, configurable: false });
|
|
49
|
+
}
|
|
50
|
+
Object.freeze(exports);
|
|
51
|
+
})();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zod",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.6.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Colin McDonnell <zod@colinhacks.com>",
|
|
@@ -10,7 +10,11 @@
|
|
|
10
10
|
"llmsFull": "https://zod.dev/llms-full.txt",
|
|
11
11
|
"mcpServer": "https://mcp.inkeep.com/zod/mcp",
|
|
12
12
|
"funding": "https://github.com/sponsors/colinhacks",
|
|
13
|
-
"sideEffects":
|
|
13
|
+
"sideEffects": [
|
|
14
|
+
"./compile.js",
|
|
15
|
+
"./compile.cjs",
|
|
16
|
+
"./src/compile.ts"
|
|
17
|
+
],
|
|
14
18
|
"files": [
|
|
15
19
|
"src",
|
|
16
20
|
"**/*.js",
|
|
@@ -36,6 +40,7 @@
|
|
|
36
40
|
"./package.json": "./package.json",
|
|
37
41
|
".": "./src/index.ts",
|
|
38
42
|
"./mini": "./src/mini/index.ts",
|
|
43
|
+
"./compile": "./src/compile.ts",
|
|
39
44
|
"./locales": "./src/locales/index.ts",
|
|
40
45
|
"./v3": "./src/v3/index.ts",
|
|
41
46
|
"./v4": "./src/v4/index.ts",
|
|
@@ -47,7 +52,8 @@
|
|
|
47
52
|
},
|
|
48
53
|
"conditions": {
|
|
49
54
|
"@zod/source": "src"
|
|
50
|
-
}
|
|
55
|
+
},
|
|
56
|
+
"sealCjsExports": true
|
|
51
57
|
},
|
|
52
58
|
"exports": {
|
|
53
59
|
"./package.json": "./package.json",
|
|
@@ -63,6 +69,12 @@
|
|
|
63
69
|
"import": "./mini/index.js",
|
|
64
70
|
"require": "./mini/index.cjs"
|
|
65
71
|
},
|
|
72
|
+
"./compile": {
|
|
73
|
+
"@zod/source": "./src/compile.ts",
|
|
74
|
+
"types": "./compile.d.cts",
|
|
75
|
+
"import": "./compile.js",
|
|
76
|
+
"require": "./compile.cjs"
|
|
77
|
+
},
|
|
66
78
|
"./locales": {
|
|
67
79
|
"@zod/source": "./src/locales/index.ts",
|
|
68
80
|
"types": "./locales/index.d.cts",
|
|
@@ -126,10 +138,10 @@
|
|
|
126
138
|
},
|
|
127
139
|
"scripts": {
|
|
128
140
|
"clean": "git clean -xdf . -e node_modules",
|
|
129
|
-
"build": "zshy --project tsconfig.build.json",
|
|
130
|
-
"postbuild": "
|
|
131
|
-
"test:watch": "
|
|
132
|
-
"test": "
|
|
133
|
-
"prepublishOnly": "
|
|
141
|
+
"build": "nub exec --node zshy --project tsconfig.build.json",
|
|
142
|
+
"postbuild": "nub ../../scripts/write-stub-package-jsons.ts && nub exec --node biome check --write .",
|
|
143
|
+
"test:watch": "nub exec --node vitest",
|
|
144
|
+
"test": "nub exec --node vitest run",
|
|
145
|
+
"prepublishOnly": "nub ../../scripts/check-versions.ts"
|
|
134
146
|
}
|
|
135
147
|
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// Side-effect-only: installs the post-processor on `globalConfig`. Listed in `package.json`'s `sideEffects`, and nothing else references it, so apps that never import it drop the compiler.
|
|
2
|
+
//
|
|
3
|
+
// Usage:
|
|
4
|
+
//
|
|
5
|
+
// import "zod/compile";
|
|
6
|
+
// import * as z from "zod";
|
|
7
|
+
// // every schema constructed below this is compiled on first parse
|
|
8
|
+
//
|
|
9
|
+
// Module evaluation order matters: schemas constructed in modules that evaluate before this import will not be compiled. Place this import in the app entry point, before any module that constructs schemas at top level.
|
|
10
|
+
//
|
|
11
|
+
// Failure handling: if the compiler refuses a schema (async refinement, unsupported feature, etc.) the shim permanently restores the runtime `_zod.run` for that schema. The schema continues to work via the regular runtime parser — no observable difference to the caller.
|
|
12
|
+
|
|
13
|
+
import { compile } from "./v4/core/compile.js";
|
|
14
|
+
import * as core from "./v4/core/index.js";
|
|
15
|
+
|
|
16
|
+
let compiling = false;
|
|
17
|
+
|
|
18
|
+
core.globalConfig.postProcessor = (inst: any) => {
|
|
19
|
+
if (compiling) return;
|
|
20
|
+
const originalRun = inst._zod?.run;
|
|
21
|
+
if (typeof originalRun !== "function") return;
|
|
22
|
+
|
|
23
|
+
const shim = (payload: any, ctx: any): any => {
|
|
24
|
+
// Bypass the fast path for any non-forward / non-sync / check-skipping call. The runtime owns those contracts.
|
|
25
|
+
if (ctx?.async || ctx?.direction === "backward" || ctx?.skipChecks) {
|
|
26
|
+
return originalRun(payload, ctx);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
compiling = true;
|
|
30
|
+
try {
|
|
31
|
+
// Respect the jitless config: it exists precisely so CSP/no-eval environments never reach `new Function`. Global mode must not bypass it (explicit z.compile calls remain an explicit opt-in).
|
|
32
|
+
if (core.globalConfig.jitless) {
|
|
33
|
+
inst._zod.run = originalRun;
|
|
34
|
+
return originalRun(payload, ctx);
|
|
35
|
+
}
|
|
36
|
+
// Strict: the shim owns its own fallback below, and a non-strict compile would hand back `inst` — whose run is this shim — and reinstall it on itself.
|
|
37
|
+
const compiled = compile(inst, { strict: true });
|
|
38
|
+
// Only the run wrapper. Copying the compiled parse/safeParse closures would make their fallback re-enter this instance and run user callbacks a third time.
|
|
39
|
+
inst._zod.run = compiled._zod.run;
|
|
40
|
+
inst._zod.bag.fallbackRun = compiled._zod.bag.fallbackRun;
|
|
41
|
+
inst._zod.bag.validator = compiled._zod.bag.validator;
|
|
42
|
+
} catch {
|
|
43
|
+
// Permanent fallback for unsupported schemas.
|
|
44
|
+
inst._zod.run = originalRun;
|
|
45
|
+
} finally {
|
|
46
|
+
compiling = false;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return inst._zod.run(payload, ctx);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
// Expose the pre-shim runtime so `compile()` invoked elsewhere can unwrap past the shim and capture the source-of-truth runtime. Without this, a user calling `z.compile(s)` after global mode is enabled would capture the shim itself, which would feed the wrapper into itself on fallback.
|
|
53
|
+
(shim as any).__originalRun = originalRun;
|
|
54
|
+
|
|
55
|
+
inst._zod.run = shim;
|
|
56
|
+
};
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import * as z from "./v4/classic/external.js";
|
|
2
2
|
export * from "./v4/classic/external.js";
|
|
3
|
-
export
|
|
4
|
-
export
|
|
3
|
+
// Aliasing the binding, instead of `export default z`, keeps the default export a
|
|
4
|
+
// re-export of `z` rather than a fresh namespace value. Rollup and Webpack can then
|
|
5
|
+
// shake `import z from "zod"` as they already shake `import { z } from "zod"` — without
|
|
6
|
+
// this they pull in every locale. See #6050.
|
|
7
|
+
export { z, z as default };
|
|
@@ -238,21 +238,31 @@ export class ZodError<T = any> extends Error {
|
|
|
238
238
|
const el = issue.path[i]!;
|
|
239
239
|
const terminal = i === issue.path.length - 1;
|
|
240
240
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
241
|
+
// `_errors` is reserved by this legacy format, so merge a matching path segment into the current node instead of treating its array as a child.
|
|
242
|
+
if (el === "_errors") {
|
|
243
|
+
if (terminal) curr._errors.push(mapper(issue));
|
|
244
|
+
i++;
|
|
245
|
+
continue;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
// Create `el` as an own data property. A segment naming an inherited member ("toString", "constructor") would otherwise read through to the prototype, and assigning "__proto__" would hit the setter and walk into Object.prototype.
|
|
249
|
+
if (!Object.prototype.hasOwnProperty.call(curr, el)) {
|
|
250
|
+
if (el === "__proto__") {
|
|
251
|
+
Object.defineProperty(curr, el, {
|
|
252
|
+
value: { _errors: [] },
|
|
253
|
+
writable: true,
|
|
254
|
+
enumerable: true,
|
|
255
|
+
configurable: true,
|
|
256
|
+
});
|
|
257
|
+
} else {
|
|
258
|
+
curr[el] = { _errors: [] };
|
|
259
|
+
}
|
|
253
260
|
}
|
|
254
261
|
|
|
255
262
|
curr = curr[el];
|
|
263
|
+
if (terminal) {
|
|
264
|
+
curr._errors.push(mapper(issue));
|
|
265
|
+
}
|
|
256
266
|
i++;
|
|
257
267
|
}
|
|
258
268
|
}
|
|
@@ -2,7 +2,7 @@ export namespace errorUtil {
|
|
|
2
2
|
export type ErrMessage = string | { message?: string | undefined };
|
|
3
3
|
export const errToObj = (message?: ErrMessage): { message?: string | undefined } =>
|
|
4
4
|
typeof message === "string" ? { message } : message || {};
|
|
5
|
-
// biome-ignore lint:
|
|
5
|
+
// biome-ignore lint/suspicious/noShadowRestrictedNames: renaming churns 31 v3 call sites
|
|
6
6
|
export const toString = (message?: ErrMessage): string | undefined =>
|
|
7
7
|
typeof message === "string" ? message : message?.message;
|
|
8
8
|
}
|
|
@@ -549,3 +549,38 @@ test("when the message is falsy, it is used as is provided", () => {
|
|
|
549
549
|
// expect(result.error.issues.length).toEqual(2);
|
|
550
550
|
// }
|
|
551
551
|
// });
|
|
552
|
+
|
|
553
|
+
test("format() handles Object.prototype names in the issue path", () => {
|
|
554
|
+
const result = z
|
|
555
|
+
.record(z.string(), z.object({ pwn: z.number() }))
|
|
556
|
+
.safeParse(JSON.parse('{"__proto__": {"pwn": "x"}}'));
|
|
557
|
+
expect(result.success).toEqual(false);
|
|
558
|
+
if (!result.success) {
|
|
559
|
+
// the node must be a real own data property, not the inherited accessor
|
|
560
|
+
const node = Object.getOwnPropertyDescriptor(result.error.format(), "__proto__")!.value;
|
|
561
|
+
expect(node.pwn._errors).toHaveLength(1);
|
|
562
|
+
}
|
|
563
|
+
expect(({} as any).pwn).toBeUndefined();
|
|
564
|
+
|
|
565
|
+
const inherited = z.record(z.string(), z.string()).safeParse(JSON.parse('{"toString": 1}'));
|
|
566
|
+
expect(inherited.success).toEqual(false);
|
|
567
|
+
if (!inherited.success) {
|
|
568
|
+
expect((inherited.error.format() as any).toString._errors).toHaveLength(1);
|
|
569
|
+
}
|
|
570
|
+
});
|
|
571
|
+
|
|
572
|
+
test("format() handles an input-derived _errors path", () => {
|
|
573
|
+
const result = z.object({ parent: z.record(z.string()) }).safeParse({ parent: { _errors: 1 } });
|
|
574
|
+
expect(result.success).toEqual(false);
|
|
575
|
+
if (!result.success) {
|
|
576
|
+
expect(result.error.format().parent?._errors).toEqual(["Expected string, received number"]);
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
const nested = z
|
|
580
|
+
.object({ parent: z.record(z.object({ child: z.string() })) })
|
|
581
|
+
.safeParse({ parent: { _errors: { child: 1 } } });
|
|
582
|
+
expect(nested.success).toEqual(false);
|
|
583
|
+
if (!nested.success) {
|
|
584
|
+
expect((nested.error.format() as any).parent.child._errors).toEqual(["Expected string, received number"]);
|
|
585
|
+
}
|
|
586
|
+
});
|
|
@@ -21,6 +21,24 @@ test("object intersection", () => {
|
|
|
21
21
|
expect(() => z.intersection(BaseTeacher.strict(), HasID).parse({ ...data, extra: 12 })).toThrow();
|
|
22
22
|
});
|
|
23
23
|
|
|
24
|
+
test("object intersection strips __proto__ from pass-through operands", () => {
|
|
25
|
+
const cases = [
|
|
26
|
+
[
|
|
27
|
+
z.intersection(z.object({ name: z.string() }), z.unknown()),
|
|
28
|
+
JSON.parse('{"__proto__":{"isAdmin":true},"name":"alice"}'),
|
|
29
|
+
{ name: "alice" },
|
|
30
|
+
],
|
|
31
|
+
[z.intersection(z.record(z.string(), z.unknown()), z.any()), JSON.parse('{"__proto__":{},"a":1}'), { a: 1 }],
|
|
32
|
+
] as const;
|
|
33
|
+
|
|
34
|
+
for (const [schema, input, expected] of cases) {
|
|
35
|
+
const parsed = schema.parse(input);
|
|
36
|
+
expect(parsed).toEqual(expected);
|
|
37
|
+
expect(Object.getPrototypeOf(parsed)).toBe(Object.prototype);
|
|
38
|
+
expect(Object.prototype.hasOwnProperty.call(parsed, "__proto__")).toBe(false);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
|
|
24
42
|
test("deep intersection", () => {
|
|
25
43
|
const Animal = z.object({
|
|
26
44
|
properties: z.object({
|
|
@@ -4,8 +4,7 @@ import { test } from "vitest";
|
|
|
4
4
|
|
|
5
5
|
// import { filePath } from "./language-server.source";
|
|
6
6
|
|
|
7
|
-
// The following tool is helpful for understanding the TypeScript AST associated with these tests:
|
|
8
|
-
// https://ts-ast-viewer.com/ (just copy the contents of language-server.source into the viewer)
|
|
7
|
+
// The following tool is helpful for understanding the TypeScript AST associated with these tests: https://ts-ast-viewer.com/ (just copy the contents of language-server.source into the viewer)
|
|
9
8
|
|
|
10
9
|
test("", () => {});
|
|
11
10
|
// describe("Executing Go To Definition (and therefore Find Usages and Rename Refactoring) using an IDE works on inferred object properties", () => {
|
|
@@ -122,14 +122,12 @@ test("catchall inference", () => {
|
|
|
122
122
|
test("catchall overrides strict", () => {
|
|
123
123
|
const o1 = z.object({ first: z.string().optional() }).strict().catchall(z.number());
|
|
124
124
|
|
|
125
|
-
// should run fine
|
|
126
|
-
// setting a catchall overrides the unknownKeys behavior
|
|
125
|
+
// should run fine setting a catchall overrides the unknownKeys behavior
|
|
127
126
|
o1.parse({
|
|
128
127
|
asdf: 1234,
|
|
129
128
|
});
|
|
130
129
|
|
|
131
|
-
// should only run catchall validation
|
|
132
|
-
// against unknown keys
|
|
130
|
+
// should only run catchall validation against unknown keys
|
|
133
131
|
o1.parse({
|
|
134
132
|
first: "asdf",
|
|
135
133
|
asdf: 1234,
|
|
@@ -144,8 +142,7 @@ test("catchall overrides strict", () => {
|
|
|
144
142
|
.strict()
|
|
145
143
|
.catchall(z.number());
|
|
146
144
|
|
|
147
|
-
// should run fine
|
|
148
|
-
// setting a catchall overrides the unknownKeys behavior
|
|
145
|
+
// should run fine setting a catchall overrides the unknownKeys behavior
|
|
149
146
|
o1.parse({
|
|
150
147
|
first: "asdf",
|
|
151
148
|
asdf: 1234,
|