@psnext/slingcli 3.0.20260827-1 → 3.1.20260904-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (678) hide show
  1. package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-cjs/index.js +11 -4
  2. package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/http2/ClientHttp2SessionRef.js +1 -0
  3. package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-manager.js +2 -3
  4. package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/dist-es/node-http2-handler.js +8 -1
  5. package/node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler/package.json +2 -2
  6. package/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js +2 -0
  7. package/node_modules/@aws-sdk/credential-provider-node/dist-es/runtime/memoize-chain.js +2 -0
  8. package/node_modules/@aws-sdk/credential-provider-node/package.json +1 -1
  9. package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-cjs/index.js +11 -4
  10. package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/http2/ClientHttp2SessionRef.js +1 -0
  11. package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-manager.js +2 -3
  12. package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/dist-es/node-http2-handler.js +8 -1
  13. package/node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler/package.json +2 -2
  14. package/node_modules/@earendil-works/pi-telemetry/package.json +1 -1
  15. package/node_modules/@smithy/fetch-http-handler/dist-cjs/index.js +2 -1
  16. package/node_modules/@smithy/fetch-http-handler/dist-es/fetch-http-handler.js +2 -1
  17. package/node_modules/@smithy/fetch-http-handler/package.json +3 -3
  18. package/node_modules/@smithy/types/dist-types/http/httpHandlerInitialization.d.ts +14 -0
  19. package/node_modules/@smithy/types/dist-types/ts3.4/http/httpHandlerInitialization.d.ts +14 -0
  20. package/node_modules/@smithy/types/package.json +1 -1
  21. package/node_modules/@types/node/README.md +1 -1
  22. package/node_modules/@types/node/ffi.d.ts +1 -1
  23. package/node_modules/@types/node/package.json +2 -2
  24. package/node_modules/express-rate-limit/dist/index.cjs +6 -3
  25. package/node_modules/express-rate-limit/dist/index.d.cts +11 -0
  26. package/node_modules/express-rate-limit/dist/index.d.mts +11 -0
  27. package/node_modules/express-rate-limit/dist/index.d.ts +11 -0
  28. package/node_modules/express-rate-limit/dist/index.mjs +6 -3
  29. package/node_modules/express-rate-limit/{license.md → license} +7 -6
  30. package/node_modules/express-rate-limit/package.json +5 -5
  31. package/node_modules/express-rate-limit/readme.md +1 -0
  32. package/node_modules/fast-uri/index.js +20 -5
  33. package/node_modules/fast-uri/lib/utils.js +8 -1
  34. package/node_modules/fast-uri/package.json +1 -1
  35. package/node_modules/fast-uri/test/component-safe-serialization.test.js +58 -0
  36. package/node_modules/fast-uri/test/ipv6-validation.test.js +34 -0
  37. package/node_modules/ip-address/README.md +92 -82
  38. package/node_modules/ip-address/dist/common.d.ts +20 -0
  39. package/node_modules/ip-address/dist/common.js +36 -0
  40. package/node_modules/ip-address/dist/common.js.map +1 -1
  41. package/node_modules/ip-address/dist/ipv4.d.ts +50 -0
  42. package/node_modules/ip-address/dist/ipv4.js +75 -0
  43. package/node_modules/ip-address/dist/ipv4.js.map +1 -1
  44. package/node_modules/ip-address/dist/ipv6.d.ts +79 -10
  45. package/node_modules/ip-address/dist/ipv6.js +120 -30
  46. package/node_modules/ip-address/dist/ipv6.js.map +1 -1
  47. package/node_modules/ip-address/dist/v4/constants.d.ts +12 -0
  48. package/node_modules/ip-address/dist/v4/constants.js +40 -1
  49. package/node_modules/ip-address/dist/v4/constants.js.map +1 -1
  50. package/node_modules/ip-address/dist/v6/constants.d.ts +14 -0
  51. package/node_modules/ip-address/dist/v6/constants.js +47 -1
  52. package/node_modules/ip-address/dist/v6/constants.js.map +1 -1
  53. package/node_modules/ip-address/package.json +1 -1
  54. package/node_modules/jose/dist/types/jwe/compact/decrypt.d.ts +7 -16
  55. package/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +6 -17
  56. package/node_modules/jose/dist/types/jwe/flattened/decrypt.d.ts +7 -16
  57. package/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +11 -34
  58. package/node_modules/jose/dist/types/jwe/general/decrypt.d.ts +7 -16
  59. package/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +15 -35
  60. package/node_modules/jose/dist/types/jwk/embedded.d.ts +3 -8
  61. package/node_modules/jose/dist/types/jwk/thumbprint.d.ts +5 -5
  62. package/node_modules/jose/dist/types/jwks/local.d.ts +6 -10
  63. package/node_modules/jose/dist/types/jwks/remote.d.ts +13 -24
  64. package/node_modules/jose/dist/types/jws/compact/sign.d.ts +5 -10
  65. package/node_modules/jose/dist/types/jws/compact/verify.d.ts +9 -18
  66. package/node_modules/jose/dist/types/jws/flattened/sign.d.ts +7 -16
  67. package/node_modules/jose/dist/types/jws/flattened/verify.d.ts +9 -18
  68. package/node_modules/jose/dist/types/jws/general/sign.d.ts +11 -21
  69. package/node_modules/jose/dist/types/jws/general/verify.d.ts +9 -18
  70. package/node_modules/jose/dist/types/jwt/decrypt.d.ts +10 -20
  71. package/node_modules/jose/dist/types/jwt/encrypt.d.ts +6 -13
  72. package/node_modules/jose/dist/types/jwt/sign.d.ts +5 -6
  73. package/node_modules/jose/dist/types/jwt/unsecured.d.ts +9 -14
  74. package/node_modules/jose/dist/types/jwt/verify.d.ts +9 -19
  75. package/node_modules/jose/dist/types/key/export.d.ts +4 -4
  76. package/node_modules/jose/dist/types/key/generate_key_pair.d.ts +6 -8
  77. package/node_modules/jose/dist/types/key/generate_secret.d.ts +4 -11
  78. package/node_modules/jose/dist/types/key/import.d.ts +10 -17
  79. package/node_modules/jose/dist/types/types.d.ts +44 -84
  80. package/node_modules/jose/dist/types/util/base64url.d.ts +2 -2
  81. package/node_modules/jose/dist/types/util/decode_jwt.d.ts +3 -10
  82. package/node_modules/jose/dist/types/util/decode_protected_header.d.ts +4 -4
  83. package/node_modules/jose/dist/types/util/errors.d.ts +26 -53
  84. package/node_modules/jose/dist/webapi/index.js +70 -32
  85. package/node_modules/jose/dist/webapi/jwe/compact/decrypt.js +7 -8
  86. package/node_modules/jose/dist/webapi/jwe/compact/encrypt.js +42 -48
  87. package/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js +14 -14
  88. package/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js +53 -64
  89. package/node_modules/jose/dist/webapi/jwe/general/decrypt.js +38 -49
  90. package/node_modules/jose/dist/webapi/jwe/general/encrypt.js +121 -169
  91. package/node_modules/jose/dist/webapi/jwk/embedded.js +30 -32
  92. package/node_modules/jose/dist/webapi/jwk/thumbprint.js +54 -70
  93. package/node_modules/jose/dist/webapi/jwks/local.js +47 -64
  94. package/node_modules/jose/dist/webapi/jwks/remote.js +88 -136
  95. package/node_modules/jose/dist/webapi/jws/compact/sign.js +21 -21
  96. package/node_modules/jose/dist/webapi/jws/compact/verify.js +7 -8
  97. package/node_modules/jose/dist/webapi/jws/flattened/sign.js +29 -31
  98. package/node_modules/jose/dist/webapi/jws/flattened/verify.js +21 -24
  99. package/node_modules/jose/dist/webapi/jws/general/sign.js +61 -72
  100. package/node_modules/jose/dist/webapi/jws/general/verify.js +45 -69
  101. package/node_modules/jose/dist/webapi/jwt/decrypt.js +13 -20
  102. package/node_modules/jose/dist/webapi/jwt/encrypt.js +57 -70
  103. package/node_modules/jose/dist/webapi/jwt/sign.js +17 -16
  104. package/node_modules/jose/dist/webapi/jwt/unsecured.js +32 -40
  105. package/node_modules/jose/dist/webapi/jwt/verify.js +12 -14
  106. package/node_modules/jose/dist/webapi/key/export.js +32 -37
  107. package/node_modules/jose/dist/webapi/key/generate_key_pair.js +40 -48
  108. package/node_modules/jose/dist/webapi/key/generate_secret.js +35 -40
  109. package/node_modules/jose/dist/webapi/key/import.js +52 -56
  110. package/node_modules/jose/dist/webapi/lib/asn1.js +130 -169
  111. package/node_modules/jose/dist/webapi/lib/base64.js +18 -20
  112. package/node_modules/jose/dist/webapi/lib/buffer_utils.js +34 -38
  113. package/node_modules/jose/dist/webapi/lib/content_encryption.js +79 -115
  114. package/node_modules/jose/dist/webapi/lib/crypto_key.js +24 -25
  115. package/node_modules/jose/dist/webapi/lib/deflate.js +45 -47
  116. package/node_modules/jose/dist/webapi/lib/helpers.js +40 -37
  117. package/node_modules/jose/dist/webapi/lib/invalid_key_input.js +10 -24
  118. package/node_modules/jose/dist/webapi/lib/is_key_like.js +17 -15
  119. package/node_modules/jose/dist/webapi/lib/jwe_algorithms.js +106 -93
  120. package/node_modules/jose/dist/webapi/lib/jwe_decrypt.js +207 -230
  121. package/node_modules/jose/dist/webapi/lib/jwe_encrypt.js +104 -138
  122. package/node_modules/jose/dist/webapi/lib/jwk_metadata.js +17 -18
  123. package/node_modules/jose/dist/webapi/lib/jwk_to_key.js +9 -16
  124. package/node_modules/jose/dist/webapi/lib/jws_algorithms.js +62 -61
  125. package/node_modules/jose/dist/webapi/lib/jws_sign.js +50 -75
  126. package/node_modules/jose/dist/webapi/lib/jws_verify.js +80 -125
  127. package/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +123 -209
  128. package/node_modules/jose/dist/webapi/lib/key.js +84 -136
  129. package/node_modules/jose/dist/webapi/lib/key_algorithm.js +13 -8
  130. package/node_modules/jose/dist/webapi/lib/key_descriptor.js +8 -6
  131. package/node_modules/jose/dist/webapi/lib/key_management.js +200 -231
  132. package/node_modules/jose/dist/webapi/lib/key_options.js +7 -5
  133. package/node_modules/jose/dist/webapi/lib/options.js +55 -68
  134. package/node_modules/jose/dist/webapi/lib/signing.js +18 -22
  135. package/node_modules/jose/dist/webapi/lib/type_checks.js +26 -29
  136. package/node_modules/jose/dist/webapi/util/base64url.js +26 -35
  137. package/node_modules/jose/dist/webapi/util/decode_jwt.js +32 -31
  138. package/node_modules/jose/dist/webapi/util/decode_protected_header.js +18 -23
  139. package/node_modules/jose/dist/webapi/util/errors.js +94 -84
  140. package/node_modules/jose/package.json +17 -81
  141. package/node_modules/protobufjs/dist/light/protobuf.js +59 -6
  142. package/node_modules/protobufjs/dist/light/protobuf.js.map +1 -1
  143. package/node_modules/protobufjs/dist/light/protobuf.min.js +3 -3
  144. package/node_modules/protobufjs/dist/light/protobuf.min.js.map +1 -1
  145. package/node_modules/protobufjs/dist/minimal/protobuf.js +22 -2
  146. package/node_modules/protobufjs/dist/minimal/protobuf.js.map +1 -1
  147. package/node_modules/protobufjs/dist/minimal/protobuf.min.js +3 -3
  148. package/node_modules/protobufjs/dist/minimal/protobuf.min.js.map +1 -1
  149. package/node_modules/protobufjs/dist/protobuf.js +59 -6
  150. package/node_modules/protobufjs/dist/protobuf.js.map +1 -1
  151. package/node_modules/protobufjs/dist/protobuf.min.js +3 -3
  152. package/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
  153. package/node_modules/protobufjs/package.json +1 -1
  154. package/node_modules/protobufjs/src/decoder.js +32 -3
  155. package/node_modules/protobufjs/src/reader.js +20 -0
  156. package/node_modules/protobufjs/src/wrappers.js +5 -1
  157. package/node_modules/qs/.github/THREAT_MODEL.md +3 -3
  158. package/node_modules/qs/CHANGELOG.md +15 -0
  159. package/node_modules/qs/README.md +19 -1
  160. package/node_modules/qs/dist/qs.js +21 -21
  161. package/node_modules/qs/eslint.config.mjs +1 -1
  162. package/node_modules/qs/lib/parse.js +3 -4
  163. package/node_modules/qs/lib/stringify.js +23 -8
  164. package/node_modules/qs/lib/utils.js +10 -3
  165. package/node_modules/qs/package.json +4 -4
  166. package/node_modules/qs/test/parse.js +192 -3
  167. package/node_modules/qs/test/stringify.js +317 -0
  168. package/node_modules/qs/test/utils.js +12 -0
  169. package/node_modules/zod/README.md +27 -0
  170. package/node_modules/zod/compile.cjs +77 -0
  171. package/node_modules/zod/compile.d.cts +1 -0
  172. package/node_modules/zod/compile.d.ts +1 -0
  173. package/node_modules/zod/compile.js +52 -0
  174. package/node_modules/zod/index.cjs +2 -2
  175. package/node_modules/zod/index.d.cts +1 -2
  176. package/node_modules/zod/index.d.ts +1 -2
  177. package/node_modules/zod/index.js +5 -2
  178. package/node_modules/zod/package.json +13 -2
  179. package/node_modules/zod/src/compile.ts +56 -0
  180. package/node_modules/zod/src/index.ts +5 -2
  181. package/node_modules/zod/src/v3/ZodError.ts +22 -12
  182. package/node_modules/zod/src/v3/tests/error.test.ts +35 -0
  183. package/node_modules/zod/src/v3/tests/intersection.test.ts +18 -0
  184. package/node_modules/zod/src/v3/tests/language-server.test.ts +1 -2
  185. package/node_modules/zod/src/v3/tests/object.test.ts +3 -6
  186. package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -80
  187. package/node_modules/zod/src/v3/tests/string.test.ts +6 -0
  188. package/node_modules/zod/src/v3/types.ts +5 -5
  189. package/node_modules/zod/src/v4/classic/checks.ts +1 -0
  190. package/node_modules/zod/src/v4/classic/compat.ts +26 -18
  191. package/node_modules/zod/src/v4/classic/deep-partial.ts +76 -0
  192. package/node_modules/zod/src/v4/classic/errors.ts +59 -44
  193. package/node_modules/zod/src/v4/classic/external.ts +12 -9
  194. package/node_modules/zod/src/v4/classic/from-json-schema.ts +140 -78
  195. package/node_modules/zod/src/v4/classic/in-out.ts +45 -0
  196. package/node_modules/zod/src/v4/classic/index.ts +2 -2
  197. package/node_modules/zod/src/v4/classic/iso.ts +2 -72
  198. package/node_modules/zod/src/v4/classic/parse.ts +10 -4
  199. package/node_modules/zod/src/v4/classic/schemas.ts +452 -262
  200. package/node_modules/zod/src/v4/classic/tests/apply.test.ts +27 -0
  201. package/node_modules/zod/src/v4/classic/tests/array.test.ts +2 -2
  202. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +135 -0
  203. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +30 -1
  204. package/node_modules/zod/src/v4/classic/tests/catch.test.ts +278 -0
  205. package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +1 -2
  206. package/node_modules/zod/src/v4/classic/tests/codec.test.ts +2 -1
  207. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
  208. package/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +76 -0
  209. package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +720 -0
  210. package/node_modules/zod/src/v4/classic/tests/date.test.ts +30 -0
  211. package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +32 -18
  212. package/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +380 -0
  213. package/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +32 -0
  214. package/node_modules/zod/src/v4/classic/tests/default.test.ts +46 -0
  215. package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +31 -7
  216. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +155 -13
  217. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +11 -0
  218. package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +112 -2
  219. package/node_modules/zod/src/v4/classic/tests/error.test.ts +274 -6
  220. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +425 -10
  221. package/node_modules/zod/src/v4/classic/tests/function.test.ts +31 -0
  222. package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +2 -9
  223. package/node_modules/zod/src/v4/classic/tests/hash.test.ts +1 -2
  224. package/node_modules/zod/src/v4/classic/tests/in-out.test.ts +159 -0
  225. package/node_modules/zod/src/v4/classic/tests/index.test.ts +21 -2
  226. package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +281 -0
  227. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +47 -0
  228. package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +136 -0
  229. package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +183 -0
  230. package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +3 -10
  231. package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +36 -1
  232. package/node_modules/zod/src/v4/classic/tests/literal.test.ts +12 -1
  233. package/node_modules/zod/src/v4/classic/tests/map.test.ts +12 -0
  234. package/node_modules/zod/src/v4/classic/tests/number.test.ts +46 -9
  235. package/node_modules/zod/src/v4/classic/tests/object.test.ts +245 -12
  236. package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +234 -0
  237. package/node_modules/zod/src/v4/classic/tests/optional.test.ts +49 -16
  238. package/node_modules/zod/src/v4/classic/tests/partial.test.ts +51 -4
  239. package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +20 -2
  240. package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -68
  241. package/node_modules/zod/src/v4/classic/tests/record.test.ts +186 -18
  242. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +33 -2
  243. package/node_modules/zod/src/v4/classic/tests/redos.test.ts +68 -0
  244. package/node_modules/zod/src/v4/classic/tests/refine.test.ts +60 -0
  245. package/node_modules/zod/src/v4/classic/tests/set.test.ts +9 -0
  246. package/node_modules/zod/src/v4/classic/tests/string.test.ts +127 -5
  247. package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +18 -0
  248. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +11 -2
  249. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +1585 -173
  250. package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +45 -30
  251. package/node_modules/zod/src/v4/classic/tests/union.test.ts +39 -2
  252. package/node_modules/zod/src/v4/classic/tests/validate.test.ts +76 -0
  253. package/node_modules/zod/src/v4/classic/tests/validations.test.ts +2 -2
  254. package/node_modules/zod/src/v4/core/api.ts +48 -12
  255. package/node_modules/zod/src/v4/core/checks.ts +57 -44
  256. package/node_modules/zod/src/v4/core/compile.ts +2188 -0
  257. package/node_modules/zod/src/v4/core/core.ts +98 -19
  258. package/node_modules/zod/src/v4/core/doc.ts +11 -7
  259. package/node_modules/zod/src/v4/core/errors.ts +115 -24
  260. package/node_modules/zod/src/v4/core/index.ts +3 -0
  261. package/node_modules/zod/src/v4/core/json-schema-generator.ts +6 -1
  262. package/node_modules/zod/src/v4/core/json-schema-processors.ts +257 -93
  263. package/node_modules/zod/src/v4/core/json-schema.ts +2 -1
  264. package/node_modules/zod/src/v4/core/memoizer.ts +284 -0
  265. package/node_modules/zod/src/v4/core/parse.ts +131 -38
  266. package/node_modules/zod/src/v4/core/regexes.ts +30 -13
  267. package/node_modules/zod/src/v4/core/registries.ts +2 -2
  268. package/node_modules/zod/src/v4/core/schemas.ts +759 -461
  269. package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +969 -0
  270. package/node_modules/zod/src/v4/core/tests/compile-global.test.ts +89 -0
  271. package/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +26 -0
  272. package/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +34 -0
  273. package/node_modules/zod/src/v4/core/tests/compile.test.ts +1639 -0
  274. package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +1 -2
  275. package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +1 -2
  276. package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +3 -3
  277. package/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +42 -0
  278. package/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +69 -0
  279. package/node_modules/zod/src/v4/core/tests/treeshake.test.ts +51 -0
  280. package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +31 -0
  281. package/node_modules/zod/src/v4/core/to-json-schema.ts +275 -42
  282. package/node_modules/zod/src/v4/core/util.ts +268 -42
  283. package/node_modules/zod/src/v4/core/versions.ts +2 -2
  284. package/node_modules/zod/src/v4/core/visit.ts +193 -0
  285. package/node_modules/zod/src/v4/index.ts +3 -3
  286. package/node_modules/zod/src/v4/locales/ar.ts +3 -0
  287. package/node_modules/zod/src/v4/locales/az.ts +3 -0
  288. package/node_modules/zod/src/v4/locales/be.ts +10 -0
  289. package/node_modules/zod/src/v4/locales/bg.ts +3 -0
  290. package/node_modules/zod/src/v4/locales/bn.ts +121 -0
  291. package/node_modules/zod/src/v4/locales/ca.ts +3 -0
  292. package/node_modules/zod/src/v4/locales/ckb.ts +138 -0
  293. package/node_modules/zod/src/v4/locales/cs.ts +3 -0
  294. package/node_modules/zod/src/v4/locales/da.ts +5 -2
  295. package/node_modules/zod/src/v4/locales/de.ts +3 -0
  296. package/node_modules/zod/src/v4/locales/el.ts +1 -0
  297. package/node_modules/zod/src/v4/locales/en.ts +15 -4
  298. package/node_modules/zod/src/v4/locales/eo.ts +3 -0
  299. package/node_modules/zod/src/v4/locales/es.ts +2 -0
  300. package/node_modules/zod/src/v4/locales/fa.ts +3 -0
  301. package/node_modules/zod/src/v4/locales/fi.ts +3 -0
  302. package/node_modules/zod/src/v4/locales/fr-CA.ts +3 -0
  303. package/node_modules/zod/src/v4/locales/fr.ts +19 -14
  304. package/node_modules/zod/src/v4/locales/gu.ts +121 -0
  305. package/node_modules/zod/src/v4/locales/he.ts +6 -1
  306. package/node_modules/zod/src/v4/locales/hi.ts +124 -0
  307. package/node_modules/zod/src/v4/locales/hr.ts +2 -0
  308. package/node_modules/zod/src/v4/locales/hu.ts +3 -0
  309. package/node_modules/zod/src/v4/locales/hy.ts +9 -0
  310. package/node_modules/zod/src/v4/locales/id.ts +3 -0
  311. package/node_modules/zod/src/v4/locales/index.ts +10 -0
  312. package/node_modules/zod/src/v4/locales/is.ts +3 -0
  313. package/node_modules/zod/src/v4/locales/it.ts +3 -0
  314. package/node_modules/zod/src/v4/locales/ja.ts +3 -0
  315. package/node_modules/zod/src/v4/locales/ka.ts +3 -0
  316. package/node_modules/zod/src/v4/locales/km.ts +3 -0
  317. package/node_modules/zod/src/v4/locales/kn.ts +124 -0
  318. package/node_modules/zod/src/v4/locales/ko.ts +3 -0
  319. package/node_modules/zod/src/v4/locales/lt.ts +2 -0
  320. package/node_modules/zod/src/v4/locales/mk.ts +3 -0
  321. package/node_modules/zod/src/v4/locales/ms.ts +3 -0
  322. package/node_modules/zod/src/v4/locales/ne.ts +126 -0
  323. package/node_modules/zod/src/v4/locales/nl.ts +3 -0
  324. package/node_modules/zod/src/v4/locales/nn.ts +119 -0
  325. package/node_modules/zod/src/v4/locales/no.ts +5 -2
  326. package/node_modules/zod/src/v4/locales/ota.ts +3 -0
  327. package/node_modules/zod/src/v4/locales/pl.ts +3 -0
  328. package/node_modules/zod/src/v4/locales/ps.ts +3 -0
  329. package/node_modules/zod/src/v4/locales/pt-BR.ts +159 -0
  330. package/node_modules/zod/src/v4/locales/pt.ts +99 -58
  331. package/node_modules/zod/src/v4/locales/ro.ts +1 -0
  332. package/node_modules/zod/src/v4/locales/ru.ts +10 -0
  333. package/node_modules/zod/src/v4/locales/sk.ts +121 -0
  334. package/node_modules/zod/src/v4/locales/sl.ts +3 -0
  335. package/node_modules/zod/src/v4/locales/sv.ts +5 -2
  336. package/node_modules/zod/src/v4/locales/ta.ts +3 -0
  337. package/node_modules/zod/src/v4/locales/th.ts +3 -0
  338. package/node_modules/zod/src/v4/locales/tk.ts +111 -0
  339. package/node_modules/zod/src/v4/locales/tr.ts +3 -0
  340. package/node_modules/zod/src/v4/locales/uk.ts +3 -0
  341. package/node_modules/zod/src/v4/locales/ur.ts +3 -0
  342. package/node_modules/zod/src/v4/locales/uz.ts +1 -0
  343. package/node_modules/zod/src/v4/locales/vi.ts +3 -0
  344. package/node_modules/zod/src/v4/locales/yo.ts +3 -0
  345. package/node_modules/zod/src/v4/locales/zh-CN.ts +3 -0
  346. package/node_modules/zod/src/v4/locales/zh-TW.ts +3 -0
  347. package/node_modules/zod/src/v4/mini/checks.ts +1 -0
  348. package/node_modules/zod/src/v4/mini/deep-partial.ts +73 -0
  349. package/node_modules/zod/src/v4/mini/external.ts +10 -1
  350. package/node_modules/zod/src/v4/mini/in-out.ts +45 -0
  351. package/node_modules/zod/src/v4/mini/parse.ts +2 -0
  352. package/node_modules/zod/src/v4/mini/schemas.ts +135 -56
  353. package/node_modules/zod/src/v4/mini/tests/apply.test.ts +33 -0
  354. package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +62 -1
  355. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +14 -0
  356. package/node_modules/zod/src/v4/mini/tests/codec.test.ts +35 -1
  357. package/node_modules/zod/src/v4/mini/tests/cyclic-data.test.ts +84 -0
  358. package/node_modules/zod/src/v4/mini/tests/deep-partial.test.ts +54 -0
  359. package/node_modules/zod/src/v4/mini/tests/error.test.ts +23 -4
  360. package/node_modules/zod/src/v4/mini/tests/functions.test.ts +9 -0
  361. package/node_modules/zod/src/v4/mini/tests/index.test.ts +72 -5
  362. package/node_modules/zod/src/v4/mini/tests/number.test.ts +14 -0
  363. package/node_modules/zod/src/v4/mini/tests/object.test.ts +65 -0
  364. package/node_modules/zod/src/v4/mini/tests/string.test.ts +21 -0
  365. package/node_modules/zod/v3/ZodError.cjs +22 -12
  366. package/node_modules/zod/v3/ZodError.d.cts +1 -1
  367. package/node_modules/zod/v3/ZodError.d.ts +1 -1
  368. package/node_modules/zod/v3/ZodError.js +22 -12
  369. package/node_modules/zod/v3/types.cjs +7 -5
  370. package/node_modules/zod/v3/types.js +7 -5
  371. package/node_modules/zod/v4/classic/checks.cjs +2 -1
  372. package/node_modules/zod/v4/classic/checks.d.cts +1 -1
  373. package/node_modules/zod/v4/classic/checks.d.ts +1 -1
  374. package/node_modules/zod/v4/classic/checks.js +1 -1
  375. package/node_modules/zod/v4/classic/compat.d.cts +9 -11
  376. package/node_modules/zod/v4/classic/compat.d.ts +9 -11
  377. package/node_modules/zod/v4/classic/deep-partial.cjs +39 -0
  378. package/node_modules/zod/v4/classic/deep-partial.d.cts +14 -0
  379. package/node_modules/zod/v4/classic/deep-partial.d.ts +14 -0
  380. package/node_modules/zod/v4/classic/deep-partial.js +13 -0
  381. package/node_modules/zod/v4/classic/errors.cjs +43 -34
  382. package/node_modules/zod/v4/classic/errors.d.cts +3 -4
  383. package/node_modules/zod/v4/classic/errors.d.ts +3 -4
  384. package/node_modules/zod/v4/classic/errors.js +43 -34
  385. package/node_modules/zod/v4/classic/external.cjs +30 -27
  386. package/node_modules/zod/v4/classic/external.d.cts +5 -2
  387. package/node_modules/zod/v4/classic/external.d.ts +5 -2
  388. package/node_modules/zod/v4/classic/external.js +5 -8
  389. package/node_modules/zod/v4/classic/from-json-schema.cjs +136 -75
  390. package/node_modules/zod/v4/classic/from-json-schema.js +136 -75
  391. package/node_modules/zod/v4/classic/in-out.cjs +63 -0
  392. package/node_modules/zod/v4/classic/in-out.d.cts +8 -0
  393. package/node_modules/zod/v4/classic/in-out.d.ts +8 -0
  394. package/node_modules/zod/v4/classic/in-out.js +36 -0
  395. package/node_modules/zod/v4/classic/index.cjs +2 -2
  396. package/node_modules/zod/v4/classic/index.d.cts +1 -2
  397. package/node_modules/zod/v4/classic/index.d.ts +1 -2
  398. package/node_modules/zod/v4/classic/index.js +2 -2
  399. package/node_modules/zod/v4/classic/iso.cjs +11 -22
  400. package/node_modules/zod/v4/classic/iso.d.cts +2 -17
  401. package/node_modules/zod/v4/classic/iso.d.ts +2 -17
  402. package/node_modules/zod/v4/classic/iso.js +2 -17
  403. package/node_modules/zod/v4/classic/parse.cjs +4 -1
  404. package/node_modules/zod/v4/classic/parse.d.cts +17 -4
  405. package/node_modules/zod/v4/classic/parse.d.ts +17 -4
  406. package/node_modules/zod/v4/classic/parse.js +1 -0
  407. package/node_modules/zod/v4/classic/schemas.cjs +498 -398
  408. package/node_modules/zod/v4/classic/schemas.d.cts +53 -18
  409. package/node_modules/zod/v4/classic/schemas.d.ts +53 -18
  410. package/node_modules/zod/v4/classic/schemas.js +492 -396
  411. package/node_modules/zod/v4/core/api.cjs +23 -4
  412. package/node_modules/zod/v4/core/api.d.cts +13 -9
  413. package/node_modules/zod/v4/core/api.d.ts +13 -9
  414. package/node_modules/zod/v4/core/api.js +21 -4
  415. package/node_modules/zod/v4/core/checks.cjs +37 -31
  416. package/node_modules/zod/v4/core/checks.d.cts +13 -13
  417. package/node_modules/zod/v4/core/checks.d.ts +13 -13
  418. package/node_modules/zod/v4/core/checks.js +37 -31
  419. package/node_modules/zod/v4/core/compile.cjs +1813 -0
  420. package/node_modules/zod/v4/core/compile.d.cts +51 -0
  421. package/node_modules/zod/v4/core/compile.d.ts +51 -0
  422. package/node_modules/zod/v4/core/compile.js +1783 -0
  423. package/node_modules/zod/v4/core/core.cjs +81 -18
  424. package/node_modules/zod/v4/core/core.d.cts +16 -4
  425. package/node_modules/zod/v4/core/core.d.ts +16 -4
  426. package/node_modules/zod/v4/core/core.js +82 -19
  427. package/node_modules/zod/v4/core/doc.cjs +5 -7
  428. package/node_modules/zod/v4/core/doc.d.cts +3 -1
  429. package/node_modules/zod/v4/core/doc.d.ts +3 -1
  430. package/node_modules/zod/v4/core/doc.js +5 -7
  431. package/node_modules/zod/v4/core/errors.cjs +110 -25
  432. package/node_modules/zod/v4/core/errors.d.cts +4 -0
  433. package/node_modules/zod/v4/core/errors.d.ts +4 -0
  434. package/node_modules/zod/v4/core/errors.js +110 -25
  435. package/node_modules/zod/v4/core/index.cjs +5 -1
  436. package/node_modules/zod/v4/core/index.d.cts +3 -0
  437. package/node_modules/zod/v4/core/index.d.ts +3 -0
  438. package/node_modules/zod/v4/core/index.js +3 -0
  439. package/node_modules/zod/v4/core/json-schema-generator.cjs +4 -0
  440. package/node_modules/zod/v4/core/json-schema-generator.d.cts +2 -2
  441. package/node_modules/zod/v4/core/json-schema-generator.d.ts +2 -2
  442. package/node_modules/zod/v4/core/json-schema-generator.js +4 -0
  443. package/node_modules/zod/v4/core/json-schema-processors.cjs +264 -95
  444. package/node_modules/zod/v4/core/json-schema-processors.js +243 -97
  445. package/node_modules/zod/v4/core/json-schema.d.cts +2 -1
  446. package/node_modules/zod/v4/core/json-schema.d.ts +2 -1
  447. package/node_modules/zod/v4/core/memoizer.cjs +272 -0
  448. package/node_modules/zod/v4/core/memoizer.d.cts +15 -0
  449. package/node_modules/zod/v4/core/memoizer.d.ts +15 -0
  450. package/node_modules/zod/v4/core/memoizer.js +265 -0
  451. package/node_modules/zod/v4/core/parse.cjs +96 -34
  452. package/node_modules/zod/v4/core/parse.d.cts +14 -11
  453. package/node_modules/zod/v4/core/parse.d.ts +14 -11
  454. package/node_modules/zod/v4/core/parse.js +94 -33
  455. package/node_modules/zod/v4/core/regexes.cjs +27 -15
  456. package/node_modules/zod/v4/core/regexes.d.cts +2 -0
  457. package/node_modules/zod/v4/core/regexes.d.ts +2 -0
  458. package/node_modules/zod/v4/core/regexes.js +24 -13
  459. package/node_modules/zod/v4/core/registries.js +2 -2
  460. package/node_modules/zod/v4/core/schemas.cjs +537 -326
  461. package/node_modules/zod/v4/core/schemas.d.cts +100 -31
  462. package/node_modules/zod/v4/core/schemas.d.ts +100 -31
  463. package/node_modules/zod/v4/core/schemas.js +526 -325
  464. package/node_modules/zod/v4/core/to-json-schema.cjs +242 -39
  465. package/node_modules/zod/v4/core/to-json-schema.d.cts +42 -3
  466. package/node_modules/zod/v4/core/to-json-schema.d.ts +42 -3
  467. package/node_modules/zod/v4/core/to-json-schema.js +241 -39
  468. package/node_modules/zod/v4/core/util.cjs +212 -31
  469. package/node_modules/zod/v4/core/util.d.cts +58 -1
  470. package/node_modules/zod/v4/core/util.d.ts +58 -1
  471. package/node_modules/zod/v4/core/util.js +202 -30
  472. package/node_modules/zod/v4/core/versions.cjs +2 -2
  473. package/node_modules/zod/v4/core/versions.d.cts +1 -1
  474. package/node_modules/zod/v4/core/versions.d.ts +1 -1
  475. package/node_modules/zod/v4/core/versions.js +2 -2
  476. package/node_modules/zod/v4/core/visit.cjs +195 -0
  477. package/node_modules/zod/v4/core/visit.d.cts +30 -0
  478. package/node_modules/zod/v4/core/visit.d.ts +30 -0
  479. package/node_modules/zod/v4/core/visit.js +169 -0
  480. package/node_modules/zod/v4/index.cjs +15 -5
  481. package/node_modules/zod/v4/index.d.cts +2 -2
  482. package/node_modules/zod/v4/index.d.ts +2 -2
  483. package/node_modules/zod/v4/index.js +3 -2
  484. package/node_modules/zod/v4/locales/ar.cjs +3 -0
  485. package/node_modules/zod/v4/locales/ar.js +3 -0
  486. package/node_modules/zod/v4/locales/az.cjs +3 -0
  487. package/node_modules/zod/v4/locales/az.js +3 -0
  488. package/node_modules/zod/v4/locales/be.cjs +10 -0
  489. package/node_modules/zod/v4/locales/be.js +10 -0
  490. package/node_modules/zod/v4/locales/bg.cjs +3 -0
  491. package/node_modules/zod/v4/locales/bg.js +3 -0
  492. package/node_modules/zod/v4/locales/bn.cjs +138 -0
  493. package/node_modules/zod/v4/locales/bn.d.cts +5 -0
  494. package/node_modules/zod/v4/locales/bn.d.ts +4 -0
  495. package/node_modules/zod/v4/locales/bn.js +111 -0
  496. package/node_modules/zod/v4/locales/ca.cjs +3 -0
  497. package/node_modules/zod/v4/locales/ca.js +3 -0
  498. package/node_modules/zod/v4/locales/ckb.cjs +158 -0
  499. package/node_modules/zod/v4/locales/ckb.d.cts +5 -0
  500. package/node_modules/zod/v4/locales/ckb.d.ts +4 -0
  501. package/node_modules/zod/v4/locales/ckb.js +131 -0
  502. package/node_modules/zod/v4/locales/cs.cjs +3 -0
  503. package/node_modules/zod/v4/locales/cs.js +3 -0
  504. package/node_modules/zod/v4/locales/da.cjs +5 -2
  505. package/node_modules/zod/v4/locales/da.js +5 -2
  506. package/node_modules/zod/v4/locales/de.cjs +3 -0
  507. package/node_modules/zod/v4/locales/de.js +3 -0
  508. package/node_modules/zod/v4/locales/el.cjs +1 -0
  509. package/node_modules/zod/v4/locales/el.js +1 -0
  510. package/node_modules/zod/v4/locales/en.cjs +14 -4
  511. package/node_modules/zod/v4/locales/en.js +14 -4
  512. package/node_modules/zod/v4/locales/eo.cjs +3 -0
  513. package/node_modules/zod/v4/locales/eo.js +3 -0
  514. package/node_modules/zod/v4/locales/es.cjs +2 -0
  515. package/node_modules/zod/v4/locales/es.js +2 -0
  516. package/node_modules/zod/v4/locales/fa.cjs +3 -0
  517. package/node_modules/zod/v4/locales/fa.js +3 -0
  518. package/node_modules/zod/v4/locales/fi.cjs +3 -0
  519. package/node_modules/zod/v4/locales/fi.js +3 -0
  520. package/node_modules/zod/v4/locales/fr-CA.cjs +3 -0
  521. package/node_modules/zod/v4/locales/fr-CA.js +3 -0
  522. package/node_modules/zod/v4/locales/fr.cjs +16 -14
  523. package/node_modules/zod/v4/locales/fr.js +16 -14
  524. package/node_modules/zod/v4/locales/gu.cjs +138 -0
  525. package/node_modules/zod/v4/locales/gu.d.cts +5 -0
  526. package/node_modules/zod/v4/locales/gu.d.ts +4 -0
  527. package/node_modules/zod/v4/locales/gu.js +111 -0
  528. package/node_modules/zod/v4/locales/he.cjs +5 -0
  529. package/node_modules/zod/v4/locales/he.js +5 -0
  530. package/node_modules/zod/v4/locales/hi.cjs +136 -0
  531. package/node_modules/zod/v4/locales/hi.d.cts +5 -0
  532. package/node_modules/zod/v4/locales/hi.d.ts +4 -0
  533. package/node_modules/zod/v4/locales/hi.js +109 -0
  534. package/node_modules/zod/v4/locales/hr.cjs +2 -0
  535. package/node_modules/zod/v4/locales/hr.js +2 -0
  536. package/node_modules/zod/v4/locales/hu.cjs +3 -0
  537. package/node_modules/zod/v4/locales/hu.js +3 -0
  538. package/node_modules/zod/v4/locales/hy.cjs +9 -0
  539. package/node_modules/zod/v4/locales/hy.js +9 -0
  540. package/node_modules/zod/v4/locales/id.cjs +3 -0
  541. package/node_modules/zod/v4/locales/id.js +3 -0
  542. package/node_modules/zod/v4/locales/index.cjs +22 -2
  543. package/node_modules/zod/v4/locales/index.d.cts +10 -0
  544. package/node_modules/zod/v4/locales/index.d.ts +10 -0
  545. package/node_modules/zod/v4/locales/index.js +10 -0
  546. package/node_modules/zod/v4/locales/is.cjs +3 -0
  547. package/node_modules/zod/v4/locales/is.js +3 -0
  548. package/node_modules/zod/v4/locales/it.cjs +3 -0
  549. package/node_modules/zod/v4/locales/it.js +3 -0
  550. package/node_modules/zod/v4/locales/ja.cjs +3 -0
  551. package/node_modules/zod/v4/locales/ja.js +3 -0
  552. package/node_modules/zod/v4/locales/ka.cjs +3 -0
  553. package/node_modules/zod/v4/locales/ka.js +3 -0
  554. package/node_modules/zod/v4/locales/km.cjs +3 -0
  555. package/node_modules/zod/v4/locales/km.js +3 -0
  556. package/node_modules/zod/v4/locales/kn.cjs +141 -0
  557. package/node_modules/zod/v4/locales/kn.d.cts +5 -0
  558. package/node_modules/zod/v4/locales/kn.d.ts +4 -0
  559. package/node_modules/zod/v4/locales/kn.js +114 -0
  560. package/node_modules/zod/v4/locales/ko.cjs +3 -0
  561. package/node_modules/zod/v4/locales/ko.js +3 -0
  562. package/node_modules/zod/v4/locales/lt.cjs +2 -0
  563. package/node_modules/zod/v4/locales/lt.js +2 -0
  564. package/node_modules/zod/v4/locales/mk.cjs +3 -0
  565. package/node_modules/zod/v4/locales/mk.js +3 -0
  566. package/node_modules/zod/v4/locales/ms.cjs +3 -0
  567. package/node_modules/zod/v4/locales/ms.js +3 -0
  568. package/node_modules/zod/v4/locales/ne.cjs +136 -0
  569. package/node_modules/zod/v4/locales/ne.d.cts +5 -0
  570. package/node_modules/zod/v4/locales/ne.d.ts +4 -0
  571. package/node_modules/zod/v4/locales/ne.js +109 -0
  572. package/node_modules/zod/v4/locales/nl.cjs +3 -0
  573. package/node_modules/zod/v4/locales/nl.js +3 -0
  574. package/node_modules/zod/v4/locales/nn.cjs +138 -0
  575. package/node_modules/zod/v4/locales/nn.d.cts +5 -0
  576. package/node_modules/zod/v4/locales/nn.d.ts +4 -0
  577. package/node_modules/zod/v4/locales/nn.js +111 -0
  578. package/node_modules/zod/v4/locales/no.cjs +5 -2
  579. package/node_modules/zod/v4/locales/no.js +5 -2
  580. package/node_modules/zod/v4/locales/ota.cjs +3 -0
  581. package/node_modules/zod/v4/locales/ota.js +3 -0
  582. package/node_modules/zod/v4/locales/pl.cjs +3 -0
  583. package/node_modules/zod/v4/locales/pl.js +3 -0
  584. package/node_modules/zod/v4/locales/ps.cjs +3 -0
  585. package/node_modules/zod/v4/locales/ps.js +3 -0
  586. package/node_modules/zod/v4/locales/pt-BR.cjs +168 -0
  587. package/node_modules/zod/v4/locales/pt-BR.d.cts +5 -0
  588. package/node_modules/zod/v4/locales/pt-BR.d.ts +4 -0
  589. package/node_modules/zod/v4/locales/pt-BR.js +141 -0
  590. package/node_modules/zod/v4/locales/pt.cjs +87 -55
  591. package/node_modules/zod/v4/locales/pt.js +87 -55
  592. package/node_modules/zod/v4/locales/ro.cjs +1 -0
  593. package/node_modules/zod/v4/locales/ro.js +1 -0
  594. package/node_modules/zod/v4/locales/ru.cjs +10 -0
  595. package/node_modules/zod/v4/locales/ru.js +10 -0
  596. package/node_modules/zod/v4/locales/sk.cjs +141 -0
  597. package/node_modules/zod/v4/locales/sk.d.cts +5 -0
  598. package/node_modules/zod/v4/locales/sk.d.ts +4 -0
  599. package/node_modules/zod/v4/locales/sk.js +114 -0
  600. package/node_modules/zod/v4/locales/sl.cjs +3 -0
  601. package/node_modules/zod/v4/locales/sl.js +3 -0
  602. package/node_modules/zod/v4/locales/sv.cjs +5 -2
  603. package/node_modules/zod/v4/locales/sv.js +5 -2
  604. package/node_modules/zod/v4/locales/ta.cjs +3 -0
  605. package/node_modules/zod/v4/locales/ta.js +3 -0
  606. package/node_modules/zod/v4/locales/th.cjs +3 -0
  607. package/node_modules/zod/v4/locales/th.js +3 -0
  608. package/node_modules/zod/v4/locales/tk.cjs +132 -0
  609. package/node_modules/zod/v4/locales/tk.d.cts +5 -0
  610. package/node_modules/zod/v4/locales/tk.d.ts +4 -0
  611. package/node_modules/zod/v4/locales/tk.js +105 -0
  612. package/node_modules/zod/v4/locales/tr.cjs +3 -0
  613. package/node_modules/zod/v4/locales/tr.js +3 -0
  614. package/node_modules/zod/v4/locales/uk.cjs +3 -0
  615. package/node_modules/zod/v4/locales/uk.js +3 -0
  616. package/node_modules/zod/v4/locales/ur.cjs +3 -0
  617. package/node_modules/zod/v4/locales/ur.js +3 -0
  618. package/node_modules/zod/v4/locales/uz.cjs +1 -0
  619. package/node_modules/zod/v4/locales/uz.js +1 -0
  620. package/node_modules/zod/v4/locales/vi.cjs +3 -0
  621. package/node_modules/zod/v4/locales/vi.js +3 -0
  622. package/node_modules/zod/v4/locales/yo.cjs +3 -0
  623. package/node_modules/zod/v4/locales/yo.js +3 -0
  624. package/node_modules/zod/v4/locales/zh-CN.cjs +3 -0
  625. package/node_modules/zod/v4/locales/zh-CN.js +3 -0
  626. package/node_modules/zod/v4/locales/zh-TW.cjs +3 -0
  627. package/node_modules/zod/v4/locales/zh-TW.js +3 -0
  628. package/node_modules/zod/v4/mini/checks.cjs +2 -1
  629. package/node_modules/zod/v4/mini/checks.d.cts +1 -1
  630. package/node_modules/zod/v4/mini/checks.d.ts +1 -1
  631. package/node_modules/zod/v4/mini/checks.js +1 -1
  632. package/node_modules/zod/v4/mini/deep-partial.cjs +39 -0
  633. package/node_modules/zod/v4/mini/deep-partial.d.cts +14 -0
  634. package/node_modules/zod/v4/mini/deep-partial.d.ts +14 -0
  635. package/node_modules/zod/v4/mini/deep-partial.js +13 -0
  636. package/node_modules/zod/v4/mini/external.cjs +12 -1
  637. package/node_modules/zod/v4/mini/external.d.cts +5 -2
  638. package/node_modules/zod/v4/mini/external.d.ts +5 -2
  639. package/node_modules/zod/v4/mini/external.js +3 -1
  640. package/node_modules/zod/v4/mini/in-out.cjs +63 -0
  641. package/node_modules/zod/v4/mini/in-out.d.cts +8 -0
  642. package/node_modules/zod/v4/mini/in-out.d.ts +8 -0
  643. package/node_modules/zod/v4/mini/in-out.js +36 -0
  644. package/node_modules/zod/v4/mini/parse.cjs +3 -1
  645. package/node_modules/zod/v4/mini/parse.d.cts +1 -1
  646. package/node_modules/zod/v4/mini/parse.d.ts +1 -1
  647. package/node_modules/zod/v4/mini/parse.js +1 -1
  648. package/node_modules/zod/v4/mini/schemas.cjs +75 -47
  649. package/node_modules/zod/v4/mini/schemas.d.cts +43 -13
  650. package/node_modules/zod/v4/mini/schemas.d.ts +43 -13
  651. package/node_modules/zod/v4/mini/schemas.js +71 -45
  652. package/package.json +3 -2
  653. package/skills/context-management/SKILL.md +258 -0
  654. package/skills/figma-implement-design/SKILL.md +258 -0
  655. package/skills/orchestrator/SKILL.md +82 -0
  656. package/skills/s-help/SKILL.md +42 -0
  657. package/skills/s-help/resources/README.md +23 -0
  658. package/skills/s-help/resources/commands.json +78 -0
  659. package/skills/s-help/resources/s-acm.md +26 -0
  660. package/skills/s-help/resources/s-bash-mode.md +23 -0
  661. package/skills/s-help/resources/s-bash-reset.md +23 -0
  662. package/skills/s-help/resources/s-context.md +25 -0
  663. package/skills/s-help/resources/s-filechanges-accept.md +25 -0
  664. package/skills/s-help/resources/s-filechanges-decline.md +30 -0
  665. package/skills/s-help/resources/s-filechanges.md +38 -0
  666. package/skills/s-help/resources/s-footer.md +38 -0
  667. package/skills/s-help/resources/s-promptlib.md +28 -0
  668. package/skills/s-help/resources/s-skills-manager.md +31 -0
  669. package/skills/s-help/resources/s-stash-history.md +26 -0
  670. package/skills/screenshot/SKILL.md +267 -0
  671. package/skills/screenshot/scripts/ensure_macos_permissions.sh +54 -0
  672. package/skills/screenshot/scripts/macos_display_info.swift +22 -0
  673. package/skills/screenshot/scripts/macos_permissions.swift +40 -0
  674. package/skills/screenshot/scripts/macos_window_info.swift +126 -0
  675. package/skills/screenshot/scripts/take_screenshot.ps1 +163 -0
  676. package/skills/screenshot/scripts/take_screenshot.py +585 -0
  677. package/slingshot/index.js +224 -224
  678. package/node_modules/zod/src/v4/core/config.ts +0 -15
