@creative-introvert/tons-of-tests 0.4.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 (266) hide show
  1. package/README.md +273 -0
  2. package/dist/cjs/Classify.js +36 -0
  3. package/dist/cjs/Classify.js.map +1 -0
  4. package/dist/cjs/DisplayConfig.js +34 -0
  5. package/dist/cjs/DisplayConfig.js.map +1 -0
  6. package/dist/cjs/Error.js +35 -0
  7. package/dist/cjs/Error.js.map +1 -0
  8. package/dist/cjs/Show.js +27 -0
  9. package/dist/cjs/Show.js.map +1 -0
  10. package/dist/cjs/Test.js +36 -0
  11. package/dist/cjs/Test.js.map +1 -0
  12. package/dist/cjs/Test.repository.js +37 -0
  13. package/dist/cjs/Test.repository.js.map +1 -0
  14. package/dist/cjs/index.js +51 -0
  15. package/dist/cjs/index.js.map +1 -0
  16. package/dist/cjs/internal/Classify.js +123 -0
  17. package/dist/cjs/internal/Classify.js.map +1 -0
  18. package/dist/cjs/internal/DisplayConfig.js +23 -0
  19. package/dist/cjs/internal/DisplayConfig.js.map +1 -0
  20. package/dist/cjs/internal/Test.js +178 -0
  21. package/dist/cjs/internal/Test.js.map +1 -0
  22. package/dist/cjs/internal/Test.repository.sqlite.js +230 -0
  23. package/dist/cjs/internal/Test.repository.sqlite.js.map +1 -0
  24. package/dist/cjs/internal/Test.repository.sqlite.spec.js +96 -0
  25. package/dist/cjs/internal/Test.repository.sqlite.spec.js.map +1 -0
  26. package/dist/cjs/internal/common.js +70 -0
  27. package/dist/cjs/internal/common.js.map +1 -0
  28. package/dist/cjs/internal/diff.js +86 -0
  29. package/dist/cjs/internal/diff.js.map +1 -0
  30. package/dist/cjs/internal/format-diff.js +162 -0
  31. package/dist/cjs/internal/format-diff.js.map +1 -0
  32. package/dist/cjs/internal/format-diff.spec.js +102 -0
  33. package/dist/cjs/internal/format-diff.spec.js.map +1 -0
  34. package/dist/cjs/internal/lib/Schema.js +39 -0
  35. package/dist/cjs/internal/lib/Schema.js.map +1 -0
  36. package/dist/cjs/internal/lib/jsondiffpatch/clone.js +35 -0
  37. package/dist/cjs/internal/lib/jsondiffpatch/clone.js.map +1 -0
  38. package/dist/cjs/internal/lib/jsondiffpatch/contexts/context.js +47 -0
  39. package/dist/cjs/internal/lib/jsondiffpatch/contexts/context.js.map +1 -0
  40. package/dist/cjs/internal/lib/jsondiffpatch/contexts/diff.js +42 -0
  41. package/dist/cjs/internal/lib/jsondiffpatch/contexts/diff.js.map +1 -0
  42. package/dist/cjs/internal/lib/jsondiffpatch/contexts/patch.js +26 -0
  43. package/dist/cjs/internal/lib/jsondiffpatch/contexts/patch.js.map +1 -0
  44. package/dist/cjs/internal/lib/jsondiffpatch/contexts/reverse.js +25 -0
  45. package/dist/cjs/internal/lib/jsondiffpatch/contexts/reverse.js.map +1 -0
  46. package/dist/cjs/internal/lib/jsondiffpatch/date-reviver.js +18 -0
  47. package/dist/cjs/internal/lib/jsondiffpatch/date-reviver.js.map +1 -0
  48. package/dist/cjs/internal/lib/jsondiffpatch/diffpatcher.js +76 -0
  49. package/dist/cjs/internal/lib/jsondiffpatch/diffpatcher.js.map +1 -0
  50. package/dist/cjs/internal/lib/jsondiffpatch/filters/arrays.js +388 -0
  51. package/dist/cjs/internal/lib/jsondiffpatch/filters/arrays.js.map +1 -0
  52. package/dist/cjs/internal/lib/jsondiffpatch/filters/dates.js +24 -0
  53. package/dist/cjs/internal/lib/jsondiffpatch/filters/dates.js.map +1 -0
  54. package/dist/cjs/internal/lib/jsondiffpatch/filters/lcs.js +78 -0
  55. package/dist/cjs/internal/lib/jsondiffpatch/filters/lcs.js.map +1 -0
  56. package/dist/cjs/internal/lib/jsondiffpatch/filters/nested.js +157 -0
  57. package/dist/cjs/internal/lib/jsondiffpatch/filters/nested.js.map +1 -0
  58. package/dist/cjs/internal/lib/jsondiffpatch/filters/texts.js +123 -0
  59. package/dist/cjs/internal/lib/jsondiffpatch/filters/texts.js.map +1 -0
  60. package/dist/cjs/internal/lib/jsondiffpatch/filters/trivial.js +108 -0
  61. package/dist/cjs/internal/lib/jsondiffpatch/filters/trivial.js.map +1 -0
  62. package/dist/cjs/internal/lib/jsondiffpatch/formatters/annotated.js +169 -0
  63. package/dist/cjs/internal/lib/jsondiffpatch/formatters/annotated.js.map +1 -0
  64. package/dist/cjs/internal/lib/jsondiffpatch/formatters/base.js +198 -0
  65. package/dist/cjs/internal/lib/jsondiffpatch/formatters/base.js.map +1 -0
  66. package/dist/cjs/internal/lib/jsondiffpatch/formatters/html.js +243 -0
  67. package/dist/cjs/internal/lib/jsondiffpatch/formatters/html.js.map +1 -0
  68. package/dist/cjs/internal/lib/jsondiffpatch/formatters/jsonpatch.js +178 -0
  69. package/dist/cjs/internal/lib/jsondiffpatch/formatters/jsonpatch.js.map +1 -0
  70. package/dist/cjs/internal/lib/jsondiffpatch/index.js +65 -0
  71. package/dist/cjs/internal/lib/jsondiffpatch/index.js.map +1 -0
  72. package/dist/cjs/internal/lib/jsondiffpatch/pipe.js +110 -0
  73. package/dist/cjs/internal/lib/jsondiffpatch/pipe.js.map +1 -0
  74. package/dist/cjs/internal/lib/jsondiffpatch/processor.js +71 -0
  75. package/dist/cjs/internal/lib/jsondiffpatch/processor.js.map +1 -0
  76. package/dist/cjs/internal/lib/jsondiffpatch/types.js +6 -0
  77. package/dist/cjs/internal/lib/jsondiffpatch/types.js.map +1 -0
  78. package/dist/cjs/internal/lib/jsondiffpatch/with-text-diffs.js +92 -0
  79. package/dist/cjs/internal/lib/jsondiffpatch/with-text-diffs.js.map +1 -0
  80. package/dist/cjs/internal/pack.js +81 -0
  81. package/dist/cjs/internal/pack.js.map +1 -0
  82. package/dist/cjs/internal/stats.js +144 -0
  83. package/dist/cjs/internal/stats.js.map +1 -0
  84. package/dist/cjs/internal/summarize.js +173 -0
  85. package/dist/cjs/internal/summarize.js.map +1 -0
  86. package/dist/cjs/pack.js +33 -0
  87. package/dist/cjs/pack.js.map +1 -0
  88. package/dist/cjs/prelude.js +95 -0
  89. package/dist/cjs/prelude.js.map +1 -0
  90. package/dist/dts/Classify.d.ts +20 -0
  91. package/dist/dts/Classify.d.ts.map +1 -0
  92. package/dist/dts/DisplayConfig.d.ts +19 -0
  93. package/dist/dts/DisplayConfig.d.ts.map +1 -0
  94. package/dist/dts/Error.d.ts +10 -0
  95. package/dist/dts/Error.d.ts.map +1 -0
  96. package/dist/dts/Show.d.ts +37 -0
  97. package/dist/dts/Show.d.ts.map +1 -0
  98. package/dist/dts/Test.d.ts +48 -0
  99. package/dist/dts/Test.d.ts.map +1 -0
  100. package/dist/dts/Test.repository.d.ts +40 -0
  101. package/dist/dts/Test.repository.d.ts.map +1 -0
  102. package/dist/dts/index.d.ts +8 -0
  103. package/dist/dts/index.d.ts.map +1 -0
  104. package/dist/dts/internal/Classify.d.ts +34 -0
  105. package/dist/dts/internal/Classify.d.ts.map +1 -0
  106. package/dist/dts/internal/DisplayConfig.d.ts +3 -0
  107. package/dist/dts/internal/DisplayConfig.d.ts.map +1 -0
  108. package/dist/dts/internal/Test.d.ts +39 -0
  109. package/dist/dts/internal/Test.d.ts.map +1 -0
  110. package/dist/dts/internal/Test.repository.sqlite.d.ts +10 -0
  111. package/dist/dts/internal/Test.repository.sqlite.d.ts.map +1 -0
  112. package/dist/dts/internal/Test.repository.sqlite.spec.d.ts +2 -0
  113. package/dist/dts/internal/Test.repository.sqlite.spec.d.ts.map +1 -0
  114. package/dist/dts/internal/common.d.ts +11 -0
  115. package/dist/dts/internal/common.d.ts.map +1 -0
  116. package/dist/dts/internal/diff.d.ts +9 -0
  117. package/dist/dts/internal/diff.d.ts.map +1 -0
  118. package/dist/dts/internal/format-diff.d.ts +3 -0
  119. package/dist/dts/internal/format-diff.d.ts.map +1 -0
  120. package/dist/dts/internal/format-diff.spec.d.ts +2 -0
  121. package/dist/dts/internal/format-diff.spec.d.ts.map +1 -0
  122. package/dist/dts/internal/lib/Schema.d.ts +4 -0
  123. package/dist/dts/internal/lib/Schema.d.ts.map +1 -0
  124. package/dist/dts/internal/lib/jsondiffpatch/clone.d.ts +2 -0
  125. package/dist/dts/internal/lib/jsondiffpatch/clone.d.ts.map +1 -0
  126. package/dist/dts/internal/lib/jsondiffpatch/contexts/context.d.ts +18 -0
  127. package/dist/dts/internal/lib/jsondiffpatch/contexts/context.d.ts.map +1 -0
  128. package/dist/dts/internal/lib/jsondiffpatch/contexts/diff.d.ts +15 -0
  129. package/dist/dts/internal/lib/jsondiffpatch/contexts/diff.d.ts.map +1 -0
  130. package/dist/dts/internal/lib/jsondiffpatch/contexts/patch.d.ts +11 -0
  131. package/dist/dts/internal/lib/jsondiffpatch/contexts/patch.d.ts.map +1 -0
  132. package/dist/dts/internal/lib/jsondiffpatch/contexts/reverse.d.ts +11 -0
  133. package/dist/dts/internal/lib/jsondiffpatch/contexts/reverse.d.ts.map +1 -0
  134. package/dist/dts/internal/lib/jsondiffpatch/date-reviver.d.ts +2 -0
  135. package/dist/dts/internal/lib/jsondiffpatch/date-reviver.d.ts.map +1 -0
  136. package/dist/dts/internal/lib/jsondiffpatch/diffpatcher.d.ts +14 -0
  137. package/dist/dts/internal/lib/jsondiffpatch/diffpatcher.d.ts.map +1 -0
  138. package/dist/dts/internal/lib/jsondiffpatch/filters/arrays.d.ts +16 -0
  139. package/dist/dts/internal/lib/jsondiffpatch/filters/arrays.d.ts.map +1 -0
  140. package/dist/dts/internal/lib/jsondiffpatch/filters/dates.d.ts +4 -0
  141. package/dist/dts/internal/lib/jsondiffpatch/filters/dates.d.ts.map +1 -0
  142. package/dist/dts/internal/lib/jsondiffpatch/filters/lcs.d.ts +11 -0
  143. package/dist/dts/internal/lib/jsondiffpatch/filters/lcs.d.ts.map +1 -0
  144. package/dist/dts/internal/lib/jsondiffpatch/filters/nested.d.ts +11 -0
  145. package/dist/dts/internal/lib/jsondiffpatch/filters/nested.d.ts.map +1 -0
  146. package/dist/dts/internal/lib/jsondiffpatch/filters/texts.d.ts +8 -0
  147. package/dist/dts/internal/lib/jsondiffpatch/filters/texts.d.ts.map +1 -0
  148. package/dist/dts/internal/lib/jsondiffpatch/filters/trivial.d.ts +8 -0
  149. package/dist/dts/internal/lib/jsondiffpatch/filters/trivial.d.ts.map +1 -0
  150. package/dist/dts/internal/lib/jsondiffpatch/formatters/annotated.d.ts +30 -0
  151. package/dist/dts/internal/lib/jsondiffpatch/formatters/annotated.d.ts.map +1 -0
  152. package/dist/dts/internal/lib/jsondiffpatch/formatters/base.d.ts +60 -0
  153. package/dist/dts/internal/lib/jsondiffpatch/formatters/base.d.ts.map +1 -0
  154. package/dist/dts/internal/lib/jsondiffpatch/formatters/html.d.ts +28 -0
  155. package/dist/dts/internal/lib/jsondiffpatch/formatters/html.d.ts.map +1 -0
  156. package/dist/dts/internal/lib/jsondiffpatch/formatters/jsonpatch.d.ts +62 -0
  157. package/dist/dts/internal/lib/jsondiffpatch/formatters/jsonpatch.d.ts.map +1 -0
  158. package/dist/dts/internal/lib/jsondiffpatch/index.d.ts +17 -0
  159. package/dist/dts/internal/lib/jsondiffpatch/index.d.ts.map +1 -0
  160. package/dist/dts/internal/lib/jsondiffpatch/pipe.d.ts +25 -0
  161. package/dist/dts/internal/lib/jsondiffpatch/pipe.d.ts.map +1 -0
  162. package/dist/dts/internal/lib/jsondiffpatch/processor.d.ts +20 -0
  163. package/dist/dts/internal/lib/jsondiffpatch/processor.d.ts.map +1 -0
  164. package/dist/dts/internal/lib/jsondiffpatch/types.d.ts +36 -0
  165. package/dist/dts/internal/lib/jsondiffpatch/types.d.ts.map +1 -0
  166. package/dist/dts/internal/lib/jsondiffpatch/with-text-diffs.d.ts +19 -0
  167. package/dist/dts/internal/lib/jsondiffpatch/with-text-diffs.d.ts.map +1 -0
  168. package/dist/dts/internal/pack.d.ts +2 -0
  169. package/dist/dts/internal/pack.d.ts.map +1 -0
  170. package/dist/dts/internal/stats.d.ts +9 -0
  171. package/dist/dts/internal/stats.d.ts.map +1 -0
  172. package/dist/dts/internal/summarize.d.ts +11 -0
  173. package/dist/dts/internal/summarize.d.ts.map +1 -0
  174. package/dist/dts/pack.d.ts +2 -0
  175. package/dist/dts/pack.d.ts.map +1 -0
  176. package/dist/dts/prelude.d.ts +24 -0
  177. package/dist/dts/prelude.d.ts.map +1 -0
  178. package/dist/esm/Classify.js +13 -0
  179. package/dist/esm/Classify.js.map +1 -0
  180. package/dist/esm/DisplayConfig.js +11 -0
  181. package/dist/esm/DisplayConfig.js.map +1 -0
  182. package/dist/esm/Error.js +12 -0
  183. package/dist/esm/Error.js.map +1 -0
  184. package/dist/esm/Show.js +27 -0
  185. package/dist/esm/Show.js.map +1 -0
  186. package/dist/esm/Test.js +13 -0
  187. package/dist/esm/Test.js.map +1 -0
  188. package/dist/esm/Test.repository.js +14 -0
  189. package/dist/esm/Test.repository.js.map +1 -0
  190. package/dist/esm/index.js +28 -0
  191. package/dist/esm/index.js.map +1 -0
  192. package/dist/esm/internal/Classify.js +100 -0
  193. package/dist/esm/internal/Classify.js.map +1 -0
  194. package/dist/esm/internal/DisplayConfig.js +23 -0
  195. package/dist/esm/internal/DisplayConfig.js.map +1 -0
  196. package/dist/esm/internal/Test.js +155 -0
  197. package/dist/esm/internal/Test.js.map +1 -0
  198. package/dist/esm/internal/Test.repository.sqlite.js +207 -0
  199. package/dist/esm/internal/Test.repository.sqlite.js.map +1 -0
  200. package/dist/esm/internal/Test.repository.sqlite.spec.js +73 -0
  201. package/dist/esm/internal/Test.repository.sqlite.spec.js.map +1 -0
  202. package/dist/esm/internal/common.js +66 -0
  203. package/dist/esm/internal/common.js.map +1 -0
  204. package/dist/esm/internal/diff.js +82 -0
  205. package/dist/esm/internal/diff.js.map +1 -0
  206. package/dist/esm/internal/format-diff.js +158 -0
  207. package/dist/esm/internal/format-diff.js.map +1 -0
  208. package/dist/esm/internal/format-diff.spec.js +79 -0
  209. package/dist/esm/internal/format-diff.spec.js.map +1 -0
  210. package/dist/esm/internal/lib/Schema.js +16 -0
  211. package/dist/esm/internal/lib/Schema.js.map +1 -0
  212. package/dist/esm/internal/lib/jsondiffpatch/clone.js +35 -0
  213. package/dist/esm/internal/lib/jsondiffpatch/clone.js.map +1 -0
  214. package/dist/esm/internal/lib/jsondiffpatch/contexts/context.js +47 -0
  215. package/dist/esm/internal/lib/jsondiffpatch/contexts/context.js.map +1 -0
  216. package/dist/esm/internal/lib/jsondiffpatch/contexts/diff.js +38 -0
  217. package/dist/esm/internal/lib/jsondiffpatch/contexts/diff.js.map +1 -0
  218. package/dist/esm/internal/lib/jsondiffpatch/contexts/patch.js +22 -0
  219. package/dist/esm/internal/lib/jsondiffpatch/contexts/patch.js.map +1 -0
  220. package/dist/esm/internal/lib/jsondiffpatch/contexts/reverse.js +21 -0
  221. package/dist/esm/internal/lib/jsondiffpatch/contexts/reverse.js.map +1 -0
  222. package/dist/esm/internal/lib/jsondiffpatch/date-reviver.js +18 -0
  223. package/dist/esm/internal/lib/jsondiffpatch/date-reviver.js.map +1 -0
  224. package/dist/esm/internal/lib/jsondiffpatch/diffpatcher.js +49 -0
  225. package/dist/esm/internal/lib/jsondiffpatch/diffpatcher.js.map +1 -0
  226. package/dist/esm/internal/lib/jsondiffpatch/filters/arrays.js +384 -0
  227. package/dist/esm/internal/lib/jsondiffpatch/filters/arrays.js.map +1 -0
  228. package/dist/esm/internal/lib/jsondiffpatch/filters/dates.js +24 -0
  229. package/dist/esm/internal/lib/jsondiffpatch/filters/dates.js.map +1 -0
  230. package/dist/esm/internal/lib/jsondiffpatch/filters/lcs.js +78 -0
  231. package/dist/esm/internal/lib/jsondiffpatch/filters/lcs.js.map +1 -0
  232. package/dist/esm/internal/lib/jsondiffpatch/filters/nested.js +153 -0
  233. package/dist/esm/internal/lib/jsondiffpatch/filters/nested.js.map +1 -0
  234. package/dist/esm/internal/lib/jsondiffpatch/filters/texts.js +123 -0
  235. package/dist/esm/internal/lib/jsondiffpatch/filters/texts.js.map +1 -0
  236. package/dist/esm/internal/lib/jsondiffpatch/filters/trivial.js +108 -0
  237. package/dist/esm/internal/lib/jsondiffpatch/filters/trivial.js.map +1 -0
  238. package/dist/esm/internal/lib/jsondiffpatch/formatters/annotated.js +165 -0
  239. package/dist/esm/internal/lib/jsondiffpatch/formatters/annotated.js.map +1 -0
  240. package/dist/esm/internal/lib/jsondiffpatch/formatters/base.js +198 -0
  241. package/dist/esm/internal/lib/jsondiffpatch/formatters/base.js.map +1 -0
  242. package/dist/esm/internal/lib/jsondiffpatch/formatters/html.js +239 -0
  243. package/dist/esm/internal/lib/jsondiffpatch/formatters/html.js.map +1 -0
  244. package/dist/esm/internal/lib/jsondiffpatch/formatters/jsonpatch.js +174 -0
  245. package/dist/esm/internal/lib/jsondiffpatch/formatters/jsonpatch.js.map +1 -0
  246. package/dist/esm/internal/lib/jsondiffpatch/index.js +61 -0
  247. package/dist/esm/internal/lib/jsondiffpatch/index.js.map +1 -0
  248. package/dist/esm/internal/lib/jsondiffpatch/pipe.js +110 -0
  249. package/dist/esm/internal/lib/jsondiffpatch/pipe.js.map +1 -0
  250. package/dist/esm/internal/lib/jsondiffpatch/processor.js +71 -0
  251. package/dist/esm/internal/lib/jsondiffpatch/processor.js.map +1 -0
  252. package/dist/esm/internal/lib/jsondiffpatch/types.js +6 -0
  253. package/dist/esm/internal/lib/jsondiffpatch/types.js.map +1 -0
  254. package/dist/esm/internal/lib/jsondiffpatch/with-text-diffs.js +88 -0
  255. package/dist/esm/internal/lib/jsondiffpatch/with-text-diffs.js.map +1 -0
  256. package/dist/esm/internal/pack.js +58 -0
  257. package/dist/esm/internal/pack.js.map +1 -0
  258. package/dist/esm/internal/stats.js +117 -0
  259. package/dist/esm/internal/stats.js.map +1 -0
  260. package/dist/esm/internal/summarize.js +146 -0
  261. package/dist/esm/internal/summarize.js.map +1 -0
  262. package/dist/esm/pack.js +10 -0
  263. package/dist/esm/pack.js.map +1 -0
  264. package/dist/esm/prelude.js +72 -0
  265. package/dist/esm/prelude.js.map +1 -0
  266. package/package.json +45 -0
