@maroonedog/luq 0.1.2-alpha → 2.1.0

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 (1319) hide show
  1. package/LICENSE +9 -9
  2. package/README.md +479 -215
  3. package/dist/async/async-context.d.ts +41 -0
  4. package/dist/async/async-context.js +84 -0
  5. package/dist/async/async-context.mjs +79 -0
  6. package/dist/async/async-validator.d.ts +20 -0
  7. package/dist/async/async-validator.js +52 -0
  8. package/dist/async/async-validator.mjs +47 -0
  9. package/dist/async/index.d.ts +4 -0
  10. package/dist/async/index.js +25 -0
  11. package/dist/async/index.mjs +16 -0
  12. package/dist/async.d.ts +1 -0
  13. package/dist/async.js +2 -0
  14. package/dist/async.mjs +1 -0
  15. package/dist/builder/builder-surface.types.d.ts +39 -0
  16. package/dist/builder/builder-surface.types.js +2 -0
  17. package/dist/builder/builder-surface.types.mjs +1 -0
  18. package/dist/builder/compile-declarations.d.ts +4 -0
  19. package/dist/builder/compile-declarations.js +40 -0
  20. package/dist/builder/compile-declarations.mjs +37 -0
  21. package/dist/builder/create-builder.d.ts +16 -0
  22. package/dist/builder/create-builder.js +98 -0
  23. package/dist/builder/create-builder.mjs +92 -0
  24. package/dist/builder/create-field-builder.d.ts +5 -0
  25. package/dist/builder/create-field-builder.js +47 -0
  26. package/dist/builder/create-field-builder.mjs +44 -0
  27. package/dist/builder/create-plan-validator.d.ts +3 -0
  28. package/dist/builder/create-plan-validator.js +15 -0
  29. package/dist/builder/create-plan-validator.mjs +12 -0
  30. package/dist/builder/create-projection-reader.d.ts +3 -0
  31. package/dist/builder/create-projection-reader.js +44 -0
  32. package/dist/builder/create-projection-reader.mjs +41 -0
  33. package/dist/builder/create-subset-validator.d.ts +3 -0
  34. package/dist/builder/create-subset-validator.js +40 -0
  35. package/dist/builder/create-subset-validator.mjs +37 -0
  36. package/dist/builder/field-builder.types.d.ts +43 -0
  37. package/dist/builder/field-builder.types.js +11 -0
  38. package/dist/builder/field-builder.types.mjs +8 -0
  39. package/dist/builder/field-entry.types.d.ts +10 -0
  40. package/dist/builder/field-entry.types.js +2 -0
  41. package/dist/builder/field-entry.types.mjs +1 -0
  42. package/dist/builder/field-options.types.d.ts +11 -0
  43. package/dist/builder/field-options.types.js +13 -0
  44. package/dist/builder/field-options.types.mjs +12 -0
  45. package/dist/builder/global-config-store.d.ts +4 -0
  46. package/dist/builder/global-config-store.js +29 -0
  47. package/dist/builder/global-config-store.mjs +24 -0
  48. package/dist/builder/index.d.ts +6 -0
  49. package/dist/builder/index.js +17 -0
  50. package/dist/builder/index.mjs +8 -0
  51. package/dist/builder/resolve-field-default.d.ts +14 -0
  52. package/dist/builder/resolve-field-default.js +50 -0
  53. package/dist/builder/resolve-field-default.mjs +47 -0
  54. package/dist/builder/validator.types.d.ts +28 -0
  55. package/dist/builder/validator.types.js +2 -0
  56. package/dist/builder/validator.types.mjs +1 -0
  57. package/dist/chain/attach-slot-methods.d.ts +17 -0
  58. package/dist/chain/attach-slot-methods.js +47 -0
  59. package/dist/chain/attach-slot-methods.mjs +42 -0
  60. package/dist/chain/chain-method.types.d.ts +16 -0
  61. package/dist/chain/chain-method.types.js +2 -0
  62. package/dist/chain/chain-method.types.mjs +1 -0
  63. package/dist/chain/chain-state.types.d.ts +47 -0
  64. package/dist/chain/chain-state.types.js +2 -0
  65. package/dist/chain/chain-state.types.mjs +1 -0
  66. package/dist/chain/collect-branch-rules.d.ts +18 -0
  67. package/dist/chain/collect-branch-rules.js +71 -0
  68. package/dist/chain/collect-branch-rules.mjs +65 -0
  69. package/dist/chain/collect-field-rules.d.ts +10 -0
  70. package/dist/chain/collect-field-rules.js +22 -0
  71. package/dist/chain/collect-field-rules.mjs +17 -0
  72. package/dist/chain/create-chain-node.d.ts +26 -0
  73. package/dist/chain/create-chain-node.js +103 -0
  74. package/dist/chain/create-chain-node.mjs +98 -0
  75. package/dist/chain/create-field-slots.d.ts +6 -0
  76. package/dist/chain/create-field-slots.js +37 -0
  77. package/dist/chain/create-field-slots.mjs +33 -0
  78. package/dist/chain/field-chain.types.d.ts +25 -0
  79. package/dist/chain/field-chain.types.js +2 -0
  80. package/dist/chain/field-chain.types.mjs +1 -0
  81. package/dist/chain/field-slots.types.d.ts +18 -0
  82. package/dist/chain/field-slots.types.js +2 -0
  83. package/dist/chain/field-slots.types.mjs +1 -0
  84. package/dist/chain/index.d.ts +13 -0
  85. package/dist/chain/index.js +26 -0
  86. package/dist/chain/index.mjs +9 -0
  87. package/dist/chain/marker-coverage.types.d.ts +56 -0
  88. package/dist/chain/marker-coverage.types.js +2 -0
  89. package/dist/chain/marker-coverage.types.mjs +1 -0
  90. package/dist/chain/plugin-bag.types.d.ts +9 -0
  91. package/dist/chain/plugin-bag.types.js +2 -0
  92. package/dist/chain/plugin-bag.types.mjs +1 -0
  93. package/dist/chain/refine-methods.types.d.ts +33 -0
  94. package/dist/chain/refine-methods.types.js +14 -0
  95. package/dist/chain/refine-methods.types.mjs +11 -0
  96. package/dist/chain/resolve-args.types.d.ts +28 -0
  97. package/dist/chain/resolve-args.types.js +2 -0
  98. package/dist/chain/resolve-args.types.mjs +1 -0
  99. package/dist/chain/slot-value.types.d.ts +14 -0
  100. package/dist/chain/slot-value.types.js +2 -0
  101. package/dist/chain/slot-value.types.mjs +1 -0
  102. package/dist/compile/branch-executor.port.d.ts +6 -0
  103. package/dist/compile/branch-executor.port.js +2 -0
  104. package/dist/compile/branch-executor.port.mjs +1 -0
  105. package/dist/compile/compile-array-node.d.ts +19 -0
  106. package/dist/compile/compile-array-node.js +50 -0
  107. package/dist/compile/compile-array-node.mjs +46 -0
  108. package/dist/compile/compile-composite.d.ts +18 -0
  109. package/dist/compile/compile-composite.js +30 -0
  110. package/dist/compile/compile-composite.mjs +27 -0
  111. package/dist/compile/compile-field.d.ts +31 -0
  112. package/dist/compile/compile-field.js +67 -0
  113. package/dist/compile/compile-field.mjs +62 -0
  114. package/dist/compile/compile-schema.d.ts +8 -0
  115. package/dist/compile/compile-schema.js +126 -0
  116. package/dist/compile/compile-schema.mjs +121 -0
  117. package/dist/compile/declared-child-keys.d.ts +15 -0
  118. package/dist/compile/declared-child-keys.js +70 -0
  119. package/dist/compile/declared-child-keys.mjs +66 -0
  120. package/dist/compile/group-array-fields.d.ts +39 -0
  121. package/dist/compile/group-array-fields.js +66 -0
  122. package/dist/compile/group-array-fields.mjs +63 -0
  123. package/dist/compile/index.d.ts +18 -0
  124. package/dist/compile/index.js +33 -0
  125. package/dist/compile/index.mjs +10 -0
  126. package/dist/compile/resolve-conditional-presence.d.ts +5 -0
  127. package/dist/compile/resolve-conditional-presence.js +42 -0
  128. package/dist/compile/resolve-conditional-presence.mjs +38 -0
  129. package/dist/compile/resolve-presence.d.ts +6 -0
  130. package/dist/compile/resolve-presence.js +63 -0
  131. package/dist/compile/resolve-presence.mjs +59 -0
  132. package/dist/compile/resolve-recursion.d.ts +10 -0
  133. package/dist/compile/resolve-recursion.js +33 -0
  134. package/dist/compile/resolve-recursion.mjs +28 -0
  135. package/dist/compile/split-rules-by-kind.d.ts +16 -0
  136. package/dist/compile/split-rules-by-kind.js +61 -0
  137. package/dist/compile/split-rules-by-kind.mjs +56 -0
  138. package/dist/compile/validation-plan.types.d.ts +123 -0
  139. package/dist/compile/validation-plan.types.js +2 -0
  140. package/dist/compile/validation-plan.types.mjs +1 -0
  141. package/dist/core/type-erasure.d.ts +42 -0
  142. package/dist/core/type-erasure.js +63 -0
  143. package/dist/core/type-erasure.mjs +57 -0
  144. package/dist/field-rule/create-field-rule.d.ts +11 -0
  145. package/dist/field-rule/create-field-rule.js +50 -0
  146. package/dist/field-rule/create-field-rule.mjs +46 -0
  147. package/dist/field-rule/create-plugin-registry.d.ts +2 -0
  148. package/dist/field-rule/create-plugin-registry.js +60 -0
  149. package/dist/field-rule/create-plugin-registry.mjs +57 -0
  150. package/dist/field-rule/field-rule.types.d.ts +38 -0
  151. package/dist/field-rule/field-rule.types.js +2 -0
  152. package/dist/field-rule/field-rule.types.mjs +1 -0
  153. package/dist/field-rule/index.d.ts +5 -0
  154. package/dist/field-rule/index.js +13 -0
  155. package/dist/field-rule/index.mjs +6 -0
  156. package/dist/field-rule/plugin-registry.types.d.ts +17 -0
  157. package/dist/field-rule/plugin-registry.types.js +2 -0
  158. package/dist/field-rule/plugin-registry.types.mjs +1 -0
  159. package/dist/field-rule/use-field.d.ts +6 -0
  160. package/dist/field-rule/use-field.js +6 -0
  161. package/dist/field-rule/use-field.mjs +3 -0
  162. package/dist/field-rule.d.ts +1 -0
  163. package/dist/field-rule.js +2 -0
  164. package/dist/field-rule.mjs +1 -0
  165. package/dist/index.d.ts +14 -72
  166. package/dist/index.js +48 -2
  167. package/dist/index.mjs +18 -2
  168. package/dist/json-schema/apply-keyword-binding.d.ts +20 -0
  169. package/dist/json-schema/apply-keyword-binding.js +7 -0
  170. package/dist/json-schema/apply-keyword-binding.mjs +4 -0
  171. package/dist/json-schema/bind-keyword.d.ts +7 -0
  172. package/dist/json-schema/bind-keyword.js +21 -0
  173. package/dist/json-schema/bind-keyword.mjs +16 -0
  174. package/dist/json-schema/build-from-schema.d.ts +23 -0
  175. package/dist/json-schema/build-from-schema.js +63 -0
  176. package/dist/json-schema/build-from-schema.mjs +56 -0
  177. package/dist/json-schema/collect-definitions.d.ts +51 -0
  178. package/dist/json-schema/collect-definitions.js +111 -0
  179. package/dist/json-schema/collect-definitions.mjs +101 -0
  180. package/dist/json-schema/collect-sub-schema-rules.d.ts +17 -0
  181. package/dist/json-schema/collect-sub-schema-rules.js +112 -0
  182. package/dist/json-schema/collect-sub-schema-rules.mjs +108 -0
  183. package/dist/json-schema/compose-conditional.d.ts +4 -0
  184. package/dist/json-schema/compose-conditional.js +17 -0
  185. package/dist/json-schema/compose-conditional.mjs +14 -0
  186. package/dist/json-schema/compose-keyword.d.ts +7 -0
  187. package/dist/json-schema/compose-keyword.js +127 -0
  188. package/dist/json-schema/compose-keyword.mjs +121 -0
  189. package/dist/json-schema/create-structural-context.d.ts +20 -0
  190. package/dist/json-schema/create-structural-context.js +117 -0
  191. package/dist/json-schema/create-structural-context.mjs +113 -0
  192. package/dist/json-schema/declare-additional-properties.d.ts +19 -0
  193. package/dist/json-schema/declare-additional-properties.js +42 -0
  194. package/dist/json-schema/declare-additional-properties.mjs +37 -0
  195. package/dist/json-schema/declare-object-keywords.d.ts +22 -0
  196. package/dist/json-schema/declare-object-keywords.js +133 -0
  197. package/dist/json-schema/declare-object-keywords.mjs +126 -0
  198. package/dist/json-schema/declare-presence.d.ts +18 -0
  199. package/dist/json-schema/declare-presence.js +52 -0
  200. package/dist/json-schema/declare-presence.mjs +49 -0
  201. package/dist/json-schema/declare-required-properties.d.ts +18 -0
  202. package/dist/json-schema/declare-required-properties.js +58 -0
  203. package/dist/json-schema/declare-required-properties.mjs +55 -0
  204. package/dist/json-schema/declare-scalar-keywords.d.ts +11 -0
  205. package/dist/json-schema/declare-scalar-keywords.js +110 -0
  206. package/dist/json-schema/declare-scalar-keywords.mjs +105 -0
  207. package/dist/json-schema/declare-value-keywords.d.ts +23 -0
  208. package/dist/json-schema/declare-value-keywords.js +120 -0
  209. package/dist/json-schema/declare-value-keywords.mjs +112 -0
  210. package/dist/json-schema/draft07-keyword-value.types.d.ts +61 -0
  211. package/dist/json-schema/draft07-keyword-value.types.js +2 -0
  212. package/dist/json-schema/draft07-keyword-value.types.mjs +1 -0
  213. package/dist/json-schema/draft07.types.d.ts +57 -0
  214. package/dist/json-schema/draft07.types.js +28 -0
  215. package/dist/json-schema/draft07.types.mjs +24 -0
  216. package/dist/json-schema/extensions/json-schema/index.d.ts +4 -0
  217. package/dist/json-schema/extensions/json-schema/index.js +27 -0
  218. package/dist/json-schema/extensions/json-schema/index.mjs +11 -0
  219. package/dist/json-schema/extensions/json-schema/json-schema.d.ts +33 -0
  220. package/dist/json-schema/extensions/json-schema/json-schema.js +108 -0
  221. package/dist/json-schema/extensions/json-schema/json-schema.mjs +104 -0
  222. package/dist/json-schema/extensions/json-schema-full-feature/bundle-coverage.d.ts +38 -0
  223. package/dist/json-schema/extensions/json-schema-full-feature/bundle-coverage.js +96 -0
  224. package/dist/json-schema/extensions/json-schema-full-feature/bundle-coverage.mjs +89 -0
  225. package/dist/json-schema/extensions/json-schema-full-feature/bundled-plugins.d.ts +7 -0
  226. package/dist/json-schema/extensions/json-schema-full-feature/bundled-plugins.js +107 -0
  227. package/dist/json-schema/extensions/json-schema-full-feature/bundled-plugins.mjs +104 -0
  228. package/dist/json-schema/extensions/json-schema-full-feature/index.d.ts +5 -0
  229. package/dist/json-schema/extensions/json-schema-full-feature/index.js +25 -0
  230. package/dist/json-schema/extensions/json-schema-full-feature/index.mjs +14 -0
  231. package/dist/json-schema/extensions/json-schema-full-feature/json-schema-full-feature.d.ts +24 -0
  232. package/dist/json-schema/extensions/json-schema-full-feature/json-schema-full-feature.js +66 -0
  233. package/dist/json-schema/extensions/json-schema-full-feature/json-schema-full-feature.mjs +62 -0
  234. package/dist/json-schema/flatten-array-schema.d.ts +25 -0
  235. package/dist/json-schema/flatten-array-schema.js +141 -0
  236. package/dist/json-schema/flatten-array-schema.mjs +134 -0
  237. package/dist/json-schema/flatten-schema.d.ts +20 -0
  238. package/dist/json-schema/flatten-schema.js +162 -0
  239. package/dist/json-schema/flatten-schema.mjs +157 -0
  240. package/dist/json-schema/follow-json-pointer.d.ts +23 -0
  241. package/dist/json-schema/follow-json-pointer.js +87 -0
  242. package/dist/json-schema/follow-json-pointer.mjs +82 -0
  243. package/dist/json-schema/format-map.d.ts +20 -0
  244. package/dist/json-schema/format-map.js +89 -0
  245. package/dist/json-schema/format-map.mjs +84 -0
  246. package/dist/json-schema/index.d.ts +24 -0
  247. package/dist/json-schema/index.js +65 -0
  248. package/dist/json-schema/index.mjs +22 -0
  249. package/dist/json-schema/json-schema-bag.types.d.ts +124 -0
  250. package/dist/json-schema/json-schema-bag.types.js +2 -0
  251. package/dist/json-schema/json-schema-bag.types.mjs +1 -0
  252. package/dist/json-schema/keyword-binding.types.d.ts +50 -0
  253. package/dist/json-schema/keyword-binding.types.js +2 -0
  254. package/dist/json-schema/keyword-binding.types.mjs +1 -0
  255. package/dist/json-schema/keyword-map-array.d.ts +13 -0
  256. package/dist/json-schema/keyword-map-array.js +37 -0
  257. package/dist/json-schema/keyword-map-array.mjs +34 -0
  258. package/dist/json-schema/keyword-map-core.d.ts +8 -0
  259. package/dist/json-schema/keyword-map-core.js +54 -0
  260. package/dist/json-schema/keyword-map-core.mjs +51 -0
  261. package/dist/json-schema/keyword-map-number.d.ts +13 -0
  262. package/dist/json-schema/keyword-map-number.js +33 -0
  263. package/dist/json-schema/keyword-map-number.mjs +30 -0
  264. package/dist/json-schema/keyword-map-object.d.ts +17 -0
  265. package/dist/json-schema/keyword-map-object.js +51 -0
  266. package/dist/json-schema/keyword-map-object.mjs +48 -0
  267. package/dist/json-schema/keyword-map-string.d.ts +20 -0
  268. package/dist/json-schema/keyword-map-string.js +44 -0
  269. package/dist/json-schema/keyword-map-string.mjs +41 -0
  270. package/dist/json-schema/keyword-map.d.ts +32 -0
  271. package/dist/json-schema/keyword-map.js +93 -0
  272. package/dist/json-schema/keyword-map.mjs +84 -0
  273. package/dist/json-schema/ref-resolution-error.d.ts +4 -0
  274. package/dist/json-schema/ref-resolution-error.js +20 -0
  275. package/dist/json-schema/ref-resolution-error.mjs +16 -0
  276. package/dist/json-schema/ref-scope.d.ts +18 -0
  277. package/dist/json-schema/ref-scope.js +37 -0
  278. package/dist/json-schema/ref-scope.mjs +33 -0
  279. package/dist/json-schema/resolve-ref.d.ts +21 -0
  280. package/dist/json-schema/resolve-ref.js +133 -0
  281. package/dist/json-schema/resolve-ref.mjs +128 -0
  282. package/dist/json-schema/schema-registry.d.ts +30 -0
  283. package/dist/json-schema/schema-registry.js +142 -0
  284. package/dist/json-schema/schema-registry.mjs +139 -0
  285. package/dist/json-schema/schema-to-declarations.d.ts +9 -0
  286. package/dist/json-schema/schema-to-declarations.js +123 -0
  287. package/dist/json-schema/schema-to-declarations.mjs +117 -0
  288. package/dist/json-schema/structural-expansion.types.d.ts +90 -0
  289. package/dist/json-schema/structural-expansion.types.js +22 -0
  290. package/dist/json-schema/structural-expansion.types.mjs +18 -0
  291. package/dist/json-schema/unsupported-keyword-error.d.ts +5 -0
  292. package/dist/json-schema/unsupported-keyword-error.js +24 -0
  293. package/dist/json-schema/unsupported-keyword-error.mjs +20 -0
  294. package/dist/json-schema/uri-reference.d.ts +29 -0
  295. package/dist/json-schema/uri-reference.js +118 -0
  296. package/dist/json-schema/uri-reference.mjs +111 -0
  297. package/dist/path/create-array-reader.d.ts +13 -0
  298. package/dist/path/create-array-reader.js +22 -0
  299. package/dist/path/create-array-reader.mjs +19 -0
  300. package/dist/path/create-value-reader.d.ts +26 -0
  301. package/dist/path/create-value-reader.js +71 -0
  302. package/dist/path/create-value-reader.mjs +65 -0
  303. package/dist/path/create-value-writer.d.ts +5 -0
  304. package/dist/path/create-value-writer.js +80 -0
  305. package/dist/path/create-value-writer.mjs +77 -0
  306. package/dist/path/element-of.types.d.ts +1 -0
  307. package/dist/path/element-of.types.js +2 -0
  308. package/dist/path/element-of.types.mjs +1 -0
  309. package/dist/path/field-path.types.d.ts +13 -0
  310. package/dist/path/field-path.types.js +2 -0
  311. package/dist/path/field-path.types.mjs +1 -0
  312. package/dist/path/format-issue-path.d.ts +15 -0
  313. package/dist/path/format-issue-path.js +34 -0
  314. package/dist/path/format-issue-path.mjs +31 -0
  315. package/dist/path/index.d.ts +18 -0
  316. package/dist/path/index.js +26 -0
  317. package/dist/path/index.mjs +7 -0
  318. package/dist/path/leaf-path.types.d.ts +16 -0
  319. package/dist/path/leaf-path.types.js +2 -0
  320. package/dist/path/leaf-path.types.mjs +1 -0
  321. package/dist/path/match-path-pattern.d.ts +9 -0
  322. package/dist/path/match-path-pattern.js +66 -0
  323. package/dist/path/match-path-pattern.mjs +63 -0
  324. package/dist/path/opaque-object.types.d.ts +5 -0
  325. package/dist/path/opaque-object.types.js +2 -0
  326. package/dist/path/opaque-object.types.mjs +1 -0
  327. package/dist/path/parse-field-path.d.ts +25 -0
  328. package/dist/path/parse-field-path.js +75 -0
  329. package/dist/path/parse-field-path.mjs +69 -0
  330. package/dist/path/path-depth.types.d.ts +4 -0
  331. package/dist/path/path-depth.types.js +2 -0
  332. package/dist/path/path-depth.types.mjs +1 -0
  333. package/dist/path/path-segment.types.d.ts +27 -0
  334. package/dist/path/path-segment.types.js +2 -0
  335. package/dist/path/path-segment.types.mjs +1 -0
  336. package/dist/path/property-value-of.types.d.ts +2 -0
  337. package/dist/path/property-value-of.types.js +2 -0
  338. package/dist/path/property-value-of.types.mjs +1 -0
  339. package/dist/path/reserved-segment.d.ts +46 -0
  340. package/dist/path/reserved-segment.js +88 -0
  341. package/dist/path/reserved-segment.mjs +82 -0
  342. package/dist/path/value-at-path.types.d.ts +25 -0
  343. package/dist/path/value-at-path.types.js +2 -0
  344. package/dist/path/value-at-path.types.mjs +1 -0
  345. package/dist/plugin-kit/compiled-rule.d.ts +112 -0
  346. package/dist/plugin-kit/compiled-rule.js +2 -0
  347. package/dist/plugin-kit/compiled-rule.mjs +1 -0
  348. package/dist/plugin-kit/create-conditional-presence.d.ts +25 -0
  349. package/dist/plugin-kit/create-conditional-presence.js +32 -0
  350. package/dist/plugin-kit/create-conditional-presence.mjs +28 -0
  351. package/dist/plugin-kit/create-rule.d.ts +59 -0
  352. package/dist/plugin-kit/create-rule.js +68 -0
  353. package/dist/plugin-kit/create-rule.mjs +58 -0
  354. package/dist/plugin-kit/external-context.d.ts +2 -0
  355. package/dist/plugin-kit/external-context.js +25 -0
  356. package/dist/plugin-kit/external-context.mjs +22 -0
  357. package/dist/plugin-kit/index.d.ts +11 -0
  358. package/dist/plugin-kit/index.js +39 -0
  359. package/dist/plugin-kit/index.mjs +23 -0
  360. package/dist/plugin-kit/is-json-value-equal.d.ts +10 -0
  361. package/dist/plugin-kit/is-json-value-equal.js +81 -0
  362. package/dist/plugin-kit/is-json-value-equal.mjs +77 -0
  363. package/dist/plugin-kit/marker.types.d.ts +114 -0
  364. package/dist/plugin-kit/marker.types.js +2 -0
  365. package/dist/plugin-kit/marker.types.mjs +1 -0
  366. package/dist/plugin-kit/plugin-definition.d.ts +55 -0
  367. package/dist/plugin-kit/plugin-definition.js +26 -0
  368. package/dist/plugin-kit/plugin-definition.mjs +21 -0
  369. package/dist/plugin-kit/rule-build-context.d.ts +27 -0
  370. package/dist/plugin-kit/rule-build-context.js +8 -0
  371. package/dist/plugin-kit/rule-build-context.mjs +5 -0
  372. package/dist/plugin-kit/runtime-args.types.d.ts +27 -0
  373. package/dist/plugin-kit/runtime-args.types.js +2 -0
  374. package/dist/plugin-kit/runtime-args.types.mjs +1 -0
  375. package/dist/plugin-kit.d.ts +1 -0
  376. package/dist/plugin-kit.js +2 -0
  377. package/dist/plugin-kit.mjs +1 -0
  378. package/dist/plugins/array-contains/array-contains.d.ts +22 -0
  379. package/dist/plugins/array-contains/array-contains.js +82 -0
  380. package/dist/plugins/array-contains/array-contains.mjs +79 -0
  381. package/dist/plugins/array-contains/index.d.ts +2 -0
  382. package/dist/plugins/array-contains/index.js +5 -0
  383. package/dist/plugins/array-contains/index.mjs +1 -0
  384. package/dist/plugins/array-each/array-each.d.ts +14 -0
  385. package/dist/plugins/array-each/array-each.js +51 -0
  386. package/dist/plugins/array-each/array-each.mjs +48 -0
  387. package/dist/plugins/array-each/index.d.ts +1 -0
  388. package/dist/plugins/array-each/index.js +5 -0
  389. package/dist/plugins/array-each/index.mjs +1 -0
  390. package/dist/plugins/array-includes/array-includes.d.ts +9 -0
  391. package/dist/plugins/array-includes/array-includes.js +26 -0
  392. package/dist/plugins/array-includes/array-includes.mjs +23 -0
  393. package/dist/plugins/array-includes/index.d.ts +2 -0
  394. package/dist/plugins/array-includes/index.js +5 -0
  395. package/dist/plugins/array-includes/index.mjs +1 -0
  396. package/dist/plugins/array-max-length/array-max-length.d.ts +10 -0
  397. package/dist/plugins/array-max-length/array-max-length.js +29 -0
  398. package/dist/plugins/array-max-length/array-max-length.mjs +26 -0
  399. package/dist/plugins/array-max-length/index.d.ts +2 -0
  400. package/dist/plugins/array-max-length/index.js +5 -0
  401. package/dist/plugins/array-max-length/index.mjs +1 -0
  402. package/dist/plugins/array-min-length/array-min-length.d.ts +10 -0
  403. package/dist/plugins/array-min-length/array-min-length.js +29 -0
  404. package/dist/plugins/array-min-length/array-min-length.mjs +26 -0
  405. package/dist/plugins/array-min-length/index.d.ts +2 -0
  406. package/dist/plugins/array-min-length/index.js +5 -0
  407. package/dist/plugins/array-min-length/index.mjs +1 -0
  408. package/dist/plugins/array-unique/array-unique.d.ts +7 -0
  409. package/dist/plugins/array-unique/array-unique.js +54 -0
  410. package/dist/plugins/array-unique/array-unique.mjs +51 -0
  411. package/dist/plugins/array-unique/index.d.ts +1 -0
  412. package/dist/plugins/array-unique/index.js +5 -0
  413. package/dist/plugins/array-unique/index.mjs +1 -0
  414. package/dist/plugins/arrayContains.d.ts +1 -37
  415. package/dist/plugins/arrayContains.js +2 -1
  416. package/dist/plugins/arrayContains.mjs +1 -1
  417. package/dist/plugins/arrayEach.d.ts +1 -0
  418. package/dist/plugins/arrayEach.js +2 -0
  419. package/dist/plugins/arrayEach.mjs +1 -0
  420. package/dist/plugins/arrayIncludes.d.ts +1 -42
  421. package/dist/plugins/arrayIncludes.js +2 -1
  422. package/dist/plugins/arrayIncludes.mjs +1 -1
  423. package/dist/plugins/arrayMaxLength.d.ts +1 -43
  424. package/dist/plugins/arrayMaxLength.js +2 -1
  425. package/dist/plugins/arrayMaxLength.mjs +1 -1
  426. package/dist/plugins/arrayMinLength.d.ts +1 -43
  427. package/dist/plugins/arrayMinLength.js +2 -1
  428. package/dist/plugins/arrayMinLength.mjs +1 -1
  429. package/dist/plugins/arrayUnique.d.ts +1 -41
  430. package/dist/plugins/arrayUnique.js +2 -1
  431. package/dist/plugins/arrayUnique.mjs +1 -1
  432. package/dist/plugins/boolean-falsy/boolean-falsy.d.ts +7 -0
  433. package/dist/plugins/boolean-falsy/boolean-falsy.js +24 -0
  434. package/dist/plugins/boolean-falsy/boolean-falsy.mjs +21 -0
  435. package/dist/plugins/boolean-falsy/index.d.ts +1 -0
  436. package/dist/plugins/boolean-falsy/index.js +5 -0
  437. package/dist/plugins/boolean-falsy/index.mjs +1 -0
  438. package/dist/plugins/boolean-truthy/boolean-truthy.d.ts +7 -0
  439. package/dist/plugins/boolean-truthy/boolean-truthy.js +24 -0
  440. package/dist/plugins/boolean-truthy/boolean-truthy.mjs +21 -0
  441. package/dist/plugins/boolean-truthy/index.d.ts +1 -0
  442. package/dist/plugins/boolean-truthy/index.js +5 -0
  443. package/dist/plugins/boolean-truthy/index.mjs +1 -0
  444. package/dist/plugins/booleanFalsy.d.ts +1 -41
  445. package/dist/plugins/booleanFalsy.js +2 -1
  446. package/dist/plugins/booleanFalsy.mjs +1 -1
  447. package/dist/plugins/booleanTruthy.d.ts +1 -38
  448. package/dist/plugins/booleanTruthy.js +2 -1
  449. package/dist/plugins/booleanTruthy.mjs +1 -1
  450. package/dist/plugins/compare-field/compare-field.d.ts +13 -0
  451. package/dist/plugins/compare-field/compare-field.js +57 -0
  452. package/dist/plugins/compare-field/compare-field.mjs +54 -0
  453. package/dist/plugins/compare-field/index.d.ts +2 -0
  454. package/dist/plugins/compare-field/index.js +5 -0
  455. package/dist/plugins/compare-field/index.mjs +1 -0
  456. package/dist/plugins/compareField.d.ts +1 -58
  457. package/dist/plugins/compareField.js +2 -1
  458. package/dist/plugins/compareField.mjs +1 -1
  459. package/dist/plugins/conditional-schema/conditional-schema.d.ts +17 -0
  460. package/dist/plugins/conditional-schema/conditional-schema.js +87 -0
  461. package/dist/plugins/conditional-schema/conditional-schema.mjs +84 -0
  462. package/dist/plugins/conditional-schema/index.d.ts +2 -0
  463. package/dist/plugins/conditional-schema/index.js +5 -0
  464. package/dist/plugins/conditional-schema/index.mjs +1 -0
  465. package/dist/plugins/conditionalSchema.d.ts +1 -0
  466. package/dist/plugins/conditionalSchema.js +2 -0
  467. package/dist/plugins/conditionalSchema.mjs +1 -0
  468. package/dist/plugins/custom/custom.d.ts +12 -0
  469. package/dist/plugins/custom/custom.js +82 -0
  470. package/dist/plugins/custom/custom.mjs +79 -0
  471. package/dist/plugins/custom/index.d.ts +1 -0
  472. package/dist/plugins/custom/index.js +5 -0
  473. package/dist/plugins/custom/index.mjs +1 -0
  474. package/dist/plugins/custom.d.ts +1 -60
  475. package/dist/plugins/custom.js +2 -1
  476. package/dist/plugins/custom.mjs +1 -1
  477. package/dist/plugins/from-context/from-context.d.ts +28 -0
  478. package/dist/plugins/from-context/from-context.js +84 -0
  479. package/dist/plugins/from-context/from-context.mjs +81 -0
  480. package/dist/plugins/from-context/index.d.ts +2 -0
  481. package/dist/plugins/from-context/index.js +5 -0
  482. package/dist/plugins/from-context/index.mjs +1 -0
  483. package/dist/plugins/fromContext.d.ts +1 -0
  484. package/dist/plugins/fromContext.js +2 -0
  485. package/dist/plugins/fromContext.mjs +1 -0
  486. package/dist/plugins/index.d.ts +1 -0
  487. package/dist/plugins/index.generated.d.ts +77 -0
  488. package/dist/plugins/index.generated.js +160 -0
  489. package/dist/plugins/index.generated.mjs +79 -0
  490. package/dist/plugins/index.js +2 -0
  491. package/dist/plugins/index.mjs +1 -0
  492. package/dist/plugins/jsonSchema.d.ts +1 -11
  493. package/dist/plugins/jsonSchema.js +2 -1
  494. package/dist/plugins/jsonSchema.mjs +1 -1
  495. package/dist/plugins/jsonSchemaFullFeature.d.ts +1 -31
  496. package/dist/plugins/jsonSchemaFullFeature.js +2 -1
  497. package/dist/plugins/jsonSchemaFullFeature.mjs +1 -1
  498. package/dist/plugins/literal/index.d.ts +1 -0
  499. package/dist/plugins/literal/index.js +5 -0
  500. package/dist/plugins/literal/index.mjs +1 -0
  501. package/dist/plugins/literal/literal.d.ts +10 -0
  502. package/dist/plugins/literal/literal.js +53 -0
  503. package/dist/plugins/literal/literal.mjs +50 -0
  504. package/dist/plugins/literal.d.ts +1 -40
  505. package/dist/plugins/literal.js +2 -1
  506. package/dist/plugins/literal.mjs +1 -1
  507. package/dist/plugins/manifest.generated.d.ts +8 -0
  508. package/dist/plugins/manifest.generated.js +83 -0
  509. package/dist/plugins/manifest.generated.mjs +80 -0
  510. package/dist/plugins/nullable/index.d.ts +1 -0
  511. package/dist/plugins/nullable/index.js +5 -0
  512. package/dist/plugins/nullable/index.mjs +1 -0
  513. package/dist/plugins/nullable/nullable.d.ts +7 -0
  514. package/dist/plugins/nullable/nullable.js +39 -0
  515. package/dist/plugins/nullable/nullable.mjs +36 -0
  516. package/dist/plugins/nullable.d.ts +1 -34
  517. package/dist/plugins/nullable.js +2 -1
  518. package/dist/plugins/nullable.mjs +1 -1
  519. package/dist/plugins/number-finite/index.d.ts +1 -0
  520. package/dist/plugins/number-finite/index.js +5 -0
  521. package/dist/plugins/number-finite/index.mjs +1 -0
  522. package/dist/plugins/number-finite/number-finite.d.ts +7 -0
  523. package/dist/plugins/number-finite/number-finite.js +21 -0
  524. package/dist/plugins/number-finite/number-finite.mjs +18 -0
  525. package/dist/plugins/number-integer/index.d.ts +1 -0
  526. package/dist/plugins/number-integer/index.js +5 -0
  527. package/dist/plugins/number-integer/index.mjs +1 -0
  528. package/dist/plugins/number-integer/number-integer.d.ts +7 -0
  529. package/dist/plugins/number-integer/number-integer.js +21 -0
  530. package/dist/plugins/number-integer/number-integer.mjs +18 -0
  531. package/dist/plugins/number-max/index.d.ts +2 -0
  532. package/dist/plugins/number-max/index.js +5 -0
  533. package/dist/plugins/number-max/index.mjs +1 -0
  534. package/dist/plugins/number-max/number-max.d.ts +11 -0
  535. package/dist/plugins/number-max/number-max.js +36 -0
  536. package/dist/plugins/number-max/number-max.mjs +33 -0
  537. package/dist/plugins/number-min/index.d.ts +2 -0
  538. package/dist/plugins/number-min/index.js +5 -0
  539. package/dist/plugins/number-min/index.mjs +1 -0
  540. package/dist/plugins/number-min/number-min.d.ts +11 -0
  541. package/dist/plugins/number-min/number-min.js +38 -0
  542. package/dist/plugins/number-min/number-min.mjs +35 -0
  543. package/dist/plugins/number-multiple-of/index.d.ts +2 -0
  544. package/dist/plugins/number-multiple-of/index.js +5 -0
  545. package/dist/plugins/number-multiple-of/index.mjs +1 -0
  546. package/dist/plugins/number-multiple-of/is-multiple-of.d.ts +7 -0
  547. package/dist/plugins/number-multiple-of/is-multiple-of.js +61 -0
  548. package/dist/plugins/number-multiple-of/is-multiple-of.mjs +57 -0
  549. package/dist/plugins/number-multiple-of/number-multiple-of.d.ts +9 -0
  550. package/dist/plugins/number-multiple-of/number-multiple-of.js +27 -0
  551. package/dist/plugins/number-multiple-of/number-multiple-of.mjs +24 -0
  552. package/dist/plugins/number-negative/index.d.ts +1 -0
  553. package/dist/plugins/number-negative/index.js +5 -0
  554. package/dist/plugins/number-negative/index.mjs +1 -0
  555. package/dist/plugins/number-negative/number-negative.d.ts +7 -0
  556. package/dist/plugins/number-negative/number-negative.js +21 -0
  557. package/dist/plugins/number-negative/number-negative.mjs +18 -0
  558. package/dist/plugins/number-positive/index.d.ts +1 -0
  559. package/dist/plugins/number-positive/index.js +5 -0
  560. package/dist/plugins/number-positive/index.mjs +1 -0
  561. package/dist/plugins/number-positive/number-positive.d.ts +7 -0
  562. package/dist/plugins/number-positive/number-positive.js +21 -0
  563. package/dist/plugins/number-positive/number-positive.mjs +18 -0
  564. package/dist/plugins/number-range/index.d.ts +2 -0
  565. package/dist/plugins/number-range/index.js +5 -0
  566. package/dist/plugins/number-range/index.mjs +1 -0
  567. package/dist/plugins/number-range/number-range.d.ts +11 -0
  568. package/dist/plugins/number-range/number-range.js +39 -0
  569. package/dist/plugins/number-range/number-range.mjs +36 -0
  570. package/dist/plugins/numberFinite.d.ts +1 -0
  571. package/dist/plugins/numberFinite.js +2 -0
  572. package/dist/plugins/numberFinite.mjs +1 -0
  573. package/dist/plugins/numberInteger.d.ts +1 -41
  574. package/dist/plugins/numberInteger.js +2 -1
  575. package/dist/plugins/numberInteger.mjs +1 -1
  576. package/dist/plugins/numberMax.d.ts +1 -49
  577. package/dist/plugins/numberMax.js +2 -1
  578. package/dist/plugins/numberMax.mjs +1 -1
  579. package/dist/plugins/numberMin.d.ts +1 -49
  580. package/dist/plugins/numberMin.js +2 -1
  581. package/dist/plugins/numberMin.mjs +1 -1
  582. package/dist/plugins/numberMultipleOf.d.ts +1 -42
  583. package/dist/plugins/numberMultipleOf.js +2 -1
  584. package/dist/plugins/numberMultipleOf.mjs +1 -1
  585. package/dist/plugins/numberNegative.d.ts +1 -41
  586. package/dist/plugins/numberNegative.js +2 -1
  587. package/dist/plugins/numberNegative.mjs +1 -1
  588. package/dist/plugins/numberPositive.d.ts +1 -41
  589. package/dist/plugins/numberPositive.js +2 -1
  590. package/dist/plugins/numberPositive.mjs +1 -1
  591. package/dist/plugins/numberRange.d.ts +1 -0
  592. package/dist/plugins/numberRange.js +2 -0
  593. package/dist/plugins/numberRange.mjs +1 -0
  594. package/dist/plugins/object/index.d.ts +2 -0
  595. package/dist/plugins/object/index.js +5 -0
  596. package/dist/plugins/object/index.mjs +1 -0
  597. package/dist/plugins/object/object.d.ts +9 -0
  598. package/dist/plugins/object/object.js +29 -0
  599. package/dist/plugins/object/object.mjs +26 -0
  600. package/dist/plugins/object-additional-properties/index.d.ts +3 -0
  601. package/dist/plugins/object-additional-properties/index.js +11 -0
  602. package/dist/plugins/object-additional-properties/index.mjs +6 -0
  603. package/dist/plugins/object-additional-properties/object-additional-properties-schema.d.ts +14 -0
  604. package/dist/plugins/object-additional-properties/object-additional-properties-schema.js +58 -0
  605. package/dist/plugins/object-additional-properties/object-additional-properties-schema.mjs +55 -0
  606. package/dist/plugins/object-additional-properties/object-additional-properties.d.ts +9 -0
  607. package/dist/plugins/object-additional-properties/object-additional-properties.js +42 -0
  608. package/dist/plugins/object-additional-properties/object-additional-properties.mjs +39 -0
  609. package/dist/plugins/object-additional-properties/select-additional-keys.d.ts +15 -0
  610. package/dist/plugins/object-additional-properties/select-additional-keys.js +51 -0
  611. package/dist/plugins/object-additional-properties/select-additional-keys.mjs +47 -0
  612. package/dist/plugins/object-dependent-required/dependent-required-violation.d.ts +7 -0
  613. package/dist/plugins/object-dependent-required/dependent-required-violation.js +45 -0
  614. package/dist/plugins/object-dependent-required/dependent-required-violation.mjs +40 -0
  615. package/dist/plugins/object-dependent-required/index.d.ts +3 -0
  616. package/dist/plugins/object-dependent-required/index.js +5 -0
  617. package/dist/plugins/object-dependent-required/index.mjs +1 -0
  618. package/dist/plugins/object-dependent-required/object-dependent-required.d.ts +10 -0
  619. package/dist/plugins/object-dependent-required/object-dependent-required.js +27 -0
  620. package/dist/plugins/object-dependent-required/object-dependent-required.mjs +24 -0
  621. package/dist/plugins/object-dependent-schemas/index.d.ts +2 -0
  622. package/dist/plugins/object-dependent-schemas/index.js +5 -0
  623. package/dist/plugins/object-dependent-schemas/index.mjs +1 -0
  624. package/dist/plugins/object-dependent-schemas/object-dependent-schemas.d.ts +16 -0
  625. package/dist/plugins/object-dependent-schemas/object-dependent-schemas.js +47 -0
  626. package/dist/plugins/object-dependent-schemas/object-dependent-schemas.mjs +44 -0
  627. package/dist/plugins/object-max-properties/index.d.ts +2 -0
  628. package/dist/plugins/object-max-properties/index.js +5 -0
  629. package/dist/plugins/object-max-properties/index.mjs +1 -0
  630. package/dist/plugins/object-max-properties/object-max-properties.d.ts +10 -0
  631. package/dist/plugins/object-max-properties/object-max-properties.js +32 -0
  632. package/dist/plugins/object-max-properties/object-max-properties.mjs +29 -0
  633. package/dist/plugins/object-min-properties/index.d.ts +2 -0
  634. package/dist/plugins/object-min-properties/index.js +5 -0
  635. package/dist/plugins/object-min-properties/index.mjs +1 -0
  636. package/dist/plugins/object-min-properties/object-min-properties.d.ts +10 -0
  637. package/dist/plugins/object-min-properties/object-min-properties.js +32 -0
  638. package/dist/plugins/object-min-properties/object-min-properties.mjs +29 -0
  639. package/dist/plugins/object-pattern-properties/index.d.ts +2 -0
  640. package/dist/plugins/object-pattern-properties/index.js +5 -0
  641. package/dist/plugins/object-pattern-properties/index.mjs +1 -0
  642. package/dist/plugins/object-pattern-properties/object-pattern-properties.d.ts +16 -0
  643. package/dist/plugins/object-pattern-properties/object-pattern-properties.js +57 -0
  644. package/dist/plugins/object-pattern-properties/object-pattern-properties.mjs +54 -0
  645. package/dist/plugins/object-property-names/index.d.ts +2 -0
  646. package/dist/plugins/object-property-names/index.js +5 -0
  647. package/dist/plugins/object-property-names/index.mjs +1 -0
  648. package/dist/plugins/object-property-names/object-property-names.d.ts +16 -0
  649. package/dist/plugins/object-property-names/object-property-names.js +47 -0
  650. package/dist/plugins/object-property-names/object-property-names.mjs +44 -0
  651. package/dist/plugins/object-recursively/index.d.ts +2 -0
  652. package/dist/plugins/object-recursively/index.js +5 -0
  653. package/dist/plugins/object-recursively/index.mjs +1 -0
  654. package/dist/plugins/object-recursively/object-recursively.d.ts +11 -0
  655. package/dist/plugins/object-recursively/object-recursively.js +26 -0
  656. package/dist/plugins/object-recursively/object-recursively.mjs +23 -0
  657. package/dist/plugins/object.d.ts +1 -43
  658. package/dist/plugins/object.js +2 -1
  659. package/dist/plugins/object.mjs +1 -1
  660. package/dist/plugins/objectAdditionalProperties.d.ts +1 -51
  661. package/dist/plugins/objectAdditionalProperties.js +2 -1
  662. package/dist/plugins/objectAdditionalProperties.mjs +1 -1
  663. package/dist/plugins/objectDependentRequired.d.ts +1 -42
  664. package/dist/plugins/objectDependentRequired.js +2 -1
  665. package/dist/plugins/objectDependentRequired.mjs +1 -1
  666. package/dist/plugins/objectDependentSchemas.d.ts +1 -40
  667. package/dist/plugins/objectDependentSchemas.js +2 -1
  668. package/dist/plugins/objectDependentSchemas.mjs +1 -1
  669. package/dist/plugins/objectMaxProperties.d.ts +1 -42
  670. package/dist/plugins/objectMaxProperties.js +2 -1
  671. package/dist/plugins/objectMaxProperties.mjs +1 -1
  672. package/dist/plugins/objectMinProperties.d.ts +1 -42
  673. package/dist/plugins/objectMinProperties.js +2 -1
  674. package/dist/plugins/objectMinProperties.mjs +1 -1
  675. package/dist/plugins/objectPatternProperties.d.ts +1 -46
  676. package/dist/plugins/objectPatternProperties.js +2 -1
  677. package/dist/plugins/objectPatternProperties.mjs +1 -1
  678. package/dist/plugins/objectPropertyNames.d.ts +1 -36
  679. package/dist/plugins/objectPropertyNames.js +2 -1
  680. package/dist/plugins/objectPropertyNames.mjs +1 -1
  681. package/dist/plugins/objectRecursively.d.ts +1 -0
  682. package/dist/plugins/objectRecursively.js +2 -0
  683. package/dist/plugins/objectRecursively.mjs +1 -0
  684. package/dist/plugins/one-of/index.d.ts +1 -0
  685. package/dist/plugins/one-of/index.js +5 -0
  686. package/dist/plugins/one-of/index.mjs +1 -0
  687. package/dist/plugins/one-of/one-of.d.ts +7 -0
  688. package/dist/plugins/one-of/one-of.js +67 -0
  689. package/dist/plugins/one-of/one-of.mjs +64 -0
  690. package/dist/plugins/oneOf.d.ts +1 -44
  691. package/dist/plugins/oneOf.js +2 -1
  692. package/dist/plugins/oneOf.mjs +1 -1
  693. package/dist/plugins/optional/index.d.ts +1 -0
  694. package/dist/plugins/optional/index.js +5 -0
  695. package/dist/plugins/optional/index.mjs +1 -0
  696. package/dist/plugins/optional/optional.d.ts +7 -0
  697. package/dist/plugins/optional/optional.js +42 -0
  698. package/dist/plugins/optional/optional.mjs +39 -0
  699. package/dist/plugins/optional-if/index.d.ts +1 -0
  700. package/dist/plugins/optional-if/index.js +5 -0
  701. package/dist/plugins/optional-if/index.mjs +1 -0
  702. package/dist/plugins/optional-if/optional-if.d.ts +11 -0
  703. package/dist/plugins/optional-if/optional-if.js +31 -0
  704. package/dist/plugins/optional-if/optional-if.mjs +28 -0
  705. package/dist/plugins/optional.d.ts +1 -35
  706. package/dist/plugins/optional.js +2 -1
  707. package/dist/plugins/optional.mjs +1 -1
  708. package/dist/plugins/optionalIf.d.ts +1 -0
  709. package/dist/plugins/optionalIf.js +2 -0
  710. package/dist/plugins/optionalIf.mjs +1 -0
  711. package/dist/plugins/or-fail/index.d.ts +1 -0
  712. package/dist/plugins/or-fail/index.js +5 -0
  713. package/dist/plugins/or-fail/index.mjs +1 -0
  714. package/dist/plugins/or-fail/or-fail.d.ts +7 -0
  715. package/dist/plugins/or-fail/or-fail.js +44 -0
  716. package/dist/plugins/or-fail/or-fail.mjs +41 -0
  717. package/dist/plugins/orFail.d.ts +1 -0
  718. package/dist/plugins/orFail.js +2 -0
  719. package/dist/plugins/orFail.mjs +1 -0
  720. package/dist/plugins/read-only/index.d.ts +1 -0
  721. package/dist/plugins/read-only/index.js +5 -0
  722. package/dist/plugins/read-only/index.mjs +1 -0
  723. package/dist/plugins/read-only/read-only.d.ts +7 -0
  724. package/dist/plugins/read-only/read-only.js +52 -0
  725. package/dist/plugins/read-only/read-only.mjs +49 -0
  726. package/dist/plugins/readOnly.d.ts +1 -0
  727. package/dist/plugins/readOnly.js +2 -0
  728. package/dist/plugins/readOnly.mjs +1 -0
  729. package/dist/plugins/readOnlyWriteOnly.d.ts +1 -48
  730. package/dist/plugins/readOnlyWriteOnly.js +2 -1
  731. package/dist/plugins/readOnlyWriteOnly.mjs +1 -1
  732. package/dist/plugins/required/index.d.ts +1 -0
  733. package/dist/plugins/required/index.js +5 -0
  734. package/dist/plugins/required/index.mjs +1 -0
  735. package/dist/plugins/required/required.d.ts +7 -0
  736. package/dist/plugins/required/required.js +42 -0
  737. package/dist/plugins/required/required.mjs +39 -0
  738. package/dist/plugins/required-if/index.d.ts +1 -0
  739. package/dist/plugins/required-if/index.js +5 -0
  740. package/dist/plugins/required-if/index.mjs +1 -0
  741. package/dist/plugins/required-if/required-if.d.ts +11 -0
  742. package/dist/plugins/required-if/required-if.js +34 -0
  743. package/dist/plugins/required-if/required-if.mjs +31 -0
  744. package/dist/plugins/required.d.ts +1 -45
  745. package/dist/plugins/required.js +2 -1
  746. package/dist/plugins/required.mjs +1 -1
  747. package/dist/plugins/requiredIf.d.ts +1 -66
  748. package/dist/plugins/requiredIf.js +2 -1
  749. package/dist/plugins/requiredIf.mjs +1 -1
  750. package/dist/plugins/skip/index.d.ts +1 -0
  751. package/dist/plugins/skip/index.js +5 -0
  752. package/dist/plugins/skip/index.mjs +1 -0
  753. package/dist/plugins/skip/skip.d.ts +7 -0
  754. package/dist/plugins/skip/skip.js +22 -0
  755. package/dist/plugins/skip/skip.mjs +19 -0
  756. package/dist/plugins/skip.d.ts +1 -57
  757. package/dist/plugins/skip.js +2 -1
  758. package/dist/plugins/skip.mjs +1 -1
  759. package/dist/plugins/stitch/index.d.ts +2 -0
  760. package/dist/plugins/stitch/index.js +5 -0
  761. package/dist/plugins/stitch/index.mjs +1 -0
  762. package/dist/plugins/stitch/stitch.d.ts +30 -0
  763. package/dist/plugins/stitch/stitch.js +72 -0
  764. package/dist/plugins/stitch/stitch.mjs +69 -0
  765. package/dist/plugins/stitch.d.ts +1 -0
  766. package/dist/plugins/stitch.js +2 -0
  767. package/dist/plugins/stitch.mjs +1 -0
  768. package/dist/plugins/string-alphanumeric/index.d.ts +1 -0
  769. package/dist/plugins/string-alphanumeric/index.js +5 -0
  770. package/dist/plugins/string-alphanumeric/index.mjs +1 -0
  771. package/dist/plugins/string-alphanumeric/string-alphanumeric.d.ts +8 -0
  772. package/dist/plugins/string-alphanumeric/string-alphanumeric.js +39 -0
  773. package/dist/plugins/string-alphanumeric/string-alphanumeric.mjs +36 -0
  774. package/dist/plugins/string-base64/index.d.ts +1 -0
  775. package/dist/plugins/string-base64/index.js +5 -0
  776. package/dist/plugins/string-base64/index.mjs +1 -0
  777. package/dist/plugins/string-base64/string-base64.d.ts +12 -0
  778. package/dist/plugins/string-base64/string-base64.js +40 -0
  779. package/dist/plugins/string-base64/string-base64.mjs +37 -0
  780. package/dist/plugins/string-content-encoding/content-encoding-checks.d.ts +4 -0
  781. package/dist/plugins/string-content-encoding/content-encoding-checks.js +67 -0
  782. package/dist/plugins/string-content-encoding/content-encoding-checks.mjs +64 -0
  783. package/dist/plugins/string-content-encoding/index.d.ts +2 -0
  784. package/dist/plugins/string-content-encoding/index.js +5 -0
  785. package/dist/plugins/string-content-encoding/index.mjs +1 -0
  786. package/dist/plugins/string-content-encoding/string-content-encoding.d.ts +10 -0
  787. package/dist/plugins/string-content-encoding/string-content-encoding.js +40 -0
  788. package/dist/plugins/string-content-encoding/string-content-encoding.mjs +37 -0
  789. package/dist/plugins/string-content-media-type/index.d.ts +1 -0
  790. package/dist/plugins/string-content-media-type/index.js +5 -0
  791. package/dist/plugins/string-content-media-type/index.mjs +1 -0
  792. package/dist/plugins/string-content-media-type/media-type-checks.d.ts +3 -0
  793. package/dist/plugins/string-content-media-type/media-type-checks.js +46 -0
  794. package/dist/plugins/string-content-media-type/media-type-checks.mjs +43 -0
  795. package/dist/plugins/string-content-media-type/string-content-media-type.d.ts +8 -0
  796. package/dist/plugins/string-content-media-type/string-content-media-type.js +41 -0
  797. package/dist/plugins/string-content-media-type/string-content-media-type.mjs +38 -0
  798. package/dist/plugins/string-date/calendar-date.d.ts +3 -0
  799. package/dist/plugins/string-date/calendar-date.js +24 -0
  800. package/dist/plugins/string-date/calendar-date.mjs +20 -0
  801. package/dist/plugins/string-date/index.d.ts +1 -0
  802. package/dist/plugins/string-date/index.js +5 -0
  803. package/dist/plugins/string-date/index.mjs +1 -0
  804. package/dist/plugins/string-date/string-date.d.ts +7 -0
  805. package/dist/plugins/string-date/string-date.js +42 -0
  806. package/dist/plugins/string-date/string-date.mjs +39 -0
  807. package/dist/plugins/string-datetime/calendar-date.d.ts +2 -0
  808. package/dist/plugins/string-datetime/calendar-date.js +24 -0
  809. package/dist/plugins/string-datetime/calendar-date.mjs +20 -0
  810. package/dist/plugins/string-datetime/index.d.ts +1 -0
  811. package/dist/plugins/string-datetime/index.js +5 -0
  812. package/dist/plugins/string-datetime/index.mjs +1 -0
  813. package/dist/plugins/string-datetime/string-datetime.d.ts +12 -0
  814. package/dist/plugins/string-datetime/string-datetime.js +67 -0
  815. package/dist/plugins/string-datetime/string-datetime.mjs +64 -0
  816. package/dist/plugins/string-duration/index.d.ts +1 -0
  817. package/dist/plugins/string-duration/index.js +5 -0
  818. package/dist/plugins/string-duration/index.mjs +1 -0
  819. package/dist/plugins/string-duration/string-duration.d.ts +7 -0
  820. package/dist/plugins/string-duration/string-duration.js +31 -0
  821. package/dist/plugins/string-duration/string-duration.mjs +28 -0
  822. package/dist/plugins/string-email/index.d.ts +1 -0
  823. package/dist/plugins/string-email/index.js +5 -0
  824. package/dist/plugins/string-email/index.mjs +1 -0
  825. package/dist/plugins/string-email/string-email.d.ts +14 -0
  826. package/dist/plugins/string-email/string-email.js +58 -0
  827. package/dist/plugins/string-email/string-email.mjs +55 -0
  828. package/dist/plugins/string-ends-with/index.d.ts +1 -0
  829. package/dist/plugins/string-ends-with/index.js +5 -0
  830. package/dist/plugins/string-ends-with/index.mjs +1 -0
  831. package/dist/plugins/string-ends-with/string-ends-with.d.ts +8 -0
  832. package/dist/plugins/string-ends-with/string-ends-with.js +30 -0
  833. package/dist/plugins/string-ends-with/string-ends-with.mjs +27 -0
  834. package/dist/plugins/string-exact-length/index.d.ts +1 -0
  835. package/dist/plugins/string-exact-length/index.js +5 -0
  836. package/dist/plugins/string-exact-length/index.mjs +1 -0
  837. package/dist/plugins/string-exact-length/string-exact-length.d.ts +11 -0
  838. package/dist/plugins/string-exact-length/string-exact-length.js +34 -0
  839. package/dist/plugins/string-exact-length/string-exact-length.mjs +31 -0
  840. package/dist/plugins/string-hostname/index.d.ts +1 -0
  841. package/dist/plugins/string-hostname/index.js +5 -0
  842. package/dist/plugins/string-hostname/index.mjs +1 -0
  843. package/dist/plugins/string-hostname/string-hostname.d.ts +7 -0
  844. package/dist/plugins/string-hostname/string-hostname.js +30 -0
  845. package/dist/plugins/string-hostname/string-hostname.mjs +27 -0
  846. package/dist/plugins/string-idn-email/idn-email.d.ts +1 -0
  847. package/dist/plugins/string-idn-email/idn-email.js +85 -0
  848. package/dist/plugins/string-idn-email/idn-email.mjs +82 -0
  849. package/dist/plugins/string-idn-email/index.d.ts +1 -0
  850. package/dist/plugins/string-idn-email/index.js +5 -0
  851. package/dist/plugins/string-idn-email/index.mjs +1 -0
  852. package/dist/plugins/string-idn-email/string-idn-email.d.ts +7 -0
  853. package/dist/plugins/string-idn-email/string-idn-email.js +29 -0
  854. package/dist/plugins/string-idn-email/string-idn-email.mjs +26 -0
  855. package/dist/plugins/string-idn-hostname/idn-hostname.d.ts +1 -0
  856. package/dist/plugins/string-idn-hostname/idn-hostname.js +72 -0
  857. package/dist/plugins/string-idn-hostname/idn-hostname.mjs +69 -0
  858. package/dist/plugins/string-idn-hostname/index.d.ts +1 -0
  859. package/dist/plugins/string-idn-hostname/index.js +5 -0
  860. package/dist/plugins/string-idn-hostname/index.mjs +1 -0
  861. package/dist/plugins/string-idn-hostname/string-idn-hostname.d.ts +7 -0
  862. package/dist/plugins/string-idn-hostname/string-idn-hostname.js +31 -0
  863. package/dist/plugins/string-idn-hostname/string-idn-hostname.mjs +28 -0
  864. package/dist/plugins/string-ipv4/index.d.ts +1 -0
  865. package/dist/plugins/string-ipv4/index.js +5 -0
  866. package/dist/plugins/string-ipv4/index.mjs +1 -0
  867. package/dist/plugins/string-ipv4/string-ipv4.d.ts +7 -0
  868. package/dist/plugins/string-ipv4/string-ipv4.js +32 -0
  869. package/dist/plugins/string-ipv4/string-ipv4.mjs +29 -0
  870. package/dist/plugins/string-ipv6/index.d.ts +1 -0
  871. package/dist/plugins/string-ipv6/index.js +5 -0
  872. package/dist/plugins/string-ipv6/index.mjs +1 -0
  873. package/dist/plugins/string-ipv6/ipv6-address.d.ts +2 -0
  874. package/dist/plugins/string-ipv6/ipv6-address.js +70 -0
  875. package/dist/plugins/string-ipv6/ipv6-address.mjs +67 -0
  876. package/dist/plugins/string-ipv6/string-ipv6.d.ts +7 -0
  877. package/dist/plugins/string-ipv6/string-ipv6.js +27 -0
  878. package/dist/plugins/string-ipv6/string-ipv6.mjs +24 -0
  879. package/dist/plugins/string-iri/control-character.d.ts +1 -0
  880. package/dist/plugins/string-iri/control-character.js +21 -0
  881. package/dist/plugins/string-iri/control-character.mjs +18 -0
  882. package/dist/plugins/string-iri/index.d.ts +1 -0
  883. package/dist/plugins/string-iri/index.js +5 -0
  884. package/dist/plugins/string-iri/index.mjs +1 -0
  885. package/dist/plugins/string-iri/string-iri.d.ts +7 -0
  886. package/dist/plugins/string-iri/string-iri.js +49 -0
  887. package/dist/plugins/string-iri/string-iri.mjs +46 -0
  888. package/dist/plugins/string-iri-reference/control-character.d.ts +1 -0
  889. package/dist/plugins/string-iri-reference/control-character.js +21 -0
  890. package/dist/plugins/string-iri-reference/control-character.mjs +18 -0
  891. package/dist/plugins/string-iri-reference/index.d.ts +1 -0
  892. package/dist/plugins/string-iri-reference/index.js +5 -0
  893. package/dist/plugins/string-iri-reference/index.mjs +1 -0
  894. package/dist/plugins/string-iri-reference/iri-reference.d.ts +1 -0
  895. package/dist/plugins/string-iri-reference/iri-reference.js +39 -0
  896. package/dist/plugins/string-iri-reference/iri-reference.mjs +36 -0
  897. package/dist/plugins/string-iri-reference/string-iri-reference.d.ts +7 -0
  898. package/dist/plugins/string-iri-reference/string-iri-reference.js +26 -0
  899. package/dist/plugins/string-iri-reference/string-iri-reference.mjs +23 -0
  900. package/dist/plugins/string-json-pointer/index.d.ts +1 -0
  901. package/dist/plugins/string-json-pointer/index.js +5 -0
  902. package/dist/plugins/string-json-pointer/index.mjs +1 -0
  903. package/dist/plugins/string-json-pointer/string-json-pointer.d.ts +7 -0
  904. package/dist/plugins/string-json-pointer/string-json-pointer.js +35 -0
  905. package/dist/plugins/string-json-pointer/string-json-pointer.mjs +32 -0
  906. package/dist/plugins/string-max/index.d.ts +1 -0
  907. package/dist/plugins/string-max/index.js +5 -0
  908. package/dist/plugins/string-max/index.mjs +1 -0
  909. package/dist/plugins/string-max/string-max.d.ts +11 -0
  910. package/dist/plugins/string-max/string-max.js +34 -0
  911. package/dist/plugins/string-max/string-max.mjs +31 -0
  912. package/dist/plugins/string-min/index.d.ts +1 -0
  913. package/dist/plugins/string-min/index.js +5 -0
  914. package/dist/plugins/string-min/index.mjs +1 -0
  915. package/dist/plugins/string-min/string-min.d.ts +11 -0
  916. package/dist/plugins/string-min/string-min.js +37 -0
  917. package/dist/plugins/string-min/string-min.mjs +34 -0
  918. package/dist/plugins/string-pattern/index.d.ts +1 -0
  919. package/dist/plugins/string-pattern/index.js +5 -0
  920. package/dist/plugins/string-pattern/index.mjs +1 -0
  921. package/dist/plugins/string-pattern/string-pattern.d.ts +8 -0
  922. package/dist/plugins/string-pattern/string-pattern.js +49 -0
  923. package/dist/plugins/string-pattern/string-pattern.mjs +46 -0
  924. package/dist/plugins/string-regex/index.d.ts +1 -0
  925. package/dist/plugins/string-regex/index.js +5 -0
  926. package/dist/plugins/string-regex/index.mjs +1 -0
  927. package/dist/plugins/string-regex/is-ecma262-regex.d.ts +2 -0
  928. package/dist/plugins/string-regex/is-ecma262-regex.js +25 -0
  929. package/dist/plugins/string-regex/is-ecma262-regex.mjs +22 -0
  930. package/dist/plugins/string-regex/string-regex.d.ts +7 -0
  931. package/dist/plugins/string-regex/string-regex.js +28 -0
  932. package/dist/plugins/string-regex/string-regex.mjs +25 -0
  933. package/dist/plugins/string-relative-json-pointer/index.d.ts +1 -0
  934. package/dist/plugins/string-relative-json-pointer/index.js +5 -0
  935. package/dist/plugins/string-relative-json-pointer/index.mjs +1 -0
  936. package/dist/plugins/string-relative-json-pointer/string-relative-json-pointer.d.ts +7 -0
  937. package/dist/plugins/string-relative-json-pointer/string-relative-json-pointer.js +42 -0
  938. package/dist/plugins/string-relative-json-pointer/string-relative-json-pointer.mjs +39 -0
  939. package/dist/plugins/string-starts-with/index.d.ts +1 -0
  940. package/dist/plugins/string-starts-with/index.js +5 -0
  941. package/dist/plugins/string-starts-with/index.mjs +1 -0
  942. package/dist/plugins/string-starts-with/string-starts-with.d.ts +8 -0
  943. package/dist/plugins/string-starts-with/string-starts-with.js +30 -0
  944. package/dist/plugins/string-starts-with/string-starts-with.mjs +27 -0
  945. package/dist/plugins/string-time/index.d.ts +1 -0
  946. package/dist/plugins/string-time/index.js +5 -0
  947. package/dist/plugins/string-time/index.mjs +1 -0
  948. package/dist/plugins/string-time/string-time.d.ts +12 -0
  949. package/dist/plugins/string-time/string-time.js +37 -0
  950. package/dist/plugins/string-time/string-time.mjs +34 -0
  951. package/dist/plugins/string-uri-reference/index.d.ts +1 -0
  952. package/dist/plugins/string-uri-reference/index.js +5 -0
  953. package/dist/plugins/string-uri-reference/index.mjs +1 -0
  954. package/dist/plugins/string-uri-reference/string-uri-reference.d.ts +7 -0
  955. package/dist/plugins/string-uri-reference/string-uri-reference.js +28 -0
  956. package/dist/plugins/string-uri-reference/string-uri-reference.mjs +25 -0
  957. package/dist/plugins/string-uri-reference/uri-reference.d.ts +1 -0
  958. package/dist/plugins/string-uri-reference/uri-reference.js +71 -0
  959. package/dist/plugins/string-uri-reference/uri-reference.mjs +68 -0
  960. package/dist/plugins/string-uri-template/index.d.ts +1 -0
  961. package/dist/plugins/string-uri-template/index.js +5 -0
  962. package/dist/plugins/string-uri-template/index.mjs +1 -0
  963. package/dist/plugins/string-uri-template/string-uri-template.d.ts +7 -0
  964. package/dist/plugins/string-uri-template/string-uri-template.js +26 -0
  965. package/dist/plugins/string-uri-template/string-uri-template.mjs +23 -0
  966. package/dist/plugins/string-uri-template/uri-template.d.ts +1 -0
  967. package/dist/plugins/string-uri-template/uri-template.js +59 -0
  968. package/dist/plugins/string-uri-template/uri-template.mjs +56 -0
  969. package/dist/plugins/string-url/index.d.ts +1 -0
  970. package/dist/plugins/string-url/index.js +5 -0
  971. package/dist/plugins/string-url/index.mjs +1 -0
  972. package/dist/plugins/string-url/string-url.d.ts +14 -0
  973. package/dist/plugins/string-url/string-url.js +55 -0
  974. package/dist/plugins/string-url/string-url.mjs +52 -0
  975. package/dist/plugins/stringAlphanumeric.d.ts +1 -0
  976. package/dist/plugins/stringAlphanumeric.js +2 -0
  977. package/dist/plugins/stringAlphanumeric.mjs +1 -0
  978. package/dist/plugins/stringBase64.d.ts +1 -119
  979. package/dist/plugins/stringBase64.js +2 -1
  980. package/dist/plugins/stringBase64.mjs +1 -1
  981. package/dist/plugins/stringContentEncoding.d.ts +1 -43
  982. package/dist/plugins/stringContentEncoding.js +2 -1
  983. package/dist/plugins/stringContentEncoding.mjs +1 -1
  984. package/dist/plugins/stringContentMediaType.d.ts +1 -47
  985. package/dist/plugins/stringContentMediaType.js +2 -1
  986. package/dist/plugins/stringContentMediaType.mjs +1 -1
  987. package/dist/plugins/stringDate.d.ts +1 -48
  988. package/dist/plugins/stringDate.js +2 -1
  989. package/dist/plugins/stringDate.mjs +1 -1
  990. package/dist/plugins/stringDatetime.d.ts +1 -108
  991. package/dist/plugins/stringDatetime.js +2 -1
  992. package/dist/plugins/stringDatetime.mjs +1 -1
  993. package/dist/plugins/stringDuration.d.ts +1 -41
  994. package/dist/plugins/stringDuration.js +2 -1
  995. package/dist/plugins/stringDuration.mjs +1 -1
  996. package/dist/plugins/stringEmail.d.ts +1 -81
  997. package/dist/plugins/stringEmail.js +2 -1
  998. package/dist/plugins/stringEmail.mjs +1 -1
  999. package/dist/plugins/stringEndsWith.d.ts +1 -0
  1000. package/dist/plugins/stringEndsWith.js +2 -0
  1001. package/dist/plugins/stringEndsWith.mjs +1 -0
  1002. package/dist/plugins/stringExactLength.d.ts +1 -0
  1003. package/dist/plugins/stringExactLength.js +2 -0
  1004. package/dist/plugins/stringExactLength.mjs +1 -0
  1005. package/dist/plugins/stringHostname.d.ts +1 -104
  1006. package/dist/plugins/stringHostname.js +2 -1
  1007. package/dist/plugins/stringHostname.mjs +1 -1
  1008. package/dist/plugins/stringIdnEmail.d.ts +1 -0
  1009. package/dist/plugins/stringIdnEmail.js +2 -0
  1010. package/dist/plugins/stringIdnEmail.mjs +1 -0
  1011. package/dist/plugins/stringIdnHostname.d.ts +1 -0
  1012. package/dist/plugins/stringIdnHostname.js +2 -0
  1013. package/dist/plugins/stringIdnHostname.mjs +1 -0
  1014. package/dist/plugins/stringIpv4.d.ts +1 -85
  1015. package/dist/plugins/stringIpv4.js +2 -1
  1016. package/dist/plugins/stringIpv4.mjs +1 -1
  1017. package/dist/plugins/stringIpv6.d.ts +1 -104
  1018. package/dist/plugins/stringIpv6.js +2 -1
  1019. package/dist/plugins/stringIpv6.mjs +1 -1
  1020. package/dist/plugins/stringIri.d.ts +1 -117
  1021. package/dist/plugins/stringIri.js +2 -1
  1022. package/dist/plugins/stringIri.mjs +1 -1
  1023. package/dist/plugins/stringIriReference.d.ts +1 -43
  1024. package/dist/plugins/stringIriReference.js +2 -1
  1025. package/dist/plugins/stringIriReference.mjs +1 -1
  1026. package/dist/plugins/stringJsonPointer.d.ts +1 -107
  1027. package/dist/plugins/stringJsonPointer.js +2 -1
  1028. package/dist/plugins/stringJsonPointer.mjs +1 -1
  1029. package/dist/plugins/stringMax.d.ts +1 -43
  1030. package/dist/plugins/stringMax.js +2 -1
  1031. package/dist/plugins/stringMax.mjs +1 -1
  1032. package/dist/plugins/stringMin.d.ts +1 -43
  1033. package/dist/plugins/stringMin.js +2 -1
  1034. package/dist/plugins/stringMin.mjs +1 -1
  1035. package/dist/plugins/stringPattern.d.ts +1 -40
  1036. package/dist/plugins/stringPattern.js +2 -1
  1037. package/dist/plugins/stringPattern.mjs +1 -1
  1038. package/dist/plugins/stringRegex.d.ts +1 -0
  1039. package/dist/plugins/stringRegex.js +2 -0
  1040. package/dist/plugins/stringRegex.mjs +1 -0
  1041. package/dist/plugins/stringRelativeJsonPointer.d.ts +1 -42
  1042. package/dist/plugins/stringRelativeJsonPointer.js +2 -1
  1043. package/dist/plugins/stringRelativeJsonPointer.mjs +1 -1
  1044. package/dist/plugins/stringStartsWith.d.ts +1 -0
  1045. package/dist/plugins/stringStartsWith.js +2 -0
  1046. package/dist/plugins/stringStartsWith.mjs +1 -0
  1047. package/dist/plugins/stringTime.d.ts +1 -39
  1048. package/dist/plugins/stringTime.js +2 -1
  1049. package/dist/plugins/stringTime.mjs +1 -1
  1050. package/dist/plugins/stringUriReference.d.ts +1 -0
  1051. package/dist/plugins/stringUriReference.js +2 -0
  1052. package/dist/plugins/stringUriReference.mjs +1 -0
  1053. package/dist/plugins/stringUriTemplate.d.ts +1 -43
  1054. package/dist/plugins/stringUriTemplate.js +2 -1
  1055. package/dist/plugins/stringUriTemplate.mjs +1 -1
  1056. package/dist/plugins/stringUrl.d.ts +1 -97
  1057. package/dist/plugins/stringUrl.js +2 -1
  1058. package/dist/plugins/stringUrl.mjs +1 -1
  1059. package/dist/plugins/transform/index.d.ts +1 -0
  1060. package/dist/plugins/transform/index.js +5 -0
  1061. package/dist/plugins/transform/index.mjs +1 -0
  1062. package/dist/plugins/transform/transform.d.ts +7 -0
  1063. package/dist/plugins/transform/transform.js +35 -0
  1064. package/dist/plugins/transform/transform.mjs +32 -0
  1065. package/dist/plugins/transform.d.ts +1 -35
  1066. package/dist/plugins/transform.js +2 -1
  1067. package/dist/plugins/transform.mjs +1 -1
  1068. package/dist/plugins/tuple-builder/index.d.ts +2 -0
  1069. package/dist/plugins/tuple-builder/index.js +5 -0
  1070. package/dist/plugins/tuple-builder/index.mjs +1 -0
  1071. package/dist/plugins/tuple-builder/tuple-builder.d.ts +21 -0
  1072. package/dist/plugins/tuple-builder/tuple-builder.js +128 -0
  1073. package/dist/plugins/tuple-builder/tuple-builder.mjs +125 -0
  1074. package/dist/plugins/tupleBuilder.d.ts +1 -66
  1075. package/dist/plugins/tupleBuilder.js +2 -1
  1076. package/dist/plugins/tupleBuilder.mjs +1 -1
  1077. package/dist/plugins/union-guard/index.d.ts +1 -0
  1078. package/dist/plugins/union-guard/index.js +5 -0
  1079. package/dist/plugins/union-guard/index.mjs +1 -0
  1080. package/dist/plugins/union-guard/union-guard.d.ts +14 -0
  1081. package/dist/plugins/union-guard/union-guard.js +56 -0
  1082. package/dist/plugins/union-guard/union-guard.mjs +53 -0
  1083. package/dist/plugins/unionGuard.d.ts +1 -0
  1084. package/dist/plugins/unionGuard.js +2 -0
  1085. package/dist/plugins/unionGuard.mjs +1 -0
  1086. package/dist/plugins/uuid/index.d.ts +1 -0
  1087. package/dist/plugins/uuid/index.js +5 -0
  1088. package/dist/plugins/uuid/index.mjs +1 -0
  1089. package/dist/plugins/uuid/uuid.d.ts +10 -0
  1090. package/dist/plugins/uuid/uuid.js +56 -0
  1091. package/dist/plugins/uuid/uuid.mjs +53 -0
  1092. package/dist/plugins/uuid.d.ts +1 -95
  1093. package/dist/plugins/uuid.js +2 -1
  1094. package/dist/plugins/uuid.mjs +1 -1
  1095. package/dist/plugins/validate-if/index.d.ts +1 -0
  1096. package/dist/plugins/validate-if/index.js +5 -0
  1097. package/dist/plugins/validate-if/index.mjs +1 -0
  1098. package/dist/plugins/validate-if/validate-if.d.ts +7 -0
  1099. package/dist/plugins/validate-if/validate-if.js +22 -0
  1100. package/dist/plugins/validate-if/validate-if.mjs +19 -0
  1101. package/dist/plugins/validateIf.d.ts +1 -57
  1102. package/dist/plugins/validateIf.js +2 -1
  1103. package/dist/plugins/validateIf.mjs +1 -1
  1104. package/dist/plugins/write-only/index.d.ts +1 -0
  1105. package/dist/plugins/write-only/index.js +5 -0
  1106. package/dist/plugins/write-only/index.mjs +1 -0
  1107. package/dist/plugins/write-only/write-only.d.ts +7 -0
  1108. package/dist/plugins/write-only/write-only.js +48 -0
  1109. package/dist/plugins/write-only/write-only.mjs +45 -0
  1110. package/dist/plugins/writeOnly.d.ts +1 -0
  1111. package/dist/plugins/writeOnly.js +2 -0
  1112. package/dist/plugins/writeOnly.mjs +1 -0
  1113. package/dist/result/index.d.ts +18 -0
  1114. package/dist/result/index.js +44 -0
  1115. package/dist/result/index.mjs +36 -0
  1116. package/dist/result.d.ts +1 -0
  1117. package/dist/result.js +2 -0
  1118. package/dist/result.mjs +1 -0
  1119. package/dist/runtime/create-field-validator.d.ts +12 -0
  1120. package/dist/runtime/create-field-validator.js +74 -0
  1121. package/dist/runtime/create-field-validator.mjs +71 -0
  1122. package/dist/runtime/create-issue.d.ts +24 -0
  1123. package/dist/runtime/create-issue.js +34 -0
  1124. package/dist/runtime/create-issue.mjs +30 -0
  1125. package/dist/runtime/create-validator.d.ts +19 -0
  1126. package/dist/runtime/create-validator.js +70 -0
  1127. package/dist/runtime/create-validator.mjs +65 -0
  1128. package/dist/runtime/decide-presence.d.ts +5 -0
  1129. package/dist/runtime/decide-presence.js +48 -0
  1130. package/dist/runtime/decide-presence.mjs +45 -0
  1131. package/dist/runtime/index-stack.d.ts +28 -0
  1132. package/dist/runtime/index-stack.js +68 -0
  1133. package/dist/runtime/index-stack.mjs +63 -0
  1134. package/dist/runtime/index.d.ts +19 -0
  1135. package/dist/runtime/index.js +48 -0
  1136. package/dist/runtime/index.mjs +16 -0
  1137. package/dist/runtime/issue-sink.d.ts +39 -0
  1138. package/dist/runtime/issue-sink.js +61 -0
  1139. package/dist/runtime/issue-sink.mjs +56 -0
  1140. package/dist/runtime/output-writer.d.ts +38 -0
  1141. package/dist/runtime/output-writer.js +59 -0
  1142. package/dist/runtime/output-writer.mjs +52 -0
  1143. package/dist/runtime/run-array-node.d.ts +9 -0
  1144. package/dist/runtime/run-array-node.js +98 -0
  1145. package/dist/runtime/run-array-node.mjs +95 -0
  1146. package/dist/runtime/run-branch.d.ts +14 -0
  1147. package/dist/runtime/run-branch.js +67 -0
  1148. package/dist/runtime/run-branch.mjs +63 -0
  1149. package/dist/runtime/run-field.d.ts +27 -0
  1150. package/dist/runtime/run-field.js +88 -0
  1151. package/dist/runtime/run-field.mjs +84 -0
  1152. package/dist/runtime/run-plan.d.ts +28 -0
  1153. package/dist/runtime/run-plan.js +50 -0
  1154. package/dist/runtime/run-plan.mjs +46 -0
  1155. package/dist/runtime/run-recursion.d.ts +17 -0
  1156. package/dist/runtime/run-recursion.js +119 -0
  1157. package/dist/runtime/run-recursion.mjs +115 -0
  1158. package/dist/standard-schema/index.d.ts +6 -0
  1159. package/dist/standard-schema/index.js +7 -0
  1160. package/dist/standard-schema/index.mjs +2 -0
  1161. package/dist/standard-schema/split-issue-path.d.ts +9 -0
  1162. package/dist/standard-schema/split-issue-path.js +66 -0
  1163. package/dist/standard-schema/split-issue-path.mjs +63 -0
  1164. package/dist/standard-schema/standard-schema.types.d.ts +46 -0
  1165. package/dist/standard-schema/standard-schema.types.js +13 -0
  1166. package/dist/standard-schema/standard-schema.types.mjs +12 -0
  1167. package/dist/standard-schema/to-standard-schema.d.ts +41 -0
  1168. package/dist/standard-schema/to-standard-schema.js +60 -0
  1169. package/dist/standard-schema/to-standard-schema.mjs +57 -0
  1170. package/dist/standard-schema.d.ts +1 -0
  1171. package/dist/standard-schema.js +2 -0
  1172. package/dist/standard-schema.mjs +1 -0
  1173. package/dist/subpath-aliases/read-only-write-only.d.ts +2 -0
  1174. package/dist/subpath-aliases/read-only-write-only.js +16 -0
  1175. package/dist/subpath-aliases/read-only-write-only.mjs +11 -0
  1176. package/dist/types/global-config.d.ts +31 -0
  1177. package/dist/types/global-config.js +36 -0
  1178. package/dist/types/global-config.mjs +32 -0
  1179. package/dist/types/index.d.ts +75 -69
  1180. package/dist/types/index.js +46 -0
  1181. package/dist/types/index.mjs +36 -0
  1182. package/dist/types/validation-result.types.d.ts +22 -0
  1183. package/dist/types/validation-result.types.js +2 -0
  1184. package/dist/types/validation-result.types.mjs +1 -0
  1185. package/package.json +523 -353
  1186. package/dist/constants.d.ts +0 -27
  1187. package/dist/core/async.experimental/async-context.d.ts +0 -60
  1188. package/dist/core/builder/array-batch-optimizer.d.ts +0 -66
  1189. package/dist/core/builder/context/field-context.d.ts +0 -31
  1190. package/dist/core/builder/context/field-type-detector.d.ts +0 -19
  1191. package/dist/core/builder/core/builder.d.ts +0 -10
  1192. package/dist/core/builder/core/field-builder.d.ts +0 -13
  1193. package/dist/core/builder/core/index.d.ts +0 -17
  1194. package/dist/core/builder/index.d.ts +0 -24
  1195. package/dist/core/builder/nested-array-processor.d.ts +0 -52
  1196. package/dist/core/builder/plugins/composable-conditional-plugin.d.ts +0 -32
  1197. package/dist/core/builder/plugins/composable-directly-plugin.d.ts +0 -32
  1198. package/dist/core/builder/plugins/composable-plugin.d.ts +0 -242
  1199. package/dist/core/builder/plugins/plugin-creator.d.ts +0 -38
  1200. package/dist/core/builder/plugins/plugin-interfaces.d.ts +0 -343
  1201. package/dist/core/builder/plugins/plugin-types.d.ts +0 -441
  1202. package/dist/core/builder/raw-validator.d.ts +0 -22
  1203. package/dist/core/builder/types/field-options.d.ts +0 -46
  1204. package/dist/core/builder/types/types.d.ts +0 -319
  1205. package/dist/core/builder/ultra-fast-validator.d.ts +0 -30
  1206. package/dist/core/builder/validator-factory.d.ts +0 -29
  1207. package/dist/core/global-config.d.ts +0 -27
  1208. package/dist/core/index.d.ts +0 -36
  1209. package/dist/core/optimization/array-batch-validator.d.ts +0 -68
  1210. package/dist/core/optimization/core/field-utils.d.ts +0 -103
  1211. package/dist/core/optimization/core/strategy-factory.d.ts +0 -84
  1212. package/dist/core/optimization/core/validation-engine.d.ts +0 -107
  1213. package/dist/core/optimization/execution-strategy-selector.d.ts +0 -23
  1214. package/dist/core/optimization/unified-validator.d.ts +0 -45
  1215. package/dist/core/plugin/__tests__/test-utils.d.ts +0 -1
  1216. package/dist/core/plugin/arrayContains.d.ts +0 -37
  1217. package/dist/core/plugin/arrayIncludes.d.ts +0 -42
  1218. package/dist/core/plugin/arrayMaxLength.d.ts +0 -43
  1219. package/dist/core/plugin/arrayMinLength.d.ts +0 -43
  1220. package/dist/core/plugin/arrayUnique.d.ts +0 -41
  1221. package/dist/core/plugin/booleanFalsy.d.ts +0 -41
  1222. package/dist/core/plugin/booleanTruthy.d.ts +0 -38
  1223. package/dist/core/plugin/compareField.d.ts +0 -58
  1224. package/dist/core/plugin/conditionalSchema.d.ts +0 -24
  1225. package/dist/core/plugin/custom.d.ts +0 -60
  1226. package/dist/core/plugin/fromContext.d.ts +0 -150
  1227. package/dist/core/plugin/index.d.ts +0 -71
  1228. package/dist/core/plugin/jsonSchema/dsl-converter.d.ts +0 -22
  1229. package/dist/core/plugin/jsonSchema/error-generation.d.ts +0 -14
  1230. package/dist/core/plugin/jsonSchema/format-validators.d.ts +0 -20
  1231. package/dist/core/plugin/jsonSchema/index.d.ts +0 -11
  1232. package/dist/core/plugin/jsonSchema/plugin.d.ts +0 -35
  1233. package/dist/core/plugin/jsonSchema/ref-resolver.d.ts +0 -14
  1234. package/dist/core/plugin/jsonSchema/types.d.ts +0 -69
  1235. package/dist/core/plugin/jsonSchema/validation-core.d.ts +0 -29
  1236. package/dist/core/plugin/jsonSchemaFullFeature.d.ts +0 -31
  1237. package/dist/core/plugin/literal.d.ts +0 -40
  1238. package/dist/core/plugin/message-factories.d.ts +0 -9
  1239. package/dist/core/plugin/nullable.d.ts +0 -34
  1240. package/dist/core/plugin/numberFinite.d.ts +0 -41
  1241. package/dist/core/plugin/numberInteger.d.ts +0 -41
  1242. package/dist/core/plugin/numberMax.d.ts +0 -49
  1243. package/dist/core/plugin/numberMin.d.ts +0 -49
  1244. package/dist/core/plugin/numberMultipleOf.d.ts +0 -42
  1245. package/dist/core/plugin/numberNegative.d.ts +0 -41
  1246. package/dist/core/plugin/numberPositive.d.ts +0 -41
  1247. package/dist/core/plugin/numberRange.d.ts +0 -48
  1248. package/dist/core/plugin/object.d.ts +0 -43
  1249. package/dist/core/plugin/objectAdditionalProperties.d.ts +0 -51
  1250. package/dist/core/plugin/objectDependentRequired.d.ts +0 -42
  1251. package/dist/core/plugin/objectDependentSchemas.d.ts +0 -40
  1252. package/dist/core/plugin/objectMaxProperties.d.ts +0 -42
  1253. package/dist/core/plugin/objectMinProperties.d.ts +0 -42
  1254. package/dist/core/plugin/objectPatternProperties.d.ts +0 -46
  1255. package/dist/core/plugin/objectPropertyNames.d.ts +0 -36
  1256. package/dist/core/plugin/objectRecursively.d.ts +0 -81
  1257. package/dist/core/plugin/oneOf.d.ts +0 -44
  1258. package/dist/core/plugin/optional.d.ts +0 -35
  1259. package/dist/core/plugin/optionalIf.d.ts +0 -42
  1260. package/dist/core/plugin/orFail.d.ts +0 -132
  1261. package/dist/core/plugin/readOnlyWriteOnly.d.ts +0 -48
  1262. package/dist/core/plugin/required.d.ts +0 -45
  1263. package/dist/core/plugin/requiredIf.d.ts +0 -66
  1264. package/dist/core/plugin/shared-constants.d.ts +0 -45
  1265. package/dist/core/plugin/shared.d.ts +0 -3
  1266. package/dist/core/plugin/skip.d.ts +0 -57
  1267. package/dist/core/plugin/stitch-typed.d.ts +0 -15
  1268. package/dist/core/plugin/stitch.d.ts +0 -1
  1269. package/dist/core/plugin/stitchSimple.d.ts +0 -4
  1270. package/dist/core/plugin/stringAlphanumeric.d.ts +0 -42
  1271. package/dist/core/plugin/stringBase64.d.ts +0 -119
  1272. package/dist/core/plugin/stringContentEncoding.d.ts +0 -43
  1273. package/dist/core/plugin/stringContentMediaType.d.ts +0 -47
  1274. package/dist/core/plugin/stringDate.d.ts +0 -48
  1275. package/dist/core/plugin/stringDatetime.d.ts +0 -108
  1276. package/dist/core/plugin/stringDuration.d.ts +0 -41
  1277. package/dist/core/plugin/stringEmail.d.ts +0 -81
  1278. package/dist/core/plugin/stringEndsWith.d.ts +0 -42
  1279. package/dist/core/plugin/stringExactLength.d.ts +0 -46
  1280. package/dist/core/plugin/stringHostname.d.ts +0 -104
  1281. package/dist/core/plugin/stringIpv4.d.ts +0 -85
  1282. package/dist/core/plugin/stringIpv6.d.ts +0 -104
  1283. package/dist/core/plugin/stringIri.d.ts +0 -117
  1284. package/dist/core/plugin/stringIriReference.d.ts +0 -43
  1285. package/dist/core/plugin/stringJsonPointer.d.ts +0 -107
  1286. package/dist/core/plugin/stringMax.d.ts +0 -43
  1287. package/dist/core/plugin/stringMin.d.ts +0 -43
  1288. package/dist/core/plugin/stringPattern.d.ts +0 -40
  1289. package/dist/core/plugin/stringRelativeJsonPointer.d.ts +0 -42
  1290. package/dist/core/plugin/stringStartsWith.d.ts +0 -42
  1291. package/dist/core/plugin/stringTime.d.ts +0 -39
  1292. package/dist/core/plugin/stringUriTemplate.d.ts +0 -43
  1293. package/dist/core/plugin/stringUrl.d.ts +0 -97
  1294. package/dist/core/plugin/testUtils.d.ts +0 -15
  1295. package/dist/core/plugin/transform-type-restrictions.d.ts +0 -61
  1296. package/dist/core/plugin/transform.d.ts +0 -35
  1297. package/dist/core/plugin/tupleBuilder.d.ts +0 -66
  1298. package/dist/core/plugin/types.d.ts +0 -143
  1299. package/dist/core/plugin/unionGuard.d.ts +0 -50
  1300. package/dist/core/plugin/utils/field-accessor-optimized.d.ts +0 -50
  1301. package/dist/core/plugin/utils/field-accessor.d.ts +0 -107
  1302. package/dist/core/plugin/uuid.d.ts +0 -95
  1303. package/dist/core/plugin/validateIf.d.ts +0 -57
  1304. package/dist/core/registry/plugin-registry.d.ts +0 -116
  1305. package/dist/core/registry.d.ts +0 -6
  1306. package/dist/core/transform/index.d.ts +0 -1
  1307. package/dist/core/transform/string/defaultValue.d.ts +0 -6
  1308. package/dist/core/transform/string/index.d.ts +0 -3
  1309. package/dist/core/transform/string/replace.d.ts +0 -14
  1310. package/dist/core/transform/string/sanitize.d.ts +0 -6
  1311. package/dist/core/utils/type-guards.d.ts +0 -68
  1312. package/dist/index.js.map +0 -7
  1313. package/dist/index.mjs.map +0 -7
  1314. package/dist/types/array-type-analysis.d.ts +0 -115
  1315. package/dist/types/indexed-result.d.ts +0 -44
  1316. package/dist/types/result.d.ts +0 -159
  1317. package/dist/types/stitch-types.d.ts +0 -118
  1318. package/dist/types/util.d.ts +0 -19
  1319. package/dist/types/valitator.d.ts +0 -10
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EACH_STEP = void 0;
4
+ exports.readItemChildren = readItemChildren;
5
+ exports.composeTupleItems = composeTupleItems;
6
+ exports.composeContains = composeContains;
7
+ exports.declareArrayRules = declareArrayRules;
8
+ // ===========================================================================
9
+ // L8 src/json-schema/flatten-array-schema.ts — `items`, `additionalItems`,
10
+ // `contains`.
11
+ //
12
+ // TWO SHAPES, ONE KEYWORD. `items` is either a schema (every element) or an
13
+ // ARRAY of schemas (position i constrains element i). 1.x read only the first
14
+ // shape and guessed the method name `tupleBuilder` for the second, which is not
15
+ // a chain method, so the tuple form silently constrained nothing.
16
+ //
17
+ // single form -> a CHILD DECLARATION at `path[*]`. That is better than
18
+ // `.each()` here: the element gets a real declared path, so
19
+ // its own `properties` become `path[*].name` and an issue
20
+ // renders as `tags[2].name` rather than as a nested cause.
21
+ // tuple form -> ONE composite, built from create-rule.
22
+ //
23
+ // WHY NOT tupleBuilder (measured, not assumed): tupleBuilderPlugin rejects a
24
+ // NON-ARRAY and enforces a LENGTH — exactly `value.length !== positions.length`
25
+ // without a rest chain, and `value.length < positions.length` with one. Draft-07
26
+ // §6.4 / §9.3.1 does neither: a non-array is not an array constraint's business
27
+ // at all, a SHORT array is valid, and a LONG array is `additionalItems`' to
28
+ // judge. Binding the tuple form to `.builder()` would therefore reject
29
+ // documents the schema permits. The composite below is the same rule KIND,
30
+ // with the draft's semantics.
31
+ // ===========================================================================
32
+ const create_chain_node_1 = require("../chain/create-chain-node");
33
+ const create_field_slots_1 = require("../chain/create-field-slots");
34
+ const create_rule_1 = require("../plugin-kit/create-rule");
35
+ const apply_keyword_binding_1 = require("./apply-keyword-binding");
36
+ const keyword_map_array_1 = require("./keyword-map-array");
37
+ const types_1 = require("../types");
38
+ const collect_definitions_1 = require("./collect-definitions");
39
+ /** The declaration step for "every element of this array". */
40
+ exports.EACH_STEP = "[*]";
41
+ const NO_CHILDREN = Object.freeze([]);
42
+ const NO_RULES = Object.freeze([]);
43
+ /** True for the tuple form of `items`, which is an ARRAY of schemas. */
44
+ function isTupleItems(items) {
45
+ return (0, types_1.isArray)(items);
46
+ }
47
+ /**
48
+ * The single form only. The tuple form gets no child path: element 0 and
49
+ * element 1 obey DIFFERENT schemas, and one declared `[*]` cannot say that.
50
+ */
51
+ function readItemChildren(schema) {
52
+ const items = schema.items;
53
+ if (items === undefined || isTupleItems(items))
54
+ return NO_CHILDREN;
55
+ return Object.freeze([{ step: exports.EACH_STEP, schema: items, isRequired: false }]);
56
+ }
57
+ /**
58
+ * Element i against position i, extra elements against `additionalItems`.
59
+ * A non-array passes, a short array passes, and `additionalItems: false`
60
+ * becomes the schema that matches nothing (collect-definitions), so the
61
+ * "no extra elements" case needs no fourth branch kind.
62
+ */
63
+ function applyPositionally(runners, positionCount, hasRest) {
64
+ return (value, ctx) => {
65
+ if (!(0, types_1.isArray)(value))
66
+ return types_1.PASS;
67
+ for (let index = 0; index < value.length; index += 1) {
68
+ const runner = index < positionCount
69
+ ? runners[index]
70
+ : hasRest
71
+ ? runners[positionCount]
72
+ : undefined;
73
+ if (runner === undefined)
74
+ continue;
75
+ const outcome = runner.run(value[index], ctx);
76
+ if (!outcome.ok)
77
+ return (0, types_1.fail)({ ...outcome.detail, index });
78
+ }
79
+ return types_1.PASS;
80
+ };
81
+ }
82
+ function describePosition(index) {
83
+ return index < 0
84
+ ? "An element does not match the schema declared for its position"
85
+ : `Element ${String(index)} does not match the schema declared for it`;
86
+ }
87
+ function composeTupleItems(schema, context) {
88
+ const items = schema.items;
89
+ if (items === undefined || !isTupleItems(items))
90
+ return NO_RULES;
91
+ const branches = items.map((position, index) => context.toBranch(`position:${String(index)}`, position));
92
+ const rest = schema.additionalItems;
93
+ const hasRest = rest !== undefined;
94
+ if (rest !== undefined)
95
+ branches.push(context.toBranch("rest", rest));
96
+ const positionCount = items.length;
97
+ return Object.freeze([
98
+ (0, create_rule_1.composite)({
99
+ code: "items",
100
+ severity: context.build.config.defaultSeverity,
101
+ branches,
102
+ combine: (runners) => applyPositionally(runners, positionCount, hasRest),
103
+ describe: (detail) => describePosition((0, types_1.isNumber)(detail.index) ? detail.index : -1),
104
+ buildMessageContext: () => ({}),
105
+ }),
106
+ ]);
107
+ }
108
+ /**
109
+ * `contains` is EXISTENTIAL: at least one element matches. arrayContains owns
110
+ * that reduction, and its default bounds (min 1, no max) are exactly the
111
+ * draft's, so this is one call and no arithmetic.
112
+ */
113
+ function composeContains(schema, context) {
114
+ const contains = schema.contains;
115
+ if (contains === undefined)
116
+ return NO_RULES;
117
+ const element = context.collectSubSchemaRules((0, collect_definitions_1.toSchemaObject)(contains));
118
+ return Object.freeze([
119
+ context.bag.arrayContains.build(context.ruleContextFor(context.bag.arrayContains.name, "contains"), element),
120
+ ]);
121
+ }
122
+ /**
123
+ * The three array keywords that BIND. `minItems` maps to the method `minLength`
124
+ * and `maxItems` to `maxLength`; writing "minItems" as the method name does not
125
+ * compile (keyword-map-array.ts), which is the C2 regression made impossible.
126
+ * `uniqueItems: false` never reaches its binding: §6.4.3 gives it no effect and
127
+ * the binding's value type is `true`.
128
+ */
129
+ function declareArrayRules(schema, context) {
130
+ let chain = (0, create_field_slots_1.createFieldSlots)(context.bag, context.build).array;
131
+ if (schema.minItems !== undefined) {
132
+ chain = (0, apply_keyword_binding_1.applyKeywordBinding)(chain, keyword_map_array_1.minItemsBinding, schema.minItems);
133
+ }
134
+ if (schema.maxItems !== undefined) {
135
+ chain = (0, apply_keyword_binding_1.applyKeywordBinding)(chain, keyword_map_array_1.maxItemsBinding, schema.maxItems);
136
+ }
137
+ if (schema.uniqueItems === true) {
138
+ chain = (0, apply_keyword_binding_1.applyKeywordBinding)(chain, keyword_map_array_1.uniqueItemsBinding, true);
139
+ }
140
+ return (0, create_chain_node_1.readChainRules)(chain) ?? NO_RULES;
141
+ }
@@ -0,0 +1,134 @@
1
+ // ===========================================================================
2
+ // L8 src/json-schema/flatten-array-schema.ts — `items`, `additionalItems`,
3
+ // `contains`.
4
+ //
5
+ // TWO SHAPES, ONE KEYWORD. `items` is either a schema (every element) or an
6
+ // ARRAY of schemas (position i constrains element i). 1.x read only the first
7
+ // shape and guessed the method name `tupleBuilder` for the second, which is not
8
+ // a chain method, so the tuple form silently constrained nothing.
9
+ //
10
+ // single form -> a CHILD DECLARATION at `path[*]`. That is better than
11
+ // `.each()` here: the element gets a real declared path, so
12
+ // its own `properties` become `path[*].name` and an issue
13
+ // renders as `tags[2].name` rather than as a nested cause.
14
+ // tuple form -> ONE composite, built from create-rule.
15
+ //
16
+ // WHY NOT tupleBuilder (measured, not assumed): tupleBuilderPlugin rejects a
17
+ // NON-ARRAY and enforces a LENGTH — exactly `value.length !== positions.length`
18
+ // without a rest chain, and `value.length < positions.length` with one. Draft-07
19
+ // §6.4 / §9.3.1 does neither: a non-array is not an array constraint's business
20
+ // at all, a SHORT array is valid, and a LONG array is `additionalItems`' to
21
+ // judge. Binding the tuple form to `.builder()` would therefore reject
22
+ // documents the schema permits. The composite below is the same rule KIND,
23
+ // with the draft's semantics.
24
+ // ===========================================================================
25
+ import { readChainRules } from "../chain/create-chain-node.mjs";
26
+ import { createFieldSlots } from "../chain/create-field-slots.mjs";
27
+ import { composite } from "../plugin-kit/create-rule.mjs";
28
+ import { applyKeywordBinding } from "./apply-keyword-binding.mjs";
29
+ import { maxItemsBinding, minItemsBinding, uniqueItemsBinding, } from "./keyword-map-array.mjs";
30
+ import { PASS, fail, isArray, isNumber } from "../types/index.mjs";
31
+ import { toSchemaObject } from "./collect-definitions.mjs";
32
+ /** The declaration step for "every element of this array". */
33
+ export const EACH_STEP = "[*]";
34
+ const NO_CHILDREN = Object.freeze([]);
35
+ const NO_RULES = Object.freeze([]);
36
+ /** True for the tuple form of `items`, which is an ARRAY of schemas. */
37
+ function isTupleItems(items) {
38
+ return isArray(items);
39
+ }
40
+ /**
41
+ * The single form only. The tuple form gets no child path: element 0 and
42
+ * element 1 obey DIFFERENT schemas, and one declared `[*]` cannot say that.
43
+ */
44
+ export function readItemChildren(schema) {
45
+ const items = schema.items;
46
+ if (items === undefined || isTupleItems(items))
47
+ return NO_CHILDREN;
48
+ return Object.freeze([{ step: EACH_STEP, schema: items, isRequired: false }]);
49
+ }
50
+ /**
51
+ * Element i against position i, extra elements against `additionalItems`.
52
+ * A non-array passes, a short array passes, and `additionalItems: false`
53
+ * becomes the schema that matches nothing (collect-definitions), so the
54
+ * "no extra elements" case needs no fourth branch kind.
55
+ */
56
+ function applyPositionally(runners, positionCount, hasRest) {
57
+ return (value, ctx) => {
58
+ if (!isArray(value))
59
+ return PASS;
60
+ for (let index = 0; index < value.length; index += 1) {
61
+ const runner = index < positionCount
62
+ ? runners[index]
63
+ : hasRest
64
+ ? runners[positionCount]
65
+ : undefined;
66
+ if (runner === undefined)
67
+ continue;
68
+ const outcome = runner.run(value[index], ctx);
69
+ if (!outcome.ok)
70
+ return fail({ ...outcome.detail, index });
71
+ }
72
+ return PASS;
73
+ };
74
+ }
75
+ function describePosition(index) {
76
+ return index < 0
77
+ ? "An element does not match the schema declared for its position"
78
+ : `Element ${String(index)} does not match the schema declared for it`;
79
+ }
80
+ export function composeTupleItems(schema, context) {
81
+ const items = schema.items;
82
+ if (items === undefined || !isTupleItems(items))
83
+ return NO_RULES;
84
+ const branches = items.map((position, index) => context.toBranch(`position:${String(index)}`, position));
85
+ const rest = schema.additionalItems;
86
+ const hasRest = rest !== undefined;
87
+ if (rest !== undefined)
88
+ branches.push(context.toBranch("rest", rest));
89
+ const positionCount = items.length;
90
+ return Object.freeze([
91
+ composite({
92
+ code: "items",
93
+ severity: context.build.config.defaultSeverity,
94
+ branches,
95
+ combine: (runners) => applyPositionally(runners, positionCount, hasRest),
96
+ describe: (detail) => describePosition(isNumber(detail.index) ? detail.index : -1),
97
+ buildMessageContext: () => ({}),
98
+ }),
99
+ ]);
100
+ }
101
+ /**
102
+ * `contains` is EXISTENTIAL: at least one element matches. arrayContains owns
103
+ * that reduction, and its default bounds (min 1, no max) are exactly the
104
+ * draft's, so this is one call and no arithmetic.
105
+ */
106
+ export function composeContains(schema, context) {
107
+ const contains = schema.contains;
108
+ if (contains === undefined)
109
+ return NO_RULES;
110
+ const element = context.collectSubSchemaRules(toSchemaObject(contains));
111
+ return Object.freeze([
112
+ context.bag.arrayContains.build(context.ruleContextFor(context.bag.arrayContains.name, "contains"), element),
113
+ ]);
114
+ }
115
+ /**
116
+ * The three array keywords that BIND. `minItems` maps to the method `minLength`
117
+ * and `maxItems` to `maxLength`; writing "minItems" as the method name does not
118
+ * compile (keyword-map-array.ts), which is the C2 regression made impossible.
119
+ * `uniqueItems: false` never reaches its binding: §6.4.3 gives it no effect and
120
+ * the binding's value type is `true`.
121
+ */
122
+ export function declareArrayRules(schema, context) {
123
+ let chain = createFieldSlots(context.bag, context.build).array;
124
+ if (schema.minItems !== undefined) {
125
+ chain = applyKeywordBinding(chain, minItemsBinding, schema.minItems);
126
+ }
127
+ if (schema.maxItems !== undefined) {
128
+ chain = applyKeywordBinding(chain, maxItemsBinding, schema.maxItems);
129
+ }
130
+ if (schema.uniqueItems === true) {
131
+ chain = applyKeywordBinding(chain, uniqueItemsBinding, true);
132
+ }
133
+ return readChainRules(chain) ?? NO_RULES;
134
+ }
@@ -0,0 +1,20 @@
1
+ import type { Draft07Schema, Draft07SchemaObject } from "./draft07.types";
2
+ import type { ChildSchema } from "./structural-expansion.types";
3
+ export interface SchemaFieldDeclaration {
4
+ readonly path: string;
5
+ readonly schema: Draft07SchemaObject;
6
+ readonly isRequired: boolean;
7
+ }
8
+ export type ReadChildSchemas = (schema: Draft07SchemaObject) => readonly ChildSchema[];
9
+ /** `[*]` trails its key; every other step is a `.`-joined property name. */
10
+ export declare function joinDeclaredPath(parent: string, step: string): string;
11
+ /** The root plus every arm of its `allOf`, transitively, all resolved. */
12
+ export declare function collectRootNodes(root: Draft07Schema): readonly Draft07SchemaObject[];
13
+ /**
14
+ * The root declarations come FIRST, one per `allOf` arm that carries a rule of
15
+ * its own, so two arms cannot silently overwrite each other's `minProperties`.
16
+ * `isRequired` is false: the root is always present (create-validator refuses a
17
+ * missing root before the plan runs), and a presence rule there would only add
18
+ * a second answer to a question already settled.
19
+ */
20
+ export declare function flattenSchema(root: Draft07Schema, readChildren: ReadChildSchemas): readonly SchemaFieldDeclaration[];
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.joinDeclaredPath = joinDeclaredPath;
4
+ exports.collectRootNodes = collectRootNodes;
5
+ exports.flattenSchema = flattenSchema;
6
+ // ===========================================================================
7
+ // L8 src/json-schema/flatten-schema.ts — the document as a list of DECLARED
8
+ // PATHS.
9
+ //
10
+ // `properties` nests; Luq declares. `{properties:{user:{properties:{address:
11
+ // {properties:{street:{}}}}}}}` becomes the declaration `user.address.street`,
12
+ // and `items` becomes `tags[*]`, so an issue renders as `tags[2].name` with the
13
+ // real index rather than as a cause hanging off a parent object.
14
+ //
15
+ // THE ROOT IS A DECLARABLE PATH — as of the stage-27 gate, and it is why
16
+ // `{type:"object", properties:{…}, additionalProperties:false}` converts at all.
17
+ // parse-field-path still rejects "" (a CHILD path may not be empty), but
18
+ // compile-schema maps ROOT_PATH onto the EMPTY TEMPLATE — the shape a composite
19
+ // branch's own rules have always used — so a root keyword becomes a rule.
20
+ //
21
+ // 1.x dropped every root keyword in silence (skipping the `path === ""` entry
22
+ // and calling `.strict()`, which has no runtime effect); step 25 refused them
23
+ // loudly instead. Neither validated them. Now:
24
+ // * `properties` still becomes one DECLARED PATH per key, so an issue reads
25
+ // `user.age`, not "somewhere inside the root object";
26
+ // * `required` still distributes to those children, so a missing property is
27
+ // reported AT the property;
28
+ // * `allOf` is still merged arm by arm, so its children are declared too;
29
+ // * `type` is dropped: fromJsonSchema is object-rooted by construction;
30
+ // * EVERY OTHER rule-bearing keyword becomes a rule on the root declaration.
31
+ // `properties` is kept in that residual node, and only there: it contributes no
32
+ // rule, but createStructuralContext reads `declaredSiblingKeys` from it, which
33
+ // is what a root-level `additionalProperties: false` needs to know.
34
+ // ===========================================================================
35
+ const declared_child_keys_1 = require("../compile/declared-child-keys");
36
+ const reserved_segment_1 = require("../path/reserved-segment");
37
+ const collect_definitions_1 = require("./collect-definitions");
38
+ const flatten_array_schema_1 = require("./flatten-array-schema");
39
+ /** Deep enough for any hand-written schema; a recursive one stops sooner. */
40
+ const MAX_NESTING_DEPTH = 32;
41
+ /**
42
+ * Root keywords that produce NO rule on the root declaration: the ones the
43
+ * flattener distributes itself (and would otherwise apply twice), plus the ones
44
+ * that assert nothing anywhere. Every other keyword stays in the residual node
45
+ * and reaches expandSchemaRules like any other field's schema.
46
+ */
47
+ const ROOT_KEYWORDS_WITHOUT_A_ROOT_RULE = Object.freeze([
48
+ "$schema",
49
+ "$id",
50
+ "$ref",
51
+ "$comment",
52
+ "definitions",
53
+ "$defs",
54
+ "title",
55
+ "description",
56
+ "default",
57
+ "examples",
58
+ "readOnly",
59
+ "writeOnly",
60
+ "properties",
61
+ "required",
62
+ "allOf",
63
+ "type",
64
+ ]);
65
+ /** `[*]` trails its key; every other step is a `.`-joined property name. */
66
+ function joinDeclaredPath(parent, step) {
67
+ if (step === flatten_array_schema_1.EACH_STEP)
68
+ return `${parent}${flatten_array_schema_1.EACH_STEP}`;
69
+ (0, reserved_segment_1.assertDeclarableKey)(step, parent === "" ? step : `${parent}.${step}`);
70
+ return parent === "" ? step : `${parent}.${step}`;
71
+ }
72
+ /** The root plus every arm of its `allOf`, transitively, all resolved. */
73
+ function collectRootNodes(root) {
74
+ const nodes = [];
75
+ const pending = [root];
76
+ while (pending.length > 0 && nodes.length < MAX_NESTING_DEPTH) {
77
+ const next = pending.shift();
78
+ if (next === undefined)
79
+ break;
80
+ const node = (0, collect_definitions_1.resolveSchemaNode)(next, root);
81
+ nodes.push(node);
82
+ for (const arm of node.allOf ?? [])
83
+ pending.push(arm);
84
+ }
85
+ return Object.freeze(nodes);
86
+ }
87
+ /** True when the node says anything the root declaration has to carry. */
88
+ function hasRootRuleKeyword(node) {
89
+ return Object.keys(node).some((keyword) => !ROOT_KEYWORDS_WITHOUT_A_ROOT_RULE.includes(keyword));
90
+ }
91
+ /** The root node MINUS the three keywords the flattener applies itself. A rest
92
+ * destructuring, so the compiler and not a comment keeps the result a schema. */
93
+ function dropDistributedKeywords(node) {
94
+ const { type, required, allOf, ...residual } = node;
95
+ return residual;
96
+ }
97
+ /** Children of the root, merged across the `allOf` arms, first arm winning. */
98
+ function readRootChildren(nodes, readChildren) {
99
+ const merged = new Map();
100
+ for (const node of nodes) {
101
+ // Requiredness is read from the ROOT nodes themselves: readChildSchemas
102
+ // reports every child as not-required, because everywhere else a
103
+ // `required` array becomes a rule on the object that owns it. The root has
104
+ // no such object, so this is the one place it becomes child presence.
105
+ const required = node.required ?? [];
106
+ for (const child of readChildren(node)) {
107
+ const isRequired = required.includes(child.step);
108
+ const seen = merged.get(child.step);
109
+ if (seen === undefined) {
110
+ merged.set(child.step, { ...child, isRequired });
111
+ continue;
112
+ }
113
+ if (isRequired && !seen.isRequired) {
114
+ merged.set(child.step, { ...seen, isRequired: true });
115
+ }
116
+ }
117
+ }
118
+ return Object.freeze([...merged.values()]);
119
+ }
120
+ /**
121
+ * A `$ref` already on this branch is a RECURSIVE definition. Its declared paths
122
+ * are infinite and Luq declares finite ones, so the node's own rules are kept
123
+ * and its children are not expanded. objectRecursively is the plugin for that
124
+ * shape and it is not in the JSON Schema bag.
125
+ */
126
+ function walkChild(parentPath, child, visitedRefs, depth, state) {
127
+ const path = joinDeclaredPath(parentPath, child.step);
128
+ const pointer = (0, collect_definitions_1.readRefPointer)(child.schema);
129
+ const node = (0, collect_definitions_1.resolveSchemaNode)(child.schema, state.root);
130
+ state.into.push({ path, schema: node, isRequired: child.isRequired });
131
+ const isRepeat = pointer !== undefined && visitedRefs.includes(pointer);
132
+ if (isRepeat || depth >= MAX_NESTING_DEPTH)
133
+ return;
134
+ const seen = pointer === undefined ? visitedRefs : [...visitedRefs, pointer];
135
+ for (const grandChild of state.readChildren(node)) {
136
+ walkChild(path, grandChild, seen, depth + 1, state);
137
+ }
138
+ }
139
+ /**
140
+ * The root declarations come FIRST, one per `allOf` arm that carries a rule of
141
+ * its own, so two arms cannot silently overwrite each other's `minProperties`.
142
+ * `isRequired` is false: the root is always present (create-validator refuses a
143
+ * missing root before the plan runs), and a presence rule there would only add
144
+ * a second answer to a question already settled.
145
+ */
146
+ function flattenSchema(root, readChildren) {
147
+ const nodes = collectRootNodes(root);
148
+ const state = { root, readChildren, into: [] };
149
+ for (const node of nodes) {
150
+ if (!hasRootRuleKeyword(node))
151
+ continue;
152
+ state.into.push({
153
+ path: declared_child_keys_1.ROOT_PATH,
154
+ schema: dropDistributedKeywords(node),
155
+ isRequired: false,
156
+ });
157
+ }
158
+ for (const child of readRootChildren(nodes, readChildren)) {
159
+ walkChild("", child, Object.freeze([]), 0, state);
160
+ }
161
+ return Object.freeze(state.into);
162
+ }
@@ -0,0 +1,157 @@
1
+ // ===========================================================================
2
+ // L8 src/json-schema/flatten-schema.ts — the document as a list of DECLARED
3
+ // PATHS.
4
+ //
5
+ // `properties` nests; Luq declares. `{properties:{user:{properties:{address:
6
+ // {properties:{street:{}}}}}}}` becomes the declaration `user.address.street`,
7
+ // and `items` becomes `tags[*]`, so an issue renders as `tags[2].name` with the
8
+ // real index rather than as a cause hanging off a parent object.
9
+ //
10
+ // THE ROOT IS A DECLARABLE PATH — as of the stage-27 gate, and it is why
11
+ // `{type:"object", properties:{…}, additionalProperties:false}` converts at all.
12
+ // parse-field-path still rejects "" (a CHILD path may not be empty), but
13
+ // compile-schema maps ROOT_PATH onto the EMPTY TEMPLATE — the shape a composite
14
+ // branch's own rules have always used — so a root keyword becomes a rule.
15
+ //
16
+ // 1.x dropped every root keyword in silence (skipping the `path === ""` entry
17
+ // and calling `.strict()`, which has no runtime effect); step 25 refused them
18
+ // loudly instead. Neither validated them. Now:
19
+ // * `properties` still becomes one DECLARED PATH per key, so an issue reads
20
+ // `user.age`, not "somewhere inside the root object";
21
+ // * `required` still distributes to those children, so a missing property is
22
+ // reported AT the property;
23
+ // * `allOf` is still merged arm by arm, so its children are declared too;
24
+ // * `type` is dropped: fromJsonSchema is object-rooted by construction;
25
+ // * EVERY OTHER rule-bearing keyword becomes a rule on the root declaration.
26
+ // `properties` is kept in that residual node, and only there: it contributes no
27
+ // rule, but createStructuralContext reads `declaredSiblingKeys` from it, which
28
+ // is what a root-level `additionalProperties: false` needs to know.
29
+ // ===========================================================================
30
+ import { ROOT_PATH } from "../compile/declared-child-keys.mjs";
31
+ import { assertDeclarableKey } from "../path/reserved-segment.mjs";
32
+ import { resolveSchemaNode, readRefPointer } from "./collect-definitions.mjs";
33
+ import { EACH_STEP } from "./flatten-array-schema.mjs";
34
+ /** Deep enough for any hand-written schema; a recursive one stops sooner. */
35
+ const MAX_NESTING_DEPTH = 32;
36
+ /**
37
+ * Root keywords that produce NO rule on the root declaration: the ones the
38
+ * flattener distributes itself (and would otherwise apply twice), plus the ones
39
+ * that assert nothing anywhere. Every other keyword stays in the residual node
40
+ * and reaches expandSchemaRules like any other field's schema.
41
+ */
42
+ const ROOT_KEYWORDS_WITHOUT_A_ROOT_RULE = Object.freeze([
43
+ "$schema",
44
+ "$id",
45
+ "$ref",
46
+ "$comment",
47
+ "definitions",
48
+ "$defs",
49
+ "title",
50
+ "description",
51
+ "default",
52
+ "examples",
53
+ "readOnly",
54
+ "writeOnly",
55
+ "properties",
56
+ "required",
57
+ "allOf",
58
+ "type",
59
+ ]);
60
+ /** `[*]` trails its key; every other step is a `.`-joined property name. */
61
+ export function joinDeclaredPath(parent, step) {
62
+ if (step === EACH_STEP)
63
+ return `${parent}${EACH_STEP}`;
64
+ assertDeclarableKey(step, parent === "" ? step : `${parent}.${step}`);
65
+ return parent === "" ? step : `${parent}.${step}`;
66
+ }
67
+ /** The root plus every arm of its `allOf`, transitively, all resolved. */
68
+ export function collectRootNodes(root) {
69
+ const nodes = [];
70
+ const pending = [root];
71
+ while (pending.length > 0 && nodes.length < MAX_NESTING_DEPTH) {
72
+ const next = pending.shift();
73
+ if (next === undefined)
74
+ break;
75
+ const node = resolveSchemaNode(next, root);
76
+ nodes.push(node);
77
+ for (const arm of node.allOf ?? [])
78
+ pending.push(arm);
79
+ }
80
+ return Object.freeze(nodes);
81
+ }
82
+ /** True when the node says anything the root declaration has to carry. */
83
+ function hasRootRuleKeyword(node) {
84
+ return Object.keys(node).some((keyword) => !ROOT_KEYWORDS_WITHOUT_A_ROOT_RULE.includes(keyword));
85
+ }
86
+ /** The root node MINUS the three keywords the flattener applies itself. A rest
87
+ * destructuring, so the compiler and not a comment keeps the result a schema. */
88
+ function dropDistributedKeywords(node) {
89
+ const { type, required, allOf, ...residual } = node;
90
+ return residual;
91
+ }
92
+ /** Children of the root, merged across the `allOf` arms, first arm winning. */
93
+ function readRootChildren(nodes, readChildren) {
94
+ const merged = new Map();
95
+ for (const node of nodes) {
96
+ // Requiredness is read from the ROOT nodes themselves: readChildSchemas
97
+ // reports every child as not-required, because everywhere else a
98
+ // `required` array becomes a rule on the object that owns it. The root has
99
+ // no such object, so this is the one place it becomes child presence.
100
+ const required = node.required ?? [];
101
+ for (const child of readChildren(node)) {
102
+ const isRequired = required.includes(child.step);
103
+ const seen = merged.get(child.step);
104
+ if (seen === undefined) {
105
+ merged.set(child.step, { ...child, isRequired });
106
+ continue;
107
+ }
108
+ if (isRequired && !seen.isRequired) {
109
+ merged.set(child.step, { ...seen, isRequired: true });
110
+ }
111
+ }
112
+ }
113
+ return Object.freeze([...merged.values()]);
114
+ }
115
+ /**
116
+ * A `$ref` already on this branch is a RECURSIVE definition. Its declared paths
117
+ * are infinite and Luq declares finite ones, so the node's own rules are kept
118
+ * and its children are not expanded. objectRecursively is the plugin for that
119
+ * shape and it is not in the JSON Schema bag.
120
+ */
121
+ function walkChild(parentPath, child, visitedRefs, depth, state) {
122
+ const path = joinDeclaredPath(parentPath, child.step);
123
+ const pointer = readRefPointer(child.schema);
124
+ const node = resolveSchemaNode(child.schema, state.root);
125
+ state.into.push({ path, schema: node, isRequired: child.isRequired });
126
+ const isRepeat = pointer !== undefined && visitedRefs.includes(pointer);
127
+ if (isRepeat || depth >= MAX_NESTING_DEPTH)
128
+ return;
129
+ const seen = pointer === undefined ? visitedRefs : [...visitedRefs, pointer];
130
+ for (const grandChild of state.readChildren(node)) {
131
+ walkChild(path, grandChild, seen, depth + 1, state);
132
+ }
133
+ }
134
+ /**
135
+ * The root declarations come FIRST, one per `allOf` arm that carries a rule of
136
+ * its own, so two arms cannot silently overwrite each other's `minProperties`.
137
+ * `isRequired` is false: the root is always present (create-validator refuses a
138
+ * missing root before the plan runs), and a presence rule there would only add
139
+ * a second answer to a question already settled.
140
+ */
141
+ export function flattenSchema(root, readChildren) {
142
+ const nodes = collectRootNodes(root);
143
+ const state = { root, readChildren, into: [] };
144
+ for (const node of nodes) {
145
+ if (!hasRootRuleKeyword(node))
146
+ continue;
147
+ state.into.push({
148
+ path: ROOT_PATH,
149
+ schema: dropDistributedKeywords(node),
150
+ isRequired: false,
151
+ });
152
+ }
153
+ for (const child of readRootChildren(nodes, readChildren)) {
154
+ walkChild("", child, Object.freeze([]), 0, state);
155
+ }
156
+ return Object.freeze(state.into);
157
+ }
@@ -0,0 +1,23 @@
1
+ /** `fragment` is what came AFTER the "#", so there is no prefix to strip. */
2
+ export declare function toPointerTokens(fragment: string): readonly string[];
3
+ /**
4
+ * `definitions` and `$defs` are the same container to a pointer: a Draft-07
5
+ * document spells it one way, a 2019-09 document the other, and a schema that
6
+ * mixes them (they exist) must still resolve. A real `definitions` member
7
+ * always wins, so a property literally named "definitions" is unaffected.
8
+ */
9
+ export declare function stepInto(current: unknown, token: string): unknown;
10
+ /**
11
+ * ポインタを辿りながら、**途中で跨いだ `$id` を数える**。
12
+ *
13
+ * `#/definitions/baz/definitions/bar` の `baz` が `$id: "folder/"` を持つとき、
14
+ * `bar` の中に書かれた相対 `$ref` は folder/ の下で解決されなければならない。
15
+ * 着地したノードの `$id` だけを見ると、通過したノードの分が落ちる。
16
+ *
17
+ * ベースをどう進めるかは呼び出し側が渡す (`advance`)。この関数は「どのノードを
18
+ * どの順に跨いだか」だけを知っていればよく、URI の演算は持たない。
19
+ */
20
+ export declare function walkPointer<TScope>(fragment: string, document: unknown, scope: TScope, advance: (scope: TScope, node: unknown) => TScope, onMissing: (token: string) => never): {
21
+ readonly node: unknown;
22
+ readonly scope: TScope;
23
+ };