functionalscript 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (359) 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/fs/ci/module.f.js +40 -0
  22. package/fs/ci/node/module.f.d.ts +6 -0
  23. package/fs/ci/node/module.f.js +36 -0
  24. package/fs/ci/playwright/module.f.d.ts +2 -0
  25. package/fs/ci/playwright/module.f.js +23 -0
  26. package/fs/ci/rust/module.f.d.ts +2 -0
  27. package/fs/ci/rust/module.f.js +49 -0
  28. package/{crypto → fs/crypto}/secp/module.f.d.ts +1 -2
  29. package/{dev → fs/dev}/module.f.d.ts +2 -0
  30. package/{dev → fs/dev}/module.f.js +5 -0
  31. package/{dev → fs/dev}/tf/all.test.js +7 -5
  32. package/{dev → fs/dev}/tf/module.f.d.ts +1 -1
  33. package/{dev → fs/dev}/tf/module.f.js +12 -9
  34. package/fs/dev/tf/test.f.d.ts +16 -0
  35. package/fs/dev/tf/test.f.js +22 -0
  36. package/fs/dev/version/module.f.d.ts +3 -0
  37. package/{djs → fs/djs}/tokenizer/module.f.js +3 -3
  38. package/{djs/parser-new → fs/djs/tokenizer-new}/test.f.d.ts +2 -1
  39. package/fs/djs/tokenizer-new/test.f.js +894 -0
  40. package/{html → fs/html}/module.f.d.ts +14 -0
  41. package/{html → fs/html}/module.f.js +21 -2
  42. package/{js → fs/js}/tokenizer/module.f.js +34 -34
  43. package/{json → fs/json}/tokenizer/module.f.js +1 -1
  44. package/{path → fs/path}/module.f.d.ts +1 -1
  45. package/fs/sul/id/module.f.d.ts +33 -0
  46. package/fs/sul/id/module.f.js +94 -0
  47. package/fs/sul/id/test.f.d.ts +21 -0
  48. package/fs/sul/id/test.f.js +75 -0
  49. package/fs/sul/level/hash/module.f.d.ts +38 -0
  50. package/fs/sul/level/hash/module.f.js +43 -0
  51. package/fs/sul/level/hash/test.f.d.ts +14 -0
  52. package/fs/sul/level/hash/test.f.js +112 -0
  53. package/fs/sul/level/literal/module.f.d.ts +64 -0
  54. package/fs/sul/level/literal/module.f.js +88 -0
  55. package/fs/sul/level/literal/test.f.d.ts +12 -0
  56. package/fs/sul/level/literal/test.f.js +722 -0
  57. package/fs/sul/module.f.d.ts +23 -0
  58. package/fs/sul/module.f.js +46 -0
  59. package/fs/sul/test.f.d.ts +10 -0
  60. package/fs/sul/test.f.js +47 -0
  61. package/{text → fs/text}/module.f.d.ts +1 -1
  62. package/{text → fs/text}/utf16/module.f.js +8 -8
  63. package/{text → fs/text}/utf8/module.f.js +2 -2
  64. package/{types → fs/types}/bit_vec/module.f.d.ts +13 -1
  65. package/{types → fs/types}/bit_vec/module.f.js +33 -15
  66. package/{types → fs/types}/effects/module.f.d.ts +1 -0
  67. package/{types → fs/types}/effects/node/virtual/module.f.d.ts +3 -3
  68. package/{types → fs/types}/function/operator/module.f.d.ts +1 -1
  69. package/{types → fs/types}/function/operator/module.f.js +1 -1
  70. package/{types → fs/types}/list/module.f.js +1 -1
  71. package/fs/types/patricia_trie/module.f.d.ts +25 -0
  72. package/fs/types/patricia_trie/module.f.js +35 -0
  73. package/fs/types/patricia_trie/test.f.d.ts +8 -0
  74. package/fs/types/patricia_trie/test.f.js +121 -0
  75. package/fs/types/rtti/parse/module.f.d.ts +32 -0
  76. package/fs/types/rtti/parse/module.f.js +113 -0
  77. package/fs/types/rtti/parse/test.f.d.ts +104 -0
  78. package/fs/types/rtti/parse/test.f.js +316 -0
  79. package/fs/types/rtti/validate/module.f.d.ts +74 -0
  80. package/{types → fs/types}/rtti/validate/module.f.js +26 -24
  81. package/{types → fs/types}/rtti/validate/test.f.d.ts +11 -0
  82. package/{types → fs/types}/rtti/validate/test.f.js +38 -0
  83. package/{types → fs/types}/uint8array/module.f.d.ts +2 -2
  84. package/fs/website/module.f.d.ts +4 -0
  85. package/fs/website/module.f.js +15 -0
  86. package/package.json +8 -8
  87. package/ci/module.f.js +0 -183
  88. package/dev/tf/test.f.d.ts +0 -4
  89. package/dev/tf/test.f.js +0 -5
  90. package/dev/version/module.f.d.ts +0 -3
  91. package/djs/parser-new/test.f.js +0 -202
  92. package/types/rtti/validate/module.f.d.ts +0 -50
  93. package/website/module.f.d.ts +0 -4
  94. package/website/module.f.js +0 -19
  95. /package/{types → fs}/asn.1/test.f.d.ts +0 -0
  96. /package/{cas → fs/base128}/test.f.d.ts +0 -0
  97. /package/{bnf → fs/bnf}/data/module.f.js +0 -0
  98. /package/{bnf → fs/bnf}/data/test.f.d.ts +0 -0
  99. /package/{bnf → fs/bnf}/data/test.f.js +0 -0
  100. /package/{bnf → fs/bnf}/module.f.d.ts +0 -0
  101. /package/{bnf → fs/bnf}/module.f.js +0 -0
  102. /package/{bnf → fs/bnf}/test.f.d.ts +0 -0
  103. /package/{bnf → fs/bnf}/test.f.js +0 -0
  104. /package/{bnf → fs/bnf}/testlib.f.d.ts +0 -0
  105. /package/{bnf → fs/bnf}/testlib.f.js +0 -0
  106. /package/{types/base128 → fs/cas}/test.f.d.ts +0 -0
  107. /package/{cas → fs/cas}/test.f.js +0 -0
  108. /package/{types → fs}/cbase32/test.f.d.ts +0 -0
  109. /package/{ci → fs/ci}/module.f.d.ts +0 -0
  110. /package/{crypto → fs/crypto}/hmac/module.f.d.ts +0 -0
  111. /package/{crypto → fs/crypto}/hmac/module.f.js +0 -0
  112. /package/{crypto → fs/crypto}/hmac/test.f.d.ts +0 -0
  113. /package/{crypto → fs/crypto}/hmac/test.f.js +0 -0
  114. /package/{crypto → fs/crypto}/secp/module.f.js +0 -0
  115. /package/{crypto → fs/crypto}/secp/test.f.d.ts +0 -0
  116. /package/{crypto → fs/crypto}/secp/test.f.js +0 -0
  117. /package/{crypto → fs/crypto}/sha2/module.f.d.ts +0 -0
  118. /package/{crypto → fs/crypto}/sha2/module.f.js +0 -0
  119. /package/{crypto → fs/crypto}/sha2/test.f.d.ts +0 -0
  120. /package/{crypto → fs/crypto}/sha2/test.f.js +0 -0
  121. /package/{crypto → fs/crypto}/sign/module.f.d.ts +0 -0
  122. /package/{crypto → fs/crypto}/sign/module.f.js +0 -0
  123. /package/{crypto → fs/crypto}/sign/test.f.d.ts +0 -0
  124. /package/{crypto → fs/crypto}/sign/test.f.js +0 -0
  125. /package/{dev → fs/dev}/index/module.f.d.ts +0 -0
  126. /package/{dev → fs/dev}/index/module.f.js +0 -0
  127. /package/{dev → fs/dev}/test.f.d.ts +0 -0
  128. /package/{dev → fs/dev}/test.f.js +0 -0
  129. /package/{dev → fs/dev}/tf/all.test.d.ts +0 -0
  130. /package/{dev → fs/dev}/version/module.f.js +0 -0
  131. /package/{dev → fs/dev}/version/test.f.d.ts +0 -0
  132. /package/{dev → fs/dev}/version/test.f.js +0 -0
  133. /package/{djs → fs/djs}/ast/module.f.d.ts +0 -0
  134. /package/{djs → fs/djs}/ast/module.f.js +0 -0
  135. /package/{djs → fs/djs}/ast/test.f.d.ts +0 -0
  136. /package/{djs → fs/djs}/ast/test.f.js +0 -0
  137. /package/{djs → fs/djs}/examples/input.f.d.ts +0 -0
  138. /package/{djs → fs/djs}/examples/input.f.js +0 -0
  139. /package/{djs → fs/djs}/examples/m.f.d.ts +0 -0
  140. /package/{djs → fs/djs}/examples/m.f.js +0 -0
  141. /package/{djs → fs/djs}/module.f.d.ts +0 -0
  142. /package/{djs → fs/djs}/module.f.js +0 -0
  143. /package/{djs → fs/djs}/parser/module.f.d.ts +0 -0
  144. /package/{djs → fs/djs}/parser/module.f.js +0 -0
  145. /package/{djs → fs/djs}/parser/test.f.d.ts +0 -0
  146. /package/{djs → fs/djs}/parser/test.f.js +0 -0
  147. /package/{djs → fs/djs}/serializer/module.f.d.ts +0 -0
  148. /package/{djs → fs/djs}/serializer/module.f.js +0 -0
  149. /package/{djs → fs/djs}/serializer/test.f.d.ts +0 -0
  150. /package/{djs → fs/djs}/serializer/test.f.js +0 -0
  151. /package/{djs → fs/djs}/tokenizer/module.f.d.ts +0 -0
  152. /package/{djs → fs/djs}/tokenizer/test.f.d.ts +0 -0
  153. /package/{djs → fs/djs}/tokenizer/test.f.js +0 -0
  154. /package/{djs/parser-new → fs/djs/tokenizer-new}/module.f.d.ts +0 -0
  155. /package/{djs/parser-new → fs/djs/tokenizer-new}/module.f.js +0 -0
  156. /package/{djs → fs/djs}/transpiler/module.f.d.ts +0 -0
  157. /package/{djs → fs/djs}/transpiler/module.f.js +0 -0
  158. /package/{djs → fs/djs}/transpiler/test.f.d.ts +0 -0
  159. /package/{djs → fs/djs}/transpiler/test.f.js +0 -0
  160. /package/{fjs → fs/fjs}/module.d.ts +0 -0
  161. /package/{fjs → fs/fjs}/module.f.d.ts +0 -0
  162. /package/{fjs → fs/fjs}/module.f.js +0 -0
  163. /package/{fjs → fs/fjs}/module.js +0 -0
  164. /package/{fsc → fs/fsc}/bnf.f.d.ts +0 -0
  165. /package/{fsc → fs/fsc}/bnf.f.js +0 -0
  166. /package/{fsc → fs/fsc}/json.f.d.ts +0 -0
  167. /package/{fsc → fs/fsc}/json.f.js +0 -0
  168. /package/{fsc → fs/fsc}/module.f.d.ts +0 -0
  169. /package/{fsc → fs/fsc}/module.f.js +0 -0
  170. /package/{fsc → fs/fsc}/test.f.d.ts +0 -0
  171. /package/{fsc → fs/fsc}/test.f.js +0 -0
  172. /package/{fsm → fs/fsm}/module.f.d.ts +0 -0
  173. /package/{fsm → fs/fsm}/module.f.js +0 -0
  174. /package/{fsm → fs/fsm}/test.f.d.ts +0 -0
  175. /package/{fsm → fs/fsm}/test.f.js +0 -0
  176. /package/{html → fs/html}/test.f.d.ts +0 -0
  177. /package/{html → fs/html}/test.f.js +0 -0
  178. /package/{io → fs/io}/module.d.ts +0 -0
  179. /package/{io → fs/io}/module.f.d.ts +0 -0
  180. /package/{io → fs/io}/module.f.js +0 -0
  181. /package/{io → fs/io}/module.js +0 -0
  182. /package/{io → fs/io}/virtual/module.f.d.ts +0 -0
  183. /package/{io → fs/io}/virtual/module.f.js +0 -0
  184. /package/{js → fs/js}/tokenizer/module.f.d.ts +0 -0
  185. /package/{js → fs/js}/tokenizer/test.f.d.ts +0 -0
  186. /package/{js → fs/js}/tokenizer/test.f.js +0 -0
  187. /package/{json → fs/json}/module.f.d.ts +0 -0
  188. /package/{json → fs/json}/module.f.js +0 -0
  189. /package/{json → fs/json}/parser/module.f.d.ts +0 -0
  190. /package/{json → fs/json}/parser/module.f.js +0 -0
  191. /package/{json → fs/json}/parser/test.f.d.ts +0 -0
  192. /package/{json → fs/json}/parser/test.f.js +0 -0
  193. /package/{json → fs/json}/serializer/module.f.d.ts +0 -0
  194. /package/{json → fs/json}/serializer/module.f.js +0 -0
  195. /package/{json → fs/json}/serializer/test.f.d.ts +0 -0
  196. /package/{json → fs/json}/serializer/test.f.js +0 -0
  197. /package/{json → fs/json}/test.f.d.ts +0 -0
  198. /package/{json → fs/json}/test.f.js +0 -0
  199. /package/{json → fs/json}/tokenizer/module.f.d.ts +0 -0
  200. /package/{json → fs/json}/tokenizer/test.f.d.ts +0 -0
  201. /package/{json → fs/json}/tokenizer/test.f.js +0 -0
  202. /package/{path → fs/path}/module.f.js +0 -0
  203. /package/{path → fs/path}/test.f.d.ts +0 -0
  204. /package/{path → fs/path}/test.f.js +0 -0
  205. /package/{text → fs/text}/ascii/module.f.d.ts +0 -0
  206. /package/{text → fs/text}/ascii/module.f.js +0 -0
  207. /package/{text → fs/text}/ascii/test.f.d.ts +0 -0
  208. /package/{text → fs/text}/ascii/test.f.js +0 -0
  209. /package/{text → fs/text}/module.f.js +0 -0
  210. /package/{text → fs/text}/sgr/module.f.d.ts +0 -0
  211. /package/{text → fs/text}/sgr/module.f.js +0 -0
  212. /package/{text → fs/text}/sgr/test.f.d.ts +0 -0
  213. /package/{text → fs/text}/sgr/test.f.js +0 -0
  214. /package/{text → fs/text}/test.f.d.ts +0 -0
  215. /package/{text → fs/text}/test.f.js +0 -0
  216. /package/{text → fs/text}/utf16/module.f.d.ts +0 -0
  217. /package/{text → fs/text}/utf16/test.f.d.ts +0 -0
  218. /package/{text → fs/text}/utf16/test.f.js +0 -0
  219. /package/{text → fs/text}/utf8/module.f.d.ts +0 -0
  220. /package/{text → fs/text}/utf8/test.f.d.ts +0 -0
  221. /package/{text → fs/text}/utf8/test.f.js +0 -0
  222. /package/{types → fs/types}/array/module.f.d.ts +0 -0
  223. /package/{types → fs/types}/array/module.f.js +0 -0
  224. /package/{types → fs/types}/array/test.f.d.ts +0 -0
  225. /package/{types → fs/types}/array/test.f.js +0 -0
  226. /package/{types → fs/types}/bigfloat/module.f.d.ts +0 -0
  227. /package/{types → fs/types}/bigfloat/module.f.js +0 -0
  228. /package/{types → fs/types}/bigfloat/test.f.d.ts +0 -0
  229. /package/{types → fs/types}/bigfloat/test.f.js +0 -0
  230. /package/{types → fs/types}/bigint/module.f.d.ts +0 -0
  231. /package/{types → fs/types}/bigint/module.f.js +0 -0
  232. /package/{types → fs/types}/bigint/test.f.d.ts +0 -0
  233. /package/{types → fs/types}/bigint/test.f.js +0 -0
  234. /package/{types → fs/types}/bit_vec/test.f.d.ts +0 -0
  235. /package/{types → fs/types}/bit_vec/test.f.js +0 -0
  236. /package/{types → fs/types}/btree/find/module.f.d.ts +0 -0
  237. /package/{types → fs/types}/btree/find/module.f.js +0 -0
  238. /package/{types → fs/types}/btree/find/test.f.d.ts +0 -0
  239. /package/{types → fs/types}/btree/find/test.f.js +0 -0
  240. /package/{types → fs/types}/btree/module.f.d.ts +0 -0
  241. /package/{types → fs/types}/btree/module.f.js +0 -0
  242. /package/{types → fs/types}/btree/remove/module.f.d.ts +0 -0
  243. /package/{types → fs/types}/btree/remove/module.f.js +0 -0
  244. /package/{types → fs/types}/btree/remove/test.f.d.ts +0 -0
  245. /package/{types → fs/types}/btree/remove/test.f.js +0 -0
  246. /package/{types → fs/types}/btree/set/module.f.d.ts +0 -0
  247. /package/{types → fs/types}/btree/set/module.f.js +0 -0
  248. /package/{types → fs/types}/btree/set/test.f.d.ts +0 -0
  249. /package/{types → fs/types}/btree/set/test.f.js +0 -0
  250. /package/{types → fs/types}/btree/test.f.d.ts +0 -0
  251. /package/{types → fs/types}/btree/test.f.js +0 -0
  252. /package/{types → fs/types}/btree/types/module.f.d.ts +0 -0
  253. /package/{types → fs/types}/btree/types/module.f.js +0 -0
  254. /package/{types → fs/types}/byte_set/module.f.d.ts +0 -0
  255. /package/{types → fs/types}/byte_set/module.f.js +0 -0
  256. /package/{types → fs/types}/byte_set/test.f.d.ts +0 -0
  257. /package/{types → fs/types}/byte_set/test.f.js +0 -0
  258. /package/{types → fs/types}/effects/mock/module.f.d.ts +0 -0
  259. /package/{types → fs/types}/effects/mock/module.f.js +0 -0
  260. /package/{types → fs/types}/effects/module.d.ts +0 -0
  261. /package/{types → fs/types}/effects/module.f.js +0 -0
  262. /package/{types → fs/types}/effects/module.js +0 -0
  263. /package/{types → fs/types}/effects/node/module.f.d.ts +0 -0
  264. /package/{types → fs/types}/effects/node/module.f.js +0 -0
  265. /package/{types → fs/types}/effects/node/test.f.d.ts +0 -0
  266. /package/{types → fs/types}/effects/node/test.f.js +0 -0
  267. /package/{types → fs/types}/effects/node/virtual/module.f.js +0 -0
  268. /package/{types → fs/types}/function/compare/module.f.d.ts +0 -0
  269. /package/{types → fs/types}/function/compare/module.f.js +0 -0
  270. /package/{types → fs/types}/function/compare/test.f.d.ts +0 -0
  271. /package/{types → fs/types}/function/compare/test.f.js +0 -0
  272. /package/{types → fs/types}/function/module.f.d.ts +0 -0
  273. /package/{types → fs/types}/function/module.f.js +0 -0
  274. /package/{types → fs/types}/function/test.f.d.ts +0 -0
  275. /package/{types → fs/types}/function/test.f.js +0 -0
  276. /package/{types → fs/types}/list/module.f.d.ts +0 -0
  277. /package/{types → fs/types}/list/test.f.d.ts +0 -0
  278. /package/{types → fs/types}/list/test.f.js +0 -0
  279. /package/{types → fs/types}/map/module.f.d.ts +0 -0
  280. /package/{types → fs/types}/map/module.f.js +0 -0
  281. /package/{types → fs/types}/map/test.f.d.ts +0 -0
  282. /package/{types → fs/types}/map/test.f.js +0 -0
  283. /package/{types → fs/types}/monoid/module.f.d.ts +0 -0
  284. /package/{types → fs/types}/monoid/module.f.js +0 -0
  285. /package/{types → fs/types}/monoid/test.f.d.ts +0 -0
  286. /package/{types → fs/types}/monoid/test.f.js +0 -0
  287. /package/{types → fs/types}/nibble_set/module.f.d.ts +0 -0
  288. /package/{types → fs/types}/nibble_set/module.f.js +0 -0
  289. /package/{types → fs/types}/nibble_set/test.f.d.ts +0 -0
  290. /package/{types → fs/types}/nibble_set/test.f.js +0 -0
  291. /package/{types → fs/types}/nominal/module.f.d.ts +0 -0
  292. /package/{types → fs/types}/nominal/module.f.js +0 -0
  293. /package/{types → fs/types}/nominal/test.f.d.ts +0 -0
  294. /package/{types → fs/types}/nominal/test.f.js +0 -0
  295. /package/{types → fs/types}/nullable/module.f.d.ts +0 -0
  296. /package/{types → fs/types}/nullable/module.f.js +0 -0
  297. /package/{types → fs/types}/nullable/test.f.d.ts +0 -0
  298. /package/{types → fs/types}/nullable/test.f.js +0 -0
  299. /package/{types → fs/types}/number/module.f.d.ts +0 -0
  300. /package/{types → fs/types}/number/module.f.js +0 -0
  301. /package/{types → fs/types}/number/test.f.d.ts +0 -0
  302. /package/{types → fs/types}/number/test.f.js +0 -0
  303. /package/{types → fs/types}/object/module.f.d.ts +0 -0
  304. /package/{types → fs/types}/object/module.f.js +0 -0
  305. /package/{types → fs/types}/object/test.f.d.ts +0 -0
  306. /package/{types → fs/types}/object/test.f.js +0 -0
  307. /package/{types → fs/types}/option/module.f.d.ts +0 -0
  308. /package/{types → fs/types}/option/module.f.js +0 -0
  309. /package/{types → fs/types}/ordered_map/module.f.d.ts +0 -0
  310. /package/{types → fs/types}/ordered_map/module.f.js +0 -0
  311. /package/{types → fs/types}/ordered_map/test.f.d.ts +0 -0
  312. /package/{types → fs/types}/ordered_map/test.f.js +0 -0
  313. /package/{types → fs/types}/prime_field/module.f.d.ts +0 -0
  314. /package/{types → fs/types}/prime_field/module.f.js +0 -0
  315. /package/{types → fs/types}/prime_field/test.f.d.ts +0 -0
  316. /package/{types → fs/types}/prime_field/test.f.js +0 -0
  317. /package/{types → fs/types}/range/module.f.d.ts +0 -0
  318. /package/{types → fs/types}/range/module.f.js +0 -0
  319. /package/{types → fs/types}/range/test.f.d.ts +0 -0
  320. /package/{types → fs/types}/range/test.f.js +0 -0
  321. /package/{types → fs/types}/range_map/module.f.d.ts +0 -0
  322. /package/{types → fs/types}/range_map/module.f.js +0 -0
  323. /package/{types → fs/types}/range_map/test.f.d.ts +0 -0
  324. /package/{types → fs/types}/range_map/test.f.js +0 -0
  325. /package/{types → fs/types}/result/module.d.ts +0 -0
  326. /package/{types → fs/types}/result/module.f.d.ts +0 -0
  327. /package/{types → fs/types}/result/module.f.js +0 -0
  328. /package/{types → fs/types}/result/module.js +0 -0
  329. /package/{types → fs/types}/result/test.f.d.ts +0 -0
  330. /package/{types → fs/types}/result/test.f.js +0 -0
  331. /package/{types → fs/types}/rtti/module.f.d.ts +0 -0
  332. /package/{types → fs/types}/rtti/module.f.js +0 -0
  333. /package/{types → fs/types}/rtti/test.f.d.ts +0 -0
  334. /package/{types → fs/types}/rtti/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