package/README.md ADDED
@@ -0,0 +1,273 @@
1
+ # tots (tons-of-tests)
2
+
3
+ `tons-of-test`, (or `tots` for short, ) is a test runner, simlar to [Jest](https://jestjs.io/), [vitest](https://vitest.dev/) or [ava](https://github.com/avajs/ava), that focuses on testing predictive functions (e.g. search, auto-complete, or ML).
4
+
5
+ ## When you SHOULD use `tots`
6
+
7
+ - you have tons of test cases, and your tests purely compare inputs and outputs of the function under test
8
+ - you are testing a statistical model, or a predictive function, where 100% successful test results are impossible or impractical
9
+ - you are testing a (flaky) legacy system
10
+
11
+ ## When you SHOULD NOT use `tots`
12
+
13
+ - when your tests are few, and predominantely example-based; use the conventional test runners instead (jest, ava, vitest)
14
+ - when you require your testing framework to do all sorts of magic (auto-mocking, spies, etc)
15
+
16
+ ## Before Getting Started
17
+
18
+ Before looking at code examples, some notes on the design:
19
+
20
+ 1. Unlike tools like jest or vitest, tots's CLI does not provide a
21
+ runtime, but is imported as a library. Check the ["Why No Runtime?" section](#why-no-runtime)
22
+ on the reasoning.
23
+ 2. Though only required minimally, the library depends on using
24
+ [effect](https://effect.website/) (the missing standard library for
25
+ TypeScript). At minimum, your function under test has to return an [Effect](https://effect.website/docs/guides/essentials/the-effect-type).
26
+ If your function doesn't already do so, checkout the [Usage](#usage) below, to see how to trivially convert it.
27
+
28
+ Further, a cautionary note on stability:
29
+
30
+ - The library is still in alpha, and will, regularly, without warning, release
31
+ breaking changes.
32
+ - A beta phase is planned, which will keep releasing breaking changes, but
33
+ provide guidance on migration paths, or even code-mods for automatic
34
+ migration.
35
+
36
+ ## Usage
37
+
38
+ With your package manager of choice, install the following packages:
39
+
40
+ ```bash
41
+ @creative-introvert/tots
42
+ @creative-introvert/tots-cli
43
+ effect
44
+ ```
45
+
46
+ The examples use `pnpm` and `pnpx` + `tsx` to execute the files. Replace with
47
+ whatever you use in your setup (e.g. `npm` and `ts-node`, or `yarn` and `tsc +
48
+ node`, etc.)
49
+
50
+ ### With CLI
51
+
52
+ Define your test-suite.
53
+
54
+ ```ts
55
+ // my-test-suite.ts
56
+ import * as CLI from '@creative-introvert/tots-cli';
57
+ import {Effect} from 'effect';
58
+
59
+ const myFunction = (input: number) => Promise.resolve(input * 1.7);
60
+
61
+ void CLI.run({
62
+ testSuite: {
63
+ // Convert myFunction to Effect-returning.
64
+ program: (input: number) => Effect.promise(() => myFunction(input)),
65
+ testCases: [
66
+ {input: 0, expected: 0},
67
+ {input: 1, expected: 2},
68
+ {input: 2, expected: 3},
69
+ {input: 3, expected: 4},
70
+ {input: 4, expected: 5},
71
+ ],
72
+ },
73
+ testSuiteName: 'simple',
74
+ // Currently, test results are written to the file-system.
75
+ // This will be replaced by an SQLite backend soon™.
76
+ dirPath: '.metrics',
77
+ filePostfix: 'ptest',
78
+ });
79
+ ```
80
+
81
+ #### Summarize
82
+
83
+ ```
84
+ pnpx tsx my-test-suite.ts summarize
85
+
86
+ =============================================================================
87
+ SUMMARY
88
+ =============================================================================
89
+ index | id | input | tags | label | expected | result | previous result
90
+ -----------------------------------------------------------------------------
91
+ 1/5 │ 5feceb66 │ 0 │ │ TP │ 0 │ 0 │ ∅
92
+ -----------------------------------------------------------------------------
93
+ 2/5 │ 6b86b273 │ 1 │ │ FP │ 2 │ 1.7 │ ∅
94
+ -----------------------------------------------------------------------------
95
+ 3/5 │ d4735e3a │ 2 │ │ FP │ 3 │ 3.4 │ ∅
96
+ -----------------------------------------------------------------------------
97
+ 4/5 │ 4e074085 │ 3 │ │ FP │ 4 │ 5.1 │ ∅
98
+ -----------------------------------------------------------------------------
99
+ 5/5 │ 4b227777 │ 4 │ │ FP │ 5 │ 6.8 │ ∅
100
+ =============================================================================
101
+ index | id | input | tags | label | expected | result | previous result
102
+ =============================================================================
103
+
104
+ ======================================
105
+ STATS
106
+ ======================================
107
+ TP | TN | FP | FN | precision | recall
108
+ --------------------------------------
109
+ 1 | 0 | 4 | 0 | 0.20 | 1.00
110
+ ======================================
111
+ ```
112
+
113
+ #### Summarize With Labels Filter
114
+
115
+ ```
116
+ pnpx tsx my-test-suite.ts summarize --labels TP
117
+
118
+ =============================================================================
119
+ SUMMARY
120
+ =============================================================================
121
+ index | id | input | tags | label | expected | result | previous result
122
+ -----------------------------------------------------------------------------
123
+ 1/1 │ 5feceb66 │ 0 │ │ TP │ 0 │ 0 │ ∅
124
+ =============================================================================
125
+ index | id | input | tags | label | expected | result | previous result
126
+ =============================================================================
127
+
128
+ ======================================
129
+ STATS
130
+ ======================================
131
+ TP | TN | FP | FN | precision | recall
132
+ --------------------------------------
133
+ 1 | 0 | 0 | 0 | 1.00 | 1.00
134
+ ======================================
135
+ ```
136
+
137
+ #### Write Test Results
138
+
139
+ ```bash
140
+ pnpx tsx my-test-suite.ts write
141
+ ```
142
+
143
+ #### Diff
144
+
145
+ Assuming you have (1) previous test results, and (2) something changed, e.g. the
146
+ inputs/expecations of your test suite, or the function-under-test
147
+ implementation.
148
+
149
+ ```diff
150
+ diff --git a/my-test-suite.ts b/my-test-suite.ts
151
+ index 21cd713..ab1b6dc 100644
152
+ --- a/my-test-suite.ts
153
+ +++ b/my-test-suite.ts
154
+ @@ -1,7 +1,7 @@
155
+ import * as CLI from '@creative-introvert/tots-cli';
156
+ import {Effect} from 'effect';
157
+
158
+ -const myFunction = (input: number) => Promise.resolve(input * 1.7);
159
+ +const myFunction = (input: number) => Promise.resolve(input * 2);
160
+
161
+ void CLI.run({
162
+ testSuite: {
163
+ ```
164
+
165
+ ```
166
+ pnpx tsx my-test-suite.ts diff
167
+ # or, if you want it to process.exit(1) on diff
168
+ pnpx tsx my-test-suite.ts diff --ci
169
+
170
+ =============================================================================
171
+ SUMMARY
172
+ =============================================================================
173
+ index | id | input | tags | label | expected | result | previous result
174
+ -----------------------------------------------------------------------------
175
+ 1/4 │ 6b86b273 │ 1 │ │ TP │ 2 │ 2 │ 1.7
176
+ -----------------------------------------------------------------------------
177
+ 2/4 │ d4735e3a │ 2 │ │ FP │ 3 │ 4 │ 3.4
178
+ -----------------------------------------------------------------------------
179
+ 3/4 │ 4e074085 │ 3 │ │ FP │ 4 │ 6 │ 5.1
180
+ -----------------------------------------------------------------------------
181
+ 4/4 │ 4b227777 │ 4 │ │ FP │ 5 │ 8 │ 6.8
182
+ =============================================================================
183
+ index | id | input | tags | label | expected | result | previous result
184
+ =============================================================================
185
+
186
+ ======================================
187
+ DIFF
188
+ ======================================
189
+ TP | TN | FP | FN | precision | recall
190
+ --------------------------------------
191
+ 0 │ 0 │ -1 │ 0 │ 0.05 │ 0.00
192
+ ======================================
193
+ ```
194
+
195
+ Checkout `workspace/examples/src/with-cli` for more examples.
196
+
197
+ ```
198
+ pnpx tsx <file-path>
199
+ # e.g.
200
+ pnpx tsx ./workspace/examples/src/with-cli/simple.ts
201
+ ```
202
+
203
+ ### Without CLI
204
+
205
+ For full control over execution, and if you're not afraid of using [effect](https://effect.website/)
206
+ you may simply import the runner functions individually.
207
+
208
+ ```ts
209
+ import * as PT from '@creative-introvert/tots';
210
+ import {Console, Duration, Effect, Stream} from 'effect';
211
+
212
+ type Input = number;
213
+ type Result = number;
214
+
215
+ const program = (input: Input) =>
216
+ Effect.promise(() => Promise.resolve(input * 2)).pipe(
217
+ Effect.delay(Duration.millis(500)),
218
+ );
219
+
220
+ const testCases: PT.TestCase<Input, Result>[] = [
221
+ {input: 0, expected: 0},
222
+ {input: 1, expected: 1},
223
+ {input: 2, expected: 2},
224
+ {input: 3, expected: 3},
225
+ {input: 4, expected: 4},
226
+ ];
227
+
228
+ await PT.testAll({
229
+ testCases,
230
+ program,
231
+ }).pipe(
232
+ PT.runFoldEffect,
233
+ Effect.tap(testRun => Console.log(PT.Show.summary({testRun}))),
234
+ Effect.runPromise,
235
+ );
236
+ ```
237
+
238
+ Checkout `workspace/examples/src/as-library` for more examples.
239
+
240
+ ```bash
241
+ pnpx tsx <file-path>
242
+ # e.g.
243
+ pnpx tsx ./workspace/examples/src/as-library/simple.ts
244
+ ```
245
+
246
+ ## Why No Runtime?
247
+
248
+ Tools like jest and vitest provide a dedicated CLI, which the user can run,
249
+ separately from other entrypoints into their app. For example, jest provides
250
+ the `jest` binary, which, magically, finds all the test files, and executes
251
+ them, reporting on the results.
252
+
253
+ Unfortunately, this comes with a lot of complexity:
254
+
255
+ 1. Unless the user provides their tests as ES5 JavaScript (not a thing these
256
+ days), jest has to figure out how transpile/compile the source. Given the
257
+ level of, let's call it, variation in JavaScript land (Typescript, and its
258
+ many different configurations, custom runtimes like svelte, ESM vs CommonJS,
259
+ etc), this is no easy feat. The code required for enabling this would easily
260
+ overshadow the actual test runner in terms of complexity.
261
+ 2. As `jest` (etc) essentially behave as a _framework_ (jest calls _your_ code)
262
+ as opposed to a _library_ (you call jest), customization requires additional
263
+ complexity in the framework, which now has to provide various entrypoints
264
+ into its execution.
265
+
266
+ Alternatively, the library could hook into an existing test runner (I've seen
267
+ that vite provides some programatic context), but I have not yet looked deeper
268
+ into that. Though saving me from solving this problem myself, this would likely
269
+ come with its own limitations.
270
+
271
+ Providing `tots` as a library is maybe not as satisfying and
272
+ convenient as a dedicated binary, but is **vastly** simpler, and far more
273
+ powerful, enabling trivial extensibility for the user.
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.values = exports.defaultIsEqual = exports.LabelSchema = void 0;
7
+ var internal = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./internal/Classify.js"));
8
+ function _getRequireWildcardCache(e) {
9
+ if ("function" != typeof WeakMap) return null;
10
+ var r = new WeakMap(),
11
+ t = new WeakMap();
12
+ return (_getRequireWildcardCache = function (e) {
13
+ return e ? t : r;
14
+ })(e);
15
+ }
16
+ function _interopRequireWildcard(e, r) {
17
+ if (!r && e && e.__esModule) return e;
18
+ if (null === e || "object" != typeof e && "function" != typeof e) return {
19
+ default: e
20
+ };
21
+ var t = _getRequireWildcardCache(r);
22
+ if (t && t.has(e)) return t.get(e);
23
+ var n = {
24
+ __proto__: null
25
+ },
26
+ a = Object.defineProperty && Object.getOwnPropertyDescriptor;
27
+ for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
28
+ var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
29
+ i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
30
+ }
31
+ return n.default = e, t && t.set(e, n), n;
32
+ }
33
+ const values = exports.values = internal.values;
34
+ const defaultIsEqual = exports.defaultIsEqual = internal.defaultIsEqual;
35
+ const LabelSchema = exports.LabelSchema = internal.LabelSchema;
36
+ //# sourceMappingURL=Classify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Classify.js","names":["internal","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","values","exports","defaultIsEqual","LabelSchema"],"sources":["../../src/Classify.ts"],"sourcesContent":[null],"mappings":";;;;;;AAEA,IAAAA,QAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAAmD,SAAAC,yBAAAC,CAAA;EAAA,yBAAAC,OAAA;EAAA,IAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAF,wBAAA,YAAAA,CAAAC,CAAA;IAAA,OAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA;EAAA,GAAAF,CAAA;AAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA;EAAA,KAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA;EAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA;IAAAK,OAAA,EAAAL;EAAA;EAAA,IAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA;EAAA,IAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA;EAAA,IAAAQ,CAAA;MAAAC,SAAA;IAAA;IAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA;EAAA,SAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA;IAAA,IAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA;IAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA;EAAA;EAAA,OAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA;AAI5C,MAAMW,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAGvB,QAAQ,CAACuB,MAAM;AAC9B,MAAME,cAAc,GAAAD,OAAA,CAAAC,cAAA,GAAGzB,QAAQ,CAACyB,cAAc;AAa9C,MAAMC,WAAW,GAAAF,OAAA,CAAAE,WAAA,GAAG1B,QAAQ,CAAC0B,WAAW","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.makeDefault = void 0;
7
+ var internal = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./internal/DisplayConfig.js"));
8
+ function _getRequireWildcardCache(e) {
9
+ if ("function" != typeof WeakMap) return null;
10
+ var r = new WeakMap(),
11
+ t = new WeakMap();
12
+ return (_getRequireWildcardCache = function (e) {
13
+ return e ? t : r;
14
+ })(e);
15
+ }
16
+ function _interopRequireWildcard(e, r) {
17
+ if (!r && e && e.__esModule) return e;
18
+ if (null === e || "object" != typeof e && "function" != typeof e) return {
19
+ default: e
20
+ };
21
+ var t = _getRequireWildcardCache(r);
22
+ if (t && t.has(e)) return t.get(e);
23
+ var n = {
24
+ __proto__: null
25
+ },
26
+ a = Object.defineProperty && Object.getOwnPropertyDescriptor;
27
+ for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
28
+ var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
29
+ i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
30
+ }
31
+ return n.default = e, t && t.set(e, n), n;
32
+ }
33
+ const makeDefault = exports.makeDefault = internal.makeDefault;
34
+ //# sourceMappingURL=DisplayConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DisplayConfig.js","names":["internal","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","makeDefault","exports"],"sources":["../../src/DisplayConfig.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,QAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAAwD,SAAAC,yBAAAC,CAAA;EAAA,yBAAAC,OAAA;EAAA,IAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAF,wBAAA,YAAAA,CAAAC,CAAA;IAAA,OAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA;EAAA,GAAAF,CAAA;AAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA;EAAA,KAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA;EAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA;IAAAK,OAAA,EAAAL;EAAA;EAAA,IAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA;EAAA,IAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA;EAAA,IAAAQ,CAAA;MAAAC,SAAA;IAAA;IAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA;EAAA,SAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA;IAAA,IAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA;IAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA;EAAA;EAAA,OAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA;AAoBjD,MAAMW,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAGvB,QAAQ,CAACuB,WAAW","ignoreList":[]}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DuplicateTestCase = void 0;
7
+ var P = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./prelude.js"));
8
+ function _getRequireWildcardCache(e) {
9
+ if ("function" != typeof WeakMap) return null;
10
+ var r = new WeakMap(),
11
+ t = new WeakMap();
12
+ return (_getRequireWildcardCache = function (e) {
13
+ return e ? t : r;
14
+ })(e);
15
+ }
16
+ function _interopRequireWildcard(e, r) {
17
+ if (!r && e && e.__esModule) return e;
18
+ if (null === e || "object" != typeof e && "function" != typeof e) return {
19
+ default: e
20
+ };
21
+ var t = _getRequireWildcardCache(r);
22
+ if (t && t.has(e)) return t.get(e);
23
+ var n = {
24
+ __proto__: null
25
+ },
26
+ a = Object.defineProperty && Object.getOwnPropertyDescriptor;
27
+ for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
28
+ var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
29
+ i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
30
+ }
31
+ return n.default = e, t && t.set(e, n), n;
32
+ }
33
+ class DuplicateTestCase extends P.Data.TaggedError('DuplicateTestCase') {}
34
+ exports.DuplicateTestCase = DuplicateTestCase;
35
+ //# sourceMappingURL=Error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Error.js","names":["P","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","DuplicateTestCase","Data","TaggedError","exports"],"sources":["../../src/Error.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,CAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAAkC,SAAAC,yBAAAC,CAAA;EAAA,yBAAAC,OAAA;EAAA,IAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAF,wBAAA,YAAAA,CAAAC,CAAA;IAAA,OAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA;EAAA,GAAAF,CAAA;AAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA;EAAA,KAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA;EAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA;IAAAK,OAAA,EAAAL;EAAA;EAAA,IAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA;EAAA,IAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA;EAAA,IAAAQ,CAAA;MAAAC,SAAA;IAAA;IAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA;EAAA,SAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA;IAAA,IAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA;IAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA;EAAA;EAAA,OAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA;AAE5B,MAAOW,iBAAqB,SAAQvB,CAAC,CAACwB,IAAI,CAACC,WAAW,CACxD,mBAAmB,CAIrB;AAAGC,OAAA,CAAAH,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "diff", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _diff.showDiff;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "stats", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _stats.showStats;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "summarize", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _summarize.showSummary;
22
+ }
23
+ });
24
+ var _summarize = /*#__PURE__*/require("./internal/summarize.js");
25
+ var _diff = /*#__PURE__*/require("./internal/diff.js");
26
+ var _stats = /*#__PURE__*/require("./internal/stats.js");
27
+ //# sourceMappingURL=Show.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Show.js","names":["_summarize","require","_diff","_stats"],"sources":["../../src/Show.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAAA,UAAA,gBAAAC,OAAA;AACA,IAAAC,KAAA,gBAAAD,OAAA;AACA,IAAAE,MAAA,gBAAAF,OAAA","ignoreList":[]}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.runCollectRecord = exports.diff = exports.all = void 0;
7
+ var internal = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./internal/Test.js"));
8
+ function _getRequireWildcardCache(e) {
9
+ if ("function" != typeof WeakMap) return null;
10
+ var r = new WeakMap(),
11
+ t = new WeakMap();
12
+ return (_getRequireWildcardCache = function (e) {
13
+ return e ? t : r;
14
+ })(e);
15
+ }
16
+ function _interopRequireWildcard(e, r) {
17
+ if (!r && e && e.__esModule) return e;
18
+ if (null === e || "object" != typeof e && "function" != typeof e) return {
19
+ default: e
20
+ };
21
+ var t = _getRequireWildcardCache(r);
22
+ if (t && t.has(e)) return t.get(e);
23
+ var n = {
24
+ __proto__: null
25
+ },
26
+ a = Object.defineProperty && Object.getOwnPropertyDescriptor;
27
+ for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
28
+ var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
29
+ i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
30
+ }
31
+ return n.default = e, t && t.set(e, n), n;
32
+ }
33
+ const all = exports.all = internal.all;
34
+ const diff = exports.diff = internal.diff;
35
+ const runCollectRecord = exports.runCollectRecord = internal.runCollectRecord;
36
+ //# sourceMappingURL=Test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Test.js","names":["internal","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","all","exports","diff","runCollectRecord"],"sources":["../../src/Test.ts"],"sourcesContent":[null],"mappings":";;;;;;AAEA,IAAAA,QAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAA+C,SAAAC,yBAAAC,CAAA;EAAA,yBAAAC,OAAA;EAAA,IAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAF,wBAAA,YAAAA,CAAAC,CAAA;IAAA,OAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA;EAAA,GAAAF,CAAA;AAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA;EAAA,KAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA;EAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA;IAAAK,OAAA,EAAAL;EAAA;EAAA,IAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA;EAAA,IAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA;EAAA,IAAAQ,CAAA;MAAAC,SAAA;IAAA;IAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA;EAAA,SAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA;IAAA,IAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA;IAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA;EAAA;EAAA,OAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA;AA+CxC,MAAMW,GAAG,GAAAC,OAAA,CAAAD,GAAA,GAAGvB,QAAQ,CAACuB,GAAG;AACxB,MAAME,IAAI,GAAAD,OAAA,CAAAC,IAAA,GAAGzB,QAAQ,CAACyB,IAAI;AAC1B,MAAMC,gBAAgB,GAAAF,OAAA,CAAAE,gBAAA,GAAG1B,QAAQ,CAAC0B,gBAAgB","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.makeSqliteLiveLayer = exports.TestRepository = exports.SqliteTestLayer = exports.LiveLayer = void 0;
7
+ var internal = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./internal/Test.repository.sqlite.js"));
8
+ function _getRequireWildcardCache(e) {
9
+ if ("function" != typeof WeakMap) return null;
10
+ var r = new WeakMap(),
11
+ t = new WeakMap();
12
+ return (_getRequireWildcardCache = function (e) {
13
+ return e ? t : r;
14
+ })(e);
15
+ }
16
+ function _interopRequireWildcard(e, r) {
17
+ if (!r && e && e.__esModule) return e;
18
+ if (null === e || "object" != typeof e && "function" != typeof e) return {
19
+ default: e
20
+ };
21
+ var t = _getRequireWildcardCache(r);
22
+ if (t && t.has(e)) return t.get(e);
23
+ var n = {
24
+ __proto__: null
25
+ },
26
+ a = Object.defineProperty && Object.getOwnPropertyDescriptor;
27
+ for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
28
+ var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
29
+ i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
30
+ }
31
+ return n.default = e, t && t.set(e, n), n;
32
+ }
33
+ const TestRepository = exports.TestRepository = internal.TestRepository;
34
+ const LiveLayer = exports.LiveLayer = internal.LiveLayer;
35
+ const makeSqliteLiveLayer = exports.makeSqliteLiveLayer = internal.makeSqliteLiveLayer;
36
+ const SqliteTestLayer = exports.SqliteTestLayer = internal.SqliteTestLayer;
37
+ //# sourceMappingURL=Test.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Test.repository.js","names":["internal","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","TestRepository","exports","LiveLayer","makeSqliteLiveLayer","SqliteTestLayer"],"sources":["../../src/Test.repository.ts"],"sourcesContent":[null],"mappings":";;;;;;AAIA,IAAAA,QAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAAiE,SAAAC,yBAAAC,CAAA;EAAA,yBAAAC,OAAA;EAAA,IAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAF,wBAAA,YAAAA,CAAAC,CAAA;IAAA,OAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA;EAAA,GAAAF,CAAA;AAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA;EAAA,KAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA;EAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA;IAAAK,OAAA,EAAAL;EAAA;EAAA,IAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA;EAAA,IAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA;EAAA,IAAAQ,CAAA;MAAAC,SAAA;IAAA;IAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA;EAAA,SAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA;IAAA,IAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA;IAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA;EAAA;EAAA,OAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA;AAkD1D,MAAMW,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAGvB,QAAQ,CAACuB,cAAc;AAC9C,MAAME,SAAS,GAAAD,OAAA,CAAAC,SAAA,GAAGzB,QAAQ,CAACyB,SAAS;AACpC,MAAMC,mBAAmB,GAAAF,OAAA,CAAAE,mBAAA,GAAG1B,QAAQ,CAAC0B,mBAAmB;AACxD,MAAMC,eAAe,GAAAH,OAAA,CAAAG,eAAA,GAAG3B,QAAQ,CAAC2B,eAAe","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TestRepository = exports.Test = exports.Show = exports.Error = exports.DisplayConfig = exports.Classify = void 0;
7
+ Object.defineProperty(exports, "pack", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _pack.pack;
11
+ }
12
+ });
13
+ var _Test = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Test.js"));
14
+ exports.Test = _Test;
15
+ var _TestRepository = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Test.repository.js"));
16
+ exports.TestRepository = _TestRepository;
17
+ var _Show = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Show.js"));
18
+ exports.Show = _Show;
19
+ var _Classify = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Classify.js"));
20
+ exports.Classify = _Classify;
21
+ var _Error = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Error.js"));
22
+ exports.Error = _Error;
23
+ var _DisplayConfig = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./DisplayConfig.js"));
24
+ exports.DisplayConfig = _DisplayConfig;
25
+ var _pack = /*#__PURE__*/require("./internal/pack.js");
26
+ function _getRequireWildcardCache(e) {
27
+ if ("function" != typeof WeakMap) return null;
28
+ var r = new WeakMap(),
29
+ t = new WeakMap();
30
+ return (_getRequireWildcardCache = function (e) {
31
+ return e ? t : r;
32
+ })(e);
33
+ }
34
+ function _interopRequireWildcard(e, r) {
35
+ if (!r && e && e.__esModule) return e;
36
+ if (null === e || "object" != typeof e && "function" != typeof e) return {
37
+ default: e
38
+ };
39
+ var t = _getRequireWildcardCache(r);
40
+ if (t && t.has(e)) return t.get(e);
41
+ var n = {
42
+ __proto__: null
43
+ },
44
+ a = Object.defineProperty && Object.getOwnPropertyDescriptor;
45
+ for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
46
+ var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
47
+ i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
48
+ }
49
+ return n.default = e, t && t.set(e, n), n;
50
+ }
51
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_pack","require","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAMA,IAAAA,KAAA,gBAAAC,OAAA;AAAwC,SAAAC,yBAAAC,CAAA;EAAA,yBAAAC,OAAA;EAAA,IAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAF,wBAAA,YAAAA,CAAAC,CAAA;IAAA,OAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA;EAAA,GAAAF,CAAA;AAAA;AAAA,SAAAI,wBAAAJ,CAAA,EAAAE,CAAA;EAAA,KAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA;EAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA;IAAAM,OAAA,EAAAN;EAAA;EAAA,IAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA;EAAA,IAAAC,CAAA,IAAAA,CAAA,CAAAI,GAAA,CAAAP,CAAA,UAAAG,CAAA,CAAAK,GAAA,CAAAR,CAAA;EAAA,IAAAS,CAAA;MAAAC,SAAA;IAAA;IAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA;EAAA,SAAAC,CAAA,IAAAf,CAAA,oBAAAe,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,CAAA;IAAA,IAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAe,CAAA;IAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAf,CAAA,CAAAe,CAAA;EAAA;EAAA,OAAAN,CAAA,CAAAH,OAAA,GAAAN,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAAA","ignoreList":[]}