@davidsouther/jiffies 2.2.4 → 2.3.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 (367) hide show
  1. package/LICENSE +1 -1
  2. package/lib/cjs/assert.d.ts +2 -2
  3. package/lib/cjs/awaitable.d.ts +1 -1
  4. package/lib/cjs/components/button_bar.d.ts +2 -2
  5. package/lib/cjs/components/inline_edit.d.ts +2 -2
  6. package/lib/cjs/components/logger.d.ts +1 -1
  7. package/lib/cjs/components/select.d.ts +4 -7
  8. package/lib/cjs/components/test.d.ts +1 -1
  9. package/lib/cjs/components/virtual_scroll.d.ts +6 -4
  10. package/lib/cjs/context.d.ts +5 -9
  11. package/lib/cjs/debounce.d.ts +1 -1
  12. package/lib/cjs/diff.d.ts +2 -2
  13. package/lib/cjs/display.d.ts +1 -1
  14. package/lib/cjs/dom/css/border.d.ts +2 -2
  15. package/lib/cjs/dom/css/constants.d.ts +3 -3
  16. package/lib/cjs/dom/css/core.d.ts +1 -1
  17. package/lib/cjs/dom/css/fstyle.d.ts +2 -2
  18. package/lib/cjs/dom/css/sizing.d.ts +2 -2
  19. package/lib/cjs/dom/dom.d.ts +8 -8
  20. package/lib/cjs/dom/fc.d.ts +8 -12
  21. package/lib/cjs/dom/form/form.d.ts +5 -6
  22. package/lib/cjs/dom/html.d.ts +112 -113
  23. package/lib/cjs/dom/observable.d.ts +1 -1
  24. package/lib/cjs/dom/provide.d.ts +1 -1
  25. package/lib/cjs/dom/router/router.d.ts +2 -2
  26. package/lib/cjs/dom/svg.d.ts +64 -64
  27. package/lib/cjs/dom/types/css.d.ts +10 -32
  28. package/lib/cjs/dom/types/html.d.ts +4 -6
  29. package/lib/cjs/equal.d.ts +8 -5
  30. package/lib/cjs/flags.d.ts +1 -1
  31. package/lib/cjs/fs.d.ts +3 -3
  32. package/lib/cjs/fs_node.d.ts +1 -1
  33. package/lib/cjs/lock.d.ts +1 -1
  34. package/lib/cjs/log.d.ts +9 -9
  35. package/lib/cjs/observable/event.d.ts +2 -2
  36. package/lib/cjs/observable/observable.d.ts +37 -35
  37. package/lib/cjs/result.d.ts +21 -21
  38. package/lib/cjs/safe.d.ts +1 -1
  39. package/lib/cjs/scope/describe.d.ts +4 -4
  40. package/lib/cjs/scope/display/console.d.ts +1 -1
  41. package/lib/cjs/scope/display/dom.d.ts +2 -2
  42. package/lib/cjs/scope/display/junit.d.ts +1 -1
  43. package/lib/cjs/scope/execute.d.ts +2 -2
  44. package/lib/cjs/scope/index.d.ts +3 -3
  45. package/lib/cjs/scope/scope.d.ts +3 -3
  46. package/lib/cjs/scope/state.d.ts +1 -1
  47. package/lib/cjs/server/http/apps.d.ts +1 -1
  48. package/lib/cjs/server/http/css.d.ts +1 -1
  49. package/lib/cjs/server/http/index.d.ts +4 -9
  50. package/lib/cjs/server/http/response.d.ts +3 -3
  51. package/lib/cjs/server/http/sitemap.d.ts +1 -1
  52. package/lib/cjs/server/http/static.d.ts +1 -1
  53. package/lib/cjs/server/http/typescript.d.ts +1 -1
  54. package/lib/cjs/test_all.d.ts +9 -9
  55. package/lib/cjs/tsconfig.tsbuildinfo +1 -1
  56. package/lib/esm/assert.d.ts +2 -2
  57. package/lib/esm/awaitable.d.ts +1 -1
  58. package/lib/esm/components/button_bar.d.ts +2 -2
  59. package/lib/esm/components/inline_edit.d.ts +2 -2
  60. package/lib/esm/components/logger.d.ts +1 -1
  61. package/lib/esm/components/select.d.ts +3 -3
  62. package/lib/esm/components/test.d.ts +1 -1
  63. package/lib/esm/components/virtual_scroll.d.ts +6 -4
  64. package/lib/esm/context.d.ts +5 -9
  65. package/lib/esm/debounce.d.ts +1 -2
  66. package/lib/esm/diff.d.ts +2 -2
  67. package/lib/esm/display.d.ts +1 -1
  68. package/lib/esm/dom/css/border.d.ts +2 -2
  69. package/lib/esm/dom/css/constants.d.ts +3 -3
  70. package/lib/esm/dom/css/core.d.ts +1 -1
  71. package/lib/esm/dom/css/fstyle.d.ts +2 -2
  72. package/lib/esm/dom/css/sizing.d.ts +2 -2
  73. package/lib/esm/dom/dom.d.ts +8 -8
  74. package/lib/esm/dom/fc.d.ts +8 -12
  75. package/lib/esm/dom/form/form.d.ts +5 -6
  76. package/lib/esm/dom/html.d.ts +112 -113
  77. package/lib/esm/dom/observable.d.ts +1 -1
  78. package/lib/esm/dom/provide.d.ts +1 -1
  79. package/lib/esm/dom/router/router.d.ts +2 -2
  80. package/lib/esm/dom/svg.d.ts +64 -64
  81. package/lib/esm/dom/types/css.d.ts +10 -32
  82. package/lib/esm/dom/types/html.d.ts +4 -6
  83. package/lib/esm/equal.d.ts +8 -5
  84. package/lib/esm/flags.d.ts +1 -1
  85. package/lib/esm/fs.d.ts +3 -3
  86. package/lib/esm/fs_node.d.ts +1 -1
  87. package/lib/esm/lock.d.ts +1 -1
  88. package/lib/esm/log.d.ts +9 -9
  89. package/lib/esm/observable/event.d.ts +2 -2
  90. package/lib/esm/observable/observable.d.ts +37 -35
  91. package/lib/esm/result.d.ts +21 -21
  92. package/lib/esm/safe.d.ts +1 -1
  93. package/lib/esm/scope/describe.d.ts +4 -4
  94. package/lib/esm/scope/display/console.d.ts +1 -1
  95. package/lib/esm/scope/display/dom.d.ts +2 -2
  96. package/lib/esm/scope/display/junit.d.ts +1 -1
  97. package/lib/esm/scope/execute.d.ts +2 -2
  98. package/lib/esm/scope/index.d.ts +3 -3
  99. package/lib/esm/scope/scope.d.ts +3 -3
  100. package/lib/esm/scope/state.d.ts +1 -1
  101. package/lib/esm/server/http/apps.d.ts +1 -1
  102. package/lib/esm/server/http/css.d.ts +1 -1
  103. package/lib/esm/server/http/index.d.ts +4 -9
  104. package/lib/esm/server/http/response.d.ts +3 -3
  105. package/lib/esm/server/http/sitemap.d.ts +1 -1
  106. package/lib/esm/server/http/static.d.ts +1 -1
  107. package/lib/esm/server/http/typescript.d.ts +1 -1
  108. package/lib/esm/test_all.d.ts +9 -9
  109. package/lib/esm/tsconfig.tsbuildinfo +1 -1
  110. package/package.json +11 -9
  111. package/src/assert.ts +5 -5
  112. package/src/components/button_bar.ts +28 -30
  113. package/src/components/inline_edit.ts +8 -7
  114. package/src/components/logger.ts +6 -6
  115. package/src/components/select.ts +7 -7
  116. package/src/components/test.ts +5 -0
  117. package/src/components/virtual_scroll.test.ts +9 -6
  118. package/src/components/virtual_scroll.ts +29 -24
  119. package/src/context.test.ts +4 -4
  120. package/src/context.ts +16 -11
  121. package/src/debounce.ts +9 -3
  122. package/src/diff.test.ts +4 -4
  123. package/src/diff.ts +14 -16
  124. package/src/dom/css/border.ts +11 -11
  125. package/src/dom/css/core.ts +1 -1
  126. package/src/dom/css/fstyle.ts +4 -4
  127. package/src/dom/css/sizing.ts +1 -1
  128. package/src/dom/dom.ts +57 -47
  129. package/src/dom/fc.test.ts +8 -8
  130. package/src/dom/fc.ts +32 -35
  131. package/src/dom/form/form.app.ts +9 -9
  132. package/src/dom/form/form.ts +25 -16
  133. package/src/dom/form/index.html +3 -2
  134. package/src/dom/html.test.ts +12 -10
  135. package/src/dom/html.ts +2 -3
  136. package/src/dom/observable.test.ts +6 -6
  137. package/src/dom/observable.ts +2 -2
  138. package/src/dom/provide.ts +1 -1
  139. package/src/dom/router/link.ts +3 -3
  140. package/src/dom/router/router.ts +5 -5
  141. package/src/dom/svg.ts +7 -6
  142. package/src/dom/test.ts +3 -0
  143. package/src/dom/types/css.ts +43 -61
  144. package/src/dom/types/html.ts +2 -4
  145. package/src/dom/xml.ts +2 -2
  146. package/src/equal.test.ts +3 -3
  147. package/src/equal.ts +27 -14
  148. package/src/flags.test.ts +2 -2
  149. package/src/flags.ts +2 -2
  150. package/src/fs.test.ts +5 -5
  151. package/src/fs.ts +26 -20
  152. package/src/fs_node.ts +4 -4
  153. package/src/fs_win.test.ts +1 -1
  154. package/src/generator.test.ts +4 -3
  155. package/src/generator.ts +1 -1
  156. package/src/hooks/_notes +4 -1
  157. package/src/index.html +7 -7
  158. package/src/lock.test.ts +4 -4
  159. package/src/lock.ts +8 -7
  160. package/src/log.ts +28 -18
  161. package/src/observable/event.ts +7 -7
  162. package/src/observable/observable.test.ts +3 -3
  163. package/src/observable/observable.ts +71 -52
  164. package/src/result.test.ts +7 -10
  165. package/src/result.ts +51 -47
  166. package/src/safe.ts +1 -1
  167. package/src/scope/describe.ts +12 -11
  168. package/src/scope/display/console.ts +4 -4
  169. package/src/scope/display/dom.ts +9 -9
  170. package/src/scope/display/junit.ts +21 -24
  171. package/src/scope/execute.ts +17 -12
  172. package/src/scope/expect.ts +22 -22
  173. package/src/scope/fix.ts +10 -7
  174. package/src/scope/index.ts +3 -3
  175. package/src/scope/scope.ts +2 -2
  176. package/src/scope/state.ts +2 -2
  177. package/src/server/http/apps.ts +5 -5
  178. package/src/server/http/css.ts +10 -26
  179. package/src/server/http/index.ts +30 -24
  180. package/src/server/http/response.ts +12 -5
  181. package/src/server/http/sitemap.ts +8 -8
  182. package/src/server/http/static.ts +9 -6
  183. package/src/server/http/typescript.ts +25 -25
  184. package/src/server/main.ts +7 -4
  185. package/src/test.mjs +8 -8
  186. package/src/test_all.ts +16 -13
  187. package/src/transpile.mjs +6 -18
  188. package/build/pico.css +0 -2466
  189. package/build/pico.css.map +0 -1
  190. package/lib/cjs/assert.js +0 -46
  191. package/lib/cjs/awaitable.js +0 -2
  192. package/lib/cjs/case.js +0 -9
  193. package/lib/cjs/components/button_bar.js +0 -29
  194. package/lib/cjs/components/inline_edit.js +0 -51
  195. package/lib/cjs/components/logger.js +0 -27
  196. package/lib/cjs/components/select.js +0 -6
  197. package/lib/cjs/components/test.js +0 -7
  198. package/lib/cjs/components/virtual_scroll.js +0 -102
  199. package/lib/cjs/components/virtual_scroll.test.js +0 -22
  200. package/lib/cjs/context.js +0 -48
  201. package/lib/cjs/context.test.js +0 -48
  202. package/lib/cjs/debounce.js +0 -12
  203. package/lib/cjs/diff.js +0 -58
  204. package/lib/cjs/diff.test.js +0 -41
  205. package/lib/cjs/display.js +0 -16
  206. package/lib/cjs/dom/css/border.js +0 -33
  207. package/lib/cjs/dom/css/constants.js +0 -31
  208. package/lib/cjs/dom/css/core.js +0 -31
  209. package/lib/cjs/dom/css/fstyle.js +0 -36
  210. package/lib/cjs/dom/css/sizing.js +0 -14
  211. package/lib/cjs/dom/dom.js +0 -110
  212. package/lib/cjs/dom/fc.js +0 -39
  213. package/lib/cjs/dom/fc.test.js +0 -23
  214. package/lib/cjs/dom/form/form.app.js +0 -27
  215. package/lib/cjs/dom/form/form.js +0 -49
  216. package/lib/cjs/dom/form/form.test.js +0 -1
  217. package/lib/cjs/dom/html.js +0 -119
  218. package/lib/cjs/dom/html.test.js +0 -60
  219. package/lib/cjs/dom/observable.js +0 -10
  220. package/lib/cjs/dom/observable.test.js +0 -35
  221. package/lib/cjs/dom/provide.js +0 -12
  222. package/lib/cjs/dom/router/link.js +0 -7
  223. package/lib/cjs/dom/router/router.js +0 -55
  224. package/lib/cjs/dom/svg.js +0 -69
  225. package/lib/cjs/dom/test.js +0 -13
  226. package/lib/cjs/dom/types/css.js +0 -24
  227. package/lib/cjs/dom/types/dom.js +0 -1
  228. package/lib/cjs/dom/types/html.js +0 -2
  229. package/lib/cjs/dom/xml.js +0 -8
  230. package/lib/cjs/equal.js +0 -48
  231. package/lib/cjs/equal.test.js +0 -22
  232. package/lib/cjs/flags.js +0 -52
  233. package/lib/cjs/flags.test.js +0 -37
  234. package/lib/cjs/fs.js +0 -235
  235. package/lib/cjs/fs.test.js +0 -86
  236. package/lib/cjs/fs_node.js +0 -50
  237. package/lib/cjs/fs_win.test.js +0 -10
  238. package/lib/cjs/generator.js +0 -14
  239. package/lib/cjs/generator.test.js +0 -26
  240. package/lib/cjs/is_browser.js +0 -4
  241. package/lib/cjs/loader-register.d.mts +0 -1
  242. package/lib/cjs/loader-register.d.ts +0 -1
  243. package/lib/cjs/loader-register.js +0 -4
  244. package/lib/cjs/loader-register.mjs +0 -4
  245. package/lib/cjs/loader.d.mts +0 -23
  246. package/lib/cjs/loader.mjs +0 -41
  247. package/lib/cjs/lock.js +0 -27
  248. package/lib/cjs/lock.test.js +0 -18
  249. package/lib/cjs/log.js +0 -98
  250. package/lib/cjs/observable/event.js +0 -61
  251. package/lib/cjs/observable/observable.js +0 -363
  252. package/lib/cjs/observable/observable.test.js +0 -65
  253. package/lib/cjs/package.json +0 -1
  254. package/lib/cjs/range.js +0 -11
  255. package/lib/cjs/result.js +0 -80
  256. package/lib/cjs/result.test.js +0 -78
  257. package/lib/cjs/safe.js +0 -14
  258. package/lib/cjs/scope/describe.js +0 -73
  259. package/lib/cjs/scope/display/console.js +0 -25
  260. package/lib/cjs/scope/display/dom.js +0 -30
  261. package/lib/cjs/scope/display/junit.js +0 -21
  262. package/lib/cjs/scope/execute.js +0 -91
  263. package/lib/cjs/scope/expect.js +0 -110
  264. package/lib/cjs/scope/fix.js +0 -26
  265. package/lib/cjs/scope/index.js +0 -15
  266. package/lib/cjs/scope/scope.js +0 -2
  267. package/lib/cjs/scope/state.js +0 -12
  268. package/lib/cjs/server/http/apps.js +0 -27
  269. package/lib/cjs/server/http/css.js +0 -54
  270. package/lib/cjs/server/http/index.js +0 -77
  271. package/lib/cjs/server/http/response.js +0 -45
  272. package/lib/cjs/server/http/sitemap.js +0 -46
  273. package/lib/cjs/server/http/static.js +0 -25
  274. package/lib/cjs/server/http/typescript.js +0 -44
  275. package/lib/cjs/server/main.js +0 -14
  276. package/lib/cjs/test.mjs +0 -28
  277. package/lib/cjs/test_all.js +0 -30
  278. package/lib/cjs/transpile.mjs +0 -22
  279. package/lib/esm/assert.js +0 -38
  280. package/lib/esm/awaitable.js +0 -1
  281. package/lib/esm/case.js +0 -5
  282. package/lib/esm/components/button_bar.js +0 -27
  283. package/lib/esm/components/inline_edit.js +0 -48
  284. package/lib/esm/components/logger.js +0 -22
  285. package/lib/esm/components/select.js +0 -3
  286. package/lib/esm/components/test.js +0 -3
  287. package/lib/esm/components/virtual_scroll.js +0 -94
  288. package/lib/esm/components/virtual_scroll.test.js +0 -20
  289. package/lib/esm/context.js +0 -43
  290. package/lib/esm/context.test.js +0 -46
  291. package/lib/esm/debounce.js +0 -8
  292. package/lib/esm/diff.js +0 -54
  293. package/lib/esm/diff.test.js +0 -39
  294. package/lib/esm/display.js +0 -11
  295. package/lib/esm/dom/css/border.js +0 -27
  296. package/lib/esm/dom/css/constants.js +0 -28
  297. package/lib/esm/dom/css/core.js +0 -24
  298. package/lib/esm/dom/css/fstyle.js +0 -32
  299. package/lib/esm/dom/css/sizing.js +0 -10
  300. package/lib/esm/dom/dom.js +0 -104
  301. package/lib/esm/dom/fc.js +0 -35
  302. package/lib/esm/dom/fc.test.js +0 -21
  303. package/lib/esm/dom/form/form.app.js +0 -23
  304. package/lib/esm/dom/form/form.js +0 -34
  305. package/lib/esm/dom/form/form.test.js +0 -1
  306. package/lib/esm/dom/html.js +0 -114
  307. package/lib/esm/dom/html.test.js +0 -58
  308. package/lib/esm/dom/observable.js +0 -6
  309. package/lib/esm/dom/observable.test.js +0 -33
  310. package/lib/esm/dom/provide.js +0 -7
  311. package/lib/esm/dom/router/link.js +0 -3
  312. package/lib/esm/dom/router/router.js +0 -52
  313. package/lib/esm/dom/svg.js +0 -65
  314. package/lib/esm/dom/test.js +0 -9
  315. package/lib/esm/dom/types/css.js +0 -23
  316. package/lib/esm/dom/types/dom.js +0 -1
  317. package/lib/esm/dom/types/html.js +0 -1
  318. package/lib/esm/dom/xml.js +0 -4
  319. package/lib/esm/equal.js +0 -41
  320. package/lib/esm/equal.test.js +0 -20
  321. package/lib/esm/flags.js +0 -48
  322. package/lib/esm/flags.test.js +0 -35
  323. package/lib/esm/fs.js +0 -226
  324. package/lib/esm/fs.test.js +0 -84
  325. package/lib/esm/fs_node.js +0 -45
  326. package/lib/esm/fs_win.test.js +0 -8
  327. package/lib/esm/generator.js +0 -10
  328. package/lib/esm/generator.test.js +0 -24
  329. package/lib/esm/is_browser.js +0 -1
  330. package/lib/esm/loader-register.d.mts +0 -1
  331. package/lib/esm/loader-register.mjs +0 -2
  332. package/lib/esm/loader.d.mts +0 -23
  333. package/lib/esm/loader.mjs +0 -36
  334. package/lib/esm/lock.js +0 -23
  335. package/lib/esm/lock.test.js +0 -16
  336. package/lib/esm/log.js +0 -88
  337. package/lib/esm/observable/event.js +0 -46
  338. package/lib/esm/observable/observable.js +0 -343
  339. package/lib/esm/observable/observable.test.js +0 -63
  340. package/lib/esm/range.js +0 -7
  341. package/lib/esm/result.js +0 -65
  342. package/lib/esm/result.test.js +0 -76
  343. package/lib/esm/safe.js +0 -10
  344. package/lib/esm/scope/describe.js +0 -60
  345. package/lib/esm/scope/display/console.js +0 -21
  346. package/lib/esm/scope/display/dom.js +0 -26
  347. package/lib/esm/scope/display/junit.js +0 -17
  348. package/lib/esm/scope/execute.js +0 -85
  349. package/lib/esm/scope/expect.js +0 -104
  350. package/lib/esm/scope/fix.js +0 -22
  351. package/lib/esm/scope/index.js +0 -3
  352. package/lib/esm/scope/scope.js +0 -1
  353. package/lib/esm/scope/state.js +0 -8
  354. package/lib/esm/server/http/apps.js +0 -23
  355. package/lib/esm/server/http/css.js +0 -50
  356. package/lib/esm/server/http/index.js +0 -73
  357. package/lib/esm/server/http/response.js +0 -40
  358. package/lib/esm/server/http/sitemap.js +0 -42
  359. package/lib/esm/server/http/static.js +0 -21
  360. package/lib/esm/server/http/typescript.js +0 -40
  361. package/lib/esm/server/main.js +0 -12
  362. package/lib/esm/test.mjs +0 -26
  363. package/lib/esm/test_all.js +0 -28
  364. package/lib/esm/transpile.mjs +0 -18
  365. package/src/components/test.js +0 -3
  366. package/src/loader-register.mjs +0 -3
  367. package/src/loader.mjs +0 -46
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.takeWhile = void 0;
4
- function* takeWhile(predicate, iterator) {
5
- for (const x of iterator) {
6
- if (predicate(x)) {
7
- yield x;
8
- }
9
- else {
10
- return;
11
- }
12
- }
13
- }
14
- exports.takeWhile = takeWhile;
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const generator_js_1 = require("./generator.js");
4
- const index_js_1 = require("./scope/index.js");
5
- (0, index_js_1.describe)("Generator", () => {
6
- (0, index_js_1.it)("takes from a generator until a predicate", () => {
7
- const generator = function* () {
8
- let i = 1;
9
- while (true) {
10
- yield (i = i * 2);
11
- }
12
- };
13
- const filter = () => {
14
- let previousValue = 0;
15
- return (n) => {
16
- if (previousValue < 100) {
17
- previousValue = n;
18
- return true;
19
- }
20
- return false;
21
- };
22
- };
23
- const values = [...(0, generator_js_1.takeWhile)(filter(), generator())];
24
- (0, index_js_1.expect)(values).toEqual([2, 4, 8, 16, 32, 64, 128]);
25
- });
26
- });
@@ -1,4 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IsBrowser = void 0;
4
- exports.IsBrowser = typeof window !== "undefined";
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,4 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const node_module_1 = require("node:module");
4
- (0, node_module_1.register)('./loader.mjs', import.meta.url);
@@ -1,4 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const node_module_1 = require("node:module");
4
- (0, node_module_1.register)('./loader.mjs', import.meta.url);
@@ -1,23 +0,0 @@
1
- /** @returns {Promise<{url: string, shortCircuit?: boolean}>} */
2
- export function resolve(specifier: string, context: {
3
- parentURL?: string;
4
- }, defaultResolve: (specifier: string, context: {
5
- parentURL?: string;
6
- }, defaultResolve: Function) => Promise<{
7
- url: string;
8
- }>): Promise<{
9
- url: string;
10
- shortCircuit?: boolean;
11
- }>;
12
- /** @returns {Promise<{format: string, source: string}>} */
13
- export function load(url: string, context: {
14
- format?: string;
15
- }, defaultLoad: (url: string, context: {
16
- format?: string;
17
- }, defaultLoad?: Function) => Promise<{
18
- format: string;
19
- source: string;
20
- }>): Promise<{
21
- format: string;
22
- source: string;
23
- }>;
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.load = exports.resolve = void 0;
4
- const promises_1 = require("node:fs/promises");
5
- const node_process_1 = require("node:process");
6
- const node_url_1 = require("node:url");
7
- const transpile_mjs_1 = require("./transpile.mjs");
8
- const baseURL = (0, node_url_1.pathToFileURL)(`${(0, node_process_1.cwd)()}/`).href;
9
- /** @returns {Promise<{url: string, shortCircuit?: boolean}>} */
10
- async function resolve(
11
- /** @type string */ specifier,
12
- /** @type {{parentURL?: string}} */ context,
13
- /** @type {(specifier: string, context: {parentURL?: string}, defaultResolve: Function) => Promise<{url: string}>} */ defaultResolve) {
14
- const tsURL = new URL(specifier.replace(/js$/, "ts"), context.parentURL ?? baseURL);
15
- const tsSpecifier = tsURL.href;
16
- try {
17
- const stats = await (0, promises_1.stat)((0, node_url_1.fileURLToPath)(tsURL));
18
- if (stats.isFile()) {
19
- // return { url: tsSpecifier, shortCircuit: true };
20
- return defaultResolve(tsSpecifier, context, defaultResolve);
21
- }
22
- }
23
- catch (e) {
24
- // Do nothing
25
- }
26
- return defaultResolve(specifier, context, defaultResolve);
27
- }
28
- exports.resolve = resolve;
29
- /** @returns {Promise<{format: string, source: string}>} */
30
- async function load(
31
- /** @type string */ url,
32
- /** @type {{format?: string}} */ context,
33
- /** @type {(url: string, context: {format?: string}, defaultLoad?: Function) => Promise<{format: string, source: string}>} */ defaultLoad) {
34
- return url.endsWith("ts")
35
- ? {
36
- format: "module",
37
- source: await (0, transpile_mjs_1.transpile)(url, async () => (await defaultLoad(url, { format: "module" })).source),
38
- }
39
- : defaultLoad(url, context, defaultLoad);
40
- }
41
- exports.load = load;
package/lib/cjs/lock.js DELETED
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.lock = void 0;
4
- const locks = new WeakSet();
5
- function lock(fn) {
6
- return function (...args) {
7
- let ret = null;
8
- let ex = null;
9
- if (!locks.has(fn)) {
10
- locks.add(fn);
11
- try {
12
- ret = fn(...args);
13
- }
14
- catch (e) {
15
- ex = e;
16
- }
17
- }
18
- locks.delete(fn);
19
- if (ex !== null) {
20
- throw ex;
21
- }
22
- else {
23
- return ret;
24
- }
25
- };
26
- }
27
- exports.lock = lock;
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const index_js_1 = require("./scope/index.js");
4
- const lock_js_1 = require("./lock.js");
5
- (0, index_js_1.describe)("Lock", () => {
6
- (0, index_js_1.it)("prevents reentry", function () {
7
- let count = 0;
8
- const inc = (0, lock_js_1.lock)(function () {
9
- if (count > 4) {
10
- return;
11
- }
12
- inc();
13
- count++;
14
- });
15
- inc();
16
- (0, index_js_1.expect)(count).toBe(1);
17
- });
18
- });
package/lib/cjs/log.js DELETED
@@ -1,98 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.error = exports.warn = exports.info = exports.debug = exports.DEFAULT_LOGGER = exports.getLogger = exports.basicLogFormatter = exports.getLogLevel = exports.LEVELS = exports.LEVEL = void 0;
4
- const display_js_1 = require("./display.js");
5
- exports.LEVEL = {
6
- UNKNOWN: 2,
7
- DEBUG: 1,
8
- VERBOSE: 1,
9
- INFO: 2,
10
- WARN: 3,
11
- ERROR: 4,
12
- SILENT: 5,
13
- };
14
- exports.LEVELS = {
15
- unknown: exports.LEVEL.UNKNOWN,
16
- debug: exports.LEVEL.DEBUG,
17
- verbose: exports.LEVEL.VERBOSE,
18
- info: exports.LEVEL.INFO,
19
- warn: exports.LEVEL.WARN,
20
- error: exports.LEVEL.ERROR,
21
- silent: exports.LEVEL.SILENT,
22
- };
23
- function getLogLevel(level = "") {
24
- return (exports.LEVELS[level.toLowerCase()] ?? (!isNaN(+level) ? Number(level) : exports.LEVEL.INFO));
25
- }
26
- exports.getLogLevel = getLogLevel;
27
- function basicLogFormatter(data) {
28
- return `${data.prefix}: ${data.message}`;
29
- }
30
- exports.basicLogFormatter = basicLogFormatter;
31
- function findSource() {
32
- const err = new Error();
33
- // Stack will be:
34
- // findSource
35
- // logAt
36
- // {source}
37
- const lines = err.stack?.split("\n") ?? [];
38
- const atLines = lines.filter((line) => line.match(/^\s*at/));
39
- return atLines[2]?.trim().slice("at ".length) ?? "(unknown)";
40
- }
41
- function getLogger(name, args = {
42
- format: JSON.stringify,
43
- console,
44
- }) {
45
- if (args instanceof Function) {
46
- args = { format: args };
47
- }
48
- const logAt = (level, prefix, fn) => (message, data) => level >= (logger.level ?? exports.LEVEL.SILENT)
49
- ? fn(logger.format({
50
- name,
51
- prefix,
52
- level,
53
- message: (0, display_js_1.display)(message),
54
- ...data,
55
- source: findSource(),
56
- }))
57
- : undefined;
58
- const logger = {
59
- level: exports.LEVEL.INFO,
60
- format: args.format ?? JSON.stringify,
61
- console: args.console ?? global.console,
62
- debug: logAt(exports.LEVEL.DEBUG, "DEBUG", (l) => logger.console.debug(l)),
63
- info: logAt(exports.LEVEL.INFO, "INFO", (l) => logger.console.info(l)),
64
- warn: logAt(exports.LEVEL.WARN, "WARN", (l) => logger.console.warn(l)),
65
- error: logAt(exports.LEVEL.ERROR, "ERR", (l) => logger.console.error(l)),
66
- };
67
- return logger;
68
- }
69
- exports.getLogger = getLogger;
70
- exports.DEFAULT_LOGGER = getLogger("default");
71
- function debug(message, data) {
72
- if (data)
73
- exports.DEFAULT_LOGGER.debug(message, data);
74
- else
75
- exports.DEFAULT_LOGGER.debug(message);
76
- }
77
- exports.debug = debug;
78
- function info(message, data) {
79
- if (data)
80
- exports.DEFAULT_LOGGER.info(message, data);
81
- else
82
- exports.DEFAULT_LOGGER.info(message);
83
- }
84
- exports.info = info;
85
- function warn(message, data) {
86
- if (data)
87
- exports.DEFAULT_LOGGER.warn(message, data);
88
- else
89
- exports.DEFAULT_LOGGER.warn(message);
90
- }
91
- exports.warn = warn;
92
- function error(message, data) {
93
- if (data)
94
- exports.DEFAULT_LOGGER.error(message, data);
95
- else
96
- exports.DEFAULT_LOGGER.error(message);
97
- }
98
- exports.error = error;
@@ -1,61 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.collect = exports.marbles = exports.asEvents = exports.isEvent = exports.isFailed = exports.isCompleted = exports.isError = exports.isNext = exports.failed = exports.completed = exports.error = exports.next = void 0;
4
- const display_js_1 = require("../display.js");
5
- const next = (value) => ({
6
- value,
7
- completed: false,
8
- failed: false,
9
- });
10
- exports.next = next;
11
- const error = (e) => ({
12
- error: e,
13
- completed: false,
14
- failed: true,
15
- });
16
- exports.error = error;
17
- const completed = () => ({ completed: true, failed: false });
18
- exports.completed = completed;
19
- const failed = () => ({ completed: true, failed: true });
20
- exports.failed = failed;
21
- const isNext = (event) => !event.completed && !event.failed && event.value !== undefined;
22
- exports.isNext = isNext;
23
- const isError = (event) => event.failed && !event.completed;
24
- exports.isError = isError;
25
- const isCompleted = (event) => event.completed && !event.failed;
26
- exports.isCompleted = isCompleted;
27
- const isFailed = (event) => event.completed && event.failed;
28
- exports.isFailed = isFailed;
29
- const isEvent = (t) => {
30
- const b = t;
31
- return (0, exports.isNext)(b) || (0, exports.isError)(b) || (0, exports.isCompleted)(b);
32
- };
33
- exports.isEvent = isEvent;
34
- const asEvents = (a) => a.map((e) => ((0, exports.isEvent)(e) ? e : (0, exports.next)(e)));
35
- exports.asEvents = asEvents;
36
- const marble = (event) => (0, exports.isError)(event)
37
- ? "X"
38
- : (0, exports.isFailed)(event)
39
- ? "!"
40
- : (0, exports.isCompleted)(event)
41
- ? "|"
42
- : `(${(0, display_js_1.display)(event.value)})`;
43
- const marbles = (events) => `:${events.map(marble).join("-")}`;
44
- exports.marbles = marbles;
45
- const collect = (input$) => {
46
- const collected = [];
47
- const subscription = input$.subscribe({
48
- next: (x) => {
49
- collected.push((0, exports.next)(x));
50
- },
51
- error: (e) => {
52
- collected.push((0, exports.error)(e));
53
- },
54
- complete: () => {
55
- collected.push((0, exports.completed)());
56
- },
57
- });
58
- subscription.unsubscribe();
59
- return collected;
60
- };
61
- exports.collect = collect;
@@ -1,363 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.operator = exports.tap = exports.takeUntil = exports.reduce = exports.replay = exports.map = exports.last = exports.first = exports.distinct = exports.filter = exports.TapOperator = exports.TakeUntilOperator = exports.watch = exports.EventHandler = exports.eventListener = exports.ReplaySubject = exports.BehaviorSubject = exports.Subject = exports.SyncScheduler = exports.AsyncScheduler = exports.Observable = void 0;
4
- const log_js_1 = require("../log.js");
5
- exports.Observable = {
6
- of(...ts) {
7
- const subject = new Subject();
8
- (async function next() {
9
- if (subject.cold) {
10
- subject.onWarm(next);
11
- return;
12
- }
13
- if (ts.length === 0) {
14
- subject.complete();
15
- return;
16
- }
17
- const t = ts.shift();
18
- await subject.next(t);
19
- next();
20
- })();
21
- return subject;
22
- },
23
- combineLatest(o1, o2) {
24
- let latestSubject = new Subject();
25
- let o1LatestSet = false;
26
- let o1Latest;
27
- let o2LatestSet = false;
28
- let o2Latest;
29
- function next() {
30
- if (o1LatestSet && o2LatestSet) {
31
- latestSubject.next([o1Latest, o2Latest]);
32
- }
33
- }
34
- function error(e) {
35
- latestSubject.error(e);
36
- }
37
- function complete() {
38
- latestSubject.complete();
39
- o1sub.unsubscribe();
40
- o2sub.unsubscribe();
41
- }
42
- let o1sub = o1.subscribe({
43
- next(t) {
44
- o1Latest = t;
45
- o1LatestSet = true;
46
- next();
47
- },
48
- error,
49
- complete,
50
- });
51
- let o2sub = o2.subscribe({
52
- next(t) {
53
- o2Latest = t;
54
- o2LatestSet = true;
55
- next();
56
- },
57
- error,
58
- complete,
59
- });
60
- return latestSubject;
61
- },
62
- };
63
- exports.AsyncScheduler = {
64
- execute(fn) {
65
- return Promise.all(fn()).then(() => undefined);
66
- },
67
- };
68
- exports.SyncScheduler = {
69
- execute(fn) {
70
- fn();
71
- },
72
- };
73
- class Subject {
74
- scheduler;
75
- #coldWaiters = new Set();
76
- #subscribers = new Set();
77
- #complete = false;
78
- get $() {
79
- return this;
80
- }
81
- get hot() {
82
- return this.#subscribers.size > 0;
83
- }
84
- get cold() {
85
- return !this.hot;
86
- }
87
- constructor(scheduler = exports.AsyncScheduler) {
88
- this.scheduler = scheduler;
89
- }
90
- onWarm(fn) {
91
- if (this.cold)
92
- this.#coldWaiters.add(fn);
93
- }
94
- next(t) {
95
- if (this.#complete)
96
- throw new Error("Cannot call next on a completed subject");
97
- return this.scheduler.execute(() => [...this.#subscribers].map((s) => s.next?.(t)));
98
- }
99
- error(e) {
100
- if (this.#complete)
101
- throw new Error("Cannot call error on a completed subject");
102
- return this.scheduler.execute(() => [...this.#subscribers].map((s) => s.error?.(e)));
103
- }
104
- complete() {
105
- if (this.#complete)
106
- throw new Error("Cannot call complete on a completed subject");
107
- this.#complete = true;
108
- const finished = this.scheduler.execute(() => [...this.#subscribers].map((s) => s.complete?.()));
109
- this.#subscribers.clear(); // Free subscribers for garbage collection
110
- return finished;
111
- }
112
- subscribe(subscriber) {
113
- if (this.#complete)
114
- throw new Error("Cannot call subscribe on a completed subject");
115
- if (subscriber instanceof Function) {
116
- subscriber = { next: subscriber };
117
- }
118
- this.#subscribers.add(subscriber);
119
- [...this.#coldWaiters].forEach((w) => w());
120
- this.#coldWaiters.clear();
121
- return {
122
- unsubscribe: () => this.#subscribers.delete(subscriber),
123
- };
124
- }
125
- pipe(...os) {
126
- this.subscribe(os[0]);
127
- for (let i = 1; i < os.length; i++) {
128
- os[i - 1].subscribe(os[i]);
129
- }
130
- return os[os.length - 1];
131
- }
132
- filter(fn) {
133
- return this.pipe(exports.operator.filter(fn));
134
- }
135
- distinct(fn = Object.is) {
136
- return this.pipe(exports.operator.distinct(fn));
137
- }
138
- map(fn) {
139
- return this.pipe(exports.operator.map(fn));
140
- }
141
- reduce(fn, init) {
142
- return this.pipe(exports.operator.reduce(fn, init));
143
- }
144
- replay(n) {
145
- return this.pipe(exports.operator.replay(n));
146
- }
147
- tap(s) {
148
- return this.pipe(exports.operator.tap(s));
149
- }
150
- }
151
- exports.Subject = Subject;
152
- class BehaviorSubject extends Subject {
153
- #current;
154
- constructor(t, scheduler) {
155
- super(scheduler);
156
- this.#current = t;
157
- }
158
- next(t) {
159
- this.#current = t;
160
- return super.next(t);
161
- }
162
- subscribe(subscriber) {
163
- if (subscriber instanceof Function) {
164
- subscriber = { next: subscriber };
165
- }
166
- subscriber.next?.(this.#current);
167
- return super.subscribe(subscriber);
168
- }
169
- get current() {
170
- return this.#current;
171
- }
172
- }
173
- exports.BehaviorSubject = BehaviorSubject;
174
- class ReplaySubject extends Subject {
175
- n;
176
- #history = [];
177
- constructor(n, scheduler) {
178
- super(scheduler);
179
- this.n = n;
180
- }
181
- next(t) {
182
- this.#history.push(t);
183
- if (this.#history.length > this.n) {
184
- this.#history.shift();
185
- }
186
- return super.next(t);
187
- }
188
- subscribe(subscriber) {
189
- if (subscriber instanceof Function) {
190
- subscriber = { next: subscriber };
191
- }
192
- const history = [...this.#history];
193
- (function send() {
194
- if (history.length == 0)
195
- return;
196
- const t = history.shift();
197
- subscriber.next?.(t);
198
- new Promise(send);
199
- })();
200
- return super.subscribe(subscriber);
201
- }
202
- }
203
- exports.ReplaySubject = ReplaySubject;
204
- function eventListener() {
205
- const observable = new Subject();
206
- function listener(e) {
207
- e.preventDefault();
208
- observable.next(e);
209
- }
210
- return [observable, listener];
211
- }
212
- exports.eventListener = eventListener;
213
- class EventHandler extends Subject {
214
- eventFn;
215
- constructor(eventFn) {
216
- super();
217
- this.eventFn = eventFn;
218
- }
219
- next(e) {
220
- e.preventDefault();
221
- super.next(e);
222
- }
223
- }
224
- exports.EventHandler = EventHandler;
225
- const watch = (logger = log_js_1.DEFAULT_LOGGER) => (observable) => {
226
- observable.tap({
227
- next(t) {
228
- logger.info(t);
229
- },
230
- complete() {
231
- logger.info("Observable completed");
232
- },
233
- error(e) {
234
- logger.warn(e);
235
- },
236
- });
237
- };
238
- exports.watch = watch;
239
- class MapOperator extends Subject {
240
- mapFn;
241
- constructor(mapFn) {
242
- super();
243
- this.mapFn = mapFn;
244
- }
245
- next(t) {
246
- return super.next(this.mapFn(t));
247
- }
248
- }
249
- class FilterOperator extends Subject {
250
- filterFn;
251
- constructor(filterFn) {
252
- super();
253
- this.filterFn = filterFn;
254
- }
255
- next(t) {
256
- return this.filterFn(t) ? super.next(t) : undefined;
257
- }
258
- }
259
- class DistinctOperator extends Subject {
260
- distinctFn;
261
- #prior = undefined;
262
- constructor(distinctFn = Object.is) {
263
- super();
264
- this.distinctFn = distinctFn;
265
- }
266
- next(t) {
267
- if (this.#prior === undefined) {
268
- this.#prior = t;
269
- return super.next(t);
270
- }
271
- const same = this.distinctFn(this.#prior, t);
272
- if (!same) {
273
- this.#prior = t;
274
- return super.next(t);
275
- }
276
- return undefined;
277
- }
278
- }
279
- class ReduceOperator extends BehaviorSubject {
280
- fn;
281
- constructor(fn, init) {
282
- super(init);
283
- this.fn = fn;
284
- }
285
- next(t) {
286
- return super.next(this.fn(this.current, t));
287
- }
288
- }
289
- class TakeUntilOperator extends Subject {
290
- constructor(o) {
291
- super();
292
- o.subscribe(() => this.complete());
293
- }
294
- }
295
- exports.TakeUntilOperator = TakeUntilOperator;
296
- class TapOperator extends Subject {
297
- subscriber;
298
- constructor(fn) {
299
- super();
300
- this.subscriber = fn instanceof Function ? { next: fn } : fn;
301
- }
302
- next(t) {
303
- this.subscriber.next?.(t);
304
- return super.next(t);
305
- }
306
- error(e) {
307
- this.subscriber.error?.(e);
308
- return super.error(e);
309
- }
310
- complete() {
311
- this.subscriber.complete?.();
312
- return super.complete();
313
- }
314
- }
315
- exports.TapOperator = TapOperator;
316
- class FirstOperator extends Subject {
317
- next(t) {
318
- const next = super.next(t);
319
- this.complete();
320
- return next;
321
- }
322
- }
323
- class LastOperator extends Subject {
324
- #latest;
325
- next(t) {
326
- this.#latest = t;
327
- }
328
- complete() {
329
- if (this.#latest !== undefined) {
330
- super.next(this.#latest);
331
- }
332
- return super.complete();
333
- }
334
- }
335
- const filter = (fn) => new FilterOperator(fn);
336
- exports.filter = filter;
337
- const distinct = (fn) => new DistinctOperator(fn ?? Object.is);
338
- exports.distinct = distinct;
339
- const first = () => new FirstOperator();
340
- exports.first = first;
341
- const last = () => new LastOperator();
342
- exports.last = last;
343
- const map = (fn) => new MapOperator(fn);
344
- exports.map = map;
345
- const replay = (n) => new ReplaySubject(n);
346
- exports.replay = replay;
347
- const reduce = (fn, init) => new ReduceOperator(fn, init);
348
- exports.reduce = reduce;
349
- const takeUntil = (o) => new TakeUntilOperator(o);
350
- exports.takeUntil = takeUntil;
351
- const tap = (fn) => new TapOperator(fn);
352
- exports.tap = tap;
353
- exports.operator = {
354
- filter: exports.filter,
355
- distinct: exports.distinct,
356
- first: exports.first,
357
- last: exports.last,
358
- map: exports.map,
359
- replay: exports.replay,
360
- reduce: exports.reduce,
361
- takeUntil: exports.takeUntil,
362
- tap: exports.tap,
363
- };