@@ -0,0 +1,112 @@
1
+ import { assert, assertEq } from "../../../dev/module.f.js";
2
+ import { compress, level3Id } from "../../id/module.f.js";
3
+ import { emptyEncodeState, encode } from "./module.f.js";
4
+ const add = (l, r, m, isSymbol, s) => [...s, [l, r, m, isSymbol]];
5
+ const enc = encode(add);
6
+ const initial = emptyEncodeState([]);
7
+ // Run a complete valid word from a clean state; throws if no output is produced.
8
+ const runWord = (symbols) => {
9
+ let state = initial;
10
+ for (const s of symbols) {
11
+ const [out, newState] = enc(s, state);
12
+ state = newState;
13
+ if (out !== undefined) {
14
+ return [out, state[0]];
15
+ }
16
+ }
17
+ throw symbols;
18
+ };
19
+ // Every stored triple must satisfy m === compress(l, r).
20
+ const verifyStorage = (storage) => {
21
+ for (const [l, r, m] of storage) {
22
+ assertEq(m, compress(l, r));
23
+ }
24
+ };
25
+ const s0 = level3Id(0n);
26
+ const s1 = level3Id(1n);
27
+ export default {
28
+ // Minimum word [s0, t] with t == s0
29
+ min_equal: () => {
30
+ const [out, storage] = runWord([s0, s0]);
31
+ assertEq(out, compress(s0, s0));
32
+ assertEq(storage.length, 1);
33
+ verifyStorage(storage);
34
+ },
35
+ // Minimum word [s0, t] with t > s0
36
+ min_greater: () => {
37
+ const [out, storage] = runWord([s0, s1]);
38
+ assertEq(out, compress(s0, s1));
39
+ assertEq(storage.length, 1);
40
+ verifyStorage(storage);
41
+ },
42
+ // All symbols before the terminator return undefined
43
+ intermediate_undefined: () => {
44
+ const [r0, st0] = enc(s1, initial);
45
+ assert(r0 === undefined);
46
+ const [r1, st1] = enc(s0, st0);
47
+ assert(r1 === undefined);
48
+ const [r2] = enc(s1, st1);
49
+ assert(r2 !== undefined);
50
+ },
51
+ // Three-symbol word [s0, s1, t]: end merges (s0,s1), then create merges (root, t)
52
+ three_symbol: () => {
53
+ const [out, storage] = runWord([s1, s0, s0]);
54
+ assertEq(out, compress(compress(s1, s0), s0));
55
+ assertEq(storage.length, 2);
56
+ verifyStorage(storage);
57
+ // first add: merge of the two decreasing-prefix symbols during end
58
+ assertEq(storage[0][0], s1);
59
+ assertEq(storage[0][1], s0);
60
+ // second add: merge of trie root with terminator
61
+ assertEq(storage[1][0], compress(s1, s0));
62
+ assertEq(storage[1][1], s0);
63
+ },
64
+ // Output equals the merged value in the last add call
65
+ output_is_last_add: () => {
66
+ const [out, storage] = runWord([s1, s0, s1]);
67
+ assertEq(out, storage.at(-1)[2]);
68
+ },
69
+ // Stack is empty after flush; storage is preserved
70
+ state_reset: () => {
71
+ const st1 = enc(s0, initial)[1];
72
+ const [, st2] = enc(s0, st1);
73
+ assertEq(st2[1].length, 0);
74
+ assertEq(st2[0].length, 1);
75
+ },
76
+ // Storage grows across consecutive words (not wiped on flush)
77
+ storage_accumulates: () => {
78
+ const st1 = enc(s0, initial)[1];
79
+ const st2 = enc(s1, st1)[1]; // flush [s0, s1]
80
+ const st3 = enc(s0, st2)[1];
81
+ const [, st4] = enc(s0, st3); // flush [s0, s0]
82
+ assertEq(st4[0].length, 2);
83
+ verifyStorage(st4[0]);
84
+ },
85
+ // Two consecutive words encode independently and correctly
86
+ two_words: () => {
87
+ const st1 = enc(s0, initial)[1];
88
+ const [r1, st2] = enc(s1, st1);
89
+ assertEq(r1, compress(s0, s1));
90
+ const st3 = enc(s0, st2)[1];
91
+ const [r2] = enc(s0, st3);
92
+ assertEq(r2, compress(s0, s0));
93
+ },
94
+ // Different words produce different hashes
95
+ non_commutative: () => {
96
+ const [out1] = runWord([s0, s1]);
97
+ const [out2] = runWord([s1, s0, s1]);
98
+ assert(out1 !== out2);
99
+ },
100
+ // Trie-internal merges have isSymbol=false; only the terminal merge has isSymbol=true
101
+ isSymbol_terminal_only: () => {
102
+ const [, storage] = runWord([s1, s0, s0]);
103
+ assert(storage[0][3] === false); // Patricia trie merge
104
+ assert(storage[1][3] === true); // terminal compress(root, t)
105
+ },
106
+ // Single-step word: no trie merges, exactly one isSymbol=true
107
+ isSymbol_min_word: () => {
108
+ const [, storage] = runWord([s0, s0]);
109
+ assertEq(storage.length, 1);
110
+ assert(storage[0][3] === true);
111
+ },
112
+ };
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Bijective encoding between words of level-k symbols and single symbols of level k+1,
3
+ * for the first three literal SUL levels.
4
+ *
5
+ * @module
6
+ */
7
+ import { type Vec } from '../../../types/bit_vec/module.f.ts';
8
+ import type { Func } from '../../../types/function/module.f.ts';
9
+ import { type Equal, type StateScan } from '../../../types/function/operator/module.f.ts';
10
+ import { type List } from '../../../types/list/module.f.ts';
11
+ export declare const symbolToString: (s: bigint) => string;
12
+ export type Word = readonly bigint[];
13
+ export declare const wordToString: (word: List<bigint>) => string;
14
+ export declare const wordEqual: Equal<List<bigint>>;
15
+ /**
16
+ * Streaming encoder state: `[last, part]`.
17
+ * - `last` — the most recently consumed input symbol, or `undefined` before any symbol is seen.
18
+ * - `part` — accumulated index offset from the decreasing prefix consumed so far.
19
+ */
20
+ export type EncodeState = readonly [bigint | undefined, bigint];
21
+ /** Initial encoder state: no symbols seen, zero offset. */
22
+ export declare const emptyEncodeState: EncodeState;
23
+ /**
24
+ * A literal SUL level with finite alphabet `[0, n)`.
25
+ */
26
+ export type Level = {
27
+ /** Number of valid words whose first symbol is ≤ `i`. */
28
+ readonly sum: (i: bigint) => bigint;
29
+ /** Inverse of {@link Level.encode}: restores the complete word from a symbol. */
30
+ readonly decode: (i: bigint) => List<bigint>;
31
+ /** Streaming encoder: processes one input symbol at a time, emitting an output symbol only
32
+ * when the terminating symbol `t >= last` arrives. */
33
+ readonly encode: StateScan<bigint, EncodeState, bigint | undefined>;
34
+ };
35
+ /**
36
+ * Creates a {@link Level} for alphabet size `n = 2^e + 1`.
37
+ *
38
+ * The first three levels for a tree starting from a binary alphabet:
39
+ *
40
+ * | `e` | `n` |
41
+ * |------|--------|
42
+ * | `0` | `2` |
43
+ * | `2` | `5` |
44
+ * | `7` | `0x81` |
45
+ *
46
+ * @param e `log2(n - 1)`
47
+ */
48
+ export declare const level: (e: bigint) => Level;
49
+ /** Combined encoder state for the three-level literal pipeline (L1 → L2 → L3). */
50
+ export type PipelineState = readonly [EncodeState, EncodeState, EncodeState];
51
+ /** Initial state for the three-level literal pipeline. */
52
+ export declare const emptyPipelineState: PipelineState;
53
+ /**
54
+ * Advances the three-level literal pipeline by one bit.
55
+ * Returns a level-3 symbol whenever the pipeline emits, otherwise `undefined`.
56
+ */
57
+ export declare const pipelineStep: StateScan<bigint, PipelineState, bigint | undefined>;
58
+ export type LiteralToVec = Func<bigint, Vec>;
59
+ /** Decodes a level-1 symbol to its canonical MSB bit vector. */
60
+ export declare const literal1ToVec: LiteralToVec;
61
+ /** Decodes a level-2 symbol to its canonical MSB bit vector (via level-1 decoding). */
62
+ export declare const literal2ToVec: LiteralToVec;
63
+ /** Decodes a level-3 symbol to its canonical MSB bit vector (via level-2 and level-1 decoding). */
64
+ export declare const literal3ToVec: LiteralToVec;
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Bijective encoding between words of level-k symbols and single symbols of level k+1,
3
+ * for the first three literal SUL levels.
4
+ *
5
+ * @module
6
+ */
7
+ import { log2 } from "../../../types/bigint/module.f.js";
8
+ import { listToVec, msb, vec } from "../../../types/bit_vec/module.f.js";
9
+ import { strictEqual } from "../../../types/function/operator/module.f.js";
10
+ import { equal, map } from "../../../types/list/module.f.js";
11
+ import { join } from "../../../types/string/module.f.js";
12
+ export const symbolToString = (s) => s.toString(16);
13
+ export const wordToString = (word) => join(',')(map(symbolToString)(word));
14
+ export const wordEqual = equal(strictEqual);
15
+ /** Initial encoder state: no symbols seen, zero offset. */
16
+ export const emptyEncodeState = [undefined, 0n];
17
+ /**
18
+ * Creates a {@link Level} for alphabet size `n = 2^e + 1`.
19
+ *
20
+ * The first three levels for a tree starting from a binary alphabet:
21
+ *
22
+ * | `e` | `n` |
23
+ * |------|--------|
24
+ * | `0` | `2` |
25
+ * | `2` | `5` |
26
+ * | `7` | `0x81` |
27
+ *
28
+ * @param e `log2(n - 1)`
29
+ */
30
+ export const level = (e) => {
31
+ // m = n - 1
32
+ const m = 1n << e;
33
+ const n = m + 1n;
34
+ // k = n - 2
35
+ const k = m - 1n;
36
+ // m2 = 2 * m
37
+ const m2 = m << 1n;
38
+ const e1 = e + 1n;
39
+ const sum = (i) => (m2 << i) + i - k;
40
+ const decode = (i) => () => {
41
+ const r = log2((i + k) >> e1);
42
+ const s0 = sum(r) > i ? r : r + 1n;
43
+ const s1 = i - sum(s0) + n;
44
+ return s1 >= s0 ? [s0, s1] : {
45
+ first: s0,
46
+ tail: decode(i - sum(s0 - 1n))
47
+ };
48
+ };
49
+ return {
50
+ sum,
51
+ decode,
52
+ encode: (i, [last, part]) => last === undefined ? [undefined, [i, 0n]] :
53
+ last > i ? [undefined, [i, part + sum(last - 1n)]] :
54
+ [part + sum(last) + i - n, emptyEncodeState]
55
+ };
56
+ };
57
+ const l1 = level(0n);
58
+ const l2 = level(2n);
59
+ const l3 = level(7n);
60
+ /** Initial state for the three-level literal pipeline. */
61
+ export const emptyPipelineState = [emptyEncodeState, emptyEncodeState, emptyEncodeState];
62
+ /**
63
+ * Advances the three-level literal pipeline by one bit.
64
+ * Returns a level-3 symbol whenever the pipeline emits, otherwise `undefined`.
65
+ */
66
+ export const pipelineStep = (bit, [l1s, l2s, l3s]) => {
67
+ const [l1Out, newL1s] = l1.encode(bit, l1s);
68
+ if (l1Out === undefined)
69
+ return [undefined, [newL1s, l2s, l3s]];
70
+ const [l2Out, newL2s] = l2.encode(l1Out, l2s);
71
+ if (l2Out === undefined)
72
+ return [undefined, [newL1s, newL2s, l3s]];
73
+ const [l3Out, newL3s] = l3.encode(l2Out, l3s);
74
+ return [l3Out, [newL1s, newL2s, newL3s]];
75
+ };
76
+ const concat = listToVec(msb);
77
+ const vec1 = vec(1n);
78
+ const literalToVec = (prior, e) => {
79
+ const m = map(prior);
80
+ const { decode } = level(e);
81
+ return literal => concat(m(decode(literal)));
82
+ };
83
+ /** Decodes a level-1 symbol to its canonical MSB bit vector. */
84
+ export const literal1ToVec = literalToVec(vec1, 0n);
85
+ /** Decodes a level-2 symbol to its canonical MSB bit vector (via level-1 decoding). */
86
+ export const literal2ToVec = literalToVec(literal1ToVec, 2n);
87
+ /** Decodes a level-3 symbol to its canonical MSB bit vector (via level-2 and level-1 decoding). */
88
+ export const literal3ToVec = literalToVec(literal2ToVec, 7n);
@@ -0,0 +1,12 @@
1
+ declare const _default: {
2
+ x2: () => void;
3
+ x5: () => void;
4
+ x81: () => void;
5
+ toVec: {
6
+ level1: () => void;
7
+ level2: () => void;
8
+ level3: () => void;
9
+ };
10
+ pipeline: () => void;
11
+ };
12
+ export default _default;