@loomhelm/multi-task-flow 0.2.7 → 0.2.9

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 (1046) hide show
  1. package/README.md +22 -18
  2. package/package.json +3 -13
  3. package/src/build-info.ts +4 -2
  4. package/src/cli/release.ts +4 -40
  5. package/src/cli/service.ts +26 -0
  6. package/src/cli.ts +3 -1
  7. package/src/release-tarball.ts +1 -1
  8. package/src/release.ts +7 -1
  9. package/src/runtime-identity.ts +4 -2
  10. package/src/toolkit.ts +71 -15
  11. package/toolkit/artifact-manifest.json +317 -4224
  12. package/toolkit/package.json +1 -1
  13. package/toolkit/skills/bin/check_source_policy.ts +13 -7
  14. package/toolkit/skills/bin/multi_task_platform_gate.ts +2 -2
  15. package/toolkit/skills/bin/tests/core/package_scripts.test.ts +1 -1
  16. package/toolkit/skills/bin/tests/plan/multi-task-flow.test.ts +3 -3
  17. package/toolkit/skills/catalog.json +0 -1
  18. package/toolkit/skills/docs/vendor/dot-codex/design/multi-task-flow/data-and-scripts.md +84 -28
  19. package/toolkit/skills/docs/vendor/dot-codex/design/multi-task-flow/execution.md +1 -1
  20. package/toolkit/skills/docs/vendor/dot-codex/design/multi-task-flow/plan-revision-and-change-audit.md +1 -1
  21. package/toolkit/skills/docs/vendor/dot-codex/design/multi-task-flow/web-template.md +1 -1
  22. package/toolkit/skills/docs/vendor/dot-codex/specs/a4ge9-stable-preview-runtime/IMPLEMENTATION.md +0 -2
  23. package/toolkit/skills/docs/vendor/dot-codex/specs/a4ge9-stable-preview-runtime/SPEC.md +0 -1
  24. package/toolkit/skills/docs/vendor/dot-codex/specs/dev-plan-standalone-typescript-finalizer/IMPLEMENTATION.md +1 -1
  25. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/IMPLEMENTATION.md +3 -3
  26. package/toolkit/skills/docs/vendor/dot-codex/specs/multi-task-flow/SCHEMA.md +4 -4
  27. package/toolkit/skills/docs/vendor/dot-codex/specs/stable-preview-runtime/IMPLEMENTATION.md +0 -2
  28. package/toolkit/skills/docs/vendor/dot-codex/specs/stable-preview-runtime/SPEC.md +0 -1
  29. package/toolkit/skills/multi-task-flow/SKILL.md +65 -47
  30. package/toolkit/skills/multi-task-flow/dist/app.css +1 -1
  31. package/toolkit/skills/multi-task-flow/dist/app.js +74 -74
  32. package/toolkit/skills/multi-task-flow/dist/index.html +3 -3
  33. package/toolkit/skills/multi-task-flow/lib/atomic-orchestration.ts +26 -3
  34. package/toolkit/skills/multi-task-flow/lib/engine.ts +136 -17
  35. package/toolkit/skills/multi-task-flow/lib/package-source.ts +5 -5
  36. package/toolkit/skills/multi-task-flow/lib/schema.ts +82 -2
  37. package/toolkit/skills/multi-task-flow/lib/service-pages.ts +1 -26
  38. package/toolkit/skills/multi-task-flow/lib/view.ts +125 -11
  39. package/toolkit/skills/multi-task-flow/references/shared-viewer.md +1 -1
  40. package/toolkit/skills/multi-task-flow/scripts/check-client-skills.ts +7 -4
  41. package/toolkit/skills/multi-task-flow/scripts/check-skills-installation.ts +14 -8
  42. package/toolkit/skills/multi-task-flow/scripts/import-client-skills.ts +1 -1
  43. package/toolkit/skills/multi-task-flow/scripts/package-client-skills.ts +28 -157
  44. package/toolkit/skills/multi-task-flow/scripts/preview-source.ts +3 -0
  45. package/toolkit/skills/multi-task-flow/scripts/test-viewer-source.ts +1 -1
  46. package/toolkit/skills/multi-task-flow/tests/atomic-orchestration-schema.test.ts +40 -0
  47. package/toolkit/skills/multi-task-flow/tests/browser/README.md +1 -1
  48. package/toolkit/skills/multi-task-flow/tests/check-skills-installation.test.ts +12 -38
  49. package/toolkit/skills/multi-task-flow/tests/delivery-topology.test.ts +33 -0
  50. package/toolkit/skills/multi-task-flow/tests/engine.test.ts +339 -0
  51. package/toolkit/skills/multi-task-flow/tests/orchestrate.test.ts +3 -5
  52. package/toolkit/skills/multi-task-flow/tests/source-preview.test.ts +29 -0
  53. package/toolkit/skills/multi-task-flow/tests/ui/details-content.test.ts +31 -0
  54. package/toolkit/skills/multi-task-flow/tests/ui/responsive-width-contract.test.ts +25 -1
  55. package/toolkit/skills/multi-task-flow/tests/ui/task-context-menu.test.ts +2 -1
  56. package/toolkit/skills/multi-task-flow/tests/view.test.ts +149 -0
  57. package/toolkit/skills/multi-task-flow/web/app.css +68 -9
  58. package/toolkit/skills/multi-task-flow/web/app.ts +42 -15
  59. package/toolkit/skills/multi-task-flow/web/atomic-graph-view.tsx +2 -2
  60. package/toolkit/skills/multi-task-flow/web/details-content.ts +54 -38
  61. package/toolkit/skills/multi-task-flow/web/graph-view.tsx +1 -1
  62. package/toolkit/skills/multi-task-flow/web/index.html +3 -3
  63. package/toolkit/skills/multi-task-flow/web/model.ts +1 -1
  64. package/toolkit/skills/multi-task-flow/web/timeline.ts +11 -8
  65. package/toolkit/skills/package.json +2 -2
  66. package/toolkit/skills/source-manifest.json +693 -400
  67. package/toolkit/skills/support-manifest.json +1 -0
  68. package/toolkit/skills/multi-task-flow/node_modules/zod/LICENSE +0 -21
  69. package/toolkit/skills/multi-task-flow/node_modules/zod/README.md +0 -218
  70. package/toolkit/skills/multi-task-flow/node_modules/zod/compile.cjs +0 -96
  71. package/toolkit/skills/multi-task-flow/node_modules/zod/compile.d.cts +0 -1
  72. package/toolkit/skills/multi-task-flow/node_modules/zod/compile.d.ts +0 -1
  73. package/toolkit/skills/multi-task-flow/node_modules/zod/compile.js +0 -52
  74. package/toolkit/skills/multi-task-flow/node_modules/zod/index.cjs +0 -52
  75. package/toolkit/skills/multi-task-flow/node_modules/zod/index.d.cts +0 -3
  76. package/toolkit/skills/multi-task-flow/node_modules/zod/index.d.ts +0 -3
  77. package/toolkit/skills/multi-task-flow/node_modules/zod/index.js +0 -7
  78. package/toolkit/skills/multi-task-flow/node_modules/zod/locales/index.cjs +0 -36
  79. package/toolkit/skills/multi-task-flow/node_modules/zod/locales/index.d.cts +0 -1
  80. package/toolkit/skills/multi-task-flow/node_modules/zod/locales/index.d.ts +0 -1
  81. package/toolkit/skills/multi-task-flow/node_modules/zod/locales/index.js +0 -1
  82. package/toolkit/skills/multi-task-flow/node_modules/zod/locales/package.json +0 -7
  83. package/toolkit/skills/multi-task-flow/node_modules/zod/mini/index.cjs +0 -51
  84. package/toolkit/skills/multi-task-flow/node_modules/zod/mini/index.d.cts +0 -3
  85. package/toolkit/skills/multi-task-flow/node_modules/zod/mini/index.d.ts +0 -3
  86. package/toolkit/skills/multi-task-flow/node_modules/zod/mini/index.js +0 -3
  87. package/toolkit/skills/multi-task-flow/node_modules/zod/mini/package.json +0 -7
  88. package/toolkit/skills/multi-task-flow/node_modules/zod/package.json +0 -147
  89. package/toolkit/skills/multi-task-flow/node_modules/zod/src/compile.ts +0 -56
  90. package/toolkit/skills/multi-task-flow/node_modules/zod/src/index.ts +0 -7
  91. package/toolkit/skills/multi-task-flow/node_modules/zod/src/locales/index.ts +0 -1
  92. package/toolkit/skills/multi-task-flow/node_modules/zod/src/mini/index.ts +0 -3
  93. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/ZodError.ts +0 -340
  94. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/benchmarks/datetime.ts +0 -58
  95. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +0 -80
  96. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/benchmarks/index.ts +0 -59
  97. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/benchmarks/ipv4.ts +0 -57
  98. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/benchmarks/object.ts +0 -69
  99. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/benchmarks/primitives.ts +0 -162
  100. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/benchmarks/realworld.ts +0 -63
  101. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/benchmarks/string.ts +0 -55
  102. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/benchmarks/union.ts +0 -80
  103. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/errors.ts +0 -13
  104. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/external.ts +0 -6
  105. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/helpers/enumUtil.ts +0 -17
  106. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/helpers/errorUtil.ts +0 -8
  107. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/helpers/parseUtil.ts +0 -176
  108. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/helpers/partialUtil.ts +0 -34
  109. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/helpers/typeAliases.ts +0 -2
  110. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/helpers/util.ts +0 -224
  111. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/index.ts +0 -4
  112. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/locales/en.ts +0 -124
  113. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/standard-schema.ts +0 -113
  114. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/Mocker.ts +0 -54
  115. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/all-errors.test.ts +0 -157
  116. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/anyunknown.test.ts +0 -28
  117. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/array.test.ts +0 -71
  118. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/async-parsing.test.ts +0 -388
  119. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/async-refinements.test.ts +0 -46
  120. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/base.test.ts +0 -29
  121. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/bigint.test.ts +0 -55
  122. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/branded.test.ts +0 -53
  123. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/catch.test.ts +0 -220
  124. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/coerce.test.ts +0 -133
  125. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/complex.test.ts +0 -70
  126. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/custom.test.ts +0 -31
  127. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/date.test.ts +0 -32
  128. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/deepmasking.test.ts +0 -186
  129. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/default.test.ts +0 -112
  130. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/description.test.ts +0 -33
  131. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +0 -315
  132. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/enum.test.ts +0 -80
  133. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/error.test.ts +0 -586
  134. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/firstparty.test.ts +0 -87
  135. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +0 -21
  136. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/function.test.ts +0 -261
  137. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/generics.test.ts +0 -48
  138. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/instanceof.test.ts +0 -37
  139. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/intersection.test.ts +0 -128
  140. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/language-server.source.ts +0 -76
  141. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/language-server.test.ts +0 -206
  142. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/literal.test.ts +0 -36
  143. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/map.test.ts +0 -110
  144. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/masking.test.ts +0 -4
  145. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/mocker.test.ts +0 -19
  146. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/nan.test.ts +0 -24
  147. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/nativeEnum.test.ts +0 -87
  148. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/nullable.test.ts +0 -42
  149. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/number.test.ts +0 -176
  150. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/object-augmentation.test.ts +0 -29
  151. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +0 -29
  152. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/object.test.ts +0 -431
  153. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/optional.test.ts +0 -42
  154. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/parseUtil.test.ts +0 -23
  155. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/parser.test.ts +0 -41
  156. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/partials.test.ts +0 -243
  157. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/pickomit.test.ts +0 -111
  158. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/pipeline.test.ts +0 -29
  159. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/preprocess.test.ts +0 -186
  160. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/primitive.test.ts +0 -440
  161. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/promise.test.ts +0 -90
  162. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/readonly.test.ts +0 -114
  163. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/record.test.ts +0 -171
  164. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/recursive.test.ts +0 -197
  165. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/refine.test.ts +0 -313
  166. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/safeparse.test.ts +0 -27
  167. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/set.test.ts +0 -142
  168. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/standard-schema.test.ts +0 -83
  169. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/string.test.ts +0 -922
  170. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/transformer.test.ts +0 -233
  171. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/tuple.test.ts +0 -90
  172. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/unions.test.ts +0 -57
  173. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/validations.test.ts +0 -133
  174. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/tests/void.test.ts +0 -15
  175. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v3/types.ts +0 -5138
  176. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/checks.ts +0 -33
  177. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/coerce.ts +0 -27
  178. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/compat.ts +0 -78
  179. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/deep-partial.ts +0 -76
  180. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/errors.ts +0 -97
  181. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/external.ts +0 -57
  182. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/from-json-schema.ts +0 -944
  183. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/in-out.ts +0 -45
  184. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/index.ts +0 -5
  185. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/iso.ts +0 -20
  186. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/parse.ts +0 -88
  187. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/schemas.ts +0 -2937
  188. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +0 -26
  189. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/apply.test.ts +0 -86
  190. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/array.test.ts +0 -291
  191. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/assignability.test.ts +0 -402
  192. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +0 -381
  193. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +0 -68
  194. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/base.test.ts +0 -7
  195. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/bigint.test.ts +0 -89
  196. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/brand.test.ts +0 -106
  197. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/catch.test.ts +0 -604
  198. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +0 -20
  199. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +0 -572
  200. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/codec.test.ts +0 -704
  201. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/coerce.test.ts +0 -160
  202. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/continuability.test.ts +0 -374
  203. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +0 -76
  204. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/custom.test.ts +0 -40
  205. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +0 -985
  206. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/date.test.ts +0 -92
  207. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/datetime.test.ts +0 -316
  208. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +0 -380
  209. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +0 -32
  210. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/default.test.ts +0 -455
  211. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/describe-meta-checks.test.ts +0 -27
  212. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/description.test.ts +0 -32
  213. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +0 -221
  214. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +0 -942
  215. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/enum.test.ts +0 -305
  216. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +0 -917
  217. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/error.test.ts +0 -1108
  218. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/file.test.ts +0 -96
  219. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +0 -179
  220. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/fix-json-issue.test.ts +0 -26
  221. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +0 -1467
  222. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/function.test.ts +0 -391
  223. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/generics.test.ts +0 -72
  224. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/global-config.test.ts +0 -32
  225. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/hash.test.ts +0 -67
  226. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/iban.test.ts +0 -81
  227. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/in-out.test.ts +0 -159
  228. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/index.test.ts +0 -958
  229. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +0 -319
  230. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +0 -127
  231. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/intersection.test.ts +0 -334
  232. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +0 -215
  233. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +0 -39
  234. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/json.test.ts +0 -109
  235. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/lazy.test.ts +0 -262
  236. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/literal.test.ts +0 -128
  237. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/locales_ka.test.ts +0 -29
  238. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/locales_ro.test.ts +0 -24
  239. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/map.test.ts +0 -349
  240. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/nan.test.ts +0 -21
  241. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +0 -168
  242. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +0 -101
  243. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/nullable.test.ts +0 -22
  244. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/number.test.ts +0 -401
  245. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/object.test.ts +0 -1006
  246. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +0 -235
  247. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/optional.test.ts +0 -366
  248. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/partial.test.ts +0 -497
  249. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +0 -211
  250. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/pipe.test.ts +0 -101
  251. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/prefault.test.ts +0 -144
  252. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +0 -44
  253. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +0 -351
  254. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/primitive.test.ts +0 -175
  255. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/promise.test.ts +0 -81
  256. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/properties.test.ts +0 -141
  257. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +0 -23
  258. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -184
  259. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/record.test.ts +0 -885
  260. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +0 -707
  261. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/redos.test.ts +0 -68
  262. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/refine.test.ts +0 -693
  263. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/registries.test.ts +0 -243
  264. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/set.test.ts +0 -196
  265. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +0 -153
  266. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +0 -125
  267. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/string.test.ts +0 -1440
  268. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +0 -124
  269. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +0 -812
  270. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/to-json-schema-methods.test.ts +0 -438
  271. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +0 -4733
  272. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/transform.test.ts +0 -378
  273. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/tuple.test.ts +0 -511
  274. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/union.test.ts +0 -310
  275. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/url.test.ts +0 -13
  276. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/validate.test.ts +0 -645
  277. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/validations.test.ts +0 -283
  278. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/classic/tests/void.test.ts +0 -12
  279. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/api.ts +0 -1875
  280. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/checks.ts +0 -1266
  281. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/compile.ts +0 -2322
  282. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/core.ts +0 -230
  283. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/doc.ts +0 -52
  284. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/errors.ts +0 -543
  285. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/index.ts +0 -19
  286. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/json-schema-generator.ts +0 -131
  287. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/json-schema-processors.ts +0 -934
  288. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/json-schema.ts +0 -148
  289. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/memoizer.ts +0 -331
  290. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/parse.ts +0 -309
  291. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/regexes.ts +0 -217
  292. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/registries.ts +0 -105
  293. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/schemas.ts +0 -5226
  294. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/standard-schema.ts +0 -159
  295. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/cached.test.ts +0 -54
  296. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +0 -1004
  297. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/compile-generative.test.ts +0 -445
  298. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/compile-global.test.ts +0 -89
  299. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +0 -26
  300. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +0 -34
  301. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/compile.test.ts +0 -2036
  302. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/email-regex.test.ts +0 -140
  303. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/extend.test.ts +0 -59
  304. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/index.test.ts +0 -46
  305. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/locales/be.test.ts +0 -124
  306. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/locales/el.test.ts +0 -214
  307. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/locales/en.test.ts +0 -22
  308. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/locales/es.test.ts +0 -180
  309. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +0 -72
  310. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/locales/he.test.ts +0 -379
  311. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/locales/hr.test.ts +0 -163
  312. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/locales/nl.test.ts +0 -46
  313. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +0 -42
  314. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +0 -128
  315. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/locales/tg.test.ts +0 -85
  316. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +0 -69
  317. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +0 -69
  318. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +0 -105
  319. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/polyfill-collision.test.ts +0 -46
  320. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +0 -125
  321. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/recursive-tuples.test.ts +0 -45
  322. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/treeshake.test.ts +0 -51
  323. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +0 -133
  324. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/to-json-schema.ts +0 -857
  325. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/util.ts +0 -1293
  326. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/versions.ts +0 -5
  327. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/visit.ts +0 -193
  328. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/core/zsf.ts +0 -323
  329. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/index.ts +0 -4
  330. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/ar.ts +0 -120
  331. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/az.ts +0 -116
  332. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/be.ts +0 -188
  333. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/bg.ts +0 -133
  334. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/bn.ts +0 -123
  335. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/ca.ts +0 -121
  336. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/ckb.ts +0 -140
  337. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/cs.ts +0 -123
  338. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/da.ts +0 -128
  339. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/de.ts +0 -121
  340. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/el.ts +0 -124
  341. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/en.ts +0 -136
  342. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/eo.ts +0 -123
  343. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/es.ts +0 -145
  344. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/fa.ts +0 -131
  345. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/fi.ts +0 -126
  346. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/fr-CA.ts +0 -121
  347. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/fr.ts +0 -139
  348. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/gu.ts +0 -123
  349. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/he.ts +0 -253
  350. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/hi.ts +0 -126
  351. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/hr.ts +0 -135
  352. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/hu.ts +0 -122
  353. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/hy.ts +0 -175
  354. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/id.ts +0 -120
  355. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/index.ts +0 -63
  356. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/is.ts +0 -124
  357. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/it.ts +0 -121
  358. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/ja.ts +0 -119
  359. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/ka.ts +0 -128
  360. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/kh.ts +0 -7
  361. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/km.ts +0 -124
  362. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/kn.ts +0 -126
  363. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/ko.ts +0 -126
  364. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/lt.ts +0 -243
  365. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/mk.ts +0 -123
  366. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/ms.ts +0 -120
  367. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/ne.ts +0 -128
  368. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/nl.ts +0 -126
  369. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/nn.ts +0 -121
  370. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/no.ts +0 -121
  371. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/ota.ts +0 -122
  372. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/pl.ts +0 -123
  373. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/ps.ts +0 -131
  374. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/pt-BR.ts +0 -161
  375. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/pt.ts +0 -159
  376. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/ro.ts +0 -132
  377. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/ru.ts +0 -188
  378. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/sk.ts +0 -123
  379. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/sl.ts +0 -123
  380. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/sv.ts +0 -124
  381. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/ta.ts +0 -123
  382. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/tg.ts +0 -135
  383. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/th.ts +0 -124
  384. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/tk.ts +0 -113
  385. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/tr.ts +0 -116
  386. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/ua.ts +0 -7
  387. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/uk.ts +0 -122
  388. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/ur.ts +0 -124
  389. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/uz.ts +0 -120
  390. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/vi.ts +0 -122
  391. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/yo.ts +0 -129
  392. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/zh-CN.ts +0 -121
  393. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/locales/zh-TW.ts +0 -120
  394. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/checks.ts +0 -33
  395. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/coerce.ts +0 -27
  396. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/deep-partial.ts +0 -73
  397. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/external.ts +0 -52
  398. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/in-out.ts +0 -45
  399. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/index.ts +0 -3
  400. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/iso.ts +0 -66
  401. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/parse.ts +0 -16
  402. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/schemas.ts +0 -2051
  403. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/tests/apply.test.ts +0 -57
  404. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/tests/assignability.test.ts +0 -190
  405. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/tests/brand.test.ts +0 -94
  406. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/tests/checks.test.ts +0 -158
  407. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/tests/codec.test.ts +0 -582
  408. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/tests/computed.test.ts +0 -30
  409. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/tests/cyclic-data.test.ts +0 -84
  410. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/tests/deep-partial.test.ts +0 -54
  411. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/tests/error.test.ts +0 -41
  412. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/tests/functions.test.ts +0 -14
  413. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/tests/index.test.ts +0 -1146
  414. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/tests/number.test.ts +0 -109
  415. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/tests/object.test.ts +0 -292
  416. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +0 -43
  417. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +0 -341
  418. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/tests/standard-schema.test.ts +0 -50
  419. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4/mini/tests/string.test.ts +0 -396
  420. package/toolkit/skills/multi-task-flow/node_modules/zod/src/v4-mini/index.ts +0 -3
  421. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/ZodError.cjs +0 -167
  422. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/ZodError.d.cts +0 -164
  423. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/ZodError.d.ts +0 -164
  424. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/ZodError.js +0 -143
  425. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/errors.cjs +0 -36
  426. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/errors.d.cts +0 -5
  427. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/errors.d.ts +0 -5
  428. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/errors.js +0 -9
  429. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/external.cjs +0 -41
  430. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/external.d.cts +0 -6
  431. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/external.d.ts +0 -6
  432. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/external.js +0 -6
  433. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/helpers/enumUtil.cjs +0 -21
  434. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/helpers/enumUtil.d.cts +0 -8
  435. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/helpers/enumUtil.d.ts +0 -8
  436. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/helpers/enumUtil.js +0 -1
  437. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/helpers/errorUtil.cjs +0 -28
  438. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/helpers/errorUtil.d.cts +0 -9
  439. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/helpers/errorUtil.d.ts +0 -9
  440. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/helpers/errorUtil.js +0 -6
  441. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/helpers/parseUtil.cjs +0 -143
  442. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/helpers/parseUtil.d.cts +0 -78
  443. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/helpers/parseUtil.d.ts +0 -78
  444. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/helpers/parseUtil.js +0 -109
  445. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/helpers/partialUtil.cjs +0 -21
  446. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/helpers/partialUtil.d.cts +0 -8
  447. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/helpers/partialUtil.d.ts +0 -8
  448. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/helpers/partialUtil.js +0 -1
  449. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/helpers/typeAliases.cjs +0 -21
  450. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/helpers/typeAliases.d.cts +0 -2
  451. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/helpers/typeAliases.d.ts +0 -2
  452. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/helpers/typeAliases.js +0 -1
  453. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/helpers/util.cjs +0 -156
  454. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/helpers/util.d.cts +0 -85
  455. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/helpers/util.d.ts +0 -85
  456. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/helpers/util.js +0 -133
  457. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/index.cjs +0 -52
  458. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/index.d.cts +0 -4
  459. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/index.d.ts +0 -4
  460. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/index.js +0 -4
  461. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/locales/en.cjs +0 -112
  462. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/locales/en.d.cts +0 -3
  463. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/locales/en.d.ts +0 -3
  464. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/locales/en.js +0 -109
  465. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/package.json +0 -7
  466. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/standard-schema.cjs +0 -21
  467. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/standard-schema.d.cts +0 -102
  468. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/standard-schema.d.ts +0 -102
  469. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/standard-schema.js +0 -1
  470. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/types.cjs +0 -3798
  471. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/types.d.cts +0 -1034
  472. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/types.d.ts +0 -1034
  473. package/toolkit/skills/multi-task-flow/node_modules/zod/v3/types.js +0 -3697
  474. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/checks.cjs +0 -53
  475. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/checks.d.cts +0 -1
  476. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/checks.d.ts +0 -1
  477. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/checks.js +0 -1
  478. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/coerce.cjs +0 -66
  479. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/coerce.d.cts +0 -17
  480. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/coerce.d.ts +0 -17
  481. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/coerce.js +0 -17
  482. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/compat.cjs +0 -80
  483. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/compat.d.cts +0 -48
  484. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/compat.d.ts +0 -48
  485. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/compat.js +0 -31
  486. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/deep-partial.cjs +0 -58
  487. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/deep-partial.d.cts +0 -14
  488. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/deep-partial.d.ts +0 -14
  489. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/deep-partial.js +0 -13
  490. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/errors.cjs +0 -102
  491. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/errors.d.cts +0 -29
  492. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/errors.d.ts +0 -29
  493. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/errors.js +0 -57
  494. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/external.cjs +0 -97
  495. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/external.d.cts +0 -19
  496. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/external.d.ts +0 -19
  497. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/external.js +0 -17
  498. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/from-json-schema.cjs +0 -926
  499. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/from-json-schema.d.cts +0 -12
  500. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/from-json-schema.d.ts +0 -12
  501. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/from-json-schema.js +0 -881
  502. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/in-out.cjs +0 -82
  503. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/in-out.d.cts +0 -8
  504. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/in-out.d.ts +0 -8
  505. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/in-out.js +0 -36
  506. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/index.cjs +0 -52
  507. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/index.d.cts +0 -3
  508. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/index.d.ts +0 -3
  509. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/index.js +0 -4
  510. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/iso.cjs +0 -68
  511. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/iso.d.cts +0 -7
  512. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/iso.d.ts +0 -7
  513. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/iso.js +0 -15
  514. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/package.json +0 -7
  515. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/parse.cjs +0 -63
  516. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/parse.d.cts +0 -44
  517. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/parse.d.ts +0 -44
  518. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/parse.js +0 -16
  519. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/schemas.cjs +0 -1676
  520. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/schemas.d.cts +0 -816
  521. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/schemas.d.ts +0 -816
  522. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/classic/schemas.js +0 -1535
  523. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/api.cjs +0 -1269
  524. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/api.d.cts +0 -335
  525. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/api.d.ts +0 -335
  526. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/api.js +0 -1107
  527. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/checks.cjs +0 -561
  528. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/checks.d.cts +0 -294
  529. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/checks.d.ts +0 -294
  530. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/checks.js +0 -516
  531. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/compile.cjs +0 -1916
  532. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/compile.d.cts +0 -65
  533. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/compile.d.ts +0 -65
  534. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/compile.js +0 -1866
  535. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/core.cjs +0 -167
  536. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/core.d.cts +0 -82
  537. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/core.d.ts +0 -82
  538. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/core.js +0 -141
  539. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/doc.cjs +0 -61
  540. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/doc.d.cts +0 -16
  541. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/doc.d.ts +0 -16
  542. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/doc.js +0 -38
  543. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/errors.cjs +0 -317
  544. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/errors.d.cts +0 -225
  545. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/errors.d.ts +0 -225
  546. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/errors.js +0 -267
  547. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/index.cjs +0 -70
  548. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/index.d.cts +0 -19
  549. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/index.d.ts +0 -19
  550. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/index.js +0 -19
  551. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/json-schema-generator.cjs +0 -122
  552. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/json-schema-generator.d.cts +0 -65
  553. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/json-schema-generator.d.ts +0 -65
  554. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/json-schema-generator.js +0 -99
  555. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/json-schema-processors.cjs +0 -929
  556. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/json-schema-processors.d.cts +0 -65
  557. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/json-schema-processors.d.ts +0 -65
  558. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/json-schema-processors.js +0 -843
  559. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/json-schema.cjs +0 -21
  560. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/json-schema.d.cts +0 -89
  561. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/json-schema.d.ts +0 -89
  562. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/json-schema.js +0 -1
  563. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/memoizer.cjs +0 -360
  564. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/memoizer.d.cts +0 -15
  565. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/memoizer.d.ts +0 -15
  566. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/memoizer.js +0 -311
  567. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/package.json +0 -7
  568. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/parse.cjs +0 -233
  569. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/parse.d.cts +0 -52
  570. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/parse.d.ts +0 -52
  571. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/parse.js +0 -175
  572. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/regexes.cjs +0 -209
  573. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/regexes.d.cts +0 -90
  574. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/regexes.d.ts +0 -90
  575. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/regexes.js +0 -156
  576. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/registries.cjs +0 -75
  577. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/registries.d.cts +0 -35
  578. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/registries.d.ts +0 -35
  579. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/registries.js +0 -51
  580. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/schemas.cjs +0 -2699
  581. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/schemas.d.cts +0 -1275
  582. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/schemas.d.ts +0 -1275
  583. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/schemas.js +0 -2636
  584. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/standard-schema.cjs +0 -21
  585. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/standard-schema.d.cts +0 -126
  586. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/standard-schema.d.ts +0 -126
  587. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/standard-schema.js +0 -1
  588. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/to-json-schema.cjs +0 -681
  589. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/to-json-schema.d.cts +0 -154
  590. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/to-json-schema.d.ts +0 -154
  591. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/to-json-schema.js +0 -651
  592. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/util.cjs +0 -964
  593. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/util.d.cts +0 -280
  594. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/util.d.ts +0 -280
  595. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/util.js +0 -873
  596. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/versions.cjs +0 -27
  597. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/versions.d.cts +0 -5
  598. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/versions.d.ts +0 -5
  599. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/versions.js +0 -5
  600. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/visit.cjs +0 -214
  601. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/visit.d.cts +0 -30
  602. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/visit.d.ts +0 -30
  603. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/core/visit.js +0 -169
  604. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/index.cjs +0 -51
  605. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/index.d.cts +0 -3
  606. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/index.d.ts +0 -3
  607. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/index.js +0 -4
  608. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ar.cjs +0 -138
  609. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ar.d.cts +0 -5
  610. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ar.d.ts +0 -4
  611. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ar.js +0 -111
  612. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/az.cjs +0 -137
  613. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/az.d.cts +0 -5
  614. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/az.d.ts +0 -4
  615. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/az.js +0 -110
  616. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/be.cjs +0 -195
  617. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/be.d.cts +0 -5
  618. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/be.d.ts +0 -4
  619. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/be.js +0 -168
  620. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/bg.cjs +0 -152
  621. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/bg.d.cts +0 -5
  622. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/bg.d.ts +0 -4
  623. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/bg.js +0 -125
  624. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/bn.cjs +0 -140
  625. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/bn.d.cts +0 -5
  626. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/bn.d.ts +0 -4
  627. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/bn.js +0 -113
  628. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ca.cjs +0 -139
  629. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ca.d.cts +0 -5
  630. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ca.d.ts +0 -4
  631. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ca.js +0 -112
  632. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ckb.cjs +0 -160
  633. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ckb.d.cts +0 -5
  634. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ckb.d.ts +0 -4
  635. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ckb.js +0 -133
  636. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/cs.cjs +0 -143
  637. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/cs.d.cts +0 -5
  638. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/cs.d.ts +0 -4
  639. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/cs.js +0 -116
  640. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/da.cjs +0 -147
  641. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/da.d.cts +0 -5
  642. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/da.d.ts +0 -4
  643. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/da.js +0 -120
  644. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/de.cjs +0 -140
  645. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/de.d.cts +0 -5
  646. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/de.d.ts +0 -4
  647. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/de.js +0 -113
  648. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/el.cjs +0 -139
  649. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/el.d.cts +0 -5
  650. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/el.d.ts +0 -4
  651. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/el.js +0 -112
  652. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/en.cjs +0 -152
  653. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/en.d.cts +0 -5
  654. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/en.d.ts +0 -4
  655. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/en.js +0 -125
  656. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/eo.cjs +0 -141
  657. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/eo.d.cts +0 -5
  658. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/eo.d.ts +0 -4
  659. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/eo.js +0 -114
  660. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/es.cjs +0 -163
  661. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/es.d.cts +0 -5
  662. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/es.d.ts +0 -4
  663. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/es.js +0 -136
  664. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/fa.cjs +0 -146
  665. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/fa.d.cts +0 -5
  666. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/fa.d.ts +0 -4
  667. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/fa.js +0 -119
  668. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/fi.cjs +0 -144
  669. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/fi.d.cts +0 -5
  670. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/fi.d.ts +0 -4
  671. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/fi.js +0 -117
  672. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/fr-CA.cjs +0 -139
  673. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/fr-CA.d.cts +0 -5
  674. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/fr-CA.d.ts +0 -4
  675. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/fr-CA.js +0 -112
  676. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/fr.cjs +0 -156
  677. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/fr.d.cts +0 -5
  678. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/fr.d.ts +0 -4
  679. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/fr.js +0 -129
  680. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/gu.cjs +0 -140
  681. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/gu.d.cts +0 -5
  682. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/gu.d.ts +0 -4
  683. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/gu.js +0 -113
  684. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/he.cjs +0 -248
  685. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/he.d.cts +0 -5
  686. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/he.d.ts +0 -4
  687. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/he.js +0 -221
  688. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/hi.cjs +0 -138
  689. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/hi.d.cts +0 -5
  690. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/hi.d.ts +0 -4
  691. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/hi.js +0 -111
  692. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/hr.cjs +0 -153
  693. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/hr.d.cts +0 -5
  694. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/hr.d.ts +0 -4
  695. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/hr.js +0 -126
  696. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/hu.cjs +0 -140
  697. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/hu.d.cts +0 -5
  698. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/hu.d.ts +0 -4
  699. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/hu.js +0 -113
  700. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/hy.cjs +0 -185
  701. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/hy.d.cts +0 -5
  702. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/hy.d.ts +0 -4
  703. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/hy.js +0 -158
  704. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/id.cjs +0 -138
  705. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/id.d.cts +0 -5
  706. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/id.d.ts +0 -4
  707. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/id.js +0 -111
  708. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/index.cjs +0 -152
  709. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/index.d.cts +0 -63
  710. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/index.d.ts +0 -63
  711. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/index.js +0 -63
  712. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/is.cjs +0 -141
  713. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/is.d.cts +0 -5
  714. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/is.d.ts +0 -4
  715. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/is.js +0 -114
  716. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/it.cjs +0 -140
  717. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/it.d.cts +0 -5
  718. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/it.d.ts +0 -4
  719. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/it.js +0 -113
  720. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ja.cjs +0 -139
  721. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ja.d.cts +0 -5
  722. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ja.d.ts +0 -4
  723. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ja.js +0 -112
  724. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ka.cjs +0 -144
  725. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ka.d.cts +0 -5
  726. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ka.d.ts +0 -4
  727. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ka.js +0 -117
  728. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/kh.cjs +0 -12
  729. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/kh.d.cts +0 -5
  730. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/kh.d.ts +0 -5
  731. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/kh.js +0 -5
  732. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/km.cjs +0 -142
  733. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/km.d.cts +0 -5
  734. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/km.d.ts +0 -4
  735. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/km.js +0 -115
  736. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/kn.cjs +0 -143
  737. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/kn.d.cts +0 -5
  738. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/kn.d.ts +0 -4
  739. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/kn.js +0 -116
  740. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ko.cjs +0 -143
  741. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ko.d.cts +0 -5
  742. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ko.d.ts +0 -4
  743. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ko.js +0 -116
  744. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/lt.cjs +0 -234
  745. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/lt.d.cts +0 -5
  746. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/lt.d.ts +0 -4
  747. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/lt.js +0 -207
  748. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/mk.cjs +0 -141
  749. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/mk.d.cts +0 -5
  750. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/mk.d.ts +0 -4
  751. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/mk.js +0 -114
  752. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ms.cjs +0 -139
  753. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ms.d.cts +0 -5
  754. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ms.d.ts +0 -4
  755. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ms.js +0 -112
  756. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ne.cjs +0 -138
  757. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ne.d.cts +0 -5
  758. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ne.d.ts +0 -4
  759. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ne.js +0 -111
  760. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/nl.cjs +0 -142
  761. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/nl.d.cts +0 -5
  762. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/nl.d.ts +0 -4
  763. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/nl.js +0 -115
  764. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/nn.cjs +0 -140
  765. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/nn.d.cts +0 -5
  766. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/nn.d.ts +0 -4
  767. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/nn.js +0 -113
  768. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/no.cjs +0 -140
  769. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/no.d.cts +0 -5
  770. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/no.d.ts +0 -4
  771. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/no.js +0 -113
  772. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ota.cjs +0 -141
  773. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ota.d.cts +0 -5
  774. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ota.d.ts +0 -4
  775. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ota.js +0 -114
  776. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/package.json +0 -7
  777. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/pl.cjs +0 -141
  778. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/pl.d.cts +0 -5
  779. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/pl.d.ts +0 -4
  780. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/pl.js +0 -114
  781. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ps.cjs +0 -146
  782. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ps.d.cts +0 -5
  783. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ps.d.ts +0 -4
  784. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ps.js +0 -119
  785. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/pt-BR.cjs +0 -170
  786. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/pt-BR.d.cts +0 -5
  787. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/pt-BR.d.ts +0 -4
  788. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/pt-BR.js +0 -143
  789. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/pt.cjs +0 -169
  790. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/pt.d.cts +0 -5
  791. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/pt.d.ts +0 -4
  792. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/pt.js +0 -142
  793. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ro.cjs +0 -149
  794. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ro.d.cts +0 -5
  795. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ro.d.ts +0 -4
  796. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ro.js +0 -122
  797. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ru.cjs +0 -195
  798. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ru.d.cts +0 -5
  799. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ru.d.ts +0 -4
  800. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ru.js +0 -168
  801. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/sk.cjs +0 -143
  802. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/sk.d.cts +0 -5
  803. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/sk.d.ts +0 -4
  804. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/sk.js +0 -116
  805. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/sl.cjs +0 -141
  806. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/sl.d.cts +0 -5
  807. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/sl.d.ts +0 -4
  808. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/sl.js +0 -114
  809. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/sv.cjs +0 -142
  810. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/sv.d.cts +0 -5
  811. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/sv.d.ts +0 -4
  812. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/sv.js +0 -115
  813. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ta.cjs +0 -142
  814. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ta.d.cts +0 -5
  815. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ta.d.ts +0 -4
  816. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ta.js +0 -115
  817. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/tg.cjs +0 -144
  818. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/tg.d.cts +0 -5
  819. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/tg.d.ts +0 -4
  820. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/tg.js +0 -117
  821. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/th.cjs +0 -142
  822. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/th.d.cts +0 -5
  823. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/th.d.ts +0 -4
  824. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/th.js +0 -115
  825. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/tk.cjs +0 -134
  826. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/tk.d.cts +0 -5
  827. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/tk.d.ts +0 -4
  828. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/tk.js +0 -107
  829. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/tr.cjs +0 -137
  830. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/tr.d.cts +0 -5
  831. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/tr.d.ts +0 -4
  832. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/tr.js +0 -110
  833. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ua.cjs +0 -12
  834. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ua.d.cts +0 -5
  835. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ua.d.ts +0 -5
  836. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ua.js +0 -5
  837. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/uk.cjs +0 -140
  838. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/uk.d.cts +0 -5
  839. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/uk.d.ts +0 -4
  840. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/uk.js +0 -113
  841. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ur.cjs +0 -142
  842. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ur.d.cts +0 -5
  843. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ur.d.ts +0 -4
  844. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/ur.js +0 -115
  845. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/uz.cjs +0 -140
  846. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/uz.d.cts +0 -5
  847. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/uz.d.ts +0 -4
  848. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/uz.js +0 -113
  849. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/vi.cjs +0 -140
  850. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/vi.d.cts +0 -5
  851. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/vi.d.ts +0 -4
  852. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/vi.js +0 -113
  853. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/yo.cjs +0 -139
  854. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/yo.d.cts +0 -5
  855. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/yo.d.ts +0 -4
  856. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/yo.js +0 -112
  857. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/zh-CN.cjs +0 -141
  858. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/zh-CN.d.cts +0 -5
  859. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/zh-CN.d.ts +0 -4
  860. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/zh-CN.js +0 -114
  861. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/zh-TW.cjs +0 -139
  862. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/zh-TW.d.cts +0 -5
  863. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/zh-TW.d.ts +0 -4
  864. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/locales/zh-TW.js +0 -112
  865. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/checks.cjs +0 -54
  866. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/checks.d.cts +0 -1
  867. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/checks.d.ts +0 -1
  868. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/checks.js +0 -1
  869. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/coerce.cjs +0 -71
  870. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/coerce.d.cts +0 -7
  871. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/coerce.d.ts +0 -7
  872. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/coerce.js +0 -22
  873. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/deep-partial.cjs +0 -58
  874. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/deep-partial.d.cts +0 -14
  875. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/deep-partial.d.ts +0 -14
  876. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/deep-partial.js +0 -13
  877. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/external.cjs +0 -95
  878. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/external.d.cts +0 -16
  879. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/external.d.ts +0 -16
  880. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/external.js +0 -16
  881. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/in-out.cjs +0 -82
  882. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/in-out.d.cts +0 -8
  883. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/in-out.d.ts +0 -8
  884. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/in-out.js +0 -36
  885. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/index.cjs +0 -51
  886. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/index.d.cts +0 -3
  887. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/index.d.ts +0 -3
  888. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/index.js +0 -3
  889. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/iso.cjs +0 -83
  890. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/iso.d.cts +0 -22
  891. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/iso.d.ts +0 -22
  892. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/iso.js +0 -34
  893. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/package.json +0 -7
  894. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/parse.cjs +0 -37
  895. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/parse.d.cts +0 -1
  896. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/parse.d.ts +0 -1
  897. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/parse.js +0 -1
  898. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/schemas.cjs +0 -1147
  899. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/schemas.d.cts +0 -480
  900. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/schemas.d.ts +0 -480
  901. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/mini/schemas.js +0 -1002
  902. package/toolkit/skills/multi-task-flow/node_modules/zod/v4/package.json +0 -7
  903. package/toolkit/skills/multi-task-flow/node_modules/zod/v4-mini/index.cjs +0 -51
  904. package/toolkit/skills/multi-task-flow/node_modules/zod/v4-mini/index.d.cts +0 -3
  905. package/toolkit/skills/multi-task-flow/node_modules/zod/v4-mini/index.d.ts +0 -3
  906. package/toolkit/skills/multi-task-flow/node_modules/zod/v4-mini/index.js +0 -3
  907. package/toolkit/skills/multi-task-flow/node_modules/zod/v4-mini/package.json +0 -7
  908. package/toolkit/skills/multi-task-flow/scripts/serve.ts +0 -218
  909. package/toolkit/skills/multi-task-flow/tests/serve.test.ts +0 -194
  910. package/toolkit/skills/node_modules/@img/colour/LICENSE.md +0 -82
  911. package/toolkit/skills/node_modules/@img/colour/README.md +0 -15
  912. package/toolkit/skills/node_modules/@img/colour/color.cjs +0 -1596
  913. package/toolkit/skills/node_modules/@img/colour/index.cjs +0 -1
  914. package/toolkit/skills/node_modules/@img/colour/index.d.ts +0 -929
  915. package/toolkit/skills/node_modules/@img/colour/package.json +0 -58
  916. package/toolkit/skills/node_modules/@img/sharp-libvips-linux-x64/README.md +0 -46
  917. package/toolkit/skills/node_modules/@img/sharp-libvips-linux-x64/lib/glib-2.0/include/glibconfig.h +0 -219
  918. package/toolkit/skills/node_modules/@img/sharp-libvips-linux-x64/lib/index.js +0 -1
  919. package/toolkit/skills/node_modules/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.8.18.7 +0 -0
  920. package/toolkit/skills/node_modules/@img/sharp-libvips-linux-x64/package.json +0 -43
  921. package/toolkit/skills/node_modules/@img/sharp-libvips-linux-x64/versions.json +0 -30
  922. package/toolkit/skills/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +0 -46
  923. package/toolkit/skills/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +0 -219
  924. package/toolkit/skills/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +0 -1
  925. package/toolkit/skills/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.18.7 +0 -0
  926. package/toolkit/skills/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +0 -43
  927. package/toolkit/skills/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +0 -30
  928. package/toolkit/skills/node_modules/@img/sharp-linux-x64/LICENSE +0 -191
  929. package/toolkit/skills/node_modules/@img/sharp-linux-x64/README.md +0 -18
  930. package/toolkit/skills/node_modules/@img/sharp-linux-x64/index.cjs +0 -2
  931. package/toolkit/skills/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64-0.35.5.node +0 -0
  932. package/toolkit/skills/node_modules/@img/sharp-linux-x64/package.json +0 -47
  933. package/toolkit/skills/node_modules/@img/sharp-linuxmusl-x64/LICENSE +0 -191
  934. package/toolkit/skills/node_modules/@img/sharp-linuxmusl-x64/README.md +0 -18
  935. package/toolkit/skills/node_modules/@img/sharp-linuxmusl-x64/index.cjs +0 -2
  936. package/toolkit/skills/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64-0.35.5.node +0 -0
  937. package/toolkit/skills/node_modules/@img/sharp-linuxmusl-x64/package.json +0 -47
  938. package/toolkit/skills/node_modules/detect-libc/LICENSE +0 -201
  939. package/toolkit/skills/node_modules/detect-libc/README.md +0 -163
  940. package/toolkit/skills/node_modules/detect-libc/index.d.ts +0 -14
  941. package/toolkit/skills/node_modules/detect-libc/lib/detect-libc.js +0 -313
  942. package/toolkit/skills/node_modules/detect-libc/lib/elf.js +0 -39
  943. package/toolkit/skills/node_modules/detect-libc/lib/filesystem.js +0 -51
  944. package/toolkit/skills/node_modules/detect-libc/lib/process.js +0 -24
  945. package/toolkit/skills/node_modules/detect-libc/package.json +0 -44
  946. package/toolkit/skills/node_modules/semver/LICENSE +0 -15
  947. package/toolkit/skills/node_modules/semver/README.md +0 -680
  948. package/toolkit/skills/node_modules/semver/bin/semver.js +0 -195
  949. package/toolkit/skills/node_modules/semver/classes/comparator.js +0 -143
  950. package/toolkit/skills/node_modules/semver/classes/index.js +0 -7
  951. package/toolkit/skills/node_modules/semver/classes/range.js +0 -577
  952. package/toolkit/skills/node_modules/semver/classes/semver.js +0 -350
  953. package/toolkit/skills/node_modules/semver/functions/clean.js +0 -8
  954. package/toolkit/skills/node_modules/semver/functions/cmp.js +0 -54
  955. package/toolkit/skills/node_modules/semver/functions/coerce.js +0 -62
  956. package/toolkit/skills/node_modules/semver/functions/compare-build.js +0 -9
  957. package/toolkit/skills/node_modules/semver/functions/compare-loose.js +0 -5
  958. package/toolkit/skills/node_modules/semver/functions/compare.js +0 -7
  959. package/toolkit/skills/node_modules/semver/functions/diff.js +0 -60
  960. package/toolkit/skills/node_modules/semver/functions/eq.js +0 -5
  961. package/toolkit/skills/node_modules/semver/functions/gt.js +0 -5
  962. package/toolkit/skills/node_modules/semver/functions/gte.js +0 -5
  963. package/toolkit/skills/node_modules/semver/functions/inc.js +0 -21
  964. package/toolkit/skills/node_modules/semver/functions/lt.js +0 -5
  965. package/toolkit/skills/node_modules/semver/functions/lte.js +0 -5
  966. package/toolkit/skills/node_modules/semver/functions/major.js +0 -5
  967. package/toolkit/skills/node_modules/semver/functions/minor.js +0 -5
  968. package/toolkit/skills/node_modules/semver/functions/neq.js +0 -5
  969. package/toolkit/skills/node_modules/semver/functions/parse.js +0 -18
  970. package/toolkit/skills/node_modules/semver/functions/patch.js +0 -5
  971. package/toolkit/skills/node_modules/semver/functions/prerelease.js +0 -8
  972. package/toolkit/skills/node_modules/semver/functions/rcompare.js +0 -5
  973. package/toolkit/skills/node_modules/semver/functions/rsort.js +0 -5
  974. package/toolkit/skills/node_modules/semver/functions/satisfies.js +0 -12
  975. package/toolkit/skills/node_modules/semver/functions/sort.js +0 -5
  976. package/toolkit/skills/node_modules/semver/functions/truncate.js +0 -48
  977. package/toolkit/skills/node_modules/semver/functions/valid.js +0 -8
  978. package/toolkit/skills/node_modules/semver/index.js +0 -93
  979. package/toolkit/skills/node_modules/semver/internal/constants.js +0 -67
  980. package/toolkit/skills/node_modules/semver/internal/debug.js +0 -11
  981. package/toolkit/skills/node_modules/semver/internal/identifiers.js +0 -29
  982. package/toolkit/skills/node_modules/semver/internal/lrucache.js +0 -42
  983. package/toolkit/skills/node_modules/semver/internal/parse-options.js +0 -17
  984. package/toolkit/skills/node_modules/semver/internal/re.js +0 -223
  985. package/toolkit/skills/node_modules/semver/internal/trim-comparator-whitespace.js +0 -438
  986. package/toolkit/skills/node_modules/semver/package.json +0 -78
  987. package/toolkit/skills/node_modules/semver/preload.js +0 -4
  988. package/toolkit/skills/node_modules/semver/range.bnf +0 -17
  989. package/toolkit/skills/node_modules/semver/ranges/gtr.js +0 -6
  990. package/toolkit/skills/node_modules/semver/ranges/intersects.js +0 -9
  991. package/toolkit/skills/node_modules/semver/ranges/ltr.js +0 -6
  992. package/toolkit/skills/node_modules/semver/ranges/max-satisfying.js +0 -27
  993. package/toolkit/skills/node_modules/semver/ranges/min-satisfying.js +0 -26
  994. package/toolkit/skills/node_modules/semver/ranges/min-version.js +0 -63
  995. package/toolkit/skills/node_modules/semver/ranges/outside.js +0 -82
  996. package/toolkit/skills/node_modules/semver/ranges/simplify.js +0 -49
  997. package/toolkit/skills/node_modules/semver/ranges/subset.js +0 -249
  998. package/toolkit/skills/node_modules/semver/ranges/to-comparators.js +0 -10
  999. package/toolkit/skills/node_modules/semver/ranges/valid.js +0 -13
  1000. package/toolkit/skills/node_modules/sharp/LICENSE +0 -191
  1001. package/toolkit/skills/node_modules/sharp/README.md +0 -112
  1002. package/toolkit/skills/node_modules/sharp/dist/channel.cjs +0 -177
  1003. package/toolkit/skills/node_modules/sharp/dist/channel.mjs +0 -177
  1004. package/toolkit/skills/node_modules/sharp/dist/colour.cjs +0 -199
  1005. package/toolkit/skills/node_modules/sharp/dist/colour.mjs +0 -199
  1006. package/toolkit/skills/node_modules/sharp/dist/composite.cjs +0 -213
  1007. package/toolkit/skills/node_modules/sharp/dist/composite.mjs +0 -213
  1008. package/toolkit/skills/node_modules/sharp/dist/constructor.cjs +0 -511
  1009. package/toolkit/skills/node_modules/sharp/dist/constructor.mjs +0 -511
  1010. package/toolkit/skills/node_modules/sharp/dist/index.cjs +0 -25
  1011. package/toolkit/skills/node_modules/sharp/dist/index.d.cts +0 -1999
  1012. package/toolkit/skills/node_modules/sharp/dist/index.d.mts +0 -2046
  1013. package/toolkit/skills/node_modules/sharp/dist/index.mjs +0 -25
  1014. package/toolkit/skills/node_modules/sharp/dist/input.cjs +0 -819
  1015. package/toolkit/skills/node_modules/sharp/dist/input.mjs +0 -819
  1016. package/toolkit/skills/node_modules/sharp/dist/is.cjs +0 -149
  1017. package/toolkit/skills/node_modules/sharp/dist/is.mjs +0 -149
  1018. package/toolkit/skills/node_modules/sharp/dist/libvips.cjs +0 -212
  1019. package/toolkit/skills/node_modules/sharp/dist/libvips.mjs +0 -212
  1020. package/toolkit/skills/node_modules/sharp/dist/operation.cjs +0 -1002
  1021. package/toolkit/skills/node_modules/sharp/dist/operation.mjs +0 -1002
  1022. package/toolkit/skills/node_modules/sharp/dist/output.cjs +0 -1786
  1023. package/toolkit/skills/node_modules/sharp/dist/output.mjs +0 -1786
  1024. package/toolkit/skills/node_modules/sharp/dist/resize.cjs +0 -617
  1025. package/toolkit/skills/node_modules/sharp/dist/resize.mjs +0 -617
  1026. package/toolkit/skills/node_modules/sharp/dist/sharp.cjs +0 -174
  1027. package/toolkit/skills/node_modules/sharp/dist/sharp.mjs +0 -174
  1028. package/toolkit/skills/node_modules/sharp/dist/utility.cjs +0 -301
  1029. package/toolkit/skills/node_modules/sharp/dist/utility.mjs +0 -301
  1030. package/toolkit/skills/node_modules/sharp/install/build.js +0 -38
  1031. package/toolkit/skills/node_modules/sharp/lib/index.d.ts +0 -1999
  1032. package/toolkit/skills/node_modules/sharp/package.json +0 -227
  1033. package/toolkit/skills/node_modules/sharp/src/binding.gyp +0 -303
  1034. package/toolkit/skills/node_modules/sharp/src/common.cc +0 -1186
  1035. package/toolkit/skills/node_modules/sharp/src/common.h +0 -421
  1036. package/toolkit/skills/node_modules/sharp/src/metadata.cc +0 -404
  1037. package/toolkit/skills/node_modules/sharp/src/metadata.h +0 -95
  1038. package/toolkit/skills/node_modules/sharp/src/operations.cc +0 -516
  1039. package/toolkit/skills/node_modules/sharp/src/operations.h +0 -137
  1040. package/toolkit/skills/node_modules/sharp/src/pipeline.cc +0 -1973
  1041. package/toolkit/skills/node_modules/sharp/src/pipeline.h +0 -422
  1042. package/toolkit/skills/node_modules/sharp/src/sharp.cc +0 -43
  1043. package/toolkit/skills/node_modules/sharp/src/stats.cc +0 -186
  1044. package/toolkit/skills/node_modules/sharp/src/stats.h +0 -62
  1045. package/toolkit/skills/node_modules/sharp/src/utilities.cc +0 -289
  1046. package/toolkit/skills/node_modules/sharp/src/utilities.h +0 -22
