flingit 0.0.63 → 0.0.66

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 (545) hide show
  1. package/dist/cli/commands/db.d.ts +10 -0
  2. package/dist/cli/commands/db.d.ts.map +1 -1
  3. package/dist/cli/commands/db.js +17 -0
  4. package/dist/cli/commands/db.js.map +1 -1
  5. package/dist/cli/commands/dev.d.ts.map +1 -1
  6. package/dist/cli/commands/dev.js +22 -7
  7. package/dist/cli/commands/dev.js.map +1 -1
  8. package/dist/cli/commands/init.js +1 -1
  9. package/dist/cli/commands/init.js.map +1 -1
  10. package/dist/cli/commands/push.d.ts +1 -0
  11. package/dist/cli/commands/push.d.ts.map +1 -1
  12. package/dist/cli/commands/push.js +3 -3
  13. package/dist/cli/commands/push.js.map +1 -1
  14. package/dist/cli/commands/storage.d.ts +0 -3
  15. package/dist/cli/commands/storage.d.ts.map +1 -1
  16. package/dist/cli/commands/storage.js +1 -4
  17. package/dist/cli/commands/storage.js.map +1 -1
  18. package/dist/cli/commands/workflow.d.ts +51 -0
  19. package/dist/cli/commands/workflow.d.ts.map +1 -0
  20. package/dist/cli/commands/workflow.js +479 -0
  21. package/dist/cli/commands/workflow.js.map +1 -0
  22. package/dist/cli/deploy/bundler.d.ts.map +1 -1
  23. package/dist/cli/deploy/bundler.js +17 -1
  24. package/dist/cli/deploy/bundler.js.map +1 -1
  25. package/dist/cli/index.d.ts.map +1 -1
  26. package/dist/cli/index.js +2 -0
  27. package/dist/cli/index.js.map +1 -1
  28. package/dist/cli/utils/cli-io-impl.d.ts +24 -2
  29. package/dist/cli/utils/cli-io-impl.d.ts.map +1 -1
  30. package/dist/cli/utils/cli-io-impl.js +87 -3
  31. package/dist/cli/utils/cli-io-impl.js.map +1 -1
  32. package/dist/cli/utils/cli-io.d.ts +25 -1
  33. package/dist/cli/utils/cli-io.d.ts.map +1 -1
  34. package/dist/cli/utils/project-name.d.ts +9 -0
  35. package/dist/cli/utils/project-name.d.ts.map +1 -1
  36. package/dist/cli/utils/project-name.js +28 -0
  37. package/dist/cli/utils/project-name.js.map +1 -1
  38. package/dist/cli/utils/project.d.ts +14 -1
  39. package/dist/cli/utils/project.d.ts.map +1 -1
  40. package/dist/cli/utils/project.js +16 -0
  41. package/dist/cli/utils/project.js.map +1 -1
  42. package/dist/index.d.ts +4 -1
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +3 -1
  45. package/dist/index.js.map +1 -1
  46. package/dist/runtime/entry.d.ts +7 -0
  47. package/dist/runtime/entry.d.ts.map +1 -1
  48. package/dist/runtime/entry.js +71 -2
  49. package/dist/runtime/entry.js.map +1 -1
  50. package/dist/types/workflow.d.ts +82 -0
  51. package/dist/types/workflow.d.ts.map +1 -0
  52. package/dist/types/workflow.js +8 -0
  53. package/dist/types/workflow.js.map +1 -0
  54. package/dist/worker-runtime/d1-event-store.d.ts +23 -0
  55. package/dist/worker-runtime/d1-event-store.d.ts.map +1 -0
  56. package/dist/worker-runtime/d1-event-store.js +253 -0
  57. package/dist/worker-runtime/d1-event-store.js.map +1 -0
  58. package/dist/worker-runtime/entry-extract.d.ts.map +1 -1
  59. package/dist/worker-runtime/entry-extract.js +6 -3
  60. package/dist/worker-runtime/entry-extract.js.map +1 -1
  61. package/dist/worker-runtime/entry.d.ts.map +1 -1
  62. package/dist/worker-runtime/entry.js +116 -13
  63. package/dist/worker-runtime/entry.js.map +1 -1
  64. package/dist/worker-runtime/index.d.ts +2 -0
  65. package/dist/worker-runtime/index.d.ts.map +1 -1
  66. package/dist/worker-runtime/index.js +5 -0
  67. package/dist/worker-runtime/index.js.map +1 -1
  68. package/dist/workflow/runtime.d.ts +59 -0
  69. package/dist/workflow/runtime.d.ts.map +1 -0
  70. package/dist/workflow/runtime.js +483 -0
  71. package/dist/workflow/runtime.js.map +1 -0
  72. package/node_modules/@glideapps/ts-necessities/LICENSE +21 -0
  73. package/node_modules/@glideapps/ts-necessities/README.md +16 -0
  74. package/node_modules/@glideapps/ts-necessities/dist/branded-strings.d.ts +39 -0
  75. package/node_modules/@glideapps/ts-necessities/dist/default-map.d.ts +53 -0
  76. package/node_modules/@glideapps/ts-necessities/dist/index.d.mts +113 -0
  77. package/node_modules/@glideapps/ts-necessities/dist/index.d.ts +113 -0
  78. package/node_modules/@glideapps/ts-necessities/dist/index.js +237 -0
  79. package/node_modules/@glideapps/ts-necessities/dist/index.mjs +189 -0
  80. package/node_modules/@glideapps/ts-necessities/package.json +52 -0
  81. package/node_modules/@rollup/rollup-linux-x64-gnu/README.md +3 -0
  82. package/node_modules/@rollup/rollup-linux-x64-gnu/package.json +25 -0
  83. package/node_modules/@rollup/rollup-linux-x64-gnu/rollup.linux-x64-gnu.node +0 -0
  84. package/node_modules/base64-js/LICENSE +21 -0
  85. package/node_modules/base64-js/README.md +34 -0
  86. package/node_modules/base64-js/base64js.min.js +1 -0
  87. package/node_modules/base64-js/index.d.ts +3 -0
  88. package/node_modules/base64-js/index.js +150 -0
  89. package/node_modules/base64-js/package.json +47 -0
  90. package/node_modules/better-sqlite3/LICENSE +21 -0
  91. package/node_modules/better-sqlite3/README.md +99 -0
  92. package/node_modules/better-sqlite3/binding.gyp +38 -0
  93. package/node_modules/better-sqlite3/deps/common.gypi +68 -0
  94. package/node_modules/better-sqlite3/deps/copy.js +31 -0
  95. package/node_modules/better-sqlite3/deps/defines.gypi +41 -0
  96. package/node_modules/better-sqlite3/deps/download.sh +122 -0
  97. package/node_modules/better-sqlite3/deps/patches/1208.patch +15 -0
  98. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.c +265994 -0
  99. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.h +13968 -0
  100. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3ext.h +730 -0
  101. package/node_modules/better-sqlite3/deps/sqlite3.gyp +80 -0
  102. package/node_modules/better-sqlite3/deps/test_extension.c +21 -0
  103. package/node_modules/better-sqlite3/lib/database.js +90 -0
  104. package/node_modules/better-sqlite3/lib/index.js +3 -0
  105. package/node_modules/better-sqlite3/lib/methods/aggregate.js +43 -0
  106. package/node_modules/better-sqlite3/lib/methods/backup.js +67 -0
  107. package/node_modules/better-sqlite3/lib/methods/function.js +31 -0
  108. package/node_modules/better-sqlite3/lib/methods/inspect.js +7 -0
  109. package/node_modules/better-sqlite3/lib/methods/pragma.js +12 -0
  110. package/node_modules/better-sqlite3/lib/methods/serialize.js +16 -0
  111. package/node_modules/better-sqlite3/lib/methods/table.js +189 -0
  112. package/node_modules/better-sqlite3/lib/methods/transaction.js +78 -0
  113. package/node_modules/better-sqlite3/lib/methods/wrappers.js +54 -0
  114. package/node_modules/better-sqlite3/lib/sqlite-error.js +20 -0
  115. package/node_modules/better-sqlite3/lib/util.js +12 -0
  116. package/node_modules/better-sqlite3/package.json +59 -0
  117. package/node_modules/better-sqlite3/src/addon.cpp +47 -0
  118. package/node_modules/better-sqlite3/src/better_sqlite3.cpp +74 -0
  119. package/node_modules/better-sqlite3/src/objects/backup.cpp +120 -0
  120. package/node_modules/better-sqlite3/src/objects/backup.hpp +36 -0
  121. package/node_modules/better-sqlite3/src/objects/database.cpp +417 -0
  122. package/node_modules/better-sqlite3/src/objects/database.hpp +103 -0
  123. package/node_modules/better-sqlite3/src/objects/statement-iterator.cpp +113 -0
  124. package/node_modules/better-sqlite3/src/objects/statement-iterator.hpp +50 -0
  125. package/node_modules/better-sqlite3/src/objects/statement.cpp +383 -0
  126. package/node_modules/better-sqlite3/src/objects/statement.hpp +58 -0
  127. package/node_modules/better-sqlite3/src/util/bind-map.cpp +73 -0
  128. package/node_modules/better-sqlite3/src/util/binder.cpp +193 -0
  129. package/node_modules/better-sqlite3/src/util/constants.cpp +172 -0
  130. package/node_modules/better-sqlite3/src/util/custom-aggregate.cpp +121 -0
  131. package/node_modules/better-sqlite3/src/util/custom-function.cpp +59 -0
  132. package/node_modules/better-sqlite3/src/util/custom-table.cpp +409 -0
  133. package/node_modules/better-sqlite3/src/util/data-converter.cpp +17 -0
  134. package/node_modules/better-sqlite3/src/util/data.cpp +194 -0
  135. package/node_modules/better-sqlite3/src/util/helpers.cpp +109 -0
  136. package/node_modules/better-sqlite3/src/util/macros.cpp +83 -0
  137. package/node_modules/better-sqlite3/src/util/query-macros.cpp +71 -0
  138. package/node_modules/better-sqlite3/src/util/row-builder.cpp +49 -0
  139. package/node_modules/bindings/LICENSE.md +22 -0
  140. package/node_modules/bindings/README.md +98 -0
  141. package/node_modules/bindings/bindings.js +221 -0
  142. package/node_modules/bindings/package.json +28 -0
  143. package/node_modules/bl/.travis.yml +17 -0
  144. package/node_modules/bl/BufferList.js +396 -0
  145. package/node_modules/bl/LICENSE.md +13 -0
  146. package/node_modules/bl/README.md +247 -0
  147. package/node_modules/bl/bl.js +84 -0
  148. package/node_modules/bl/package.json +37 -0
  149. package/node_modules/bl/test/convert.js +21 -0
  150. package/node_modules/bl/test/indexOf.js +492 -0
  151. package/node_modules/bl/test/isBufferList.js +32 -0
  152. package/node_modules/bl/test/test.js +869 -0
  153. package/node_modules/buffer/AUTHORS.md +70 -0
  154. package/node_modules/buffer/LICENSE +21 -0
  155. package/node_modules/buffer/README.md +410 -0
  156. package/node_modules/buffer/index.d.ts +186 -0
  157. package/node_modules/buffer/index.js +1817 -0
  158. package/node_modules/buffer/package.json +96 -0
  159. package/node_modules/chownr/LICENSE +15 -0
  160. package/node_modules/chownr/README.md +3 -0
  161. package/node_modules/chownr/chownr.js +167 -0
  162. package/node_modules/chownr/package.json +29 -0
  163. package/node_modules/decompress-response/index.d.ts +22 -0
  164. package/node_modules/decompress-response/index.js +58 -0
  165. package/node_modules/decompress-response/license +9 -0
  166. package/node_modules/decompress-response/package.json +56 -0
  167. package/node_modules/decompress-response/readme.md +48 -0
  168. package/node_modules/deep-extend/LICENSE +20 -0
  169. package/node_modules/deep-extend/README.md +91 -0
  170. package/node_modules/deep-extend/index.js +1 -0
  171. package/node_modules/deep-extend/lib/deep-extend.js +150 -0
  172. package/node_modules/deep-extend/package.json +62 -0
  173. package/node_modules/detect-libc/LICENSE +201 -0
  174. package/node_modules/detect-libc/README.md +163 -0
  175. package/node_modules/detect-libc/index.d.ts +14 -0
  176. package/node_modules/detect-libc/lib/detect-libc.js +313 -0
  177. package/node_modules/detect-libc/lib/elf.js +39 -0
  178. package/node_modules/detect-libc/lib/filesystem.js +51 -0
  179. package/node_modules/detect-libc/lib/process.js +24 -0
  180. package/node_modules/detect-libc/package.json +44 -0
  181. package/node_modules/determined/LICENSE +18 -0
  182. package/node_modules/determined/README.md +317 -0
  183. package/node_modules/determined/dist/index.cjs +370 -0
  184. package/node_modules/determined/dist/index.d.cts +110 -0
  185. package/node_modules/determined/dist/index.d.ts +110 -0
  186. package/node_modules/determined/dist/index.js +332 -0
  187. package/node_modules/determined/package.json +45 -0
  188. package/node_modules/end-of-stream/LICENSE +21 -0
  189. package/node_modules/end-of-stream/README.md +54 -0
  190. package/node_modules/end-of-stream/index.js +96 -0
  191. package/node_modules/end-of-stream/package.json +37 -0
  192. package/node_modules/expand-template/.travis.yml +6 -0
  193. package/node_modules/expand-template/LICENSE +21 -0
  194. package/node_modules/expand-template/README.md +43 -0
  195. package/node_modules/expand-template/index.js +26 -0
  196. package/node_modules/expand-template/package.json +29 -0
  197. package/node_modules/expand-template/test.js +67 -0
  198. package/node_modules/file-uri-to-path/.npmignore +1 -0
  199. package/node_modules/file-uri-to-path/.travis.yml +30 -0
  200. package/node_modules/file-uri-to-path/History.md +21 -0
  201. package/node_modules/file-uri-to-path/LICENSE +20 -0
  202. package/node_modules/file-uri-to-path/README.md +74 -0
  203. package/node_modules/file-uri-to-path/index.d.ts +2 -0
  204. package/node_modules/file-uri-to-path/index.js +66 -0
  205. package/node_modules/file-uri-to-path/package.json +32 -0
  206. package/node_modules/file-uri-to-path/test/test.js +24 -0
  207. package/node_modules/file-uri-to-path/test/tests.json +13 -0
  208. package/node_modules/flingflow/.nvmrc +1 -0
  209. package/node_modules/flingflow/AGENTS.md +5 -0
  210. package/node_modules/flingflow/README.md +689 -0
  211. package/node_modules/flingflow/SPEC.md +550 -0
  212. package/node_modules/flingflow/TESTING.md +508 -0
  213. package/node_modules/flingflow/dist/backoff.d.ts +9 -0
  214. package/node_modules/flingflow/dist/backoff.js +14 -0
  215. package/node_modules/flingflow/dist/backoff.js.map +1 -0
  216. package/node_modules/flingflow/dist/clock.d.ts +13 -0
  217. package/node_modules/flingflow/dist/clock.js +21 -0
  218. package/node_modules/flingflow/dist/clock.js.map +1 -0
  219. package/node_modules/flingflow/dist/context.d.ts +8 -0
  220. package/node_modules/flingflow/dist/context.js +45 -0
  221. package/node_modules/flingflow/dist/context.js.map +1 -0
  222. package/node_modules/flingflow/dist/engine.d.ts +29 -0
  223. package/node_modules/flingflow/dist/engine.js +306 -0
  224. package/node_modules/flingflow/dist/engine.js.map +1 -0
  225. package/node_modules/flingflow/dist/index.d.ts +18 -0
  226. package/node_modules/flingflow/dist/index.js +14 -0
  227. package/node_modules/flingflow/dist/index.js.map +1 -0
  228. package/node_modules/flingflow/dist/recovery.d.ts +16 -0
  229. package/node_modules/flingflow/dist/recovery.js +118 -0
  230. package/node_modules/flingflow/dist/recovery.js.map +1 -0
  231. package/node_modules/flingflow/dist/registry.d.ts +24 -0
  232. package/node_modules/flingflow/dist/registry.js +29 -0
  233. package/node_modules/flingflow/dist/registry.js.map +1 -0
  234. package/node_modules/flingflow/dist/store-memory.d.ts +30 -0
  235. package/node_modules/flingflow/dist/store-memory.js +385 -0
  236. package/node_modules/flingflow/dist/store-memory.js.map +1 -0
  237. package/node_modules/flingflow/dist/store-sqlite.d.ts +31 -0
  238. package/node_modules/flingflow/dist/store-sqlite.js +445 -0
  239. package/node_modules/flingflow/dist/store-sqlite.js.map +1 -0
  240. package/node_modules/flingflow/dist/store.d.ts +44 -0
  241. package/node_modules/flingflow/dist/store.js +21 -0
  242. package/node_modules/flingflow/dist/store.js.map +1 -0
  243. package/node_modules/flingflow/dist/stress.d.ts +1 -0
  244. package/node_modules/flingflow/dist/stress.js +377 -0
  245. package/node_modules/flingflow/dist/stress.js.map +1 -0
  246. package/node_modules/flingflow/dist/transitions.d.ts +14 -0
  247. package/node_modules/flingflow/dist/transitions.js +28 -0
  248. package/node_modules/flingflow/dist/transitions.js.map +1 -0
  249. package/node_modules/flingflow/dist/types.d.ts +114 -0
  250. package/node_modules/flingflow/dist/types.js +10 -0
  251. package/node_modules/flingflow/dist/types.js.map +1 -0
  252. package/node_modules/flingflow/eslint.config.js +94 -0
  253. package/node_modules/flingflow/package.json +66 -0
  254. package/node_modules/flingflow/src/backoff.ts +14 -0
  255. package/node_modules/flingflow/src/clock.ts +29 -0
  256. package/node_modules/flingflow/src/context.ts +60 -0
  257. package/node_modules/flingflow/src/engine.ts +367 -0
  258. package/node_modules/flingflow/src/index.ts +52 -0
  259. package/node_modules/flingflow/src/recovery.ts +144 -0
  260. package/node_modules/flingflow/src/registry.ts +52 -0
  261. package/node_modules/flingflow/src/store-memory.ts +418 -0
  262. package/node_modules/flingflow/src/store-sqlite.ts +498 -0
  263. package/node_modules/flingflow/src/store.ts +61 -0
  264. package/node_modules/flingflow/src/stress.ts +423 -0
  265. package/node_modules/flingflow/src/transitions.ts +38 -0
  266. package/node_modules/flingflow/src/types.ts +84 -0
  267. package/node_modules/flingflow/test/backoff.test.ts +54 -0
  268. package/node_modules/flingflow/test/context.test.ts +94 -0
  269. package/node_modules/flingflow/test/engine.test.ts +362 -0
  270. package/node_modules/flingflow/test/fixtures.ts +58 -0
  271. package/node_modules/flingflow/test/recovery.test.ts +176 -0
  272. package/node_modules/flingflow/test/simulation.test.ts +395 -0
  273. package/node_modules/flingflow/test/store-conformance.ts +386 -0
  274. package/node_modules/flingflow/test/store-memory.test.ts +8 -0
  275. package/node_modules/flingflow/test/store-sqlite.test.ts +8 -0
  276. package/node_modules/flingflow/tsconfig.json +18 -0
  277. package/node_modules/flingflow/tsconfig.lint.json +5 -0
  278. package/node_modules/flingflow/tsconfig.typecheck.json +20 -0
  279. package/node_modules/flingflow/vitest.config.ts +10 -0
  280. package/node_modules/fs-constants/LICENSE +21 -0
  281. package/node_modules/fs-constants/README.md +26 -0
  282. package/node_modules/fs-constants/browser.js +1 -0
  283. package/node_modules/fs-constants/index.js +1 -0
  284. package/node_modules/fs-constants/package.json +19 -0
  285. package/node_modules/github-from-package/.travis.yml +4 -0
  286. package/node_modules/github-from-package/LICENSE +18 -0
  287. package/node_modules/github-from-package/example/package.json +8 -0
  288. package/node_modules/github-from-package/example/url.js +3 -0
  289. package/node_modules/github-from-package/index.js +17 -0
  290. package/node_modules/github-from-package/package.json +30 -0
  291. package/node_modules/github-from-package/readme.markdown +53 -0
  292. package/node_modules/github-from-package/test/a.json +8 -0
  293. package/node_modules/github-from-package/test/b.json +5 -0
  294. package/node_modules/github-from-package/test/c.json +5 -0
  295. package/node_modules/github-from-package/test/d.json +7 -0
  296. package/node_modules/github-from-package/test/e.json +5 -0
  297. package/node_modules/github-from-package/test/url.js +19 -0
  298. package/node_modules/ieee754/LICENSE +11 -0
  299. package/node_modules/ieee754/README.md +51 -0
  300. package/node_modules/ieee754/index.d.ts +10 -0
  301. package/node_modules/ieee754/index.js +85 -0
  302. package/node_modules/ieee754/package.json +52 -0
  303. package/node_modules/inherits/LICENSE +16 -0
  304. package/node_modules/inherits/README.md +42 -0
  305. package/node_modules/inherits/inherits.js +9 -0
  306. package/node_modules/inherits/inherits_browser.js +27 -0
  307. package/node_modules/inherits/package.json +29 -0
  308. package/node_modules/ini/LICENSE +15 -0
  309. package/node_modules/ini/README.md +102 -0
  310. package/node_modules/ini/ini.js +206 -0
  311. package/node_modules/ini/package.json +33 -0
  312. package/node_modules/mimic-response/index.d.ts +17 -0
  313. package/node_modules/mimic-response/index.js +77 -0
  314. package/node_modules/mimic-response/license +9 -0
  315. package/node_modules/mimic-response/package.json +42 -0
  316. package/node_modules/mimic-response/readme.md +78 -0
  317. package/node_modules/minimist/.eslintrc +29 -0
  318. package/node_modules/minimist/.github/FUNDING.yml +12 -0
  319. package/node_modules/minimist/.nycrc +14 -0
  320. package/node_modules/minimist/CHANGELOG.md +298 -0
  321. package/node_modules/minimist/LICENSE +18 -0
  322. package/node_modules/minimist/README.md +121 -0
  323. package/node_modules/minimist/example/parse.js +4 -0
  324. package/node_modules/minimist/index.js +263 -0
  325. package/node_modules/minimist/package.json +75 -0
  326. package/node_modules/minimist/test/all_bool.js +34 -0
  327. package/node_modules/minimist/test/bool.js +177 -0
  328. package/node_modules/minimist/test/dash.js +43 -0
  329. package/node_modules/minimist/test/default_bool.js +37 -0
  330. package/node_modules/minimist/test/dotted.js +24 -0
  331. package/node_modules/minimist/test/kv_short.js +32 -0
  332. package/node_modules/minimist/test/long.js +33 -0
  333. package/node_modules/minimist/test/num.js +38 -0
  334. package/node_modules/minimist/test/parse.js +209 -0
  335. package/node_modules/minimist/test/parse_modified.js +11 -0
  336. package/node_modules/minimist/test/proto.js +64 -0
  337. package/node_modules/minimist/test/short.js +69 -0
  338. package/node_modules/minimist/test/stop_early.js +17 -0
  339. package/node_modules/minimist/test/unknown.js +104 -0
  340. package/node_modules/minimist/test/whitespace.js +10 -0
  341. package/node_modules/mkdirp-classic/LICENSE +21 -0
  342. package/node_modules/mkdirp-classic/README.md +18 -0
  343. package/node_modules/mkdirp-classic/index.js +98 -0
  344. package/node_modules/mkdirp-classic/package.json +18 -0
  345. package/node_modules/napi-build-utils/.github/workflows/run-npm-tests.yml +31 -0
  346. package/node_modules/napi-build-utils/LICENSE +21 -0
  347. package/node_modules/napi-build-utils/README.md +52 -0
  348. package/node_modules/napi-build-utils/index.js +214 -0
  349. package/node_modules/napi-build-utils/index.md +0 -0
  350. package/node_modules/napi-build-utils/package.json +42 -0
  351. package/node_modules/neverthrow/LICENSE +22 -0
  352. package/node_modules/neverthrow/README.md +1683 -0
  353. package/node_modules/neverthrow/dist/index.cjs.js +510 -0
  354. package/node_modules/neverthrow/dist/index.d.ts +408 -0
  355. package/node_modules/neverthrow/dist/index.es.js +497 -0
  356. package/node_modules/neverthrow/package.json +64 -0
  357. package/node_modules/node-abi/LICENSE +21 -0
  358. package/node_modules/node-abi/README.md +54 -0
  359. package/node_modules/node-abi/abi_registry.json +425 -0
  360. package/node_modules/node-abi/index.js +179 -0
  361. package/node_modules/node-abi/package.json +45 -0
  362. package/node_modules/once/LICENSE +15 -0
  363. package/node_modules/once/README.md +79 -0
  364. package/node_modules/once/once.js +42 -0
  365. package/node_modules/once/package.json +33 -0
  366. package/node_modules/prebuild-install/CHANGELOG.md +131 -0
  367. package/node_modules/prebuild-install/CONTRIBUTING.md +6 -0
  368. package/node_modules/prebuild-install/LICENSE +21 -0
  369. package/node_modules/prebuild-install/README.md +163 -0
  370. package/node_modules/prebuild-install/asset.js +44 -0
  371. package/node_modules/prebuild-install/bin.js +78 -0
  372. package/node_modules/prebuild-install/download.js +142 -0
  373. package/node_modules/prebuild-install/error.js +14 -0
  374. package/node_modules/prebuild-install/help.txt +16 -0
  375. package/node_modules/prebuild-install/index.js +1 -0
  376. package/node_modules/prebuild-install/log.js +33 -0
  377. package/node_modules/prebuild-install/package.json +67 -0
  378. package/node_modules/prebuild-install/proxy.js +35 -0
  379. package/node_modules/prebuild-install/rc.js +64 -0
  380. package/node_modules/prebuild-install/util.js +143 -0
  381. package/node_modules/pump/.github/FUNDING.yml +2 -0
  382. package/node_modules/pump/.travis.yml +5 -0
  383. package/node_modules/pump/LICENSE +21 -0
  384. package/node_modules/pump/README.md +74 -0
  385. package/node_modules/pump/SECURITY.md +5 -0
  386. package/node_modules/pump/index.js +86 -0
  387. package/node_modules/pump/package.json +24 -0
  388. package/node_modules/pump/test-browser.js +66 -0
  389. package/node_modules/pump/test-node.js +53 -0
  390. package/node_modules/rc/LICENSE.APACHE2 +15 -0
  391. package/node_modules/rc/LICENSE.BSD +26 -0
  392. package/node_modules/rc/LICENSE.MIT +24 -0
  393. package/node_modules/rc/README.md +227 -0
  394. package/node_modules/rc/browser.js +7 -0
  395. package/node_modules/rc/cli.js +4 -0
  396. package/node_modules/rc/index.js +53 -0
  397. package/node_modules/rc/lib/utils.js +104 -0
  398. package/node_modules/rc/package.json +29 -0
  399. package/node_modules/rc/test/ini.js +16 -0
  400. package/node_modules/rc/test/nested-env-vars.js +50 -0
  401. package/node_modules/rc/test/test.js +59 -0
  402. package/node_modules/readable-stream/CONTRIBUTING.md +38 -0
  403. package/node_modules/readable-stream/GOVERNANCE.md +136 -0
  404. package/node_modules/readable-stream/LICENSE +47 -0
  405. package/node_modules/readable-stream/README.md +106 -0
  406. package/node_modules/readable-stream/errors-browser.js +127 -0
  407. package/node_modules/readable-stream/errors.js +116 -0
  408. package/node_modules/readable-stream/experimentalWarning.js +17 -0
  409. package/node_modules/readable-stream/lib/_stream_duplex.js +126 -0
  410. package/node_modules/readable-stream/lib/_stream_passthrough.js +37 -0
  411. package/node_modules/readable-stream/lib/_stream_readable.js +1027 -0
  412. package/node_modules/readable-stream/lib/_stream_transform.js +190 -0
  413. package/node_modules/readable-stream/lib/_stream_writable.js +641 -0
  414. package/node_modules/readable-stream/lib/internal/streams/async_iterator.js +180 -0
  415. package/node_modules/readable-stream/lib/internal/streams/buffer_list.js +183 -0
  416. package/node_modules/readable-stream/lib/internal/streams/destroy.js +96 -0
  417. package/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +86 -0
  418. package/node_modules/readable-stream/lib/internal/streams/from-browser.js +3 -0
  419. package/node_modules/readable-stream/lib/internal/streams/from.js +52 -0
  420. package/node_modules/readable-stream/lib/internal/streams/pipeline.js +86 -0
  421. package/node_modules/readable-stream/lib/internal/streams/state.js +22 -0
  422. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
  423. package/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
  424. package/node_modules/readable-stream/package.json +68 -0
  425. package/node_modules/readable-stream/readable-browser.js +9 -0
  426. package/node_modules/readable-stream/readable.js +16 -0
  427. package/node_modules/safe-buffer/LICENSE +21 -0
  428. package/node_modules/safe-buffer/README.md +584 -0
  429. package/node_modules/safe-buffer/index.d.ts +187 -0
  430. package/node_modules/safe-buffer/index.js +65 -0
  431. package/node_modules/safe-buffer/package.json +51 -0
  432. package/node_modules/semver/LICENSE +15 -0
  433. package/node_modules/semver/README.md +664 -0
  434. package/node_modules/semver/bin/semver.js +191 -0
  435. package/node_modules/semver/classes/comparator.js +143 -0
  436. package/node_modules/semver/classes/index.js +7 -0
  437. package/node_modules/semver/classes/range.js +557 -0
  438. package/node_modules/semver/classes/semver.js +333 -0
  439. package/node_modules/semver/functions/clean.js +8 -0
  440. package/node_modules/semver/functions/cmp.js +54 -0
  441. package/node_modules/semver/functions/coerce.js +62 -0
  442. package/node_modules/semver/functions/compare-build.js +9 -0
  443. package/node_modules/semver/functions/compare-loose.js +5 -0
  444. package/node_modules/semver/functions/compare.js +7 -0
  445. package/node_modules/semver/functions/diff.js +60 -0
  446. package/node_modules/semver/functions/eq.js +5 -0
  447. package/node_modules/semver/functions/gt.js +5 -0
  448. package/node_modules/semver/functions/gte.js +5 -0
  449. package/node_modules/semver/functions/inc.js +21 -0
  450. package/node_modules/semver/functions/lt.js +5 -0
  451. package/node_modules/semver/functions/lte.js +5 -0
  452. package/node_modules/semver/functions/major.js +5 -0
  453. package/node_modules/semver/functions/minor.js +5 -0
  454. package/node_modules/semver/functions/neq.js +5 -0
  455. package/node_modules/semver/functions/parse.js +18 -0
  456. package/node_modules/semver/functions/patch.js +5 -0
  457. package/node_modules/semver/functions/prerelease.js +8 -0
  458. package/node_modules/semver/functions/rcompare.js +5 -0
  459. package/node_modules/semver/functions/rsort.js +5 -0
  460. package/node_modules/semver/functions/satisfies.js +12 -0
  461. package/node_modules/semver/functions/sort.js +5 -0
  462. package/node_modules/semver/functions/valid.js +8 -0
  463. package/node_modules/semver/index.js +91 -0
  464. package/node_modules/semver/internal/constants.js +37 -0
  465. package/node_modules/semver/internal/debug.js +11 -0
  466. package/node_modules/semver/internal/identifiers.js +29 -0
  467. package/node_modules/semver/internal/lrucache.js +42 -0
  468. package/node_modules/semver/internal/parse-options.js +17 -0
  469. package/node_modules/semver/internal/re.js +223 -0
  470. package/node_modules/semver/package.json +78 -0
  471. package/node_modules/semver/preload.js +4 -0
  472. package/node_modules/semver/range.bnf +16 -0
  473. package/node_modules/semver/ranges/gtr.js +6 -0
  474. package/node_modules/semver/ranges/intersects.js +9 -0
  475. package/node_modules/semver/ranges/ltr.js +6 -0
  476. package/node_modules/semver/ranges/max-satisfying.js +27 -0
  477. package/node_modules/semver/ranges/min-satisfying.js +26 -0
  478. package/node_modules/semver/ranges/min-version.js +63 -0
  479. package/node_modules/semver/ranges/outside.js +82 -0
  480. package/node_modules/semver/ranges/simplify.js +49 -0
  481. package/node_modules/semver/ranges/subset.js +249 -0
  482. package/node_modules/semver/ranges/to-comparators.js +10 -0
  483. package/node_modules/semver/ranges/valid.js +13 -0
  484. package/node_modules/simple-concat/.travis.yml +3 -0
  485. package/node_modules/simple-concat/LICENSE +20 -0
  486. package/node_modules/simple-concat/README.md +44 -0
  487. package/node_modules/simple-concat/index.js +15 -0
  488. package/node_modules/simple-concat/package.json +47 -0
  489. package/node_modules/simple-concat/test/basic.js +41 -0
  490. package/node_modules/simple-get/.github/dependabot.yml +15 -0
  491. package/node_modules/simple-get/.github/workflows/ci.yml +23 -0
  492. package/node_modules/simple-get/LICENSE +20 -0
  493. package/node_modules/simple-get/README.md +333 -0
  494. package/node_modules/simple-get/index.js +108 -0
  495. package/node_modules/simple-get/package.json +67 -0
  496. package/node_modules/string_decoder/LICENSE +48 -0
  497. package/node_modules/string_decoder/README.md +47 -0
  498. package/node_modules/string_decoder/lib/string_decoder.js +296 -0
  499. package/node_modules/string_decoder/package.json +34 -0
  500. package/node_modules/strip-json-comments/index.js +70 -0
  501. package/node_modules/strip-json-comments/license +21 -0
  502. package/node_modules/strip-json-comments/package.json +42 -0
  503. package/node_modules/strip-json-comments/readme.md +64 -0
  504. package/node_modules/tar-fs/.travis.yml +6 -0
  505. package/node_modules/tar-fs/LICENSE +21 -0
  506. package/node_modules/tar-fs/README.md +165 -0
  507. package/node_modules/tar-fs/index.js +363 -0
  508. package/node_modules/tar-fs/package.json +41 -0
  509. package/node_modules/tar-fs/test/fixtures/a/hello.txt +1 -0
  510. package/node_modules/tar-fs/test/fixtures/b/a/test.txt +1 -0
  511. package/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
  512. package/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
  513. package/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
  514. package/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
  515. package/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
  516. package/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
  517. package/node_modules/tar-fs/test/fixtures/e/file +0 -0
  518. package/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
  519. package/node_modules/tar-fs/test/index.js +346 -0
  520. package/node_modules/tar-stream/LICENSE +21 -0
  521. package/node_modules/tar-stream/README.md +168 -0
  522. package/node_modules/tar-stream/extract.js +257 -0
  523. package/node_modules/tar-stream/headers.js +295 -0
  524. package/node_modules/tar-stream/index.js +2 -0
  525. package/node_modules/tar-stream/pack.js +255 -0
  526. package/node_modules/tar-stream/package.json +58 -0
  527. package/node_modules/tar-stream/sandbox.js +11 -0
  528. package/node_modules/tunnel-agent/LICENSE +55 -0
  529. package/node_modules/tunnel-agent/README.md +4 -0
  530. package/node_modules/tunnel-agent/index.js +244 -0
  531. package/node_modules/tunnel-agent/package.json +22 -0
  532. package/node_modules/util-deprecate/History.md +16 -0
  533. package/node_modules/util-deprecate/LICENSE +24 -0
  534. package/node_modules/util-deprecate/README.md +53 -0
  535. package/node_modules/util-deprecate/browser.js +67 -0
  536. package/node_modules/util-deprecate/node.js +6 -0
  537. package/node_modules/util-deprecate/package.json +27 -0
  538. package/node_modules/wrappy/LICENSE +15 -0
  539. package/node_modules/wrappy/README.md +36 -0
  540. package/node_modules/wrappy/package.json +29 -0
  541. package/node_modules/wrappy/wrappy.js +33 -0
  542. package/package.json +12 -2
  543. package/templates/default/dot-claude/skills/fling/.hash +1 -1
  544. package/templates/default/dot-claude/skills/fling/SKILL.md +58 -29
  545. package/templates/default/dot-claude/skills/fling/references/WORKFLOWS.md +368 -0
@@ -0,0 +1,110 @@
1
+ import { Result } from 'neverthrow';
2
+ import { BrandedString } from '@glideapps/ts-necessities';
3
+
4
+ interface EntropySource {
5
+ random(reason: string): number;
6
+ }
7
+ declare class SimpleEntropySource implements EntropySource {
8
+ random(): number;
9
+ }
10
+ interface EntropyRecord {
11
+ readonly name: string;
12
+ readonly value: number;
13
+ }
14
+ declare class RecordingEntropySource implements EntropySource {
15
+ private readonly underlying;
16
+ private readonly records;
17
+ constructor(underlying: EntropySource);
18
+ random(name: string): number;
19
+ getRecords(): readonly EntropyRecord[];
20
+ }
21
+ declare class ReplayingEntropySource implements EntropySource {
22
+ private readonly records;
23
+ private position;
24
+ constructor(records: readonly EntropyRecord[]);
25
+ random(name: string): number;
26
+ }
27
+ declare function sample<T>(entropy: EntropySource, name: string, items: readonly T[]): T | undefined;
28
+
29
+ interface Logger {
30
+ log(...log: readonly unknown[]): void;
31
+ error(...log: readonly unknown[]): void;
32
+ }
33
+ interface SimulationTask extends Logger, EntropySource {
34
+ checkpoint(...log: readonly unknown[]): Promise<void>;
35
+ failpoint(...log: readonly unknown[]): Promise<void>;
36
+ blockpoint(...log: readonly unknown[]): void;
37
+ abortSimulation(e: unknown): never;
38
+ }
39
+ interface TaskSpec<T> {
40
+ readonly name: string;
41
+ readonly f: (task: SimulationTask) => Promise<T>;
42
+ }
43
+ interface Simulation {
44
+ runTasks<TSpecs extends readonly TaskSpec<any>[]>(specs: TSpecs): Promise<Result<{
45
+ [K in keyof TSpecs]: TSpecs[K] extends TaskSpec<infer R> ? R : never;
46
+ }, Error>>;
47
+ }
48
+ declare class NoSimulationTask implements SimulationTask {
49
+ private readonly taskName;
50
+ private readonly shouldLog;
51
+ constructor(taskName: string, shouldLog: boolean);
52
+ log(...log: readonly unknown[]): void;
53
+ error(...log: readonly unknown[]): void;
54
+ random(): number;
55
+ checkpoint(...log: readonly unknown[]): Promise<void>;
56
+ failpoint(...log: readonly unknown[]): Promise<void>;
57
+ blockpoint(...log: readonly unknown[]): void;
58
+ abortSimulation(e: unknown): never;
59
+ }
60
+ declare class NoSimulation implements Simulation {
61
+ private readonly log;
62
+ constructor(log: boolean);
63
+ runTasks<TSpecs extends readonly TaskSpec<any>[]>(specs: TSpecs): Promise<Result<{
64
+ [K in keyof TSpecs]: TSpecs[K] extends TaskSpec<infer R> ? R : never;
65
+ }, Error>>;
66
+ }
67
+ declare const noSimulation: NoSimulation;
68
+ declare class SimulationImpl implements Simulation {
69
+ private readonly logger;
70
+ private readonly entropy;
71
+ private readonly failureProbability;
72
+ private readonly taskInfos;
73
+ private abortedWithError;
74
+ constructor(logger: Logger, entropy: EntropySource, failureProbability: number);
75
+ private abort;
76
+ private pickTask;
77
+ private unlockIfNecessary;
78
+ runTasks<TSpecs extends readonly TaskSpec<any>[]>(specs: TSpecs): Promise<Result<{
79
+ [K in keyof TSpecs]: TSpecs[K] extends TaskSpec<infer R> ? R : never;
80
+ }, Error>>;
81
+ }
82
+
83
+ type ErrorType = BrandedString<"ErrorType">;
84
+ declare const makeErrorType: (s: string) => ErrorType;
85
+ declare class ApplicationFailure extends Error {
86
+ readonly type: ErrorType | undefined;
87
+ readonly nonRetryable: boolean;
88
+ constructor(message: string, type?: ErrorType, nonRetryable?: boolean);
89
+ }
90
+ declare function isApplicationFailure(error: unknown): error is ApplicationFailure;
91
+
92
+ declare class Mutex {
93
+ /** This is `undefined` iff the mutex is unlocked. Otherwise it's an array of resolve functions, one for each waiter. */
94
+ private waiters;
95
+ private readonly name;
96
+ constructor(name: string);
97
+ get isLocked(): boolean;
98
+ lock(task: SimulationTask, reason: string): Promise<void>;
99
+ unlock(task: SimulationTask, reason: string): void;
100
+ }
101
+
102
+ declare class ConditionVariable {
103
+ private readonly waiters;
104
+ private readonly name;
105
+ constructor(name: string);
106
+ wait(task: SimulationTask, reason: string): Promise<void>;
107
+ notifyAll(task: SimulationTask, reason: string): void;
108
+ }
109
+
110
+ export { ApplicationFailure, ConditionVariable, type EntropySource, type ErrorType, type Logger, Mutex, NoSimulationTask, RecordingEntropySource, ReplayingEntropySource, SimpleEntropySource, type Simulation, SimulationImpl, type SimulationTask, type TaskSpec, isApplicationFailure, makeErrorType, noSimulation, sample };
@@ -0,0 +1,110 @@
1
+ import { Result } from 'neverthrow';
2
+ import { BrandedString } from '@glideapps/ts-necessities';
3
+
4
+ interface EntropySource {
5
+ random(reason: string): number;
6
+ }
7
+ declare class SimpleEntropySource implements EntropySource {
8
+ random(): number;
9
+ }
10
+ interface EntropyRecord {
11
+ readonly name: string;
12
+ readonly value: number;
13
+ }
14
+ declare class RecordingEntropySource implements EntropySource {
15
+ private readonly underlying;
16
+ private readonly records;
17
+ constructor(underlying: EntropySource);
18
+ random(name: string): number;
19
+ getRecords(): readonly EntropyRecord[];
20
+ }
21
+ declare class ReplayingEntropySource implements EntropySource {
22
+ private readonly records;
23
+ private position;
24
+ constructor(records: readonly EntropyRecord[]);
25
+ random(name: string): number;
26
+ }
27
+ declare function sample<T>(entropy: EntropySource, name: string, items: readonly T[]): T | undefined;
28
+
29
+ interface Logger {
30
+ log(...log: readonly unknown[]): void;
31
+ error(...log: readonly unknown[]): void;
32
+ }
33
+ interface SimulationTask extends Logger, EntropySource {
34
+ checkpoint(...log: readonly unknown[]): Promise<void>;
35
+ failpoint(...log: readonly unknown[]): Promise<void>;
36
+ blockpoint(...log: readonly unknown[]): void;
37
+ abortSimulation(e: unknown): never;
38
+ }
39
+ interface TaskSpec<T> {
40
+ readonly name: string;
41
+ readonly f: (task: SimulationTask) => Promise<T>;
42
+ }
43
+ interface Simulation {
44
+ runTasks<TSpecs extends readonly TaskSpec<any>[]>(specs: TSpecs): Promise<Result<{
45
+ [K in keyof TSpecs]: TSpecs[K] extends TaskSpec<infer R> ? R : never;
46
+ }, Error>>;
47
+ }
48
+ declare class NoSimulationTask implements SimulationTask {
49
+ private readonly taskName;
50
+ private readonly shouldLog;
51
+ constructor(taskName: string, shouldLog: boolean);
52
+ log(...log: readonly unknown[]): void;
53
+ error(...log: readonly unknown[]): void;
54
+ random(): number;
55
+ checkpoint(...log: readonly unknown[]): Promise<void>;
56
+ failpoint(...log: readonly unknown[]): Promise<void>;
57
+ blockpoint(...log: readonly unknown[]): void;
58
+ abortSimulation(e: unknown): never;
59
+ }
60
+ declare class NoSimulation implements Simulation {
61
+ private readonly log;
62
+ constructor(log: boolean);
63
+ runTasks<TSpecs extends readonly TaskSpec<any>[]>(specs: TSpecs): Promise<Result<{
64
+ [K in keyof TSpecs]: TSpecs[K] extends TaskSpec<infer R> ? R : never;
65
+ }, Error>>;
66
+ }
67
+ declare const noSimulation: NoSimulation;
68
+ declare class SimulationImpl implements Simulation {
69
+ private readonly logger;
70
+ private readonly entropy;
71
+ private readonly failureProbability;
72
+ private readonly taskInfos;
73
+ private abortedWithError;
74
+ constructor(logger: Logger, entropy: EntropySource, failureProbability: number);
75
+ private abort;
76
+ private pickTask;
77
+ private unlockIfNecessary;
78
+ runTasks<TSpecs extends readonly TaskSpec<any>[]>(specs: TSpecs): Promise<Result<{
79
+ [K in keyof TSpecs]: TSpecs[K] extends TaskSpec<infer R> ? R : never;
80
+ }, Error>>;
81
+ }
82
+
83
+ type ErrorType = BrandedString<"ErrorType">;
84
+ declare const makeErrorType: (s: string) => ErrorType;
85
+ declare class ApplicationFailure extends Error {
86
+ readonly type: ErrorType | undefined;
87
+ readonly nonRetryable: boolean;
88
+ constructor(message: string, type?: ErrorType, nonRetryable?: boolean);
89
+ }
90
+ declare function isApplicationFailure(error: unknown): error is ApplicationFailure;
91
+
92
+ declare class Mutex {
93
+ /** This is `undefined` iff the mutex is unlocked. Otherwise it's an array of resolve functions, one for each waiter. */
94
+ private waiters;
95
+ private readonly name;
96
+ constructor(name: string);
97
+ get isLocked(): boolean;
98
+ lock(task: SimulationTask, reason: string): Promise<void>;
99
+ unlock(task: SimulationTask, reason: string): void;
100
+ }
101
+
102
+ declare class ConditionVariable {
103
+ private readonly waiters;
104
+ private readonly name;
105
+ constructor(name: string);
106
+ wait(task: SimulationTask, reason: string): Promise<void>;
107
+ notifyAll(task: SimulationTask, reason: string): void;
108
+ }
109
+
110
+ export { ApplicationFailure, ConditionVariable, type EntropySource, type ErrorType, type Logger, Mutex, NoSimulationTask, RecordingEntropySource, ReplayingEntropySource, SimpleEntropySource, type Simulation, SimulationImpl, type SimulationTask, type TaskSpec, isApplicationFailure, makeErrorType, noSimulation, sample };
@@ -0,0 +1,332 @@
1
+ // simulation.ts
2
+ import { assert, exceptionToError, exceptionToString } from "@glideapps/ts-necessities";
3
+
4
+ // entropy.ts
5
+ var SimpleEntropySource = class {
6
+ random() {
7
+ return Math.random();
8
+ }
9
+ };
10
+ var RecordingEntropySource = class {
11
+ underlying;
12
+ records = [];
13
+ constructor(underlying) {
14
+ this.underlying = underlying;
15
+ }
16
+ random(name) {
17
+ const value = this.underlying.random(name);
18
+ this.records.push({ name, value });
19
+ return value;
20
+ }
21
+ getRecords() {
22
+ return this.records;
23
+ }
24
+ };
25
+ var ReplayingEntropySource = class {
26
+ records;
27
+ position = 0;
28
+ constructor(records) {
29
+ this.records = records.slice();
30
+ }
31
+ random(name) {
32
+ const record = this.records[this.position];
33
+ if (record === void 0) {
34
+ throw new Error(`No more entropy records available when requesting "${name}"`);
35
+ }
36
+ if (record.name !== name) {
37
+ throw new Error(
38
+ `Entropy record name mismatch at position ${this.position}: expected "${record.name}", got "${name}"`
39
+ );
40
+ }
41
+ this.position++;
42
+ return record.value;
43
+ }
44
+ };
45
+ function sample(entropy, name, items) {
46
+ if (items.length < 2) return items[0];
47
+ const index = Math.floor(entropy.random(name) * items.length);
48
+ return items[index];
49
+ }
50
+
51
+ // errors.ts
52
+ import { makeBrandString } from "@glideapps/ts-necessities";
53
+ var makeErrorType = makeBrandString();
54
+ var ApplicationFailure = class extends Error {
55
+ type;
56
+ nonRetryable;
57
+ constructor(message, type, nonRetryable) {
58
+ super(message);
59
+ this.type = type;
60
+ this.nonRetryable = nonRetryable ?? false;
61
+ }
62
+ };
63
+ function isApplicationFailure(error) {
64
+ return error instanceof ApplicationFailure;
65
+ }
66
+
67
+ // simulation.ts
68
+ import { err, ok } from "neverthrow";
69
+ var NoSimulationTask = class {
70
+ taskName;
71
+ shouldLog;
72
+ constructor(taskName, shouldLog) {
73
+ this.taskName = taskName;
74
+ this.shouldLog = shouldLog;
75
+ }
76
+ log(...log) {
77
+ if (this.shouldLog) {
78
+ console.log(`${this.taskName}: `, ...log);
79
+ }
80
+ }
81
+ error(...log) {
82
+ console.error(`${this.taskName}: `, ...log);
83
+ }
84
+ random() {
85
+ return Math.random();
86
+ }
87
+ checkpoint(...log) {
88
+ this.log(...log);
89
+ return Promise.resolve();
90
+ }
91
+ failpoint(...log) {
92
+ this.log(...log);
93
+ return Promise.resolve();
94
+ }
95
+ blockpoint(...log) {
96
+ this.log(...log);
97
+ }
98
+ abortSimulation(e) {
99
+ throw exceptionToError(e);
100
+ }
101
+ };
102
+ var NoSimulation = class {
103
+ log;
104
+ constructor(log) {
105
+ this.log = log;
106
+ }
107
+ async runTasks(specs) {
108
+ const shouldLog = this.log;
109
+ try {
110
+ const results = await Promise.all(
111
+ specs.map(({ name: taskName, f }) => {
112
+ const task = new NoSimulationTask(taskName, shouldLog);
113
+ return f(task);
114
+ })
115
+ );
116
+ return ok(results);
117
+ } catch (e) {
118
+ return err(exceptionToError(e));
119
+ }
120
+ }
121
+ };
122
+ var noSimulation = new NoSimulation(false);
123
+ var SimulationImpl = class {
124
+ logger;
125
+ entropy;
126
+ failureProbability;
127
+ // FIXME: Should this just be a `TaskInfo[]`, since we never look at the task anyway?
128
+ taskInfos = /* @__PURE__ */ new Map();
129
+ abortedWithError;
130
+ constructor(logger, entropy, failureProbability) {
131
+ this.logger = logger;
132
+ this.entropy = entropy;
133
+ this.failureProbability = failureProbability;
134
+ }
135
+ abort(e) {
136
+ if (this.abortedWithError === void 0) {
137
+ this.abortedWithError = e;
138
+ this.logger.error(`Aborting simulation: ${exceptionToString(e)}`);
139
+ }
140
+ throw e;
141
+ }
142
+ pickTask(tasks) {
143
+ const task = sample(this.entropy, `Picking task out of ${tasks.map((t) => t.name).join(", ")}`, tasks);
144
+ assert(task !== void 0, "No tasks to pick from");
145
+ return task;
146
+ }
147
+ unlockIfNecessary() {
148
+ if (this.abortedWithError !== void 0) throw this.abortedWithError;
149
+ if (this.taskInfos.size === 0) return;
150
+ const entries = Array.from(this.taskInfos.entries());
151
+ if (entries.some(([, i]) => i.resolve === void 0)) {
152
+ return;
153
+ }
154
+ const checkpointEntries = entries.filter(([, i]) => i.resolve !== void 0 && i.resolve !== false);
155
+ assert(checkpointEntries.length > 0, "All tasks are blocked");
156
+ const info = this.pickTask(checkpointEntries.map(([, i]) => i));
157
+ this.logger.log(`${info.name} UNBLOCKED from ${entries.map(([, i]) => i.name).join(", ")}`);
158
+ const { resolve } = info;
159
+ assert(resolve !== void 0 && resolve !== false);
160
+ info.resolve = void 0;
161
+ resolve();
162
+ }
163
+ async runTasks(specs) {
164
+ const simulation = this;
165
+ const tasksAndInfos = specs.map((s) => {
166
+ const info = { name: s.name, resolve: void 0 };
167
+ const task = {
168
+ random(name) {
169
+ const r = simulation.entropy.random(`${s.name} random number: ${name}`);
170
+ simulation.logger.log(`${s.name} RANDOM ${name}: ${r}`);
171
+ return r;
172
+ },
173
+ log(...log) {
174
+ simulation.logger.log(`${s.name}:`, ...log);
175
+ },
176
+ error(...log) {
177
+ simulation.logger.error(`${s.name}:`, ...log);
178
+ },
179
+ checkpoint(...log) {
180
+ simulation.logger.log(`${s.name} CHECKPOINT:`, ...log);
181
+ assert(
182
+ simulation.taskInfos.has(task),
183
+ `Task ${s.name} wants to checkpoint, but doesn't exist anymore`
184
+ );
185
+ const promise = new Promise((resolve) => {
186
+ assert(info.resolve === void 0 || info.resolve === false);
187
+ info.resolve = resolve;
188
+ });
189
+ simulation.unlockIfNecessary();
190
+ return promise;
191
+ },
192
+ failpoint(...log) {
193
+ assert(
194
+ simulation.taskInfos.has(task),
195
+ `Task ${s.name} wants to failpoint, but doesn't exist anymore`
196
+ );
197
+ const shouldFail = simulation.failureProbability > 0 && simulation.entropy.random(`${s.name} failpoint: ${log.join(" ")}`) < simulation.failureProbability;
198
+ if (shouldFail) {
199
+ simulation.logger.log(`${s.name} FAILING:`, ...log);
200
+ return Promise.reject(
201
+ new ApplicationFailure(`Simulated failure at failpoint: ${log.join(" ")}`)
202
+ );
203
+ }
204
+ simulation.logger.log(`${s.name} FAILPOINT:`, ...log);
205
+ const promise = new Promise((resolve) => {
206
+ assert(
207
+ info.resolve === void 0 || info.resolve === false,
208
+ `Task ${s.name} already has a resolve`
209
+ );
210
+ info.resolve = resolve;
211
+ });
212
+ simulation.unlockIfNecessary();
213
+ return promise;
214
+ },
215
+ blockpoint(...log) {
216
+ simulation.logger.log(`${s.name} BLOCKPOINT:`, ...log);
217
+ assert(simulation.taskInfos.has(task));
218
+ assert(info.resolve === void 0, `Task ${s.name} already has a resolve`);
219
+ info.resolve = false;
220
+ simulation.unlockIfNecessary();
221
+ },
222
+ abortSimulation(e) {
223
+ return simulation.abort(e);
224
+ }
225
+ };
226
+ return [s, task, info];
227
+ });
228
+ for (const [, task, info] of tasksAndInfos) {
229
+ this.taskInfos.set(task, info);
230
+ }
231
+ try {
232
+ const results = await Promise.all(
233
+ tasksAndInfos.map(([s, task]) => {
234
+ return task.checkpoint("START").then(() => s.f(task)).catch((e) => this.abort(e)).finally(() => {
235
+ this.taskInfos.delete(task);
236
+ this.logger.log(
237
+ `FINISHED ${s.name}, still left ${Array.from(this.taskInfos.values()).map((i) => i.name).join(", ")}`
238
+ );
239
+ this.unlockIfNecessary();
240
+ });
241
+ })
242
+ );
243
+ return ok(results);
244
+ } catch (e) {
245
+ return err(exceptionToError(e));
246
+ }
247
+ }
248
+ };
249
+
250
+ // mutex.ts
251
+ import { assert as assert2, defined } from "@glideapps/ts-necessities";
252
+ var Mutex = class {
253
+ /** This is `undefined` iff the mutex is unlocked. Otherwise it's an array of resolve functions, one for each waiter. */
254
+ waiters;
255
+ name;
256
+ constructor(name) {
257
+ this.name = name;
258
+ }
259
+ get isLocked() {
260
+ return this.waiters !== void 0;
261
+ }
262
+ lock(task, reason) {
263
+ if (this.waiters === void 0) {
264
+ task.log(`mutex "${this.name}" locked unopposed for "${reason}"`);
265
+ this.waiters = [];
266
+ return Promise.resolve();
267
+ } else {
268
+ task.blockpoint(`mutex "${this.name}" enqueue for "${reason}", ${this.waiters.length} other waiters`);
269
+ const p = new Promise((resolve) => {
270
+ defined(this.waiters, "Promise init function did not run inline").push(async () => {
271
+ await task.checkpoint(
272
+ `mutex "${this.name}" acquired by waiter for "${reason}", ${defined(this.waiters).length} other waiters`
273
+ );
274
+ resolve();
275
+ });
276
+ });
277
+ return p;
278
+ }
279
+ }
280
+ unlock(task, reason) {
281
+ assert2(this.waiters !== void 0, "Can't unlock a mutex that's not locked");
282
+ const resolve = this.waiters.shift();
283
+ if (resolve !== void 0) {
284
+ task.log(
285
+ `mutex "${this.name}" unlocked and passed to next waiter for "${reason}", ${this.waiters.length} waiters left`
286
+ );
287
+ resolve();
288
+ } else {
289
+ task.log(`mutex "${this.name}" unlocked for "${reason}"`);
290
+ this.waiters = void 0;
291
+ }
292
+ }
293
+ };
294
+
295
+ // condition-variable.ts
296
+ var ConditionVariable = class {
297
+ waiters = [];
298
+ name;
299
+ constructor(name) {
300
+ this.name = name;
301
+ }
302
+ wait(task, reason) {
303
+ task.blockpoint(`condition "${this.name}" wait for "${reason}", ${this.waiters.length} other waiters`);
304
+ return new Promise((resolve) => {
305
+ this.waiters.push(async () => {
306
+ await task.checkpoint(`condition "${this.name}" woken up for "${reason}"`);
307
+ resolve();
308
+ });
309
+ });
310
+ }
311
+ notifyAll(task, reason) {
312
+ task.log(`condition "${this.name}" notifying ${this.waiters.length} for "${reason}"`);
313
+ for (const resolve of this.waiters) {
314
+ resolve();
315
+ }
316
+ this.waiters.length = 0;
317
+ }
318
+ };
319
+ export {
320
+ ApplicationFailure,
321
+ ConditionVariable,
322
+ Mutex,
323
+ NoSimulationTask,
324
+ RecordingEntropySource,
325
+ ReplayingEntropySource,
326
+ SimpleEntropySource,
327
+ SimulationImpl,
328
+ isApplicationFailure,
329
+ makeErrorType,
330
+ noSimulation,
331
+ sample
332
+ };
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "determined",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/glideapps/determined.git"
9
+ },
10
+ "main": "./dist/index.cjs",
11
+ "module": "./dist/index.js",
12
+ "types": "./dist/index.d.ts",
13
+ "exports": {
14
+ ".": {
15
+ "import": {
16
+ "types": "./dist/index.d.ts",
17
+ "default": "./dist/index.js"
18
+ },
19
+ "require": {
20
+ "types": "./dist/index.d.cts",
21
+ "default": "./dist/index.cjs"
22
+ }
23
+ }
24
+ },
25
+ "files": [
26
+ "dist",
27
+ "LICENSE",
28
+ "README.md"
29
+ ],
30
+ "dependencies": {
31
+ "@glideapps/ts-necessities": "^2.4.0",
32
+ "neverthrow": "^8.2.0"
33
+ },
34
+ "devDependencies": {
35
+ "@types/node": "^24.10.1",
36
+ "tsup": "^8.5.1",
37
+ "typescript": "^5.9.3"
38
+ },
39
+ "scripts": {
40
+ "build": "tsup",
41
+ "test": "node --experimental-strip-types --test *.test.ts",
42
+ "typecheck": "tsc",
43
+ "prepublishOnly": "npm run build"
44
+ }
45
+ }
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2014 Mathias Buus
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,54 @@
1
+ # end-of-stream
2
+
3
+ A node module that calls a callback when a readable/writable/duplex stream has completed or failed.
4
+
5
+ npm install end-of-stream
6
+
7
+ [![Build status](https://travis-ci.org/mafintosh/end-of-stream.svg?branch=master)](https://travis-ci.org/mafintosh/end-of-stream)
8
+
9
+ ## Usage
10
+
11
+ Simply pass a stream and a callback to the `eos`.
12
+ Both legacy streams, streams2 and stream3 are supported.
13
+
14
+ ``` js
15
+ var eos = require('end-of-stream');
16
+
17
+ eos(readableStream, function(err) {
18
+ // this will be set to the stream instance
19
+ if (err) return console.log('stream had an error or closed early');
20
+ console.log('stream has ended', this === readableStream);
21
+ });
22
+
23
+ eos(writableStream, function(err) {
24
+ if (err) return console.log('stream had an error or closed early');
25
+ console.log('stream has finished', this === writableStream);
26
+ });
27
+
28
+ eos(duplexStream, function(err) {
29
+ if (err) return console.log('stream had an error or closed early');
30
+ console.log('stream has ended and finished', this === duplexStream);
31
+ });
32
+
33
+ eos(duplexStream, {readable:false}, function(err) {
34
+ if (err) return console.log('stream had an error or closed early');
35
+ console.log('stream has finished but might still be readable');
36
+ });
37
+
38
+ eos(duplexStream, {writable:false}, function(err) {
39
+ if (err) return console.log('stream had an error or closed early');
40
+ console.log('stream has ended but might still be writable');
41
+ });
42
+
43
+ eos(readableStream, {error:false}, function(err) {
44
+ // do not treat emit('error', err) as a end-of-stream
45
+ });
46
+ ```
47
+
48
+ ## License
49
+
50
+ MIT
51
+
52
+ ## Related
53
+
54
+ `end-of-stream` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one.