functionalscript 0.13.1 → 0.14.1

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 (361) hide show
  1. package/{types → fs}/asn.1/module.f.d.ts +1 -1
  2. package/{types → fs}/asn.1/module.f.js +3 -3
  3. package/{types → fs}/asn.1/test.f.js +2 -2
  4. package/{types → fs}/base128/module.f.d.ts +1 -1
  5. package/{types → fs}/base128/module.f.js +1 -1
  6. package/{types → fs}/base128/test.f.js +2 -2
  7. package/{bnf → fs/bnf}/data/module.f.d.ts +1 -1
  8. package/{cas → fs/cas}/module.f.d.ts +4 -4
  9. package/{cas → fs/cas}/module.f.js +1 -1
  10. package/{types → fs}/cbase32/module.f.d.ts +2 -2
  11. package/{types → fs}/cbase32/module.f.js +1 -1
  12. package/{types → fs}/cbase32/test.f.js +1 -1
  13. package/fs/ci/bun/module.f.d.ts +2 -0
  14. package/fs/ci/bun/module.f.js +20 -0
  15. package/fs/ci/common/module.f.d.ts +43 -0
  16. package/fs/ci/common/module.f.js +32 -0
  17. package/fs/ci/config/module.f.d.ts +25 -0
  18. package/fs/ci/config/module.f.js +34 -0
  19. package/fs/ci/deno/module.f.d.ts +2 -0
  20. package/fs/ci/deno/module.f.js +13 -0
  21. package/{ci → fs/ci}/module.f.d.ts +1 -1
  22. package/fs/ci/module.f.js +43 -0
  23. package/fs/ci/node/module.f.d.ts +6 -0
  24. package/fs/ci/node/module.f.js +36 -0
  25. package/fs/ci/playwright/module.f.d.ts +2 -0
  26. package/fs/ci/playwright/module.f.js +23 -0
  27. package/fs/ci/rust/module.f.d.ts +2 -0
  28. package/fs/ci/rust/module.f.js +49 -0
  29. package/{dev/tf → fs/ci}/test.f.d.ts +2 -1
  30. package/fs/ci/test.f.js +40 -0
  31. package/{crypto → fs/crypto}/secp/module.f.d.ts +1 -2
  32. package/{dev → fs/dev}/module.f.d.ts +2 -0
  33. package/{dev → fs/dev}/module.f.js +5 -0
  34. package/{dev → fs/dev}/tf/all.test.js +7 -5
  35. package/{dev → fs/dev}/tf/module.f.d.ts +1 -1
  36. package/{dev → fs/dev}/tf/module.f.js +12 -9
  37. package/fs/dev/tf/test.f.d.ts +16 -0
  38. package/fs/dev/tf/test.f.js +22 -0
  39. package/fs/dev/version/module.f.d.ts +3 -0
  40. package/{djs → fs/djs}/tokenizer/module.f.js +3 -3
  41. package/{djs/parser-new → fs/djs/tokenizer-new}/test.f.d.ts +2 -1
  42. package/fs/djs/tokenizer-new/test.f.js +894 -0
  43. package/{js → fs/js}/tokenizer/module.f.js +34 -34
  44. package/{json → fs/json}/tokenizer/module.f.js +1 -1
  45. package/{path → fs/path}/module.f.d.ts +1 -1
  46. package/fs/sul/id/module.f.d.ts +33 -0
  47. package/fs/sul/id/module.f.js +94 -0
  48. package/fs/sul/id/test.f.d.ts +21 -0
  49. package/fs/sul/id/test.f.js +75 -0
  50. package/fs/sul/level/hash/module.f.d.ts +38 -0
  51. package/fs/sul/level/hash/module.f.js +43 -0
  52. package/fs/sul/level/hash/test.f.d.ts +14 -0
  53. package/fs/sul/level/hash/test.f.js +112 -0
  54. package/fs/sul/level/literal/module.f.d.ts +64 -0
  55. package/fs/sul/level/literal/module.f.js +88 -0
  56. package/fs/sul/level/literal/test.f.d.ts +12 -0
  57. package/fs/sul/level/literal/test.f.js +722 -0
  58. package/fs/sul/module.f.d.ts +23 -0
  59. package/fs/sul/module.f.js +46 -0
  60. package/fs/sul/test.f.d.ts +10 -0
  61. package/fs/sul/test.f.js +47 -0
  62. package/{text → fs/text}/module.f.d.ts +1 -1
  63. package/{text → fs/text}/utf16/module.f.js +8 -8
  64. package/{text → fs/text}/utf8/module.f.js +2 -2
  65. package/{types → fs/types}/bit_vec/module.f.d.ts +13 -1
  66. package/{types → fs/types}/bit_vec/module.f.js +33 -15
  67. package/{types → fs/types}/effects/module.f.d.ts +1 -0
  68. package/{types → fs/types}/effects/node/virtual/module.f.d.ts +3 -3
  69. package/{types → fs/types}/function/operator/module.f.d.ts +1 -1
  70. package/{types → fs/types}/function/operator/module.f.js +1 -1
  71. package/{types → fs/types}/list/module.f.js +1 -1
  72. package/fs/types/patricia_trie/module.f.d.ts +25 -0
  73. package/fs/types/patricia_trie/module.f.js +35 -0
  74. package/fs/types/patricia_trie/test.f.d.ts +8 -0
  75. package/fs/types/patricia_trie/test.f.js +121 -0
  76. package/{types → fs/types}/rtti/module.f.d.ts +12 -1
  77. package/fs/types/rtti/module.f.js +100 -0
  78. package/fs/types/rtti/parse/module.f.d.ts +32 -0
  79. package/fs/types/rtti/parse/module.f.js +113 -0
  80. package/fs/types/rtti/parse/test.f.d.ts +116 -0
  81. package/fs/types/rtti/parse/test.f.js +345 -0
  82. package/fs/types/rtti/test.f.d.ts +34 -0
  83. package/fs/types/rtti/test.f.js +123 -0
  84. package/fs/types/rtti/validate/module.f.d.ts +80 -0
  85. package/{types → fs/types}/rtti/validate/module.f.js +33 -25
  86. package/{types → fs/types}/rtti/validate/test.f.d.ts +23 -0
  87. package/{types → fs/types}/rtti/validate/test.f.js +67 -0
  88. package/{types → fs/types}/uint8array/module.f.d.ts +2 -2
  89. package/package.json +8 -8
  90. package/ci/module.f.js +0 -183
  91. package/dev/tf/test.f.js +0 -5
  92. package/dev/version/module.f.d.ts +0 -3
  93. package/djs/parser-new/test.f.js +0 -202
  94. package/types/rtti/module.f.js +0 -27
  95. package/types/rtti/test.f.d.ts +0 -6
  96. package/types/rtti/test.f.js +0 -22
  97. package/types/rtti/validate/module.f.d.ts +0 -50
  98. /package/{types → fs}/asn.1/test.f.d.ts +0 -0
  99. /package/{cas → fs/base128}/test.f.d.ts +0 -0
  100. /package/{bnf → fs/bnf}/data/module.f.js +0 -0
  101. /package/{bnf → fs/bnf}/data/test.f.d.ts +0 -0
  102. /package/{bnf → fs/bnf}/data/test.f.js +0 -0
  103. /package/{bnf → fs/bnf}/module.f.d.ts +0 -0
  104. /package/{bnf → fs/bnf}/module.f.js +0 -0
  105. /package/{bnf → fs/bnf}/test.f.d.ts +0 -0
  106. /package/{bnf → fs/bnf}/test.f.js +0 -0
  107. /package/{bnf → fs/bnf}/testlib.f.d.ts +0 -0
  108. /package/{bnf → fs/bnf}/testlib.f.js +0 -0
  109. /package/{types/base128 → fs/cas}/test.f.d.ts +0 -0
  110. /package/{cas → fs/cas}/test.f.js +0 -0
  111. /package/{types → fs}/cbase32/test.f.d.ts +0 -0
  112. /package/{crypto → fs/crypto}/hmac/module.f.d.ts +0 -0
  113. /package/{crypto → fs/crypto}/hmac/module.f.js +0 -0
  114. /package/{crypto → fs/crypto}/hmac/test.f.d.ts +0 -0
  115. /package/{crypto → fs/crypto}/hmac/test.f.js +0 -0
  116. /package/{crypto → fs/crypto}/secp/module.f.js +0 -0
  117. /package/{crypto → fs/crypto}/secp/test.f.d.ts +0 -0
  118. /package/{crypto → fs/crypto}/secp/test.f.js +0 -0
  119. /package/{crypto → fs/crypto}/sha2/module.f.d.ts +0 -0
  120. /package/{crypto → fs/crypto}/sha2/module.f.js +0 -0
  121. /package/{crypto → fs/crypto}/sha2/test.f.d.ts +0 -0
  122. /package/{crypto → fs/crypto}/sha2/test.f.js +0 -0
  123. /package/{crypto → fs/crypto}/sign/module.f.d.ts +0 -0
  124. /package/{crypto → fs/crypto}/sign/module.f.js +0 -0
  125. /package/{crypto → fs/crypto}/sign/test.f.d.ts +0 -0
  126. /package/{crypto → fs/crypto}/sign/test.f.js +0 -0
  127. /package/{dev → fs/dev}/index/module.f.d.ts +0 -0
  128. /package/{dev → fs/dev}/index/module.f.js +0 -0
  129. /package/{dev → fs/dev}/test.f.d.ts +0 -0
  130. /package/{dev → fs/dev}/test.f.js +0 -0
  131. /package/{dev → fs/dev}/tf/all.test.d.ts +0 -0
  132. /package/{dev → fs/dev}/version/module.f.js +0 -0
  133. /package/{dev → fs/dev}/version/test.f.d.ts +0 -0
  134. /package/{dev → fs/dev}/version/test.f.js +0 -0
  135. /package/{djs → fs/djs}/ast/module.f.d.ts +0 -0
  136. /package/{djs → fs/djs}/ast/module.f.js +0 -0
  137. /package/{djs → fs/djs}/ast/test.f.d.ts +0 -0
  138. /package/{djs → fs/djs}/ast/test.f.js +0 -0
  139. /package/{djs → fs/djs}/examples/input.f.d.ts +0 -0
  140. /package/{djs → fs/djs}/examples/input.f.js +0 -0
  141. /package/{djs → fs/djs}/examples/m.f.d.ts +0 -0
  142. /package/{djs → fs/djs}/examples/m.f.js +0 -0
  143. /package/{djs → fs/djs}/module.f.d.ts +0 -0
  144. /package/{djs → fs/djs}/module.f.js +0 -0
  145. /package/{djs → fs/djs}/parser/module.f.d.ts +0 -0
  146. /package/{djs → fs/djs}/parser/module.f.js +0 -0
  147. /package/{djs → fs/djs}/parser/test.f.d.ts +0 -0
  148. /package/{djs → fs/djs}/parser/test.f.js +0 -0
  149. /package/{djs → fs/djs}/serializer/module.f.d.ts +0 -0
  150. /package/{djs → fs/djs}/serializer/module.f.js +0 -0
  151. /package/{djs → fs/djs}/serializer/test.f.d.ts +0 -0
  152. /package/{djs → fs/djs}/serializer/test.f.js +0 -0
  153. /package/{djs → fs/djs}/tokenizer/module.f.d.ts +0 -0
  154. /package/{djs → fs/djs}/tokenizer/test.f.d.ts +0 -0
  155. /package/{djs → fs/djs}/tokenizer/test.f.js +0 -0
  156. /package/{djs/parser-new → fs/djs/tokenizer-new}/module.f.d.ts +0 -0
  157. /package/{djs/parser-new → fs/djs/tokenizer-new}/module.f.js +0 -0
  158. /package/{djs → fs/djs}/transpiler/module.f.d.ts +0 -0
  159. /package/{djs → fs/djs}/transpiler/module.f.js +0 -0
  160. /package/{djs → fs/djs}/transpiler/test.f.d.ts +0 -0
  161. /package/{djs → fs/djs}/transpiler/test.f.js +0 -0
  162. /package/{fjs → fs/fjs}/module.d.ts +0 -0
  163. /package/{fjs → fs/fjs}/module.f.d.ts +0 -0
  164. /package/{fjs → fs/fjs}/module.f.js +0 -0
  165. /package/{fjs → fs/fjs}/module.js +0 -0
  166. /package/{fsc → fs/fsc}/bnf.f.d.ts +0 -0
  167. /package/{fsc → fs/fsc}/bnf.f.js +0 -0
  168. /package/{fsc → fs/fsc}/json.f.d.ts +0 -0
  169. /package/{fsc → fs/fsc}/json.f.js +0 -0
  170. /package/{fsc → fs/fsc}/module.f.d.ts +0 -0
  171. /package/{fsc → fs/fsc}/module.f.js +0 -0
  172. /package/{fsc → fs/fsc}/test.f.d.ts +0 -0
  173. /package/{fsc → fs/fsc}/test.f.js +0 -0
  174. /package/{fsm → fs/fsm}/module.f.d.ts +0 -0
  175. /package/{fsm → fs/fsm}/module.f.js +0 -0
  176. /package/{fsm → fs/fsm}/test.f.d.ts +0 -0
  177. /package/{fsm → fs/fsm}/test.f.js +0 -0
  178. /package/{html → fs/html}/module.f.d.ts +0 -0
  179. /package/{html → fs/html}/module.f.js +0 -0
  180. /package/{html → fs/html}/test.f.d.ts +0 -0
  181. /package/{html → fs/html}/test.f.js +0 -0
  182. /package/{io → fs/io}/module.d.ts +0 -0
  183. /package/{io → fs/io}/module.f.d.ts +0 -0
  184. /package/{io → fs/io}/module.f.js +0 -0
  185. /package/{io → fs/io}/module.js +0 -0
  186. /package/{io → fs/io}/virtual/module.f.d.ts +0 -0
  187. /package/{io → fs/io}/virtual/module.f.js +0 -0
  188. /package/{js → fs/js}/tokenizer/module.f.d.ts +0 -0
  189. /package/{js → fs/js}/tokenizer/test.f.d.ts +0 -0
  190. /package/{js → fs/js}/tokenizer/test.f.js +0 -0
  191. /package/{json → fs/json}/module.f.d.ts +0 -0
  192. /package/{json → fs/json}/module.f.js +0 -0
  193. /package/{json → fs/json}/parser/module.f.d.ts +0 -0
  194. /package/{json → fs/json}/parser/module.f.js +0 -0
  195. /package/{json → fs/json}/parser/test.f.d.ts +0 -0
  196. /package/{json → fs/json}/parser/test.f.js +0 -0
  197. /package/{json → fs/json}/serializer/module.f.d.ts +0 -0
  198. /package/{json → fs/json}/serializer/module.f.js +0 -0
  199. /package/{json → fs/json}/serializer/test.f.d.ts +0 -0
  200. /package/{json → fs/json}/serializer/test.f.js +0 -0
  201. /package/{json → fs/json}/test.f.d.ts +0 -0
  202. /package/{json → fs/json}/test.f.js +0 -0
  203. /package/{json → fs/json}/tokenizer/module.f.d.ts +0 -0
  204. /package/{json → fs/json}/tokenizer/test.f.d.ts +0 -0
  205. /package/{json → fs/json}/tokenizer/test.f.js +0 -0
  206. /package/{path → fs/path}/module.f.js +0 -0
  207. /package/{path → fs/path}/test.f.d.ts +0 -0
  208. /package/{path → fs/path}/test.f.js +0 -0
  209. /package/{text → fs/text}/ascii/module.f.d.ts +0 -0
  210. /package/{text → fs/text}/ascii/module.f.js +0 -0
  211. /package/{text → fs/text}/ascii/test.f.d.ts +0 -0
  212. /package/{text → fs/text}/ascii/test.f.js +0 -0
  213. /package/{text → fs/text}/module.f.js +0 -0
  214. /package/{text → fs/text}/sgr/module.f.d.ts +0 -0
  215. /package/{text → fs/text}/sgr/module.f.js +0 -0
  216. /package/{text → fs/text}/sgr/test.f.d.ts +0 -0
  217. /package/{text → fs/text}/sgr/test.f.js +0 -0
  218. /package/{text → fs/text}/test.f.d.ts +0 -0
  219. /package/{text → fs/text}/test.f.js +0 -0
  220. /package/{text → fs/text}/utf16/module.f.d.ts +0 -0
  221. /package/{text → fs/text}/utf16/test.f.d.ts +0 -0
  222. /package/{text → fs/text}/utf16/test.f.js +0 -0
  223. /package/{text → fs/text}/utf8/module.f.d.ts +0 -0
  224. /package/{text → fs/text}/utf8/test.f.d.ts +0 -0
  225. /package/{text → fs/text}/utf8/test.f.js +0 -0
  226. /package/{types → fs/types}/array/module.f.d.ts +0 -0
  227. /package/{types → fs/types}/array/module.f.js +0 -0
  228. /package/{types → fs/types}/array/test.f.d.ts +0 -0
  229. /package/{types → fs/types}/array/test.f.js +0 -0
  230. /package/{types → fs/types}/bigfloat/module.f.d.ts +0 -0
  231. /package/{types → fs/types}/bigfloat/module.f.js +0 -0
  232. /package/{types → fs/types}/bigfloat/test.f.d.ts +0 -0
  233. /package/{types → fs/types}/bigfloat/test.f.js +0 -0
  234. /package/{types → fs/types}/bigint/module.f.d.ts +0 -0
  235. /package/{types → fs/types}/bigint/module.f.js +0 -0
  236. /package/{types → fs/types}/bigint/test.f.d.ts +0 -0
  237. /package/{types → fs/types}/bigint/test.f.js +0 -0
  238. /package/{types → fs/types}/bit_vec/test.f.d.ts +0 -0
  239. /package/{types → fs/types}/bit_vec/test.f.js +0 -0
  240. /package/{types → fs/types}/btree/find/module.f.d.ts +0 -0
  241. /package/{types → fs/types}/btree/find/module.f.js +0 -0
  242. /package/{types → fs/types}/btree/find/test.f.d.ts +0 -0
  243. /package/{types → fs/types}/btree/find/test.f.js +0 -0
  244. /package/{types → fs/types}/btree/module.f.d.ts +0 -0
  245. /package/{types → fs/types}/btree/module.f.js +0 -0
  246. /package/{types → fs/types}/btree/remove/module.f.d.ts +0 -0
  247. /package/{types → fs/types}/btree/remove/module.f.js +0 -0
  248. /package/{types → fs/types}/btree/remove/test.f.d.ts +0 -0
  249. /package/{types → fs/types}/btree/remove/test.f.js +0 -0
  250. /package/{types → fs/types}/btree/set/module.f.d.ts +0 -0
  251. /package/{types → fs/types}/btree/set/module.f.js +0 -0
  252. /package/{types → fs/types}/btree/set/test.f.d.ts +0 -0
  253. /package/{types → fs/types}/btree/set/test.f.js +0 -0
  254. /package/{types → fs/types}/btree/test.f.d.ts +0 -0
  255. /package/{types → fs/types}/btree/test.f.js +0 -0
  256. /package/{types → fs/types}/btree/types/module.f.d.ts +0 -0
  257. /package/{types → fs/types}/btree/types/module.f.js +0 -0
  258. /package/{types → fs/types}/byte_set/module.f.d.ts +0 -0
  259. /package/{types → fs/types}/byte_set/module.f.js +0 -0
  260. /package/{types → fs/types}/byte_set/test.f.d.ts +0 -0
  261. /package/{types → fs/types}/byte_set/test.f.js +0 -0
  262. /package/{types → fs/types}/effects/mock/module.f.d.ts +0 -0
  263. /package/{types → fs/types}/effects/mock/module.f.js +0 -0
  264. /package/{types → fs/types}/effects/module.d.ts +0 -0
  265. /package/{types → fs/types}/effects/module.f.js +0 -0
  266. /package/{types → fs/types}/effects/module.js +0 -0
  267. /package/{types → fs/types}/effects/node/module.f.d.ts +0 -0
  268. /package/{types → fs/types}/effects/node/module.f.js +0 -0
  269. /package/{types → fs/types}/effects/node/test.f.d.ts +0 -0
  270. /package/{types → fs/types}/effects/node/test.f.js +0 -0
  271. /package/{types → fs/types}/effects/node/virtual/module.f.js +0 -0
  272. /package/{types → fs/types}/function/compare/module.f.d.ts +0 -0
  273. /package/{types → fs/types}/function/compare/module.f.js +0 -0
  274. /package/{types → fs/types}/function/compare/test.f.d.ts +0 -0
  275. /package/{types → fs/types}/function/compare/test.f.js +0 -0
  276. /package/{types → fs/types}/function/module.f.d.ts +0 -0
  277. /package/{types → fs/types}/function/module.f.js +0 -0
  278. /package/{types → fs/types}/function/test.f.d.ts +0 -0
  279. /package/{types → fs/types}/function/test.f.js +0 -0
  280. /package/{types → fs/types}/list/module.f.d.ts +0 -0
  281. /package/{types → fs/types}/list/test.f.d.ts +0 -0
  282. /package/{types → fs/types}/list/test.f.js +0 -0
  283. /package/{types → fs/types}/map/module.f.d.ts +0 -0
  284. /package/{types → fs/types}/map/module.f.js +0 -0
  285. /package/{types → fs/types}/map/test.f.d.ts +0 -0
  286. /package/{types → fs/types}/map/test.f.js +0 -0
  287. /package/{types → fs/types}/monoid/module.f.d.ts +0 -0
  288. /package/{types → fs/types}/monoid/module.f.js +0 -0
  289. /package/{types → fs/types}/monoid/test.f.d.ts +0 -0
  290. /package/{types → fs/types}/monoid/test.f.js +0 -0
  291. /package/{types → fs/types}/nibble_set/module.f.d.ts +0 -0
  292. /package/{types → fs/types}/nibble_set/module.f.js +0 -0
  293. /package/{types → fs/types}/nibble_set/test.f.d.ts +0 -0
  294. /package/{types → fs/types}/nibble_set/test.f.js +0 -0
  295. /package/{types → fs/types}/nominal/module.f.d.ts +0 -0
  296. /package/{types → fs/types}/nominal/module.f.js +0 -0
  297. /package/{types → fs/types}/nominal/test.f.d.ts +0 -0
  298. /package/{types → fs/types}/nominal/test.f.js +0 -0
  299. /package/{types → fs/types}/nullable/module.f.d.ts +0 -0
  300. /package/{types → fs/types}/nullable/module.f.js +0 -0
  301. /package/{types → fs/types}/nullable/test.f.d.ts +0 -0
  302. /package/{types → fs/types}/nullable/test.f.js +0 -0
  303. /package/{types → fs/types}/number/module.f.d.ts +0 -0
  304. /package/{types → fs/types}/number/module.f.js +0 -0
  305. /package/{types → fs/types}/number/test.f.d.ts +0 -0
  306. /package/{types → fs/types}/number/test.f.js +0 -0
  307. /package/{types → fs/types}/object/module.f.d.ts +0 -0
  308. /package/{types → fs/types}/object/module.f.js +0 -0
  309. /package/{types → fs/types}/object/test.f.d.ts +0 -0
  310. /package/{types → fs/types}/object/test.f.js +0 -0
  311. /package/{types → fs/types}/option/module.f.d.ts +0 -0
  312. /package/{types → fs/types}/option/module.f.js +0 -0
  313. /package/{types → fs/types}/ordered_map/module.f.d.ts +0 -0
  314. /package/{types → fs/types}/ordered_map/module.f.js +0 -0
  315. /package/{types → fs/types}/ordered_map/test.f.d.ts +0 -0
  316. /package/{types → fs/types}/ordered_map/test.f.js +0 -0
  317. /package/{types → fs/types}/prime_field/module.f.d.ts +0 -0
  318. /package/{types → fs/types}/prime_field/module.f.js +0 -0
  319. /package/{types → fs/types}/prime_field/test.f.d.ts +0 -0
  320. /package/{types → fs/types}/prime_field/test.f.js +0 -0
  321. /package/{types → fs/types}/range/module.f.d.ts +0 -0
  322. /package/{types → fs/types}/range/module.f.js +0 -0
  323. /package/{types → fs/types}/range/test.f.d.ts +0 -0
  324. /package/{types → fs/types}/range/test.f.js +0 -0
  325. /package/{types → fs/types}/range_map/module.f.d.ts +0 -0
  326. /package/{types → fs/types}/range_map/module.f.js +0 -0
  327. /package/{types → fs/types}/range_map/test.f.d.ts +0 -0
  328. /package/{types → fs/types}/range_map/test.f.js +0 -0
  329. /package/{types → fs/types}/result/module.d.ts +0 -0
  330. /package/{types → fs/types}/result/module.f.d.ts +0 -0
  331. /package/{types → fs/types}/result/module.f.js +0 -0
  332. /package/{types → fs/types}/result/module.js +0 -0
  333. /package/{types → fs/types}/result/test.f.d.ts +0 -0
  334. /package/{types → fs/types}/result/test.f.js +0 -0
  335. /package/{types → fs/types}/rtti/ts/module.f.d.ts +0 -0
  336. /package/{types → fs/types}/rtti/ts/module.f.js +0 -0
  337. /package/{types → fs/types}/rtti/ts/test.f.d.ts +0 -0
  338. /package/{types → fs/types}/rtti/ts/test.f.js +0 -0
  339. /package/{types → fs/types}/sorted_list/module.f.d.ts +0 -0
  340. /package/{types → fs/types}/sorted_list/module.f.js +0 -0
  341. /package/{types → fs/types}/sorted_list/test.f.d.ts +0 -0
  342. /package/{types → fs/types}/sorted_list/test.f.js +0 -0
  343. /package/{types → fs/types}/sorted_set/module.f.d.ts +0 -0
  344. /package/{types → fs/types}/sorted_set/module.f.js +0 -0
  345. /package/{types → fs/types}/sorted_set/test.f.d.ts +0 -0
  346. /package/{types → fs/types}/sorted_set/test.f.js +0 -0
  347. /package/{types → fs/types}/string/module.f.d.ts +0 -0
  348. /package/{types → fs/types}/string/module.f.js +0 -0
  349. /package/{types → fs/types}/string/test.f.d.ts +0 -0
  350. /package/{types → fs/types}/string/test.f.js +0 -0
  351. /package/{types → fs/types}/string_set/module.f.d.ts +0 -0
  352. /package/{types → fs/types}/string_set/module.f.js +0 -0
  353. /package/{types → fs/types}/string_set/test.f.d.ts +0 -0
  354. /package/{types → fs/types}/string_set/test.f.js +0 -0
  355. /package/{types → fs/types}/ts/module.f.d.ts +0 -0
  356. /package/{types → fs/types}/ts/module.f.js +0 -0
  357. /package/{types → fs/types}/uint8array/module.f.js +0 -0
  358. /package/{types → fs/types}/uint8array/test.f.d.ts +0 -0
  359. /package/{types → fs/types}/uint8array/test.f.js +0 -0
  360. /package/{website → fs/website}/module.f.d.ts +0 -0
  361. /package/{website → fs/website}/module.f.js +0 -0
