@blade-hq/agent-client 1.1.1 → 1.1.3

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,463 @@
1
+ import { ArkErrors, intrinsic, node, rootSchema } from "@ark/schema";
2
+ import { flatMorph, numericStringMatcher, wellFormedIntegerMatcher } from "@ark/util";
3
+ import { Scope } from "../scope.js";
4
+ import { number } from "./number.js";
5
+ // non-trivial expressions should have an explanation or attribution
6
+ export const regexStringNode = (regex, description, jsonSchemaFormat) => {
7
+ const schema = {
8
+ domain: "string",
9
+ pattern: {
10
+ rule: regex.source,
11
+ flags: regex.flags,
12
+ meta: description
13
+ }
14
+ };
15
+ if (jsonSchemaFormat)
16
+ schema.meta = { format: jsonSchemaFormat };
17
+ return node("intersection", schema);
18
+ };
19
+ const stringIntegerRoot = regexStringNode(wellFormedIntegerMatcher, "a well-formed integer string");
20
+ export const stringInteger = Scope.module({
21
+ root: stringIntegerRoot,
22
+ parse: rootSchema({
23
+ in: stringIntegerRoot,
24
+ morphs: (s, ctx) => {
25
+ const parsed = Number.parseInt(s);
26
+ return Number.isSafeInteger(parsed) ? parsed : (ctx.error("an integer in the range Number.MIN_SAFE_INTEGER to Number.MAX_SAFE_INTEGER"));
27
+ },
28
+ declaredOut: intrinsic.integer
29
+ })
30
+ }, {
31
+ name: "string.integer"
32
+ });
33
+ const hex = regexStringNode(/^[\dA-Fa-f]+$/, "hex characters only");
34
+ const base64 = Scope.module({
35
+ root: regexStringNode(/^(?:[\d+/A-Za-z]{4})*(?:[\d+/A-Za-z]{2}==|[\d+/A-Za-z]{3}=)?$/, "base64-encoded"),
36
+ url: regexStringNode(/^(?:[\w-]{4})*(?:[\w-]{2}(?:==|%3D%3D)?|[\w-]{3}(?:=|%3D)?)?$/, "base64url-encoded")
37
+ }, {
38
+ name: "string.base64"
39
+ });
40
+ const preformattedCapitalize = regexStringNode(/^[A-Z].*$/, "capitalized");
41
+ export const capitalize = Scope.module({
42
+ root: rootSchema({
43
+ in: "string",
44
+ morphs: (s) => s.charAt(0).toUpperCase() + s.slice(1),
45
+ declaredOut: preformattedCapitalize
46
+ }),
47
+ preformatted: preformattedCapitalize
48
+ }, {
49
+ name: "string.capitalize"
50
+ });
51
+ // https://github.com/validatorjs/validator.js/blob/master/src/lib/isLuhnNumber.js
52
+ export const isLuhnValid = (creditCardInput) => {
53
+ const sanitized = creditCardInput.replace(/[ -]+/g, "");
54
+ let sum = 0;
55
+ let digit;
56
+ let tmpNum;
57
+ let shouldDouble = false;
58
+ for (let i = sanitized.length - 1; i >= 0; i--) {
59
+ digit = sanitized.substring(i, i + 1);
60
+ tmpNum = Number.parseInt(digit, 10);
61
+ if (shouldDouble) {
62
+ tmpNum *= 2;
63
+ sum += tmpNum >= 10 ? (tmpNum % 10) + 1 : tmpNum;
64
+ }
65
+ else
66
+ sum += tmpNum;
67
+ shouldDouble = !shouldDouble;
68
+ }
69
+ return !!(sum % 10 === 0 ? sanitized : false);
70
+ };
71
+ // https://github.com/validatorjs/validator.js/blob/master/src/lib/isCreditCard.js
72
+ const creditCardMatcher = /^(?:4\d{12}(?:\d{3,6})?|5[1-5]\d{14}|(222[1-9]|22[3-9]\d|2[3-6]\d{2}|27[01]\d|2720)\d{12}|6(?:011|5\d\d)\d{12,15}|3[47]\d{13}|3(?:0[0-5]|[68]\d)\d{11}|(?:2131|1800|35\d{3})\d{11}|6[27]\d{14}|^(81\d{14,17}))$/;
73
+ export const creditCard = rootSchema({
74
+ domain: "string",
75
+ pattern: {
76
+ meta: "a credit card number",
77
+ rule: creditCardMatcher.source
78
+ },
79
+ predicate: {
80
+ meta: "a credit card number",
81
+ predicate: isLuhnValid
82
+ }
83
+ });
84
+ const dayDelimiterMatcher = /^[./-]$/;
85
+ // ISO 8601 date/time modernized from https://github.com/validatorjs/validator.js/blob/master/src/lib/isISO8601.js
86
+ // Based on https://tc39.es/ecma262/#sec-date-time-string-format, the T
87
+ // delimiter for date/time is mandatory. Regex from validator.js strict matcher:
88
+ export const iso8601Matcher = /^([+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))(T((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([,.]\d+(?!:))?)?(\17[0-5]\d([,.]\d+)?)?([Zz]|([+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/;
89
+ const isValidDateInstance = (date) => !Number.isNaN(+date);
90
+ const writeFormattedExpected = (format) => `a ${format}-formatted date`;
91
+ export const tryParseDatePattern = (data, opts) => {
92
+ if (!opts?.format) {
93
+ const result = new Date(data);
94
+ return isValidDateInstance(result) ? result : "a valid date";
95
+ }
96
+ if (opts.format === "iso") {
97
+ return iso8601Matcher.test(data) ?
98
+ new Date(data)
99
+ : writeFormattedExpected("iso");
100
+ }
101
+ const dataParts = data.split(dayDelimiterMatcher);
102
+ // will be the first delimiter matched, if there is one
103
+ const delimiter = data[dataParts[0].length];
104
+ const formatParts = delimiter ? opts.format.split(delimiter) : [opts.format];
105
+ if (dataParts.length !== formatParts.length)
106
+ return writeFormattedExpected(opts.format);
107
+ const parsedParts = {};
108
+ for (let i = 0; i < formatParts.length; i++) {
109
+ if (dataParts[i].length !== formatParts[i].length &&
110
+ // if format is "m" or "d", data is allowed to be 1 or 2 characters
111
+ !(formatParts[i].length === 1 && dataParts[i].length === 2))
112
+ return writeFormattedExpected(opts.format);
113
+ parsedParts[formatParts[i][0]] = dataParts[i];
114
+ }
115
+ const date = new Date(`${parsedParts.m}/${parsedParts.d}/${parsedParts.y}`);
116
+ if (`${date.getDate()}` === parsedParts.d)
117
+ return date;
118
+ return writeFormattedExpected(opts.format);
119
+ };
120
+ const isParsableDate = (s) => !Number.isNaN(new Date(s).valueOf());
121
+ const parsableDate = rootSchema({
122
+ domain: "string",
123
+ predicate: {
124
+ meta: "a parsable date",
125
+ predicate: isParsableDate
126
+ }
127
+ }).assertHasKind("intersection");
128
+ const epochRoot = stringInteger.root.internal
129
+ .narrow((s, ctx) => {
130
+ // this is safe since it has already
131
+ // been validated as an integer string
132
+ const n = Number.parseInt(s);
133
+ const out = number.epoch(n);
134
+ if (out instanceof ArkErrors) {
135
+ ctx.errors.merge(out);
136
+ return false;
137
+ }
138
+ return true;
139
+ })
140
+ .configure({
141
+ description: "an integer string representing a safe Unix timestamp"
142
+ }, "self")
143
+ .assertHasKind("intersection");
144
+ const epoch = Scope.module({
145
+ root: epochRoot,
146
+ parse: rootSchema({
147
+ in: epochRoot,
148
+ morphs: (s) => new Date(s),
149
+ declaredOut: intrinsic.Date
150
+ })
151
+ }, {
152
+ name: "string.date.epoch"
153
+ });
154
+ const isoRoot = regexStringNode(iso8601Matcher, "an ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ) date").internal.assertHasKind("intersection");
155
+ const iso = Scope.module({
156
+ root: isoRoot,
157
+ parse: rootSchema({
158
+ in: isoRoot,
159
+ morphs: (s) => new Date(s),
160
+ declaredOut: intrinsic.Date
161
+ })
162
+ }, {
163
+ name: "string.date.iso"
164
+ });
165
+ export const stringDate = Scope.module({
166
+ root: parsableDate,
167
+ parse: rootSchema({
168
+ declaredIn: parsableDate,
169
+ in: "string",
170
+ morphs: (s, ctx) => {
171
+ const date = new Date(s);
172
+ if (Number.isNaN(date.valueOf()))
173
+ return ctx.error("a parsable date");
174
+ return date;
175
+ },
176
+ declaredOut: intrinsic.Date
177
+ }),
178
+ iso,
179
+ epoch
180
+ }, {
181
+ name: "string.date"
182
+ });
183
+ const email = regexStringNode(
184
+ // considered https://colinhacks.com/essays/reasonable-email-regex but it includes a lookahead
185
+ // which breaks some integrations e.g. fast-check
186
+ // regex based on:
187
+ // https://www.regular-expressions.info/email.html
188
+ /^[\w%+.-]+@[\d.A-Za-z-]+\.[A-Za-z]{2,}$/, "an email address", "email");
189
+ // based on https://github.com/validatorjs/validator.js/blob/master/src/lib/isIP.js
190
+ const ipv4Segment = "(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])";
191
+ const ipv4Address = `(${ipv4Segment}[.]){3}${ipv4Segment}`;
192
+ const ipv4Matcher = new RegExp(`^${ipv4Address}$`);
193
+ const ipv6Segment = "(?:[0-9a-fA-F]{1,4})";
194
+ const ipv6Matcher = new RegExp("^(" +
195
+ `(?:${ipv6Segment}:){7}(?:${ipv6Segment}|:)|` +
196
+ `(?:${ipv6Segment}:){6}(?:${ipv4Address}|:${ipv6Segment}|:)|` +
197
+ `(?:${ipv6Segment}:){5}(?::${ipv4Address}|(:${ipv6Segment}){1,2}|:)|` +
198
+ `(?:${ipv6Segment}:){4}(?:(:${ipv6Segment}){0,1}:${ipv4Address}|(:${ipv6Segment}){1,3}|:)|` +
199
+ `(?:${ipv6Segment}:){3}(?:(:${ipv6Segment}){0,2}:${ipv4Address}|(:${ipv6Segment}){1,4}|:)|` +
200
+ `(?:${ipv6Segment}:){2}(?:(:${ipv6Segment}){0,3}:${ipv4Address}|(:${ipv6Segment}){1,5}|:)|` +
201
+ `(?:${ipv6Segment}:){1}(?:(:${ipv6Segment}){0,4}:${ipv4Address}|(:${ipv6Segment}){1,6}|:)|` +
202
+ `(?::((?::${ipv6Segment}){0,5}:${ipv4Address}|(?::${ipv6Segment}){1,7}|:))` +
203
+ ")(%[0-9a-zA-Z.]{1,})?$");
204
+ export const ip = Scope.module({
205
+ root: ["v4 | v6", "@", "an IP address"],
206
+ v4: regexStringNode(ipv4Matcher, "an IPv4 address", "ipv4"),
207
+ v6: regexStringNode(ipv6Matcher, "an IPv6 address", "ipv6")
208
+ }, {
209
+ name: "string.ip"
210
+ });
211
+ const jsonStringDescription = "a JSON string";
212
+ export const writeJsonSyntaxErrorProblem = (error) => {
213
+ if (!(error instanceof SyntaxError))
214
+ throw error;
215
+ return `must be ${jsonStringDescription} (${error})`;
216
+ };
217
+ const jsonRoot = rootSchema({
218
+ meta: jsonStringDescription,
219
+ domain: "string",
220
+ predicate: {
221
+ meta: jsonStringDescription,
222
+ predicate: (s, ctx) => {
223
+ try {
224
+ JSON.parse(s);
225
+ return true;
226
+ }
227
+ catch (e) {
228
+ return ctx.reject({
229
+ code: "predicate",
230
+ expected: jsonStringDescription,
231
+ problem: writeJsonSyntaxErrorProblem(e)
232
+ });
233
+ }
234
+ }
235
+ }
236
+ });
237
+ const parseJson = (s, ctx) => {
238
+ if (s.length === 0) {
239
+ return ctx.error({
240
+ code: "predicate",
241
+ expected: jsonStringDescription,
242
+ actual: "empty"
243
+ });
244
+ }
245
+ try {
246
+ return JSON.parse(s);
247
+ }
248
+ catch (e) {
249
+ return ctx.error({
250
+ code: "predicate",
251
+ expected: jsonStringDescription,
252
+ problem: writeJsonSyntaxErrorProblem(e)
253
+ });
254
+ }
255
+ };
256
+ export const json = Scope.module({
257
+ root: jsonRoot,
258
+ parse: rootSchema({
259
+ meta: "safe JSON string parser",
260
+ in: "string",
261
+ morphs: parseJson,
262
+ declaredOut: intrinsic.jsonObject
263
+ })
264
+ }, {
265
+ name: "string.json"
266
+ });
267
+ const preformattedLower = regexStringNode(/^[a-z]*$/, "only lowercase letters");
268
+ const lower = Scope.module({
269
+ root: rootSchema({
270
+ in: "string",
271
+ morphs: (s) => s.toLowerCase(),
272
+ declaredOut: preformattedLower
273
+ }),
274
+ preformatted: preformattedLower
275
+ }, {
276
+ name: "string.lower"
277
+ });
278
+ export const normalizedForms = ["NFC", "NFD", "NFKC", "NFKD"];
279
+ const preformattedNodes = flatMorph(normalizedForms, (i, form) => [
280
+ form,
281
+ rootSchema({
282
+ domain: "string",
283
+ predicate: (s) => s.normalize(form) === s,
284
+ meta: `${form}-normalized unicode`
285
+ })
286
+ ]);
287
+ const normalizeNodes = flatMorph(normalizedForms, (i, form) => [
288
+ form,
289
+ rootSchema({
290
+ in: "string",
291
+ morphs: (s) => s.normalize(form),
292
+ declaredOut: preformattedNodes[form]
293
+ })
294
+ ]);
295
+ export const NFC = Scope.module({
296
+ root: normalizeNodes.NFC,
297
+ preformatted: preformattedNodes.NFC
298
+ }, {
299
+ name: "string.normalize.NFC"
300
+ });
301
+ export const NFD = Scope.module({
302
+ root: normalizeNodes.NFD,
303
+ preformatted: preformattedNodes.NFD
304
+ }, {
305
+ name: "string.normalize.NFD"
306
+ });
307
+ export const NFKC = Scope.module({
308
+ root: normalizeNodes.NFKC,
309
+ preformatted: preformattedNodes.NFKC
310
+ }, {
311
+ name: "string.normalize.NFKC"
312
+ });
313
+ export const NFKD = Scope.module({
314
+ root: normalizeNodes.NFKD,
315
+ preformatted: preformattedNodes.NFKD
316
+ }, {
317
+ name: "string.normalize.NFKD"
318
+ });
319
+ export const normalize = Scope.module({
320
+ root: "NFC",
321
+ NFC,
322
+ NFD,
323
+ NFKC,
324
+ NFKD
325
+ }, {
326
+ name: "string.normalize"
327
+ });
328
+ const numericRoot = regexStringNode(numericStringMatcher, "a well-formed numeric string");
329
+ export const stringNumeric = Scope.module({
330
+ root: numericRoot,
331
+ parse: rootSchema({
332
+ in: numericRoot,
333
+ morphs: (s) => Number.parseFloat(s),
334
+ declaredOut: intrinsic.number
335
+ })
336
+ }, {
337
+ name: "string.numeric"
338
+ });
339
+ const regexPatternDescription = "a regex pattern";
340
+ const regex = rootSchema({
341
+ domain: "string",
342
+ predicate: {
343
+ meta: regexPatternDescription,
344
+ predicate: (s, ctx) => {
345
+ try {
346
+ new RegExp(s);
347
+ return true;
348
+ }
349
+ catch (e) {
350
+ return ctx.reject({
351
+ code: "predicate",
352
+ expected: regexPatternDescription,
353
+ problem: String(e)
354
+ });
355
+ }
356
+ }
357
+ },
358
+ meta: { format: "regex" }
359
+ });
360
+ const semverMatcher = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[A-Za-z-][\dA-Za-z-]*)(?:\.(?:0|[1-9]\d*|\d*[A-Za-z-][\dA-Za-z-]*))*))?(?:\+([\dA-Za-z-]+(?:\.[\dA-Za-z-]+)*))?$/;
361
+ const semver = regexStringNode(semverMatcher, "a semantic version (see https://semver.org/)");
362
+ const preformattedTrim = regexStringNode(
363
+ // no leading or trailing whitespace
364
+ /^\S.*\S$|^\S?$/, "trimmed");
365
+ const trim = Scope.module({
366
+ root: rootSchema({
367
+ in: "string",
368
+ morphs: (s) => s.trim(),
369
+ declaredOut: preformattedTrim
370
+ }),
371
+ preformatted: preformattedTrim
372
+ }, {
373
+ name: "string.trim"
374
+ });
375
+ const preformattedUpper = regexStringNode(/^[A-Z]*$/, "only uppercase letters");
376
+ const upper = Scope.module({
377
+ root: rootSchema({
378
+ in: "string",
379
+ morphs: (s) => s.toUpperCase(),
380
+ declaredOut: preformattedUpper
381
+ }),
382
+ preformatted: preformattedUpper
383
+ }, {
384
+ name: "string.upper"
385
+ });
386
+ const isParsableUrl = (s) => URL.canParse(s);
387
+ const urlRoot = rootSchema({
388
+ domain: "string",
389
+ predicate: {
390
+ meta: "a URL string",
391
+ predicate: isParsableUrl
392
+ },
393
+ // URL.canParse allows a subset of the RFC-3986 URI spec
394
+ // since there is no other serializable validation, best include a format
395
+ meta: { format: "uri" }
396
+ });
397
+ export const url = Scope.module({
398
+ root: urlRoot,
399
+ parse: rootSchema({
400
+ declaredIn: urlRoot,
401
+ in: "string",
402
+ morphs: (s, ctx) => {
403
+ try {
404
+ return new URL(s);
405
+ }
406
+ catch {
407
+ return ctx.error("a URL string");
408
+ }
409
+ },
410
+ declaredOut: rootSchema(URL)
411
+ })
412
+ }, {
413
+ name: "string.url"
414
+ });
415
+ // based on https://github.com/validatorjs/validator.js/blob/master/src/lib/isUUID.js
416
+ export const uuid = Scope.module({
417
+ // the meta tuple expression ensures the error message does not delegate
418
+ // to the individual branches, which are too detailed
419
+ root: [
420
+ "versioned | nil | max",
421
+ "@",
422
+ { description: "a UUID", format: "uuid" }
423
+ ],
424
+ "#nil": "'00000000-0000-0000-0000-000000000000'",
425
+ "#max": "'ffffffff-ffff-ffff-ffff-ffffffffffff'",
426
+ "#versioned": /[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}/i,
427
+ v1: regexStringNode(/^[\da-f]{8}-[\da-f]{4}-1[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i, "a UUIDv1"),
428
+ v2: regexStringNode(/^[\da-f]{8}-[\da-f]{4}-2[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i, "a UUIDv2"),
429
+ v3: regexStringNode(/^[\da-f]{8}-[\da-f]{4}-3[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i, "a UUIDv3"),
430
+ v4: regexStringNode(/^[\da-f]{8}-[\da-f]{4}-4[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i, "a UUIDv4"),
431
+ v5: regexStringNode(/^[\da-f]{8}-[\da-f]{4}-5[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i, "a UUIDv5"),
432
+ v6: regexStringNode(/^[\da-f]{8}-[\da-f]{4}-6[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i, "a UUIDv6"),
433
+ v7: regexStringNode(/^[\da-f]{8}-[\da-f]{4}-7[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i, "a UUIDv7"),
434
+ v8: regexStringNode(/^[\da-f]{8}-[\da-f]{4}-8[\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}$/i, "a UUIDv8")
435
+ }, {
436
+ name: "string.uuid"
437
+ });
438
+ export const string = Scope.module({
439
+ root: intrinsic.string,
440
+ alpha: regexStringNode(/^[A-Za-z]*$/, "only letters"),
441
+ alphanumeric: regexStringNode(/^[\dA-Za-z]*$/, "only letters and digits 0-9"),
442
+ hex,
443
+ base64,
444
+ capitalize,
445
+ creditCard,
446
+ date: stringDate,
447
+ digits: regexStringNode(/^\d*$/, "only digits 0-9"),
448
+ email,
449
+ integer: stringInteger,
450
+ ip,
451
+ json,
452
+ lower,
453
+ normalize,
454
+ numeric: stringNumeric,
455
+ regex,
456
+ semver,
457
+ trim,
458
+ upper,
459
+ url,
460
+ uuid
461
+ }, {
462
+ name: "string"
463
+ });
@@ -0,0 +1,108 @@
1
+ import { Hkt, type Json, type Key, type omit, type pick, type show } from "@ark/util";
2
+ import type { To } from "../attributes.ts";
3
+ import type { Module, Submodule } from "../module.ts";
4
+ export declare const arkTsKeywords: arkTsKeywords;
5
+ export type arkTsKeywords = Module<arkTsKeywords.$>;
6
+ export declare namespace arkTsKeywords {
7
+ type submodule = Submodule<$>;
8
+ type $ = {
9
+ bigint: bigint;
10
+ boolean: boolean;
11
+ false: false;
12
+ never: never;
13
+ null: null;
14
+ number: number;
15
+ object: object;
16
+ string: string;
17
+ symbol: symbol;
18
+ true: true;
19
+ unknown: unknown;
20
+ undefined: undefined;
21
+ };
22
+ }
23
+ export declare const unknown: Module<{
24
+ root: unknown;
25
+ any: unknown;
26
+ }>;
27
+ export declare namespace unknown {
28
+ type submodule = Submodule<$>;
29
+ type $ = {
30
+ root: unknown;
31
+ any: any;
32
+ };
33
+ }
34
+ export declare const json: Module<{
35
+ root: unknown;
36
+ stringify: unknown;
37
+ }>;
38
+ export declare namespace json {
39
+ type submodule = Submodule<$>;
40
+ type $ = {
41
+ root: Json;
42
+ stringify: (In: Json) => To<string>;
43
+ };
44
+ }
45
+ export declare const object: Module<{
46
+ root: unknown;
47
+ json: Submodule<{
48
+ root: unknown;
49
+ stringify: unknown;
50
+ }>;
51
+ }>;
52
+ export declare namespace object {
53
+ type submodule = Submodule<$>;
54
+ type $ = {
55
+ root: object;
56
+ json: json.submodule;
57
+ };
58
+ }
59
+ declare class RecordHkt extends Hkt<[Key, unknown]> {
60
+ body: Record<this[0], this[1]>;
61
+ description: string;
62
+ }
63
+ declare const Record: import("@ark/schema").GenericRoot<readonly [["K", Key], ["V", unknown]], RecordHkt>;
64
+ declare class PickHkt extends Hkt<[object, Key]> {
65
+ body: pick<this[0], this[1] & keyof this[0]>;
66
+ description: string;
67
+ }
68
+ declare const Pick: import("@ark/schema").GenericRoot<readonly [["T", object], ["K", Key]], PickHkt>;
69
+ declare class OmitHkt extends Hkt<[object, Key]> {
70
+ body: omit<this[0], this[1] & keyof this[0]>;
71
+ description: string;
72
+ }
73
+ declare const Omit: import("@ark/schema").GenericRoot<readonly [["T", object], ["K", Key]], OmitHkt>;
74
+ declare class PartialHkt extends Hkt<[object]> {
75
+ body: show<Partial<this[0]>>;
76
+ description: string;
77
+ }
78
+ declare const Partial: import("@ark/schema").GenericRoot<readonly [["T", object]], PartialHkt>;
79
+ declare class RequiredHkt extends Hkt<[object]> {
80
+ body: show<Required<this[0]>>;
81
+ description: string;
82
+ }
83
+ declare const Required: import("@ark/schema").GenericRoot<readonly [["T", object]], RequiredHkt>;
84
+ declare class ExcludeHkt extends Hkt<[unknown, unknown]> {
85
+ body: Exclude<this[0], this[1]>;
86
+ description: string;
87
+ }
88
+ declare const Exclude: import("@ark/schema").GenericRoot<readonly [["T", unknown], ["U", unknown]], ExcludeHkt>;
89
+ declare class ExtractHkt extends Hkt<[unknown, unknown]> {
90
+ body: Extract<this[0], this[1]>;
91
+ description: string;
92
+ }
93
+ declare const Extract: import("@ark/schema").GenericRoot<readonly [["T", unknown], ["U", unknown]], ExtractHkt>;
94
+ export declare const arkTsGenerics: arkTsGenerics.module;
95
+ export declare namespace arkTsGenerics {
96
+ type module = Module<arkTsGenerics.$>;
97
+ type submodule = Submodule<$>;
98
+ type $ = {
99
+ Exclude: typeof Exclude.t;
100
+ Extract: typeof Extract.t;
101
+ Omit: typeof Omit.t;
102
+ Partial: typeof Partial.t;
103
+ Pick: typeof Pick.t;
104
+ Record: typeof Record.t;
105
+ Required: typeof Required.t;
106
+ };
107
+ }
108
+ export {};
@@ -0,0 +1,82 @@
1
+ import { genericNode, intrinsic, node } from "@ark/schema";
2
+ import { Hkt } from "@ark/util";
3
+ import { Scope } from "../scope.js";
4
+ export const arkTsKeywords = Scope.module({
5
+ bigint: intrinsic.bigint,
6
+ boolean: intrinsic.boolean,
7
+ false: intrinsic.false,
8
+ never: intrinsic.never,
9
+ null: intrinsic.null,
10
+ number: intrinsic.number,
11
+ object: intrinsic.object,
12
+ string: intrinsic.string,
13
+ symbol: intrinsic.symbol,
14
+ true: intrinsic.true,
15
+ unknown: intrinsic.unknown,
16
+ undefined: intrinsic.undefined
17
+ });
18
+ export const unknown = Scope.module({
19
+ root: intrinsic.unknown,
20
+ any: intrinsic.unknown
21
+ }, {
22
+ name: "unknown"
23
+ });
24
+ export const json = Scope.module({
25
+ root: intrinsic.jsonObject,
26
+ stringify: node("morph", {
27
+ in: intrinsic.jsonObject,
28
+ morphs: (data) => JSON.stringify(data),
29
+ declaredOut: intrinsic.string
30
+ })
31
+ }, {
32
+ name: "object.json"
33
+ });
34
+ export const object = Scope.module({
35
+ root: intrinsic.object,
36
+ json
37
+ }, {
38
+ name: "object"
39
+ });
40
+ class RecordHkt extends Hkt {
41
+ description = 'instantiate an object from an index signature and corresponding value type like `Record("string", "number")`';
42
+ }
43
+ const Record = genericNode(["K", intrinsic.key], "V")(args => ({
44
+ domain: "object",
45
+ index: {
46
+ signature: args.K,
47
+ value: args.V
48
+ }
49
+ }), RecordHkt);
50
+ class PickHkt extends Hkt {
51
+ description = 'pick a set of properties from an object like `Pick(User, "name | age")`';
52
+ }
53
+ const Pick = genericNode(["T", intrinsic.object], ["K", intrinsic.key])(args => args.T.pick(args.K), PickHkt);
54
+ class OmitHkt extends Hkt {
55
+ description = 'omit a set of properties from an object like `Omit(User, "age")`';
56
+ }
57
+ const Omit = genericNode(["T", intrinsic.object], ["K", intrinsic.key])(args => args.T.omit(args.K), OmitHkt);
58
+ class PartialHkt extends Hkt {
59
+ description = "make all named properties of an object optional like `Partial(User)`";
60
+ }
61
+ const Partial = genericNode(["T", intrinsic.object])(args => args.T.partial(), PartialHkt);
62
+ class RequiredHkt extends Hkt {
63
+ description = "make all named properties of an object required like `Required(User)`";
64
+ }
65
+ const Required = genericNode(["T", intrinsic.object])(args => args.T.required(), RequiredHkt);
66
+ class ExcludeHkt extends Hkt {
67
+ description = 'exclude branches of a union like `Exclude("boolean", "true")`';
68
+ }
69
+ const Exclude = genericNode("T", "U")(args => args.T.exclude(args.U), ExcludeHkt);
70
+ class ExtractHkt extends Hkt {
71
+ description = 'extract branches of a union like `Extract("0 | false | 1", "number")`';
72
+ }
73
+ const Extract = genericNode("T", "U")(args => args.T.extract(args.U), ExtractHkt);
74
+ export const arkTsGenerics = Scope.module({
75
+ Exclude,
76
+ Extract,
77
+ Omit,
78
+ Partial,
79
+ Pick,
80
+ Record,
81
+ Required
82
+ });