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,349 @@
1
+ import '@orpc/openapi/extensions/route';
2
+ import * as v from 'valibot';
3
+ import type { StorageOperations } from '../storage/operations.js';
4
+ import type { BucketStorageRegistry } from '../storage/registry.js';
5
+ import type { ApiContext } from './context.js';
6
+ export declare function buildStorageApiRouter(registry: BucketStorageRegistry, operations: StorageOperations): {
7
+ files: {
8
+ [k: string]: {
9
+ prepareUpload: import("@orpc/server").DecoratedProcedure<ApiContext<Record<string, unknown>, Record<string, unknown>, import("..").MessagingConfig, Record<never, never>> & object, object, v.StrictObjectSchema<{
10
+ readonly filename: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
11
+ readonly contentType: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
12
+ }, undefined>, v.VariantSchema<"mode", [v.StrictObjectSchema<{
13
+ readonly mode: v.LiteralSchema<"proxy", undefined>;
14
+ readonly uploadUrl: v.StringSchema<undefined>;
15
+ }, undefined>, v.StrictObjectSchema<{
16
+ readonly mode: v.LiteralSchema<"presign", undefined>;
17
+ readonly fileId: v.StringSchema<undefined>;
18
+ readonly uploadUrl: v.StringSchema<undefined>;
19
+ readonly method: v.LiteralSchema<"PUT", undefined>;
20
+ readonly confirmUrl: v.StringSchema<undefined>;
21
+ }, undefined>], undefined>, {
22
+ readonly BAD_REQUEST: {
23
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
24
+ readonly code: v.OptionalSchema<v.LiteralSchema<"BAD_REQUEST", undefined>, "BAD_REQUEST">;
25
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
26
+ }, undefined>, {
27
+ readonly code: "BAD_REQUEST";
28
+ }>;
29
+ };
30
+ readonly UNAUTHORIZED: {
31
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
32
+ readonly code: v.OptionalSchema<v.LiteralSchema<"UNAUTHORIZED", undefined>, "UNAUTHORIZED">;
33
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
34
+ }, undefined>, {
35
+ readonly code: "UNAUTHORIZED";
36
+ }>;
37
+ };
38
+ readonly FORBIDDEN: {
39
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
40
+ readonly code: v.OptionalSchema<v.LiteralSchema<"FORBIDDEN", undefined>, "FORBIDDEN">;
41
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
42
+ }, undefined>, {
43
+ readonly code: "FORBIDDEN";
44
+ }>;
45
+ };
46
+ readonly NOT_FOUND: {
47
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
48
+ readonly code: v.OptionalSchema<v.LiteralSchema<"NOT_FOUND", undefined>, "NOT_FOUND">;
49
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
50
+ }, undefined>, {
51
+ readonly code: "NOT_FOUND";
52
+ }>;
53
+ };
54
+ readonly CONFLICT: {
55
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
56
+ readonly code: v.OptionalSchema<v.LiteralSchema<"CONFLICT", undefined>, "CONFLICT">;
57
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
58
+ }, undefined>, {
59
+ readonly code: "CONFLICT";
60
+ }>;
61
+ };
62
+ readonly PAYLOAD_TOO_LARGE: {
63
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
64
+ readonly code: v.OptionalSchema<v.LiteralSchema<"PAYLOAD_TOO_LARGE", undefined>, "PAYLOAD_TOO_LARGE">;
65
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
66
+ }, undefined>, {
67
+ readonly code: "PAYLOAD_TOO_LARGE";
68
+ }>;
69
+ };
70
+ readonly TOO_MANY_REQUESTS: {
71
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
72
+ readonly code: v.OptionalSchema<v.LiteralSchema<"TOO_MANY_REQUESTS", undefined>, "TOO_MANY_REQUESTS">;
73
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
74
+ }, undefined>, {
75
+ readonly code: "TOO_MANY_REQUESTS";
76
+ }>;
77
+ };
78
+ }>;
79
+ upload: import("@orpc/server").DecoratedProcedure<ApiContext<Record<string, unknown>, Record<string, unknown>, import("..").MessagingConfig, Record<never, never>> & object, object, v.StrictObjectSchema<{
80
+ readonly params: v.OptionalSchema<v.StrictObjectSchema<{}, undefined>, {}>;
81
+ readonly query: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, {}>;
82
+ readonly headers: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, {}>;
83
+ readonly body: v.StrictObjectSchema<{
84
+ readonly file: v.FileSchema<undefined>;
85
+ }, undefined>;
86
+ }, undefined>, v.StrictObjectSchema<{
87
+ readonly status: v.LiteralSchema<201, undefined>;
88
+ readonly body: v.StrictObjectSchema<{
89
+ readonly fileId: v.StringSchema<undefined>;
90
+ readonly url: v.StringSchema<undefined>;
91
+ }, undefined>;
92
+ }, undefined>, {
93
+ readonly BAD_REQUEST: {
94
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
95
+ readonly code: v.OptionalSchema<v.LiteralSchema<"BAD_REQUEST", undefined>, "BAD_REQUEST">;
96
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
97
+ }, undefined>, {
98
+ readonly code: "BAD_REQUEST";
99
+ }>;
100
+ };
101
+ readonly UNAUTHORIZED: {
102
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
103
+ readonly code: v.OptionalSchema<v.LiteralSchema<"UNAUTHORIZED", undefined>, "UNAUTHORIZED">;
104
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
105
+ }, undefined>, {
106
+ readonly code: "UNAUTHORIZED";
107
+ }>;
108
+ };
109
+ readonly FORBIDDEN: {
110
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
111
+ readonly code: v.OptionalSchema<v.LiteralSchema<"FORBIDDEN", undefined>, "FORBIDDEN">;
112
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
113
+ }, undefined>, {
114
+ readonly code: "FORBIDDEN";
115
+ }>;
116
+ };
117
+ readonly NOT_FOUND: {
118
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
119
+ readonly code: v.OptionalSchema<v.LiteralSchema<"NOT_FOUND", undefined>, "NOT_FOUND">;
120
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
121
+ }, undefined>, {
122
+ readonly code: "NOT_FOUND";
123
+ }>;
124
+ };
125
+ readonly CONFLICT: {
126
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
127
+ readonly code: v.OptionalSchema<v.LiteralSchema<"CONFLICT", undefined>, "CONFLICT">;
128
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
129
+ }, undefined>, {
130
+ readonly code: "CONFLICT";
131
+ }>;
132
+ };
133
+ readonly PAYLOAD_TOO_LARGE: {
134
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
135
+ readonly code: v.OptionalSchema<v.LiteralSchema<"PAYLOAD_TOO_LARGE", undefined>, "PAYLOAD_TOO_LARGE">;
136
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
137
+ }, undefined>, {
138
+ readonly code: "PAYLOAD_TOO_LARGE";
139
+ }>;
140
+ };
141
+ readonly TOO_MANY_REQUESTS: {
142
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
143
+ readonly code: v.OptionalSchema<v.LiteralSchema<"TOO_MANY_REQUESTS", undefined>, "TOO_MANY_REQUESTS">;
144
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
145
+ }, undefined>, {
146
+ readonly code: "TOO_MANY_REQUESTS";
147
+ }>;
148
+ };
149
+ }>;
150
+ confirmUpload: import("@orpc/server").DecoratedProcedure<ApiContext<Record<string, unknown>, Record<string, unknown>, import("..").MessagingConfig, Record<never, never>> & object, object, v.StrictObjectSchema<{
151
+ readonly id: v.StringSchema<undefined>;
152
+ }, undefined>, v.StrictObjectSchema<{
153
+ readonly fileId: v.StringSchema<undefined>;
154
+ readonly url: v.StringSchema<undefined>;
155
+ }, undefined>, {
156
+ readonly BAD_REQUEST: {
157
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
158
+ readonly code: v.OptionalSchema<v.LiteralSchema<"BAD_REQUEST", undefined>, "BAD_REQUEST">;
159
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
160
+ }, undefined>, {
161
+ readonly code: "BAD_REQUEST";
162
+ }>;
163
+ };
164
+ readonly UNAUTHORIZED: {
165
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
166
+ readonly code: v.OptionalSchema<v.LiteralSchema<"UNAUTHORIZED", undefined>, "UNAUTHORIZED">;
167
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
168
+ }, undefined>, {
169
+ readonly code: "UNAUTHORIZED";
170
+ }>;
171
+ };
172
+ readonly FORBIDDEN: {
173
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
174
+ readonly code: v.OptionalSchema<v.LiteralSchema<"FORBIDDEN", undefined>, "FORBIDDEN">;
175
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
176
+ }, undefined>, {
177
+ readonly code: "FORBIDDEN";
178
+ }>;
179
+ };
180
+ readonly NOT_FOUND: {
181
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
182
+ readonly code: v.OptionalSchema<v.LiteralSchema<"NOT_FOUND", undefined>, "NOT_FOUND">;
183
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
184
+ }, undefined>, {
185
+ readonly code: "NOT_FOUND";
186
+ }>;
187
+ };
188
+ readonly CONFLICT: {
189
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
190
+ readonly code: v.OptionalSchema<v.LiteralSchema<"CONFLICT", undefined>, "CONFLICT">;
191
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
192
+ }, undefined>, {
193
+ readonly code: "CONFLICT";
194
+ }>;
195
+ };
196
+ readonly PAYLOAD_TOO_LARGE: {
197
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
198
+ readonly code: v.OptionalSchema<v.LiteralSchema<"PAYLOAD_TOO_LARGE", undefined>, "PAYLOAD_TOO_LARGE">;
199
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
200
+ }, undefined>, {
201
+ readonly code: "PAYLOAD_TOO_LARGE";
202
+ }>;
203
+ };
204
+ readonly TOO_MANY_REQUESTS: {
205
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
206
+ readonly code: v.OptionalSchema<v.LiteralSchema<"TOO_MANY_REQUESTS", undefined>, "TOO_MANY_REQUESTS">;
207
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
208
+ }, undefined>, {
209
+ readonly code: "TOO_MANY_REQUESTS";
210
+ }>;
211
+ };
212
+ }>;
213
+ download: import("@orpc/server").DecoratedProcedure<ApiContext<Record<string, unknown>, Record<string, unknown>, import("..").MessagingConfig, Record<never, never>> & object, object, v.StrictObjectSchema<{
214
+ readonly params: v.StrictObjectSchema<{
215
+ readonly path: v.StringSchema<undefined>;
216
+ }, undefined>;
217
+ readonly query: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, {}>;
218
+ readonly headers: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, {}>;
219
+ readonly body: v.OptionalSchema<v.UndefinedSchema<undefined>, undefined>;
220
+ }, undefined>, v.UnionSchema<[v.StrictObjectSchema<{
221
+ readonly status: v.LiteralSchema<200, undefined>;
222
+ readonly headers: v.RecordSchema<v.StringSchema<undefined>, v.UnionSchema<[v.StringSchema<undefined>, v.ArraySchema<v.StringSchema<undefined>, undefined>, v.UndefinedSchema<undefined>], undefined>, undefined>;
223
+ readonly body: v.UnknownSchema;
224
+ }, undefined>, v.StrictObjectSchema<{
225
+ readonly status: v.LiteralSchema<302, undefined>;
226
+ readonly headers: v.RecordSchema<v.StringSchema<undefined>, v.UnionSchema<[v.StringSchema<undefined>, v.ArraySchema<v.StringSchema<undefined>, undefined>, v.UndefinedSchema<undefined>], undefined>, undefined>;
227
+ readonly body: v.OptionalSchema<v.UndefinedSchema<undefined>, undefined>;
228
+ }, undefined>], undefined>, {
229
+ readonly BAD_REQUEST: {
230
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
231
+ readonly code: v.OptionalSchema<v.LiteralSchema<"BAD_REQUEST", undefined>, "BAD_REQUEST">;
232
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
233
+ }, undefined>, {
234
+ readonly code: "BAD_REQUEST";
235
+ }>;
236
+ };
237
+ readonly UNAUTHORIZED: {
238
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
239
+ readonly code: v.OptionalSchema<v.LiteralSchema<"UNAUTHORIZED", undefined>, "UNAUTHORIZED">;
240
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
241
+ }, undefined>, {
242
+ readonly code: "UNAUTHORIZED";
243
+ }>;
244
+ };
245
+ readonly FORBIDDEN: {
246
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
247
+ readonly code: v.OptionalSchema<v.LiteralSchema<"FORBIDDEN", undefined>, "FORBIDDEN">;
248
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
249
+ }, undefined>, {
250
+ readonly code: "FORBIDDEN";
251
+ }>;
252
+ };
253
+ readonly NOT_FOUND: {
254
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
255
+ readonly code: v.OptionalSchema<v.LiteralSchema<"NOT_FOUND", undefined>, "NOT_FOUND">;
256
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
257
+ }, undefined>, {
258
+ readonly code: "NOT_FOUND";
259
+ }>;
260
+ };
261
+ readonly CONFLICT: {
262
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
263
+ readonly code: v.OptionalSchema<v.LiteralSchema<"CONFLICT", undefined>, "CONFLICT">;
264
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
265
+ }, undefined>, {
266
+ readonly code: "CONFLICT";
267
+ }>;
268
+ };
269
+ readonly PAYLOAD_TOO_LARGE: {
270
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
271
+ readonly code: v.OptionalSchema<v.LiteralSchema<"PAYLOAD_TOO_LARGE", undefined>, "PAYLOAD_TOO_LARGE">;
272
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
273
+ }, undefined>, {
274
+ readonly code: "PAYLOAD_TOO_LARGE";
275
+ }>;
276
+ };
277
+ readonly TOO_MANY_REQUESTS: {
278
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
279
+ readonly code: v.OptionalSchema<v.LiteralSchema<"TOO_MANY_REQUESTS", undefined>, "TOO_MANY_REQUESTS">;
280
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
281
+ }, undefined>, {
282
+ readonly code: "TOO_MANY_REQUESTS";
283
+ }>;
284
+ };
285
+ }>;
286
+ delete: import("@orpc/server").DecoratedProcedure<ApiContext<Record<string, unknown>, Record<string, unknown>, import("..").MessagingConfig, Record<never, never>> & object, object, v.StrictObjectSchema<{
287
+ readonly path: v.StringSchema<undefined>;
288
+ }, undefined>, v.UndefinedSchema<undefined>, {
289
+ readonly BAD_REQUEST: {
290
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
291
+ readonly code: v.OptionalSchema<v.LiteralSchema<"BAD_REQUEST", undefined>, "BAD_REQUEST">;
292
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
293
+ }, undefined>, {
294
+ readonly code: "BAD_REQUEST";
295
+ }>;
296
+ };
297
+ readonly UNAUTHORIZED: {
298
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
299
+ readonly code: v.OptionalSchema<v.LiteralSchema<"UNAUTHORIZED", undefined>, "UNAUTHORIZED">;
300
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
301
+ }, undefined>, {
302
+ readonly code: "UNAUTHORIZED";
303
+ }>;
304
+ };
305
+ readonly FORBIDDEN: {
306
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
307
+ readonly code: v.OptionalSchema<v.LiteralSchema<"FORBIDDEN", undefined>, "FORBIDDEN">;
308
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
309
+ }, undefined>, {
310
+ readonly code: "FORBIDDEN";
311
+ }>;
312
+ };
313
+ readonly NOT_FOUND: {
314
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
315
+ readonly code: v.OptionalSchema<v.LiteralSchema<"NOT_FOUND", undefined>, "NOT_FOUND">;
316
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
317
+ }, undefined>, {
318
+ readonly code: "NOT_FOUND";
319
+ }>;
320
+ };
321
+ readonly CONFLICT: {
322
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
323
+ readonly code: v.OptionalSchema<v.LiteralSchema<"CONFLICT", undefined>, "CONFLICT">;
324
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
325
+ }, undefined>, {
326
+ readonly code: "CONFLICT";
327
+ }>;
328
+ };
329
+ readonly PAYLOAD_TOO_LARGE: {
330
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
331
+ readonly code: v.OptionalSchema<v.LiteralSchema<"PAYLOAD_TOO_LARGE", undefined>, "PAYLOAD_TOO_LARGE">;
332
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
333
+ }, undefined>, {
334
+ readonly code: "PAYLOAD_TOO_LARGE";
335
+ }>;
336
+ };
337
+ readonly TOO_MANY_REQUESTS: {
338
+ readonly data: v.OptionalSchema<v.StrictObjectSchema<{
339
+ readonly code: v.OptionalSchema<v.LiteralSchema<"TOO_MANY_REQUESTS", undefined>, "TOO_MANY_REQUESTS">;
340
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
341
+ }, undefined>, {
342
+ readonly code: "TOO_MANY_REQUESTS";
343
+ }>;
344
+ };
345
+ }>;
346
+ };
347
+ };
348
+ };
349
+ //# sourceMappingURL=storage-router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-router.d.ts","sourceRoot":"","sources":["../../src/api/storage-router.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAA;AACvC,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,OAAO,KAAK,EAEV,iBAAiB,EAClB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAkM3C,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,qBAAqB,EAC/B,UAAU,EAAE,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc9B"}
@@ -0,0 +1,155 @@
1
+ import '@orpc/openapi/extensions/route';
2
+ import * as v from 'valibot';
3
+ import { createApiBuilder } from './builder.js';
4
+ const uploadResultSchema = v.strictObject({
5
+ fileId: v.string(),
6
+ url: v.string(),
7
+ });
8
+ const prepareUploadSchema = v.variant('mode', [
9
+ v.strictObject({
10
+ mode: v.literal('proxy'),
11
+ uploadUrl: v.string(),
12
+ }),
13
+ v.strictObject({
14
+ mode: v.literal('presign'),
15
+ fileId: v.string(),
16
+ uploadUrl: v.string(),
17
+ method: v.literal('PUT'),
18
+ confirmUrl: v.string(),
19
+ }),
20
+ ]);
21
+ const responseHeadersSchema = v.record(v.string(), v.union([v.string(), v.array(v.string()), v.undefined()]));
22
+ async function executionContext(context) {
23
+ const session = await context.getSession();
24
+ return {
25
+ request: context.request,
26
+ user: session.user,
27
+ session: { activeOrganizationId: session.activeOrganizationId },
28
+ };
29
+ }
30
+ function headersRecord(headers) {
31
+ const result = {};
32
+ headers.forEach((value, key) => {
33
+ result[key] = value;
34
+ });
35
+ return result;
36
+ }
37
+ function buildBucketProcedures(name, operations, builder) {
38
+ const prepareUpload = builder.public
39
+ .route({
40
+ method: 'POST',
41
+ path: `/api/files/${name}/presign`,
42
+ summary: `Prepare upload to ${name}`,
43
+ tags: ['files'],
44
+ })
45
+ .input(v.strictObject({
46
+ filename: v.optional(v.string()),
47
+ contentType: v.optional(v.string()),
48
+ }))
49
+ .output(prepareUploadSchema)
50
+ .handler(({ input, context }) => executionContext(context).then((exec) => operations.prepareUpload(name, input, exec)));
51
+ const upload = builder.public
52
+ .route({
53
+ method: 'POST',
54
+ path: `/api/files/${name}`,
55
+ summary: `Upload to ${name}`,
56
+ tags: ['files'],
57
+ inputStructure: 'detailed',
58
+ outputStructure: 'detailed',
59
+ requestBodyHint: 'form-data',
60
+ })
61
+ .input(v.strictObject({
62
+ params: v.optional(v.strictObject({}), {}),
63
+ query: v.optional(v.record(v.string(), v.unknown()), {}),
64
+ headers: v.optional(v.record(v.string(), v.unknown()), {}),
65
+ body: v.strictObject({ file: v.file() }),
66
+ }))
67
+ .output(v.strictObject({
68
+ status: v.literal(201),
69
+ body: uploadResultSchema,
70
+ }))
71
+ .handler(async ({ input, context }) => {
72
+ const result = await operations.upload(name, input.body.file, await executionContext(context));
73
+ return {
74
+ status: result.status,
75
+ body: { fileId: result.fileId, url: result.url },
76
+ };
77
+ });
78
+ const confirmUpload = builder.public
79
+ .route({
80
+ method: 'POST',
81
+ path: `/api/files/${name}/{id}/confirm`,
82
+ summary: `Confirm upload to ${name}`,
83
+ tags: ['files'],
84
+ })
85
+ .input(v.strictObject({ id: v.string() }))
86
+ .output(uploadResultSchema)
87
+ .handler(({ input, context }) => executionContext(context).then((exec) => operations.confirmUpload(name, input.id, exec)));
88
+ const download = builder.public
89
+ .route({
90
+ method: 'GET',
91
+ path: `/api/files/${name}/{+path}`,
92
+ summary: `Download from ${name}`,
93
+ tags: ['files'],
94
+ inputStructure: 'detailed',
95
+ outputStructure: 'detailed',
96
+ })
97
+ .input(v.strictObject({
98
+ params: v.strictObject({ path: v.string() }),
99
+ query: v.optional(v.record(v.string(), v.string()), {}),
100
+ headers: v.optional(v.record(v.string(), v.unknown()), {}),
101
+ body: v.optional(v.undefined()),
102
+ }))
103
+ .output(v.union([
104
+ v.strictObject({
105
+ status: v.literal(200),
106
+ headers: responseHeadersSchema,
107
+ body: v.unknown(),
108
+ }),
109
+ v.strictObject({
110
+ status: v.literal(302),
111
+ headers: responseHeadersSchema,
112
+ body: v.optional(v.undefined()),
113
+ }),
114
+ ]))
115
+ .handler(async ({ input, context }) => {
116
+ const result = await operations.download(name, input.params.path, await executionContext(context));
117
+ if (result.kind === 'redirect') {
118
+ return {
119
+ status: 302,
120
+ headers: { Location: result.url },
121
+ body: undefined,
122
+ };
123
+ }
124
+ return {
125
+ status: 200,
126
+ headers: headersRecord(result.headers),
127
+ body: result.body,
128
+ };
129
+ });
130
+ const deleteFile = builder.public
131
+ .route({
132
+ method: 'DELETE',
133
+ path: `/api/files/${name}/{+path}`,
134
+ summary: `Delete from ${name}`,
135
+ tags: ['files'],
136
+ successStatus: 204,
137
+ })
138
+ .input(v.strictObject({ path: v.string() }))
139
+ .output(v.undefined())
140
+ .handler(async ({ input, context }) => {
141
+ await operations.delete(name, input.path, await executionContext(context));
142
+ return undefined;
143
+ });
144
+ return { prepareUpload, upload, confirmUpload, download, delete: deleteFile };
145
+ }
146
+ export function buildStorageApiRouter(registry, operations) {
147
+ const builder = createApiBuilder();
148
+ return {
149
+ files: Object.fromEntries([...registry.keys()].map((name) => [
150
+ name,
151
+ buildBucketProcedures(name, operations, builder),
152
+ ])),
153
+ };
154
+ }
155
+ //# sourceMappingURL=storage-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-router.js","sourceRoot":"","sources":["../../src/api/storage-router.ts"],"names":[],"mappings":"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","sourcesContent":["import '@orpc/openapi/extensions/route'\nimport * as v from 'valibot'\n\nimport type {\n StorageExecutionContext,\n StorageOperations,\n} from '../storage/operations'\nimport type { BucketStorageRegistry } from '../storage/registry'\nimport type { ApiContext } from './context'\n\nimport { createApiBuilder } from './builder'\n\nconst uploadResultSchema = v.strictObject({\n fileId: v.string(),\n url: v.string(),\n})\n\nconst prepareUploadSchema = v.variant('mode', [\n v.strictObject({\n mode: v.literal('proxy'),\n uploadUrl: v.string(),\n }),\n v.strictObject({\n mode: v.literal('presign'),\n fileId: v.string(),\n uploadUrl: v.string(),\n method: v.literal('PUT'),\n confirmUrl: v.string(),\n }),\n])\n\nconst responseHeadersSchema = v.record(\n v.string(),\n v.union([v.string(), v.array(v.string()), v.undefined()]),\n)\n\nasync function executionContext(\n context: ApiContext<Record<string, unknown>, Record<string, unknown>>,\n): Promise<StorageExecutionContext> {\n const session = await context.getSession()\n return {\n request: context.request,\n user: session.user,\n session: { activeOrganizationId: session.activeOrganizationId },\n }\n}\n\nfunction headersRecord(headers: Headers): Record<string, string> {\n const result: Record<string, string> = {}\n headers.forEach((value, key) => {\n result[key] = value\n })\n return result\n}\n\nfunction buildBucketProcedures(\n name: string,\n operations: StorageOperations,\n builder: ReturnType<\n typeof createApiBuilder<Record<string, unknown>, Record<string, unknown>>\n >,\n) {\n const prepareUpload = builder.public\n .route({\n method: 'POST',\n path: `/api/files/${name}/presign`,\n summary: `Prepare upload to ${name}`,\n tags: ['files'],\n })\n .input(\n v.strictObject({\n filename: v.optional(v.string()),\n contentType: v.optional(v.string()),\n }),\n )\n .output(prepareUploadSchema)\n .handler(({ input, context }) =>\n executionContext(context).then((exec) =>\n operations.prepareUpload(name, input, exec),\n ),\n )\n\n const upload = builder.public\n .route({\n method: 'POST',\n path: `/api/files/${name}`,\n summary: `Upload to ${name}`,\n tags: ['files'],\n inputStructure: 'detailed',\n outputStructure: 'detailed',\n requestBodyHint: 'form-data',\n })\n .input(\n v.strictObject({\n params: v.optional(v.strictObject({}), {}),\n query: v.optional(v.record(v.string(), v.unknown()), {}),\n headers: v.optional(v.record(v.string(), v.unknown()), {}),\n body: v.strictObject({ file: v.file() }),\n }),\n )\n .output(\n v.strictObject({\n status: v.literal(201),\n body: uploadResultSchema,\n }),\n )\n .handler(async ({ input, context }) => {\n const result = await operations.upload(\n name,\n input.body.file,\n await executionContext(context),\n )\n return {\n status: result.status,\n body: { fileId: result.fileId, url: result.url },\n }\n })\n\n const confirmUpload = builder.public\n .route({\n method: 'POST',\n path: `/api/files/${name}/{id}/confirm`,\n summary: `Confirm upload to ${name}`,\n tags: ['files'],\n })\n .input(v.strictObject({ id: v.string() }))\n .output(uploadResultSchema)\n .handler(({ input, context }) =>\n executionContext(context).then((exec) =>\n operations.confirmUpload(name, input.id, exec),\n ),\n )\n\n const download = builder.public\n .route({\n method: 'GET',\n path: `/api/files/${name}/{+path}`,\n summary: `Download from ${name}`,\n tags: ['files'],\n inputStructure: 'detailed',\n outputStructure: 'detailed',\n })\n .input(\n v.strictObject({\n params: v.strictObject({ path: v.string() }),\n query: v.optional(v.record(v.string(), v.string()), {}),\n headers: v.optional(v.record(v.string(), v.unknown()), {}),\n body: v.optional(v.undefined()),\n }),\n )\n .output(\n v.union([\n v.strictObject({\n status: v.literal(200),\n headers: responseHeadersSchema,\n body: v.unknown(),\n }),\n v.strictObject({\n status: v.literal(302),\n headers: responseHeadersSchema,\n body: v.optional(v.undefined()),\n }),\n ]),\n )\n .handler(async ({ input, context }) => {\n const result = await operations.download(\n name,\n input.params.path,\n await executionContext(context),\n )\n if (result.kind === 'redirect') {\n return {\n status: 302 as const,\n headers: { Location: result.url },\n body: undefined,\n }\n }\n return {\n status: 200 as const,\n headers: headersRecord(result.headers),\n body: result.body,\n }\n })\n\n const deleteFile = builder.public\n .route({\n method: 'DELETE',\n path: `/api/files/${name}/{+path}`,\n summary: `Delete from ${name}`,\n tags: ['files'],\n successStatus: 204,\n })\n .input(v.strictObject({ path: v.string() }))\n .output(v.undefined())\n .handler(async ({ input, context }) => {\n await operations.delete(name, input.path, await executionContext(context))\n return undefined\n })\n\n return { prepareUpload, upload, confirmUpload, download, delete: deleteFile }\n}\n\nexport function buildStorageApiRouter(\n registry: BucketStorageRegistry,\n operations: StorageOperations,\n) {\n const builder = createApiBuilder<\n Record<string, unknown>,\n Record<string, unknown>\n >()\n return {\n files: Object.fromEntries(\n [...registry.keys()].map((name) => [\n name,\n buildBucketProcedures(name, operations, builder),\n ]),\n ),\n }\n}\n"]}
@@ -0,0 +1,55 @@
1
+ import type { AnyRouter } from '@orpc/server';
2
+ import type { Table } from 'drizzle-orm';
3
+ import type { AccessUser } from '../access.js';
4
+ import type { TableCrudProcedures } from './crud-router.js';
5
+ export interface ProtectedContextAdditions {
6
+ user: AccessUser;
7
+ session: {
8
+ activeOrganizationId: string | null;
9
+ };
10
+ }
11
+ type AuthTableName = 'user' | 'session' | 'account' | 'verification';
12
+ type InferSelect<T> = T extends {
13
+ $inferSelect: infer R;
14
+ } ? R : never;
15
+ type DisabledKeys<TAccess> = {
16
+ [K in keyof TAccess & string]: TAccess[K] extends {
17
+ crud: false;
18
+ } ? K : never;
19
+ }[keyof TAccess & string];
20
+ type ExplicitKeys<TSchema, TAccess> = {
21
+ [K in keyof TAccess & keyof TSchema & string]: TAccess[K] extends {
22
+ crud: false;
23
+ } ? never : K extends AuthTableName ? TAccess[K] extends {
24
+ exposeAuthTable: true;
25
+ } ? K extends 'user' ? K : never : never : K;
26
+ }[keyof TAccess & keyof TSchema & string];
27
+ type ConventionKeys<TSchema> = {
28
+ [K in keyof TSchema & string]: K extends AuthTableName ? never : InferSelect<TSchema[K]> extends {
29
+ userId: unknown;
30
+ } ? K : never;
31
+ }[keyof TSchema & string];
32
+ export type ExposedApiTables<TSchema, TAccess> = [TAccess] extends [undefined] ? ConventionKeys<TSchema> : ExplicitKeys<TSchema, TAccess> | Exclude<ConventionKeys<TSchema>, DisabledKeys<TAccess> | (keyof TAccess & string)>;
33
+ /**
34
+ * Column allowlists declared in `access` reach the client as literal unions, so
35
+ * `list` can type `filters` and `sort` per table. Tables that declare nothing
36
+ * get `never` filters and `'id'` sorting, matching the runtime defaults.
37
+ */
38
+ type FilterableOf<TAccess, K extends string> = K extends keyof TAccess ? TAccess[K] extends {
39
+ filterableColumns: readonly (infer F extends string)[];
40
+ } ? F : never : never;
41
+ type SortableOf<TAccess, K extends string> = K extends keyof TAccess ? TAccess[K] extends {
42
+ sortableColumns: readonly (infer S extends string)[];
43
+ } ? S : 'id' : 'id';
44
+ export type CrudApiRouterFor<TSchema extends Record<string, unknown>, TAccess = undefined, TLive extends boolean = false> = {
45
+ [K in ExposedApiTables<TSchema, TAccess> as TSchema[K] extends Table ? K : never]: TableCrudProcedures<Extract<TSchema[K], Table>, FilterableOf<TAccess, K>, SortableOf<TAccess, K>, TLive>;
46
+ };
47
+ type IsProcedure<T> = T extends {
48
+ '~orpc': unknown;
49
+ } ? true : false;
50
+ export type MergeApiRouterTypes<A, B> = {
51
+ [K in keyof A | keyof B]: K extends keyof A ? K extends keyof B ? IsProcedure<A[K]> extends true ? never : IsProcedure<B[K]> extends true ? never : A[K] extends Record<string, unknown> ? B[K] extends Record<string, unknown> ? MergeApiRouterTypes<A[K], B[K]> : never : never : A[K] : K extends keyof B ? B[K] : never;
52
+ };
53
+ export type UnifiedApiRouter<TCrud, TCustom extends AnyRouter | undefined> = TCustom extends AnyRouter ? MergeApiRouterTypes<TCrud, TCustom> : TCrud;
54
+ export {};
55
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { AnyRouter } from '@orpc/server'\nimport type { Table } from 'drizzle-orm'\n\nimport type { AccessUser } from '../access'\nimport type { TableCrudProcedures } from './crud-router'\n\nexport interface ProtectedContextAdditions {\n user: AccessUser\n session: {\n activeOrganizationId: string | null\n }\n}\n\ntype AuthTableName = 'user' | 'session' | 'account' | 'verification'\ntype InferSelect<T> = T extends { $inferSelect: infer R } ? R : never\n\ntype DisabledKeys<TAccess> = {\n [K in keyof TAccess & string]: TAccess[K] extends { crud: false } ? K : never\n}[keyof TAccess & string]\n\ntype ExplicitKeys<TSchema, TAccess> = {\n [K in keyof TAccess & keyof TSchema & string]: TAccess[K] extends {\n crud: false\n }\n ? never\n : K extends AuthTableName\n ? TAccess[K] extends { exposeAuthTable: true }\n ? K extends 'user'\n ? K\n : never\n : never\n : K\n}[keyof TAccess & keyof TSchema & string]\n\ntype ConventionKeys<TSchema> = {\n [K in keyof TSchema & string]: K extends AuthTableName\n ? never\n : InferSelect<TSchema[K]> extends { userId: unknown }\n ? K\n : never\n}[keyof TSchema & string]\n\nexport type ExposedApiTables<TSchema, TAccess> = [TAccess] extends [undefined]\n ? ConventionKeys<TSchema>\n :\n | ExplicitKeys<TSchema, TAccess>\n | Exclude<\n ConventionKeys<TSchema>,\n DisabledKeys<TAccess> | (keyof TAccess & string)\n >\n\n/**\n * Column allowlists declared in `access` reach the client as literal unions, so\n * `list` can type `filters` and `sort` per table. Tables that declare nothing\n * get `never` filters and `'id'` sorting, matching the runtime defaults.\n */\ntype FilterableOf<TAccess, K extends string> = K extends keyof TAccess\n ? TAccess[K] extends {\n filterableColumns: readonly (infer F extends string)[]\n }\n ? F\n : never\n : never\n\ntype SortableOf<TAccess, K extends string> = K extends keyof TAccess\n ? TAccess[K] extends { sortableColumns: readonly (infer S extends string)[] }\n ? S\n : 'id'\n : 'id'\n\nexport type CrudApiRouterFor<\n TSchema extends Record<string, unknown>,\n TAccess = undefined,\n TLive extends boolean = false,\n> = {\n [K in ExposedApiTables<TSchema, TAccess> as TSchema[K] extends Table\n ? K\n : never]: TableCrudProcedures<\n Extract<TSchema[K], Table>,\n FilterableOf<TAccess, K>,\n SortableOf<TAccess, K>,\n TLive\n >\n}\n\ntype IsProcedure<T> = T extends { '~orpc': unknown } ? true : false\n\nexport type MergeApiRouterTypes<A, B> = {\n [K in keyof A | keyof B]: K extends keyof A\n ? K extends keyof B\n ? IsProcedure<A[K]> extends true\n ? never\n : IsProcedure<B[K]> extends true\n ? never\n : A[K] extends Record<string, unknown>\n ? B[K] extends Record<string, unknown>\n ? MergeApiRouterTypes<A[K], B[K]>\n : never\n : never\n : A[K]\n : K extends keyof B\n ? B[K]\n : never\n}\n\nexport type UnifiedApiRouter<\n TCrud,\n TCustom extends AnyRouter | undefined,\n> = TCustom extends AnyRouter ? MergeApiRouterTypes<TCrud, TCustom> : TCrud\n"]}
@@ -0,0 +1,27 @@
1
+ import type { BetterAuthConfig } from './config.js';
2
+ type ScryptFn = (password: string, salt: string, keylen: number, options: {
3
+ N: number;
4
+ r: number;
5
+ p: number;
6
+ maxmem: number;
7
+ }) => Promise<Uint8Array>;
8
+ export declare function createPasswordHasher(options?: {
9
+ nativeScrypt?: ScryptFn | null;
10
+ }): {
11
+ hash(password: string): Promise<string>;
12
+ verify({ hash, password, }: {
13
+ hash: string;
14
+ password: string;
15
+ }): Promise<boolean>;
16
+ };
17
+ export declare const passwordHasher: {
18
+ hash(password: string): Promise<string>;
19
+ verify({ hash, password, }: {
20
+ hash: string;
21
+ password: string;
22
+ }): Promise<boolean>;
23
+ };
24
+ /** Only fills a gap: a user-supplied password hasher always wins. */
25
+ export declare function withPasswordDefaults<T extends Pick<BetterAuthConfig, 'emailAndPassword'>>(cfg: T): T;
26
+ export {};
27
+ //# sourceMappingURL=auth-password.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-password.d.ts","sourceRoot":"","sources":["../src/auth-password.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,KAAK,QAAQ,GAAG,CACd,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,KACzD,OAAO,CAAC,UAAU,CAAC,CAAA;AAwBxB,wBAAgB,oBAAoB,CAClC,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;CAAO;mBAoBzB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;gCAO1C;QACD,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,MAAM,CAAA;KACjB,GAAG,OAAO,CAAC,OAAO,CAAC;EAMvB;AAED,eAAO,MAAM,cAAc;mBAlBF,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;gCAO1C;QACD,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,MAAM,CAAA;KACjB,GAAG,OAAO,CAAC,OAAO,CAAC;CAQ4B,CAAA;AAEpD,qEAAqE;AACrE,wBAAgB,oBAAoB,CAClC,CAAC,SAAS,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,EACpD,GAAG,EAAE,CAAC,GAAG,CAAC,CAWX"}