@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
@@ -54,6 +54,33 @@ test("number with constraints", () => {
54
54
  expect(() => schema.parse(47)).toThrow(); // not multiple of 5
55
55
  });
56
56
 
57
+ test("draft-04 boolean exclusive bounds do not emit a redundant inclusive bound", () => {
58
+ const schema = fromJSONSchema({
59
+ type: "number",
60
+ minimum: 5,
61
+ maximum: 10,
62
+ exclusiveMinimum: true,
63
+ exclusiveMaximum: true,
64
+ });
65
+ // exclusive on both ends: boundaries rejected, interior accepted
66
+ expect(() => schema.parse(5)).toThrow();
67
+ expect(() => schema.parse(10)).toThrow();
68
+ expect(schema.parse(7)).toBe(7);
69
+ // the dominated inclusive bound would otherwise report a second, weaker issue alongside the exclusive one
70
+ expect(schema.safeParse(4).error!.issues).toHaveLength(1);
71
+ expect(schema.safeParse(11).error!.issues).toHaveLength(1);
72
+ // the inclusive .min()/.max() must be skipped so only the exclusive checks remain
73
+ const checks = (schema as any)._zod.def.checks.map((c: any) => [
74
+ c._zod.def.check,
75
+ c._zod.def.value,
76
+ c._zod.def.inclusive,
77
+ ]);
78
+ expect(checks).toEqual([
79
+ ["greater_than", 5, false],
80
+ ["less_than", 10, false],
81
+ ]);
82
+ });
83
+
57
84
  test("integer schema", () => {
58
85
  const schema = fromJSONSchema({ type: "integer" });
59
86
  expect(schema.parse(42)).toBe(42);
@@ -127,11 +154,76 @@ test("tuple with prefixItems (draft-2020-12)", () => {
127
154
  type: "array",
128
155
  prefixItems: [{ type: "string" }, { type: "number" }],
129
156
  });
157
+ expect(schema.parse([])).toEqual([]);
158
+ expect(schema.parse(["hello"])).toEqual(["hello"]);
130
159
  expect(schema.parse(["hello", 42])).toEqual(["hello", 42]);
131
- expect(() => schema.parse(["hello"])).toThrow();
160
+ // no `items`, so the tail is unconstrained
161
+ expect(schema.parse(["hello", 42, "extra"])).toEqual(["hello", 42, "extra"]);
162
+ expect(() => schema.parse([1])).toThrow();
132
163
  expect(() => schema.parse(["hello", "world"])).toThrow();
133
164
  });
134
165
 
