workerstack 0.1.0-beta.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 (605) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/LICENSE +21 -0
  3. package/README.md +138 -0
  4. package/dist/access.d.ts +131 -0
  5. package/dist/access.d.ts.map +1 -0
  6. package/dist/access.js +333 -0
  7. package/dist/access.js.map +1 -0
  8. package/dist/api/builder.d.ts +457 -0
  9. package/dist/api/builder.d.ts.map +1 -0
  10. package/dist/api/builder.js +45 -0
  11. package/dist/api/builder.js.map +1 -0
  12. package/dist/api/catalog.d.ts +8 -0
  13. package/dist/api/catalog.d.ts.map +1 -0
  14. package/dist/api/catalog.js +56 -0
  15. package/dist/api/catalog.js.map +1 -0
  16. package/dist/api/context.d.ts +47 -0
  17. package/dist/api/context.d.ts.map +1 -0
  18. package/dist/api/context.js +40 -0
  19. package/dist/api/context.js.map +1 -0
  20. package/dist/api/crud-router.d.ts +476 -0
  21. package/dist/api/crud-router.d.ts.map +1 -0
  22. package/dist/api/crud-router.js +354 -0
  23. package/dist/api/crud-router.js.map +1 -0
  24. package/dist/api/list-input-schema.d.ts +37 -0
  25. package/dist/api/list-input-schema.d.ts.map +1 -0
  26. package/dist/api/list-input-schema.js +63 -0
  27. package/dist/api/list-input-schema.js.map +1 -0
  28. package/dist/api/list-spec.d.ts +44 -0
  29. package/dist/api/list-spec.d.ts.map +1 -0
  30. package/dist/api/list-spec.js +49 -0
  31. package/dist/api/list-spec.js.map +1 -0
  32. package/dist/api/live-view.d.ts +14 -0
  33. package/dist/api/live-view.d.ts.map +1 -0
  34. package/dist/api/live-view.js +42 -0
  35. package/dist/api/live-view.js.map +1 -0
  36. package/dist/api/live-window.d.ts +40 -0
  37. package/dist/api/live-window.d.ts.map +1 -0
  38. package/dist/api/live-window.js +93 -0
  39. package/dist/api/live-window.js.map +1 -0
  40. package/dist/api/openapi.d.ts +6 -0
  41. package/dist/api/openapi.d.ts.map +1 -0
  42. package/dist/api/openapi.js +146 -0
  43. package/dist/api/openapi.js.map +1 -0
  44. package/dist/api/realtime-router.d.ts +94 -0
  45. package/dist/api/realtime-router.d.ts.map +1 -0
  46. package/dist/api/realtime-router.js +45 -0
  47. package/dist/api/realtime-router.js.map +1 -0
  48. package/dist/api/registry.d.ts +30 -0
  49. package/dist/api/registry.d.ts.map +1 -0
  50. package/dist/api/registry.js +236 -0
  51. package/dist/api/registry.js.map +1 -0
  52. package/dist/api/router.d.ts +15 -0
  53. package/dist/api/router.d.ts.map +1 -0
  54. package/dist/api/router.js +32 -0
  55. package/dist/api/router.js.map +1 -0
  56. package/dist/api/storage-router.d.ts +349 -0
  57. package/dist/api/storage-router.d.ts.map +1 -0
  58. package/dist/api/storage-router.js +155 -0
  59. package/dist/api/storage-router.js.map +1 -0
  60. package/dist/api/types.d.ts +55 -0
  61. package/dist/api/types.d.ts.map +1 -0
  62. package/dist/api/types.js +2 -0
  63. package/dist/api/types.js.map +1 -0
  64. package/dist/auth-password.d.ts +27 -0
  65. package/dist/auth-password.d.ts.map +1 -0
  66. package/dist/auth-password.js +60 -0
  67. package/dist/auth-password.js.map +1 -0
  68. package/dist/auth.d.ts +59 -0
  69. package/dist/auth.d.ts.map +1 -0
  70. package/dist/auth.js +146 -0
  71. package/dist/auth.js.map +1 -0
  72. package/dist/backend-internals.d.ts +35 -0
  73. package/dist/backend-internals.d.ts.map +1 -0
  74. package/dist/backend-internals.js +2 -0
  75. package/dist/backend-internals.js.map +1 -0
  76. package/dist/backend.d.ts +63 -0
  77. package/dist/backend.d.ts.map +1 -0
  78. package/dist/backend.js +59 -0
  79. package/dist/backend.js.map +1 -0
  80. package/dist/blueprint-generator.d.ts +21 -0
  81. package/dist/blueprint-generator.d.ts.map +1 -0
  82. package/dist/blueprint-generator.js +199 -0
  83. package/dist/blueprint-generator.js.map +1 -0
  84. package/dist/blueprint.d.ts +99 -0
  85. package/dist/blueprint.d.ts.map +1 -0
  86. package/dist/blueprint.js +257 -0
  87. package/dist/blueprint.js.map +1 -0
  88. package/dist/cli-skills.d.ts +16 -0
  89. package/dist/cli-skills.d.ts.map +1 -0
  90. package/dist/cli-skills.js +108 -0
  91. package/dist/cli-skills.js.map +1 -0
  92. package/dist/cli.d.ts +18 -0
  93. package/dist/cli.d.ts.map +1 -0
  94. package/dist/cli.js +205 -0
  95. package/dist/cli.js.map +1 -0
  96. package/dist/client/client.d.ts +53 -0
  97. package/dist/client/client.d.ts.map +1 -0
  98. package/dist/client/client.js +111 -0
  99. package/dist/client/client.js.map +1 -0
  100. package/dist/client/index.d.ts +4 -0
  101. package/dist/client/index.d.ts.map +1 -0
  102. package/dist/client/index.js +4 -0
  103. package/dist/client/index.js.map +1 -0
  104. package/dist/client/live-view.d.ts +49 -0
  105. package/dist/client/live-view.d.ts.map +1 -0
  106. package/dist/client/live-view.js +184 -0
  107. package/dist/client/live-view.js.map +1 -0
  108. package/dist/client/react.d.ts +4 -0
  109. package/dist/client/react.d.ts.map +1 -0
  110. package/dist/client/react.js +6 -0
  111. package/dist/client/react.js.map +1 -0
  112. package/dist/client/realtime.d.ts +54 -0
  113. package/dist/client/realtime.d.ts.map +1 -0
  114. package/dist/client/realtime.js +105 -0
  115. package/dist/client/realtime.js.map +1 -0
  116. package/dist/client/rest.d.ts +2 -0
  117. package/dist/client/rest.d.ts.map +1 -0
  118. package/dist/client/rest.js +2 -0
  119. package/dist/client/rest.js.map +1 -0
  120. package/dist/client/rpc-client.d.ts +38 -0
  121. package/dist/client/rpc-client.d.ts.map +1 -0
  122. package/dist/client/rpc-client.js +59 -0
  123. package/dist/client/rpc-client.js.map +1 -0
  124. package/dist/client/solid.d.ts +7 -0
  125. package/dist/client/solid.d.ts.map +1 -0
  126. package/dist/client/solid.js +21 -0
  127. package/dist/client/solid.js.map +1 -0
  128. package/dist/client/svelte.d.ts +6 -0
  129. package/dist/client/svelte.d.ts.map +1 -0
  130. package/dist/client/svelte.js +9 -0
  131. package/dist/client/svelte.js.map +1 -0
  132. package/dist/client/vue.d.ts +5 -0
  133. package/dist/client/vue.d.ts.map +1 -0
  134. package/dist/client/vue.js +11 -0
  135. package/dist/client/vue.js.map +1 -0
  136. package/dist/codegen.d.ts +36 -0
  137. package/dist/codegen.d.ts.map +1 -0
  138. package/dist/codegen.js +235 -0
  139. package/dist/codegen.js.map +1 -0
  140. package/dist/config.d.ts +129 -0
  141. package/dist/config.d.ts.map +1 -0
  142. package/dist/config.js +75 -0
  143. package/dist/config.js.map +1 -0
  144. package/dist/cron.d.ts +4 -0
  145. package/dist/cron.d.ts.map +1 -0
  146. package/dist/cron.js +3 -0
  147. package/dist/cron.js.map +1 -0
  148. package/dist/crud-operations.d.ts +43 -0
  149. package/dist/crud-operations.d.ts.map +1 -0
  150. package/dist/crud-operations.js +249 -0
  151. package/dist/crud-operations.js.map +1 -0
  152. package/dist/database/adapter.d.ts +26 -0
  153. package/dist/database/adapter.d.ts.map +1 -0
  154. package/dist/database/adapter.js +2 -0
  155. package/dist/database/adapter.js.map +1 -0
  156. package/dist/database/libsql.d.ts +3 -0
  157. package/dist/database/libsql.d.ts.map +1 -0
  158. package/dist/database/libsql.js +39 -0
  159. package/dist/database/libsql.js.map +1 -0
  160. package/dist/db.d.ts +15 -0
  161. package/dist/db.d.ts.map +1 -0
  162. package/dist/db.js +8 -0
  163. package/dist/db.js.map +1 -0
  164. package/dist/dev/binaries.d.ts +22 -0
  165. package/dist/dev/binaries.d.ts.map +1 -0
  166. package/dist/dev/binaries.js +119 -0
  167. package/dist/dev/binaries.js.map +1 -0
  168. package/dist/dev/env.d.ts +11 -0
  169. package/dist/dev/env.d.ts.map +1 -0
  170. package/dist/dev/env.js +71 -0
  171. package/dist/dev/env.js.map +1 -0
  172. package/dist/dev/index.d.ts +39 -0
  173. package/dist/dev/index.d.ts.map +1 -0
  174. package/dist/dev/index.js +273 -0
  175. package/dist/dev/index.js.map +1 -0
  176. package/dist/dev/processes.d.ts +37 -0
  177. package/dist/dev/processes.d.ts.map +1 -0
  178. package/dist/dev/processes.js +104 -0
  179. package/dist/dev/processes.js.map +1 -0
  180. package/dist/dev/push.d.ts +2 -0
  181. package/dist/dev/push.d.ts.map +1 -0
  182. package/dist/dev/push.js +30 -0
  183. package/dist/dev/push.js.map +1 -0
  184. package/dist/dialect.d.ts +17 -0
  185. package/dist/dialect.d.ts.map +1 -0
  186. package/dist/dialect.js +12 -0
  187. package/dist/dialect.js.map +1 -0
  188. package/dist/email/smtp.d.ts +20 -0
  189. package/dist/email/smtp.d.ts.map +1 -0
  190. package/dist/email/smtp.js +31 -0
  191. package/dist/email/smtp.js.map +1 -0
  192. package/dist/email.d.ts +26 -0
  193. package/dist/email.d.ts.map +1 -0
  194. package/dist/email.js +2 -0
  195. package/dist/email.js.map +1 -0
  196. package/dist/env-probe.d.ts +9 -0
  197. package/dist/env-probe.d.ts.map +1 -0
  198. package/dist/env-probe.js +72 -0
  199. package/dist/env-probe.js.map +1 -0
  200. package/dist/env.d.ts +62 -0
  201. package/dist/env.d.ts.map +1 -0
  202. package/dist/env.js +86 -0
  203. package/dist/env.js.map +1 -0
  204. package/dist/errors.d.ts +153 -0
  205. package/dist/errors.d.ts.map +1 -0
  206. package/dist/errors.js +106 -0
  207. package/dist/errors.js.map +1 -0
  208. package/dist/handler.d.ts +11 -0
  209. package/dist/handler.d.ts.map +1 -0
  210. package/dist/handler.js +21 -0
  211. package/dist/handler.js.map +1 -0
  212. package/dist/hosted-contract.d.ts +11 -0
  213. package/dist/hosted-contract.d.ts.map +1 -0
  214. package/dist/hosted-contract.js +50 -0
  215. package/dist/hosted-contract.js.map +1 -0
  216. package/dist/idempotency.d.ts +17 -0
  217. package/dist/idempotency.d.ts.map +1 -0
  218. package/dist/idempotency.js +65 -0
  219. package/dist/idempotency.js.map +1 -0
  220. package/dist/index.d.ts +41 -0
  221. package/dist/index.d.ts.map +1 -0
  222. package/dist/index.js +18 -0
  223. package/dist/index.js.map +1 -0
  224. package/dist/inspect.d.ts +15 -0
  225. package/dist/inspect.d.ts.map +1 -0
  226. package/dist/inspect.js +44 -0
  227. package/dist/inspect.js.map +1 -0
  228. package/dist/internal-tables.d.ts +1767 -0
  229. package/dist/internal-tables.d.ts.map +1 -0
  230. package/dist/internal-tables.js +114 -0
  231. package/dist/internal-tables.js.map +1 -0
  232. package/dist/jobs/cron.d.ts +15 -0
  233. package/dist/jobs/cron.d.ts.map +1 -0
  234. package/dist/jobs/cron.js +74 -0
  235. package/dist/jobs/cron.js.map +1 -0
  236. package/dist/jobs/define.d.ts +186 -0
  237. package/dist/jobs/define.d.ts.map +1 -0
  238. package/dist/jobs/define.js +99 -0
  239. package/dist/jobs/define.js.map +1 -0
  240. package/dist/jobs/index.d.ts +9 -0
  241. package/dist/jobs/index.d.ts.map +1 -0
  242. package/dist/jobs/index.js +7 -0
  243. package/dist/jobs/index.js.map +1 -0
  244. package/dist/jobs/queue.d.ts +13 -0
  245. package/dist/jobs/queue.d.ts.map +1 -0
  246. package/dist/jobs/queue.js +71 -0
  247. package/dist/jobs/queue.js.map +1 -0
  248. package/dist/jobs/slots.d.ts +30 -0
  249. package/dist/jobs/slots.d.ts.map +1 -0
  250. package/dist/jobs/slots.js +53 -0
  251. package/dist/jobs/slots.js.map +1 -0
  252. package/dist/jobs/worker.d.ts +45 -0
  253. package/dist/jobs/worker.d.ts.map +1 -0
  254. package/dist/jobs/worker.js +605 -0
  255. package/dist/jobs/worker.js.map +1 -0
  256. package/dist/lifecycle.d.ts +10 -0
  257. package/dist/lifecycle.d.ts.map +1 -0
  258. package/dist/lifecycle.js +37 -0
  259. package/dist/lifecycle.js.map +1 -0
  260. package/dist/list-query.d.ts +62 -0
  261. package/dist/list-query.d.ts.map +1 -0
  262. package/dist/list-query.js +190 -0
  263. package/dist/list-query.js.map +1 -0
  264. package/dist/live/apply.d.ts +13 -0
  265. package/dist/live/apply.d.ts.map +1 -0
  266. package/dist/live/apply.js +32 -0
  267. package/dist/live/apply.js.map +1 -0
  268. package/dist/live/index.d.ts +48 -0
  269. package/dist/live/index.d.ts.map +1 -0
  270. package/dist/live/index.js +108 -0
  271. package/dist/live/index.js.map +1 -0
  272. package/dist/live/protocol.d.ts +47 -0
  273. package/dist/live/protocol.d.ts.map +1 -0
  274. package/dist/live/protocol.js +12 -0
  275. package/dist/live/protocol.js.map +1 -0
  276. package/dist/live/sse.d.ts +22 -0
  277. package/dist/live/sse.d.ts.map +1 -0
  278. package/dist/live/sse.js +41 -0
  279. package/dist/live/sse.js.map +1 -0
  280. package/dist/logging.d.ts +8 -0
  281. package/dist/logging.d.ts.map +1 -0
  282. package/dist/logging.js +6 -0
  283. package/dist/logging.js.map +1 -0
  284. package/dist/manifest-diff.d.ts +6 -0
  285. package/dist/manifest-diff.d.ts.map +1 -0
  286. package/dist/manifest-diff.js +42 -0
  287. package/dist/manifest-diff.js.map +1 -0
  288. package/dist/manifest.d.ts +87 -0
  289. package/dist/manifest.d.ts.map +1 -0
  290. package/dist/manifest.js +237 -0
  291. package/dist/manifest.js.map +1 -0
  292. package/dist/messaging/email.d.ts +16 -0
  293. package/dist/messaging/email.d.ts.map +1 -0
  294. package/dist/messaging/email.js +8 -0
  295. package/dist/messaging/email.js.map +1 -0
  296. package/dist/messaging/index.d.ts +8 -0
  297. package/dist/messaging/index.d.ts.map +1 -0
  298. package/dist/messaging/index.js +4 -0
  299. package/dist/messaging/index.js.map +1 -0
  300. package/dist/messaging/journal.d.ts +4 -0
  301. package/dist/messaging/journal.d.ts.map +1 -0
  302. package/dist/messaging/journal.js +19 -0
  303. package/dist/messaging/journal.js.map +1 -0
  304. package/dist/messaging/runtime.d.ts +16 -0
  305. package/dist/messaging/runtime.d.ts.map +1 -0
  306. package/dist/messaging/runtime.js +213 -0
  307. package/dist/messaging/runtime.js.map +1 -0
  308. package/dist/messaging/standalone.d.ts +27 -0
  309. package/dist/messaging/standalone.d.ts.map +1 -0
  310. package/dist/messaging/standalone.js +18 -0
  311. package/dist/messaging/standalone.js.map +1 -0
  312. package/dist/messaging/telegram.d.ts +16 -0
  313. package/dist/messaging/telegram.d.ts.map +1 -0
  314. package/dist/messaging/telegram.js +5 -0
  315. package/dist/messaging/telegram.js.map +1 -0
  316. package/dist/messaging/types.d.ts +22 -0
  317. package/dist/messaging/types.d.ts.map +1 -0
  318. package/dist/messaging/types.js +17 -0
  319. package/dist/messaging/types.js.map +1 -0
  320. package/dist/platform.d.ts +25 -0
  321. package/dist/platform.d.ts.map +1 -0
  322. package/dist/platform.js +24 -0
  323. package/dist/platform.js.map +1 -0
  324. package/dist/provision-internals.d.ts +23 -0
  325. package/dist/provision-internals.d.ts.map +1 -0
  326. package/dist/provision-internals.js +7 -0
  327. package/dist/provision-internals.js.map +1 -0
  328. package/dist/provision-runtime.d.ts +6 -0
  329. package/dist/provision-runtime.d.ts.map +1 -0
  330. package/dist/provision-runtime.js +41 -0
  331. package/dist/provision-runtime.js.map +1 -0
  332. package/dist/provision-schema.d.ts +16 -0
  333. package/dist/provision-schema.d.ts.map +1 -0
  334. package/dist/provision-schema.js +59 -0
  335. package/dist/provision-schema.js.map +1 -0
  336. package/dist/provision.d.ts +8 -0
  337. package/dist/provision.d.ts.map +1 -0
  338. package/dist/provision.js +16 -0
  339. package/dist/provision.js.map +1 -0
  340. package/dist/query/api.d.ts +10 -0
  341. package/dist/query/api.d.ts.map +1 -0
  342. package/dist/query/api.js +7 -0
  343. package/dist/query/api.js.map +1 -0
  344. package/dist/query/client.d.ts +28 -0
  345. package/dist/query/client.d.ts.map +1 -0
  346. package/dist/query/client.js +87 -0
  347. package/dist/query/client.js.map +1 -0
  348. package/dist/query/fetch.d.ts +3 -0
  349. package/dist/query/fetch.d.ts.map +1 -0
  350. package/dist/query/fetch.js +4 -0
  351. package/dist/query/fetch.js.map +1 -0
  352. package/dist/query/index.d.ts +8 -0
  353. package/dist/query/index.d.ts.map +1 -0
  354. package/dist/query/index.js +4 -0
  355. package/dist/query/index.js.map +1 -0
  356. package/dist/query/infer.d.ts +25 -0
  357. package/dist/query/infer.d.ts.map +1 -0
  358. package/dist/query/infer.js +2 -0
  359. package/dist/query/infer.js.map +1 -0
  360. package/dist/query/react.d.ts +3 -0
  361. package/dist/query/react.d.ts.map +1 -0
  362. package/dist/query/react.js +2 -0
  363. package/dist/query/react.js.map +1 -0
  364. package/dist/query/realtime-flush.d.ts +26 -0
  365. package/dist/query/realtime-flush.d.ts.map +1 -0
  366. package/dist/query/realtime-flush.js +45 -0
  367. package/dist/query/realtime-flush.js.map +1 -0
  368. package/dist/query/realtime-stream.d.ts +3 -0
  369. package/dist/query/realtime-stream.d.ts.map +1 -0
  370. package/dist/query/realtime-stream.js +3 -0
  371. package/dist/query/realtime-stream.js.map +1 -0
  372. package/dist/query/realtime.d.ts +88 -0
  373. package/dist/query/realtime.d.ts.map +1 -0
  374. package/dist/query/realtime.js +255 -0
  375. package/dist/query/realtime.js.map +1 -0
  376. package/dist/rate-limit.d.ts +8 -0
  377. package/dist/rate-limit.d.ts.map +1 -0
  378. package/dist/rate-limit.js +46 -0
  379. package/dist/rate-limit.js.map +1 -0
  380. package/dist/readiness-probes.d.ts +4 -0
  381. package/dist/readiness-probes.d.ts.map +1 -0
  382. package/dist/readiness-probes.js +23 -0
  383. package/dist/readiness-probes.js.map +1 -0
  384. package/dist/readiness.d.ts +39 -0
  385. package/dist/readiness.d.ts.map +1 -0
  386. package/dist/readiness.js +72 -0
  387. package/dist/readiness.js.map +1 -0
  388. package/dist/realtime/facade.d.ts +20 -0
  389. package/dist/realtime/facade.d.ts.map +1 -0
  390. package/dist/realtime/facade.js +37 -0
  391. package/dist/realtime/facade.js.map +1 -0
  392. package/dist/realtime/filter.d.ts +42 -0
  393. package/dist/realtime/filter.d.ts.map +1 -0
  394. package/dist/realtime/filter.js +86 -0
  395. package/dist/realtime/filter.js.map +1 -0
  396. package/dist/realtime/heartbeat.d.ts +20 -0
  397. package/dist/realtime/heartbeat.d.ts.map +1 -0
  398. package/dist/realtime/heartbeat.js +64 -0
  399. package/dist/realtime/heartbeat.js.map +1 -0
  400. package/dist/realtime/publisher.d.ts +19 -0
  401. package/dist/realtime/publisher.d.ts.map +1 -0
  402. package/dist/realtime/publisher.js +8 -0
  403. package/dist/realtime/publisher.js.map +1 -0
  404. package/dist/runtime.d.ts +141 -0
  405. package/dist/runtime.d.ts.map +1 -0
  406. package/dist/runtime.js +463 -0
  407. package/dist/runtime.js.map +1 -0
  408. package/dist/schema-export.d.ts +2 -0
  409. package/dist/schema-export.d.ts.map +1 -0
  410. package/dist/schema-export.js +2 -0
  411. package/dist/schema-export.js.map +1 -0
  412. package/dist/scope.d.ts +4 -0
  413. package/dist/scope.d.ts.map +1 -0
  414. package/dist/scope.js +13 -0
  415. package/dist/scope.js.map +1 -0
  416. package/dist/standard-schema.d.ts +13 -0
  417. package/dist/standard-schema.d.ts.map +1 -0
  418. package/dist/standard-schema.js +34 -0
  419. package/dist/standard-schema.js.map +1 -0
  420. package/dist/start/auth-client.d.ts +11 -0
  421. package/dist/start/auth-client.d.ts.map +1 -0
  422. package/dist/start/auth-client.js +15 -0
  423. package/dist/start/auth-client.js.map +1 -0
  424. package/dist/start/create-start-worker.d.ts +16 -0
  425. package/dist/start/create-start-worker.d.ts.map +1 -0
  426. package/dist/start/create-start-worker.js +24 -0
  427. package/dist/start/create-start-worker.js.map +1 -0
  428. package/dist/start/index.d.ts +66 -0
  429. package/dist/start/index.d.ts.map +1 -0
  430. package/dist/start/index.js +49 -0
  431. package/dist/start/index.js.map +1 -0
  432. package/dist/start/isomorphic-fetch.d.ts +22 -0
  433. package/dist/start/isomorphic-fetch.d.ts.map +1 -0
  434. package/dist/start/isomorphic-fetch.js +49 -0
  435. package/dist/start/isomorphic-fetch.js.map +1 -0
  436. package/dist/start/server-entry.d.ts +7 -0
  437. package/dist/start/server-entry.d.ts.map +1 -0
  438. package/dist/start/server-entry.js +8 -0
  439. package/dist/start/server-entry.js.map +1 -0
  440. package/dist/storage/background.d.ts +3 -0
  441. package/dist/storage/background.d.ts.map +1 -0
  442. package/dist/storage/background.js +3 -0
  443. package/dist/storage/background.js.map +1 -0
  444. package/dist/storage/buckets.d.ts +78 -0
  445. package/dist/storage/buckets.d.ts.map +1 -0
  446. package/dist/storage/buckets.js +177 -0
  447. package/dist/storage/buckets.js.map +1 -0
  448. package/dist/storage/delete.d.ts +8 -0
  449. package/dist/storage/delete.d.ts.map +1 -0
  450. package/dist/storage/delete.js +10 -0
  451. package/dist/storage/delete.js.map +1 -0
  452. package/dist/storage/file-meta.d.ts +37 -0
  453. package/dist/storage/file-meta.d.ts.map +1 -0
  454. package/dist/storage/file-meta.js +166 -0
  455. package/dist/storage/file-meta.js.map +1 -0
  456. package/dist/storage/index.d.ts +28 -0
  457. package/dist/storage/index.d.ts.map +1 -0
  458. package/dist/storage/index.js +5 -0
  459. package/dist/storage/index.js.map +1 -0
  460. package/dist/storage/local.d.ts +15 -0
  461. package/dist/storage/local.d.ts.map +1 -0
  462. package/dist/storage/local.js +56 -0
  463. package/dist/storage/local.js.map +1 -0
  464. package/dist/storage/operations.d.ts +54 -0
  465. package/dist/storage/operations.d.ts.map +1 -0
  466. package/dist/storage/operations.js +212 -0
  467. package/dist/storage/operations.js.map +1 -0
  468. package/dist/storage/registry.d.ts +11 -0
  469. package/dist/storage/registry.d.ts.map +1 -0
  470. package/dist/storage/registry.js +23 -0
  471. package/dist/storage/registry.js.map +1 -0
  472. package/dist/storage/s3.d.ts +35 -0
  473. package/dist/storage/s3.d.ts.map +1 -0
  474. package/dist/storage/s3.js +125 -0
  475. package/dist/storage/s3.js.map +1 -0
  476. package/dist/storage/sigv4.d.ts +24 -0
  477. package/dist/storage/sigv4.d.ts.map +1 -0
  478. package/dist/storage/sigv4.js +107 -0
  479. package/dist/storage/sigv4.js.map +1 -0
  480. package/dist/storage/sweep.d.ts +9 -0
  481. package/dist/storage/sweep.d.ts.map +1 -0
  482. package/dist/storage/sweep.js +17 -0
  483. package/dist/storage/sweep.js.map +1 -0
  484. package/dist/sync/collection.d.ts +106 -0
  485. package/dist/sync/collection.d.ts.map +1 -0
  486. package/dist/sync/collection.js +258 -0
  487. package/dist/sync/collection.js.map +1 -0
  488. package/dist/sync/index.d.ts +8 -0
  489. package/dist/sync/index.d.ts.map +1 -0
  490. package/dist/sync/index.js +4 -0
  491. package/dist/sync/index.js.map +1 -0
  492. package/dist/sync/realtime-sync.d.ts +31 -0
  493. package/dist/sync/realtime-sync.d.ts.map +1 -0
  494. package/dist/sync/realtime-sync.js +46 -0
  495. package/dist/sync/realtime-sync.js.map +1 -0
  496. package/dist/sync/sync-client.d.ts +28 -0
  497. package/dist/sync/sync-client.d.ts.map +1 -0
  498. package/dist/sync/sync-client.js +52 -0
  499. package/dist/sync/sync-client.js.map +1 -0
  500. package/dist/sync/update-queue.d.ts +27 -0
  501. package/dist/sync/update-queue.d.ts.map +1 -0
  502. package/dist/sync/update-queue.js +66 -0
  503. package/dist/sync/update-queue.js.map +1 -0
  504. package/dist/testing/auth.d.ts +85 -0
  505. package/dist/testing/auth.d.ts.map +1 -0
  506. package/dist/testing/auth.js +140 -0
  507. package/dist/testing/auth.js.map +1 -0
  508. package/dist/testing/client.d.ts +6 -0
  509. package/dist/testing/client.d.ts.map +1 -0
  510. package/dist/testing/client.js +9 -0
  511. package/dist/testing/client.js.map +1 -0
  512. package/dist/testing/database.d.ts +6 -0
  513. package/dist/testing/database.d.ts.map +1 -0
  514. package/dist/testing/database.js +8 -0
  515. package/dist/testing/database.js.map +1 -0
  516. package/dist/testing/email.d.ts +15 -0
  517. package/dist/testing/email.d.ts.map +1 -0
  518. package/dist/testing/email.js +32 -0
  519. package/dist/testing/email.js.map +1 -0
  520. package/dist/testing/fixture.d.ts +51 -0
  521. package/dist/testing/fixture.d.ts.map +1 -0
  522. package/dist/testing/fixture.js +177 -0
  523. package/dist/testing/fixture.js.map +1 -0
  524. package/dist/testing/jobs.d.ts +40 -0
  525. package/dist/testing/jobs.d.ts.map +1 -0
  526. package/dist/testing/jobs.js +76 -0
  527. package/dist/testing/jobs.js.map +1 -0
  528. package/dist/testing/logs.d.ts +18 -0
  529. package/dist/testing/logs.d.ts.map +1 -0
  530. package/dist/testing/logs.js +53 -0
  531. package/dist/testing/logs.js.map +1 -0
  532. package/dist/testing/messaging.d.ts +21 -0
  533. package/dist/testing/messaging.d.ts.map +1 -0
  534. package/dist/testing/messaging.js +34 -0
  535. package/dist/testing/messaging.js.map +1 -0
  536. package/dist/testing/storage.d.ts +7 -0
  537. package/dist/testing/storage.d.ts.map +1 -0
  538. package/dist/testing/storage.js +29 -0
  539. package/dist/testing/storage.js.map +1 -0
  540. package/dist/testing/workers-fakes.d.ts +17 -0
  541. package/dist/testing/workers-fakes.d.ts.map +1 -0
  542. package/dist/testing/workers-fakes.js +98 -0
  543. package/dist/testing/workers-fakes.js.map +1 -0
  544. package/dist/testing.d.ts +12 -0
  545. package/dist/testing.d.ts.map +1 -0
  546. package/dist/testing.js +5 -0
  547. package/dist/testing.js.map +1 -0
  548. package/dist/typeid.d.ts +46 -0
  549. package/dist/typeid.d.ts.map +1 -0
  550. package/dist/typeid.js +130 -0
  551. package/dist/typeid.js.map +1 -0
  552. package/dist/vite.d.ts +26 -0
  553. package/dist/vite.d.ts.map +1 -0
  554. package/dist/vite.js +100 -0
  555. package/dist/vite.js.map +1 -0
  556. package/dist/worker-plan.d.ts +37 -0
  557. package/dist/worker-plan.d.ts.map +1 -0
  558. package/dist/worker-plan.js +63 -0
  559. package/dist/worker-plan.js.map +1 -0
  560. package/dist/workers/app.d.ts +19 -0
  561. package/dist/workers/app.d.ts.map +1 -0
  562. package/dist/workers/app.js +56 -0
  563. package/dist/workers/app.js.map +1 -0
  564. package/dist/workers/entry.d.ts +7 -0
  565. package/dist/workers/entry.d.ts.map +1 -0
  566. package/dist/workers/entry.js +8 -0
  567. package/dist/workers/entry.js.map +1 -0
  568. package/dist/workers/index.d.ts +23 -0
  569. package/dist/workers/index.d.ts.map +1 -0
  570. package/dist/workers/index.js +39 -0
  571. package/dist/workers/index.js.map +1 -0
  572. package/dist/workers/r2.d.ts +24 -0
  573. package/dist/workers/r2.d.ts.map +1 -0
  574. package/dist/workers/r2.js +76 -0
  575. package/dist/workers/r2.js.map +1 -0
  576. package/dist/workers/rate-limiter.d.ts +9 -0
  577. package/dist/workers/rate-limiter.d.ts.map +1 -0
  578. package/dist/workers/rate-limiter.js +22 -0
  579. package/dist/workers/rate-limiter.js.map +1 -0
  580. package/dist/workers/realtime-hub.d.ts +20 -0
  581. package/dist/workers/realtime-hub.d.ts.map +1 -0
  582. package/dist/workers/realtime-hub.js +117 -0
  583. package/dist/workers/realtime-hub.js.map +1 -0
  584. package/dist/workers/registry.d.ts +13 -0
  585. package/dist/workers/registry.d.ts.map +1 -0
  586. package/dist/workers/registry.js +19 -0
  587. package/dist/workers/registry.js.map +1 -0
  588. package/dist/workers/scheduler.d.ts +13 -0
  589. package/dist/workers/scheduler.d.ts.map +1 -0
  590. package/dist/workers/scheduler.js +71 -0
  591. package/dist/workers/scheduler.js.map +1 -0
  592. package/dist/workers/types.d.ts +55 -0
  593. package/dist/workers/types.d.ts.map +1 -0
  594. package/dist/workers/types.js +4 -0
  595. package/dist/workers/types.js.map +1 -0
  596. package/dist/workers/wrangler.d.ts +62 -0
  597. package/dist/workers/wrangler.d.ts.map +1 -0
  598. package/dist/workers/wrangler.js +90 -0
  599. package/dist/workers/wrangler.js.map +1 -0
  600. package/package.json +286 -0
  601. package/skills/creating-workerstack-apps/SKILL.md +45 -0
  602. package/skills/creating-workerstack-apps/agents/openai.yaml +4 -0
  603. package/skills/creating-workerstack-apps/references/application-structure.md +219 -0
  604. package/skills/creating-workerstack-apps/references/runtime-integrations.md +96 -0
  605. package/skills/creating-workerstack-apps/references/verification.md +29 -0
