functionalscript 0.19.0 → 0.21.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 (256) hide show
  1. package/fs/asn.1/{test.f.d.ts → proof.f.d.ts} +1 -2
  2. package/fs/asn.1/{test.f.js → proof.f.js} +1 -1
  3. package/fs/asserts/module.f.d.ts +4 -0
  4. package/fs/asserts/module.f.js +6 -0
  5. package/fs/base128/proof.f.d.ts +1 -0
  6. package/fs/base128/{test.f.js → proof.f.js} +1 -1
  7. package/fs/bnf/data/{test.f.d.ts → proof.f.d.ts} +1 -2
  8. package/fs/bnf/data/{test.f.js → proof.f.js} +1 -1
  9. package/fs/bnf/proof.f.d.ts +3 -0
  10. package/fs/bnf/{test.f.js → proof.f.js} +1 -1
  11. package/fs/cas/module.f.js +9 -23
  12. package/fs/cas/proof.f.d.ts +4 -0
  13. package/fs/cas/proof.f.js +37 -0
  14. package/fs/cbase32/{test.f.d.ts → proof.f.d.ts} +1 -2
  15. package/fs/cbase32/{test.f.js → proof.f.js} +1 -1
  16. package/fs/ci/bun/module.f.js +2 -7
  17. package/fs/ci/common/module.f.d.ts +2 -1
  18. package/fs/ci/common/module.f.js +7 -9
  19. package/fs/ci/config/module.f.d.ts +12 -3
  20. package/fs/ci/config/module.f.js +24 -4
  21. package/fs/ci/deno/module.f.js +2 -5
  22. package/fs/ci/node/module.f.js +14 -9
  23. package/fs/ci/playwright/module.f.js +5 -8
  24. package/fs/ci/{test.f.d.ts → proof.f.d.ts} +1 -2
  25. package/fs/ci/{test.f.js → proof.f.js} +2 -2
  26. package/fs/ci/rust/module.f.js +3 -9
  27. package/fs/crypto/hmac/{test.f.d.ts → proof.f.d.ts} +1 -2
  28. package/fs/crypto/hmac/{test.f.js → proof.f.js} +1 -1
  29. package/fs/crypto/secp/{test.f.d.ts → proof.f.d.ts} +1 -2
  30. package/fs/crypto/secp/{test.f.js → proof.f.js} +1 -1
  31. package/fs/crypto/sha2/{test.f.d.ts → proof.f.d.ts} +1 -2
  32. package/fs/crypto/sha2/{test.f.js → proof.f.js} +1 -1
  33. package/fs/crypto/sign/{test.f.d.ts → proof.f.d.ts} +1 -2
  34. package/fs/crypto/sign/{test.f.js → proof.f.js} +1 -1
  35. package/fs/dev/module.f.d.ts +28 -5
  36. package/fs/dev/module.f.js +38 -28
  37. package/fs/dev/{test.f.d.ts → proof.f.d.ts} +5 -2
  38. package/fs/dev/{test.f.js → proof.f.js} +26 -2
  39. package/fs/dev/version/proof.f.d.ts +3 -0
  40. package/fs/dev/version/{test.f.js → proof.f.js} +1 -1
  41. package/fs/djs/ast/{test.f.d.ts → proof.f.d.ts} +1 -2
  42. package/fs/djs/ast/{test.f.js → proof.f.js} +1 -1
  43. package/fs/djs/parser/{test.f.d.ts → proof.f.d.ts} +1 -2
  44. package/fs/djs/parser/{test.f.js → proof.f.js} +1 -1
  45. package/fs/djs/{test.f.d.ts → proof.f.d.ts} +1 -2
  46. package/fs/djs/{test.f.js → proof.f.js} +1 -1
  47. package/fs/djs/serializer/module.f.d.ts +2 -2
  48. package/fs/djs/serializer/module.f.js +47 -79
  49. package/fs/djs/serializer/{test.f.d.ts → proof.f.d.ts} +1 -2
  50. package/fs/djs/serializer/{test.f.js → proof.f.js} +8 -8
  51. package/fs/djs/tokenizer/{test.f.d.ts → proof.f.d.ts} +1 -2
  52. package/fs/djs/tokenizer/{test.f.js → proof.f.js} +1 -1
  53. package/fs/djs/tokenizer-new/module.f.js +1 -1
  54. package/fs/djs/tokenizer-new/{test.f.d.ts → proof.f.d.ts} +1 -2
  55. package/fs/djs/tokenizer-new/{test.f.js → proof.f.js} +1 -1
  56. package/fs/djs/transpiler/module.f.d.ts +15 -0
  57. package/fs/djs/transpiler/module.f.js +10 -2
  58. package/fs/djs/transpiler/{test.f.d.ts → proof.f.d.ts} +1 -2
  59. package/fs/djs/transpiler/{test.f.js → proof.f.js} +1 -1
  60. package/fs/{dev/tf → emergent-testing}/module.f.d.ts +66 -8
  61. package/fs/{dev/tf → emergent-testing}/module.f.js +101 -34
  62. package/fs/{dev/tf → emergent-testing}/module.js +2 -2
  63. package/fs/{dev/tf/test.f.d.ts → emergent-testing/proof.f.d.ts} +28 -0
  64. package/fs/{dev/tf/test.f.js → emergent-testing/proof.f.js} +119 -40
  65. package/fs/emergent-testing/scenarios/async-subtests.fail.d.ts +6 -0
  66. package/fs/emergent-testing/scenarios/async-subtests.fail.js +9 -0
  67. package/fs/emergent-testing/scenarios/async-subtests.pass.d.ts +6 -0
  68. package/fs/emergent-testing/scenarios/async-subtests.pass.js +9 -0
  69. package/fs/emergent-testing/scenarios/async.fail.d.ts +3 -0
  70. package/fs/emergent-testing/scenarios/async.fail.js +6 -0
  71. package/fs/emergent-testing/scenarios/async.pass.d.ts +3 -0
  72. package/fs/emergent-testing/scenarios/async.pass.js +5 -0
  73. package/fs/emergent-testing/scenarios/fail.fail.d.ts +3 -0
  74. package/fs/emergent-testing/scenarios/fail.fail.js +3 -0
  75. package/fs/emergent-testing/scenarios/return-value.pass.d.ts +3 -0
  76. package/fs/emergent-testing/scenarios/return-value.pass.js +4 -0
  77. package/fs/emergent-testing/scenarios/thenable.pass.d.ts +5 -0
  78. package/fs/emergent-testing/scenarios/thenable.pass.js +11 -0
  79. package/fs/emergent-testing/scenarios/thenable2.pass.d.ts +5 -0
  80. package/fs/emergent-testing/scenarios/thenable2.pass.js +3 -0
  81. package/fs/emergent-testing/scenarios/throw.pass.d.ts +5 -0
  82. package/fs/{dev/tf/scenarios/throw.pass.f.js → emergent-testing/scenarios/throw.pass.js} +1 -1
  83. package/fs/fjs/module.f.js +4 -5
  84. package/fs/fsc/{test.f.d.ts → proof.f.d.ts} +1 -2
  85. package/fs/fsc/{test.f.js → proof.f.js} +1 -1
  86. package/fs/fsm/proof.f.d.ts +4 -0
  87. package/fs/fsm/{test.f.js → proof.f.js} +1 -1
  88. package/fs/html/{test.f.d.ts → proof.f.d.ts} +1 -2
  89. package/fs/html/{test.f.js → proof.f.js} +1 -1
  90. package/fs/io/module.d.ts +1 -1
  91. package/fs/io/module.f.d.ts +3 -2
  92. package/fs/io/module.f.js +4 -3
  93. package/fs/io/module.js +19 -11
  94. package/fs/js/tokenizer/{test.f.d.ts → proof.f.d.ts} +1 -2
  95. package/fs/js/tokenizer/{test.f.js → proof.f.js} +1 -1
  96. package/fs/json/parser/{test.f.d.ts → proof.f.d.ts} +1 -2
  97. package/fs/json/parser/{test.f.js → proof.f.js} +1 -1
  98. package/fs/json/{test.f.d.ts → proof.f.d.ts} +1 -2
  99. package/fs/json/{test.f.js → proof.f.js} +1 -1
  100. package/fs/json/serializer/{test.f.d.ts → proof.f.d.ts} +1 -2
  101. package/fs/json/serializer/{test.f.js → proof.f.js} +1 -1
  102. package/fs/json/tokenizer/{test.f.d.ts → proof.f.d.ts} +1 -2
  103. package/fs/json/tokenizer/{test.f.js → proof.f.js} +1 -1
  104. package/fs/path/proof.f.d.ts +5 -0
  105. package/fs/path/{test.f.js → proof.f.js} +4 -3
  106. package/fs/sul/id/module.f.js +1 -1
  107. package/fs/sul/id/{test.f.d.ts → proof.f.d.ts} +1 -2
  108. package/fs/sul/id/{test.f.js → proof.f.js} +2 -2
  109. package/fs/sul/level/hash/{test.f.d.ts → proof.f.d.ts} +1 -2
  110. package/fs/sul/level/hash/{test.f.js → proof.f.js} +2 -2
  111. package/fs/sul/level/literal/{test.f.d.ts → proof.f.d.ts} +1 -2
  112. package/fs/sul/level/literal/{test.f.js → proof.f.js} +1 -1
  113. package/fs/sul/{test.f.d.ts → proof.f.d.ts} +1 -2
  114. package/fs/sul/{test.f.js → proof.f.js} +2 -2
  115. package/fs/text/ascii/proof.f.d.ts +3 -0
  116. package/fs/text/ascii/{test.f.js → proof.f.js} +1 -1
  117. package/fs/text/code_point/module.f.d.ts +28 -0
  118. package/fs/text/code_point/module.f.js +31 -0
  119. package/fs/text/{test.f.d.ts → proof.f.d.ts} +1 -2
  120. package/fs/text/{test.f.js → proof.f.js} +1 -1
  121. package/fs/text/sgr/proof.f.d.ts +1 -0
  122. package/fs/text/sgr/{test.f.js → proof.f.js} +1 -1
  123. package/fs/text/utf16/module.f.js +3 -53
  124. package/fs/text/utf16/{test.f.d.ts → proof.f.d.ts} +1 -2
  125. package/fs/text/utf16/{test.f.js → proof.f.js} +1 -1
  126. package/fs/text/utf8/module.f.js +3 -25
  127. package/fs/text/utf8/{test.f.d.ts → proof.f.d.ts} +1 -2
  128. package/fs/text/utf8/{test.f.js → proof.f.js} +1 -1
  129. package/fs/types/array/module.f.js +2 -5
  130. package/fs/types/array/{test.f.d.ts → proof.f.d.ts} +1 -2
  131. package/fs/types/array/{test.f.js → proof.f.js} +1 -1
  132. package/fs/types/bigfloat/{test.f.d.ts → proof.f.d.ts} +1 -2
  133. package/fs/types/bigfloat/{test.f.js → proof.f.js} +1 -1
  134. package/fs/types/bigint/{test.f.d.ts → proof.f.d.ts} +1 -2
  135. package/fs/types/bigint/{test.f.js → proof.f.js} +1 -1
  136. package/fs/types/bit_vec/{test.f.d.ts → proof.f.d.ts} +1 -2
  137. package/fs/types/bit_vec/{test.f.js → proof.f.js} +1 -1
  138. package/fs/types/btree/find/proof.f.d.ts +1 -0
  139. package/fs/types/btree/find/{test.f.js → proof.f.js} +1 -1
  140. package/fs/types/btree/{test.f.d.ts → proof.f.d.ts} +1 -2
  141. package/fs/types/btree/{test.f.js → proof.f.js} +1 -1
  142. package/fs/types/btree/remove/proof.f.d.ts +4 -0
  143. package/fs/types/btree/remove/{test.f.js → proof.f.js} +1 -1
  144. package/fs/types/btree/set/proof.f.d.ts +1 -0
  145. package/fs/types/btree/set/{test.f.js → proof.f.js} +1 -1
  146. package/fs/types/btree/types/module.f.d.ts +8 -0
  147. package/fs/types/btree/types/module.f.js +8 -0
  148. package/fs/types/byte_set/{test.f.d.ts → proof.f.d.ts} +1 -2
  149. package/fs/types/byte_set/{test.f.js → proof.f.js} +1 -1
  150. package/fs/types/effects/module.f.d.ts +17 -0
  151. package/fs/types/effects/module.f.js +17 -0
  152. package/fs/types/effects/node/module.f.d.ts +60 -5
  153. package/fs/types/effects/node/module.f.js +12 -1
  154. package/fs/types/effects/node/{test.f.d.ts → proof.f.d.ts} +1 -2
  155. package/fs/types/effects/node/{test.f.js → proof.f.js} +1 -1
  156. package/fs/types/effects/node/virtual/module.f.js +2 -1
  157. package/fs/types/effects/proof.f.d.ts +11 -0
  158. package/fs/types/effects/proof.f.js +57 -0
  159. package/fs/types/function/compare/proof.f.d.ts +1 -0
  160. package/fs/types/function/compare/{test.f.js → proof.f.js} +1 -1
  161. package/fs/types/function/operator/proof.f.d.ts +12 -0
  162. package/fs/types/function/operator/{test.f.js → proof.f.js} +11 -10
  163. package/fs/types/function/proof.f.d.ts +1 -0
  164. package/fs/types/function/{test.f.js → proof.f.js} +1 -1
  165. package/fs/types/list/{test.f.d.ts → proof.f.d.ts} +2 -2
  166. package/fs/types/list/{test.f.js → proof.f.js} +15 -1
  167. package/fs/types/map/proof.f.d.ts +4 -0
  168. package/fs/types/map/{test.f.js → proof.f.js} +1 -1
  169. package/fs/types/monoid/{test.f.d.ts → proof.f.d.ts} +1 -2
  170. package/fs/types/monoid/{test.f.js → proof.f.js} +1 -1
  171. package/fs/types/nibble_set/{test.f.d.ts → proof.f.d.ts} +1 -2
  172. package/fs/types/nibble_set/{test.f.js → proof.f.js} +1 -1
  173. package/fs/types/nominal/proof.f.d.ts +4 -0
  174. package/fs/types/nominal/{test.f.js → proof.f.js} +1 -1
  175. package/fs/types/nullable/module.f.d.ts +7 -0
  176. package/fs/types/nullable/module.f.js +7 -0
  177. package/fs/types/nullable/proof.f.d.ts +1 -0
  178. package/fs/types/nullable/{test.f.js → proof.f.js} +20 -3
  179. package/fs/types/number/{test.f.d.ts → proof.f.d.ts} +1 -2
  180. package/fs/types/number/{test.f.js → proof.f.js} +1 -1
  181. package/fs/types/object/module.f.js +2 -4
  182. package/fs/types/object/{test.f.d.ts → proof.f.d.ts} +1 -2
  183. package/fs/types/object/{test.f.js → proof.f.js} +1 -1
  184. package/fs/types/ordered_map/{test.f.d.ts → proof.f.d.ts} +1 -2
  185. package/fs/types/ordered_map/{test.f.js → proof.f.js} +1 -1
  186. package/fs/types/patricia_trie/{test.f.d.ts → proof.f.d.ts} +1 -2
  187. package/fs/types/patricia_trie/{test.f.js → proof.f.js} +2 -2
  188. package/fs/types/prime_field/{test.f.d.ts → proof.f.d.ts} +1 -2
  189. package/fs/types/prime_field/{test.f.js → proof.f.js} +1 -1
  190. package/fs/types/range/proof.f.d.ts +1 -0
  191. package/fs/types/range/{test.f.js → proof.f.js} +1 -1
  192. package/fs/types/range_map/{test.f.d.ts → proof.f.d.ts} +1 -2
  193. package/fs/types/range_map/{test.f.js → proof.f.js} +1 -1
  194. package/fs/types/result/proof.f.d.ts +5 -0
  195. package/fs/types/result/{test.f.js → proof.f.js} +18 -2
  196. package/fs/types/rtti/parse/{test.f.d.ts → proof.f.d.ts} +1 -2
  197. package/fs/types/rtti/parse/{test.f.js → proof.f.js} +1 -1
  198. package/fs/types/rtti/{test.f.d.ts → proof.f.d.ts} +1 -2
  199. package/fs/types/rtti/{test.f.js → proof.f.js} +1 -1
  200. package/fs/types/rtti/ts/{test.f.d.ts → proof.f.d.ts} +1 -2
  201. package/fs/types/rtti/ts/{test.f.js → proof.f.js} +1 -1
  202. package/fs/types/rtti/validate/{test.f.d.ts → proof.f.d.ts} +1 -2
  203. package/fs/types/rtti/validate/{test.f.js → proof.f.js} +1 -1
  204. package/fs/types/sorted_list/{test.f.d.ts → proof.f.d.ts} +1 -2
  205. package/fs/types/sorted_list/{test.f.js → proof.f.js} +1 -1
  206. package/fs/types/sorted_set/{test.f.d.ts → proof.f.d.ts} +1 -2
  207. package/fs/types/sorted_set/{test.f.js → proof.f.js} +1 -1
  208. package/fs/types/string/{test.f.d.ts → proof.f.d.ts} +1 -2
  209. package/fs/types/string/{test.f.js → proof.f.js} +1 -1
  210. package/fs/types/string_set/{test.f.d.ts → proof.f.d.ts} +1 -2
  211. package/fs/types/string_set/{test.f.js → proof.f.js} +1 -1
  212. package/fs/types/ts/module.f.d.ts +0 -1
  213. package/fs/types/ts/{test.f.d.ts → proof.f.d.ts} +20 -0
  214. package/fs/types/ts/{test.f.js → proof.f.js} +1 -0
  215. package/fs/types/uint8array/{test.f.d.ts → proof.f.d.ts} +1 -2
  216. package/fs/types/uint8array/{test.f.js → proof.f.js} +1 -1
  217. package/fs/website/proof.f.d.ts +3 -0
  218. package/fs/website/proof.f.js +9 -0
  219. package/issues/demo/sample/{test.f.js → proof.f.js} +1 -1
  220. package/issues/{test.f.d.ts → proof.f.d.ts} +1 -2
  221. package/issues/{test.f.js → proof.f.js} +1 -1
  222. package/nanvm-lib/tests/{test.f.d.ts → proof.f.d.ts} +1 -2
  223. package/nanvm-lib/tests/{test.f.js → proof.f.js} +1 -1
  224. package/nanvm-lib/tests/vm/{test.f.d.ts → proof.f.d.ts} +1 -2
  225. package/nanvm-lib/tests/vm/{test.f.js → proof.f.js} +1 -1
  226. package/package.json +2 -2
  227. package/fs/base128/test.f.d.ts +0 -2
  228. package/fs/bnf/test.f.d.ts +0 -4
  229. package/fs/cas/test.f.d.ts +0 -2
  230. package/fs/cas/test.f.js +0 -1
  231. package/fs/dev/tf/scenarios/fail.fail.f.d.ts +0 -1
  232. package/fs/dev/tf/scenarios/fail.fail.f.js +0 -1
  233. package/fs/dev/tf/scenarios/return-value.pass.f.d.ts +0 -1
  234. package/fs/dev/tf/scenarios/return-value.pass.f.js +0 -2
  235. package/fs/dev/tf/scenarios/throw.pass.f.d.ts +0 -6
  236. package/fs/dev/version/test.f.d.ts +0 -4
  237. package/fs/fsm/test.f.d.ts +0 -5
  238. package/fs/path/test.f.d.ts +0 -3
  239. package/fs/text/ascii/test.f.d.ts +0 -4
  240. package/fs/text/sgr/test.f.d.ts +0 -2
  241. package/fs/types/btree/find/test.f.d.ts +0 -2
  242. package/fs/types/btree/remove/test.f.d.ts +0 -5
  243. package/fs/types/btree/set/test.f.d.ts +0 -2
  244. package/fs/types/function/compare/test.f.d.ts +0 -2
  245. package/fs/types/function/operator/test.f.d.ts +0 -10
  246. package/fs/types/function/test.f.d.ts +0 -2
  247. package/fs/types/map/test.f.d.ts +0 -5
  248. package/fs/types/nominal/test.f.d.ts +0 -5
  249. package/fs/types/nullable/test.f.d.ts +0 -2
  250. package/fs/types/range/test.f.d.ts +0 -2
  251. package/fs/types/result/test.f.d.ts +0 -2
  252. /package/fs/{dev/tf → emergent-testing}/all.test.d.ts +0 -0
  253. /package/fs/{dev/tf → emergent-testing}/all.test.js +0 -0
  254. /package/fs/{dev/tf → emergent-testing}/module.d.ts +0 -0
  255. /package/fs/{dev/tf → emergent-testing}/scenarios/all.d.ts +0 -0
  256. /package/fs/{dev/tf → emergent-testing}/scenarios/all.js +0 -0