@@ -1,1467 +0,0 @@
1
- import { expect, test } from "vitest";
2
- import { fromJSONSchema } from "../from-json-schema.js";
3
- import * as z from "../index.js";
4
-
5
- test("basic string schema", () => {
6
- const schema = fromJSONSchema({ type: "string" });
7
- expect(schema.parse("hello")).toBe("hello");
8
- expect(() => schema.parse(123)).toThrow();
9
- });
10
-
11
- test("string with constraints", () => {
12
- const schema = fromJSONSchema({
13
- type: "string",
14
- minLength: 3,
15
- maxLength: 10,
16
- pattern: "^[a-z]+$",
17
- });
18
- expect(schema.parse("hello")).toBe("hello");
19
- expect(schema.parse("helloworld")).toBe("helloworld"); // exactly 10 chars - valid
20
- expect(() => schema.parse("hi")).toThrow(); // too short
21
- expect(() => schema.parse("helloworld1")).toThrow(); // too long (11 chars)
22
- expect(() => schema.parse("Hello")).toThrow(); // pattern mismatch
23
- });
24
-
25
- test("pattern is not implicitly anchored", () => {
26
- // JSON Schema patterns match anywhere in the string, not just the full string
27
- const schema = fromJSONSchema({
28
- type: "string",
29
- pattern: "foo",
30
- });
31
- expect(schema.parse("foo")).toBe("foo");
32
- expect(schema.parse("foobar")).toBe("foobar"); // matches at start
33
- expect(schema.parse("barfoo")).toBe("barfoo"); // matches at end
34
- expect(schema.parse("barfoobar")).toBe("barfoobar"); // matches in middle
35
- expect(() => schema.parse("bar")).toThrow(); // no match
36
- });
37
-
38
- test("number schema", () => {
39
- const schema = fromJSONSchema({ type: "number" });
40
- expect(schema.parse(42)).toBe(42);
41
- expect(() => schema.parse("42")).toThrow();
42
- });
43
-
44
- test("number with constraints", () => {
45
- const schema = fromJSONSchema({
46
- type: "number",
47
- minimum: 0,
48
- maximum: 100,
49
- multipleOf: 5,
50
- });
51
- expect(schema.parse(50)).toBe(50);
52
- expect(() => schema.parse(-1)).toThrow();
53
- expect(() => schema.parse(101)).toThrow();
54
- expect(() => schema.parse(47)).toThrow(); // not multiple of 5
55
- });
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
-
84
- test("integer schema", () => {
85
- const schema = fromJSONSchema({ type: "integer" });
86
- expect(schema.parse(42)).toBe(42);
87
- expect(() => schema.parse(42.5)).toThrow();
88
- });
89
-
90
- test("boolean schema", () => {
91
- const schema = fromJSONSchema({ type: "boolean" });
92
- expect(schema.parse(true)).toBe(true);
93
- expect(schema.parse(false)).toBe(false);
94
- expect(() => schema.parse("true")).toThrow();
95
- });
96
-
97
- test("null schema", () => {
98
- const schema = fromJSONSchema({ type: "null" });
99
- expect(schema.parse(null)).toBe(null);
100
- expect(() => schema.parse(undefined)).toThrow();
101
- });
102
-
103
- test("object schema", () => {
104
- const schema = fromJSONSchema({
105
- type: "object",
106
- properties: {
107
- name: { type: "string" },
108
- age: { type: "number" },
109
- },
110
- required: ["name"],
111
- });
112
- expect(schema.parse({ name: "John", age: 30 })).toEqual({ name: "John", age: 30 });
113
- expect(schema.parse({ name: "John" })).toEqual({ name: "John" });
114
- expect(() => schema.parse({ age: 30 })).toThrow(); // missing required
115
- });
116
-
117
- test("object with additionalProperties false", () => {
118
- const schema = fromJSONSchema({
119
- type: "object",
120
- properties: {
121
- name: { type: "string" },
122
- },
123
- additionalProperties: false,
124
- });
125
- expect(schema.parse({ name: "John" })).toEqual({ name: "John" });
126
- expect(() => schema.parse({ name: "John", extra: "field" })).toThrow();
127
- });
128
-
129
- test("array schema", () => {
130
- const schema = fromJSONSchema({
131
- type: "array",
132
- items: { type: "string" },
133
- });
134
- expect(schema.parse(["a", "b", "c"])).toEqual(["a", "b", "c"]);
135
- expect(() => schema.parse([1, 2, 3])).toThrow();
136
- });
137
-
138
- test("array with constraints", () => {
139
- const schema = fromJSONSchema({
140
- type: "array",
141
- items: { type: "number" },
142
- minItems: 2,
143
- maxItems: 4,
144
- });
145
- expect(schema.parse([1, 2])).toEqual([1, 2]);
146
- expect(schema.parse([1, 2, 3, 4])).toEqual([1, 2, 3, 4]);
147
- expect(() => schema.parse([1])).toThrow();
148
- expect(() => schema.parse([1, 2, 3, 4, 5])).toThrow();
149
- });
150
-
151
- test("tuple with prefixItems (draft-2020-12)", () => {
152
- const schema = fromJSONSchema({
153
- $schema: "https://json-schema.org/draft/2020-12/schema",
154
- type: "array",
155
- prefixItems: [{ type: "string" }, { type: "number" }],
156
- });
157
- expect(schema.parse([])).toEqual([]);
158
- expect(schema.parse(["hello"])).toEqual(["hello"]);
159
- expect(schema.parse(["hello", 42])).toEqual(["hello", 42]);
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();
163
- expect(() => schema.parse(["hello", "world"])).toThrow();
164
- });
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
-
227
- test("tuple with items array (draft-7)", () => {
228
- const schema = fromJSONSchema({
229
- $schema: "http://json-schema.org/draft-07/schema#",
230
- type: "array",
231
- items: [{ type: "string" }, { type: "number" }],
232
- additionalItems: false,
233
- });
234
- expect(schema.parse([])).toEqual([]);
235
- expect(schema.parse(["hello"])).toEqual(["hello"]);
236
- expect(schema.parse(["hello", 42])).toEqual(["hello", 42]);
237
- expect(() => schema.parse([1])).toThrow();
238
- expect(() => schema.parse(["hello", "world"])).toThrow();
239
- expect(() => schema.parse(["hello", 42, "extra"])).toThrow();
240
- });
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
-
294
- test("enum schema", () => {
295
- const schema = fromJSONSchema({
296
- enum: ["red", "green", "blue"],
297
- });
298
- expect(schema.parse("red")).toBe("red");
299
- expect(() => schema.parse("yellow")).toThrow();
300
- });
301
-
302
- test("const schema", () => {
303
- const schema = fromJSONSchema({
304
- const: "hello",
305
- });
306
- expect(schema.parse("hello")).toBe("hello");
307
- expect(() => schema.parse("world")).toThrow();
308
- });
309
-
310
- test("anyOf schema", () => {
311
- const schema = fromJSONSchema({
312
- anyOf: [{ type: "string" }, { type: "number" }],
313
- });
314
- expect(schema.parse("hello")).toBe("hello");
315
- expect(schema.parse(42)).toBe(42);
316
- expect(() => schema.parse(true)).toThrow();
317
- });
318
-
319
- test("allOf schema", () => {
320
- const schema = fromJSONSchema({
321
- allOf: [
322
- { type: "object", properties: { name: { type: "string" } }, required: ["name"] },
323
- { type: "object", properties: { age: { type: "number" } }, required: ["age"] },
324
- ],
325
- });
326
- const result = schema.parse({ name: "John", age: 30 }) as { name: string; age: number };
327
- expect(result.name).toBe("John");
328
- expect(result.age).toBe(30);
329
- });
330
-
331
- test("allOf with empty array", () => {
332
- // Empty allOf without explicit type returns any
333
- const schema1 = fromJSONSchema({
334
- allOf: [],
335
- });
336
- expect(schema1.parse("hello")).toBe("hello");
337
- expect(schema1.parse(123)).toBe(123);
338
- expect(schema1.parse({})).toEqual({});
339
-
340
- // Empty allOf with explicit type returns base schema
341
- const schema2 = fromJSONSchema({
342
- type: "string",
343
- allOf: [],
344
- });
345
- expect(schema2.parse("hello")).toBe("hello");
346
- expect(() => schema2.parse(123)).toThrow();
347
- });
348
-
349
- test("oneOf schema (exclusive union)", () => {
350
- const schema = fromJSONSchema({
351
- oneOf: [{ type: "string" }, { type: "number" }],
352
- });
353
- expect(schema.parse("hello")).toBe("hello");
354
- expect(schema.parse(42)).toBe(42);
355
- expect(() => schema.parse(true)).toThrow();
356
- });
357
-
358
- test("type with anyOf creates intersection", () => {
359
- // type: string AND (type:string,minLength:5 OR type:string,pattern:^a)
360
- const schema = fromJSONSchema({
361
- type: "string",
362
- anyOf: [
363
- { type: "string", minLength: 5 },
364
- { type: "string", pattern: "^a" },
365
- ],
366
- });
367
- // Should pass: string AND (minLength:5 OR pattern:^a) - matches minLength
368
- expect(schema.parse("hello")).toBe("hello");
369
- // Should pass: string AND (minLength:5 OR pattern:^a) - matches pattern
370
- expect(schema.parse("abc")).toBe("abc");
371
- // Should fail: string but neither minLength nor pattern match
372
- expect(() => schema.parse("hi")).toThrow();
373
- // Should fail: not a string
374
- expect(() => schema.parse(123)).toThrow();
375
- });
376
-
377
- test("type with oneOf creates intersection", () => {
378
- // type: string AND (exactly one of: type:string,minLength:5 OR type:string,pattern:^a)
379
- const schema = fromJSONSchema({
380
- type: "string",
381
- oneOf: [
382
- { type: "string", minLength: 5 },
383
- { type: "string", pattern: "^a" },
384
- ],
385
- });
386
- // Should pass: string AND minLength:5 (exactly one match - "hello" length 5 >= 5, doesn't start with 'a')
387
- expect(schema.parse("hello")).toBe("hello");
388
- // Should pass: string AND pattern:^a (exactly one match - "abc" starts with 'a', length 3 < 5)
389
- expect(schema.parse("abc")).toBe("abc");
390
- // Should fail: string but neither match
391
- expect(() => schema.parse("hi")).toThrow();
392
- // Should fail: not a string
393
- expect(() => schema.parse(123)).toThrow();
394
- // Should fail: matches both (length >= 5 AND starts with 'a') - exclusive union fails
395
- expect(() => schema.parse("apple")).toThrow();
396
- });
397
-
398
- test("unevaluatedItems throws error", () => {
399
- expect(() => {
400
- fromJSONSchema({
401
- type: "array",
402
- unevaluatedItems: false,
403
- });
404
- }).toThrow("unevaluatedItems is not supported");
405
- });
406
-
407
- test("unevaluatedProperties throws error", () => {
408
- expect(() => {
409
- fromJSONSchema({
410
- type: "object",
411
- unevaluatedProperties: false,
412
- });
413
- }).toThrow("unevaluatedProperties is not supported");
414
- });
415
-
416
- test("if/then/else throws error", () => {
417
- expect(() => {
418
- fromJSONSchema({
419
- if: { type: "string" },
420
- then: { type: "number" },
421
- });
422
- }).toThrow("Conditional schemas");
423
- });
424
-
425
- test("external $ref throws error", () => {
426
- expect(() => {
427
- fromJSONSchema({
428
- $ref: "https://example.com/schema#/definitions/User",
429
- });
430
- }).toThrow("External $ref is not supported");
431
- });
432
-
433
- test("local $ref resolution", () => {
434
- const schema = fromJSONSchema({
435
- $defs: {
436
- User: {
437
- type: "object",
438
- properties: {
439
- name: { type: "string" },
440
- },
441
- required: ["name"],
442
- },
443
- },
444
- $ref: "#/$defs/User",
445
- });
446
- expect(schema.parse({ name: "John" })).toEqual({ name: "John" });
447
- expect(() => schema.parse({})).toThrow();
448
- });
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
-
459
- test("circular $ref with lazy", () => {
460
- const schema = fromJSONSchema({
461
- $defs: {
462
- Node: {
463
- type: "object",
464
- properties: {
465
- value: { type: "string" },
466
- children: {
467
- type: "array",
468
- items: { $ref: "#/$defs/Node" },
469
- },
470
- },
471
- },
472
- },
473
- $ref: "#/$defs/Node",
474
- });
475
- type Node = { value: string; children: Node[] };
476
- const result = schema.parse({
477
- value: "root",
478
- children: [{ value: "child", children: [] }],
479
- }) as Node;
480
- expect(result.value).toBe("root");
481
- expect(result.children[0]?.value).toBe("child");
482
- });
483
-
484
- test("patternProperties", () => {
485
- const schema = fromJSONSchema({
486
- type: "object",
487
- patternProperties: {
488
- "^S_": { type: "string" },
489
- },
490
- });
491
- const result = schema.parse({ S_name: "John", S_age: "30" }) as Record<string, string>;
492
- expect(result.S_name).toBe("John");
493
- expect(result.S_age).toBe("30");
494
- });
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
-
644
- test("patternProperties with regular properties", () => {
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.
646
- const schema = fromJSONSchema({
647
- type: "object",
648
- properties: {
649
- S_name: { type: "string" },
650
- },
651
- patternProperties: {
652
- "^S_": { type: "string" },
653
- },
654
- required: ["S_name"],
655
- });
656
- const result = schema.parse({ S_name: "John", S_extra: "value" }) as Record<string, string>;
657
- expect(result.S_name).toBe("John");
658
- expect(result.S_extra).toBe("value");
659
- });
660
-
661
- test("multiple patternProperties", () => {
662
- const schema = fromJSONSchema({
663
- type: "object",
664
- patternProperties: {
665
- "^S_": { type: "string" },
666
- "^N_": { type: "number" },
667
- },
668
- });
669
- const result = schema.parse({ S_name: "John", N_count: 123 }) as Record<string, string | number>;
670
- expect(result.S_name).toBe("John");
671
- expect(result.N_count).toBe(123);
672
- // Keys not matching any pattern should pass through
673
- const result2 = schema.parse({ S_name: "John", N_count: 123, other: "value" }) as Record<string, string | number>;
674
- expect(result2.other).toBe("value");
675
- });
676
-
677
- test("multiple overlapping patternProperties", () => {
678
- // If a key matches multiple patterns, value must satisfy all schemas
679
- const schema = fromJSONSchema({
680
- type: "object",
681
- patternProperties: {
682
- "^S_": { type: "string" },
683
- "^S_N": { type: "string", minLength: 3 },
684
- },
685
- });
686
- // S_name matches ^S_ but not ^S_N
687
- expect(schema.parse({ S_name: "John" })).toEqual({ S_name: "John" });
688
- // S_N matches both patterns - must satisfy both (string with minLength 3)
689
- expect(schema.parse({ S_N: "abc" })).toEqual({ S_N: "abc" });
690
- expect(() => schema.parse({ S_N: "ab" })).toThrow(); // too short for ^S_N pattern
691
- });
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
-
736
- test("default value", () => {
737
- const schema = fromJSONSchema({
738
- type: "string",
739
- default: "hello",
740
- });
741
- // Default is applied during parsing if value is missing/undefined. This depends on Zod's default behavior
742
- expect(schema.parse("world")).toBe("world");
743
- });
744
-
745
- test("description metadata", () => {
746
- const schema = fromJSONSchema({
747
- type: "string",
748
- description: "A string value",
749
- });
750
- expect(schema.parse("hello")).toBe("hello");
751
- });
752
-
753
- test("version detection - draft-2020-12", () => {
754
- const schema = fromJSONSchema({
755
- $schema: "https://json-schema.org/draft/2020-12/schema",
756
- type: "array",
757
- prefixItems: [{ type: "string" }],
758
- });
759
- expect(schema.parse(["hello"])).toEqual(["hello"]);
760
- });
761
-
762
- test("version detection - draft-7", () => {
763
- const schema = fromJSONSchema({
764
- $schema: "http://json-schema.org/draft-07/schema#",
765
- type: "array",
766
- items: [{ type: "string" }],
767
- });
768
- expect(schema.parse(["hello"])).toEqual(["hello"]);
769
- });
770
-
771
- test("version detection - draft-4", () => {
772
- const schema = fromJSONSchema({
773
- $schema: "http://json-schema.org/draft-04/schema#",
774
- type: "array",
775
- items: [{ type: "string" }],
776
- });
777
- expect(schema.parse(["hello"])).toEqual(["hello"]);
778
- });
779
-
780
- test("default version (draft-2020-12)", () => {
781
- const schema = fromJSONSchema({
782
- type: "array",
783
- prefixItems: [{ type: "string" }],
784
- });
785
- expect(schema.parse(["hello"])).toEqual(["hello"]);
786
- });
787
-
788
- test("string format - email", () => {
789
- const schema = fromJSONSchema({
790
- type: "string",
791
- format: "email",
792
- });
793
- expect(schema.parse("test@example.com")).toBe("test@example.com");
794
- });
795
-
796
- test("string format - uuid", () => {
797
- const schema = fromJSONSchema({
798
- type: "string",
799
- format: "uuid",
800
- });
801
- const uuid = "550e8400-e29b-41d4-a716-446655440000";
802
- expect(schema.parse(uuid)).toBe(uuid);
803
- });
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
-
852
- test("exclusiveMinimum and exclusiveMaximum", () => {
853
- const schema = fromJSONSchema({
854
- type: "number",
855
- exclusiveMinimum: 0,
856
- exclusiveMaximum: 100,
857
- });
858
- expect(schema.parse(50)).toBe(50);
859
- expect(() => schema.parse(0)).toThrow();
860
- expect(() => schema.parse(100)).toThrow();
861
- });
862
-
863
- test("boolean schema (true/false)", () => {
864
- const trueSchema = fromJSONSchema(true);
865
- expect(trueSchema.parse("anything")).toBe("anything");
866
-
867
- const falseSchema = fromJSONSchema(false);
868
- expect(() => falseSchema.parse("anything")).toThrow();
869
- });
870
-
871
- test("empty object schema", () => {
872
- const schema = fromJSONSchema({
873
- type: "object",
874
- });
875
- expect(schema.parse({})).toEqual({});
876
- expect(schema.parse({ extra: "field" })).toEqual({ extra: "field" });
877
- });
878
-
879
- test("array without items", () => {
880
- const schema = fromJSONSchema({
881
- type: "array",
882
- });
883
- expect(schema.parse([1, "string", true])).toEqual([1, "string", true]);
884
- });
885
-
886
- test("mixed enum types", () => {
887
- const schema = fromJSONSchema({
888
- enum: ["string", 42, true, null],
889
- });
890
- expect(schema.parse("string")).toBe("string");
891
- expect(schema.parse(42)).toBe(42);
892
- expect(schema.parse(true)).toBe(true);
893
- expect(schema.parse(null)).toBe(null);
894
- });
895
-
896
- test("nullable in OpenAPI 3.0", () => {
897
- // General nullable case (not just enum: [null])
898
- const stringSchema = fromJSONSchema(
899
- {
900
- type: "string",
901
- nullable: true,
902
- },
903
- { defaultTarget: "openapi-3.0" }
904
- );
905
- expect(stringSchema.parse("hello")).toBe("hello");
906
- expect(stringSchema.parse(null)).toBe(null);
907
- expect(() => stringSchema.parse(123)).toThrow();
908
-
909
- const numberSchema = fromJSONSchema(
910
- {
911
- type: "number",
912
- nullable: true,
913
- },
914
- { defaultTarget: "openapi-3.0" }
915
- );
916
- expect(numberSchema.parse(42)).toBe(42);
917
- expect(numberSchema.parse(null)).toBe(null);
918
- expect(() => numberSchema.parse("string")).toThrow();
919
-
920
- const objectSchema = fromJSONSchema(
921
- {
922
- type: "object",
923
- properties: { name: { type: "string" } },
924
- nullable: true,
925
- },
926
- { defaultTarget: "openapi-3.0" }
927
- );
928
- expect(objectSchema.parse({ name: "John" })).toEqual({ name: "John" });
929
- expect(objectSchema.parse(null)).toBe(null);
930
- });
931
-
932
- // Metadata extraction tests
933
-
934
- test("unrecognized keys stored in globalRegistry by default", () => {
935
- const schema = fromJSONSchema({
936
- type: "string",
937
- title: "My String",
938
- deprecated: true,
939
- examples: ["hello", "world"],
940
- "x-custom": "custom value",
941
- });
942
-
943
- const meta = z.globalRegistry.get(schema);
944
- expect(meta).toBeDefined();
945
- expect(meta?.title).toBe("My String");
946
- expect(meta?.deprecated).toBe(true);
947
- expect(meta?.examples).toEqual(["hello", "world"]);
948
- expect((meta as any)?.["x-custom"]).toBe("custom value");
949
-
950
- // Clean up
951
- z.globalRegistry.remove(schema);
952
- });
953
-
954
- test("unrecognized keys stored in custom registry", () => {
955
- const customRegistry = z.registry<{ title?: string; deprecated?: boolean }>();
956
-
957
- const schema = fromJSONSchema(
958
- {
959
- type: "number",
960
- title: "Age",
961
- deprecated: true,
962
- },
963
- { registry: customRegistry }
964
- );
965
-
966
- // Should be in custom registry
967
- const meta = customRegistry.get(schema);
968
- expect(meta).toBeDefined();
969
- expect(meta?.title).toBe("Age");
970
- expect(meta?.deprecated).toBe(true);
971
-
972
- // Should NOT be in globalRegistry
973
- expect(z.globalRegistry.get(schema)).toBeUndefined();
974
- });
975
-
976
- test("$id and id are captured as metadata", () => {
977
- const customRegistry = z.registry<{ $id?: string; id?: string }>();
978
-
979
- const schema1 = fromJSONSchema(
980
- {
981
- $id: "https://example.com/schemas/user",
982
- type: "object",
983
- },
984
- { registry: customRegistry }
985
- );
986
- expect(customRegistry.get(schema1)?.$id).toBe("https://example.com/schemas/user");
987
-
988
- const schema2 = fromJSONSchema(
989
- {
990
- id: "legacy-id",
991
- type: "string",
992
- },
993
- { registry: customRegistry }
994
- );
995
- expect(customRegistry.get(schema2)?.id).toBe("legacy-id");
996
- });
997
-
998
- test("x-* extension keys are captured as metadata", () => {
999
- const customRegistry = z.registry<Record<string, unknown>>();
1000
-
1001
- const schema = fromJSONSchema(
1002
- {
1003
- type: "string",
1004
- "x-openapi-example": "example value",
1005
- "x-internal": true,
1006
- "x-tags": ["api", "public"],
1007
- },
1008
- { registry: customRegistry }
1009
- );
1010
-
1011
- const meta = customRegistry.get(schema);
1012
- expect(meta?.["x-openapi-example"]).toBe("example value");
1013
- expect(meta?.["x-internal"]).toBe(true);
1014
- expect(meta?.["x-tags"]).toEqual(["api", "public"]);
1015
- });
1016
-
1017
- test("metadata on nested schemas", () => {
1018
- const customRegistry = z.registry<Record<string, unknown>>();
1019
-
1020
- const parentSchema = fromJSONSchema(
1021
- {
1022
- type: "object",
1023
- title: "User",
1024
- properties: {
1025
- name: {
1026
- type: "string",
1027
- title: "Name",
1028
- "x-field-order": 1,
1029
- },
1030
- age: {
1031
- type: "number",
1032
- title: "Age",
1033
- deprecated: true,
1034
- },
1035
- },
1036
- },
1037
- { registry: customRegistry }
1038
- );
1039
-
1040
- // Verify parent schema has its metadata
1041
- expect(customRegistry.get(parentSchema)?.title).toBe("User");
1042
-
1043
- // We can't easily access nested schemas directly, but we can verify the registry is being used correctly by checking a separate schema
1044
- const simpleSchema = fromJSONSchema(
1045
- {
1046
- type: "string",
1047
- title: "Simple",
1048
- },
1049
- { registry: customRegistry }
1050
- );
1051
- expect(customRegistry.get(simpleSchema)?.title).toBe("Simple");
1052
- });
1053
-
1054
- test("no metadata added when no unrecognized keys", () => {
1055
- const customRegistry = z.registry<Record<string, unknown>>();
1056
-
1057
- const schema = fromJSONSchema(
1058
- {
1059
- type: "string",
1060
- minLength: 1,
1061
- maxLength: 100,
1062
- description: "A regular string",
1063
- },
1064
- { registry: customRegistry }
1065
- );
1066
-
1067
- // description is handled via .describe(), so it shouldn't be in metadata. All other keys are recognized, so no metadata should be added
1068
- expect(customRegistry.get(schema)).toBeUndefined();
1069
- });
1070
-
1071
- test("writeOnly and examples are captured as metadata", () => {
1072
- const customRegistry = z.registry<{ writeOnly?: boolean; examples?: unknown[] }>();
1073
-
1074
- const schema = fromJSONSchema(
1075
- {
1076
- type: "string",
1077
- writeOnly: true,
1078
- examples: ["password123", "secret"],
1079
- },
1080
- { registry: customRegistry }
1081
- );
1082
-
1083
- const meta = customRegistry.get(schema);
1084
- expect(meta?.writeOnly).toBe(true);
1085
- expect(meta?.examples).toEqual(["password123", "secret"]);
1086
- });
1087
-
1088
- test("$comment and $anchor are captured as metadata", () => {
1089
- const customRegistry = z.registry<{ $comment?: string; $anchor?: string }>();
1090
-
1091
- const schema = fromJSONSchema(
1092
- {
1093
- type: "string",
1094
- $comment: "This is a developer note",
1095
- $anchor: "my-anchor",
1096
- },
1097
- { registry: customRegistry }
1098
- );
1099
-
1100
- const meta = customRegistry.get(schema);
1101
- expect(meta?.$comment).toBe("This is a developer note");
1102
- expect(meta?.$anchor).toBe("my-anchor");
1103
- });
1104
-
1105
- test("contentEncoding and contentMediaType are stored as metadata", () => {
1106
- const customRegistry = z.registry<{ contentEncoding?: string; contentMediaType?: string }>();
1107
-
1108
- const schema = fromJSONSchema(
1109
- {
1110
- type: "string",
1111
- contentEncoding: "base64",
1112
- contentMediaType: "image/png",
1113
- },
1114
- { registry: customRegistry }
1115
- );
1116
-
1117
- // Should just be a string schema
1118
- expect(schema.parse("aGVsbG8gd29ybGQ=")).toBe("aGVsbG8gd29ybGQ=");
1119
-
1120
- // Content keywords should be in metadata
1121
- const meta = customRegistry.get(schema);
1122
- expect(meta?.contentEncoding).toBe("base64");
1123
- expect(meta?.contentMediaType).toBe("image/png");
1124
- });
1125
-
1126
- test("description on enum schema is applied", () => {
1127
- const schema = fromJSONSchema({
1128
- enum: ["red", "green", "blue"],
1129
- description: "A color value",
1130
- });
1131
- expect(schema.description).toBe("A color value");
1132
- expect(schema.parse("red")).toBe("red");
1133
- });
1134
-
1135
- test("description on const schema is applied", () => {
1136
- const schema = fromJSONSchema({
1137
- const: "hello",
1138
- description: "A greeting",
1139
- });
1140
- expect(schema.description).toBe("A greeting");
1141
- expect(schema.parse("hello")).toBe("hello");
1142
- });
1143
-
1144
- test("description on not: {} (never) schema is applied", () => {
1145
- const schema = fromJSONSchema({
1146
- not: {},
1147
- description: "A never schema",
1148
- });
1149
- expect(schema.description).toBe("A never schema");
1150
- expect(() => schema.parse("anything")).toThrow();
1151
- });
1152
-
1153
- test("default on enum schema is applied", () => {
1154
- const schema = fromJSONSchema({
1155
- enum: ["red", "green", "blue"],
1156
- default: "red",
1157
- });
1158
- expect(schema.parse(undefined)).toBe("red");
1159
- });
1160
-
1161
- test("default on const schema is applied", () => {
1162
- const schema = fromJSONSchema({
1163
- const: "hello",
1164
- default: "hello",
1165
- });
1166
- expect(schema.parse(undefined)).toBe("hello");
1167
- });
1168
-
1169
- test("description and default on enum schema are both applied", () => {
1170
- const schema = fromJSONSchema({
1171
- enum: ["red", "green", "blue"],
1172
- description: "A color value",
1173
- default: "red",
1174
- });
1175
- expect(schema.description).toBe("A color value");
1176
- expect(schema.parse(undefined)).toBe("red");
1177
- expect(schema.parse("green")).toBe("green");
1178
- });
1179
-
1180
- test("description on type-array schema is applied", () => {
1181
- const schema = fromJSONSchema({
1182
- type: ["string", "number"],
1183
- description: "A string or number",
1184
- } as any);
1185
- expect(schema.description).toBe("A string or number");
1186
- expect(schema.parse("hello")).toBe("hello");
1187
- expect(schema.parse(42)).toBe(42);
1188
- });
1189
-
1190
- test("default on type-array schema is applied", () => {
1191
- const schema = fromJSONSchema({
1192
- type: ["string", "number"],
1193
- default: "fallback",
1194
- } as any);
1195
- expect(schema.parse(undefined)).toBe("fallback");
1196
- expect(schema.parse("hello")).toBe("hello");
1197
- expect(schema.parse(42)).toBe(42);
1198
- });
1199
-
1200
- test("description on schema with anyOf is applied to the outer schema", () => {
1201
- const schema = fromJSONSchema({
1202
- description: "Either a string or a number",
1203
- anyOf: [{ type: "string" }, { type: "number" }],
1204
- });
1205
- expect(schema.description).toBe("Either a string or a number");
1206
- expect(schema.parse("hello")).toBe("hello");
1207
- expect(schema.parse(42)).toBe(42);
1208
- });
1209
-
1210
- test("default on schema with anyOf is applied to the outer schema", () => {
1211
- const schema = fromJSONSchema({
1212
- default: "fallback",
1213
- anyOf: [{ type: "string" }, { type: "number" }],
1214
- });
1215
- expect(schema.parse(undefined)).toBe("fallback");
1216
- expect(schema.parse(42)).toBe(42);
1217
- });
1218
-
1219
- test("description and unrecognized metadata coexist on the same schema", () => {
1220
- const customRegistry = z.registry<{ "x-custom"?: string; description?: string }>();
1221
- const schema = fromJSONSchema(
1222
- {
1223
- type: "string",
1224
- description: "A custom string",
1225
- "x-custom": "value",
1226
- },
1227
- { registry: customRegistry }
1228
- );
1229
- expect(schema.description).toBe("A custom string");
1230
- expect(customRegistry.get(schema)?.["x-custom"]).toBe("value");
1231
- });
1232
-
1233
- test("circular input throws a clear error", () => {
1234
- const person: any = {
1235
- type: "object",
1236
- properties: { name: { type: "string" } },
1237
- required: ["name"],
1238
- };
1239
- person.properties.bestFriend = person;
1240
- expect(() => fromJSONSchema(person)).toThrow(/not valid JSON/);
1241
- });
1242
-
1243
- test("getter-based input that synthesizes a cycle throws", () => {
1244
- const root: any = { type: "object", properties: { name: { type: "string" } } };
1245
- Object.defineProperty(root.properties, "self", {
1246
- enumerable: true,
1247
- get() {
1248
- return root;
1249
- },
1250
- });
1251
- expect(() => fromJSONSchema(root)).toThrow(/not valid JSON/);
1252
- });
1253
-
1254
- test("BigInt in input throws", () => {
1255
- const input: any = { type: "integer", minimum: 1n };
1256
- expect(() => fromJSONSchema(input)).toThrow(/not valid JSON/);
1257
- });
1258
-
1259
- test("class-instance input is normalized to a plain object", () => {
1260
- class StringSchema {
1261
- type = "string" as const;
1262
- minLength = 2;
1263
- }
1264
- const schema = fromJSONSchema(new StringSchema() as any);
1265
- expect(schema.parse("hi")).toBe("hi");
1266
- expect(() => schema.parse("h")).toThrow();
1267
- });
1268
-
1269
- test("getter-based properties are materialized", () => {
1270
- const input: any = { type: "object", properties: {}, required: [] };
1271
- Object.defineProperty(input.properties, "name", {
1272
- enumerable: true,
1273
- get() {
1274
- return { type: "string" };
1275
- },
1276
- });
1277
- const schema = fromJSONSchema(input);
1278
- expect(schema.parse({ name: "Alice" })).toEqual({ name: "Alice" });
1279
- });
1280
-
1281
- test("Date default is coerced to its JSON string form", () => {
1282
- const date = new Date("2026-01-02T03:04:05.000Z");
1283
- const schema = fromJSONSchema({ type: "string", default: date as any });
1284
- expect(schema.parse(undefined)).toBe(date.toISOString());
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
- });
1311
-
1312
- test("minProperties and maxProperties count the raw input", () => {
1313
- const schema = fromJSONSchema({
1314
- type: "object",
1315
- properties: { a: { type: "string" } },
1316
- minProperties: 1,
1317
- maxProperties: 2,
1318
- });
1319
- expect(schema.safeParse({ a: "x" }).success).toBe(true);
1320
- expect(schema.safeParse({}).error!.issues[0]).toMatchObject({ code: "too_small", origin: "object", minimum: 1 });
1321
- expect(schema.safeParse({ a: "x", b: 1, c: 2 }).error!.issues[0]).toMatchObject({
1322
- code: "too_big",
1323
- origin: "object",
1324
- maximum: 2,
1325
- });
1326
- // raw input: a defaulted property does not satisfy the minimum, and a dropped __proto__ still counts
1327
- const defaulted = fromJSONSchema({
1328
- type: "object",
1329
- properties: { a: { type: "string", default: "x" } },
1330
- minProperties: 1,
1331
- });
1332
- expect(defaulted.safeParse({}).success).toBe(false);
1333
- const capped = fromJSONSchema({ type: "object", maxProperties: 1 });
1334
- expect(capped.safeParse(JSON.parse('{"__proto__":1,"a":1}')).success).toBe(false);
1335
- expect(z.toJSONSchema(schema)).toMatchObject({ minProperties: 1, maxProperties: 2 });
1336
- });
1337
-
1338
- test("minProperties composes with propertyNames in one guard", () => {
1339
- const schema = fromJSONSchema({ type: "object", propertyNames: { pattern: "^a" }, minProperties: 1 });
1340
- expect(schema.safeParse({}).error!.issues[0]!.code).toBe("too_small");
1341
- expect(schema.safeParse({ b: 1 }).error!.issues[0]!.code).toBe("invalid_key");
1342
- expect(schema.safeParse({ a: 1 }).success).toBe(true);
1343
- });
1344
-
1345
- test("uniqueItems rejects structural duplicates", () => {
1346
- const schema = fromJSONSchema({ type: "array", uniqueItems: true });
1347
- expect(
1348
- schema.safeParse([
1349
- { a: 1, b: 2 },
1350
- { b: 2, a: 1 },
1351
- ]).error!.issues[0]
1352
- ).toMatchObject({
1353
- code: "custom",
1354
- path: [1],
1355
- });
1356
- expect(schema.safeParse([1, "1", true, 1]).success).toBe(false);
1357
- expect(schema.safeParse([{ a: 1 }, { a: 2 }, [1], [2]]).success).toBe(true);
1358
- expect(z.toJSONSchema(schema)).toMatchObject({ uniqueItems: true });
1359
- });
1360
-
1361
- test("contains with minContains and maxContains", () => {
1362
- const schema = fromJSONSchema({ type: "array", contains: { type: "integer" } });
1363
- expect(schema.safeParse(["a"]).success).toBe(false);
1364
- expect(schema.safeParse(["a", 1]).success).toBe(true);
1365
- const bounded = fromJSONSchema({ type: "array", contains: { type: "integer" }, minContains: 2, maxContains: 3 });
1366
- expect(bounded.safeParse([1, "a"]).success).toBe(false);
1367
- expect(bounded.safeParse([1, 2, "a"]).success).toBe(true);
1368
- expect(bounded.safeParse([1, 2, 3, 4]).success).toBe(false);
1369
- // minContains: 0 accepts an array with no matches at all
1370
- expect(fromJSONSchema({ type: "array", contains: { type: "integer" }, minContains: 0 }).safeParse([]).success).toBe(
1371
- true
1372
- );
1373
- expect(z.toJSONSchema(bounded)).toMatchObject({ contains: { type: "integer" }, minContains: 2, maxContains: 3 });
1374
- });
1375
-
1376
- test("uniqueItems and contains see the raw instance, not the parsed output", () => {
1377
- const items = { type: "object", properties: { a: { type: "string", default: "x" } } } as const;
1378
- // no instance item carries `a`; the default must not synthesize the match
1379
- const contains = fromJSONSchema({
1380
- type: "array",
1381
- items,
1382
- contains: { type: "object", properties: { a: { const: "x" } }, required: ["a"] },
1383
- });
1384
- expect(contains.safeParse([{}]).success).toBe(false);
1385
- expect(contains.safeParse([{ a: "x" }]).success).toBe(true);
1386
- // the instance items differ; the default must not collapse them into duplicates
1387
- const unique = fromJSONSchema({ type: "array", items, uniqueItems: true });
1388
- expect(unique.safeParse([{ a: "x" }, {}]).success).toBe(true);
1389
- expect(unique.safeParse([{}, {}]).error!.issues[0]).toMatchObject({ code: "custom", path: [1] });
1390
- });
1391
-
1392
- test("a guard keyword takes precedence over the length keywords", () => {
1393
- const schema = fromJSONSchema({ type: "array", items: { type: "integer" }, minItems: 3, uniqueItems: true });
1394
- // the guard runs on the input side of the pipe, so its issue aborts before minItems is reached
1395
- expect(schema.safeParse([1, 1]).error!.issues.map((i) => i.code)).toEqual(["custom"]);
1396
- expect(schema.safeParse([1, 2]).error!.issues.map((i) => i.code)).toEqual(["too_small"]);
1397
- });
1398
-
1399
- test("a guard keyword drops default and examples from the input-mode document", () => {
1400
- // the guard is a transform on the pipe's input side, and toJSONSchema strips annotations from a transforming schema in input mode
1401
- const schema = fromJSONSchema({ type: "array", uniqueItems: true, default: [], examples: [[1]] });
1402
- expect(z.toJSONSchema(schema, { io: "input" })).not.toHaveProperty("default");
1403
- expect(z.toJSONSchema(schema, { io: "output" })).toMatchObject({ default: [], examples: [[1]] });
1404
- // without a guard keyword both modes carry them
1405
- const plain = fromJSONSchema({ type: "array", default: [], examples: [[1]] });
1406
- expect(z.toJSONSchema(plain, { io: "input" })).toMatchObject({ default: [], examples: [[1]] });
1407
- });
1408
-
1409
- test("uniqueItems equality follows JSON semantics", () => {
1410
- const schema = fromJSONSchema({ type: "array", uniqueItems: true });
1411
- expect(schema.safeParse([1, "1", true, null]).success).toBe(true);
1412
- expect(schema.safeParse([{ a: undefined }, {}]).success).toBe(true);
1413
- expect(
1414
- schema.safeParse([
1415
- [1, [2]],
1416
- [1, [2]],
1417
- ]).success
1418
- ).toBe(false);
1419
- expect(schema.safeParse([{ a: "b=c" }, { "a=b": "c" }]).success).toBe(true);
1420
- // every duplicate is reported against the first element it matches
1421
- expect(schema.safeParse([1, 1, 1]).error!.issues.map((i) => i.path[0])).toEqual([1, 2]);
1422
- // a cycle cannot be compared, so it is never called a duplicate rather than hanging
1423
- const cyclic: any = {};
1424
- cyclic.self = cyclic;
1425
- expect(schema.safeParse([cyclic, cyclic]).success).toBe(true);
1426
- });
1427
-
1428
- test("a carried subschema that references $defs is dropped rather than emitted dangling", () => {
1429
- const schema = fromJSONSchema({
1430
- type: "array",
1431
- contains: { $ref: "#/$defs/Hit" },
1432
- $defs: { Hit: { type: "object", properties: { id: { type: "string" } }, required: ["id"] } },
1433
- });
1434
- // enforcement is unaffected; only the round trip gives the keyword up
1435
- expect(schema.safeParse([{ id: "a" }]).success).toBe(true);
1436
- expect(schema.safeParse([{}]).success).toBe(false);
1437
- expect(JSON.stringify(z.toJSONSchema(schema))).not.toContain("$ref");
1438
- expect(z.toJSONSchema(schema)).not.toHaveProperty("contains");
1439
- // an inline subschema is self-contained, so it still round-trips
1440
- const inline = fromJSONSchema({ type: "array", contains: { type: "integer" } });
1441
- expect(z.toJSONSchema(inline)).toMatchObject({ contains: { type: "integer" } });
1442
- // only schema positions are walked, so a `$ref` key in instance data or an unknown annotation still travels
1443
- for (const annotation of [{ default: { $ref: "literal" } }, { "x-note": { $ref: "literal" } }]) {
1444
- const annotated = fromJSONSchema({ type: "array", contains: { type: "integer", ...annotation } });
1445
- expect(annotated.safeParse(["x"]).success).toBe(false);
1446
- expect(z.toJSONSchema(annotated)).toMatchObject({ contains: { type: "integer" } });
1447
- }
1448
- // draft-7 `dependencies` is a schema map; its array form names properties and holds no reference
1449
- const dependent = fromJSONSchema({
1450
- type: "array",
1451
- contains: { type: "object", dependencies: { a: { $ref: "#/definitions/Hit" } } },
1452
- definitions: { Hit: { type: "object" } },
1453
- });
1454
- expect(z.toJSONSchema(dependent)).not.toHaveProperty("contains");
1455
- const named = fromJSONSchema({
1456
- type: "array",
1457
- contains: { type: "object", dependencies: { a: ["b"] } },
1458
- });
1459
- expect(z.toJSONSchema(named)).toMatchObject({ contains: { dependencies: { a: ["b"] } } });
1460
- // a reference nested in a schema position is still caught
1461
- const nested = fromJSONSchema({
1462
- type: "array",
1463
- contains: { type: "array", items: { $ref: "#/$defs/Hit" } },
1464
- $defs: { Hit: { type: "string" } },
1465
- });
1466
- expect(z.toJSONSchema(nested)).not.toHaveProperty("contains");
1467
- });