@blade-hq/agent-client 1.1.1 → 1.1.2

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 (583) hide show
  1. package/README.md +48 -25
  2. package/dist/blade-client.d.ts +2 -14
  3. package/dist/index.d.ts +5 -2
  4. package/dist/index.js +212 -106
  5. package/dist/index.js.map +1 -1
  6. package/dist/resources/models.d.ts +15 -0
  7. package/dist/resources/sessions.d.ts +8 -1
  8. package/dist/session/agent-session.d.ts +10 -0
  9. package/dist/session/definition.d.ts +49 -0
  10. package/dist/shared/projection/helpers.d.ts +1 -1
  11. package/dist/types/rest.d.ts +378 -10
  12. package/dist/version.d.ts +4 -42
  13. package/node_modules/@ark/schema/LICENSE +7 -0
  14. package/node_modules/@ark/schema/README.md +18 -0
  15. package/node_modules/@ark/schema/out/config.d.ts +58 -0
  16. package/node_modules/@ark/schema/out/config.js +95 -0
  17. package/node_modules/@ark/schema/out/constraint.d.ts +67 -0
  18. package/node_modules/@ark/schema/out/constraint.js +136 -0
  19. package/node_modules/@ark/schema/out/generic.d.ts +73 -0
  20. package/node_modules/@ark/schema/out/generic.js +76 -0
  21. package/node_modules/@ark/schema/out/index.d.ts +47 -0
  22. package/node_modules/@ark/schema/out/index.js +47 -0
  23. package/node_modules/@ark/schema/out/intrinsic.d.ts +24 -0
  24. package/node_modules/@ark/schema/out/intrinsic.js +56 -0
  25. package/node_modules/@ark/schema/out/kinds.d.ts +73 -0
  26. package/node_modules/@ark/schema/out/kinds.js +71 -0
  27. package/node_modules/@ark/schema/out/module.d.ts +24 -0
  28. package/node_modules/@ark/schema/out/module.js +15 -0
  29. package/node_modules/@ark/schema/out/node.d.ts +154 -0
  30. package/node_modules/@ark/schema/out/node.js +438 -0
  31. package/node_modules/@ark/schema/out/parse.d.ts +52 -0
  32. package/node_modules/@ark/schema/out/parse.js +215 -0
  33. package/node_modules/@ark/schema/out/predicate.d.ts +52 -0
  34. package/node_modules/@ark/schema/out/predicate.js +63 -0
  35. package/node_modules/@ark/schema/out/refinements/after.d.ts +41 -0
  36. package/node_modules/@ark/schema/out/refinements/after.js +35 -0
  37. package/node_modules/@ark/schema/out/refinements/before.d.ts +41 -0
  38. package/node_modules/@ark/schema/out/refinements/before.js +41 -0
  39. package/node_modules/@ark/schema/out/refinements/divisor.d.ts +43 -0
  40. package/node_modules/@ark/schema/out/refinements/divisor.js +58 -0
  41. package/node_modules/@ark/schema/out/refinements/exactLength.d.ts +49 -0
  42. package/node_modules/@ark/schema/out/refinements/exactLength.js +55 -0
  43. package/node_modules/@ark/schema/out/refinements/kinds.d.ts +34 -0
  44. package/node_modules/@ark/schema/out/refinements/kinds.js +25 -0
  45. package/node_modules/@ark/schema/out/refinements/max.d.ts +37 -0
  46. package/node_modules/@ark/schema/out/refinements/max.js +45 -0
  47. package/node_modules/@ark/schema/out/refinements/maxLength.d.ts +40 -0
  48. package/node_modules/@ark/schema/out/refinements/maxLength.js +49 -0
  49. package/node_modules/@ark/schema/out/refinements/min.d.ts +37 -0
  50. package/node_modules/@ark/schema/out/refinements/min.js +39 -0
  51. package/node_modules/@ark/schema/out/refinements/minLength.d.ts +40 -0
  52. package/node_modules/@ark/schema/out/refinements/minLength.js +47 -0
  53. package/node_modules/@ark/schema/out/refinements/pattern.d.ts +43 -0
  54. package/node_modules/@ark/schema/out/refinements/pattern.js +52 -0
  55. package/node_modules/@ark/schema/out/refinements/range.d.ts +106 -0
  56. package/node_modules/@ark/schema/out/refinements/range.js +103 -0
  57. package/node_modules/@ark/schema/out/roots/alias.d.ts +45 -0
  58. package/node_modules/@ark/schema/out/roots/alias.js +115 -0
  59. package/node_modules/@ark/schema/out/roots/basis.d.ts +12 -0
  60. package/node_modules/@ark/schema/out/roots/basis.js +26 -0
  61. package/node_modules/@ark/schema/out/roots/domain.d.ts +45 -0
  62. package/node_modules/@ark/schema/out/roots/domain.js +72 -0
  63. package/node_modules/@ark/schema/out/roots/intersection.d.ts +98 -0
  64. package/node_modules/@ark/schema/out/roots/intersection.js +292 -0
  65. package/node_modules/@ark/schema/out/roots/morph.d.ts +62 -0
  66. package/node_modules/@ark/schema/out/roots/morph.js +159 -0
  67. package/node_modules/@ark/schema/out/roots/proto.d.ts +53 -0
  68. package/node_modules/@ark/schema/out/roots/proto.js +101 -0
  69. package/node_modules/@ark/schema/out/roots/root.d.ts +145 -0
  70. package/node_modules/@ark/schema/out/roots/root.js +455 -0
  71. package/node_modules/@ark/schema/out/roots/union.d.ts +99 -0
  72. package/node_modules/@ark/schema/out/roots/union.js +718 -0
  73. package/node_modules/@ark/schema/out/roots/unit.d.ts +41 -0
  74. package/node_modules/@ark/schema/out/roots/unit.js +86 -0
  75. package/node_modules/@ark/schema/out/roots/utils.d.ts +3 -0
  76. package/node_modules/@ark/schema/out/roots/utils.js +6 -0
  77. package/node_modules/@ark/schema/out/scope.d.ts +158 -0
  78. package/node_modules/@ark/schema/out/scope.js +481 -0
  79. package/node_modules/@ark/schema/out/shared/compile.d.ts +62 -0
  80. package/node_modules/@ark/schema/out/shared/compile.js +145 -0
  81. package/node_modules/@ark/schema/out/shared/declare.d.ts +80 -0
  82. package/node_modules/@ark/schema/out/shared/declare.js +1 -0
  83. package/node_modules/@ark/schema/out/shared/disjoint.d.ts +41 -0
  84. package/node_modules/@ark/schema/out/shared/disjoint.js +65 -0
  85. package/node_modules/@ark/schema/out/shared/errors.d.ts +145 -0
  86. package/node_modules/@ark/schema/out/shared/errors.js +252 -0
  87. package/node_modules/@ark/schema/out/shared/implement.d.ts +151 -0
  88. package/node_modules/@ark/schema/out/shared/implement.js +98 -0
  89. package/node_modules/@ark/schema/out/shared/intersections.d.ts +10 -0
  90. package/node_modules/@ark/schema/out/shared/intersections.js +132 -0
  91. package/node_modules/@ark/schema/out/shared/jsonSchema.d.ts +93 -0
  92. package/node_modules/@ark/schema/out/shared/jsonSchema.js +1 -0
  93. package/node_modules/@ark/schema/out/shared/registry.d.ts +7 -0
  94. package/node_modules/@ark/schema/out/shared/registry.js +10 -0
  95. package/node_modules/@ark/schema/out/shared/standardSchema.d.ts +122 -0
  96. package/node_modules/@ark/schema/out/shared/standardSchema.js +2 -0
  97. package/node_modules/@ark/schema/out/shared/toJsonSchema.d.ts +139 -0
  98. package/node_modules/@ark/schema/out/shared/toJsonSchema.js +40 -0
  99. package/node_modules/@ark/schema/out/shared/traversal.d.ts +117 -0
  100. package/node_modules/@ark/schema/out/shared/traversal.js +226 -0
  101. package/node_modules/@ark/schema/out/shared/utils.d.ts +34 -0
  102. package/node_modules/@ark/schema/out/shared/utils.js +8 -0
  103. package/node_modules/@ark/schema/out/structure/index.d.ts +46 -0
  104. package/node_modules/@ark/schema/out/structure/index.js +89 -0
  105. package/node_modules/@ark/schema/out/structure/optional.d.ts +49 -0
  106. package/node_modules/@ark/schema/out/structure/optional.js +127 -0
  107. package/node_modules/@ark/schema/out/structure/prop.d.ts +45 -0
  108. package/node_modules/@ark/schema/out/structure/prop.js +85 -0
  109. package/node_modules/@ark/schema/out/structure/required.d.ts +39 -0
  110. package/node_modules/@ark/schema/out/structure/required.js +38 -0
  111. package/node_modules/@ark/schema/out/structure/sequence.d.ts +110 -0
  112. package/node_modules/@ark/schema/out/structure/sequence.js +521 -0
  113. package/node_modules/@ark/schema/out/structure/shared.d.ts +4 -0
  114. package/node_modules/@ark/schema/out/structure/shared.js +4 -0
  115. package/node_modules/@ark/schema/out/structure/structure.d.ts +113 -0
  116. package/node_modules/@ark/schema/out/structure/structure.js +747 -0
  117. package/node_modules/@ark/schema/package.json +51 -0
  118. package/node_modules/@ark/util/LICENSE +7 -0
  119. package/node_modules/@ark/util/out/arrays.d.ts +166 -0
  120. package/node_modules/@ark/util/out/arrays.js +147 -0
  121. package/node_modules/@ark/util/out/clone.d.ts +4 -0
  122. package/node_modules/@ark/util/out/clone.js +33 -0
  123. package/node_modules/@ark/util/out/describe.d.ts +25 -0
  124. package/node_modules/@ark/util/out/describe.js +1 -0
  125. package/node_modules/@ark/util/out/domain.d.ts +48 -0
  126. package/node_modules/@ark/util/out/domain.js +25 -0
  127. package/node_modules/@ark/util/out/errors.d.ts +29 -0
  128. package/node_modules/@ark/util/out/errors.js +17 -0
  129. package/node_modules/@ark/util/out/flatMorph.d.ts +41 -0
  130. package/node_modules/@ark/util/out/flatMorph.js +24 -0
  131. package/node_modules/@ark/util/out/functions.d.ts +33 -0
  132. package/node_modules/@ark/util/out/functions.js +53 -0
  133. package/node_modules/@ark/util/out/generics.d.ts +59 -0
  134. package/node_modules/@ark/util/out/generics.js +5 -0
  135. package/node_modules/@ark/util/out/get.d.ts +9 -0
  136. package/node_modules/@ark/util/out/get.js +7 -0
  137. package/node_modules/@ark/util/out/hkt.d.ts +27 -0
  138. package/node_modules/@ark/util/out/hkt.js +5 -0
  139. package/node_modules/@ark/util/out/index.d.ts +24 -0
  140. package/node_modules/@ark/util/out/index.js +24 -0
  141. package/node_modules/@ark/util/out/intersections.d.ts +50 -0
  142. package/node_modules/@ark/util/out/intersections.js +1 -0
  143. package/node_modules/@ark/util/out/isomorphic.d.ts +5 -0
  144. package/node_modules/@ark/util/out/isomorphic.js +19 -0
  145. package/node_modules/@ark/util/out/keys.d.ts +18 -0
  146. package/node_modules/@ark/util/out/keys.js +1 -0
  147. package/node_modules/@ark/util/out/lazily.d.ts +1 -0
  148. package/node_modules/@ark/util/out/lazily.js +16 -0
  149. package/node_modules/@ark/util/out/numbers.d.ts +72 -0
  150. package/node_modules/@ark/util/out/numbers.js +138 -0
  151. package/node_modules/@ark/util/out/objectKinds.d.ts +205 -0
  152. package/node_modules/@ark/util/out/objectKinds.js +150 -0
  153. package/node_modules/@ark/util/out/path.d.ts +22 -0
  154. package/node_modules/@ark/util/out/path.js +65 -0
  155. package/node_modules/@ark/util/out/primitive.d.ts +16 -0
  156. package/node_modules/@ark/util/out/primitive.js +3 -0
  157. package/node_modules/@ark/util/out/records.d.ts +183 -0
  158. package/node_modules/@ark/util/out/records.js +63 -0
  159. package/node_modules/@ark/util/out/registry.d.ts +21 -0
  160. package/node_modules/@ark/util/out/registry.js +49 -0
  161. package/node_modules/@ark/util/out/scanner.d.ts +44 -0
  162. package/node_modules/@ark/util/out/scanner.js +87 -0
  163. package/node_modules/@ark/util/out/serialize.d.ts +34 -0
  164. package/node_modules/@ark/util/out/serialize.js +150 -0
  165. package/node_modules/@ark/util/out/strings.d.ts +33 -0
  166. package/node_modules/@ark/util/out/strings.js +59 -0
  167. package/node_modules/@ark/util/out/traits.d.ts +89 -0
  168. package/node_modules/@ark/util/out/traits.js +75 -0
  169. package/node_modules/@ark/util/out/unionToTuple.d.ts +14 -0
  170. package/node_modules/@ark/util/out/unionToTuple.js +1 -0
  171. package/node_modules/@ark/util/package.json +39 -0
  172. package/node_modules/@ark/util/tsconfig.base.json +18 -0
  173. package/node_modules/@socket.io/component-emitter/LICENSE +24 -0
  174. package/node_modules/@socket.io/component-emitter/Readme.md +79 -0
  175. package/node_modules/@socket.io/component-emitter/lib/cjs/index.d.ts +179 -0
  176. package/node_modules/@socket.io/component-emitter/lib/cjs/index.js +176 -0
  177. package/node_modules/@socket.io/component-emitter/lib/cjs/package.json +4 -0
  178. package/node_modules/@socket.io/component-emitter/lib/esm/index.d.ts +179 -0
  179. package/node_modules/@socket.io/component-emitter/lib/esm/index.js +169 -0
  180. package/node_modules/@socket.io/component-emitter/lib/esm/package.json +4 -0
  181. package/node_modules/@socket.io/component-emitter/package.json +28 -0
  182. package/node_modules/arkregex/LICENSE +7 -0
  183. package/node_modules/arkregex/README.md +61 -0
  184. package/node_modules/arkregex/out/charset.d.ts +15 -0
  185. package/node_modules/arkregex/out/charset.js +1 -0
  186. package/node_modules/arkregex/out/escape.d.ts +29 -0
  187. package/node_modules/arkregex/out/escape.js +10 -0
  188. package/node_modules/arkregex/out/execArray.d.ts +23 -0
  189. package/node_modules/arkregex/out/execArray.js +1 -0
  190. package/node_modules/arkregex/out/group.d.ts +33 -0
  191. package/node_modules/arkregex/out/group.js +6 -0
  192. package/node_modules/arkregex/out/index.d.ts +1 -0
  193. package/node_modules/arkregex/out/index.js +1 -0
  194. package/node_modules/arkregex/out/parse.d.ts +10 -0
  195. package/node_modules/arkregex/out/parse.js +1 -0
  196. package/node_modules/arkregex/out/quantify.d.ts +43 -0
  197. package/node_modules/arkregex/out/quantify.js +2 -0
  198. package/node_modules/arkregex/out/regex.d.ts +38 -0
  199. package/node_modules/arkregex/out/regex.js +2 -0
  200. package/node_modules/arkregex/out/state.d.ts +359 -0
  201. package/node_modules/arkregex/out/state.js +2 -0
  202. package/node_modules/arkregex/package.json +42 -0
  203. package/node_modules/arktype/LICENSE +7 -0
  204. package/node_modules/arktype/README.md +157 -0
  205. package/node_modules/arktype/out/attributes.d.ts +104 -0
  206. package/node_modules/arktype/out/attributes.js +3 -0
  207. package/node_modules/arktype/out/config.d.ts +35 -0
  208. package/node_modules/arktype/out/config.js +3 -0
  209. package/node_modules/arktype/out/declare.d.ts +35 -0
  210. package/node_modules/arktype/out/declare.js +1 -0
  211. package/node_modules/arktype/out/fn.d.ts +61 -0
  212. package/node_modules/arktype/out/fn.js +54 -0
  213. package/node_modules/arktype/out/generic.d.ts +118 -0
  214. package/node_modules/arktype/out/generic.js +37 -0
  215. package/node_modules/arktype/out/index.d.ts +12 -0
  216. package/node_modules/arktype/out/index.js +9 -0
  217. package/node_modules/arktype/out/keywords/Array.d.ts +20 -0
  218. package/node_modules/arktype/out/keywords/Array.js +21 -0
  219. package/node_modules/arktype/out/keywords/FormData.d.ts +15 -0
  220. package/node_modules/arktype/out/keywords/FormData.js +40 -0
  221. package/node_modules/arktype/out/keywords/TypedArray.d.ts +19 -0
  222. package/node_modules/arktype/out/keywords/TypedArray.js +16 -0
  223. package/node_modules/arktype/out/keywords/builtins.d.ts +18 -0
  224. package/node_modules/arktype/out/keywords/builtins.js +11 -0
  225. package/node_modules/arktype/out/keywords/constructors.d.ts +31 -0
  226. package/node_modules/arktype/out/keywords/constructors.js +16 -0
  227. package/node_modules/arktype/out/keywords/keywords.d.ts +70 -0
  228. package/node_modules/arktype/out/keywords/keywords.js +48 -0
  229. package/node_modules/arktype/out/keywords/number.d.ts +23 -0
  230. package/node_modules/arktype/out/keywords/number.js +49 -0
  231. package/node_modules/arktype/out/keywords/string.d.ts +334 -0
  232. package/node_modules/arktype/out/keywords/string.js +463 -0
  233. package/node_modules/arktype/out/keywords/ts.d.ts +108 -0
  234. package/node_modules/arktype/out/keywords/ts.js +82 -0
  235. package/node_modules/arktype/out/match.d.ts +152 -0
  236. package/node_modules/arktype/out/match.js +95 -0
  237. package/node_modules/arktype/out/module.d.ts +22 -0
  238. package/node_modules/arktype/out/module.js +3 -0
  239. package/node_modules/arktype/out/nary.d.ts +473 -0
  240. package/node_modules/arktype/out/nary.js +1 -0
  241. package/node_modules/arktype/out/parser/ast/bounds.d.ts +18 -0
  242. package/node_modules/arktype/out/parser/ast/bounds.js +1 -0
  243. package/node_modules/arktype/out/parser/ast/default.d.ts +8 -0
  244. package/node_modules/arktype/out/parser/ast/default.js +1 -0
  245. package/node_modules/arktype/out/parser/ast/divisor.d.ts +9 -0
  246. package/node_modules/arktype/out/parser/ast/divisor.js +1 -0
  247. package/node_modules/arktype/out/parser/ast/generic.d.ts +17 -0
  248. package/node_modules/arktype/out/parser/ast/generic.js +1 -0
  249. package/node_modules/arktype/out/parser/ast/infer.d.ts +25 -0
  250. package/node_modules/arktype/out/parser/ast/infer.js +1 -0
  251. package/node_modules/arktype/out/parser/ast/keyof.d.ts +7 -0
  252. package/node_modules/arktype/out/parser/ast/keyof.js +1 -0
  253. package/node_modules/arktype/out/parser/ast/utils.d.ts +8 -0
  254. package/node_modules/arktype/out/parser/ast/utils.js +1 -0
  255. package/node_modules/arktype/out/parser/ast/validate.d.ts +30 -0
  256. package/node_modules/arktype/out/parser/ast/validate.js +3 -0
  257. package/node_modules/arktype/out/parser/definition.d.ts +30 -0
  258. package/node_modules/arktype/out/parser/definition.js +74 -0
  259. package/node_modules/arktype/out/parser/objectLiteral.d.ts +70 -0
  260. package/node_modules/arktype/out/parser/objectLiteral.js +113 -0
  261. package/node_modules/arktype/out/parser/property.d.ts +34 -0
  262. package/node_modules/arktype/out/parser/property.js +16 -0
  263. package/node_modules/arktype/out/parser/reduce/dynamic.d.ts +42 -0
  264. package/node_modules/arktype/out/parser/reduce/dynamic.js +153 -0
  265. package/node_modules/arktype/out/parser/reduce/shared.d.ts +39 -0
  266. package/node_modules/arktype/out/parser/reduce/shared.js +25 -0
  267. package/node_modules/arktype/out/parser/reduce/static.d.ts +186 -0
  268. package/node_modules/arktype/out/parser/reduce/static.js +1 -0
  269. package/node_modules/arktype/out/parser/shift/operand/date.d.ts +11 -0
  270. package/node_modules/arktype/out/parser/shift/operand/date.js +23 -0
  271. package/node_modules/arktype/out/parser/shift/operand/enclosed.d.ts +57 -0
  272. package/node_modules/arktype/out/parser/shift/operand/enclosed.js +78 -0
  273. package/node_modules/arktype/out/parser/shift/operand/genericArgs.d.ts +27 -0
  274. package/node_modules/arktype/out/parser/shift/operand/genericArgs.js +16 -0
  275. package/node_modules/arktype/out/parser/shift/operand/operand.d.ts +8 -0
  276. package/node_modules/arktype/out/parser/shift/operand/operand.js +16 -0
  277. package/node_modules/arktype/out/parser/shift/operand/unenclosed.d.ts +43 -0
  278. package/node_modules/arktype/out/parser/shift/operand/unenclosed.js +59 -0
  279. package/node_modules/arktype/out/parser/shift/operator/bounds.d.ts +24 -0
  280. package/node_modules/arktype/out/parser/shift/operator/bounds.js +91 -0
  281. package/node_modules/arktype/out/parser/shift/operator/brand.d.ts +7 -0
  282. package/node_modules/arktype/out/parser/shift/operator/brand.js +6 -0
  283. package/node_modules/arktype/out/parser/shift/operator/default.d.ts +24 -0
  284. package/node_modules/arktype/out/parser/shift/operator/default.js +15 -0
  285. package/node_modules/arktype/out/parser/shift/operator/divisor.d.ts +8 -0
  286. package/node_modules/arktype/out/parser/shift/operator/divisor.js +13 -0
  287. package/node_modules/arktype/out/parser/shift/operator/operator.d.ts +14 -0
  288. package/node_modules/arktype/out/parser/shift/operator/operator.js +28 -0
  289. package/node_modules/arktype/out/parser/shift/tokens.d.ts +33 -0
  290. package/node_modules/arktype/out/parser/shift/tokens.js +37 -0
  291. package/node_modules/arktype/out/parser/string.d.ts +30 -0
  292. package/node_modules/arktype/out/parser/string.js +42 -0
  293. package/node_modules/arktype/out/parser/tupleExpressions.d.ts +79 -0
  294. package/node_modules/arktype/out/parser/tupleExpressions.js +75 -0
  295. package/node_modules/arktype/out/parser/tupleLiteral.d.ts +95 -0
  296. package/node_modules/arktype/out/parser/tupleLiteral.js +128 -0
  297. package/node_modules/arktype/out/scope.d.ts +158 -0
  298. package/node_modules/arktype/out/scope.js +106 -0
  299. package/node_modules/arktype/out/type.d.ts +144 -0
  300. package/node_modules/arktype/out/type.js +55 -0
  301. package/node_modules/arktype/out/variants/array.d.ts +12 -0
  302. package/node_modules/arktype/out/variants/array.js +1 -0
  303. package/node_modules/arktype/out/variants/base.d.ts +542 -0
  304. package/node_modules/arktype/out/variants/base.js +1 -0
  305. package/node_modules/arktype/out/variants/date.d.ts +10 -0
  306. package/node_modules/arktype/out/variants/date.js +1 -0
  307. package/node_modules/arktype/out/variants/instantiate.d.ts +12 -0
  308. package/node_modules/arktype/out/variants/instantiate.js +1 -0
  309. package/node_modules/arktype/out/variants/number.d.ts +11 -0
  310. package/node_modules/arktype/out/variants/number.js +1 -0
  311. package/node_modules/arktype/out/variants/object.d.ts +107 -0
  312. package/node_modules/arktype/out/variants/object.js +1 -0
  313. package/node_modules/arktype/out/variants/string.d.ts +15 -0
  314. package/node_modules/arktype/out/variants/string.js +1 -0
  315. package/node_modules/arktype/package.json +57 -0
  316. package/node_modules/debug/LICENSE +20 -0
  317. package/node_modules/debug/README.md +481 -0
  318. package/node_modules/debug/package.json +64 -0
  319. package/node_modules/debug/src/browser.js +272 -0
  320. package/node_modules/debug/src/common.js +292 -0
  321. package/node_modules/debug/src/index.js +10 -0
  322. package/node_modules/debug/src/node.js +263 -0
  323. package/node_modules/engine.io-client/LICENSE +22 -0
  324. package/node_modules/engine.io-client/README.md +331 -0
  325. package/node_modules/engine.io-client/build/cjs/browser-entrypoint.d.ts +3 -0
  326. package/node_modules/engine.io-client/build/cjs/browser-entrypoint.js +4 -0
  327. package/node_modules/engine.io-client/build/cjs/contrib/has-cors.d.ts +1 -0
  328. package/node_modules/engine.io-client/build/cjs/contrib/has-cors.js +14 -0
  329. package/node_modules/engine.io-client/build/cjs/contrib/parseqs.d.ts +15 -0
  330. package/node_modules/engine.io-client/build/cjs/contrib/parseqs.js +38 -0
  331. package/node_modules/engine.io-client/build/cjs/contrib/parseuri.d.ts +1 -0
  332. package/node_modules/engine.io-client/build/cjs/contrib/parseuri.js +67 -0
  333. package/node_modules/engine.io-client/build/cjs/globals.d.ts +4 -0
  334. package/node_modules/engine.io-client/build/cjs/globals.js +26 -0
  335. package/node_modules/engine.io-client/build/cjs/globals.node.d.ts +21 -0
  336. package/node_modules/engine.io-client/build/cjs/globals.node.js +97 -0
  337. package/node_modules/engine.io-client/build/cjs/index.d.ts +15 -0
  338. package/node_modules/engine.io-client/build/cjs/index.js +32 -0
  339. package/node_modules/engine.io-client/build/cjs/package.json +10 -0
  340. package/node_modules/engine.io-client/build/cjs/socket.d.ts +482 -0
  341. package/node_modules/engine.io-client/build/cjs/socket.js +765 -0
  342. package/node_modules/engine.io-client/build/cjs/transport.d.ts +106 -0
  343. package/node_modules/engine.io-client/build/cjs/transport.js +153 -0
  344. package/node_modules/engine.io-client/build/cjs/transports/index.d.ts +8 -0
  345. package/node_modules/engine.io-client/build/cjs/transports/index.js +11 -0
  346. package/node_modules/engine.io-client/build/cjs/transports/polling-fetch.d.ts +15 -0
  347. package/node_modules/engine.io-client/build/cjs/transports/polling-fetch.js +60 -0
  348. package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.d.ts +108 -0
  349. package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.js +285 -0
  350. package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.node.d.ts +11 -0
  351. package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.node.js +44 -0
  352. package/node_modules/engine.io-client/build/cjs/transports/polling.d.ts +52 -0
  353. package/node_modules/engine.io-client/build/cjs/transports/polling.js +165 -0
  354. package/node_modules/engine.io-client/build/cjs/transports/websocket.d.ts +36 -0
  355. package/node_modules/engine.io-client/build/cjs/transports/websocket.js +136 -0
  356. package/node_modules/engine.io-client/build/cjs/transports/websocket.node.d.ts +14 -0
  357. package/node_modules/engine.io-client/build/cjs/transports/websocket.node.js +68 -0
  358. package/node_modules/engine.io-client/build/cjs/transports/webtransport.d.ts +18 -0
  359. package/node_modules/engine.io-client/build/cjs/transports/webtransport.js +94 -0
  360. package/node_modules/engine.io-client/build/cjs/util.d.ts +7 -0
  361. package/node_modules/engine.io-client/build/cjs/util.js +65 -0
  362. package/node_modules/engine.io-client/build/esm/browser-entrypoint.d.ts +3 -0
  363. package/node_modules/engine.io-client/build/esm/browser-entrypoint.js +2 -0
  364. package/node_modules/engine.io-client/build/esm/contrib/has-cors.d.ts +1 -0
  365. package/node_modules/engine.io-client/build/esm/contrib/has-cors.js +11 -0
  366. package/node_modules/engine.io-client/build/esm/contrib/parseqs.d.ts +15 -0
  367. package/node_modules/engine.io-client/build/esm/contrib/parseqs.js +34 -0
  368. package/node_modules/engine.io-client/build/esm/contrib/parseuri.d.ts +1 -0
  369. package/node_modules/engine.io-client/build/esm/contrib/parseuri.js +64 -0
  370. package/node_modules/engine.io-client/build/esm/globals.d.ts +4 -0
  371. package/node_modules/engine.io-client/build/esm/globals.js +22 -0
  372. package/node_modules/engine.io-client/build/esm/globals.node.d.ts +21 -0
  373. package/node_modules/engine.io-client/build/esm/globals.node.js +91 -0
  374. package/node_modules/engine.io-client/build/esm/index.d.ts +15 -0
  375. package/node_modules/engine.io-client/build/esm/index.js +15 -0
  376. package/node_modules/engine.io-client/build/esm/package.json +10 -0
  377. package/node_modules/engine.io-client/build/esm/socket.d.ts +482 -0
  378. package/node_modules/engine.io-client/build/esm/socket.js +727 -0
  379. package/node_modules/engine.io-client/build/esm/transport.d.ts +106 -0
  380. package/node_modules/engine.io-client/build/esm/transport.js +142 -0
  381. package/node_modules/engine.io-client/build/esm/transports/index.d.ts +8 -0
  382. package/node_modules/engine.io-client/build/esm/transports/index.js +8 -0
  383. package/node_modules/engine.io-client/build/esm/transports/polling-fetch.d.ts +15 -0
  384. package/node_modules/engine.io-client/build/esm/transports/polling-fetch.js +56 -0
  385. package/node_modules/engine.io-client/build/esm/transports/polling-xhr.d.ts +108 -0
  386. package/node_modules/engine.io-client/build/esm/transports/polling-xhr.js +271 -0
  387. package/node_modules/engine.io-client/build/esm/transports/polling-xhr.node.d.ts +11 -0
  388. package/node_modules/engine.io-client/build/esm/transports/polling-xhr.node.js +17 -0
  389. package/node_modules/engine.io-client/build/esm/transports/polling.d.ts +52 -0
  390. package/node_modules/engine.io-client/build/esm/transports/polling.js +145 -0
  391. package/node_modules/engine.io-client/build/esm/transports/websocket.d.ts +36 -0
  392. package/node_modules/engine.io-client/build/esm/transports/websocket.js +125 -0
  393. package/node_modules/engine.io-client/build/esm/transports/websocket.node.d.ts +14 -0
  394. package/node_modules/engine.io-client/build/esm/transports/websocket.node.js +41 -0
  395. package/node_modules/engine.io-client/build/esm/transports/webtransport.d.ts +18 -0
  396. package/node_modules/engine.io-client/build/esm/transports/webtransport.js +80 -0
  397. package/node_modules/engine.io-client/build/esm/util.d.ts +7 -0
  398. package/node_modules/engine.io-client/build/esm/util.js +59 -0
  399. package/node_modules/engine.io-client/build/esm-debug/browser-entrypoint.d.ts +3 -0
  400. package/node_modules/engine.io-client/build/esm-debug/browser-entrypoint.js +2 -0
  401. package/node_modules/engine.io-client/build/esm-debug/contrib/has-cors.d.ts +1 -0
  402. package/node_modules/engine.io-client/build/esm-debug/contrib/has-cors.js +11 -0
  403. package/node_modules/engine.io-client/build/esm-debug/contrib/parseqs.d.ts +15 -0
  404. package/node_modules/engine.io-client/build/esm-debug/contrib/parseqs.js +34 -0
  405. package/node_modules/engine.io-client/build/esm-debug/contrib/parseuri.d.ts +1 -0
  406. package/node_modules/engine.io-client/build/esm-debug/contrib/parseuri.js +64 -0
  407. package/node_modules/engine.io-client/build/esm-debug/globals.d.ts +4 -0
  408. package/node_modules/engine.io-client/build/esm-debug/globals.js +22 -0
  409. package/node_modules/engine.io-client/build/esm-debug/globals.node.d.ts +21 -0
  410. package/node_modules/engine.io-client/build/esm-debug/globals.node.js +91 -0
  411. package/node_modules/engine.io-client/build/esm-debug/index.d.ts +15 -0
  412. package/node_modules/engine.io-client/build/esm-debug/index.js +15 -0
  413. package/node_modules/engine.io-client/build/esm-debug/package.json +10 -0
  414. package/node_modules/engine.io-client/build/esm-debug/socket.d.ts +482 -0
  415. package/node_modules/engine.io-client/build/esm-debug/socket.js +756 -0
  416. package/node_modules/engine.io-client/build/esm-debug/transport.d.ts +106 -0
  417. package/node_modules/engine.io-client/build/esm-debug/transport.js +145 -0
  418. package/node_modules/engine.io-client/build/esm-debug/transports/index.d.ts +8 -0
  419. package/node_modules/engine.io-client/build/esm-debug/transports/index.js +8 -0
  420. package/node_modules/engine.io-client/build/esm-debug/transports/polling-fetch.d.ts +15 -0
  421. package/node_modules/engine.io-client/build/esm-debug/transports/polling-fetch.js +56 -0
  422. package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.d.ts +108 -0
  423. package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.js +276 -0
  424. package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.node.d.ts +11 -0
  425. package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.node.js +17 -0
  426. package/node_modules/engine.io-client/build/esm-debug/transports/polling.d.ts +52 -0
  427. package/node_modules/engine.io-client/build/esm-debug/transports/polling.js +158 -0
  428. package/node_modules/engine.io-client/build/esm-debug/transports/websocket.d.ts +36 -0
  429. package/node_modules/engine.io-client/build/esm-debug/transports/websocket.js +128 -0
  430. package/node_modules/engine.io-client/build/esm-debug/transports/websocket.node.d.ts +14 -0
  431. package/node_modules/engine.io-client/build/esm-debug/transports/websocket.node.js +41 -0
  432. package/node_modules/engine.io-client/build/esm-debug/transports/webtransport.d.ts +18 -0
  433. package/node_modules/engine.io-client/build/esm-debug/transports/webtransport.js +87 -0
  434. package/node_modules/engine.io-client/build/esm-debug/util.d.ts +7 -0
  435. package/node_modules/engine.io-client/build/esm-debug/util.js +59 -0
  436. package/node_modules/engine.io-client/dist/engine.io.esm.min.js +7 -0
  437. package/node_modules/engine.io-client/dist/engine.io.esm.min.js.map +1 -0
  438. package/node_modules/engine.io-client/dist/engine.io.js +3064 -0
  439. package/node_modules/engine.io-client/dist/engine.io.js.map +1 -0
  440. package/node_modules/engine.io-client/dist/engine.io.min.js +7 -0
  441. package/node_modules/engine.io-client/dist/engine.io.min.js.map +1 -0
  442. package/node_modules/engine.io-client/package.json +95 -0
  443. package/node_modules/engine.io-parser/LICENSE +22 -0
  444. package/node_modules/engine.io-parser/Readme.md +158 -0
  445. package/node_modules/engine.io-parser/build/cjs/commons.d.ts +14 -0
  446. package/node_modules/engine.io-parser/build/cjs/commons.js +19 -0
  447. package/node_modules/engine.io-parser/build/cjs/contrib/base64-arraybuffer.d.ts +2 -0
  448. package/node_modules/engine.io-parser/build/cjs/contrib/base64-arraybuffer.js +48 -0
  449. package/node_modules/engine.io-parser/build/cjs/decodePacket.browser.d.ts +2 -0
  450. package/node_modules/engine.io-parser/build/cjs/decodePacket.browser.js +66 -0
  451. package/node_modules/engine.io-parser/build/cjs/decodePacket.d.ts +2 -0
  452. package/node_modules/engine.io-parser/build/cjs/decodePacket.js +59 -0
  453. package/node_modules/engine.io-parser/build/cjs/encodePacket.browser.d.ts +4 -0
  454. package/node_modules/engine.io-parser/build/cjs/encodePacket.browser.js +72 -0
  455. package/node_modules/engine.io-parser/build/cjs/encodePacket.d.ts +3 -0
  456. package/node_modules/engine.io-parser/build/cjs/encodePacket.js +38 -0
  457. package/node_modules/engine.io-parser/build/cjs/index.d.ts +9 -0
  458. package/node_modules/engine.io-parser/build/cjs/index.js +164 -0
  459. package/node_modules/engine.io-parser/build/cjs/package.json +8 -0
  460. package/node_modules/engine.io-parser/build/esm/commons.d.ts +14 -0
  461. package/node_modules/engine.io-parser/build/esm/commons.js +14 -0
  462. package/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.d.ts +2 -0
  463. package/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js +43 -0
  464. package/node_modules/engine.io-parser/build/esm/decodePacket.browser.d.ts +2 -0
  465. package/node_modules/engine.io-parser/build/esm/decodePacket.browser.js +62 -0
  466. package/node_modules/engine.io-parser/build/esm/decodePacket.d.ts +2 -0
  467. package/node_modules/engine.io-parser/build/esm/decodePacket.js +55 -0
  468. package/node_modules/engine.io-parser/build/esm/encodePacket.browser.d.ts +4 -0
  469. package/node_modules/engine.io-parser/build/esm/encodePacket.browser.js +68 -0
  470. package/node_modules/engine.io-parser/build/esm/encodePacket.d.ts +3 -0
  471. package/node_modules/engine.io-parser/build/esm/encodePacket.js +33 -0
  472. package/node_modules/engine.io-parser/build/esm/index.d.ts +9 -0
  473. package/node_modules/engine.io-parser/build/esm/index.js +156 -0
  474. package/node_modules/engine.io-parser/build/esm/package.json +8 -0
  475. package/node_modules/engine.io-parser/package.json +46 -0
  476. package/node_modules/ms/index.js +162 -0
  477. package/node_modules/ms/license.md +21 -0
  478. package/node_modules/ms/package.json +38 -0
  479. package/node_modules/ms/readme.md +59 -0
  480. package/node_modules/socket.io-client/LICENSE +21 -0
  481. package/node_modules/socket.io-client/README.md +29 -0
  482. package/node_modules/socket.io-client/build/cjs/browser-entrypoint.d.ts +2 -0
  483. package/node_modules/socket.io-client/build/cjs/browser-entrypoint.js +4 -0
  484. package/node_modules/socket.io-client/build/cjs/contrib/backo2.d.ts +12 -0
  485. package/node_modules/socket.io-client/build/cjs/contrib/backo2.js +69 -0
  486. package/node_modules/socket.io-client/build/cjs/index.d.ts +29 -0
  487. package/node_modules/socket.io-client/build/cjs/index.js +76 -0
  488. package/node_modules/socket.io-client/build/cjs/manager.d.ts +295 -0
  489. package/node_modules/socket.io-client/build/cjs/manager.js +416 -0
  490. package/node_modules/socket.io-client/build/cjs/on.d.ts +2 -0
  491. package/node_modules/socket.io-client/build/cjs/on.js +9 -0
  492. package/node_modules/socket.io-client/build/cjs/socket.d.ts +593 -0
  493. package/node_modules/socket.io-client/build/cjs/socket.js +909 -0
  494. package/node_modules/socket.io-client/build/cjs/url.d.ts +33 -0
  495. package/node_modules/socket.io-client/build/cjs/url.js +69 -0
  496. package/node_modules/socket.io-client/build/esm/browser-entrypoint.d.ts +2 -0
  497. package/node_modules/socket.io-client/build/esm/browser-entrypoint.js +2 -0
  498. package/node_modules/socket.io-client/build/esm/contrib/backo2.d.ts +12 -0
  499. package/node_modules/socket.io-client/build/esm/contrib/backo2.js +66 -0
  500. package/node_modules/socket.io-client/build/esm/index.d.ts +29 -0
  501. package/node_modules/socket.io-client/build/esm/index.js +58 -0
  502. package/node_modules/socket.io-client/build/esm/manager.d.ts +295 -0
  503. package/node_modules/socket.io-client/build/esm/manager.js +367 -0
  504. package/node_modules/socket.io-client/build/esm/on.d.ts +2 -0
  505. package/node_modules/socket.io-client/build/esm/on.js +6 -0
  506. package/node_modules/socket.io-client/build/esm/package.json +5 -0
  507. package/node_modules/socket.io-client/build/esm/socket.d.ts +593 -0
  508. package/node_modules/socket.io-client/build/esm/socket.js +880 -0
  509. package/node_modules/socket.io-client/build/esm/url.d.ts +33 -0
  510. package/node_modules/socket.io-client/build/esm/url.js +59 -0
  511. package/node_modules/socket.io-client/build/esm-debug/browser-entrypoint.d.ts +2 -0
  512. package/node_modules/socket.io-client/build/esm-debug/browser-entrypoint.js +2 -0
  513. package/node_modules/socket.io-client/build/esm-debug/contrib/backo2.d.ts +12 -0
  514. package/node_modules/socket.io-client/build/esm-debug/contrib/backo2.js +66 -0
  515. package/node_modules/socket.io-client/build/esm-debug/index.d.ts +29 -0
  516. package/node_modules/socket.io-client/build/esm-debug/index.js +62 -0
  517. package/node_modules/socket.io-client/build/esm-debug/manager.d.ts +295 -0
  518. package/node_modules/socket.io-client/build/esm-debug/manager.js +386 -0
  519. package/node_modules/socket.io-client/build/esm-debug/on.d.ts +2 -0
  520. package/node_modules/socket.io-client/build/esm-debug/on.js +6 -0
  521. package/node_modules/socket.io-client/build/esm-debug/package.json +5 -0
  522. package/node_modules/socket.io-client/build/esm-debug/socket.d.ts +593 -0
  523. package/node_modules/socket.io-client/build/esm-debug/socket.js +902 -0
  524. package/node_modules/socket.io-client/build/esm-debug/url.d.ts +33 -0
  525. package/node_modules/socket.io-client/build/esm-debug/url.js +63 -0
  526. package/node_modules/socket.io-client/dist/socket.io.esm.min.js +7 -0
  527. package/node_modules/socket.io-client/dist/socket.io.esm.min.js.map +1 -0
  528. package/node_modules/socket.io-client/dist/socket.io.js +4955 -0
  529. package/node_modules/socket.io-client/dist/socket.io.js.map +1 -0
  530. package/node_modules/socket.io-client/dist/socket.io.min.js +7 -0
  531. package/node_modules/socket.io-client/dist/socket.io.min.js.map +1 -0
  532. package/node_modules/socket.io-client/dist/socket.io.msgpack.min.js +7 -0
  533. package/node_modules/socket.io-client/dist/socket.io.msgpack.min.js.map +1 -0
  534. package/node_modules/socket.io-client/package.json +101 -0
  535. package/node_modules/socket.io-parser/LICENSE +20 -0
  536. package/node_modules/socket.io-parser/Readme.md +81 -0
  537. package/node_modules/socket.io-parser/build/cjs/binary.d.ts +20 -0
  538. package/node_modules/socket.io-parser/build/cjs/binary.js +87 -0
  539. package/node_modules/socket.io-parser/build/cjs/index.d.ts +91 -0
  540. package/node_modules/socket.io-parser/build/cjs/index.js +359 -0
  541. package/node_modules/socket.io-parser/build/cjs/is-binary.d.ts +7 -0
  542. package/node_modules/socket.io-parser/build/cjs/is-binary.js +54 -0
  543. package/node_modules/socket.io-parser/build/cjs/package.json +3 -0
  544. package/node_modules/socket.io-parser/build/esm/binary.d.ts +20 -0
  545. package/node_modules/socket.io-parser/build/esm/binary.js +83 -0
  546. package/node_modules/socket.io-parser/build/esm/index.d.ts +91 -0
  547. package/node_modules/socket.io-parser/build/esm/index.js +348 -0
  548. package/node_modules/socket.io-parser/build/esm/is-binary.d.ts +7 -0
  549. package/node_modules/socket.io-parser/build/esm/is-binary.js +50 -0
  550. package/node_modules/socket.io-parser/build/esm/package.json +3 -0
  551. package/node_modules/socket.io-parser/build/esm-debug/binary.d.ts +20 -0
  552. package/node_modules/socket.io-parser/build/esm-debug/binary.js +83 -0
  553. package/node_modules/socket.io-parser/build/esm-debug/index.d.ts +91 -0
  554. package/node_modules/socket.io-parser/build/esm-debug/index.js +353 -0
  555. package/node_modules/socket.io-parser/build/esm-debug/is-binary.d.ts +7 -0
  556. package/node_modules/socket.io-parser/build/esm-debug/is-binary.js +50 -0
  557. package/node_modules/socket.io-parser/build/esm-debug/package.json +3 -0
  558. package/node_modules/socket.io-parser/package.json +44 -0
  559. package/node_modules/ws/LICENSE +20 -0
  560. package/node_modules/ws/README.md +548 -0
  561. package/node_modules/ws/browser.js +8 -0
  562. package/node_modules/ws/index.js +13 -0
  563. package/node_modules/ws/lib/buffer-util.js +131 -0
  564. package/node_modules/ws/lib/constants.js +18 -0
  565. package/node_modules/ws/lib/event-target.js +292 -0
  566. package/node_modules/ws/lib/extension.js +203 -0
  567. package/node_modules/ws/lib/limiter.js +55 -0
  568. package/node_modules/ws/lib/permessage-deflate.js +528 -0
  569. package/node_modules/ws/lib/receiver.js +706 -0
  570. package/node_modules/ws/lib/sender.js +602 -0
  571. package/node_modules/ws/lib/stream.js +161 -0
  572. package/node_modules/ws/lib/subprotocol.js +62 -0
  573. package/node_modules/ws/lib/validation.js +152 -0
  574. package/node_modules/ws/lib/websocket-server.js +550 -0
  575. package/node_modules/ws/lib/websocket.js +1388 -0
  576. package/node_modules/ws/package.json +69 -0
  577. package/node_modules/ws/wrapper.mjs +8 -0
  578. package/node_modules/xmlhttprequest-ssl/LICENSE +22 -0
  579. package/node_modules/xmlhttprequest-ssl/README.md +67 -0
  580. package/node_modules/xmlhttprequest-ssl/lib/XMLHttpRequest.js +689 -0
  581. package/node_modules/xmlhttprequest-ssl/package.json +40 -0
  582. package/package.json +34 -4
  583. package/public-api.md +85 -23