@@ -0,0 +1,34 @@
1
+ export class StandardSchemaValidationError extends Error {
2
+ issues;
3
+ constructor(label, issues) {
4
+ const normalized = issues.map((issue) => ({
5
+ path: [...(issue.path ?? [])].map((segment) => typeof segment === 'object' ? segment.key : segment),
6
+ message: issue.message,
7
+ }));
8
+ super(normalized
9
+ .map((issue) => {
10
+ const path = issue.path.map(String).join('.');
11
+ return `${label}${path ? `.${path}` : ''}: ${issue.message}`;
12
+ })
13
+ .join('\n'));
14
+ this.name = 'StandardSchemaValidationError';
15
+ this.issues = normalized;
16
+ }
17
+ }
18
+ function isPromiseLike(value) {
19
+ return (typeof value === 'object' &&
20
+ value !== null &&
21
+ 'then' in value &&
22
+ typeof value.then === 'function');
23
+ }
24
+ export function validateStandardSchema(schema, value, label) {
25
+ const result = schema['~standard'].validate(value);
26
+ if (isPromiseLike(result)) {
27
+ throw new Error(`[workerstack] ${label} schema validation must be synchronous`);
28
+ }
29
+ if (result.issues) {
30
+ throw new StandardSchemaValidationError(label, result.issues);
31
+ }
32
+ return result.value;
33
+ }
34
+ //# sourceMappingURL=standard-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-schema.js","sourceRoot":"","sources":["../src/standard-schema.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,6BAA8B,SAAQ,KAAK;IAC7C,MAAM,CAAuB;IAEtC,YAAY,KAAa,EAAE,MAAyC;QAClE,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACxC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC5C,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CACpD;YACD,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC,CAAA;QACH,KAAK,CACH,UAAU;aACP,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC7C,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAA;QAC9D,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CACd,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAA;QAC3C,IAAI,CAAC,MAAM,GAAG,UAAU,CAAA;IAC1B,CAAC;CACF;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACf,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,CACjC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,MAAe,EACf,KAAc,EACd,KAAa;IAEb,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAClD,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,iBAAiB,KAAK,wCAAwC,CAC/D,CAAA;IACH,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,6BAA6B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAC/D,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAA;AACrB,CAAC","sourcesContent":["import type { StandardSchemaV1 } from '@standard-schema/spec'\n\nexport type StandardSchema = StandardSchemaV1\nexport type InferStandardOutput<TSchema extends StandardSchemaV1> =\n StandardSchemaV1.InferOutput<TSchema>\n\nexport type StandardSchemaIssue = {\n path: PropertyKey[]\n message: string\n}\n\nexport class StandardSchemaValidationError extends Error {\n readonly issues: StandardSchemaIssue[]\n\n constructor(label: string, issues: readonly StandardSchemaV1.Issue[]) {\n const normalized = issues.map((issue) => ({\n path: [...(issue.path ?? [])].map((segment) =>\n typeof segment === 'object' ? segment.key : segment,\n ),\n message: issue.message,\n }))\n super(\n normalized\n .map((issue) => {\n const path = issue.path.map(String).join('.')\n return `${label}${path ? `.${path}` : ''}: ${issue.message}`\n })\n .join('\\n'),\n )\n this.name = 'StandardSchemaValidationError'\n this.issues = normalized\n }\n}\n\nfunction isPromiseLike(value: unknown): value is PromiseLike<unknown> {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'then' in value &&\n typeof value.then === 'function'\n )\n}\n\nexport function validateStandardSchema<TSchema extends StandardSchemaV1>(\n schema: TSchema,\n value: unknown,\n label: string,\n): StandardSchemaV1.InferOutput<TSchema> {\n const result = schema['~standard'].validate(value)\n if (isPromiseLike(result)) {\n throw new Error(\n `[workerstack] ${label} schema validation must be synchronous`,\n )\n }\n if (result.issues) {\n throw new StandardSchemaValidationError(label, result.issues)\n }\n return result.value\n}\n"]}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * BetterAuth browser client pointed at the Workerstack handler's
3
+ * /api/auth/* routes. Defaults to the current origin in the browser and
4
+ * APP_URL (or localhost:3000) during SSR.
5
+ */
6
+ export declare function createStartAuthClient(options?: {
7
+ baseURL?: string;
8
+ }): import("better-auth/react").ReactAuthClient<{
9
+ baseURL: string;
10
+ }>;
11
+ //# sourceMappingURL=auth-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-client.d.ts","sourceRoot":"","sources":["../../src/start/auth-client.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO;;GAQvE"}
@@ -0,0 +1,15 @@
1
+ import { createAuthClient } from 'better-auth/react';
2
+ /**
3
+ * BetterAuth browser client pointed at the Workerstack handler's
4
+ * /api/auth/* routes. Defaults to the current origin in the browser and
5
+ * APP_URL (or localhost:3000) during SSR.
6
+ */
7
+ export function createStartAuthClient(options = {}) {
8
+ return createAuthClient({
9
+ baseURL: options.baseURL ??
10
+ (typeof window !== 'undefined'
11
+ ? window.location.origin
12
+ : (process.env.APP_URL ?? 'http://localhost:3000')),
13
+ });
14
+ }
15
+ //# sourceMappingURL=auth-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-client.js","sourceRoot":"","sources":["../../src/start/auth-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAAgC,EAAE;IACtE,OAAO,gBAAgB,CAAC;QACtB,OAAO,EACL,OAAO,CAAC,OAAO;YACf,CAAC,OAAO,MAAM,KAAK,WAAW;gBAC5B,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM;gBACxB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,uBAAuB,CAAC,CAAC;KACxD,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { createAuthClient } from 'better-auth/react'\n\n/**\n * BetterAuth browser client pointed at the Workerstack handler's\n * /api/auth/* routes. Defaults to the current origin in the browser and\n * APP_URL (or localhost:3000) during SSR.\n */\nexport function createStartAuthClient(options: { baseURL?: string } = {}) {\n return createAuthClient({\n baseURL:\n options.baseURL ??\n (typeof window !== 'undefined'\n ? window.location.origin\n : (process.env.APP_URL ?? 'http://localhost:3000')),\n })\n}\n"]}
@@ -0,0 +1,16 @@
1
+ import type { WorkerstackBackend } from '../backend.js';
2
+ import type { ExecutionContextLike, WorkerEnv } from '../workers/types.js';
3
+ type StartHandler = (request: Request) => Promise<Response>;
4
+ export declare function createStartWorker(backend: WorkerstackBackend<any>, startHandler?: StartHandler): {
5
+ handler: {
6
+ fetch(request: Request, env: WorkerEnv, ctx: ExecutionContextLike): Promise<Response>;
7
+ scheduled: (_controller: unknown, env: WorkerEnv, ctx: ExecutionContextLike) => Promise<void>;
8
+ };
9
+ durableObjects: {
10
+ Scheduler: import("../workers/scheduler.js").SchedulerClass;
11
+ RealtimeHub: typeof import("../workers/realtime-hub.js").RealtimeHub;
12
+ RateLimiter: typeof import("../workers/rate-limiter.js").RateLimiter;
13
+ };
14
+ };
15
+ export {};
16
+ //# sourceMappingURL=create-start-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-start-worker.d.ts","sourceRoot":"","sources":["../../src/start/create-start-worker.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAKvE,KAAK,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAE3D,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAChC,YAAY,CAAC,EAAE,YAAY;;uBAMd,OAAO,OACX,SAAS,OACT,oBAAoB,GACxB,OAAO,CAAC,QAAQ,CAAC;;;;;;;;EAYvB"}
@@ -0,0 +1,24 @@
1
+ import { createWorker } from '../workers/index.js';
2
+ import { rememberWorkerEnv } from '../workers/registry.js';
3
+ export function createStartWorker(backend, startHandler) {
4
+ const worker = createWorker(backend);
5
+ let start = startHandler;
6
+ const handler = {
7
+ async fetch(request, env, ctx) {
8
+ // SSR code in this request calls the API through the registered Worker.
9
+ rememberWorkerEnv(env);
10
+ if (new URL(request.url).pathname.startsWith('/api/')) {
11
+ return worker.handler.fetch(request, env, ctx);
12
+ }
13
+ start ??= await defaultStartHandler();
14
+ return start(request);
15
+ },
16
+ scheduled: worker.handler.scheduled,
17
+ };
18
+ return { handler, durableObjects: worker.durableObjects };
19
+ }
20
+ async function defaultStartHandler() {
21
+ const { createStartHandler, defaultStreamHandler } = await import('@tanstack/react-start/server');
22
+ return createStartHandler(defaultStreamHandler);
23
+ }
24
+ //# sourceMappingURL=create-start-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-start-worker.js","sourceRoot":"","sources":["../../src/start/create-start-worker.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAIvD,MAAM,UAAU,iBAAiB,CAC/B,OAAgC,EAChC,YAA2B;IAE3B,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACpC,IAAI,KAAK,GAAG,YAAY,CAAA;IACxB,MAAM,OAAO,GAAG;QACd,KAAK,CAAC,KAAK,CACT,OAAgB,EAChB,GAAc,EACd,GAAyB;YAEzB,wEAAwE;YACxE,iBAAiB,CAAC,GAAG,CAAC,CAAA;YACtB,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtD,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;YAChD,CAAC;YACD,KAAK,KAAK,MAAM,mBAAmB,EAAE,CAAA;YACrC,OAAO,KAAK,CAAC,OAAO,CAAC,CAAA;QACvB,CAAC;QACD,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;KACpC,CAAA;IACD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAA;AAC3D,CAAC;AAED,KAAK,UAAU,mBAAmB;IAChC,MAAM,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,GAChD,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAA;IAC9C,OAAO,kBAAkB,CAAC,oBAAoB,CAAiB,CAAA;AACjE,CAAC","sourcesContent":["// src/start/create-start-worker.ts — one Worker for a TanStack Start app:\n// /api/* to workerstack, every other path to Start SSR, cron to the Scheduler.\nimport type { WorkerstackBackend } from '../backend'\nimport type { ExecutionContextLike, WorkerEnv } from '../workers/types'\n\nimport { createWorker } from '../workers/index'\nimport { rememberWorkerEnv } from '../workers/registry'\n\ntype StartHandler = (request: Request) => Promise<Response>\n\nexport function createStartWorker(\n backend: WorkerstackBackend<any>,\n startHandler?: StartHandler,\n) {\n const worker = createWorker(backend)\n let start = startHandler\n const handler = {\n async fetch(\n request: Request,\n env: WorkerEnv,\n ctx: ExecutionContextLike,\n ): Promise<Response> {\n // SSR code in this request calls the API through the registered Worker.\n rememberWorkerEnv(env)\n if (new URL(request.url).pathname.startsWith('/api/')) {\n return worker.handler.fetch(request, env, ctx)\n }\n start ??= await defaultStartHandler()\n return start(request)\n },\n scheduled: worker.handler.scheduled,\n }\n return { handler, durableObjects: worker.durableObjects }\n}\n\nasync function defaultStartHandler(): Promise<StartHandler> {\n const { createStartHandler, defaultStreamHandler } =\n await import('@tanstack/react-start/server')\n return createStartHandler(defaultStreamHandler) as StartHandler\n}\n"]}
@@ -0,0 +1,66 @@
1
+ import { QueryClient } from '@tanstack/react-query';
2
+ import { type AnyWorkerstackApp, type WorkerstackClient } from '../query/index.js';
3
+ export { createIsomorphicFetch } from './isomorphic-fetch.js';
4
+ export type WorkerstackStartOptions = {
5
+ /** API mount point. Defaults to '/api'. */
6
+ baseUrl?: string;
7
+ /** Default query staleTime (ms). Defaults to 30_000. */
8
+ staleTime?: number;
9
+ };
10
+ /**
11
+ * One-call client setup for TanStack Start apps: SSR-aware fetch, sensible
12
+ * QueryClient defaults, and a typed query client whose procedures and buckets are
13
+ * inferred from the server app type.
14
+ *
15
+ * @example
16
+ * // src/api.ts — NOT src/client.ts, which is a reserved TanStack Start
17
+ * // entry-point name (it would replace the hydration entry).
18
+ * import type { App } from './workerstack'
19
+ * export const { createQueryClient, createApi } = workerstackStart<App>()
20
+ */
21
+ export declare function workerstackStart<TApp extends AnyWorkerstackApp>(options?: WorkerstackStartOptions): {
22
+ createQueryClient: () => QueryClient;
23
+ createApi: (queryClient: QueryClient) => WorkerstackClient<TApp>;
24
+ };
25
+ type StartRequestContext = {
26
+ request: Request;
27
+ };
28
+ type StartHandler = (ctx: StartRequestContext) => Promise<Response>;
29
+ /**
30
+ * Handlers object for the catch-all API file route.
31
+ *
32
+ * @example
33
+ * // src/routes/api/$.tsx
34
+ * export const Route = createFileRoute('/api/$')({
35
+ * server: { handlers: createApiHandlers(app) },
36
+ * })
37
+ */
38
+ export declare function createApiHandlers(app: {
39
+ handler: (req: Request) => Promise<Response>;
40
+ }): {
41
+ GET: StartHandler;
42
+ POST: StartHandler;
43
+ PATCH: StartHandler;
44
+ DELETE: StartHandler;
45
+ };
46
+ export type SessionUser = {
47
+ id: string;
48
+ email: string;
49
+ name: string;
50
+ image?: string | null;
51
+ role?: string;
52
+ };
53
+ type SessionApp = {
54
+ auth: {
55
+ api: {
56
+ getSession: (opts: {
57
+ headers: Headers;
58
+ }) => Promise<{
59
+ user: SessionUser | null;
60
+ } | null>;
61
+ };
62
+ };
63
+ };
64
+ /** Resolve the BetterAuth session user for an incoming request (server-side). */
65
+ export declare function getSessionUser(app: SessionApp, request: Request): Promise<SessionUser | null>;
66
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/start/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,MAAM,MAAM,uBAAuB,GAAG;IACpC,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,SAAS,iBAAiB,EAC7D,OAAO,GAAE,uBAA4B;;6BAUV,WAAW,KAAG,iBAAiB,CAAC,IAAI,CAAC;EAOjE;AAED,KAAK,mBAAmB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAA;AAC/C,KAAK,YAAY,GAAG,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEnE;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE;IACrC,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;CAC7C,GAAG;IACF,GAAG,EAAE,YAAY,CAAA;IACjB,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,YAAY,CAAA;CACrB,CAGA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE;QACJ,GAAG,EAAE;YACH,UAAU,EAAE,CAAC,IAAI,EAAE;gBACjB,OAAO,EAAE,OAAO,CAAA;aACjB,KAAK,OAAO,CAAC;gBAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAAA;aAAE,GAAG,IAAI,CAAC,CAAA;SACnD,CAAA;KACF,CAAA;CACF,CAAA;AAED,iFAAiF;AACjF,wBAAsB,cAAc,CAClC,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAG7B"}
@@ -0,0 +1,49 @@
1
+ import { QueryClient } from '@tanstack/react-query';
2
+ import { createClient, } from '../query/index.js';
3
+ import { createIsomorphicFetch } from './isomorphic-fetch.js';
4
+ export { createIsomorphicFetch } from './isomorphic-fetch.js';
5
+ /**
6
+ * One-call client setup for TanStack Start apps: SSR-aware fetch, sensible
7
+ * QueryClient defaults, and a typed query client whose procedures and buckets are
8
+ * inferred from the server app type.
9
+ *
10
+ * @example
11
+ * // src/api.ts — NOT src/client.ts, which is a reserved TanStack Start
12
+ * // entry-point name (it would replace the hydration entry).
13
+ * import type { App } from './workerstack'
14
+ * export const { createQueryClient, createApi } = workerstackStart<App>()
15
+ */
16
+ export function workerstackStart(options = {}) {
17
+ const isoFetch = createIsomorphicFetch();
18
+ return {
19
+ createQueryClient: () => new QueryClient({
20
+ defaultOptions: {
21
+ queries: { staleTime: options.staleTime ?? 30_000 },
22
+ },
23
+ }),
24
+ createApi: (queryClient) => createClient({
25
+ queryClient,
26
+ fetch: isoFetch,
27
+ baseUrl: options.baseUrl,
28
+ }),
29
+ };
30
+ }
31
+ /**
32
+ * Handlers object for the catch-all API file route.
33
+ *
34
+ * @example
35
+ * // src/routes/api/$.tsx
36
+ * export const Route = createFileRoute('/api/$')({
37
+ * server: { handlers: createApiHandlers(app) },
38
+ * })
39
+ */
40
+ export function createApiHandlers(app) {
41
+ const handle = ({ request }) => app.handler(request);
42
+ return { GET: handle, POST: handle, PATCH: handle, DELETE: handle };
43
+ }
44
+ /** Resolve the BetterAuth session user for an incoming request (server-side). */
45
+ export async function getSessionUser(app, request) {
46
+ const session = await app.auth.api.getSession({ headers: request.headers });
47
+ return session?.user ?? null;
48
+ }
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/start/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,OAAO,EACL,YAAY,GAGb,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAS1D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAC9B,UAAmC,EAAE;IAErC,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAA;IACxC,OAAO;QACL,iBAAiB,EAAE,GAAG,EAAE,CACtB,IAAI,WAAW,CAAC;YACd,cAAc,EAAE;gBACd,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM,EAAE;aACpD;SACF,CAAC;QACJ,SAAS,EAAE,CAAC,WAAwB,EAA2B,EAAE,CAC/D,YAAY,CAAO;YACjB,WAAW;YACX,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC;KACL,CAAA;AACH,CAAC;AAKD;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAEjC;IAMC,MAAM,MAAM,GAAiB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAClE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;AACrE,CAAC;AAoBD,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAe,EACf,OAAgB;IAEhB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IAC3E,OAAO,OAAO,EAAE,IAAI,IAAI,IAAI,CAAA;AAC9B,CAAC","sourcesContent":["import { QueryClient } from '@tanstack/react-query'\n\nimport {\n createClient,\n type AnyWorkerstackApp,\n type WorkerstackClient,\n} from '../query/index'\nimport { createIsomorphicFetch } from './isomorphic-fetch'\n\nexport { createIsomorphicFetch } from './isomorphic-fetch'\n\nexport type WorkerstackStartOptions = {\n /** API mount point. Defaults to '/api'. */\n baseUrl?: string\n /** Default query staleTime (ms). Defaults to 30_000. */\n staleTime?: number\n}\n\n/**\n * One-call client setup for TanStack Start apps: SSR-aware fetch, sensible\n * QueryClient defaults, and a typed query client whose procedures and buckets are\n * inferred from the server app type.\n *\n * @example\n * // src/api.ts — NOT src/client.ts, which is a reserved TanStack Start\n * // entry-point name (it would replace the hydration entry).\n * import type { App } from './workerstack'\n * export const { createQueryClient, createApi } = workerstackStart<App>()\n */\nexport function workerstackStart<TApp extends AnyWorkerstackApp>(\n options: WorkerstackStartOptions = {},\n) {\n const isoFetch = createIsomorphicFetch()\n return {\n createQueryClient: () =>\n new QueryClient({\n defaultOptions: {\n queries: { staleTime: options.staleTime ?? 30_000 },\n },\n }),\n createApi: (queryClient: QueryClient): WorkerstackClient<TApp> =>\n createClient<TApp>({\n queryClient,\n fetch: isoFetch,\n baseUrl: options.baseUrl,\n }),\n }\n}\n\ntype StartRequestContext = { request: Request }\ntype StartHandler = (ctx: StartRequestContext) => Promise<Response>\n\n/**\n * Handlers object for the catch-all API file route.\n *\n * @example\n * // src/routes/api/$.tsx\n * export const Route = createFileRoute('/api/$')({\n * server: { handlers: createApiHandlers(app) },\n * })\n */\nexport function createApiHandlers(app: {\n handler: (req: Request) => Promise<Response>\n}): {\n GET: StartHandler\n POST: StartHandler\n PATCH: StartHandler\n DELETE: StartHandler\n} {\n const handle: StartHandler = ({ request }) => app.handler(request)\n return { GET: handle, POST: handle, PATCH: handle, DELETE: handle }\n}\n\nexport type SessionUser = {\n id: string\n email: string\n name: string\n image?: string | null\n role?: string\n}\n\ntype SessionApp = {\n auth: {\n api: {\n getSession: (opts: {\n headers: Headers\n }) => Promise<{ user: SessionUser | null } | null>\n }\n }\n}\n\n/** Resolve the BetterAuth session user for an incoming request (server-side). */\nexport async function getSessionUser(\n app: SessionApp,\n request: Request,\n): Promise<SessionUser | null> {\n const session = await app.auth.api.getSession({ headers: request.headers })\n return session?.user ?? null\n}\n"]}
@@ -0,0 +1,22 @@
1
+ type IsolateContext = {
2
+ request: () => Promise<Request>;
3
+ };
4
+ /**
5
+ * SSR-aware fetch: the browser passes `/api/...` through as-is. On the server,
6
+ * when this isolate runs the workerstack Worker (a package Worker entry
7
+ * registered it), a relative URL goes to that Worker without a network hop and
8
+ * carries the incoming request's cookie. Otherwise relative URLs are resolved against APP_URL when configured. This
9
+ * keeps an internal HTTP reverse-proxy connection from triggering an HTTPS
10
+ * redirect. Without APP_URL, use the incoming request's origin (via
11
+ * @tanstack/react-start/server), then BETTER_AUTH_URL / localhost:3000.
12
+ *
13
+ * The server-only module uses a literal dynamic import so bundlers can analyze
14
+ * the boundary statically; the `window` guard means it never runs in browsers.
15
+ */
16
+ export declare function createIsomorphicFetch(options?: {
17
+ fetch?: typeof fetch;
18
+ /** Tests only: the incoming request for the in-isolate path. */
19
+ isolate?: IsolateContext;
20
+ }): (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
21
+ export {};
22
+ //# sourceMappingURL=isomorphic-fetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isomorphic-fetch.d.ts","sourceRoot":"","sources":["../../src/start/isomorphic-fetch.ts"],"names":[],"mappings":"AAEA,KAAK,cAAc,GAAG;IAAE,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,CAAA;AAEzD;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IACpB,gEAAgE;IAChE,OAAO,CAAC,EAAE,cAAc,CAAA;CACpB,IAQJ,OAAO,WAAW,GAAG,GAAG,EACxB,OAAO,WAAW,KACjB,OAAO,CAAC,QAAQ,CAAC,CA8BrB"}
@@ -0,0 +1,49 @@
1
+ import { registeredWorker } from '../workers/registry.js';
2
+ /**
3
+ * SSR-aware fetch: the browser passes `/api/...` through as-is. On the server,
4
+ * when this isolate runs the workerstack Worker (a package Worker entry
5
+ * registered it), a relative URL goes to that Worker without a network hop and
6
+ * carries the incoming request's cookie. Otherwise relative URLs are resolved against APP_URL when configured. This
7
+ * keeps an internal HTTP reverse-proxy connection from triggering an HTTPS
8
+ * redirect. Without APP_URL, use the incoming request's origin (via
9
+ * @tanstack/react-start/server), then BETTER_AUTH_URL / localhost:3000.
10
+ *
11
+ * The server-only module uses a literal dynamic import so bundlers can analyze
12
+ * the boundary statically; the `window` guard means it never runs in browsers.
13
+ */
14
+ export function createIsomorphicFetch(options = {}) {
15
+ const inner = options.fetch ?? fetch;
16
+ const isolate = options.isolate ?? {
17
+ request: async () => (await import('@tanstack/react-start/server')).getRequest(),
18
+ };
19
+ return async function isomorphicFetch(input, init) {
20
+ if (typeof window !== 'undefined')
21
+ return inner(input, init);
22
+ const registered = registeredWorker();
23
+ if (registered && typeof input === 'string' && input.startsWith('/')) {
24
+ const incoming = await isolate.request();
25
+ const headers = new Headers(init?.headers);
26
+ const cookie = incoming.headers.get('cookie');
27
+ if (cookie && !headers.has('cookie'))
28
+ headers.set('cookie', cookie);
29
+ const url = new URL(input, new URL(incoming.url).origin);
30
+ return registered.worker.fetch(new Request(url, { ...init, headers }), registered.env, { waitUntil() { } });
31
+ }
32
+ if (typeof input === 'string' && input.startsWith('/')) {
33
+ let origin = process.env.APP_URL;
34
+ if (origin === undefined) {
35
+ try {
36
+ const mod = await import('@tanstack/react-start/server');
37
+ origin = new URL(mod.getRequest().url).origin;
38
+ }
39
+ catch {
40
+ // No request context (background job, test) — fall through to env.
41
+ }
42
+ }
43
+ origin ??= process.env.BETTER_AUTH_URL ?? 'http://localhost:3000';
44
+ return inner(new URL(input, origin), init);
45
+ }
46
+ return inner(input, init);
47
+ };
48
+ }
49
+ //# sourceMappingURL=isomorphic-fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isomorphic-fetch.js","sourceRoot":"","sources":["../../src/start/isomorphic-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAItD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAII,EAAE;IAEN,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAA;IACpC,MAAM,OAAO,GAAmB,OAAO,CAAC,OAAO,IAAI;QACjD,OAAO,EAAE,KAAK,IAAI,EAAE,CAClB,CAAC,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC,UAAU,EAAE;KAC9D,CAAA;IACD,OAAO,KAAK,UAAU,eAAe,CACnC,KAAwB,EACxB,IAAkB;QAElB,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAC5D,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAA;QACrC,IAAI,UAAU,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;YACxC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAC1C,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAC7C,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YACnE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAA;YACxD,OAAO,UAAU,CAAC,MAAM,CAAC,KAAK,CAC5B,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,EACtC,UAAU,CAAC,GAAG,EACd,EAAE,SAAS,KAAI,CAAC,EAAE,CACnB,CAAA;QACH,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAA;YAChC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAA;oBACxD,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAA;gBAC/C,CAAC;gBAAC,MAAM,CAAC;oBACP,mEAAmE;gBACrE,CAAC;YACH,CAAC;YACD,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,uBAAuB,CAAA;YACjE,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAA;QAC5C,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAC3B,CAAC,CAAA;AACH,CAAC","sourcesContent":["import { registeredWorker } from '../workers/registry'\n\ntype IsolateContext = { request: () => Promise<Request> }\n\n/**\n * SSR-aware fetch: the browser passes `/api/...` through as-is. On the server,\n * when this isolate runs the workerstack Worker (a package Worker entry\n * registered it), a relative URL goes to that Worker without a network hop and\n * carries the incoming request's cookie. Otherwise relative URLs are resolved against APP_URL when configured. This\n * keeps an internal HTTP reverse-proxy connection from triggering an HTTPS\n * redirect. Without APP_URL, use the incoming request's origin (via\n * @tanstack/react-start/server), then BETTER_AUTH_URL / localhost:3000.\n *\n * The server-only module uses a literal dynamic import so bundlers can analyze\n * the boundary statically; the `window` guard means it never runs in browsers.\n */\nexport function createIsomorphicFetch(\n options: {\n fetch?: typeof fetch\n /** Tests only: the incoming request for the in-isolate path. */\n isolate?: IsolateContext\n } = {},\n) {\n const inner = options.fetch ?? fetch\n const isolate: IsolateContext = options.isolate ?? {\n request: async () =>\n (await import('@tanstack/react-start/server')).getRequest(),\n }\n return async function isomorphicFetch(\n input: RequestInfo | URL,\n init?: RequestInit,\n ): Promise<Response> {\n if (typeof window !== 'undefined') return inner(input, init)\n const registered = registeredWorker()\n if (registered && typeof input === 'string' && input.startsWith('/')) {\n const incoming = await isolate.request()\n const headers = new Headers(init?.headers)\n const cookie = incoming.headers.get('cookie')\n if (cookie && !headers.has('cookie')) headers.set('cookie', cookie)\n const url = new URL(input, new URL(incoming.url).origin)\n return registered.worker.fetch(\n new Request(url, { ...init, headers }),\n registered.env,\n { waitUntil() {} },\n )\n }\n if (typeof input === 'string' && input.startsWith('/')) {\n let origin = process.env.APP_URL\n if (origin === undefined) {\n try {\n const mod = await import('@tanstack/react-start/server')\n origin = new URL(mod.getRequest().url).origin\n } catch {\n // No request context (background job, test) — fall through to env.\n }\n }\n origin ??= process.env.BETTER_AUTH_URL ?? 'http://localhost:3000'\n return inner(new URL(input, origin), init)\n }\n return inner(input, init)\n }\n}\n"]}
@@ -0,0 +1,7 @@
1
+ export declare const Scheduler: import("../workers/index.js").SchedulerClass, RealtimeHub: typeof import("../workers/index.js").RealtimeHub, RateLimiter: typeof import("../workers/index.js").RateLimiter;
2
+ declare const _default: {
3
+ fetch(request: Request, env: import("../workers/index.js").WorkerEnv, ctx: import("../workers/index.js").ExecutionContextLike): Promise<Response>;
4
+ scheduled: (_controller: unknown, env: import("../workers/index.js").WorkerEnv, ctx: import("../workers/index.js").ExecutionContextLike) => Promise<void>;
5
+ };
6
+ export default _default;
7
+ //# sourceMappingURL=server-entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-entry.d.ts","sourceRoot":"","sources":["../../src/start/server-entry.ts"],"names":[],"mappings":"AAOA,eAAO,MAAQ,SAAS,uCAAE,WAAW,2CAAE,WAAW,yCAA0B,CAAA;;;;;AAC5E,wBAA6B"}
@@ -0,0 +1,8 @@
1
+ // workerstack/start/server-entry — the Worker of a TanStack Start app with SSR.
2
+ // The app backend comes from the Vite virtual module that workerstack() resolves.
3
+ import { backend } from 'virtual:workerstack/backend';
4
+ import { createStartWorker } from './create-start-worker.js';
5
+ const worker = createStartWorker(backend);
6
+ export const { Scheduler, RealtimeHub, RateLimiter } = worker.durableObjects;
7
+ export default worker.handler;
8
+ //# sourceMappingURL=server-entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-entry.js","sourceRoot":"","sources":["../../src/start/server-entry.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,kFAAkF;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAEzD,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;AACzC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,cAAc,CAAA;AAC5E,eAAe,MAAM,CAAC,OAAO,CAAA","sourcesContent":["// workerstack/start/server-entry — the Worker of a TanStack Start app with SSR.\n// The app backend comes from the Vite virtual module that workerstack() resolves.\nimport { backend } from 'virtual:workerstack/backend'\n\nimport { createStartWorker } from './create-start-worker'\n\nconst worker = createStartWorker(backend)\nexport const { Scheduler, RealtimeHub, RateLimiter } = worker.durableObjects\nexport default worker.handler\n"]}
@@ -0,0 +1,3 @@
1
+ export declare const STORAGE_SWEEP_JOB_NAME = "workerstack:storage-sweep";
2
+ export declare const STORAGE_SWEEP_SCHEDULE = "0 4 * * *";
3
+ //# sourceMappingURL=background.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background.d.ts","sourceRoot":"","sources":["../../src/storage/background.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,8BAA8B,CAAA;AACjE,eAAO,MAAM,sBAAsB,cAAc,CAAA"}
@@ -0,0 +1,3 @@
1
+ export const STORAGE_SWEEP_JOB_NAME = 'workerstack:storage-sweep';
2
+ export const STORAGE_SWEEP_SCHEDULE = '0 4 * * *';
3
+ //# sourceMappingURL=background.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background.js","sourceRoot":"","sources":["../../src/storage/background.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG,2BAA2B,CAAA;AACjE,MAAM,CAAC,MAAM,sBAAsB,GAAG,WAAW,CAAA","sourcesContent":["export const STORAGE_SWEEP_JOB_NAME = 'workerstack:storage-sweep'\nexport const STORAGE_SWEEP_SCHEDULE = '0 4 * * *'\n"]}
@@ -0,0 +1,78 @@
1
+ import type { OperationRule, ScopeResolver } from '../access.js';
2
+ export type BucketBackendInput = {
3
+ s3: {
4
+ bucket: string;
5
+ region?: string;
6
+ endpoint?: string;
7
+ publicUrl?: string;
8
+ };
9
+ } | {
10
+ local: string;
11
+ };
12
+ export type BucketConfigInput = {
13
+ visibility?: 'public' | 'private';
14
+ access?: {
15
+ create?: OperationRule;
16
+ get?: OperationRule;
17
+ delete?: OperationRule;
18
+ };
19
+ upload?: {
20
+ maxSize?: string | number;
21
+ accept?: string[];
22
+ };
23
+ scope?: {
24
+ read?: ScopeResolver;
25
+ write?: ScopeResolver;
26
+ };
27
+ quota?: {
28
+ perUser?: string | number;
29
+ perScope?: string | number;
30
+ };
31
+ } & Partial<BucketBackendInput>;
32
+ export type StorageConfigInput = {
33
+ s3?: true | {
34
+ endpoint?: string;
35
+ };
36
+ local?: true | string;
37
+ defaultBucket?: string;
38
+ buckets?: Record<string, BucketConfigInput>;
39
+ };
40
+ export type ResolvedBackend = {
41
+ type: 'local';
42
+ path: string;
43
+ } | {
44
+ type: 's3';
45
+ bucket: string;
46
+ region: string;
47
+ endpoint?: string;
48
+ accessKeyId: string;
49
+ secretAccessKey: string;
50
+ publicUrl?: string;
51
+ };
52
+ export type ResolvedBucket = {
53
+ name: string;
54
+ backend: ResolvedBackend;
55
+ visibility: 'public' | 'private';
56
+ access: {
57
+ create: OperationRule;
58
+ get: OperationRule;
59
+ delete: OperationRule;
60
+ };
61
+ upload?: {
62
+ maxSizeBytes?: number;
63
+ accept?: string[];
64
+ };
65
+ readScope?: ScopeResolver;
66
+ writeScope?: ScopeResolver;
67
+ quota?: {
68
+ perUserBytes?: number;
69
+ perScopeBytes?: number;
70
+ };
71
+ };
72
+ export type ResolvedStorageBuckets = {
73
+ defaultBucket: string;
74
+ buckets: Map<string, ResolvedBucket>;
75
+ };
76
+ export declare function parseSize(value: string | number): number;
77
+ export declare function resolveBuckets(input: StorageConfigInput | undefined, env?: Record<string, string | undefined>): ResolvedStorageBuckets;
78
+ //# sourceMappingURL=buckets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buckets.d.ts","sourceRoot":"","sources":["../../src/storage/buckets.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAM7D,MAAM,MAAM,kBAAkB,GAC1B;IACE,EAAE,EAAE;QACF,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;CACF,GACD;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAErB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;IACjC,MAAM,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,aAAa,CAAA;QACtB,GAAG,CAAC,EAAE,aAAa,CAAA;QACnB,MAAM,CAAC,EAAE,aAAa,CAAA;KACvB,CAAA;IACD,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;IACzD,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,aAAa,CAAA;QACpB,KAAK,CAAC,EAAE,aAAa,CAAA;KACtB,CAAA;IACD,KAAK,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CAClE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;AAE/B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,CAAC,EAAE,IAAI,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACjC,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;CAC5C,CAAA;AAMD,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC/B;IACE,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAEL,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,eAAe,CAAA;IACxB,UAAU,EAAE,QAAQ,GAAG,SAAS,CAAA;IAChC,MAAM,EAAE;QAAE,MAAM,EAAE,aAAa,CAAC;QAAC,GAAG,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,aAAa,CAAA;KAAE,CAAA;IAC5E,MAAM,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;IACrD,SAAS,CAAC,EAAE,aAAa,CAAA;IACzB,UAAU,CAAC,EAAE,aAAa,CAAA;IAC1B,KAAK,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC1D,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;CACrC,CAAA;AAaD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CA2BxD;AAuJD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,kBAAkB,GAAG,SAAS,EACrC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,sBAAsB,CAwCxB"}