@@ -132,14 +132,12 @@ test("catchall inference", () => {
132
132
  test("catchall overrides strict", () => {
133
133
  const o1 = z.object({ first: z.string().optional() }).strict().catchall(z.number());
134
134
 
135
- // should run fine
136
- // setting a catchall overrides the unknownKeys behavior
135
+ // should run fine setting a catchall overrides the unknownKeys behavior
137
136
  o1.parse({
138
137
  asdf: 1234,
139
138
  });
140
139
 
141
- // should only run catchall validation
142
- // against unknown keys
140
+ // should only run catchall validation against unknown keys
143
141
  o1.parse({
144
142
  first: "asdf",
145
143
  asdf: 1234,
@@ -154,8 +152,7 @@ test("catchall overrides strict", () => {
154
152
  .strict()
155
153
  .catchall(z.number());
156
154
 
157
- // should run fine
158
- // setting a catchall overrides the unknownKeys behavior
155
+ // should run fine setting a catchall overrides the unknownKeys behavior
159
156
  o1.parse({
160
157
  first: "asdf",
161
158
  asdf: 1234,
@@ -670,10 +667,7 @@ test("safeExtend() on object with refinements should not throw", () => {
670
667
  expect(() => schema.safeExtend({ b: z.string() })).not.toThrow();
671
668
  });
672
669
 
673
- // __proto__ in input must not replace the prototype of the parsed object via
674
- // the assignment setter on the result {}.
675
- // https://github.com/colinhacks/zod/security/advisories/GHSA-r34p-xfmx-58wv
676
- // https://github.com/colinhacks/zod/security/advisories/GHSA-84jv-fqfx-wxhr
670
+ // __proto__ in input must not replace the prototype of the parsed object via the assignment setter on the result {}.
677
671
  describe("__proto__ in object catchall paths", () => {
678
672
  const protoInput = () => JSON.parse('{"__proto__":{"isAdmin":true},"name":"alice"}');
679
673
 
@@ -709,9 +703,248 @@ describe("__proto__ in object catchall paths", () => {
709
703
  }
710
704
  });
711
705
 
712
- test("strict does not surface __proto__ as unrecognized", () => {
706
+ test("strict surfaces __proto__ as unrecognized without copying it", () => {
713
707
  const schema = z.object({ name: z.string() }).strict();
714
708
  const result = schema.safeParse(protoInput());
715
- expect(result.success).toBe(true);
709
+ expect(result.success).toBe(false);
710
+ if (!result.success) {
711
+ expect(result.error.issues[0].code).toBe("unrecognized_keys");
712
+ expect((result.error.issues[0] as any).keys).toEqual(["__proto__"]);
713
+ }
714
+ });
715
+
716
+ test("strict accepts but strips a __proto__ key the shape declares", () => {
717
+ const shape: any = { name: z.string() };
718
+ Object.defineProperty(shape, "__proto__", {
719
+ value: z.string(),
720
+ enumerable: true,
721
+ configurable: true,
722
+ writable: true,
723
+ });
724
+ const input = JSON.parse('{"name":"alice","__proto__":"hello"}');
725
+
726
+ for (const schema of [z.object(shape).strict(), z.object(shape).catchall(z.any()), z.object(shape)]) {
727
+ const result = schema.safeParse(input);
728
+ expect(result.success).toBe(true);
729
+ if (result.success) {
730
+ expect(Object.keys(result.data)).toEqual(["name"]);
731
+ expect(Object.getPrototypeOf(result.data)).toBe(Object.prototype);
732
+ }
733
+ }
734
+ });
735
+
736
+ test("strictObject and jitless agree with .strict()", async () => {
737
+ for (const schema of [z.strictObject({ name: z.string() }), z.object({ name: z.string() }).strict()]) {
738
+ for (const result of [
739
+ schema.safeParse(protoInput()),
740
+ await schema.safeParseAsync(protoInput(), {
741
+ jitless: true,
742
+ } as any),
743
+ ]) {
744
+ expect(result.success).toBe(false);
745
+ if (!result.success) {
746
+ expect((result.error.issues[0] as any).keys).toEqual(["__proto__"]);
747
+ }
748
+ }
749
+ }
750
+ });
751
+ });
752
+
753
+ // Parsed objects always strip __proto__, including keys explicitly declared by the schema.
754
+ describe("__proto__ as a declared shape key", () => {
755
+ const protoInput = () => JSON.parse('{"__proto__":{"isAdmin":true},"name":"alice"}');
756
+ const makeShape = () =>
757
+ Object.fromEntries([
758
+ ["__proto__", z.object({ isAdmin: z.boolean() })],
759
+ ["name", z.string()],
760
+ ]) as Record<string, any>;
761
+
762
+ const expectStripped = (parsed: any) => {
763
+ expect(Object.getPrototypeOf(parsed)).toBe(Object.prototype);
764
+ expect(Object.prototype.hasOwnProperty.call(parsed, "__proto__")).toBe(false);
765
+ expect((parsed as any).isAdmin).toBeUndefined();
766
+ expect(Object.keys(parsed)).toEqual(["name"]);
767
+ };
768
+
769
+ test("jit fastpass", () => {
770
+ expectStripped(z.object(makeShape()).parse(protoInput()));
771
+ });
772
+
773
+ test("jitless", () => {
774
+ expectStripped(z.object(makeShape()).parse(protoInput(), { jitless: true } as any));
775
+ });
776
+
777
+ test("async", async () => {
778
+ const shape = Object.fromEntries([
779
+ ["__proto__", z.object({ isAdmin: z.boolean() }).refine(async () => true)],
780
+ ["name", z.string()],
781
+ ]) as Record<string, any>;
782
+ expectStripped(await z.object(shape).parseAsync(protoInput()));
783
+ });
784
+
785
+ test("primitive value is stripped", () => {
786
+ const schema = z.object(Object.fromEntries([["__proto__", z.string()]]) as Record<string, any>);
787
+ const parsed: any = schema.parse(JSON.parse('{"__proto__":"hello"}'));
788
+ expect(Object.prototype.hasOwnProperty.call(parsed, "__proto__")).toBe(false);
789
+ expect(Object.getPrototypeOf(parsed)).toBe(Object.prototype);
790
+ });
791
+
792
+ test("declared key is not validated", () => {
793
+ const schema = z.object(Object.fromEntries([["__proto__", z.string()]]) as Record<string, any>);
794
+ expect(schema.parse(JSON.parse('{"__proto__":123}'))).toEqual({});
795
+ });
796
+
797
+ test("required, optional, and defaulted declarations are all stripped", () => {
798
+ const shape = (schema: z.ZodType) => Object.fromEntries([["__proto__", schema]]) as Record<string, any>;
799
+
800
+ for (const jitless of [false, true]) {
801
+ const ctx = { jitless } as any;
802
+ expect(z.object(shape(z.unknown())).parse({}, ctx)).toEqual({});
803
+ expect(z.object(shape(z.string().optional())).parse({}, ctx)).toEqual({});
804
+ expect(z.object(shape(z.string().default("fallback"))).parse({}, ctx)).toEqual({});
805
+ }
806
+ });
807
+
808
+ test("an own getter is not evaluated", () => {
809
+ let reads = 0;
810
+ const input = Object.defineProperty({}, "__proto__", {
811
+ get() {
812
+ reads++;
813
+ return "value";
814
+ },
815
+ enumerable: true,
816
+ });
817
+ const schema = z.object(Object.fromEntries([["__proto__", z.string()]]) as Record<string, any>);
818
+
819
+ expect(schema.parse(input)).toEqual({});
820
+ expect(reads).toBe(0);
821
+ });
822
+
823
+ test("pick keeps a declared key", () => {
824
+ const shape = Object.fromEntries([["__proto__", z.string()]]) as Record<string, any>;
825
+ const mask = Object.fromEntries([["__proto__", true]]) as Record<string, true>;
826
+ const picked = z.object(shape).pick(mask);
827
+
828
+ expect(Object.keys(picked.shape)).toEqual(["__proto__"]);
829
+ const parsed: any = picked.parse(Object.fromEntries([["__proto__", "value"]]));
830
+ expect(parsed).toEqual({});
831
+ expect(() => z.object({ value: z.string() }).pick(mask as any).shape).toThrow('Unrecognized key: "__proto__"');
832
+ });
833
+
834
+ test.each(["omit", "partial", "required"] as const)("%s rejects an undeclared key", (method) => {
835
+ const mask = Object.fromEntries([["__proto__", true]]);
836
+ const schema = z.object({ value: z.string() });
837
+
838
+ expect(() => (schema[method] as any)(mask).shape).toThrow('Unrecognized key: "__proto__"');
839
+ });
840
+
841
+ test("shape helpers preserve a declared key", () => {
842
+ const shape = () =>
843
+ Object.fromEntries([
844
+ ["__proto__", z.string()],
845
+ ["value", z.string()],
846
+ ]) as Record<string, any>;
847
+ const protoMask = Object.fromEntries([["__proto__", true]]);
848
+ const valueMask = { value: true } as const;
849
+ const shapes = [
850
+ z.object(shape()).omit(valueMask).shape,
851
+ z.object(shape()).partial(protoMask as any).shape,
852
+ z.object(shape()).required(protoMask as any).shape,
853
+ ];
854
+
855
+ for (const next of shapes) {
856
+ expect(Object.getPrototypeOf(next)).toBe(Object.prototype);
857
+ expect(Object.prototype.hasOwnProperty.call(next, "__proto__")).toBe(true);
858
+ }
859
+ });
860
+
861
+ test("Object.prototype is untouched", () => {
862
+ z.object(makeShape()).parse(protoInput());
863
+ expect(({} as any).isAdmin).toBeUndefined();
864
+ });
865
+ });
866
+
867
+ test("object parsing still reads ordinary inherited properties", () => {
868
+ const input = Object.create({ value: "inherited" });
869
+ const schema = z.object({ value: z.string() });
870
+
871
+ expect(schema.parse(input)).toEqual({ value: "inherited" });
872
+ expect(schema.parse(input, { jitless: true } as any)).toEqual({ value: "inherited" });
873
+ });
874
+
875
+ describe("symbol keys in object shape", () => {
876
+ const SYM = Symbol("sym");
877
+ const OTHER = Symbol("other");
878
+
879
+ test("parses and validates a declared symbol key", () => {
880
+ const schema = z.object({ name: z.string(), [SYM]: z.number() });
881
+ expectTypeOf<z.infer<typeof schema>>().toEqualTypeOf<{ name: string; [SYM]: number }>();
882
+
883
+ for (const params of [undefined, { jitless: true } as any]) {
884
+ expect(schema.parse({ name: "alice", [SYM]: 42 }, params)).toEqual({ name: "alice", [SYM]: 42 });
885
+ expect(schema.safeParse({ name: "alice", [SYM]: "nope" }, params).success).toBe(false);
886
+ expect(schema.safeParse({ name: "alice" }, params).success).toBe(false);
887
+ }
888
+ });
889
+
890
+ test("reports an invalid symbol value at the symbol's own path", () => {
891
+ const schema = z.object({ [SYM]: z.number() });
892
+ const result = schema.safeParse({ [SYM]: "nope" });
893
+ expect(result.error!.issues[0].path).toEqual([SYM]);
894
+ });
895
+
896
+ test("honours optionality and defaults on a symbol key", () => {
897
+ expect(z.object({ [SYM]: z.number().optional() }).parse({})).toEqual({});
898
+ expect(z.object({ [SYM]: z.number().default(7) }).parse({})).toEqual({ [SYM]: 7 });
899
+ });
900
+
901
+ test("a declared symbol key survives strict and loose", () => {
902
+ expect(z.strictObject({ [SYM]: z.number() }).safeParse({ [SYM]: 1 }).success).toBe(true);
903
+ expect(z.strictObject({ [SYM]: z.number() }).safeParse({ [SYM]: 1, extra: 1 }).success).toBe(false);
904
+ expect(z.looseObject({ [SYM]: z.number() }).parse({ [SYM]: 1, extra: "e" })).toEqual({ [SYM]: 1, extra: "e" });
905
+ });
906
+
907
+ // Deliberate: hunting each input for undeclared symbols costs a `getOwnPropertySymbols` call on every parse of every strict/loose/catchall object, which measured +16-44% on `z.strictObject`. Declared keys are static and cost nothing, so only they are supported.
908
+ test("an undeclared symbol key is ignored, not passed through or flagged", () => {
909
+ expect(z.looseObject({ name: z.string() }).parse({ name: "a", [OTHER]: "x" })).toEqual({ name: "a" });
910
+ expect(z.strictObject({ name: z.string() }).safeParse({ name: "a", [OTHER]: "x" }).success).toBe(true);
911
+ });
912
+
913
+ test("builder methods reach symbol keys", () => {
914
+ const base = z.object({ a: z.string(), [SYM]: z.number() });
915
+ expect(base.partial().safeParse({ a: "x" }).success).toBe(true);
916
+ expect(base.partial().required().safeParse({ a: "x" }).success).toBe(false);
917
+ expect(Reflect.ownKeys(base.pick({ [SYM]: true }).shape)).toEqual([SYM]);
918
+ expect(Reflect.ownKeys(base.omit({ [SYM]: true }).shape)).toEqual(["a"]);
919
+ expect(Reflect.ownKeys(z.object({ a: z.string() }).extend({ [SYM]: z.number() }).shape)).toEqual(["a", SYM]);
920
+ });
921
+
922
+ test("a cycle through a symbol key is detected like a string-keyed one", () => {
923
+ const A: any = z.object({
924
+ name: z.string(),
925
+ get [SYM]() {
926
+ return A.optional();
927
+ },
928
+ });
929
+ const input: any = { name: "root" };
930
+ input[SYM] = input;
931
+ expect(A.safeParse(input).success).toBe(true);
932
+ expect(() => z.compile(A, { strict: true })).toThrow(/does not support/);
933
+ });
934
+
935
+ test("extend's refinement-overlap guard sees symbol keys", () => {
936
+ const refined = z.object({ a: z.string(), [SYM]: z.number() }).refine(() => true);
937
+ expect(() => refined.extend({ a: z.string() })).toThrow(/Cannot overwrite keys/);
938
+ expect(() => refined.extend({ [SYM]: z.string() })).toThrow(/Cannot overwrite keys/);
939
+ });
940
+
941
+ test("a symbol key is unrepresentable in JSON Schema", () => {
942
+ const schema = z.object({ a: z.string(), [SYM]: z.number() });
943
+ expect(() => z.toJSONSchema(schema)).toThrow(/Symbol keys cannot be represented/);
944
+ expect(z.toJSONSchema(schema, { unrepresentable: "any" })).toMatchObject({ properties: { a: { type: "string" } } });
945
+ });
946
+
947
+ test("rejects a non-schema value under a symbol key", () => {
948
+ expect(() => z.object({ [SYM]: 123 as any }).parse({})).toThrow(/Invalid element at key "Symbol\(sym\)"/);
716
949
  });
717
950
  });
@@ -0,0 +1,234 @@
1
+ import { expect, expectTypeOf, test } from "vitest";
2
+ import { z } from "zod/v4";
3
+
4
+ /* ------------------------------------------------------------------ *
5
+ * TYPE-LEVEL — the dangerous half. Defaults must stay OPTIONAL in
6
+ * z.input and REQUIRED in z.output, exactly as before the ladder.
7
+ * ------------------------------------------------------------------ */
8
+ test("ladder: z.input / z.output unchanged by the extra rung", () => {
9
+ const objDefault = z.object({ a: z.string().default("D"), b: z.number() });
10
+ expectTypeOf<z.input<typeof objDefault>>().toEqualTypeOf<{ a?: string | undefined; b: number }>();
11
+ expectTypeOf<z.output<typeof objDefault>>().toEqualTypeOf<{ a: string; b: number }>();
12
+
13
+ const objPrefault = z.object({ a: z.string().prefault("P"), b: z.number() });
14
+ expectTypeOf<z.input<typeof objPrefault>>().toEqualTypeOf<{ a?: string | undefined; b: number }>();
15
+ expectTypeOf<z.output<typeof objPrefault>>().toEqualTypeOf<{ a: string; b: number }>();
16
+
17
+ const objOptional = z.object({ a: z.string().optional() });
18
+ expectTypeOf<z.input<typeof objOptional>>().toEqualTypeOf<{ a?: string | undefined }>();
19
+
20
+ const objTransform = z.object({
21
+ a: z
22
+ .string()
23
+ .default("")
24
+ .transform((v) => v.length),
25
+ });
26
+ expectTypeOf<z.input<typeof objTransform>>().toEqualTypeOf<{ a?: string | undefined }>();
27
+ expectTypeOf<z.output<typeof objTransform>>().toEqualTypeOf<{ a: number }>();
28
+
29
+ const standalone = z.string().default("D");
30
+ expectTypeOf<z.input<typeof standalone>>().toEqualTypeOf<string | undefined>();
31
+ expectTypeOf<z.output<typeof standalone>>().toEqualTypeOf<string>();
32
+
33
+ // a trailing defaulted tuple slot stays optional in the input tuple
34
+ const tup = z.tuple([z.string(), z.number().default(1)]);
35
+ expectTypeOf<z.input<typeof tup>>().toEqualTypeOf<[string, (number | undefined)?]>();
36
+
37
+ const partialed = objDefault.partial();
38
+ expectTypeOf<z.input<typeof partialed>>().toEqualTypeOf<{ a?: string | undefined; b?: number | undefined }>();
39
+ });
40
+
41
+ /* ------------------------------------------------------------------ *
42
+ * RUNTIME
43
+ * ------------------------------------------------------------------ */
44
+ test("ladder: the #6321 regression is fixed", () => {
45
+ const arr = z
46
+ .string()
47
+ .default("")
48
+ .transform((v) => (v ? v.split(",") : []));
49
+ expect(z.object({ a: arr }).partial().parse({})).toEqual({ a: [] });
50
+ expect(z.object({ a: arr }).partial().parse({ a: undefined })).toEqual({ a: [] });
51
+ expect(z.object({ a: arr }).partial().parse({ a: "x,y" })).toEqual({ a: ["x", "y"] });
52
+ expect(arr.optional().parse(undefined)).toEqual([]);
53
+ expect(
54
+ z
55
+ .string()
56
+ .prefault("hi")
57
+ .transform((v) => v.length)
58
+ .optional()
59
+ .parse(undefined)
60
+ ).toBe(2);
61
+ });
62
+
63
+ test("ladder: key-level admissibility across every rung", () => {
64
+ expect(z.object({ a: z.string().default("D") }).parse({})).toEqual({ a: "D" });
65
+ expect(z.object({ a: z.string().prefault("P") }).parse({})).toEqual({ a: "P" });
66
+ expect(z.object({ a: z.string().optional() }).parse({})).toEqual({});
67
+ expect(z.object({ a: z.transform(() => "T") }).parse({})).toEqual({ a: "T" });
68
+ expect(z.object({ a: z.string().catch("C") }).parse({})).toEqual({ a: "C" });
69
+ expect(z.object({ a: z.string() }).safeParse({}).success).toBe(false);
70
+ });
71
+
72
+ test("ladder: exactOptional keeps its distinct meaning", () => {
73
+ expect(z.object({ a: z.string().exactOptional() }).parse({})).toEqual({});
74
+ expect(z.object({ a: z.string().exactOptional() }).safeParse({ a: undefined }).success).toBe(false);
75
+ });
76
+
77
+ // An absent key never materializes a value from a schema that only claims the middle rung, however that schema answers `undefined`. The top rung still substitutes, and an explicitly present `undefined` still runs the inner.
78
+ test.each([true, false])("ladder: an absent key stays absent on the middle rung (jitless=%s)", (jitless) => {
79
+ const opts = { jitless };
80
+ expect(z.object({ a: z.coerce.string().exactOptional() }).parse({}, opts)).toStrictEqual({});
81
+ expect(z.object({ a: z.string().catch("C").exactOptional() }).parse({}, opts)).toStrictEqual({});
82
+ expect(z.object({ a: z.preprocess((v) => v ?? "X", z.string()).exactOptional() }).parse({}, opts)).toStrictEqual({});
83
+ expect(z.object({ a: z.union([z.coerce.string(), z.string().optional()]) }).parse({}, opts)).toStrictEqual({});
84
+
85
+ expect(z.object({ a: z.string().default("D").exactOptional() }).parse({}, opts)).toStrictEqual({ a: "D" });
86
+ expect(z.object({ a: z.string().prefault("P").exactOptional() }).parse({}, opts)).toStrictEqual({ a: "P" });
87
+ expect(z.object({ a: z.coerce.string().exactOptional() }).parse({ a: undefined }, opts)).toStrictEqual({
88
+ a: "undefined",
89
+ });
90
+ expect(z.object({ a: z.coerce.string() }).parse({ a: undefined }, opts)).toStrictEqual({ a: "undefined" });
91
+ });
92
+
93
+ test("ladder: an absent tuple slot on the middle rung truncates the tail", () => {
94
+ expect(z.tuple([z.string(), z.coerce.string().exactOptional()]).parse(["x"])).toStrictEqual(["x"]);
95
+ expect(z.tuple([z.string(), z.string().catch("C").exactOptional()]).parse(["x"])).toStrictEqual(["x"]);
96
+ expect(z.tuple([z.string(), z.string().default("D").exactOptional()]).parse(["x"])).toStrictEqual(["x", "D"]);
97
+ });
98
+
99
+ // z.compile() assembles its own output, so the gate has to be mirrored there or compile mode silently keeps the invented value.
100
+ test("ladder: compile mode agrees with the interpreted and JIT paths on absent middle-rung slots", () => {
101
+ const objects = [
102
+ [z.object({ a: z.coerce.string().exactOptional() }), {}],
103
+ [z.object({ a: z.string().catch("C").exactOptional() }), {}],
104
+ [z.object({ a: z.string().default("D").exactOptional() }), { a: "D" }],
105
+ [z.object({ a: z.string().catch("C") }), { a: "C" }],
106
+ ] as const;
107
+ for (const [schema, expected] of objects) {
108
+ expect(z.compile(schema).parse({})).toStrictEqual(expected);
109
+ expect(schema.parse({}, { jitless: true })).toStrictEqual(expected);
110
+ expect(schema.parse({})).toStrictEqual(expected);
111
+ }
112
+
113
+ const tuples = [
114
+ [z.tuple([z.string(), z.coerce.string().exactOptional()]), ["x"]],
115
+ [z.tuple([z.string(), z.string().default("D").exactOptional()]), ["x", "D"]],
116
+ ] as const;
117
+ for (const [schema, expected] of tuples) {
118
+ expect(z.compile(schema).parse(["x"])).toStrictEqual(expected);
119
+ expect(schema.parse(["x"], { jitless: true })).toStrictEqual(expected);
120
+ }
121
+ });
122
+
123
+ test("ladder: tuple minimum length respects every rung", () => {
124
+ expect(z.tuple([z.string().default("D")]).parse([])).toEqual(["D"]);
125
+ expect(z.tuple([z.string().prefault("P")]).parse([])).toEqual(["P"]);
126
+ expect(z.tuple([z.string().optional()]).parse([])).toEqual([]);
127
+ expect(z.tuple([z.string()]).safeParse([]).success).toBe(false);
128
+ expect(z.tuple([z.string(), z.number().default(1)]).parse(["x"])).toEqual(["x", 1]);
129
+ });
130
+
131
+ test("ladder: the #5941 / #5939 clobber invariants still hold", () => {
132
+ expect(
133
+ z
134
+ .preprocess((v) => v ?? "X", z.string())
135
+ .optional()
136
+ .parse(undefined)
137
+ ).toBeUndefined();
138
+ expect(z.string().catch("X").optional().parse(undefined)).toBeUndefined();
139
+ expect(
140
+ z
141
+ .string()
142
+ .catch("X")
143
+ .transform((s) => `${s}!`)
144
+ .optional()
145
+ .parse(undefined)
146
+ ).toBeUndefined();
147
+ expect(
148
+ z
149
+ .transform(() => "T")
150
+ .optional()
151
+ .parse(undefined)
152
+ ).toBeUndefined();
153
+ expect(
154
+ z
155
+ .union([z.preprocess((v) => v ?? "X", z.string()), z.number()])
156
+ .optional()
157
+ .parse(undefined)
158
+ ).toBeUndefined();
159
+ expect(z.object({ a: z.preprocess((v) => v ?? "X", z.string()) }).parse({})).toEqual({ a: "X" });
160
+ });
161
+
162
+ test("ladder: the top rung survives every wrapper order", () => {
163
+ expect(z.string().default("D").optional().parse(undefined)).toBe("D");
164
+ expect(z.string().default("D").optional().optional().parse(undefined)).toBe("D");
165
+ expect(z.string().default("D").nullable().optional().parse(undefined)).toBe("D");
166
+ expect(z.string().default("D").readonly().optional().parse(undefined)).toBe("D");
167
+ expect(z.string().default("D").catch("C").optional().parse(undefined)).toBe("D");
168
+ expect(z.string().default("D").pipe(z.string()).optional().parse(undefined)).toBe("D");
169
+ expect(
170
+ z
171
+ .union([z.string().default("D"), z.number()])
172
+ .optional()
173
+ .parse(undefined)
174
+ ).toBe("D");
175
+ expect(
176
+ z
177
+ .lazy(() => z.string().default("D"))
178
+ .optional()
179
+ .parse(undefined)
180
+ ).toBe("D");
181
+ });
182
+
183
+ test("ladder: record and catchall paths that read optin", () => {
184
+ expect(z.record(z.string(), z.string().default("D")).parse({ k: undefined })).toEqual({ k: "D" });
185
+ expect(z.object({}).catchall(z.string().default("D")).parse({ x: undefined })).toEqual({ x: "D" });
186
+ });
187
+
188
+ test("ladder: async parity", async () => {
189
+ const a = z
190
+ .string()
191
+ .default("")
192
+ .transform(async (v) => (v ? v.split(",") : []));
193
+ expect((await a.optional().safeParseAsync(undefined)).data).toEqual([]);
194
+ expect((await z.object({ a }).partial().safeParseAsync({})).data).toEqual({ a: [] });
195
+ expect(
196
+ (
197
+ await z
198
+ .preprocess(async (v) => v ?? "X", z.string())
199
+ .optional()
200
+ .safeParseAsync(undefined)
201
+ ).data
202
+ ).toBeUndefined();
203
+ });
204
+
205
+ test("ladder: the rung values themselves", () => {
206
+ expect(z.string()._zod.optin).toBeUndefined();
207
+ expect(z.string().optional()._zod.optin).toBe("optional");
208
+ expect(z.transform(() => 1)._zod.optin).toBe("optional");
209
+ expect(z.string().catch("C")._zod.optin).toBe("optional");
210
+ expect(z.string().default("D")._zod.optin).toBe("defaulted");
211
+ expect(z.string().prefault("P")._zod.optin).toBe("defaulted");
212
+ expect(
213
+ z
214
+ .string()
215
+ .default("D")
216
+ .transform((v) => v)._zod.optin
217
+ ).toBe("defaulted");
218
+ expect(z.string().default("D").optional()._zod.optin).toBe("defaulted");
219
+ expect(z.union([z.string().default("D"), z.number()])._zod.optin).toBe("defaulted");
220
+ expect(z.union([z.string().optional(), z.number()])._zod.optin).toBe("optional");
221
+ });
222
+
223
+ test("exactOptional overrides the values and pattern optional installs", () => {
224
+ expect(z.exactOptional(z.enum(["a", "b"]))._zod.values).toEqual(new Set(["a", "b"]));
225
+ expect(z.exactOptional(z.string().regex(/^abc$/))._zod.pattern).toEqual(/^abc$/);
226
+ expect(z.templateLiteral(["a", z.exactOptional(z.literal("b"))]).safeParse("a").success).toEqual(false);
227
+ });
228
+
229
+ // The override is installed once, on a prototype every instance of the type shares, so it has to hold for instances built after the first.
230
+ test("exactOptional's override holds for later instances", () => {
231
+ z.exactOptional(z.enum(["a", "b"]));
232
+ expect(z.exactOptional(z.enum(["c", "d"]))._zod.values).toEqual(new Set(["c", "d"]));
233
+ expect(z.exactOptional(z.string().regex(/^xyz$/))._zod.pattern).toEqual(/^xyz$/);
234
+ });
@@ -27,7 +27,7 @@ test("optionality", () => {
27
27
  expect(b._zod.optout).toEqual("optional");
28
28
 
29
29
  const c = z.string().default("asdf");
30
- expect(c._zod.optin).toEqual("optional");
30
+ expect(c._zod.optin).toEqual("defaulted");
31
31
  expect(c._zod.optout).toEqual(undefined);
32
32
 
33
33
  const d = z.string().optional().nullable();
@@ -35,27 +35,27 @@ test("optionality", () => {
35
35
  expect(d._zod.optout).toEqual("optional");
36
36
 
37
37
  const e = z.string().default("asdf").nullable();
38
- expect(e._zod.optin).toEqual("optional");
38
+ expect(e._zod.optin).toEqual("defaulted");
39
39
  expect(e._zod.optout).toEqual(undefined);
40
40
 
41
41
  // z.undefined should NOT be optional
42
42
  const f = z.undefined();
43
43
  expect(f._zod.optin).toEqual(undefined);
44
44
  expect(f._zod.optout).toEqual(undefined);
45
- expectTypeOf<typeof f._zod.optin>().toEqualTypeOf<"optional" | undefined>();
45
+ expectTypeOf<typeof f._zod.optin>().toEqualTypeOf<"optional" | "defaulted" | undefined>();
46
46
  expectTypeOf<typeof f._zod.optout>().toEqualTypeOf<"optional" | undefined>();
47
47
 
48
48
  // z.union should be optional if any of the types are optional
49
49
  const g = z.union([z.string(), z.undefined()]);
50
50
  expect(g._zod.optin).toEqual(undefined);
51
51
  expect(g._zod.optout).toEqual(undefined);
52
- expectTypeOf<typeof g._zod.optin>().toEqualTypeOf<"optional" | undefined>();
52
+ expectTypeOf<typeof g._zod.optin>().toEqualTypeOf<"optional" | "defaulted" | undefined>();
53
53
  expectTypeOf<typeof g._zod.optout>().toEqualTypeOf<"optional" | undefined>();
54
54
 
55
55
  const h = z.union([z.string(), z.optional(z.string())]);
56
56
  expect(h._zod.optin).toEqual("optional");
57
57
  expect(h._zod.optout).toEqual("optional");
58
- expectTypeOf<typeof h._zod.optin>().toEqualTypeOf<"optional">();
58
+ expectTypeOf<typeof h._zod.optin>().toEqualTypeOf<"optional" | "defaulted">();
59
59
  expectTypeOf<typeof h._zod.optout>().toEqualTypeOf<"optional">();
60
60
  });
61
61
 
@@ -64,7 +64,7 @@ test("pipe optionality", () => {
64
64
  const a = z.string().optional().pipe(z.string());
65
65
  expect(a._zod.optin).toEqual("optional");
66
66
  expect(a._zod.optout).toEqual(undefined);
67
- expectTypeOf<typeof a._zod.optin>().toEqualTypeOf<"optional">();
67
+ expectTypeOf<typeof a._zod.optin>().toEqualTypeOf<"optional" | "defaulted">();
68
68
  expectTypeOf<typeof a._zod.optout>().toEqualTypeOf<"optional" | undefined>();
69
69
 
70
70
  const b = z
@@ -73,11 +73,11 @@ test("pipe optionality", () => {
73
73
  .pipe(z.string().optional());
74
74
  expect(b._zod.optin).toEqual(undefined);
75
75
  expect(b._zod.optout).toEqual("optional");
76
- expectTypeOf<typeof b._zod.optin>().toEqualTypeOf<"optional" | undefined>();
76
+ expectTypeOf<typeof b._zod.optin>().toEqualTypeOf<"optional" | "defaulted" | undefined>();
77
77
  expectTypeOf<typeof b._zod.optout>().toEqualTypeOf<"optional">();
78
78
 
79
79
  const c = z.string().default("asdf").pipe(z.string());
80
- expect(c._zod.optin).toEqual("optional");
80
+ expect(c._zod.optin).toEqual("defaulted");
81
81
  expect(c._zod.optout).toEqual(undefined);
82
82
 
83
83
  const d = z
@@ -202,7 +202,7 @@ test("exactOptional optionality", () => {
202
202
  const a = z.string().exactOptional();
203
203
  expect(a._zod.optin).toEqual("optional");
204
204
  expect(a._zod.optout).toEqual("optional");
205
- expectTypeOf<typeof a._zod.optin>().toEqualTypeOf<"optional">();
205
+ expectTypeOf<typeof a._zod.optin>().toEqualTypeOf<"optional" | "defaulted">();
206
206
  expectTypeOf<typeof a._zod.optout>().toEqualTypeOf<"optional">();
207
207
  });
208
208
 
@@ -268,10 +268,7 @@ test("exactOptional vs optional comparison", () => {
268
268
  expect(exactOptionalSchema.safeParse({ a: undefined }).success).toEqual(false);
269
269
  });
270
270
 
271
- // Defensive inference coverage: every schema that propagates `optout` participates
272
- // in object-key optionality inference. If anyone ever changes the set of values that
273
- // `optout` can take (or how OptionalOutSchema matches them), these assertions must
274
- // continue to hold or downstream `z.infer<typeof obj>` types silently flip required keys.
271
+ // Defensive inference coverage: every schema that propagates `optout` participates in object-key optionality inference. If anyone ever changes the set of values that `optout` can take (or how OptionalOutSchema matches them), these assertions must continue to hold or downstream `z.infer<typeof obj>` types silently flip required keys.
275
272
  test("object key optionality through optout propagation", () => {
276
273
  const direct = z.object({ k: z.string().optional() });
277
274
  expectTypeOf<z.infer<typeof direct>>().toEqualTypeOf<{ k?: string | undefined }>();
@@ -317,9 +314,7 @@ test("object key optionality through optout propagation", () => {
317
314
  }>();
318
315
  });
319
316
 
320
- // Defensive: tuple optional-tail inference also reads optout. The PR that introduced
321
- // `"includeUndefined"` had to update TupleOutputTypeWithOptionals; pin the result so
322
- // any future flag change has to keep this contract.
317
+ // Defensive: tuple optional-tail inference also reads optout. The PR that introduced `"includeUndefined"` had to update TupleOutputTypeWithOptionals; pin the result so any future flag change has to keep this contract.
323
318
  test("tuple tail optionality through optout propagation", () => {
324
319
  const trailingOptional = z.tuple([z.string(), z.number().optional()]);
325
320
  expectTypeOf<z.output<typeof trailingOptional>>().toEqualTypeOf<[string, (number | undefined)?]>();
@@ -331,3 +326,41 @@ test("tuple tail optionality through optout propagation", () => {
331
326
  const interiorOptional = z.tuple([z.string(), z.number().optional(), z.string()]);
332
327
  expectTypeOf<z.output<typeof interiorOptional>>().toEqualTypeOf<[string, number | undefined, string]>();
333
328
  });
329
+
330
+ // An absent optional key whose check fails has its issue swallowed; the value the check wrote must go with it, on the JIT fastpass as well as the interpreted path.
331
+ test("swallowed issue on an absent optional key drops its value", async () => {
332
+ const schema = z.object({
333
+ a: z
334
+ .string()
335
+ .optional()
336
+ .superRefine((_v, ctx) => {
337
+ ctx.addIssue({ code: "custom", message: "bad" });
338
+ ctx.value = "leaked";
339
+ }),
340
+ });
341
+
342
+ for (const result of [
343
+ schema.safeParse({}),
344
+ schema.safeParse({}, { jitless: true }),
345
+ await schema.safeParseAsync({}),
346
+ ]) {
347
+ expect(result.success).toEqual(true);
348
+ expect("a" in result.data!).toEqual(false);
349
+ }
350
+
351
+ // A present key keeps both the issue and its value.
352
+ expect(schema.safeParse({ a: "x" }).success).toEqual(false);
353
+ expect(schema.safeParse({ a: "x" }, { jitless: true }).success).toEqual(false);
354
+ });
355
+
356
+ test("optional does not swallow an issue it did not cause", () => {
357
+ // A pipe hands its `out` schema the caller's issues array so an unrecognized key can survive to an enclosing intersection. A defaulted inner substituting for absence must not read that as its own failing and drop it.
358
+ const result = z
359
+ .strictObject({ a: z.string() })
360
+ .transform((): number | undefined => undefined)
361
+ .pipe(z.number().default(5).optional())
362
+ .safeParse({ a: "x", extra: 1 });
363
+
364
+ expect(result.success).toBe(false);
365
+ expect(result.error!.issues.map((i) => i.code)).toEqual(["unrecognized_keys"]);
366
+ });