@@ -0,0 +1,215 @@
1
+ import { domainDescriptions, entriesOf, flatMorph, hasDomain, isArray, isEmptyObject, printable, throwInternalError, throwParseError, unset } from "@ark/util";
2
+ import { nodeClassesByKind, nodeImplementationsByKind } from "./kinds.js";
3
+ import { Disjoint } from "./shared/disjoint.js";
4
+ import { constraintKeys, defaultValueSerializer, isNodeKind, precedenceOfKind } from "./shared/implement.js";
5
+ import { $ark } from "./shared/registry.js";
6
+ import { hasArkKind, isNode } from "./shared/utils.js";
7
+ export const schemaKindOf = (schema, allowedKinds) => {
8
+ const kind = discriminateRootKind(schema);
9
+ if (allowedKinds && !allowedKinds.includes(kind)) {
10
+ return throwParseError(`Root of kind ${kind} should be one of ${allowedKinds}`);
11
+ }
12
+ return kind;
13
+ };
14
+ const discriminateRootKind = (schema) => {
15
+ if (hasArkKind(schema, "root"))
16
+ return schema.kind;
17
+ if (typeof schema === "string") {
18
+ return (schema[0] === "$" ? "alias"
19
+ : schema in domainDescriptions ? "domain"
20
+ : "proto");
21
+ }
22
+ if (typeof schema === "function")
23
+ return "proto";
24
+ // throw at end of function
25
+ if (typeof schema !== "object" || schema === null)
26
+ return throwParseError(writeInvalidSchemaMessage(schema));
27
+ if ("morphs" in schema)
28
+ return "morph";
29
+ if ("branches" in schema || isArray(schema))
30
+ return "union";
31
+ if ("unit" in schema)
32
+ return "unit";
33
+ if ("reference" in schema)
34
+ return "alias";
35
+ const schemaKeys = Object.keys(schema);
36
+ if (schemaKeys.length === 0 || schemaKeys.some(k => k in constraintKeys))
37
+ return "intersection";
38
+ if ("proto" in schema)
39
+ return "proto";
40
+ if ("domain" in schema)
41
+ return "domain";
42
+ return throwParseError(writeInvalidSchemaMessage(schema));
43
+ };
44
+ export const writeInvalidSchemaMessage = (schema) => `${printable(schema)} is not a valid type schema`;
45
+ const nodeCountsByPrefix = {};
46
+ const serializeListableChild = (listableNode) => isArray(listableNode) ?
47
+ listableNode.map(node => node.collapsibleJson)
48
+ : listableNode.collapsibleJson;
49
+ export const nodesByRegisteredId = {};
50
+ $ark.nodesByRegisteredId = nodesByRegisteredId;
51
+ export const registerNodeId = (prefix) => {
52
+ nodeCountsByPrefix[prefix] ??= 0;
53
+ return `${prefix}${++nodeCountsByPrefix[prefix]}`;
54
+ };
55
+ export const parseNode = (ctx) => {
56
+ const impl = nodeImplementationsByKind[ctx.kind];
57
+ const configuredSchema = impl.applyConfig?.(ctx.def, ctx.$.resolvedConfig) ?? ctx.def;
58
+ const inner = {};
59
+ const { meta: metaSchema, ...innerSchema } = configuredSchema;
60
+ const meta = metaSchema === undefined ? {}
61
+ : typeof metaSchema === "string" ? { description: metaSchema }
62
+ : metaSchema;
63
+ // ensure node entries are parsed in order of precedence, with non-children
64
+ // parsed first
65
+ const innerSchemaEntries = entriesOf(innerSchema)
66
+ .sort(([lKey], [rKey]) => isNodeKind(lKey) ?
67
+ isNodeKind(rKey) ? precedenceOfKind(lKey) - precedenceOfKind(rKey)
68
+ : 1
69
+ : isNodeKind(rKey) ? -1
70
+ : lKey < rKey ? -1
71
+ : 1)
72
+ .filter(([k, v]) => {
73
+ // move meta. prefixed props to meta, overwriting existing nested
74
+ // props of the same name if they exist
75
+ if (k.startsWith("meta.")) {
76
+ const metaKey = k.slice(5);
77
+ meta[metaKey] = v;
78
+ return false;
79
+ }
80
+ return true;
81
+ });
82
+ for (const entry of innerSchemaEntries) {
83
+ const k = entry[0];
84
+ const keyImpl = impl.keys[k];
85
+ if (!keyImpl)
86
+ return throwParseError(`Key ${k} is not valid on ${ctx.kind} schema`);
87
+ const v = keyImpl.parse ? keyImpl.parse(entry[1], ctx) : entry[1];
88
+ if (v !== unset && (v !== undefined || keyImpl.preserveUndefined))
89
+ inner[k] = v;
90
+ }
91
+ if (impl.reduce && !ctx.prereduced) {
92
+ const reduced = impl.reduce(inner, ctx.$);
93
+ if (reduced) {
94
+ if (reduced instanceof Disjoint)
95
+ return reduced.throw();
96
+ // we can't cache this reduction for now in case the reduction involved
97
+ // impliedSiblings
98
+ return withMeta(reduced, meta);
99
+ }
100
+ }
101
+ const node = createNode({
102
+ id: ctx.id,
103
+ kind: ctx.kind,
104
+ inner,
105
+ meta,
106
+ $: ctx.$
107
+ });
108
+ return node;
109
+ };
110
+ export const createNode = ({ id, kind, inner, meta, $, ignoreCache }) => {
111
+ const impl = nodeImplementationsByKind[kind];
112
+ const innerEntries = entriesOf(inner);
113
+ const children = [];
114
+ let innerJson = {};
115
+ for (const [k, v] of innerEntries) {
116
+ const keyImpl = impl.keys[k];
117
+ const serialize = keyImpl.serialize ??
118
+ (keyImpl.child ? serializeListableChild : defaultValueSerializer);
119
+ innerJson[k] = serialize(v);
120
+ if (keyImpl.child === true) {
121
+ const listableNode = v;
122
+ if (isArray(listableNode))
123
+ children.push(...listableNode);
124
+ else
125
+ children.push(listableNode);
126
+ }
127
+ else if (typeof keyImpl.child === "function")
128
+ children.push(...keyImpl.child(v));
129
+ }
130
+ if (impl.finalizeInnerJson)
131
+ innerJson = impl.finalizeInnerJson(innerJson);
132
+ let json = { ...innerJson };
133
+ let metaJson = {};
134
+ if (!isEmptyObject(meta)) {
135
+ metaJson = flatMorph(meta, (k, v) => [
136
+ k,
137
+ k === "examples" ? v : defaultValueSerializer(v)
138
+ ]);
139
+ json.meta = possiblyCollapse(metaJson, "description", true);
140
+ }
141
+ innerJson = possiblyCollapse(innerJson, impl.collapsibleKey, false);
142
+ const innerHash = JSON.stringify({ kind, ...innerJson });
143
+ json = possiblyCollapse(json, impl.collapsibleKey, false);
144
+ const collapsibleJson = possiblyCollapse(json, impl.collapsibleKey, true);
145
+ const hash = JSON.stringify({ kind, ...json });
146
+ // we have to wait until after reduction to return a cached entry,
147
+ // since reduction can add impliedSiblings
148
+ if ($.nodesByHash[hash] && !ignoreCache)
149
+ return $.nodesByHash[hash];
150
+ const attachments = {
151
+ id,
152
+ kind,
153
+ impl,
154
+ inner,
155
+ innerEntries,
156
+ innerJson,
157
+ innerHash,
158
+ meta,
159
+ metaJson,
160
+ json,
161
+ hash,
162
+ collapsibleJson: collapsibleJson,
163
+ children
164
+ };
165
+ if (kind !== "intersection") {
166
+ for (const k in inner)
167
+ if (k !== "in" && k !== "out")
168
+ attachments[k] = inner[k];
169
+ }
170
+ const node = new nodeClassesByKind[kind](attachments, $);
171
+ return ($.nodesByHash[hash] = node);
172
+ };
173
+ export const withId = (node, id) => {
174
+ if (node.id === id)
175
+ return node;
176
+ if (isNode(nodesByRegisteredId[id]))
177
+ throwInternalError(`Unexpected attempt to overwrite node id ${id}`);
178
+ // have to ignore cache to force creation of new potentially cyclic id
179
+ return createNode({
180
+ id,
181
+ kind: node.kind,
182
+ inner: node.inner,
183
+ meta: node.meta,
184
+ $: node.$,
185
+ ignoreCache: true
186
+ });
187
+ };
188
+ export const withMeta = (node, meta, id) => {
189
+ if (id && isNode(nodesByRegisteredId[id]))
190
+ throwInternalError(`Unexpected attempt to overwrite node id ${id}`);
191
+ return createNode({
192
+ id: id ?? registerNodeId(meta.alias ?? node.kind),
193
+ kind: node.kind,
194
+ inner: node.inner,
195
+ meta,
196
+ $: node.$
197
+ });
198
+ };
199
+ const possiblyCollapse = (json, toKey, allowPrimitive) => {
200
+ const collapsibleKeys = Object.keys(json);
201
+ if (collapsibleKeys.length === 1 && collapsibleKeys[0] === toKey) {
202
+ const collapsed = json[toKey];
203
+ if (allowPrimitive)
204
+ return collapsed;
205
+ if (
206
+ // if the collapsed value is still an object
207
+ hasDomain(collapsed, "object") &&
208
+ // and the JSON did not include any implied keys
209
+ (Object.keys(collapsed).length === 1 || Array.isArray(collapsed))) {
210
+ // we can replace it with its collapsed value
211
+ return collapsed;
212
+ }
213
+ }
214
+ return json;
215
+ };
@@ -0,0 +1,52 @@
1
+ import { BaseConstraint } from "./constraint.ts";
2
+ import type { NodeCompiler } from "./shared/compile.ts";
3
+ import type { BaseErrorContext, BaseNormalizedSchema, declareNode } from "./shared/declare.ts";
4
+ import { type nodeImplementationOf } from "./shared/implement.ts";
5
+ import type { JsonSchema } from "./shared/jsonSchema.ts";
6
+ import { type RegisteredReference } from "./shared/registry.ts";
7
+ import type { ToJsonSchema } from "./shared/toJsonSchema.ts";
8
+ import type { Traversal, TraverseAllows, TraverseApply } from "./shared/traversal.ts";
9
+ export declare namespace Predicate {
10
+ type Schema<predicate extends Predicate = Predicate> = NormalizedSchema<predicate> | predicate;
11
+ interface NormalizedSchema<predicate extends Predicate = Predicate> extends BaseNormalizedSchema {
12
+ readonly predicate: predicate;
13
+ }
14
+ interface Inner<predicate extends Predicate = Predicate> {
15
+ readonly predicate: predicate;
16
+ }
17
+ interface ErrorContext extends BaseErrorContext<"predicate"> {
18
+ readonly predicate?: Predicate;
19
+ }
20
+ interface Declaration extends declareNode<{
21
+ kind: "predicate";
22
+ schema: Schema;
23
+ normalizedSchema: NormalizedSchema;
24
+ inner: Inner;
25
+ intersectionIsOpen: true;
26
+ errorContext: ErrorContext;
27
+ }> {
28
+ }
29
+ type Node = PredicateNode;
30
+ }
31
+ export declare class PredicateNode extends BaseConstraint<Predicate.Declaration> {
32
+ serializedPredicate: RegisteredReference;
33
+ compiledCondition: string;
34
+ compiledNegation: string;
35
+ impliedBasis: null;
36
+ expression: string;
37
+ traverseAllows: TraverseAllows;
38
+ errorContext: Predicate.ErrorContext;
39
+ compiledErrorContext: string;
40
+ traverseApply: TraverseApply;
41
+ compile(js: NodeCompiler): void;
42
+ reduceJsonSchema(base: JsonSchema.Constrainable, ctx: ToJsonSchema.Context): JsonSchema;
43
+ }
44
+ export declare const Predicate: {
45
+ implementation: nodeImplementationOf<Predicate.Declaration>;
46
+ Node: typeof PredicateNode;
47
+ };
48
+ export type Predicate<data = any> = (data: data, ctx: Traversal) => boolean;
49
+ export declare namespace Predicate {
50
+ type Casted<input = never, narrowed extends input = input> = (input: input, ctx: Traversal) => input is narrowed;
51
+ type Castable<input = never, narrowed extends input = input> = Predicate<input> | Casted<input, narrowed>;
52
+ }
@@ -0,0 +1,63 @@
1
+ import { BaseConstraint } from "./constraint.js";
2
+ import { compileObjectLiteral, implementNode } from "./shared/implement.js";
3
+ import { registeredReference } from "./shared/registry.js";
4
+ const implementation = implementNode({
5
+ kind: "predicate",
6
+ hasAssociatedError: true,
7
+ collapsibleKey: "predicate",
8
+ keys: {
9
+ predicate: {}
10
+ },
11
+ normalize: schema => typeof schema === "function" ? { predicate: schema } : schema,
12
+ defaults: {
13
+ description: node => `valid according to ${node.predicate.name || "an anonymous predicate"}`
14
+ },
15
+ intersectionIsOpen: true,
16
+ intersections: {
17
+ // as long as the narrows in l and r are individually safe to check
18
+ // in the order they're specified, checking them in the order
19
+ // resulting from this intersection should also be safe.
20
+ predicate: () => null
21
+ }
22
+ });
23
+ export class PredicateNode extends BaseConstraint {
24
+ serializedPredicate = registeredReference(this.predicate);
25
+ compiledCondition = `${this.serializedPredicate}(data, ctx)`;
26
+ compiledNegation = `!${this.compiledCondition}`;
27
+ impliedBasis = null;
28
+ expression = this.serializedPredicate;
29
+ traverseAllows = this.predicate;
30
+ errorContext = {
31
+ code: "predicate",
32
+ description: this.description,
33
+ meta: this.meta
34
+ };
35
+ compiledErrorContext = compileObjectLiteral(this.errorContext);
36
+ traverseApply = (data, ctx) => {
37
+ const errorCount = ctx.currentErrorCount;
38
+ if (!this.predicate(data, ctx.external) &&
39
+ ctx.currentErrorCount === errorCount)
40
+ ctx.errorFromNodeContext(this.errorContext);
41
+ };
42
+ compile(js) {
43
+ if (js.traversalKind === "Allows") {
44
+ js.return(this.compiledCondition);
45
+ return;
46
+ }
47
+ js.initializeErrorCount();
48
+ js.if(
49
+ // only add the default error if the predicate didn't add one itself
50
+ `${this.compiledNegation} && ctx.currentErrorCount === errorCount`, () => js.line(`ctx.errorFromNodeContext(${this.compiledErrorContext})`));
51
+ }
52
+ reduceJsonSchema(base, ctx) {
53
+ return ctx.fallback.predicate({
54
+ code: "predicate",
55
+ base,
56
+ predicate: this.predicate
57
+ });
58
+ }
59
+ }
60
+ export const Predicate = {
61
+ implementation,
62
+ Node: PredicateNode
63
+ };
@@ -0,0 +1,41 @@
1
+ import type { BaseRoot } from "../roots/root.ts";
2
+ import type { BaseErrorContext, declareNode } from "../shared/declare.ts";
3
+ import { type nodeImplementationOf } from "../shared/implement.ts";
4
+ import type { JsonSchema } from "../shared/jsonSchema.ts";
5
+ import type { ToJsonSchema } from "../shared/toJsonSchema.ts";
6
+ import type { TraverseAllows } from "../shared/traversal.ts";
7
+ import { BaseRange, type BaseRangeInner, type LimitSchemaValue, type UnknownExpandedRangeSchema, type UnknownNormalizedRangeSchema } from "./range.ts";
8
+ export declare namespace After {
9
+ interface Inner extends BaseRangeInner {
10
+ rule: Date;
11
+ }
12
+ interface NormalizedSchema extends UnknownNormalizedRangeSchema {
13
+ rule: LimitSchemaValue;
14
+ }
15
+ interface ExpandedSchema extends UnknownExpandedRangeSchema {
16
+ rule: LimitSchemaValue;
17
+ }
18
+ type Schema = ExpandedSchema | LimitSchemaValue;
19
+ interface ErrorContext extends BaseErrorContext<"after">, Inner {
20
+ }
21
+ interface Declaration extends declareNode<{
22
+ kind: "after";
23
+ schema: Schema;
24
+ normalizedSchema: NormalizedSchema;
25
+ inner: Inner;
26
+ prerequisite: Date;
27
+ errorContext: ErrorContext;
28
+ }> {
29
+ }
30
+ type Node = AfterNode;
31
+ }
32
+ export declare class AfterNode extends BaseRange<After.Declaration> {
33
+ impliedBasis: BaseRoot;
34
+ collapsibleLimitString: string;
35
+ traverseAllows: TraverseAllows<Date>;
36
+ reduceJsonSchema(base: JsonSchema, ctx: ToJsonSchema.Context): JsonSchema;
37
+ }
38
+ export declare const After: {
39
+ implementation: nodeImplementationOf<After.Declaration>;
40
+ Node: typeof AfterNode;
41
+ };
@@ -0,0 +1,35 @@
1
+ import { describeCollapsibleDate } from "@ark/util";
2
+ import { implementNode } from "../shared/implement.js";
3
+ import { $ark } from "../shared/registry.js";
4
+ import { BaseRange, createDateSchemaNormalizer, parseDateLimit } from "./range.js";
5
+ const implementation = implementNode({
6
+ kind: "after",
7
+ collapsibleKey: "rule",
8
+ hasAssociatedError: true,
9
+ keys: {
10
+ rule: {
11
+ parse: parseDateLimit,
12
+ serialize: schema => schema.toISOString()
13
+ }
14
+ },
15
+ normalize: createDateSchemaNormalizer("after"),
16
+ defaults: {
17
+ description: node => `${node.collapsibleLimitString} or later`,
18
+ actual: describeCollapsibleDate
19
+ },
20
+ intersections: {
21
+ after: (l, r) => (l.isStricterThan(r) ? l : r)
22
+ }
23
+ });
24
+ export class AfterNode extends BaseRange {
25
+ impliedBasis = $ark.intrinsic.Date.internal;
26
+ collapsibleLimitString = describeCollapsibleDate(this.rule);
27
+ traverseAllows = data => data >= this.rule;
28
+ reduceJsonSchema(base, ctx) {
29
+ return ctx.fallback.date({ code: "date", base, after: this.rule });
30
+ }
31
+ }
32
+ export const After = {
33
+ implementation,
34
+ Node: AfterNode
35
+ };
@@ -0,0 +1,41 @@
1
+ import type { BaseRoot } from "../roots/root.ts";
2
+ import type { BaseErrorContext, declareNode } from "../shared/declare.ts";
3
+ import { type nodeImplementationOf } from "../shared/implement.ts";
4
+ import type { JsonSchema } from "../shared/jsonSchema.ts";
5
+ import type { ToJsonSchema } from "../shared/toJsonSchema.ts";
6
+ import type { TraverseAllows } from "../shared/traversal.ts";
7
+ import { BaseRange, type BaseRangeInner, type LimitSchemaValue, type UnknownExpandedRangeSchema, type UnknownNormalizedRangeSchema } from "./range.ts";
8
+ export declare namespace Before {
9
+ interface Inner extends BaseRangeInner {
10
+ rule: Date;
11
+ }
12
+ interface NormalizedSchema extends UnknownNormalizedRangeSchema {
13
+ rule: LimitSchemaValue;
14
+ }
15
+ interface ExpandedSchema extends UnknownExpandedRangeSchema {
16
+ rule: LimitSchemaValue;
17
+ }
18
+ type Schema = ExpandedSchema | LimitSchemaValue;
19
+ interface ErrorContext extends BaseErrorContext<"before">, Inner {
20
+ }
21
+ interface Declaration extends declareNode<{
22
+ kind: "before";
23
+ schema: Schema;
24
+ normalizedSchema: NormalizedSchema;
25
+ inner: Inner;
26
+ prerequisite: Date;
27
+ errorContext: ErrorContext;
28
+ }> {
29
+ }
30
+ type Node = BeforeNode;
31
+ }
32
+ export declare class BeforeNode extends BaseRange<Before.Declaration> {
33
+ collapsibleLimitString: string;
34
+ traverseAllows: TraverseAllows<Date>;
35
+ impliedBasis: BaseRoot;
36
+ reduceJsonSchema(base: JsonSchema, ctx: ToJsonSchema.Context): JsonSchema;
37
+ }
38
+ export declare const Before: {
39
+ implementation: nodeImplementationOf<Before.Declaration>;
40
+ Node: typeof BeforeNode;
41
+ };
@@ -0,0 +1,41 @@
1
+ import { describeCollapsibleDate } from "@ark/util";
2
+ import { Disjoint } from "../shared/disjoint.js";
3
+ import { implementNode } from "../shared/implement.js";
4
+ import { $ark } from "../shared/registry.js";
5
+ import { BaseRange, createDateSchemaNormalizer, parseDateLimit } from "./range.js";
6
+ const implementation = implementNode({
7
+ kind: "before",
8
+ collapsibleKey: "rule",
9
+ hasAssociatedError: true,
10
+ keys: {
11
+ rule: {
12
+ parse: parseDateLimit,
13
+ serialize: schema => schema.toISOString()
14
+ }
15
+ },
16
+ normalize: createDateSchemaNormalizer("before"),
17
+ defaults: {
18
+ description: node => `${node.collapsibleLimitString} or earlier`,
19
+ actual: describeCollapsibleDate
20
+ },
21
+ intersections: {
22
+ before: (l, r) => (l.isStricterThan(r) ? l : r),
23
+ after: (before, after, ctx) => before.overlapsRange(after) ?
24
+ before.overlapIsUnit(after) ?
25
+ ctx.$.node("unit", { unit: before.rule })
26
+ : null
27
+ : Disjoint.init("range", before, after)
28
+ }
29
+ });
30
+ export class BeforeNode extends BaseRange {
31
+ collapsibleLimitString = describeCollapsibleDate(this.rule);
32
+ traverseAllows = data => data <= this.rule;
33
+ impliedBasis = $ark.intrinsic.Date.internal;
34
+ reduceJsonSchema(base, ctx) {
35
+ return ctx.fallback.date({ code: "date", base, before: this.rule });
36
+ }
37
+ }
38
+ export const Before = {
39
+ implementation,
40
+ Node: BeforeNode
41
+ };
@@ -0,0 +1,43 @@
1
+ import { InternalPrimitiveConstraint, writeInvalidOperandMessage } from "../constraint.ts";
2
+ import type { BaseRoot } from "../roots/root.ts";
3
+ import type { BaseErrorContext, BaseNormalizedSchema, declareNode } from "../shared/declare.ts";
4
+ import { type nodeImplementationOf } from "../shared/implement.ts";
5
+ import type { JsonSchema } from "../shared/jsonSchema.ts";
6
+ import type { TraverseAllows } from "../shared/traversal.ts";
7
+ export declare namespace Divisor {
8
+ interface Inner {
9
+ readonly rule: number;
10
+ }
11
+ interface NormalizedSchema extends BaseNormalizedSchema {
12
+ readonly rule: number;
13
+ }
14
+ type Schema = NormalizedSchema | number;
15
+ interface ErrorContext extends BaseErrorContext<"divisor">, Inner {
16
+ }
17
+ interface Declaration extends declareNode<{
18
+ kind: "divisor";
19
+ schema: Schema;
20
+ normalizedSchema: NormalizedSchema;
21
+ inner: Inner;
22
+ prerequisite: number;
23
+ errorContext: ErrorContext;
24
+ }> {
25
+ }
26
+ type Node = DivisorNode;
27
+ }
28
+ export declare class DivisorNode extends InternalPrimitiveConstraint<Divisor.Declaration> {
29
+ traverseAllows: TraverseAllows<number>;
30
+ readonly compiledCondition: string;
31
+ readonly compiledNegation: string;
32
+ readonly impliedBasis: BaseRoot;
33
+ readonly expression: string;
34
+ reduceJsonSchema(schema: JsonSchema.Numeric): JsonSchema.Numeric;
35
+ }
36
+ export declare const Divisor: {
37
+ implementation: nodeImplementationOf<Divisor.Declaration>;
38
+ Node: typeof DivisorNode;
39
+ };
40
+ export declare const writeIndivisibleMessage: (t: BaseRoot) => string;
41
+ export type writeIndivisibleMessage<actual> = writeInvalidOperandMessage<"divisor", actual>;
42
+ export declare const writeNonIntegerDivisorMessage: <divisor extends number>(divisor: divisor) => writeNonIntegerDivisorMessage<divisor>;
43
+ export type writeNonIntegerDivisorMessage<divisor extends number> = `divisor must be an integer (was ${divisor})`;
@@ -0,0 +1,58 @@
1
+ import { throwParseError } from "@ark/util";
2
+ import { InternalPrimitiveConstraint, writeInvalidOperandMessage } from "../constraint.js";
3
+ import { implementNode } from "../shared/implement.js";
4
+ import { $ark } from "../shared/registry.js";
5
+ const implementation = implementNode({
6
+ kind: "divisor",
7
+ collapsibleKey: "rule",
8
+ keys: {
9
+ rule: {
10
+ parse: divisor => Number.isInteger(divisor) ? divisor : (throwParseError(writeNonIntegerDivisorMessage(divisor)))
11
+ }
12
+ },
13
+ normalize: schema => typeof schema === "number" ? { rule: schema } : schema,
14
+ hasAssociatedError: true,
15
+ defaults: {
16
+ description: node => node.rule === 1 ? "an integer"
17
+ : node.rule === 2 ? "even"
18
+ : `a multiple of ${node.rule}`
19
+ },
20
+ intersections: {
21
+ divisor: (l, r, ctx) => ctx.$.node("divisor", {
22
+ rule: Math.abs((l.rule * r.rule) / greatestCommonDivisor(l.rule, r.rule))
23
+ })
24
+ },
25
+ obviatesBasisDescription: true
26
+ });
27
+ export class DivisorNode extends InternalPrimitiveConstraint {
28
+ traverseAllows = data => data % this.rule === 0;
29
+ compiledCondition = `data % ${this.rule} === 0`;
30
+ compiledNegation = `data % ${this.rule} !== 0`;
31
+ impliedBasis = $ark.intrinsic.number.internal;
32
+ expression = `% ${this.rule}`;
33
+ reduceJsonSchema(schema) {
34
+ schema.type = "integer";
35
+ if (this.rule === 1)
36
+ return schema;
37
+ schema.multipleOf = this.rule;
38
+ return schema;
39
+ }
40
+ }
41
+ export const Divisor = {
42
+ implementation,
43
+ Node: DivisorNode
44
+ };
45
+ export const writeIndivisibleMessage = (t) => writeInvalidOperandMessage("divisor", $ark.intrinsic.number, t);
46
+ export const writeNonIntegerDivisorMessage = (divisor) => `divisor must be an integer (was ${divisor})`;
47
+ // https://en.wikipedia.org/wiki/Euclidean_algorithm
48
+ const greatestCommonDivisor = (l, r) => {
49
+ let previous;
50
+ let greatestCommonDivisor = l;
51
+ let current = r;
52
+ while (current !== 0) {
53
+ previous = current;
54
+ current = greatestCommonDivisor % current;
55
+ greatestCommonDivisor = previous;
56
+ }
57
+ return greatestCommonDivisor;
58
+ };
@@ -0,0 +1,49 @@
1
+ import { InternalPrimitiveConstraint } from "../constraint.ts";
2
+ import type { BaseRoot } from "../roots/root.ts";
3
+ import type { BaseErrorContext, BaseNormalizedSchema, declareNode } from "../shared/declare.ts";
4
+ import { type nodeImplementationOf } from "../shared/implement.ts";
5
+ import type { JsonSchema } from "../shared/jsonSchema.ts";
6
+ import type { TraverseAllows } from "../shared/traversal.ts";
7
+ import { type LengthBoundableData } from "./range.ts";
8
+ export declare namespace ExactLength {
9
+ interface Inner {
10
+ readonly rule: number;
11
+ }
12
+ interface NormalizedSchema extends BaseNormalizedSchema {
13
+ readonly rule: number;
14
+ }
15
+ type Schema = NormalizedSchema | number;
16
+ interface ErrorContext extends BaseErrorContext<"exactLength">, Inner {
17
+ }
18
+ type Declaration = declareNode<{
19
+ kind: "exactLength";
20
+ schema: Schema;
21
+ normalizedSchema: NormalizedSchema;
22
+ inner: Inner;
23
+ prerequisite: LengthBoundableData;
24
+ errorContext: ErrorContext;
25
+ }>;
26
+ type Node = ExactLengthNode;
27
+ }
28
+ export declare class ExactLengthNode extends InternalPrimitiveConstraint<ExactLength.Declaration> {
29
+ traverseAllows: TraverseAllows<LengthBoundableData>;
30
+ readonly compiledCondition: string;
31
+ readonly compiledNegation: string;
32
+ readonly impliedBasis: BaseRoot;
33
+ readonly expression: string;
34
+ reduceJsonSchema(schema: JsonSchema.LengthBoundable): JsonSchema.LengthBoundable;
35
+ }
36
+ export declare const ExactLength: {
37
+ implementation: nodeImplementationOf<{
38
+ intersectionIsOpen: false;
39
+ childKind: never;
40
+ reducibleTo: "exactLength";
41
+ kind: "exactLength";
42
+ schema: ExactLength.Schema;
43
+ normalizedSchema: ExactLength.NormalizedSchema;
44
+ inner: ExactLength.Inner;
45
+ prerequisite: LengthBoundableData;
46
+ errorContext: ExactLength.ErrorContext;
47
+ }>;
48
+ Node: typeof ExactLengthNode;
49
+ };