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,87 @@
1
+ import { createApiClient } from './api.js';
2
+ import { createFetch } from './fetch.js';
3
+ function trimSlash(value) {
4
+ return value.replace(/\/$/, '');
5
+ }
6
+ function relativeId(bucket, idOrFileId) {
7
+ const prefix = `${bucket}/`;
8
+ return idOrFileId.startsWith(prefix)
9
+ ? idOrFileId.slice(prefix.length)
10
+ : idOrFileId;
11
+ }
12
+ function encodeFilePath(value) {
13
+ return value
14
+ .split('/')
15
+ .map((segment) => encodeURIComponent(decodeURIComponent(segment)).replace(/\./g, '%2E'))
16
+ .join('/');
17
+ }
18
+ function attachFileHelpers(utils, options) {
19
+ const baseUrl = trimSlash(options.baseUrl ?? '/api');
20
+ const fetch = createFetch(options.fetch);
21
+ const files = utils['files'];
22
+ if (!files)
23
+ return utils;
24
+ const buckets = new Map();
25
+ const filesProxy = new Proxy(files, {
26
+ get(target, property, receiver) {
27
+ if (typeof property !== 'string')
28
+ return Reflect.get(target, property, receiver);
29
+ const cached = buckets.get(property);
30
+ if (cached)
31
+ return cached;
32
+ const procedures = Reflect.get(target, property, receiver);
33
+ const root = `${baseUrl}/files/${property}`;
34
+ const url = (idOrFileId) => `${root}/${encodeFilePath(relativeId(property, idOrFileId))}`;
35
+ const upload = async (file) => {
36
+ const prepared = await procedures.prepareUpload.call({
37
+ filename: file.name,
38
+ contentType: file.type || undefined,
39
+ });
40
+ if (prepared.mode === 'proxy') {
41
+ const result = await procedures.upload.call({
42
+ params: {},
43
+ query: {},
44
+ headers: {},
45
+ body: { file },
46
+ });
47
+ return {
48
+ ...result.body,
49
+ url: url(result.body.fileId),
50
+ name: file.name,
51
+ };
52
+ }
53
+ const uploaded = await fetch(prepared.uploadUrl, {
54
+ method: prepared.method,
55
+ body: file,
56
+ headers: file.type ? { 'Content-Type': file.type } : undefined,
57
+ });
58
+ if (!uploaded.ok) {
59
+ throw new Error(`File upload failed (${uploaded.status})`);
60
+ }
61
+ const result = await procedures.confirmUpload.call({
62
+ id: relativeId(property, prepared.fileId),
63
+ });
64
+ return { ...result, url: url(result.fileId), name: file.name };
65
+ };
66
+ const deleteFile = (idOrFileId) => procedures.delete.call({ path: relativeId(property, idOrFileId) });
67
+ const bucket = Object.assign(Object.create(procedures), {
68
+ url,
69
+ upload,
70
+ delete: deleteFile,
71
+ });
72
+ buckets.set(property, bucket);
73
+ return bucket;
74
+ },
75
+ });
76
+ return new Proxy(utils, {
77
+ get(target, property, receiver) {
78
+ return property === 'files'
79
+ ? filesProxy
80
+ : Reflect.get(target, property, receiver);
81
+ },
82
+ });
83
+ }
84
+ export function createClient(options = {}) {
85
+ return attachFileHelpers(createApiClient(options), options);
86
+ }
87
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/query/client.ts"],"names":[],"mappings":"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","sourcesContent":["import type { QueryClient } from '@tanstack/query-core'\n\nimport type { ApiQueryUtils } from './api'\nimport type { AnyWorkerstackApp, InferApiRouter, InferBuckets } from './infer'\n\nimport { createApiClient } from './api'\nimport { createFetch, type TransportFetch } from './fetch'\n\nexport type ClientOptions = {\n baseUrl?: string\n fetch?: TransportFetch\n queryClient?: QueryClient\n}\n\nexport type UploadedFile = {\n fileId: string\n url: string\n name: string\n}\n\nexport type FileBucketHelpers = {\n url(idOrFileId: string): string\n upload(file: File): Promise<UploadedFile>\n delete(idOrFileId: string): Promise<void>\n}\n\ntype FileHelpers<TBuckets extends string> = {\n files: { [K in TBuckets]: FileBucketHelpers }\n}\n\nexport type WorkerstackClient<TApp extends AnyWorkerstackApp> = ApiQueryUtils<\n InferApiRouter<TApp>\n> &\n FileHelpers<InferBuckets<TApp>>\n\nfunction trimSlash(value: string): string {\n return value.replace(/\\/$/, '')\n}\n\nfunction relativeId(bucket: string, idOrFileId: string): string {\n const prefix = `${bucket}/`\n return idOrFileId.startsWith(prefix)\n ? idOrFileId.slice(prefix.length)\n : idOrFileId\n}\n\nfunction encodeFilePath(value: string): string {\n return value\n .split('/')\n .map((segment) =>\n encodeURIComponent(decodeURIComponent(segment)).replace(/\\./g, '%2E'),\n )\n .join('/')\n}\n\nfunction attachFileHelpers<T extends object>(\n utils: T,\n options: ClientOptions,\n): T {\n const baseUrl = trimSlash(options.baseUrl ?? '/api')\n const fetch = createFetch(options.fetch)\n const files = (utils as Record<string, unknown>)['files'] as\n | Record<string, unknown>\n | undefined\n if (!files) return utils\n\n const buckets = new Map<string, unknown>()\n const filesProxy = new Proxy(files, {\n get(target, property, receiver) {\n if (typeof property !== 'string')\n return Reflect.get(target, property, receiver)\n const cached = buckets.get(property)\n if (cached) return cached\n\n const procedures = Reflect.get(target, property, receiver) as Record<\n string,\n { call(input: unknown): Promise<any> }\n >\n const root = `${baseUrl}/files/${property}`\n const url = (idOrFileId: string) =>\n `${root}/${encodeFilePath(relativeId(property, idOrFileId))}`\n const upload = async (file: File): Promise<UploadedFile> => {\n const prepared = await procedures.prepareUpload!.call({\n filename: file.name,\n contentType: file.type || undefined,\n })\n if (prepared.mode === 'proxy') {\n const result = await procedures.upload!.call({\n params: {},\n query: {},\n headers: {},\n body: { file },\n })\n return {\n ...result.body,\n url: url(result.body.fileId),\n name: file.name,\n }\n }\n\n const uploaded = await fetch(prepared.uploadUrl, {\n method: prepared.method,\n body: file,\n headers: file.type ? { 'Content-Type': file.type } : undefined,\n })\n if (!uploaded.ok) {\n throw new Error(`File upload failed (${uploaded.status})`)\n }\n const result = await procedures.confirmUpload!.call({\n id: relativeId(property, prepared.fileId),\n })\n return { ...result, url: url(result.fileId), name: file.name }\n }\n\n const deleteFile = (idOrFileId: string) =>\n procedures.delete!.call({ path: relativeId(property, idOrFileId) })\n\n const bucket = Object.assign(Object.create(procedures), {\n url,\n upload,\n delete: deleteFile,\n })\n buckets.set(property, bucket)\n return bucket\n },\n })\n\n return new Proxy(utils, {\n get(target, property, receiver) {\n return property === 'files'\n ? filesProxy\n : Reflect.get(target, property, receiver)\n },\n })\n}\n\nexport function createClient<TApp extends AnyWorkerstackApp>(\n options: ClientOptions = {},\n): WorkerstackClient<TApp> {\n return attachFileHelpers(\n createApiClient<InferApiRouter<TApp>>(options),\n options,\n ) as WorkerstackClient<TApp>\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export type TransportFetch = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
2
+ export declare function createFetch(fetch?: TransportFetch): TransportFetch;
3
+ //# sourceMappingURL=fetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/query/fetch.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,CAC3B,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,CAAC,EAAE,WAAW,KACf,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEtB,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,cAAc,CAElE"}
@@ -0,0 +1,4 @@
1
+ export function createFetch(fetch) {
2
+ return fetch ?? ((input, init) => globalThis.fetch(input, init));
3
+ }
4
+ //# sourceMappingURL=fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/query/fetch.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,WAAW,CAAC,KAAsB;IAChD,OAAO,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;AAClE,CAAC","sourcesContent":["export type TransportFetch = (\n input: RequestInfo | URL,\n init?: RequestInit,\n) => Promise<Response>\n\nexport function createFetch(fetch?: TransportFetch): TransportFetch {\n return fetch ?? ((input, init) => globalThis.fetch(input, init))\n}\n"]}
@@ -0,0 +1,8 @@
1
+ export { createClient } from './client.js';
2
+ export type { WorkerstackClient, ClientOptions, FileBucketHelpers, UploadedFile, } from './client.js';
3
+ export { createApiClient } from './api.js';
4
+ export type { ApiClientOptions, ApiQueryUtils } from './api.js';
5
+ export type { AnyWorkerstackApp, ClientCarrier, ExposedTables, InferApiRouter, InferBuckets, InferInsert, InferSelect, InferSchema, InferTables, } from './infer.js';
6
+ export { syncRealtime } from './realtime.js';
7
+ export type { NotifyScheduler, RealtimeApplyStrategy, RealtimeChange, RealtimeEvent, RealtimeHeartbeat, RealtimeProcedure, RealtimeQueryApi, RealtimeSyncHandle, RealtimeSyncOptions, RealtimeClock, } from './realtime.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,YAAY,GACb,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACvC,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC5D,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,cAAc,EACd,YAAY,EACZ,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,GACZ,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,GACd,MAAM,YAAY,CAAA"}
@@ -0,0 +1,4 @@
1
+ export { createClient } from './client.js';
2
+ export { createApiClient } from './api.js';
3
+ export { syncRealtime } from './realtime.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAOvC,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAavC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA","sourcesContent":["export { createClient } from './client'\nexport type {\n WorkerstackClient,\n ClientOptions,\n FileBucketHelpers,\n UploadedFile,\n} from './client'\nexport { createApiClient } from './api'\nexport type { ApiClientOptions, ApiQueryUtils } from './api'\nexport type {\n AnyWorkerstackApp,\n ClientCarrier,\n ExposedTables,\n InferApiRouter,\n InferBuckets,\n InferInsert,\n InferSelect,\n InferSchema,\n InferTables,\n} from './infer'\nexport { syncRealtime } from './realtime'\nexport type {\n NotifyScheduler,\n RealtimeApplyStrategy,\n RealtimeChange,\n RealtimeEvent,\n RealtimeHeartbeat,\n RealtimeProcedure,\n RealtimeQueryApi,\n RealtimeSyncHandle,\n RealtimeSyncOptions,\n RealtimeClock,\n} from './realtime'\n"]}
@@ -0,0 +1,25 @@
1
+ import type { AnyRouter } from '@orpc/server';
2
+ import type { ExposedApiTables } from '../api/types.js';
3
+ /** Shape of the `$inferClient` phantom `workerstack` puts on the app. */
4
+ export type ClientCarrier = {
5
+ schema: Record<string, unknown>;
6
+ access: unknown;
7
+ buckets: string;
8
+ api: AnyRouter;
9
+ };
10
+ export type AnyWorkerstackApp = {
11
+ $inferClient?: ClientCarrier | undefined;
12
+ };
13
+ export type InferCarrier<TApp extends AnyWorkerstackApp> = NonNullable<TApp['$inferClient']>;
14
+ export type InferSchema<TApp extends AnyWorkerstackApp> = InferCarrier<TApp>['schema'];
15
+ export type InferBuckets<TApp extends AnyWorkerstackApp> = InferCarrier<TApp>['buckets'];
16
+ export type InferSelect<T> = T extends {
17
+ $inferSelect: infer R;
18
+ } ? R : never;
19
+ export type InferInsert<T> = T extends {
20
+ $inferInsert: infer R;
21
+ } ? R : never;
22
+ export type InferApiRouter<TApp extends AnyWorkerstackApp> = InferCarrier<TApp>['api'];
23
+ export type ExposedTables<TSchema extends Record<string, unknown>, TAccess = undefined> = ExposedApiTables<TSchema, TAccess>;
24
+ export type InferTables<TApp extends AnyWorkerstackApp> = ExposedTables<InferSchema<TApp>, InferCarrier<TApp>['access']> & keyof InferSchema<TApp> & string;
25
+ //# sourceMappingURL=infer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infer.d.ts","sourceRoot":"","sources":["../../src/query/infer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAEpD,yEAAyE;AACzE,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,SAAS,CAAA;CACf,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAAE,YAAY,CAAC,EAAE,aAAa,GAAG,SAAS,CAAA;CAAE,CAAA;AAE5E,MAAM,MAAM,YAAY,CAAC,IAAI,SAAS,iBAAiB,IAAI,WAAW,CACpE,IAAI,CAAC,cAAc,CAAC,CACrB,CAAA;AACD,MAAM,MAAM,WAAW,CAAC,IAAI,SAAS,iBAAiB,IACpD,YAAY,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAA;AAC9B,MAAM,MAAM,YAAY,CAAC,IAAI,SAAS,iBAAiB,IACrD,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAA;AAE/B,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,YAAY,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAA;AAC5E,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,YAAY,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAA;AAE5E,MAAM,MAAM,cAAc,CAAC,IAAI,SAAS,iBAAiB,IACvD,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAA;AAE3B,MAAM,MAAM,aAAa,CACvB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,OAAO,GAAG,SAAS,IACjB,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;AAEtC,MAAM,MAAM,WAAW,CAAC,IAAI,SAAS,iBAAiB,IAAI,aAAa,CACrE,WAAW,CAAC,IAAI,CAAC,EACjB,YAAY,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAC7B,GACC,MAAM,WAAW,CAAC,IAAI,CAAC,GACvB,MAAM,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=infer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infer.js","sourceRoot":"","sources":["../../src/query/infer.ts"],"names":[],"mappings":"","sourcesContent":["import type { AnyRouter } from '@orpc/server'\n\nimport type { ExposedApiTables } from '../api/types'\n\n/** Shape of the `$inferClient` phantom `workerstack` puts on the app. */\nexport type ClientCarrier = {\n schema: Record<string, unknown>\n access: unknown\n buckets: string\n api: AnyRouter\n}\n\nexport type AnyWorkerstackApp = { $inferClient?: ClientCarrier | undefined }\n\nexport type InferCarrier<TApp extends AnyWorkerstackApp> = NonNullable<\n TApp['$inferClient']\n>\nexport type InferSchema<TApp extends AnyWorkerstackApp> =\n InferCarrier<TApp>['schema']\nexport type InferBuckets<TApp extends AnyWorkerstackApp> =\n InferCarrier<TApp>['buckets']\n\nexport type InferSelect<T> = T extends { $inferSelect: infer R } ? R : never\nexport type InferInsert<T> = T extends { $inferInsert: infer R } ? R : never\n\nexport type InferApiRouter<TApp extends AnyWorkerstackApp> =\n InferCarrier<TApp>['api']\n\nexport type ExposedTables<\n TSchema extends Record<string, unknown>,\n TAccess = undefined,\n> = ExposedApiTables<TSchema, TAccess>\n\nexport type InferTables<TApp extends AnyWorkerstackApp> = ExposedTables<\n InferSchema<TApp>,\n InferCarrier<TApp>['access']\n> &\n keyof InferSchema<TApp> &\n string\n"]}
@@ -0,0 +1,3 @@
1
+ export { createClient } from './client.js';
2
+ export type { WorkerstackClient, ClientOptions } from './client.js';
3
+ //# sourceMappingURL=react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/query/react.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { createClient } from './client.js';
2
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/query/react.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA","sourcesContent":["export { createClient } from './client'\nexport type { WorkerstackClient, ClientOptions } from './client'\n"]}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * When buffered realtime work runs.
3
+ *
4
+ * `'frame'` coalesces a burst of events into one cache write per animation
5
+ * frame. `'sync'` restores the older behaviour of writing as each event
6
+ * arrives. A number debounces by that many milliseconds.
7
+ */
8
+ export type NotifyScheduler = 'sync' | 'frame' | number;
9
+ /** The timer functions the scheduler needs, injectable so tests control time. */
10
+ export type RealtimeClock = {
11
+ setTimeout: (fn: () => void, ms: number) => unknown;
12
+ clearTimeout: (handle: unknown) => void;
13
+ };
14
+ export type FlushScheduler = {
15
+ /**
16
+ * Ask for `flush` to run. Calls made while a flush is already pending are
17
+ * absorbed into it, so the flush runs once per window however many events
18
+ * arrived.
19
+ */
20
+ schedule: (flush: () => void) => void;
21
+ /** Drop a pending flush without running it. */
22
+ cancel: () => void;
23
+ };
24
+ export declare const systemClock: RealtimeClock;
25
+ export declare function createFlushScheduler(mode: NotifyScheduler, clock?: RealtimeClock): FlushScheduler;
26
+ //# sourceMappingURL=realtime-flush.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-flush.d.ts","sourceRoot":"","sources":["../../src/query/realtime-flush.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;AAEvD,iFAAiF;AACjF,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAA;IACnD,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B;;;;OAIG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;IACrC,+CAA+C;IAC/C,MAAM,EAAE,MAAM,IAAI,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,aAIzB,CAAA;AAiBD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,eAAe,EACrB,KAAK,CAAC,EAAE,aAAa,GACpB,cAAc,CAuBhB"}
@@ -0,0 +1,45 @@
1
+ export const systemClock = {
2
+ setTimeout: (fn, ms) => setTimeout(fn, ms),
3
+ clearTimeout: (handle) => clearTimeout(handle),
4
+ };
5
+ /**
6
+ * A frame is `requestAnimationFrame` in a browser and a zero-delay timer
7
+ * everywhere else, so the same code paces correctly under SSR and in tests.
8
+ * An injected clock always wins — a test that supplies one is asking for its
9
+ * timers to be the only ones.
10
+ */
11
+ function frameClock(clock) {
12
+ if (clock)
13
+ return clock;
14
+ if (typeof requestAnimationFrame !== 'function')
15
+ return systemClock;
16
+ return {
17
+ setTimeout: (fn) => requestAnimationFrame(fn),
18
+ clearTimeout: (handle) => cancelAnimationFrame(handle),
19
+ };
20
+ }
21
+ export function createFlushScheduler(mode, clock) {
22
+ if (mode === 'sync') {
23
+ return { schedule: (flush) => flush(), cancel: () => { } };
24
+ }
25
+ const timers = mode === 'frame' ? frameClock(clock) : (clock ?? systemClock);
26
+ const delayMs = mode === 'frame' ? 0 : Math.max(0, mode);
27
+ let pending;
28
+ return {
29
+ schedule(flush) {
30
+ if (pending !== undefined)
31
+ return;
32
+ pending = timers.setTimeout(() => {
33
+ pending = undefined;
34
+ flush();
35
+ }, delayMs);
36
+ },
37
+ cancel() {
38
+ if (pending === undefined)
39
+ return;
40
+ timers.clearTimeout(pending);
41
+ pending = undefined;
42
+ },
43
+ };
44
+ }
45
+ //# sourceMappingURL=realtime-flush.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-flush.js","sourceRoot":"","sources":["../../src/query/realtime-flush.ts"],"names":[],"mappings":"AA0BA,MAAM,CAAC,MAAM,WAAW,GAAkB;IACxC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC;IAC1C,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CACvB,YAAY,CAAC,MAAuC,CAAC;CACxD,CAAA;AAED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,KAAgC;IAClD,IAAI,KAAK;QAAE,OAAO,KAAK,CAAA;IACvB,IAAI,OAAO,qBAAqB,KAAK,UAAU;QAAE,OAAO,WAAW,CAAA;IACnE,OAAO;QACL,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC7C,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAgB,CAAC;KACjE,CAAA;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,IAAqB,EACrB,KAAqB;IAErB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAA;IAC3D,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,WAAW,CAAC,CAAA;IAC5E,MAAM,OAAO,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IACxD,IAAI,OAAgB,CAAA;IAEpB,OAAO;QACL,QAAQ,CAAC,KAAK;YACZ,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAM;YACjC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBAC/B,OAAO,GAAG,SAAS,CAAA;gBACnB,KAAK,EAAE,CAAA;YACT,CAAC,EAAE,OAAO,CAAC,CAAA;QACb,CAAC;QACD,MAAM;YACJ,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAM;YACjC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;YAC5B,OAAO,GAAG,SAAS,CAAA;QACrB,CAAC;KACF,CAAA;AACH,CAAC","sourcesContent":["/**\n * When buffered realtime work runs.\n *\n * `'frame'` coalesces a burst of events into one cache write per animation\n * frame. `'sync'` restores the older behaviour of writing as each event\n * arrives. A number debounces by that many milliseconds.\n */\nexport type NotifyScheduler = 'sync' | 'frame' | number\n\n/** The timer functions the scheduler needs, injectable so tests control time. */\nexport type RealtimeClock = {\n setTimeout: (fn: () => void, ms: number) => unknown\n clearTimeout: (handle: unknown) => void\n}\n\nexport type FlushScheduler = {\n /**\n * Ask for `flush` to run. Calls made while a flush is already pending are\n * absorbed into it, so the flush runs once per window however many events\n * arrived.\n */\n schedule: (flush: () => void) => void\n /** Drop a pending flush without running it. */\n cancel: () => void\n}\n\nexport const systemClock: RealtimeClock = {\n setTimeout: (fn, ms) => setTimeout(fn, ms),\n clearTimeout: (handle) =>\n clearTimeout(handle as ReturnType<typeof setTimeout>),\n}\n\n/**\n * A frame is `requestAnimationFrame` in a browser and a zero-delay timer\n * everywhere else, so the same code paces correctly under SSR and in tests.\n * An injected clock always wins — a test that supplies one is asking for its\n * timers to be the only ones.\n */\nfunction frameClock(clock: RealtimeClock | undefined): RealtimeClock {\n if (clock) return clock\n if (typeof requestAnimationFrame !== 'function') return systemClock\n return {\n setTimeout: (fn) => requestAnimationFrame(fn),\n clearTimeout: (handle) => cancelAnimationFrame(handle as number),\n }\n}\n\nexport function createFlushScheduler(\n mode: NotifyScheduler,\n clock?: RealtimeClock,\n): FlushScheduler {\n if (mode === 'sync') {\n return { schedule: (flush) => flush(), cancel: () => {} }\n }\n\n const timers = mode === 'frame' ? frameClock(clock) : (clock ?? systemClock)\n const delayMs = mode === 'frame' ? 0 : Math.max(0, mode)\n let pending: unknown\n\n return {\n schedule(flush) {\n if (pending !== undefined) return\n pending = timers.setTimeout(() => {\n pending = undefined\n flush()\n }, delayMs)\n },\n cancel() {\n if (pending === undefined) return\n timers.clearTimeout(pending)\n pending = undefined\n },\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ /** @deprecated Import transport primitives from `workerstack/client`. */
2
+ export { DEFAULT_KEEPALIVE_MS, DEFAULT_LIVENESS_FACTOR, isRealtimeHeartbeat, openRealtimeStream, type RealtimeAction, type RealtimeChange, type RealtimeEvent, type RealtimeHeartbeat, type RealtimeProcedure, type RealtimeStreamOptions, type RealtimeSyncHandle, } from '../client/realtime.js';
3
+ //# sourceMappingURL=realtime-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-stream.d.ts","sourceRoot":"","sources":["../../src/query/realtime-stream.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAA"}
@@ -0,0 +1,3 @@
1
+ /** @deprecated Import transport primitives from `workerstack/client`. */
2
+ export { DEFAULT_KEEPALIVE_MS, DEFAULT_LIVENESS_FACTOR, isRealtimeHeartbeat, openRealtimeStream, } from '../client/realtime.js';
3
+ //# sourceMappingURL=realtime-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-stream.js","sourceRoot":"","sources":["../../src/query/realtime-stream.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,GAQnB,MAAM,oBAAoB,CAAA","sourcesContent":["/** @deprecated Import transport primitives from `workerstack/client`. */\nexport {\n DEFAULT_KEEPALIVE_MS,\n DEFAULT_LIVENESS_FACTOR,\n isRealtimeHeartbeat,\n openRealtimeStream,\n type RealtimeAction,\n type RealtimeChange,\n type RealtimeEvent,\n type RealtimeHeartbeat,\n type RealtimeProcedure,\n type RealtimeStreamOptions,\n type RealtimeSyncHandle,\n} from '../client/realtime'\n"]}
@@ -0,0 +1,88 @@
1
+ import type { QueryClient } from '@tanstack/query-core';
2
+ import type { AnyWorkerstackApp, InferSchema, InferSelect, InferTables } from './infer.js';
3
+ import type { NotifyScheduler, RealtimeClock } from './realtime-flush.js';
4
+ import type { RealtimeAction, RealtimeChange, RealtimeProcedure, RealtimeSyncHandle } from './realtime-stream.js';
5
+ export type { NotifyScheduler, RealtimeClock } from './realtime-flush.js';
6
+ export type { RealtimeAction, RealtimeChange, RealtimeEvent, RealtimeHeartbeat, RealtimeProcedure, RealtimeSyncHandle, } from './realtime-stream.js';
7
+ /**
8
+ * The change for one table, with `record` typed as that table's row.
9
+ *
10
+ * Passing the app type to `syncRealtime` turns `tables` into a checked list of
11
+ * exposed table names and `onChange` into a union discriminated by `table`, so
12
+ * `change.table === 'todos'` narrows `change.record` to the todo row:
13
+ *
14
+ * ```ts
15
+ * syncRealtime<App>({
16
+ * api,
17
+ * queryClient,
18
+ * tables: ['todos'],
19
+ * onChange: (change) => {
20
+ * if (change.table === 'todos') console.log(change.record.done)
21
+ * },
22
+ * })
23
+ * ```
24
+ */
25
+ export type RealtimeChangeFor<TApp extends AnyWorkerstackApp, TTable extends InferTables<TApp>> = {
26
+ table: TTable;
27
+ action: RealtimeAction;
28
+ record: InferSelect<InferSchema<TApp>[TTable]>;
29
+ operationId?: string;
30
+ };
31
+ /**
32
+ * Untyped when no app type is supplied, so existing callers — and consumers
33
+ * that only have a structural client — keep the loose `RealtimeChange`.
34
+ */
35
+ export type RealtimeChangeOf<TApp, TTable extends string> = [TApp] extends [
36
+ never
37
+ ] ? RealtimeChange : TApp extends AnyWorkerstackApp ? TTable extends InferTables<TApp> ? RealtimeChangeFor<TApp, TTable> : RealtimeChange : RealtimeChange;
38
+ /** Every exposed table name, or any string when no app type is supplied. */
39
+ export type RealtimeTableName<TApp> = [TApp] extends [never] ? string : TApp extends AnyWorkerstackApp ? InferTables<TApp> : string;
40
+ export type RealtimeQueryApi = {
41
+ realtime: {
42
+ changes: RealtimeProcedure;
43
+ };
44
+ [table: string]: any;
45
+ };
46
+ /**
47
+ * How a change reaches the cache.
48
+ *
49
+ * `invalidate` (default) marks the table's queries stale and lets TanStack
50
+ * Query refetch them — always correct, one request per change.
51
+ *
52
+ * `patch` writes the change into cached list results instead, so a write costs
53
+ * no extra request. The event carries the action and the full row, and
54
+ * Workerstack's list contract is narrow enough to decide membership locally:
55
+ * filters are `=`, `IN`, or `IS NULL`, and ordering is a single column. Any
56
+ * list where that is not decidable — a text search, or a page that is not the
57
+ * complete result — falls back to invalidation.
58
+ */
59
+ export type RealtimeApplyStrategy = 'invalidate' | 'patch';
60
+ export type RealtimeSyncOptions<TApp = never, TTable extends string = RealtimeTableName<TApp>> = {
61
+ api: RealtimeQueryApi;
62
+ queryClient: QueryClient;
63
+ tables: TTable[];
64
+ signal?: AbortSignal;
65
+ /** Defaults to `'invalidate'`. */
66
+ apply?: RealtimeApplyStrategy;
67
+ /**
68
+ * When buffered changes reach the cache. Defaults to `'frame'`, which
69
+ * collapses a burst into one cache write and one invalidation per table.
70
+ * Pass `'sync'` to write as each change arrives, as versions before 0.18 did.
71
+ */
72
+ notifyScheduler?: NotifyScheduler;
73
+ /** Timer functions, injectable for tests. */
74
+ clock?: RealtimeClock;
75
+ /** Initial reconnect delay before jitter. Defaults to 1 second. */
76
+ retryMs?: number;
77
+ /** Maximum reconnect delay before jitter. Defaults to 30 seconds. */
78
+ maxRetryMs?: number;
79
+ onChange?: (change: RealtimeChangeOf<TApp, TTable>) => void;
80
+ onReconnect?: () => void | Promise<void>;
81
+ onError?: (error: unknown) => void;
82
+ onRetry?: (retry: {
83
+ attempt: number;
84
+ delayMs: number;
85
+ }) => void;
86
+ };
87
+ export declare function syncRealtime<TApp = never, TTable extends string = RealtimeTableName<TApp>>(options: RealtimeSyncOptions<TApp, TTable>): RealtimeSyncHandle;
88
+ //# sourceMappingURL=realtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../../src/query/realtime.ts"],"names":[],"mappings":"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"}