@@ -1,5 +1,5 @@
1
- import { map, match, toOption } from "./module.f.js";
2
- export default [
1
+ import { fromUndefined, map, match, toOption } from "./module.f.js";
2
+ export const proof = [
3
3
  () => {
4
4
  const optionSq = map((v) => v * v);
5
5
  const sq3 = optionSq(3);
@@ -29,5 +29,22 @@ export default [
29
29
  if (double(null) !== -1) {
30
30
  throw double(null);
31
31
  }
32
- }
32
+ },
33
+ () => {
34
+ if (fromUndefined(undefined) !== null) {
35
+ throw 0;
36
+ }
37
+ if (fromUndefined(5) !== 5) {
38
+ throw 1;
39
+ }
40
+ if (fromUndefined(0) !== 0) {
41
+ throw 2;
42
+ }
43
+ if (fromUndefined(null) !== null) {
44
+ throw 3;
45
+ }
46
+ if (fromUndefined('') !== '') {
47
+ throw 4;
48
+ }
49
+ },
33
50
  ];
@@ -1,4 +1,4 @@
1
- declare const _default: {
1
+ export declare const proof: {
2
2
  sum: () => void;
3
3
  min: {
4
4
  empty: () => void;
@@ -9,4 +9,3 @@ declare const _default: {
9
9
  standard: () => void;
10
10
  countOnes: (() => void)[];
11
11
  };
12
- export default _default;
@@ -1,5 +1,5 @@
1
1
  import { sum, min, max, cmp, countOnes } from "./module.f.js";
2
- export default {
2
+ export const proof = {
3
3
  sum: () => {
4
4
  const result = sum([2, 3, 4, 5]);
5
5
  if (result !== 14) {
@@ -7,12 +7,10 @@
7
7
  */
8
8
  import { isArray } from "../array/module.f.js";
9
9
  import { iterable } from "../list/module.f.js";
10
+ import { fromUndefined, map } from "../nullable/module.f.js";
10
11
  import { entries as mapEntries, fromEntries as mapFromEntries } from "../ordered_map/module.f.js";
11
12
  const { getOwnPropertyDescriptor, fromEntries: objectFromEntries } = Object;
12
- export const at = name => object => {
13
- const r = getOwnPropertyDescriptor(object, name);
14
- return r === undefined ? null : r.value;
15
- };
13
+ export const at = name => object => map((d) => d.value)(fromUndefined(getOwnPropertyDescriptor(object, name)));
16
14
  export const sort = e => mapEntries(mapFromEntries(e));
17
15
  export const fromEntries = e => objectFromEntries(iterable(e));
18
16
  export const fromMap = m => fromEntries(mapEntries(m));
@@ -1,5 +1,4 @@
1
- declare const _default: {
1
+ export declare const proof: {
2
2
  ctor: () => void;
3
3
  property: () => void;
4
4
  };
5
- export default _default;
@@ -1,5 +1,5 @@
1
1
  import { at } from "./module.f.js";
2
- export default {
2
+ export const proof = {
3
3
  ctor: () => {
4
4
  const a = {};
5
5
  const value = at('constructor')(a);
@@ -1,5 +1,4 @@
1
- declare const _default: {
1
+ export declare const proof: {
2
2
  main: (() => void)[];
3
3
  stress: () => void;
4
4
  };
5
- export default _default;
@@ -1,6 +1,6 @@
1
1
  import { at, setReplace, setReduce, empty, entries, remove } from "./module.f.js";
2
2
  import { toArray } from "../list/module.f.js";
3
- export default {
3
+ export const proof = {
4
4
  main: [
5
5
  () => {
6
6
  let m = setReplace('a')(1)(null);
@@ -1,8 +1,7 @@
1
- declare const _default: {
1
+ export declare const proof: {
2
2
  empty: () => void;
3
3
  singleLeaf: () => void;
4
4
  twoLeaves: () => void;
5
5
  descending: () => void;
6
6
  ascending: () => void;
7
7
  };
8
- export default _default;
@@ -1,4 +1,4 @@
1
- import { assert } from "../../dev/module.f.js";
1
+ import { assert } from "../../asserts/module.f.js";
2
2
  import { emptyState, patriciaTrie } from "./module.f.js";
3
3
  const combine = (a, b) => a * 1000n + b;
4
4
  const create = (a, b, s) => {
@@ -112,7 +112,7 @@ const ascending = () => runExample([
112
112
  [119n, 179n, 200n, 227n, 242n],
113
113
  [119n, 179n, 200n, 227n, 242n, 249n],
114
114
  ], [0, 0, 0, 2, 1, 0, 1, 0, 3, 0, 0, 1, 2, 0, 0, 0]);
115
- export default {
115
+ export const proof = {
116
116
  empty,
117
117
  singleLeaf,
118
118
  twoLeaves,
@@ -1,4 +1,4 @@
1
- declare const _default: {
1
+ export declare const proof: {
2
2
  prime_field_test: () => {
3
3
  neg: () => void;
4
4
  sub: () => void;
@@ -10,4 +10,3 @@ declare const _default: {
10
10
  sqrt: () => void;
11
11
  };
12
12
  };
13
- export default _default;
@@ -1,5 +1,5 @@
1
1
  import { prime_field, sqrt } from "./module.f.js";
2
- export default {
2
+ export const proof = {
3
3
  prime_field_test: () => {
4
4
  const p = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn;
5
5
  const f = prime_field(p);
@@ -0,0 +1 @@
1
+ export declare const proof: () => void;
@@ -1,5 +1,5 @@
1
1
  import { contains } from "./module.f.js";
2
- export default () => {
2
+ export const proof = () => {
3
3
  if (!contains([0, 5])(1)) {
4
4
  throw 1;
5
5
  }
@@ -1,7 +1,6 @@
1
- declare const _default: {
1
+ export declare const proof: {
2
2
  example: () => void;
3
3
  merge: (() => void)[];
4
4
  get: () => (() => void)[];
5
5
  fromRange: () => (() => void)[];
6
6
  };
7
- export default _default;
@@ -11,7 +11,7 @@ const op = {
11
11
  equal: equal(strictEqual),
12
12
  def: []
13
13
  };
14
- export default {
14
+ export const proof = {
15
15
  example: () => {
16
16
  const rmOps = rangeMap({
17
17
  union: a => b => a | b,
@@ -0,0 +1,5 @@
1
+ export declare const proof: {
2
+ example: () => void;
3
+ invertTest: () => void;
4
+ unwrapError: () => void;
5
+ };
@@ -1,5 +1,5 @@
1
1
  import { error, ok, unwrap, invert } from "./module.f.js";
2
- export const example = () => {
2
+ const example = () => {
3
3
  const success = ok(42);
4
4
  const failure = error('Something went wrong');
5
5
  if (unwrap(success) !== 42) {
@@ -14,7 +14,7 @@ export const example = () => {
14
14
  throw 'error';
15
15
  }
16
16
  };
17
- export const invertTest = () => {
17
+ const invertTest = () => {
18
18
  const [k0, v0] = invert(ok(42));
19
19
  if (k0 !== 'error' || v0 !== 42) {
20
20
  throw [k0, v0];
@@ -24,3 +24,19 @@ export const invertTest = () => {
24
24
  throw [k1, v1];
25
25
  }
26
26
  };
27
+ const unwrapError = () => {
28
+ let caught = false;
29
+ try {
30
+ unwrap(error('oops'));
31
+ }
32
+ catch (e) {
33
+ if (e !== 'oops') {
34
+ throw e;
35
+ }
36
+ caught = true;
37
+ }
38
+ if (!caught) {
39
+ throw 'expected throw';
40
+ }
41
+ };
42
+ export const proof = { example, invertTest, unwrapError };
@@ -1,4 +1,4 @@
1
- declare const _default: {
1
+ export declare const proof: {
2
2
  boolean: {
3
3
  ok: () => void;
4
4
  error: () => void;
@@ -113,4 +113,3 @@ declare const _default: {
113
113
  recordOfRecords: () => void;
114
114
  };
115
115
  };
116
- export default _default;
@@ -55,7 +55,7 @@ const assertDeepEqual = (a, b) => {
55
55
  }
56
56
  throw `not deep-equal: ${String(a)} vs ${String(b)}`;
57
57
  };
58
- export default {
58
+ export const proof = {
59
59
  boolean: {
60
60
  ok: () => {
61
61
  assertOk(parse(boolean)(true));
@@ -1,6 +1,5 @@
1
- declare const _default: {
1
+ export declare const proof: {
2
2
  typeof: {
3
3
  [k: string]: (() => void)[];
4
4
  };
5
5
  };
6
- export default _default;
@@ -7,7 +7,7 @@ const tests = {
7
7
  object: [null, {}, []],
8
8
  function: [() => undefined]
9
9
  };
10
- export default {
10
+ export const proof = {
11
11
  typeof: Object.fromEntries(Object.entries(tests).map(([k, a]) => [k, a.map(v => () => {
12
12
  if (typeof v !== k) {
13
13
  throw `typeof ${v} !== ${k}`;
@@ -1,4 +1,4 @@
1
- declare const _default: {
1
+ export declare const proof: {
2
2
  tag0: {
3
3
  boolean: () => void;
4
4
  number: () => void;
@@ -57,4 +57,3 @@ declare const _default: {
57
57
  struct: () => void;
58
58
  };
59
59
  };
60
- export default _default;
@@ -14,7 +14,7 @@ const eq = (rtti, expected) => {
14
14
  throw `expected ${JSON.stringify(expected)}, got ${JSON.stringify(result)}`;
15
15
  }
16
16
  };
17
- export default {
17
+ export const proof = {
18
18
  tag0: {
19
19
  boolean: () => eq(boolean, 'boolean'),
20
20
  number: () => eq(number, 'number'),
@@ -1,4 +1,4 @@
1
- declare const _default: {
1
+ export declare const proof: {
2
2
  boolean: {
3
3
  ok: () => void;
4
4
  error: () => void;
@@ -114,4 +114,3 @@ declare const _default: {
114
114
  recordOfRecords: () => void;
115
115
  };
116
116
  };
117
- export default _default;
@@ -20,7 +20,7 @@ const assertErrorPath = (expected) => (r) => {
20
20
  }
21
21
  }
22
22
  };
23
- export default {
23
+ export const proof = {
24
24
  boolean: {
25
25
  ok: () => {
26
26
  assertOk(validate(boolean)(true));
@@ -1,5 +1,4 @@
1
- declare const _default: {
1
+ export declare const proof: {
2
2
  sortedMergre: (() => void)[];
3
3
  find: (() => void)[];
4
4
  };
5
- export default _default;
@@ -6,7 +6,7 @@ import { flip } from "../function/module.f.js";
6
6
  import { cmp } from "../number/module.f.js";
7
7
  const str = stringify(sort);
8
8
  const reverseCmp = flip(cmp);
9
- export default {
9
+ export const proof = {
10
10
  sortedMergre: [
11
11
  () => {
12
12
  const result = str(toArray(merge(cmp)([2, 3, 4])([1, 3, 5])));
@@ -1,7 +1,6 @@
1
- declare const _default: {
1
+ export declare const proof: {
2
2
  example: () => void;
3
3
  union: (() => void)[];
4
4
  intersect: (() => void)[];
5
5
  has: (() => void)[];
6
6
  };
7
- export default _default;
@@ -6,7 +6,7 @@ import { flip } from "../function/module.f.js";
6
6
  import { cmp } from "../number/module.f.js";
7
7
  const str = a => stringify(sort)(a);
8
8
  const reverseCmp = flip(cmp);
9
- export default {
9
+ export const proof = {
10
10
  example: () => {
11
11
  const cmp = (a) => (b) => a < b ? -1 : a > b ? 1 : 0;
12
12
  const setA = [1, 3, 5];
@@ -1,4 +1,4 @@
1
- declare const _default: {
1
+ export declare const proof: {
2
2
  example: () => void;
3
3
  join: {
4
4
  0: () => void;
@@ -20,4 +20,3 @@ declare const _default: {
20
20
  empty: () => void;
21
21
  };
22
22
  };
23
- export default _default;
@@ -1,6 +1,6 @@
1
1
  import { join, concat, repeat, cmp, splitAt } from "./module.f.js";
2
2
  import { repeat as repeatList } from "../list/module.f.js";
3
- export default {
3
+ export const proof = {
4
4
  example: () => {
5
5
  const words = ['hello', 'world'];
6
6
  if (join(' ')(words) !== 'hello world') {
@@ -1,6 +1,5 @@
1
- declare const _default: {
1
+ export declare const proof: {
2
2
  example: () => void;
3
3
  contains: () => void;
4
4
  remove: () => void;
5
5
  };
6
- export default _default;
@@ -1,5 +1,5 @@
1
1
  import { contains, fromValues, remove, set } from "./module.f.js";
2
- export default {
2
+ export const proof = {
3
3
  example: () => {
4
4
  let mySet = fromValues(['apple', 'banana', 'cherry']);
5
5
  if (!contains('banana')(mySet)) {
@@ -6,7 +6,6 @@
6
6
  * @module
7
7
  */
8
8
  export type Equal<A, B> = (<T>() => T extends A ? 1 : 2) extends (<T>() => T extends B ? 1 : 2) ? true : false;
9
- export type Assert<T extends true> = T;
10
9
  /** Functions for emitting TypeScript type expression strings. */
11
10
  export type Printer = {
12
11
  /** Emits a tuple type: `readonly[A, B]` or `[A, B]` when mutable. */
@@ -16,3 +16,23 @@ export declare const printerMutableTuple: () => void;
16
16
  export declare const printerMutableStruct: () => void;
17
17
  export declare const printerMutableArray: () => void;
18
18
  export declare const printerMutableRecord: () => void;
19
+ export declare const proof: {
20
+ primitiveNull: () => void;
21
+ primitiveBigint: () => void;
22
+ primitiveString: () => void;
23
+ primitiveNumberFinite: () => void;
24
+ primitiveNumberInfinite: () => void;
25
+ primitiveUndefined: () => void;
26
+ primitiveBoolean: () => void;
27
+ unionEmpty: () => void;
28
+ unionSingle: () => void;
29
+ unionMulti: () => void;
30
+ printerReadonlyTuple: () => void;
31
+ printerReadonlyStruct: () => void;
32
+ printerReadonlyArray: () => void;
33
+ printerReadonlyRecord: () => void;
34
+ printerMutableTuple: () => void;
35
+ printerMutableStruct: () => void;
36
+ printerMutableArray: () => void;
37
+ printerMutableRecord: () => void;
38
+ };
@@ -109,3 +109,4 @@ export const printerMutableRecord = () => {
109
109
  throw r;
110
110
  }
111
111
  };
112
+ export const proof = { primitiveNull, primitiveBigint, primitiveString, primitiveNumberFinite, primitiveNumberInfinite, primitiveUndefined, primitiveBoolean, unionEmpty, unionSingle, unionMulti, printerReadonlyTuple, printerReadonlyStruct, printerReadonlyArray, printerReadonlyRecord, printerMutableTuple, printerMutableStruct, printerMutableArray, printerMutableRecord };
@@ -1,4 +1,4 @@
1
- declare const _default: {
1
+ export declare const proof: {
2
2
  empty: () => void;
3
3
  roundTrip: () => void;
4
4
  unalignedLength: () => void;
@@ -10,4 +10,3 @@ declare const _default: {
10
10
  utf8RoundTrip: () => void;
11
11
  listToVec: () => void;
12
12
  };
13
- export default _default;
@@ -12,7 +12,7 @@ const assertArrayEq = (a, b) => {
12
12
  throw [a, b];
13
13
  }
14
14
  };
15
- export default {
15
+ export const proof = {
16
16
  empty: () => {
17
17
  const input = new Uint8Array();
18
18
  const vec = toVec(input);
@@ -0,0 +1,3 @@
1
+ export declare const proof: {
2
+ default: () => void;
3
+ };
@@ -0,0 +1,9 @@
1
+ import defaultExport from "./module.f.js";
2
+ export const proof = {
3
+ default: () => {
4
+ const program = defaultExport();
5
+ if (program === undefined) {
6
+ throw 'expected a program effect';
7
+ }
8
+ }
9
+ };
@@ -7,7 +7,7 @@ const arrayOfTests = [
7
7
  }
8
8
  ]
9
9
 
10
- export default {
10
+ export const proof = {
11
11
  arrayOfTests,
12
12
  generatingTests: () => arrayOfTests,
13
13
  }
@@ -1,4 +1,4 @@
1
- declare const _default: {
1
+ export declare const proof: {
2
2
  literal: () => void;
3
3
  ownProperty: {
4
4
  null: {
@@ -18,4 +18,3 @@ declare const _default: {
18
18
  };
19
19
  };
20
20
  };
21
- export default _default;
@@ -1,6 +1,6 @@
1
1
  const at = a => i => Object.getOwnPropertyDescriptor(a, i)?.value;
2
2
  const utf8 = (...x) => x;
3
- export default {
3
+ export const proof = {
4
4
  literal: () => {
5
5
  const x = utf8 `17`;
6
6
  const m = '<html>Hello</html>';
@@ -1,4 +1,4 @@
1
- declare const _default: {
1
+ export declare const proof: {
2
2
  eq: () => {
3
3
  nullish: () => void;
4
4
  boolean: {
@@ -89,4 +89,3 @@ declare const _default: {
89
89
  function: () => void;
90
90
  };
91
91
  };
92
- export default _default;
@@ -12,7 +12,7 @@ const nanRes = (op) => (n) => {
12
12
  throw result;
13
13
  }
14
14
  };
15
- export default {
15
+ export const proof = {
16
16
  eq: () => {
17
17
  const e = (a) => (b) => {
18
18
  if (a === b) { }
@@ -1,4 +1,4 @@
1
- declare const _default: {
1
+ export declare const proof: {
2
2
  stringCoercion: {
3
3
  number: () => void;
4
4
  bool: () => void;
@@ -22,4 +22,3 @@ declare const _default: {
22
22
  };
23
23
  };
24
24
  };
25
- export default _default;
@@ -1,5 +1,5 @@
1
1
  const stringCoercion = String;
2
- export default {
2
+ export const proof = {
3
3
  stringCoercion: {
4
4
  number: () => {
5
5
  if (stringCoercion(123) !== '123') {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "functionalscript",
3
- "version": "0.19.0",
3
+ "version": "0.21.0",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "**/*.js",
@@ -44,7 +44,7 @@
44
44
  },
45
45
  "homepage": "https://github.com/functionalscript/functionalscript#readme",
46
46
  "devDependencies": {
47
- "@playwright/test": "*",
47
+ "@playwright/test": "1",
48
48
  "@types/node": "*",
49
49
  "typescript": "*"
50
50
  }
@@ -1,2 +0,0 @@
1
- declare const _default: () => void;
2
- export default _default;
@@ -1,4 +0,0 @@
1
- declare const _default: {
2
- test: () => void;
3
- };
4
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const _default: () => void;
2
- export default _default;
package/fs/cas/test.f.js DELETED
@@ -1 +0,0 @@
1
- export default () => { };
@@ -1 +0,0 @@
1
- export declare const failing: () => never;
@@ -1 +0,0 @@
1
- export const failing = () => { throw 'intentional failure'; };
@@ -1 +0,0 @@
1
- export declare const outer: () => unknown;
@@ -1,2 +0,0 @@
1
- const inner = () => { };
2
- export const outer = () => ({ inner });
@@ -1,6 +0,0 @@
1
- declare const _default: {
2
- throw: {
3
- a: () => never;
4
- };
5
- };
6
- export default _default;
@@ -1,4 +0,0 @@
1
- declare const _default: {
2
- new: () => void;
3
- };
4
- export default _default;
@@ -1,5 +0,0 @@
1
- declare const _default: {
2
- dfa: () => void;
3
- run: (() => void)[];
4
- };
5
- export default _default;
@@ -1,3 +0,0 @@
1
- export declare const normalizeTest: (() => void)[];
2
- export declare const concatTest: (() => void)[];
3
- export declare const relativizeTest: (() => void)[];
@@ -1,4 +0,0 @@
1
- declare const _default: {
2
- range: () => void;
3
- };
4
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const _default: (() => void)[];
2
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const test: () => void;
2
- export default test;
@@ -1,5 +0,0 @@
1
- declare const _default: {
2
- test: () => void;
3
- test2: () => void;
4
- };
5
- export default _default;
@@ -1,2 +0,0 @@
1
- declare const test: (() => void)[];
2
- export default test;
@@ -1,2 +0,0 @@
1
- declare const _default: () => void;
2
- export default _default;