@@ -1,202 +0,0 @@
1
- import { descentParser } from "../../bnf/data/module.f.js";
2
- import { stringToCodePointList } from "../../text/utf16/module.f.js";
3
- import { map, toArray } from "../../types/list/module.f.js";
4
- import { jsGrammar } from "./module.f.js";
5
- const mapCodePoint = (cp) => [cp, undefined];
6
- const descentParserCpOnly = (m, name, cp) => {
7
- const cpm = toArray(map(mapCodePoint)(cp));
8
- return m(name, cpm);
9
- };
10
- export default {
11
- isValid: [() => {
12
- const m = descentParser(jsGrammar());
13
- const expect = (s, expected) => {
14
- const cp = toArray(stringToCodePointList(s));
15
- const mr = descentParserCpOnly(m, '', cp);
16
- const success = mr[1] && mr[2] === cp.length;
17
- if (success !== expected) {
18
- throw JSON.stringify([s, mr]);
19
- }
20
- };
21
- expect('"', false);
22
- expect(' true ', true);
23
- expect(' tr2ue ', true);
24
- expect(' 2true ', true);
25
- expect(' true" ', false);
26
- expect(' "Hello" ', true);
27
- expect(' "Hello ', false);
28
- expect(' "Hello\\n\\r\\"" ', true);
29
- expect(' 56.7e+5 ', true);
30
- expect(' -56.7e+5 ', true);
31
- expect(' h-56.7e+5 ', true);
32
- expect(' -56.7e+5 3', true);
33
- expect(' [] ', true);
34
- expect(' {} ', true);
35
- expect(' [[[]]] ', true);
36
- expect(' [1] ', true);
37
- expect(' [ 12, false, "a"] ', true);
38
- expect(' [ 12, false2, "a"] ', true);
39
- expect(' { "q": [ 12, false, [{"b" : "c"}], "a"] } ', true);
40
- expect(' { "q": [ 12, false, [{}], "a"] } ', true);
41
- expect(' { "q": [ 12, false, [}], "a"] } ', true);
42
- expect(' [{ "q": [ 12, false, [{}], "a"] }] ', true);
43
- expect(' [{ "q": [ 12, false, [}], "a"] }] ', true);
44
- expect('. + ++ +=', true);
45
- expect('//12\n', true);
46
- expect('/*12*/', true);
47
- expect('/* 1*2 */', true);
48
- }
49
- ],
50
- parser: [
51
- () => {
52
- const m = descentParser(jsGrammar());
53
- const cp = toArray(stringToCodePointList('tr'));
54
- const mr = descentParserCpOnly(m, '', cp);
55
- const seq = mr[0].sequence[0];
56
- if (seq instanceof Array)
57
- throw JSON.stringify(mr);
58
- if (seq.tag !== 'id')
59
- throw JSON.stringify(mr);
60
- },
61
- () => {
62
- const m = descentParser(jsGrammar());
63
- const cp = toArray(stringToCodePointList('"tr"'));
64
- const mr = descentParserCpOnly(m, '', cp);
65
- const seq = mr[0].sequence[0];
66
- if (seq instanceof Array)
67
- throw JSON.stringify(mr);
68
- if (seq.tag !== 'string')
69
- throw JSON.stringify(mr);
70
- },
71
- () => {
72
- const m = descentParser(jsGrammar());
73
- const cp = toArray(stringToCodePointList('56.7e+5'));
74
- const mr = descentParserCpOnly(m, '', cp);
75
- const seq = mr[0].sequence[0];
76
- if (seq instanceof Array)
77
- throw JSON.stringify(mr);
78
- if (seq.tag !== 'number')
79
- throw JSON.stringify(mr);
80
- },
81
- () => {
82
- const m = descentParser(jsGrammar());
83
- const cp = toArray(stringToCodePointList('56n'));
84
- const mr = descentParserCpOnly(m, '', cp);
85
- const seq = mr[0].sequence[0];
86
- if (seq instanceof Array)
87
- throw JSON.stringify(mr);
88
- if (seq.tag !== 'number')
89
- throw JSON.stringify(mr);
90
- },
91
- () => {
92
- const m = descentParser(jsGrammar());
93
- const cp = toArray(stringToCodePointList('*'));
94
- const mr = descentParserCpOnly(m, '', cp);
95
- const seq = mr[0].sequence[0];
96
- if (seq instanceof Array)
97
- throw JSON.stringify(mr);
98
- if (seq.tag !== '*')
99
- throw JSON.stringify(mr);
100
- },
101
- () => {
102
- const m = descentParser(jsGrammar());
103
- const cp = toArray(stringToCodePointList('**'));
104
- const mr = descentParserCpOnly(m, '', cp);
105
- const seq = mr[0].sequence[0];
106
- if (seq instanceof Array)
107
- throw JSON.stringify(mr);
108
- if (seq.tag !== '**')
109
- throw JSON.stringify(mr);
110
- },
111
- () => {
112
- const m = descentParser(jsGrammar());
113
- const cp = toArray(stringToCodePointList('=>'));
114
- const mr = descentParserCpOnly(m, '', cp);
115
- const seq = mr[0].sequence[0];
116
- if (seq instanceof Array)
117
- throw JSON.stringify(mr);
118
- if (seq.tag !== '=>')
119
- throw JSON.stringify(mr);
120
- },
121
- () => {
122
- const m = descentParser(jsGrammar());
123
- const cp = toArray(stringToCodePointList('=='));
124
- const mr = descentParserCpOnly(m, '', cp);
125
- const seq = mr[0].sequence[0];
126
- if (seq instanceof Array)
127
- throw JSON.stringify(mr);
128
- if (seq.tag !== '==')
129
- throw JSON.stringify(mr);
130
- },
131
- () => {
132
- const m = descentParser(jsGrammar());
133
- const cp = toArray(stringToCodePointList('==='));
134
- const mr = descentParserCpOnly(m, '', cp);
135
- const seq = mr[0].sequence[0];
136
- if (seq instanceof Array)
137
- throw JSON.stringify(mr);
138
- if (seq.tag !== '===')
139
- throw JSON.stringify(mr);
140
- },
141
- () => {
142
- const m = descentParser(jsGrammar());
143
- const cp = toArray(stringToCodePointList('='));
144
- const mr = descentParserCpOnly(m, '', cp);
145
- const seq = mr[0].sequence[0];
146
- if (seq instanceof Array)
147
- throw JSON.stringify(mr);
148
- if (seq.tag !== '=')
149
- throw JSON.stringify(mr);
150
- },
151
- () => {
152
- const m = descentParser(jsGrammar());
153
- const cp = toArray(stringToCodePointList(' '));
154
- const mr = descentParserCpOnly(m, '', cp);
155
- const seq = mr[0].sequence[0];
156
- if (seq instanceof Array)
157
- throw JSON.stringify(mr);
158
- if (seq.tag !== ' ')
159
- throw JSON.stringify(mr);
160
- },
161
- () => {
162
- const m = descentParser(jsGrammar());
163
- const cp = toArray(stringToCodePointList('\n'));
164
- const mr = descentParserCpOnly(m, '', cp);
165
- const seq = mr[0].sequence[0];
166
- if (seq instanceof Array)
167
- throw JSON.stringify(mr);
168
- if (seq.tag !== '\n')
169
- throw JSON.stringify(mr);
170
- },
171
- () => {
172
- const m = descentParser(jsGrammar());
173
- const cp = toArray(stringToCodePointList('/\n'));
174
- const mr = descentParserCpOnly(m, '', cp);
175
- const seq = mr[0].sequence[0];
176
- if (seq instanceof Array)
177
- throw JSON.stringify(mr);
178
- if (seq.tag !== '/')
179
- throw JSON.stringify(mr);
180
- },
181
- () => {
182
- const m = descentParser(jsGrammar());
183
- const cp = toArray(stringToCodePointList('//\n'));
184
- const mr = descentParserCpOnly(m, '', cp);
185
- const seq = mr[0].sequence[0];
186
- if (seq instanceof Array)
187
- throw JSON.stringify(mr);
188
- if (seq.tag !== 'comment')
189
- throw JSON.stringify(mr);
190
- },
191
- () => {
192
- const m = descentParser(jsGrammar());
193
- const cp = toArray(stringToCodePointList('/*1*/'));
194
- const mr = descentParserCpOnly(m, '', cp);
195
- const seq = mr[0].sequence[0];
196
- if (seq instanceof Array)
197
- throw JSON.stringify(mr);
198
- if (seq.tag !== 'comment')
199
- throw JSON.stringify(mr);
200
- }
201
- ]
202
- };
@@ -1,27 +0,0 @@
1
- import { includes } from "../array/module.f.js";
2
- const primitive0List = ['bigint', 'boolean', 'number', 'string'];
3
- export const tag0List = [...primitive0List, 'unknown'];
4
- const type0 = (tag) => () => [tag];
5
- /** Schema that validates `boolean` values. */
6
- export const boolean = type0('boolean');
7
- /** Schema that validates `number` values. */
8
- export const number = type0('number');
9
- /** Schema that validates `string` values. */
10
- export const string = type0('string');
11
- /** Schema that validates `bigint` values. */
12
- export const bigint = type0('bigint');
13
- /** Schema that validates any DJS-compatible value. */
14
- export const unknown = type0('unknown');
15
- const tag1List = ['array', 'record'];
16
- export const isTag1 = includes(tag1List);
17
- const type1 = (key) => t => () => [key, t];
18
- /** Constructs a schema that validates `readonly Ts<T>[]`. */
19
- export const array = type1('array');
20
- /** Constructs a schema that validates `{ readonly[K in string]: Ts<T> }`. */
21
- export const record = type1('record');
22
- /** Constructs a schema that validates a value matching any of the given schemas. */
23
- export const or = (...types) => () => ['or', ...types];
24
- /** Constructs a schema that validates a value matching `T` or `undefined`. */
25
- export const option = (t) => or(t, undefined);
26
- /** Schema that never matches any value — the empty union, corresponding to TypeScript's `never`. */
27
- export const never = or();
@@ -1,6 +0,0 @@
1
- declare const _default: {
2
- typeof: {
3
- [k: string]: (() => void)[];
4
- };
5
- };
6
- export default _default;
@@ -1,22 +0,0 @@
1
- const tests = {
2
- undefined: [undefined],
3
- boolean: [true, false],
4
- string: ['hello'],
5
- number: [3],
6
- bigint: [4n],
7
- object: [null, {}, []],
8
- function: [() => undefined]
9
- };
10
- const assertOk = ([k]) => { if (k !== 'ok') {
11
- throw 'expected ok';
12
- } };
13
- const assertError = ([k]) => { if (k !== 'error') {
14
- throw 'expected error';
15
- } };
16
- export default {
17
- typeof: Object.fromEntries(Object.entries(tests).map(([k, a]) => [k, a.map(v => () => {
18
- if (typeof v !== k) {
19
- throw `typeof ${v} !== ${k}`;
20
- }
21
- })])),
22
- };
@@ -1,50 +0,0 @@
1
- /**
2
- * Runtime validation of unknown values against RTTI schemas.
3
- *
4
- * The main entry point is `validate(rtti)`, which takes a schema `Type` and returns
5
- * a `Validate<T>` function. When called with an unknown value, it returns a `Result`
6
- * that is either `['ok', typedValue]` or `['error', message]`.
7
- *
8
- * ## Dispatch strategy
9
- *
10
- * - **`Thunk`** schemas are evaluated lazily: the thunk is called once to obtain an
11
- * `Info` descriptor, then dispatched by tag:
12
- * - `'const'` — delegates to `constValidate`
13
- * - `'unknown'` — always succeeds (any DJS value is valid)
14
- * - `Tag1` (`'array'`, `'record'`) — delegates to `containerValidate`
15
- * - `Tag0` (`'boolean'`, `'number'`, `'string'`, `'bigint'`) — uses `typeof` check
16
- * - **`Const`** schemas (primitives, tuples, structs) validate by exact equality or
17
- * recursive field/element checking.
18
- *
19
- * ## Recursion safety
20
- *
21
- * For `array` and `record` schemas, the inner item validator is instantiated lazily —
22
- * only after confirming the container is non-empty. This prevents infinite recursion
23
- * when validating recursive schemas like `const list = () => ['array', list]`.
24
- *
25
- * @module
26
- */
27
- import type { Unknown } from '../../../djs/module.f.ts';
28
- import { type Type } from '../module.f.ts';
29
- import { type Result as CommonResult } from '../../result/module.f.ts';
30
- import type { Ts } from '../ts/module.f.ts';
31
- /** Validation result: either the typed value or an error message. */
32
- export type Result<T extends Type> = CommonResult<Ts<T>, string>;
33
- /** A function that validates an unknown value against schema `T`. */
34
- export type Validate<T extends Type> = (value: Unknown) => Result<T>;
35
- /**
36
- * Creates a validator function for the given RTTI schema.
37
- *
38
- * @param rtti - A schema `Type`: a `Thunk` for tag-based schemas, or a `Const`
39
- * (primitive literal, tuple, or struct) for exact-value schemas.
40
- * @returns A `Validate<T>` function that checks an unknown value and returns
41
- * `['ok', value]` or `['error', message]`.
42
- *
43
- * @example
44
- * ```ts
45
- * const v = validate(array(number))
46
- * v([1, 2, 3]) // ['ok', [1, 2, 3]]
47
- * v(['a', 'b']) // ['error', 'unexpected value']
48
- * ```
49
- */
50
- export declare const validate: <T extends Type>(rtti: T) => Validate<T>;
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes