bunderstack 0.25.2 → 1.0.0-beta.1

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 (164) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/auth-password.d.ts +27 -0
  3. package/dist/auth-password.d.ts.map +1 -0
  4. package/dist/auth-password.js +60 -0
  5. package/dist/auth-password.js.map +1 -0
  6. package/dist/auth.d.ts +1 -1
  7. package/dist/auth.d.ts.map +1 -1
  8. package/dist/auth.js +1 -0
  9. package/dist/auth.js.map +1 -1
  10. package/dist/backend.d.ts +3 -0
  11. package/dist/backend.d.ts.map +1 -1
  12. package/dist/backend.js +3 -1
  13. package/dist/backend.js.map +1 -1
  14. package/dist/cli.d.ts +11 -1
  15. package/dist/cli.d.ts.map +1 -1
  16. package/dist/cli.js +97 -2
  17. package/dist/cli.js.map +1 -1
  18. package/dist/config.d.ts +0 -8
  19. package/dist/config.d.ts.map +1 -1
  20. package/dist/config.js +0 -18
  21. package/dist/config.js.map +1 -1
  22. package/dist/crud-operations.d.ts.map +1 -1
  23. package/dist/crud-operations.js +19 -3
  24. package/dist/crud-operations.js.map +1 -1
  25. package/dist/dev/binaries.d.ts +22 -0
  26. package/dist/dev/binaries.d.ts.map +1 -0
  27. package/dist/dev/binaries.js +119 -0
  28. package/dist/dev/binaries.js.map +1 -0
  29. package/dist/dev/env.d.ts +11 -0
  30. package/dist/dev/env.d.ts.map +1 -0
  31. package/dist/dev/env.js +71 -0
  32. package/dist/dev/env.js.map +1 -0
  33. package/dist/dev/index.d.ts +45 -0
  34. package/dist/dev/index.d.ts.map +1 -0
  35. package/dist/dev/index.js +287 -0
  36. package/dist/dev/index.js.map +1 -0
  37. package/dist/dev/processes.d.ts +37 -0
  38. package/dist/dev/processes.d.ts.map +1 -0
  39. package/dist/dev/processes.js +104 -0
  40. package/dist/dev/processes.js.map +1 -0
  41. package/dist/dev/push.d.ts +2 -0
  42. package/dist/dev/push.d.ts.map +1 -0
  43. package/dist/dev/push.js +25 -0
  44. package/dist/dev/push.js.map +1 -0
  45. package/dist/env-probe.d.ts.map +1 -1
  46. package/dist/env-probe.js +0 -1
  47. package/dist/env-probe.js.map +1 -1
  48. package/dist/env.d.ts +0 -3
  49. package/dist/env.d.ts.map +1 -1
  50. package/dist/env.js +0 -7
  51. package/dist/env.js.map +1 -1
  52. package/dist/handler.d.ts +2 -0
  53. package/dist/handler.d.ts.map +1 -1
  54. package/dist/handler.js +1 -2
  55. package/dist/handler.js.map +1 -1
  56. package/dist/hosted-contract.d.ts.map +1 -1
  57. package/dist/hosted-contract.js +7 -3
  58. package/dist/hosted-contract.js.map +1 -1
  59. package/dist/index.d.ts +4 -2
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +1 -0
  62. package/dist/index.js.map +1 -1
  63. package/dist/jobs/define.d.ts +5 -0
  64. package/dist/jobs/define.d.ts.map +1 -1
  65. package/dist/jobs/define.js.map +1 -1
  66. package/dist/jobs/index.d.ts +2 -4
  67. package/dist/jobs/index.d.ts.map +1 -1
  68. package/dist/jobs/index.js +2 -3
  69. package/dist/jobs/index.js.map +1 -1
  70. package/dist/jobs/queue.d.ts +1 -0
  71. package/dist/jobs/queue.d.ts.map +1 -1
  72. package/dist/jobs/queue.js +6 -3
  73. package/dist/jobs/queue.js.map +1 -1
  74. package/dist/jobs/slots.d.ts +5 -0
  75. package/dist/jobs/slots.d.ts.map +1 -1
  76. package/dist/jobs/slots.js +12 -0
  77. package/dist/jobs/slots.js.map +1 -1
  78. package/dist/jobs/worker.d.ts +6 -0
  79. package/dist/jobs/worker.d.ts.map +1 -1
  80. package/dist/jobs/worker.js +32 -1
  81. package/dist/jobs/worker.js.map +1 -1
  82. package/dist/platform.d.ts +25 -0
  83. package/dist/platform.d.ts.map +1 -0
  84. package/dist/platform.js +24 -0
  85. package/dist/platform.js.map +1 -0
  86. package/dist/rate-limit.d.ts +2 -1
  87. package/dist/rate-limit.d.ts.map +1 -1
  88. package/dist/rate-limit.js +19 -22
  89. package/dist/rate-limit.js.map +1 -1
  90. package/dist/realtime/facade.d.ts +1 -1
  91. package/dist/realtime/facade.d.ts.map +1 -1
  92. package/dist/realtime/facade.js.map +1 -1
  93. package/dist/realtime/publisher.d.ts +0 -4
  94. package/dist/realtime/publisher.d.ts.map +1 -1
  95. package/dist/realtime/publisher.js +0 -9
  96. package/dist/realtime/publisher.js.map +1 -1
  97. package/dist/runtime.d.ts +5 -19
  98. package/dist/runtime.d.ts.map +1 -1
  99. package/dist/runtime.js +28 -102
  100. package/dist/runtime.js.map +1 -1
  101. package/dist/storage/registry.d.ts +2 -1
  102. package/dist/storage/registry.d.ts.map +1 -1
  103. package/dist/storage/registry.js +2 -2
  104. package/dist/storage/registry.js.map +1 -1
  105. package/dist/storage/s3.d.ts +11 -4
  106. package/dist/storage/s3.d.ts.map +1 -1
  107. package/dist/storage/s3.js +88 -34
  108. package/dist/storage/s3.js.map +1 -1
  109. package/dist/storage/sigv4.d.ts +24 -0
  110. package/dist/storage/sigv4.d.ts.map +1 -0
  111. package/dist/storage/sigv4.js +107 -0
  112. package/dist/storage/sigv4.js.map +1 -0
  113. package/dist/testing/fixture.d.ts.map +1 -1
  114. package/dist/testing/fixture.js +0 -3
  115. package/dist/testing/fixture.js.map +1 -1
  116. package/dist/testing/workers-fakes.d.ts +17 -0
  117. package/dist/testing/workers-fakes.d.ts.map +1 -0
  118. package/dist/testing/workers-fakes.js +98 -0
  119. package/dist/testing/workers-fakes.js.map +1 -0
  120. package/dist/typeid.d.ts +1 -0
  121. package/dist/typeid.d.ts.map +1 -1
  122. package/dist/typeid.js +34 -4
  123. package/dist/typeid.js.map +1 -1
  124. package/dist/vite.d.ts +30 -0
  125. package/dist/vite.d.ts.map +1 -0
  126. package/dist/vite.js +37 -0
  127. package/dist/vite.js.map +1 -0
  128. package/dist/workers/app.d.ts +19 -0
  129. package/dist/workers/app.d.ts.map +1 -0
  130. package/dist/workers/app.js +56 -0
  131. package/dist/workers/app.js.map +1 -0
  132. package/dist/workers/index.d.ts +21 -0
  133. package/dist/workers/index.d.ts.map +1 -0
  134. package/dist/workers/index.js +33 -0
  135. package/dist/workers/index.js.map +1 -0
  136. package/dist/workers/r2.d.ts +23 -0
  137. package/dist/workers/r2.d.ts.map +1 -0
  138. package/dist/workers/r2.js +77 -0
  139. package/dist/workers/r2.js.map +1 -0
  140. package/dist/workers/rate-limiter.d.ts +9 -0
  141. package/dist/workers/rate-limiter.d.ts.map +1 -0
  142. package/dist/workers/rate-limiter.js +22 -0
  143. package/dist/workers/rate-limiter.js.map +1 -0
  144. package/dist/workers/realtime-hub.d.ts +20 -0
  145. package/dist/workers/realtime-hub.d.ts.map +1 -0
  146. package/dist/workers/realtime-hub.js +117 -0
  147. package/dist/workers/realtime-hub.js.map +1 -0
  148. package/dist/workers/scheduler.d.ts +13 -0
  149. package/dist/workers/scheduler.d.ts.map +1 -0
  150. package/dist/workers/scheduler.js +71 -0
  151. package/dist/workers/scheduler.js.map +1 -0
  152. package/dist/workers/types.d.ts +55 -0
  153. package/dist/workers/types.d.ts.map +1 -0
  154. package/dist/workers/types.js +4 -0
  155. package/dist/workers/types.js.map +1 -0
  156. package/dist/workers/wrangler.d.ts +64 -0
  157. package/dist/workers/wrangler.d.ts.map +1 -0
  158. package/dist/workers/wrangler.js +115 -0
  159. package/dist/workers/wrangler.js.map +1 -0
  160. package/package.json +11 -3
  161. package/dist/jobs/runtime.d.ts +0 -17
  162. package/dist/jobs/runtime.d.ts.map +0 -1
  163. package/dist/jobs/runtime.js +0 -56
  164. package/dist/jobs/runtime.js.map +0 -1
@@ -1,56 +0,0 @@
1
- function toError(error) {
2
- return error instanceof Error ? error : new Error(String(error));
3
- }
4
- function waitForNext(ms, signal, wake, onError) {
5
- return new Promise((resolve) => {
6
- let settled = false;
7
- const timer = setTimeout(done, ms);
8
- function done() {
9
- if (settled)
10
- return;
11
- settled = true;
12
- clearTimeout(timer);
13
- signal.removeEventListener('abort', done);
14
- resolve();
15
- }
16
- signal.addEventListener('abort', done, { once: true });
17
- void wake?.then(done, (error) => {
18
- onError?.(toError(error));
19
- done();
20
- });
21
- if (signal.aborted)
22
- done();
23
- });
24
- }
25
- export function startJobWorker(options) {
26
- const controller = new AbortController();
27
- const pollIntervalMs = options.pollIntervalMs ?? 1_000;
28
- const abort = () => controller.abort();
29
- options.signal?.addEventListener('abort', abort, { once: true });
30
- if (options.signal?.aborted)
31
- abort();
32
- const closed = (async () => {
33
- try {
34
- while (!controller.signal.aborted) {
35
- let cycle = undefined;
36
- try {
37
- cycle = await options.tick(Date.now());
38
- }
39
- catch (error) {
40
- options.onError?.(toError(error));
41
- }
42
- await waitForNext(pollIntervalMs, controller.signal, cycle?.wake, options.onError);
43
- }
44
- }
45
- finally {
46
- options.signal?.removeEventListener('abort', abort);
47
- await options.drain?.();
48
- }
49
- })();
50
- const close = () => {
51
- controller.abort();
52
- return closed;
53
- };
54
- return { closed, close };
55
- }
56
- //# sourceMappingURL=runtime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/jobs/runtime.ts"],"names":[],"mappings":"AAiBA,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;AAClE,CAAC;AAED,SAAS,WAAW,CAClB,EAAU,EACV,MAAmB,EACnB,IAA+B,EAC/B,OAA6C;IAE7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QAClC,SAAS,IAAI;YACX,IAAI,OAAO;gBAAE,OAAM;YACnB,OAAO,GAAG,IAAI,CAAA;YACd,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YACzC,OAAO,EAAE,CAAA;QACX,CAAC;QACD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACtD,KAAK,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;YAC9B,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;YACzB,IAAI,EAAE,CAAA;QACR,CAAC,CAAC,CAAA;QACF,IAAI,MAAM,CAAC,OAAO;YAAE,IAAI,EAAE,CAAA;IAC5B,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAA2B;IACxD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IACxC,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,KAAK,CAAA;IACtD,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;IACtC,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAChE,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;QAAE,KAAK,EAAE,CAAA;IAEpC,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;QACzB,IAAI,CAAC;YACH,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAClC,IAAI,KAAK,GAA6B,SAAS,CAAA;gBAC/C,IAAI,CAAC;oBACH,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;gBACxC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;gBACnC,CAAC;gBACD,MAAM,WAAW,CACf,cAAc,EACd,UAAU,CAAC,MAAM,EACjB,KAAK,EAAE,IAAI,EACX,OAAO,CAAC,OAAO,CAChB,CAAA;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YACnD,MAAM,OAAO,CAAC,KAAK,EAAE,EAAE,CAAA;QACzB,CAAC;IACH,CAAC,CAAC,EAAE,CAAA;IACJ,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,UAAU,CAAC,KAAK,EAAE,CAAA;QAClB,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;AAC1B,CAAC","sourcesContent":["export type WorkerHandle = {\n readonly closed: Promise<void>\n close(): Promise<void>\n}\n\nexport type WorkerCycleResult = { wake?: Promise<void> }\n\nexport type StartWorkerOptions = {\n signal?: AbortSignal\n pollIntervalMs?: number\n tick: (now: number) => Promise<void | WorkerCycleResult>\n drain?: () => Promise<void>\n onError?: (error: Error) => void\n}\n\nexport type RunWorkerOptions = StartWorkerOptions\n\nfunction toError(error: unknown): Error {\n return error instanceof Error ? error : new Error(String(error))\n}\n\nfunction waitForNext(\n ms: number,\n signal: AbortSignal,\n wake: Promise<void> | undefined,\n onError: ((error: Error) => void) | undefined,\n): Promise<void> {\n return new Promise((resolve) => {\n let settled = false\n const timer = setTimeout(done, ms)\n function done() {\n if (settled) return\n settled = true\n clearTimeout(timer)\n signal.removeEventListener('abort', done)\n resolve()\n }\n signal.addEventListener('abort', done, { once: true })\n void wake?.then(done, (error) => {\n onError?.(toError(error))\n done()\n })\n if (signal.aborted) done()\n })\n}\n\nexport function startJobWorker(options: StartWorkerOptions): WorkerHandle {\n const controller = new AbortController()\n const pollIntervalMs = options.pollIntervalMs ?? 1_000\n const abort = () => controller.abort()\n options.signal?.addEventListener('abort', abort, { once: true })\n if (options.signal?.aborted) abort()\n\n const closed = (async () => {\n try {\n while (!controller.signal.aborted) {\n let cycle: void | WorkerCycleResult = undefined\n try {\n cycle = await options.tick(Date.now())\n } catch (error) {\n options.onError?.(toError(error))\n }\n await waitForNext(\n pollIntervalMs,\n controller.signal,\n cycle?.wake,\n options.onError,\n )\n }\n } finally {\n options.signal?.removeEventListener('abort', abort)\n await options.drain?.()\n }\n })()\n const close = () => {\n controller.abort()\n return closed\n }\n return { closed, close }\n}\n"]}