@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,63 @@
1
+ import { noSuggest, ZeroWidthSpace } from "./errors.js";
2
+ import { flatMorph } from "./flatMorph.js";
3
+ /**
4
+ * Object.entries wrapper providing narrowed types for objects with known sets
5
+ * of keys, e.g. those defined internally as configs
6
+ */
7
+ export const entriesOf = Object.entries;
8
+ export const fromEntries = (entries) => Object.fromEntries(entries);
9
+ export const keysOf = (o) => Object.keys(o);
10
+ export const isKeyOf = (k, o) => k in o;
11
+ export const hasKey = (o, k) => k in o;
12
+ // must be defined this way to avoid https://github.com/microsoft/TypeScript/issues/55049
13
+ export const hasDefinedKey = (o, k) => o[k] !== undefined;
14
+ export const InnerDynamicBase = class {
15
+ };
16
+ export class DynamicBase {
17
+ constructor(properties) {
18
+ Object.assign(this, properties);
19
+ }
20
+ }
21
+ export const NoopBase = class {
22
+ };
23
+ /** @ts-ignore (needed to extend `t`) **/
24
+ export class CastableBase extends NoopBase {
25
+ }
26
+ export const splitByKeys = (o, leftKeys) => {
27
+ const l = {};
28
+ const r = {};
29
+ let k;
30
+ for (k in o) {
31
+ if (k in leftKeys)
32
+ l[k] = o[k];
33
+ else
34
+ r[k] = o[k];
35
+ }
36
+ return [l, r];
37
+ };
38
+ export const pick = (o, keys) => splitByKeys(o, keys)[0];
39
+ export const omit = (o, keys) => splitByKeys(o, keys)[1];
40
+ export const isEmptyObject = (o) => Object.keys(o).length === 0;
41
+ export const stringAndSymbolicEntriesOf = (o) => [
42
+ ...Object.entries(o),
43
+ ...Object.getOwnPropertySymbols(o).map(k => [k, o[k]])
44
+ ];
45
+ /** Like Object.assign, but it will preserve getters instead of evaluating them. */
46
+ export const defineProperties = (base, merged) =>
47
+ // declared like this to avoid https://github.com/microsoft/TypeScript/issues/55049
48
+ Object.defineProperties(base, Object.getOwnPropertyDescriptors(merged));
49
+ /** Copies enumerable keys of o to a new object in alphabetical order */
50
+ export const withAlphabetizedKeys = (o) => {
51
+ const keys = Object.keys(o).sort();
52
+ const result = {};
53
+ for (let i = 0; i < keys.length; i++)
54
+ result[keys[i]] = o[keys[i]];
55
+ return result;
56
+ };
57
+ export const invert = (t) => flatMorph(t, (k, v) => [v, k]);
58
+ export const unset = noSuggest(`unset${ZeroWidthSpace}`);
59
+ export const enumValues = (tsEnum) => Object.values(tsEnum).filter(v => {
60
+ if (typeof v === "number")
61
+ return true;
62
+ return typeof tsEnum[v] !== "number";
63
+ });
@@ -0,0 +1,21 @@
1
+ export declare const arkUtilVersion = "0.56.0";
2
+ export declare const initialRegistryContents: {
3
+ version: string;
4
+ filename: string;
5
+ FileConstructor: typeof import("buffer").File;
6
+ };
7
+ export type InitialRegistryContents = typeof initialRegistryContents;
8
+ export interface ArkRegistry extends InitialRegistryContents {
9
+ [k: string]: unknown;
10
+ }
11
+ export declare const registry: ArkRegistry;
12
+ declare global {
13
+ export interface ArkEnv {
14
+ prototypes(): never;
15
+ }
16
+ export namespace ArkEnv {
17
+ type prototypes = ReturnType<ArkEnv["prototypes"]>;
18
+ }
19
+ }
20
+ export declare const register: (value: object | symbol) => string;
21
+ export declare const isDotAccessible: (keyName: string) => boolean;
@@ -0,0 +1,49 @@
1
+ import { domainOf } from "./domain.js";
2
+ import { throwInternalError } from "./errors.js";
3
+ import { isomorphic } from "./isomorphic.js";
4
+ import { FileConstructor, objectKindOf } from "./objectKinds.js";
5
+ // Eventually we can just import from package.json in the source itself
6
+ // but for now, import assertions are too unstable and it wouldn't support
7
+ // recent node versions (https://nodejs.org/api/esm.html#json-modules).
8
+ // For now, we assert this matches the package.json version via a unit test.
9
+ export const arkUtilVersion = "0.56.0";
10
+ export const initialRegistryContents = {
11
+ version: arkUtilVersion,
12
+ filename: isomorphic.fileName(),
13
+ FileConstructor
14
+ };
15
+ export const registry = initialRegistryContents;
16
+ const namesByResolution = new Map();
17
+ const nameCounts = Object.create(null);
18
+ export const register = (value) => {
19
+ const existingName = namesByResolution.get(value);
20
+ if (existingName)
21
+ return existingName;
22
+ let name = baseNameFor(value);
23
+ if (nameCounts[name])
24
+ name = `${name}${nameCounts[name]++}`;
25
+ else
26
+ nameCounts[name] = 1;
27
+ registry[name] = value;
28
+ namesByResolution.set(value, name);
29
+ return name;
30
+ };
31
+ export const isDotAccessible = (keyName) => /^[$A-Z_a-z][\w$]*$/.test(keyName);
32
+ const baseNameFor = (value) => {
33
+ switch (typeof value) {
34
+ case "object": {
35
+ if (value === null)
36
+ break;
37
+ const prefix = objectKindOf(value) ?? "object";
38
+ // convert to camelCase
39
+ return prefix[0].toLowerCase() + prefix.slice(1);
40
+ }
41
+ case "function":
42
+ return isDotAccessible(value.name) ? value.name : "fn";
43
+ case "symbol":
44
+ return value.description && isDotAccessible(value.description) ?
45
+ value.description
46
+ : "symbol";
47
+ }
48
+ return throwInternalError(`Unexpected attempt to register serializable value of type ${domainOf(value)}`);
49
+ };
@@ -0,0 +1,44 @@
1
+ import type { KeySet } from "./records.ts";
2
+ import { Backslash, type WhitespaceChar } from "./strings.ts";
3
+ export declare class Scanner<lookahead extends string = string> {
4
+ chars: string[];
5
+ i: number;
6
+ def: string;
7
+ constructor(def: string);
8
+ /** Get lookahead and advance scanner by one */
9
+ shift(): this["lookahead"];
10
+ get lookahead(): lookahead;
11
+ get nextLookahead(): string;
12
+ get length(): number;
13
+ shiftUntil(condition: Scanner.UntilCondition): string;
14
+ shiftUntilEscapable(condition: Scanner.UntilCondition): string;
15
+ shiftUntilLookahead(charOrSet: string | KeySet): string;
16
+ shiftUntilNonWhitespace(): string;
17
+ jumpToIndex(i: number): void;
18
+ jumpForward(count: number): void;
19
+ get location(): number;
20
+ get unscanned(): string;
21
+ get scanned(): string;
22
+ sliceChars(start: number, end?: number): string;
23
+ lookaheadIs<char extends lookahead>(char: char): this is Scanner<char>;
24
+ lookaheadIsIn<keySet extends KeySet>(tokens: keySet): this is Scanner<Extract<keyof keySet, string>>;
25
+ }
26
+ export declare namespace Scanner {
27
+ type UntilCondition = (scanner: Scanner, shifted: string) => boolean;
28
+ type shift<lookahead extends string, unscanned extends string> = `${lookahead}${unscanned}`;
29
+ type shiftUntil<unscanned extends string, terminator extends string, appendTo extends string = ""> = unscanned extends shift<infer lookahead, infer nextUnscanned> ? lookahead extends terminator ? [
30
+ appendTo,
31
+ unscanned
32
+ ] : shiftUntil<nextUnscanned, terminator, `${appendTo}${lookahead}`> : [appendTo, ""];
33
+ type shiftUntilEscapable<unscanned extends string, terminator extends string, escapeEscape extends Backslash | "", appendTo extends string = ""> = unscanned extends shift<infer lookahead, infer nextUnscanned> ? lookahead extends terminator ? [appendTo, unscanned] : lookahead extends Backslash ? nextUnscanned extends (shift<infer nextLookahead, infer postEscapedUnscanned>) ? shiftUntilEscapable<postEscapedUnscanned, terminator, escapeEscape, `${appendTo}${nextLookahead extends terminator ? "" : nextLookahead extends Backslash ? escapeEscape : Backslash}${nextLookahead}`> : [`${appendTo}${Backslash}`, ""] : shiftUntilEscapable<nextUnscanned, terminator, escapeEscape, `${appendTo}${lookahead}`> : [appendTo, ""];
34
+ type shiftUntilNot<unscanned extends string, nonTerminator extends string, appendTo extends string = ""> = unscanned extends shift<infer lookahead, infer nextUnscanned> ? lookahead extends nonTerminator ? shiftUntilNot<nextUnscanned, nonTerminator, `${appendTo}${lookahead}`> : [appendTo, unscanned] : [appendTo, ""];
35
+ type skipWhitespace<unscanned extends string> = shiftUntilNot<unscanned, WhitespaceChar>[1];
36
+ type shiftResult<scanned extends string, unscanned extends string> = [
37
+ scanned,
38
+ unscanned
39
+ ];
40
+ }
41
+ export declare const writeUnmatchedGroupCloseMessage: <char extends string, unscanned extends string>(char: char, unscanned: unscanned) => writeUnmatchedGroupCloseMessage<char, unscanned>;
42
+ export type writeUnmatchedGroupCloseMessage<char extends string, unscanned extends string> = `Unmatched ${char}${unscanned extends "" ? "" : ` before ${unscanned}`}`;
43
+ export declare const writeUnclosedGroupMessage: <missingChar extends string>(missingChar: missingChar) => writeUnclosedGroupMessage<missingChar>;
44
+ export type writeUnclosedGroupMessage<missingChar extends string> = `Missing ${missingChar}`;
@@ -0,0 +1,87 @@
1
+ import { Backslash, whitespaceChars } from "./strings.js";
2
+ export class Scanner {
3
+ chars;
4
+ i;
5
+ def;
6
+ constructor(def) {
7
+ this.def = def;
8
+ this.chars = [...def];
9
+ this.i = 0;
10
+ }
11
+ /** Get lookahead and advance scanner by one */
12
+ shift() {
13
+ return (this.chars[this.i++] ?? "");
14
+ }
15
+ get lookahead() {
16
+ return (this.chars[this.i] ?? "");
17
+ }
18
+ get nextLookahead() {
19
+ return this.chars[this.i + 1] ?? "";
20
+ }
21
+ get length() {
22
+ return this.chars.length;
23
+ }
24
+ shiftUntil(condition) {
25
+ let shifted = "";
26
+ while (this.lookahead) {
27
+ if (condition(this, shifted))
28
+ break;
29
+ else
30
+ shifted += this.shift();
31
+ }
32
+ return shifted;
33
+ }
34
+ shiftUntilEscapable(condition) {
35
+ let shifted = "";
36
+ while (this.lookahead) {
37
+ if (this.lookahead === Backslash) {
38
+ this.shift();
39
+ if (condition(this, shifted))
40
+ shifted += this.shift();
41
+ else if (this.lookahead === Backslash)
42
+ shifted += this.shift();
43
+ else
44
+ shifted += `${Backslash}${this.shift()}`;
45
+ }
46
+ else if (condition(this, shifted))
47
+ break;
48
+ else
49
+ shifted += this.shift();
50
+ }
51
+ return shifted;
52
+ }
53
+ shiftUntilLookahead(charOrSet) {
54
+ return typeof charOrSet === "string" ?
55
+ this.shiftUntil(s => s.lookahead === charOrSet)
56
+ : this.shiftUntil(s => s.lookahead in charOrSet);
57
+ }
58
+ shiftUntilNonWhitespace() {
59
+ return this.shiftUntil(() => !(this.lookahead in whitespaceChars));
60
+ }
61
+ jumpToIndex(i) {
62
+ this.i = i < 0 ? this.length + i : i;
63
+ }
64
+ jumpForward(count) {
65
+ this.i += count;
66
+ }
67
+ get location() {
68
+ return this.i;
69
+ }
70
+ get unscanned() {
71
+ return this.chars.slice(this.i, this.length).join("");
72
+ }
73
+ get scanned() {
74
+ return this.chars.slice(0, this.i).join("");
75
+ }
76
+ sliceChars(start, end) {
77
+ return this.chars.slice(start, end).join("");
78
+ }
79
+ lookaheadIs(char) {
80
+ return this.lookahead === char;
81
+ }
82
+ lookaheadIsIn(tokens) {
83
+ return this.lookahead in tokens;
84
+ }
85
+ }
86
+ export const writeUnmatchedGroupCloseMessage = (char, unscanned) => `Unmatched ${char}${(unscanned === "" ? "" : ` before ${unscanned}`)}`;
87
+ export const writeUnclosedGroupMessage = (missingChar) => `Missing ${missingChar}`;
@@ -0,0 +1,34 @@
1
+ import type { array } from "./arrays.ts";
2
+ import { type Primitive } from "./domain.ts";
3
+ export type SerializationOptions = {
4
+ onCycle?: (value: object) => string;
5
+ onSymbol?: (value: symbol) => string;
6
+ onFunction?: (value: Function) => string;
7
+ onUndefined?: string;
8
+ onBigInt?: (value: bigint) => string;
9
+ };
10
+ export type JsonStructure = JsonObject | JsonArray;
11
+ export interface JsonObject {
12
+ [k: string]: Json;
13
+ }
14
+ export type JsonArray = Json[];
15
+ export type JsonPrimitive = string | boolean | number | null;
16
+ export type Json = JsonStructure | JsonPrimitive;
17
+ export declare const snapshot: <t>(data: t, opts?: SerializationOptions) => snapshot<t>;
18
+ export type snapshot<t, depth extends 1[] = []> = unknown extends t ? unknown : t extends Primitive ? snapshotPrimitive<t> : t extends {
19
+ toJSON: () => infer serialized;
20
+ } ? serialized : t extends Function ? `Function(${string})` : t extends Date ? string : depth["length"] extends 10 ? unknown : t extends array<infer item> ? array<snapshot<item, [...depth, 1]>> : {
21
+ [k in keyof t as snapshotPrimitive<k>]: snapshot<t[k], [...depth, 1]>;
22
+ };
23
+ type snapshotPrimitive<t> = t extends symbol ? `Symbol(${string})` : t;
24
+ export type PrintableOptions = {
25
+ indent?: number;
26
+ quoteKeys?: boolean;
27
+ };
28
+ export declare const print: (data: unknown, opts?: PrintableOptions) => void;
29
+ export declare const printable: (data: unknown, opts?: PrintableOptions) => string;
30
+ /**
31
+ * Converts a Date instance to a human-readable description relative to its precision
32
+ */
33
+ export declare const describeCollapsibleDate: (date: Date) => string;
34
+ export {};
@@ -0,0 +1,150 @@
1
+ import { domainOf } from "./domain.js";
2
+ import { serializePrimitive } from "./primitive.js";
3
+ import { stringAndSymbolicEntriesOf } from "./records.js";
4
+ import { isDotAccessible, register } from "./registry.js";
5
+ export const snapshot = (data, opts = {}) => _serialize(data, {
6
+ onUndefined: `$ark.undefined`,
7
+ onBigInt: n => `$ark.bigint-${n}`,
8
+ ...opts
9
+ }, []);
10
+ export const print = (data, opts) => console.log(printable(data, opts));
11
+ export const printable = (data, opts) => {
12
+ switch (domainOf(data)) {
13
+ case "object":
14
+ const o = data;
15
+ const ctorName = o.constructor?.name ?? "Object";
16
+ return (ctorName === "Object" || ctorName === "Array" ?
17
+ opts?.quoteKeys === false ?
18
+ stringifyUnquoted(o, opts?.indent ?? 0, "")
19
+ : JSON.stringify(_serialize(o, printableOpts, []), null, opts?.indent)
20
+ : stringifyUnquoted(o, opts?.indent ?? 0, ""));
21
+ case "symbol":
22
+ return printableOpts.onSymbol(data);
23
+ default:
24
+ return serializePrimitive(data);
25
+ }
26
+ };
27
+ const stringifyUnquoted = (value, indent, currentIndent) => {
28
+ if (typeof value === "function")
29
+ return printableOpts.onFunction(value);
30
+ if (typeof value !== "object" || value === null)
31
+ return serializePrimitive(value);
32
+ const nextIndent = currentIndent + " ".repeat(indent);
33
+ if (Array.isArray(value)) {
34
+ if (value.length === 0)
35
+ return "[]";
36
+ const items = value
37
+ .map(item => stringifyUnquoted(item, indent, nextIndent))
38
+ .join(",\n" + nextIndent);
39
+ return indent ? `[\n${nextIndent}${items}\n${currentIndent}]` : `[${items}]`;
40
+ }
41
+ const ctorName = value.constructor?.name ?? "Object";
42
+ if (ctorName === "Object") {
43
+ const keyValues = stringAndSymbolicEntriesOf(value).map(([key, val]) => {
44
+ const stringifiedKey = typeof key === "symbol" ? printableOpts.onSymbol(key)
45
+ : isDotAccessible(key) ? key
46
+ : JSON.stringify(key);
47
+ const stringifiedValue = stringifyUnquoted(val, indent, nextIndent);
48
+ return `${nextIndent}${stringifiedKey}: ${stringifiedValue}`;
49
+ });
50
+ if (keyValues.length === 0)
51
+ return "{}";
52
+ return indent ?
53
+ `{\n${keyValues.join(",\n")}\n${currentIndent}}`
54
+ : `{${keyValues.join(", ")}}`;
55
+ }
56
+ if (value instanceof Date)
57
+ return describeCollapsibleDate(value);
58
+ if ("expression" in value && typeof value.expression === "string")
59
+ return value.expression;
60
+ return ctorName;
61
+ };
62
+ const printableOpts = {
63
+ onCycle: () => "(cycle)",
64
+ onSymbol: v => `Symbol(${register(v)})`,
65
+ onFunction: v => `Function(${register(v)})`
66
+ };
67
+ const _serialize = (data, opts, seen) => {
68
+ switch (domainOf(data)) {
69
+ case "object": {
70
+ const o = data;
71
+ if ("toJSON" in o && typeof o.toJSON === "function")
72
+ return o.toJSON();
73
+ if (typeof o === "function")
74
+ return printableOpts.onFunction(o);
75
+ if (seen.includes(o))
76
+ return "(cycle)";
77
+ const nextSeen = [...seen, o];
78
+ if (Array.isArray(o))
79
+ return o.map(item => _serialize(item, opts, nextSeen));
80
+ if (o instanceof Date)
81
+ return o.toDateString();
82
+ const result = {};
83
+ for (const k in o)
84
+ result[k] = _serialize(o[k], opts, nextSeen);
85
+ for (const s of Object.getOwnPropertySymbols(o)) {
86
+ result[opts.onSymbol?.(s) ?? s.toString()] = _serialize(o[s], opts, nextSeen);
87
+ }
88
+ return result;
89
+ }
90
+ case "symbol":
91
+ return printableOpts.onSymbol(data);
92
+ case "bigint":
93
+ return opts.onBigInt?.(data) ?? `${data}n`;
94
+ case "undefined":
95
+ return opts.onUndefined ?? "undefined";
96
+ case "string":
97
+ return data.replace(/\\/g, "\\\\");
98
+ default:
99
+ return data;
100
+ }
101
+ };
102
+ /**
103
+ * Converts a Date instance to a human-readable description relative to its precision
104
+ */
105
+ export const describeCollapsibleDate = (date) => {
106
+ const year = date.getFullYear();
107
+ const month = date.getMonth();
108
+ const dayOfMonth = date.getDate();
109
+ const hours = date.getHours();
110
+ const minutes = date.getMinutes();
111
+ const seconds = date.getSeconds();
112
+ const milliseconds = date.getMilliseconds();
113
+ if (month === 0 &&
114
+ dayOfMonth === 1 &&
115
+ hours === 0 &&
116
+ minutes === 0 &&
117
+ seconds === 0 &&
118
+ milliseconds === 0)
119
+ return `${year}`;
120
+ const datePortion = `${months[month]} ${dayOfMonth}, ${year}`;
121
+ if (hours === 0 && minutes === 0 && seconds === 0 && milliseconds === 0)
122
+ return datePortion;
123
+ let timePortion = date.toLocaleTimeString();
124
+ const suffix = timePortion.endsWith(" AM") || timePortion.endsWith(" PM") ?
125
+ timePortion.slice(-3)
126
+ : "";
127
+ if (suffix)
128
+ timePortion = timePortion.slice(0, -suffix.length);
129
+ if (milliseconds)
130
+ timePortion += `.${pad(milliseconds, 3)}`;
131
+ else if (timeWithUnnecessarySeconds.test(timePortion))
132
+ timePortion = timePortion.slice(0, -3);
133
+ return `${timePortion + suffix}, ${datePortion}`;
134
+ };
135
+ const months = [
136
+ "January",
137
+ "February",
138
+ "March",
139
+ "April",
140
+ "May",
141
+ "June",
142
+ "July",
143
+ "August",
144
+ "September",
145
+ "October",
146
+ "November",
147
+ "December"
148
+ ];
149
+ const timeWithUnnecessarySeconds = /:\d\d:00$/;
150
+ const pad = (value, length) => String(value).padStart(length, "0");
@@ -0,0 +1,33 @@
1
+ export declare const capitalize: <s extends string>(s: s) => Capitalize<s>;
2
+ export declare const uncapitalize: <s extends string>(s: s) => Uncapitalize<s>;
3
+ export type firstChar<s extends string> = s extends `${infer head}${string}` ? head : "";
4
+ export type charsAfterFirst<s extends string> = s extends `${string}${infer tail}` ? tail : "";
5
+ export type lastChar<s extends string> = s extends `${infer head}${infer tail}` ? tail extends "" ? head : lastChar<tail> : s;
6
+ export type charsBeforeLast<s extends string> = s extends `${infer head}${infer tail}` ? tail extends "" ? "" : `${head}${charsBeforeLast<tail>}` : "";
7
+ export type contains<s extends string, sub extends string> = s extends `${string}${sub}${string}` ? true : false;
8
+ export declare const anchoredRegex: (regex: RegExp | string) => RegExp;
9
+ export declare const deanchoredRegex: (regex: RegExp | string) => RegExp;
10
+ export declare const anchoredSource: (regex: RegExp | string) => string;
11
+ export declare const deanchoredSource: (regex: RegExp | string) => string;
12
+ export declare const RegexPatterns: {
13
+ negativeLookahead: (pattern: string) => `(?!${string})`;
14
+ nonCapturingGroup: (pattern: string) => `(?:${string})`;
15
+ };
16
+ export declare const Backslash = "\\";
17
+ export type Backslash = typeof Backslash;
18
+ export declare const whitespaceChars: {
19
+ readonly " ": 1;
20
+ readonly "\n": 1;
21
+ readonly "\t": 1;
22
+ };
23
+ export type WhitespaceChar = keyof typeof whitespaceChars;
24
+ export type trim<s extends string> = trimEnd<trimStart<s>>;
25
+ export type trimStart<s extends string> = s extends `${WhitespaceChar}${infer tail}` ? trimEnd<tail> : s;
26
+ export type trimEnd<s extends string> = s extends `${infer init}${WhitespaceChar}` ? trimEnd<init> : s;
27
+ export type isStringLiteral<t> = [
28
+ t
29
+ ] extends [string] ? [
30
+ string
31
+ ] extends [t] ? false : Uppercase<t> extends Uppercase<Lowercase<t>> ? Lowercase<t> extends Lowercase<Uppercase<t>> ? true : false : false : false;
32
+ export declare const emojiToUnicode: (emoji: string) => string;
33
+ export declare const alphabet: readonly ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
@@ -0,0 +1,59 @@
1
+ export const capitalize = (s) => (s[0].toUpperCase() + s.slice(1));
2
+ export const uncapitalize = (s) => (s[0].toLowerCase() + s.slice(1));
3
+ export const anchoredRegex = (regex) => new RegExp(anchoredSource(regex), typeof regex === "string" ? "" : regex.flags);
4
+ export const deanchoredRegex = (regex) => new RegExp(deanchoredSource(regex), typeof regex === "string" ? "" : regex.flags);
5
+ export const anchoredSource = (regex) => {
6
+ const source = typeof regex === "string" ? regex : regex.source;
7
+ return `^(?:${source})$`;
8
+ };
9
+ export const deanchoredSource = (regex) => {
10
+ const source = typeof regex === "string" ? regex : regex.source;
11
+ if (source.startsWith("^(?:") && source.endsWith(")$"))
12
+ return source.slice(4, -2);
13
+ return source.slice(source[0] === "^" ? 1 : 0, source[source.length - 1] === "$" ? -1 : undefined);
14
+ };
15
+ export const RegexPatterns = {
16
+ negativeLookahead: (pattern) => `(?!${pattern})`,
17
+ nonCapturingGroup: (pattern) => `(?:${pattern})`
18
+ };
19
+ export const Backslash = "\\";
20
+ export const whitespaceChars = {
21
+ " ": 1,
22
+ "\n": 1,
23
+ "\t": 1
24
+ };
25
+ export const emojiToUnicode = (emoji) => emoji
26
+ .split("")
27
+ .map(char => {
28
+ const codePoint = char.codePointAt(0);
29
+ return codePoint ? `\\u${codePoint.toString(16).padStart(4, "0")}` : "";
30
+ })
31
+ .join("");
32
+ export const alphabet = [
33
+ "a",
34
+ "b",
35
+ "c",
36
+ "d",
37
+ "e",
38
+ "f",
39
+ "g",
40
+ "h",
41
+ "i",
42
+ "j",
43
+ "k",
44
+ "l",
45
+ "m",
46
+ "n",
47
+ "o",
48
+ "p",
49
+ "q",
50
+ "r",
51
+ "s",
52
+ "t",
53
+ "u",
54
+ "v",
55
+ "w",
56
+ "x",
57
+ "y",
58
+ "z"
59
+ ];
@@ -0,0 +1,89 @@
1
+ import type { array } from "./arrays.ts";
2
+ import type { conform, satisfy, show } from "./generics.ts";
3
+ import type { intersectParameters } from "./intersections.ts";
4
+ import { type Constructor } from "./objectKinds.ts";
5
+ import { NoopBase } from "./records.ts";
6
+ export type TraitImplementation = <traits extends TraitConstructor[], implementation extends implementationOf<s>, s extends CompositionState = composeTraits<[
7
+ ...traits,
8
+ implementation
9
+ ], "implementation">, cls extends TraitConstructor = TraitConstructor<s["params"], s["implemented"], s["statics"], s["abstractMethods"], s["abstractProps"], s["abstractStatics"]>>(...args: [...traits, implementation & ThisType<InstanceType<cls>>]) => cls;
10
+ export type TraitComposition = <traits extends TraitConstructor[], s extends CompositionState = composeTraits<traits, "abstract">>(...traits: conform<traits, s["validated"]>) => TraitConstructor<s["params"], s["implemented"], s["statics"], s["abstractMethods"], s["abstractProps"], s["abstractStatics"]>;
11
+ export declare const hasTrait: (traitClass: Constructor) => (o: unknown) => boolean;
12
+ export type TraitDeclaration = {
13
+ abstractMethods?: object;
14
+ abstractProps?: object;
15
+ abstractStatics?: object;
16
+ dynamicBase?: object;
17
+ };
18
+ /** @ts-ignore required to extend NoopBase */
19
+ export declare abstract class Trait<d extends TraitDeclaration = {}, abstractMethods extends object = d["abstractMethods"] & {}, abstractProps extends object = d["abstractProps"] & {}, abstractStatics extends object = d["abstractStatics"] & {}, dynamicBase extends object = d["dynamicBase"] & {}> extends NoopBase<abstractMethods & abstractProps & dynamicBase> {
20
+ abstractMethods: abstractMethods;
21
+ abstractProps: abstractProps;
22
+ abstractStatic: abstractStatics;
23
+ static get [Symbol.hasInstance](): (o: unknown) => boolean;
24
+ traitsOf(): readonly TraitConstructor[];
25
+ }
26
+ export declare const compose: TraitComposition;
27
+ export declare const implement: TraitImplementation;
28
+ export type TraitConstructor<params extends array = any[], instance extends object = {}, statics = {}, abstractMethods extends object = {}, abstractProps extends object = {}, abstractStatics extends object = {}> = statics & (new (...args: params) => Trait<{
29
+ abstractMethods: abstractMethods;
30
+ abstractProps: abstractProps;
31
+ abstractStatics: abstractStatics;
32
+ }> & instance);
33
+ type CompositionState = {
34
+ validated: array;
35
+ remaining: array;
36
+ params: array;
37
+ kind: TraitCompositionKind;
38
+ implemented: object;
39
+ abstractMethods: object;
40
+ abstractProps: object;
41
+ abstractStatics: object;
42
+ statics: object;
43
+ };
44
+ export type TraitCompositionKind = "abstract" | "implementation";
45
+ export type composeTraits<traits extends array, kind extends TraitCompositionKind> = _compose<{
46
+ validated: [];
47
+ remaining: traits;
48
+ kind: kind;
49
+ params: [];
50
+ implemented: {};
51
+ abstractMethods: {};
52
+ abstractProps: {};
53
+ abstractStatics: {};
54
+ statics: {};
55
+ }>;
56
+ type intersectImplementations<l, r> = {
57
+ [k in keyof l]: k extends keyof r ? l[k] extends (...args: infer lArgs) => infer lReturn ? r[k] extends (...args: infer rArgs) => infer rReturn ? (...args: intersectParameters<lArgs, rArgs>) => lReturn & rReturn : l[k] & r[k] : l[k] & r[k] : l[k];
58
+ } & Omit<r, keyof l>;
59
+ type _compose<s extends CompositionState> = s["remaining"] extends (readonly [
60
+ TraitConstructor<infer params, infer instance, infer statics, infer abstractMethods, infer abstractProps, infer abstractStatics>,
61
+ ...infer tail
62
+ ]) ? _compose<{
63
+ validated: [...s["validated"], s["remaining"][0]];
64
+ remaining: tail;
65
+ kind: s["kind"];
66
+ params: intersectParameters<s["params"], params>;
67
+ implemented: intersectImplementations<s["implemented"], Omit<instance, keyof abstractMethods | keyof abstractProps>>;
68
+ statics: intersectImplementations<s["statics"], Omit<statics, keyof abstractStatics>>;
69
+ abstractMethods: intersectImplementations<s["abstractMethods"], abstractMethods>;
70
+ abstractProps: intersectImplementations<s["abstractProps"], abstractProps>;
71
+ abstractStatics: intersectImplementations<s["abstractStatics"], abstractStatics>;
72
+ }> : finalizeState<s>;
73
+ type finalizeState<s extends CompositionState> = satisfy<CompositionState, {
74
+ params: s["params"];
75
+ validated: s["validated"];
76
+ remaining: s["remaining"];
77
+ kind: s["kind"];
78
+ implemented: show<s["implemented"]>;
79
+ statics: show<Omit<s["statics"], keyof typeof Trait>>;
80
+ abstractMethods: show<Omit<s["abstractMethods"], keyof s["implemented"]>>;
81
+ abstractProps: show<Omit<s["abstractProps"], keyof s["implemented"]>>;
82
+ abstractStatics: show<Omit<s["abstractStatics"], keyof s["statics"]>>;
83
+ }>;
84
+ export type implementationOf<s extends CompositionState> = s["abstractMethods"] & ({} extends s["abstractProps"] ? {} : {
85
+ construct: (...args: s["params"]) => s["abstractProps"];
86
+ }) & ({} extends s["abstractStatics"] ? {} : {
87
+ statics: s["abstractStatics"];
88
+ });
89
+ export {};