166
+ test("tuple with prefixItems and minItems (draft-2020-12)", () => {
167
+ const partialItems = fromJSONSchema({
168
+ $schema: "https://json-schema.org/draft/2020-12/schema",
169
+ type: "array",
170
+ prefixItems: [{ type: "string" }, { type: "number" }],
171
+ minItems: 1,
172
+ });
173
+ expect(() => partialItems.parse([])).toThrow();
174
+ expect(partialItems.parse(["hello"])).toEqual(["hello"]);
175
+
176
+ const allRequired = fromJSONSchema({
177
+ $schema: "https://json-schema.org/draft/2020-12/schema",
178
+ type: "array",
179
+ prefixItems: [{ type: "string" }, { type: "number" }],
180
+ minItems: 2,
181
+ });
182
+ expect(() => allRequired.parse(["hello"])).toThrow();
183
+ expect(allRequired.parse(["hello", 42])).toEqual(["hello", 42]);
184
+ });
185
+
186
+ test("tuple with prefixItems allows extra items by default (draft-2020-12)", () => {
187
+ const schema = fromJSONSchema({
188
+ $schema: "https://json-schema.org/draft/2020-12/schema",
189
+ type: "array",
190
+ prefixItems: [{ type: "string" }],
191
+ });
192
+ expect(schema.parse(["hello", 42, true])).toEqual(["hello", 42, true]);
193
+ });
194
+
195
+ test("tuple with prefixItems respects items schema (draft-2020-12)", () => {
196
+ const schema = fromJSONSchema({
197
+ $schema: "https://json-schema.org/draft/2020-12/schema",
198
+ type: "array",
199
+ prefixItems: [{ type: "string" }],
200
+ items: { type: "number" },
201
+ });
202
+ expect(schema.parse(["hello", 1, 2])).toEqual(["hello", 1, 2]);
203
+ expect(() => schema.parse(["hello", 1, "extra"])).toThrow();
204
+ });
205
+
206
+ test("tuple with prefixItems and items true allows extra items (draft-2020-12)", () => {
207
+ const schema = fromJSONSchema({
208
+ $schema: "https://json-schema.org/draft/2020-12/schema",
209
+ type: "array",
210
+ prefixItems: [{ type: "string" }, { type: "number" }],
211
+ items: true,
212
+ });
213
+ expect(schema.parse(["hello", 42, "extra", true])).toEqual(["hello", 42, "extra", true]);
214
+ });
215
+
216
+ test("tuple with prefixItems and items false rejects extra items (draft-2020-12)", () => {
217
+ const schema = fromJSONSchema({
218
+ $schema: "https://json-schema.org/draft/2020-12/schema",
219
+ type: "array",
220
+ prefixItems: [{ type: "string" }],
221
+ items: false,
222
+ });
223
+ expect(schema.parse(["hello"])).toEqual(["hello"]);
224
+ expect(() => schema.parse(["hello", 42])).toThrow();
225
+ });
226
+
135
227
  test("tuple with items array (draft-7)", () => {
136
228
  const schema = fromJSONSchema({
137
229
  $schema: "http://json-schema.org/draft-07/schema#",
@@ -139,10 +231,66 @@ test("tuple with items array (draft-7)", () => {
139
231
  items: [{ type: "string" }, { type: "number" }],
140
232
  additionalItems: false,
141
233
  });
234
+ expect(schema.parse([])).toEqual([]);
235
+ expect(schema.parse(["hello"])).toEqual(["hello"]);
142
236
  expect(schema.parse(["hello", 42])).toEqual(["hello", 42]);
237
+ expect(() => schema.parse([1])).toThrow();
238
+ expect(() => schema.parse(["hello", "world"])).toThrow();
143
239
  expect(() => schema.parse(["hello", 42, "extra"])).toThrow();
144
240
  });
145
241
 
242
+ test("tuple with items array and minItems (draft-7)", () => {
243
+ const partialItems = fromJSONSchema({
244
+ $schema: "http://json-schema.org/draft-07/schema#",
245
+ type: "array",
246
+ items: [{ type: "string" }, { type: "number" }],
247
+ additionalItems: false,
248
+ minItems: 1,
249
+ });
250
+ expect(() => partialItems.parse([])).toThrow();
251
+ expect(partialItems.parse(["hello"])).toEqual(["hello"]);
252
+
253
+ const allRequired = fromJSONSchema({
254
+ $schema: "http://json-schema.org/draft-07/schema#",
255
+ type: "array",
256
+ items: [{ type: "string" }, { type: "number" }],
257
+ additionalItems: false,
258
+ minItems: 2,
259
+ });
260
+ expect(() => allRequired.parse(["hello"])).toThrow();
261
+ expect(allRequired.parse(["hello", 42])).toEqual(["hello", 42]);
262
+ });
263
+
264
+ test("tuple with items array allows extra items by default (draft-7)", () => {
265
+ const schema = fromJSONSchema({
266
+ $schema: "http://json-schema.org/draft-07/schema#",
267
+ type: "array",
268
+ items: [{ type: "string" }],
269
+ });
270
+ expect(schema.parse(["hello", 42, true])).toEqual(["hello", 42, true]);
271
+ });
272
+
273
+ test("tuple with items array and additionalItems true allows extra items (draft-7)", () => {
274
+ const schema = fromJSONSchema({
275
+ $schema: "http://json-schema.org/draft-07/schema#",
276
+ type: "array",
277
+ items: [{ type: "string" }, { type: "number" }],
278
+ additionalItems: true,
279
+ });
280
+ expect(schema.parse(["hello", 42, "extra", true])).toEqual(["hello", 42, "extra", true]);
281
+ });
282
+
283
+ test("tuple with items array respects additionalItems schema (draft-7)", () => {
284
+ const schema = fromJSONSchema({
285
+ $schema: "http://json-schema.org/draft-07/schema#",
286
+ type: "array",
287
+ items: [{ type: "string" }],
288
+ additionalItems: { type: "number" },
289
+ });
290
+ expect(schema.parse(["hello", 1, 2])).toEqual(["hello", 1, 2]);
291
+ expect(() => schema.parse(["hello", 1, "extra"])).toThrow();
292
+ });
293
+
146
294
  test("enum schema", () => {
147
295
  const schema = fromJSONSchema({
148
296
  enum: ["red", "green", "blue"],
@@ -299,6 +447,15 @@ test("local $ref resolution", () => {
299
447
  expect(() => schema.parse({})).toThrow();
300
448
  });
301
449
 
450
+ test("local $ref resolution unescapes JSON Pointer tokens", () => {
451
+ // `~1` must be decoded before `~0`, so the id "a~1b" survives as itself and not as "a/b".
452
+ for (const id of ["Shared/User", "My~Model", "a~b/c", "a~1b"]) {
453
+ const inner = z.object({ name: z.string() }).meta({ id });
454
+ const schema = fromJSONSchema(z.toJSONSchema(z.object({ inner })));
455
+ expect(schema.parse({ inner: { name: "John" } })).toEqual({ inner: { name: "John" } });
456
+ }
457
+ });
458
+
302
459
  test("circular $ref with lazy", () => {
303
460
  const schema = fromJSONSchema({
304
461
  $defs: {
@@ -336,10 +493,156 @@ test("patternProperties", () => {
336
493
  expect(result.S_age).toBe("30");
337
494
  });
338
495
 
496
+ test("propertyNames with enum does not require keys", () => {
497
+ const schema = fromJSONSchema({
498
+ type: "object",
499
+ propertyNames: { enum: ["a", "b"] },
500
+ additionalProperties: { type: "string" },
501
+ });
502
+ expect(schema.parse({ a: "x" })).toEqual({ a: "x" });
503
+ expect(schema.parse({ b: "y" })).toEqual({ b: "y" });
504
+ expect(schema.parse({})).toEqual({});
505
+ expect(() => schema.parse({ c: "z" })).toThrow();
506
+ });
507
+
508
+ test("propertyNames with enum alongside properties", () => {
509
+ const schema = fromJSONSchema({
510
+ type: "object",
511
+ properties: { a: { type: "string" } },
512
+ propertyNames: { enum: ["a", "b"] },
513
+ additionalProperties: { type: "string" },
514
+ });
515
+ expect(schema.parse({ a: "x" })).toEqual({ a: "x" });
516
+ expect(schema.parse({})).toEqual({});
517
+ expect(() => schema.parse({ c: "z" })).toThrow();
518
+ expect(() => schema.parse({ a: "x", c: "z" })).toThrow();
519
+ });
520
+
521
+ test("propertyNames with enum still honors required", () => {
522
+ const schema = fromJSONSchema({
523
+ type: "object",
524
+ properties: { a: { type: "string" }, b: { type: "string" } },
525
+ required: ["a"],
526
+ propertyNames: { enum: ["a", "b"] },
527
+ additionalProperties: { type: "string" },
528
+ });
529
+ expect(schema.parse({ a: "x" })).toEqual({ a: "x" });
530
+ expect(schema.parse({ a: "x", b: "y" })).toEqual({ a: "x", b: "y" });
531
+ expect(() => schema.parse({})).toThrow();
532
+ expect(() => schema.parse({ b: "y" })).toThrow();
533
+ });
534
+
535
+ test("propertyNames does not apply additionalProperties to declared properties", () => {
536
+ const schema = fromJSONSchema({
537
+ type: "object",
538
+ properties: { a: { type: "number" } },
539
+ propertyNames: { enum: ["a", "b"] },
540
+ additionalProperties: { type: "string" },
541
+ });
542
+ expect(schema.parse({ a: 1 })).toEqual({ a: 1 });
543
+ expect(schema.parse({ a: 1, b: "x" })).toEqual({ a: 1, b: "x" });
544
+ expect(() => schema.parse({ b: 1 })).toThrow();
545
+ });
546
+
547
+ test("propertyNames alongside additionalProperties: false", () => {
548
+ const schema = fromJSONSchema({
549
+ type: "object",
550
+ properties: { a: { type: "string" } },
551
+ propertyNames: { enum: ["a", "b"] },
552
+ additionalProperties: false,
553
+ });
554
+ expect(schema.parse({ a: "x" })).toEqual({ a: "x" });
555
+ expect(() => schema.parse({ a: "x", b: "y" })).toThrow();
556
+ expect(() => schema.parse({ c: "z" })).toThrow();
557
+ });
558
+
559
+ test("propertyNames alongside patternProperties", () => {
560
+ const schema = fromJSONSchema({
561
+ type: "object",
562
+ patternProperties: { "^S_": { type: "string" } },
563
+ propertyNames: { type: "string", pattern: "^S_" },
564
+ });
565
+ expect(schema.parse({ S_a: "x" })).toEqual({ S_a: "x" });
566
+ expect(() => schema.parse({ S_a: 1 })).toThrow();
567
+ expect(() => schema.parse({ other: "x" })).toThrow();
568
+ });
569
+
570
+ test("propertyNames rejects keys the object parse would drop or synthesize", () => {
571
+ const schema = fromJSONSchema({ type: "object", propertyNames: { enum: ["a"] } });
572
+ // An object parse strips `__proto__`, so the guard has to see the raw input.
573
+ expect(() => schema.parse(JSON.parse('{"__proto__":1}'))).toThrow();
574
+
575
+ // A property `default` adds a key that was never in the instance.
576
+ const withDefault = fromJSONSchema({
577
+ type: "object",
578
+ properties: { AB: { type: "string", default: "x" } },
579
+ propertyNames: { type: "string", pattern: "^[a-z]+$" },
580
+ });
581
+ expect(withDefault.parse({})).toEqual({ AB: "x" });
582
+ });
583
+
584
+ test("propertyNames subschema without a type still constrains keys", () => {
585
+ const schema = fromJSONSchema({
586
+ type: "object",
587
+ propertyNames: { pattern: "^[A-Za-z_][A-Za-z0-9_]*$" },
588
+ });
589
+ expect(schema.parse({ valid_key: "x" })).toEqual({ valid_key: "x" });
590
+ expect(() => schema.parse({ "001 invalid": "x" })).toThrow();
591
+ });
592
+
593
+ test("boolean propertyNames", () => {
594
+ expect(() => fromJSONSchema({ type: "object", propertyNames: false }).parse({ a: 1 })).toThrow();
595
+ expect(fromJSONSchema({ type: "object", propertyNames: false }).parse({})).toEqual({});
596
+ expect(fromJSONSchema({ type: "object", propertyNames: true }).parse({ anything: 1 })).toEqual({ anything: 1 });
597
+ });
598
+
599
+ test("propertyNames metadata is not attached where it is inert", () => {
600
+ // Not an object: nothing enforces it, so it must not be advertised either.
601
+ expect(z.toJSONSchema(fromJSONSchema({ type: "string", propertyNames: { enum: ["a"] } }))).not.toHaveProperty(
602
+ "propertyNames"
603
+ );
604
+
605
+ // A $ref target is shared by every reference to it; metadata must not leak onto it.
606
+ const shared = z.toJSONSchema(
607
+ fromJSONSchema({
608
+ $defs: { N: { type: "object", properties: { v: { type: "string" } } } },
609
+ type: "object",
610
+ properties: { a: { $ref: "#/$defs/N", propertyNames: { enum: ["v"] } }, b: { $ref: "#/$defs/N" } },
611
+ })
612
+ ) as any;
613
+ expect(shared.properties.b).not.toHaveProperty("propertyNames");
614
+ });
615
+
616
+ test("propertyNames survives a toJSONSchema round trip", () => {
617
+ const roundTripped = z.toJSONSchema(
618
+ fromJSONSchema({
619
+ type: "object",
620
+ propertyNames: { enum: ["a", "b"] },
621
+ additionalProperties: { type: "string" },
622
+ })
623
+ ) as Record<string, unknown>;
624
+ expect(roundTripped.propertyNames).toEqual({ enum: ["a", "b"] });
625
+ expect(roundTripped.required).toBeUndefined();
626
+
627
+ // The key guard is a pipe; neither side may swallow the object it wraps.
628
+ for (const io of ["input", "output"] as const) {
629
+ const out = z.toJSONSchema(
630
+ fromJSONSchema({
631
+ type: "object",
632
+ properties: { a: { type: "string" } },
633
+ propertyNames: { enum: ["a", "b"] },
634
+ additionalProperties: { type: "string" },
635
+ }),
636
+ { io }
637
+ ) as Record<string, unknown>;
638
+ expect(out.type).toBe("object");
639
+ expect(out.properties).toEqual({ a: { type: "string" } });
640
+ expect(out.propertyNames).toEqual({ enum: ["a", "b"] });
641
+ }
642
+ });
643
+
339
644
  test("patternProperties with regular properties", () => {
340
- // Note: When patternProperties is combined with properties, the intersection
341
- // validates all keys against the pattern. This test uses a pattern that
342
- // matches the regular property name as well.
645
+ // Note: When patternProperties is combined with properties, the intersection validates all keys against the pattern. This test uses a pattern that matches the regular property name as well.
343
646
  const schema = fromJSONSchema({
344
647
  type: "object",
345
648
  properties: {
@@ -387,13 +690,55 @@ test("multiple overlapping patternProperties", () => {
387
690
  expect(() => schema.parse({ S_N: "ab" })).toThrow(); // too short for ^S_N pattern
388
691
  });
389
692
 
693
+ test("patternProperties with additionalProperties false", () => {
694
+ const schema = fromJSONSchema({
695
+ type: "object",
696
+ patternProperties: {
697
+ "^S_": { type: "string" },
698
+ },
699
+ additionalProperties: false,
700
+ });
701
+ expect(schema.parse({ S_name: "ok" })).toEqual({ S_name: "ok" });
702
+ expect(() => schema.parse({ X_A: false })).toThrow();
703
+ expect(() => schema.parse({ S_name: 1 })).toThrow();
704
+ });
705
+
706
+ test("patternProperties and properties with additionalProperties false", () => {
707
+ const schema = fromJSONSchema({
708
+ type: "object",
709
+ properties: {
710
+ name: { type: "string" },
711
+ },
712
+ patternProperties: {
713
+ "^S_": { type: "string" },
714
+ },
715
+ additionalProperties: false,
716
+ required: ["name"],
717
+ });
718
+ expect(schema.parse({ name: "ok", S_count: "1" })).toEqual({ name: "ok", S_count: "1" });
719
+ expect(() => schema.parse({ name: "ok", S_count: 1 })).toThrow();
720
+ expect(() => schema.parse({ name: "ok", other: "value" })).toThrow();
721
+ });
722
+
723
+ test("multiple patternProperties with additionalProperties false", () => {
724
+ const schema = fromJSONSchema({
725
+ type: "object",
726
+ patternProperties: {
727
+ "^S_": { type: "string" },
728
+ "^N_": { type: "number" },
729
+ },
730
+ additionalProperties: false,
731
+ });
732
+ expect(schema.parse({ S_a: "a", N_b: 1 })).toEqual({ S_a: "a", N_b: 1 });
733
+ expect(() => schema.parse({ S_a: "a", N_b: 1, other: "value" })).toThrow();
734
+ });
735
+
390
736
  test("default value", () => {
391
737
  const schema = fromJSONSchema({
392
738
  type: "string",
393
739
  default: "hello",
394
740
  });
395
- // Default is applied during parsing if value is missing/undefined
396
- // This depends on Zod's default behavior
741
+ // Default is applied during parsing if value is missing/undefined. This depends on Zod's default behavior
397
742
  expect(schema.parse("world")).toBe("world");
398
743
  });
399
744
 
@@ -457,6 +802,53 @@ test("string format - uuid", () => {
457
802
  expect(schema.parse(uuid)).toBe(uuid);
458
803
  });
459
804
 
805
+ test("string format - date-time", () => {
806
+ const schema = fromJSONSchema({
807
+ type: "string",
808
+ format: "date-time",
809
+ });
810
+ expect(schema.safeParse("2026-07-29T14:30:00Z").success).toBe(true);
811
+ expect(schema.safeParse("2026-07-29T16:30:00+02:00").success).toBe(true);
812
+ expect(schema.safeParse("2026-07-29T14:30:00").success).toBe(false);
813
+ expect(schema.safeParse("2026-07-29T16:30:00+0200").success).toBe(false);
814
+
815
+ const zuluOnly = fromJSONSchema({
816
+ type: "string",
817
+ format: "date-time",
818
+ pattern: "Z$",
819
+ });
820
+ expect(zuluOnly.safeParse("2026-07-29T14:30:00Z").success).toBe(true);
821
+ expect(zuluOnly.safeParse("2026-07-29T16:30:00+02:00").success).toBe(false);
822
+ expect(zuluOnly.safeParse("garbageZ").success).toBe(false);
823
+
824
+ const roundTripped = fromJSONSchema(z.toJSONSchema(z.iso.datetime({ offset: true })));
825
+ expect(roundTripped.safeParse("2026-07-29T16:30:00+02:00").success).toBe(true);
826
+ });
827
+
828
+ test("string format - time", () => {
829
+ const schema = fromJSONSchema({
830
+ type: "string",
831
+ format: "time",
832
+ });
833
+ // full-time, so seconds and an offset are both required
834
+ expect(schema.safeParse("14:30:00Z").success).toBe(true);
835
+ expect(schema.safeParse("16:30:00+02:00").success).toBe(true);
836
+ expect(schema.safeParse("16:30:00.123-05:30").success).toBe(true);
837
+ expect(schema.safeParse("14:30:00").success).toBe(false);
838
+ expect(schema.safeParse("14:30Z").success).toBe(false);
839
+ expect(schema.safeParse("16:30:00+0200").success).toBe(false);
840
+ expect(schema.safeParse("16:30:00+24:00").success).toBe(false);
841
+ });
842
+
843
+ test("string format - hostname", () => {
844
+ const schema = fromJSONSchema({
845
+ type: "string",
846
+ format: "hostname",
847
+ });
848
+ expect(schema.parse("example.com")).toBe("example.com");
849
+ expect(() => schema.parse("not a hostname!")).toThrow();
850
+ });
851
+
460
852
  test("exclusiveMinimum and exclusiveMaximum", () => {
461
853
  const schema = fromJSONSchema({
462
854
  type: "number",
@@ -648,8 +1040,7 @@ test("metadata on nested schemas", () => {
648
1040
  // Verify parent schema has its metadata
649
1041
  expect(customRegistry.get(parentSchema)?.title).toBe("User");
650
1042
 
651
- // We can't easily access nested schemas directly, but we can verify
652
- // the registry is being used correctly by checking a separate schema
1043
+ // We can't easily access nested schemas directly, but we can verify the registry is being used correctly by checking a separate schema
653
1044
  const simpleSchema = fromJSONSchema(
654
1045
  {
655
1046
  type: "string",
@@ -673,8 +1064,7 @@ test("no metadata added when no unrecognized keys", () => {
673
1064
  { registry: customRegistry }
674
1065
  );
675
1066
 
676
- // description is handled via .describe(), so it shouldn't be in metadata
677
- // All other keys are recognized, so no metadata should be added
1067
+ // description is handled via .describe(), so it shouldn't be in metadata. All other keys are recognized, so no metadata should be added
678
1068
  expect(customRegistry.get(schema)).toBeUndefined();
679
1069
  });
680
1070
 
@@ -893,3 +1283,28 @@ test("Date default is coerced to its JSON string form", () => {
893
1283
  const schema = fromJSONSchema({ type: "string", default: date as any });
894
1284
  expect(schema.parse(undefined)).toBe(date.toISOString());
895
1285
  });
1286
+
1287
+ // An object literal can't express an own "__proto__" key — `{ __proto__: x }` sets the literal's prototype instead. JSON.parse is both the realistic source of a JSON Schema and the only way to write these cases.
1288
+ test("required __proto__ property is represented in the shape but stripped during parsing", () => {
1289
+ const schema = fromJSONSchema(
1290
+ JSON.parse(`{
1291
+ "type": "object",
1292
+ "properties": { "__proto__": { "type": "string", "const": "admin" }, "role": { "type": "string" } },
1293
+ "required": ["__proto__", "role"]
1294
+ }`)
1295
+ );
1296
+
1297
+ expect(Object.prototype.hasOwnProperty.call((schema as z.ZodObject).shape, "__proto__")).toBe(true);
1298
+ expect(schema.parse({ role: "x" })).toEqual({ role: "x" });
1299
+ expect(schema.parse(JSON.parse(`{ "role": "x", "__proto__": "wrong" }`))).toEqual({ role: "x" });
1300
+ expect(schema.parse(JSON.parse(`{ "role": "x", "__proto__": "admin" }`))).toEqual({ role: "x" });
1301
+ });
1302
+
1303
+ test("__proto__ annotation key reaches the registry", () => {
1304
+ const registry = z.registry<Record<string, unknown>>();
1305
+ const schema = fromJSONSchema(JSON.parse(`{ "type": "string", "__proto__": { "custom": 1 } }`), { registry });
1306
+
1307
+ const meta = registry.get(schema)!;
1308
+ expect(Object.prototype.hasOwnProperty.call(meta, "__proto__")).toBe(true);
1309
+ expect(meta.__proto__).toEqual({ custom: 1 });
1310
+ });
@@ -358,3 +358,34 @@ test("extra parameters with rest", () => {
358
358
  const filteredList = ["apple", "orange", "pear", "banana", "strawberry"].filter(maxLength5);
359
359
  expect(filteredList.length).toEqual(2);
360
360
  });
361
+
362
+ test("implement exposes the function schema at runtime", () => {
363
+ const schema = z.function({ input: [z.string()], output: z.number() });
364
+ const fn = schema.implement((s) => s.length);
365
+
366
+ // Deliberately absent from implement()'s return type: reaching `_zod` takes a cast, so an implemented function never reads as a schema to TypeScript even though it does at runtime.
367
+ type HasZod = "_zod" extends keyof typeof fn ? true : false;
368
+ expectTypeOf<HasZod>().toEqualTypeOf<false>();
369
+
370
+ expect((fn as any)._zod).toBe(schema._zod);
371
+ expect((fn as any)._zod.def.input).toBe(schema._def.input);
372
+ expect((fn as any)._zod.def.output).toBe(schema._def.output);
373
+ expect(Object.keys(fn)).toEqual([]);
374
+ expect(Object.getOwnPropertyDescriptor(fn, "_zod")).toMatchObject({ enumerable: false, writable: false });
375
+ expect(fn("asdf")).toBe(4);
376
+ });
377
+
378
+ test("implementAsync exposes the function schema at runtime", async () => {
379
+ const schema = z.function({ input: [z.string()], output: z.promise(z.number()) });
380
+ const fn = schema.implementAsync(async (s) => s.length);
381
+
382
+ expect((fn as any)._zod).toBe(schema._zod);
383
+ await expect(fn("asdf")).resolves.toBe(4);
384
+ });
385
+
386
+ test("parsing through a function schema exposes it the same way", () => {
387
+ const schema = z.function({ input: [z.string()], output: z.number() });
388
+ const { handler } = z.object({ handler: schema }).parse({ handler: (s: string) => s.length });
389
+
390
+ expect((handler as any)._zod).toBe(schema._zod);
391
+ });
@@ -7,11 +7,7 @@ import * as core from "zod/v4/core";
7
7
  // bundled copies of Zod in a monorepo. This mirrors the existing
8
8
  // `globalRegistry` -> `globalThis.__zod_globalRegistry` treatment.
9
9
  //
10
- // See #5789 for the footgun this fixes: users with both CJS and ESM
11
- // instances of Zod loaded had to call `z.config({ jitless: true })`
12
- // twice — once per instance — because each module-scope `globalConfig`
13
- // was a different object. With this change, one call updates state seen
14
- // by every loaded copy.
10
+ // See #5789 for the footgun this fixes: users with both CJS and ESM instances of Zod loaded had to call `z.config({ jitless: true })` twice — once per instance — because each module-scope `globalConfig` was a different object. With this change, one call updates state seen by every loaded copy.
15
11
 
16
12
  afterEach(() => {
17
13
  // Don't leak config mutations into other test files.
@@ -28,10 +24,7 @@ test("z.config writes are observed via globalThis.__zod_globalConfig", () => {
28
24
  });
29
25
 
30
26
  test("pre-set globalThis.__zod_globalConfig is preserved on import", () => {
31
- // Object identity is preserved across reloads of the module: anyone who
32
- // pre-populates `globalThis.__zod_globalConfig` before Zod loads (e.g.
33
- // an inline script before the bundle) keeps that exact object as the
34
- // source of truth. Mutating it directly is equivalent to z.config().
27
+ // Object identity is preserved across reloads of the module: anyone who pre-populates `globalThis.__zod_globalConfig` before Zod loads (e.g. an inline script before the bundle) keeps that exact object as the source of truth. Mutating it directly is equivalent to z.config().
35
28
  const direct = (globalThis as any).__zod_globalConfig;
36
29
  direct.jitless = true;
37
30
  expect(core.globalConfig.jitless).toBe(true);
@@ -46,8 +46,7 @@ test("hash() API — types and runtime across all alg/enc combinations", async (
46
46
  expect(() => hash(alg, { enc: "base64" }).parse(hex)).toThrow();
47
47
  expect(() => hash(alg, { enc: "base64url" }).parse(base64)).toThrow();
48
48
 
49
- // Encoding-specific failures
50
- // hex: uppercase allowed, wrong length should fail
49
+ // Encoding-specific failures hex: uppercase allowed, wrong length should fail
51
50
  hash(alg, { enc: "hex" }).parse(hex.toUpperCase());
52
51
  expect(() => hash(alg, { enc: "hex" }).parse(hex.slice(0, -1))).toThrow();
53
52