@beignet/core 0.0.2 → 0.0.4

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 (360) hide show
  1. package/CHANGELOG.md +173 -0
  2. package/README.md +821 -30
  3. package/dist/application/index.d.ts +28 -2
  4. package/dist/application/index.d.ts.map +1 -1
  5. package/dist/application/index.js +140 -12
  6. package/dist/application/index.js.map +1 -1
  7. package/dist/client/client.d.ts +2 -2
  8. package/dist/client/client.d.ts.map +1 -1
  9. package/dist/client/client.js +136 -48
  10. package/dist/client/client.js.map +1 -1
  11. package/dist/client/error-messages.d.ts +14 -0
  12. package/dist/client/error-messages.d.ts.map +1 -0
  13. package/dist/client/error-messages.js +23 -0
  14. package/dist/client/error-messages.js.map +1 -0
  15. package/dist/client/index.d.ts +8 -4
  16. package/dist/client/index.d.ts.map +1 -1
  17. package/dist/client/index.js +6 -2
  18. package/dist/client/index.js.map +1 -1
  19. package/dist/client/types.d.ts +35 -5
  20. package/dist/client/types.d.ts.map +1 -1
  21. package/dist/client-only.d.ts +8 -0
  22. package/dist/client-only.d.ts.map +1 -0
  23. package/dist/client-only.js +8 -0
  24. package/dist/client-only.js.map +1 -0
  25. package/dist/config/index.d.ts +5 -5
  26. package/dist/config/index.d.ts.map +1 -1
  27. package/dist/config/index.js +2 -2
  28. package/dist/config/index.js.map +1 -1
  29. package/dist/contracts/catalog-errors.d.ts +27 -0
  30. package/dist/contracts/catalog-errors.d.ts.map +1 -0
  31. package/dist/contracts/catalog-errors.js +69 -0
  32. package/dist/contracts/catalog-errors.js.map +1 -0
  33. package/dist/contracts/contract-builder.d.ts +15 -12
  34. package/dist/contracts/contract-builder.d.ts.map +1 -1
  35. package/dist/contracts/contract-builder.js +15 -41
  36. package/dist/contracts/contract-builder.js.map +1 -1
  37. package/dist/contracts/contract-group.d.ts +11 -8
  38. package/dist/contracts/contract-group.d.ts.map +1 -1
  39. package/dist/contracts/contract-group.js +13 -40
  40. package/dist/contracts/contract-group.js.map +1 -1
  41. package/dist/contracts/contract-like.d.ts +1 -1
  42. package/dist/contracts/contract-like.d.ts.map +1 -1
  43. package/dist/contracts/index.d.ts +13 -9
  44. package/dist/contracts/index.d.ts.map +1 -1
  45. package/dist/contracts/index.js +9 -5
  46. package/dist/contracts/index.js.map +1 -1
  47. package/dist/contracts/openapi-meta.d.ts +48 -0
  48. package/dist/contracts/openapi-meta.d.ts.map +1 -1
  49. package/dist/contracts/openapi-meta.js +3 -0
  50. package/dist/contracts/openapi-meta.js.map +1 -1
  51. package/dist/contracts/path-template.d.ts +1 -1
  52. package/dist/contracts/path-template.js +2 -2
  53. package/dist/contracts/path-template.js.map +1 -1
  54. package/dist/contracts/schema-shape.d.ts +37 -0
  55. package/dist/contracts/schema-shape.d.ts.map +1 -0
  56. package/dist/contracts/schema-shape.js +61 -0
  57. package/dist/contracts/schema-shape.js.map +1 -0
  58. package/dist/contracts/success-status.d.ts +32 -0
  59. package/dist/contracts/success-status.d.ts.map +1 -0
  60. package/dist/contracts/success-status.js +18 -0
  61. package/dist/contracts/success-status.js.map +1 -0
  62. package/dist/contracts/types.d.ts +25 -5
  63. package/dist/contracts/types.d.ts.map +1 -1
  64. package/dist/contracts/types.js.map +1 -1
  65. package/dist/contracts/utils.d.ts +1 -1
  66. package/dist/contracts/utils.d.ts.map +1 -1
  67. package/dist/contracts/utils.js +1 -1
  68. package/dist/contracts/utils.js.map +1 -1
  69. package/dist/domain/events.d.ts +1 -1
  70. package/dist/domain/events.d.ts.map +1 -1
  71. package/dist/domain/events.js +1 -1
  72. package/dist/domain/events.js.map +1 -1
  73. package/dist/domain/index.d.ts +3 -3
  74. package/dist/domain/index.d.ts.map +1 -1
  75. package/dist/domain/index.js +3 -3
  76. package/dist/domain/index.js.map +1 -1
  77. package/dist/errors/catalog.d.ts +9 -1
  78. package/dist/errors/catalog.d.ts.map +1 -1
  79. package/dist/errors/catalog.js +7 -1
  80. package/dist/errors/catalog.js.map +1 -1
  81. package/dist/errors/http.d.ts +10 -0
  82. package/dist/errors/http.d.ts.map +1 -1
  83. package/dist/errors/http.js +11 -1
  84. package/dist/errors/http.js.map +1 -1
  85. package/dist/errors/index.d.ts +4 -4
  86. package/dist/errors/index.d.ts.map +1 -1
  87. package/dist/errors/index.js +4 -4
  88. package/dist/errors/index.js.map +1 -1
  89. package/dist/errors/response.d.ts +4 -1
  90. package/dist/errors/response.d.ts.map +1 -1
  91. package/dist/errors/response.js.map +1 -1
  92. package/dist/events/index.d.ts +10 -12
  93. package/dist/events/index.d.ts.map +1 -1
  94. package/dist/events/index.js +10 -10
  95. package/dist/events/index.js.map +1 -1
  96. package/dist/idempotency/index.d.ts +5 -3
  97. package/dist/idempotency/index.d.ts.map +1 -1
  98. package/dist/idempotency/index.js.map +1 -1
  99. package/dist/jobs/index.d.ts +148 -16
  100. package/dist/jobs/index.d.ts.map +1 -1
  101. package/dist/jobs/index.js +174 -14
  102. package/dist/jobs/index.js.map +1 -1
  103. package/dist/notifications/index.d.ts +14 -16
  104. package/dist/notifications/index.d.ts.map +1 -1
  105. package/dist/notifications/index.js +14 -14
  106. package/dist/notifications/index.js.map +1 -1
  107. package/dist/openapi/index.d.ts +8 -3
  108. package/dist/openapi/index.d.ts.map +1 -1
  109. package/dist/openapi/index.js +41 -29
  110. package/dist/openapi/index.js.map +1 -1
  111. package/dist/openapi/schema-introspector.d.ts +37 -0
  112. package/dist/openapi/schema-introspector.d.ts.map +1 -1
  113. package/dist/openapi/schema-introspector.js +23 -17
  114. package/dist/openapi/schema-introspector.js.map +1 -1
  115. package/dist/outbox/index.d.ts +18 -4
  116. package/dist/outbox/index.d.ts.map +1 -1
  117. package/dist/outbox/index.js +104 -4
  118. package/dist/outbox/index.js.map +1 -1
  119. package/dist/ports/audit.d.ts +56 -10
  120. package/dist/ports/audit.d.ts.map +1 -1
  121. package/dist/ports/audit.js +71 -3
  122. package/dist/ports/audit.js.map +1 -1
  123. package/dist/ports/auth.d.ts +92 -0
  124. package/dist/ports/auth.d.ts.map +1 -1
  125. package/dist/ports/auth.js +92 -0
  126. package/dist/ports/auth.js.map +1 -1
  127. package/dist/ports/events.d.ts +2 -2
  128. package/dist/ports/events.d.ts.map +1 -1
  129. package/dist/ports/index.d.ts +62 -33
  130. package/dist/ports/index.d.ts.map +1 -1
  131. package/dist/ports/index.js +28 -34
  132. package/dist/ports/index.js.map +1 -1
  133. package/dist/ports/policy.d.ts +32 -3
  134. package/dist/ports/policy.d.ts.map +1 -1
  135. package/dist/ports/policy.js +13 -2
  136. package/dist/ports/policy.js.map +1 -1
  137. package/dist/ports/testing.d.ts +1030 -2
  138. package/dist/ports/testing.d.ts.map +1 -1
  139. package/dist/ports/testing.js +1031 -1
  140. package/dist/ports/testing.js.map +1 -1
  141. package/dist/ports/unbound.d.ts +21 -0
  142. package/dist/ports/unbound.d.ts.map +1 -0
  143. package/dist/ports/unbound.js +57 -0
  144. package/dist/ports/unbound.js.map +1 -0
  145. package/dist/ports/unit-of-work.d.ts +1 -1
  146. package/dist/ports/unit-of-work.d.ts.map +1 -1
  147. package/dist/ports/unit-of-work.js +1 -1
  148. package/dist/ports/unit-of-work.js.map +1 -1
  149. package/dist/providers/index.d.ts +3 -2
  150. package/dist/providers/index.d.ts.map +1 -1
  151. package/dist/providers/index.js +3 -2
  152. package/dist/providers/index.js.map +1 -1
  153. package/dist/providers/instrumentation.d.ts +46 -5
  154. package/dist/providers/instrumentation.d.ts.map +1 -1
  155. package/dist/providers/instrumentation.js +25 -6
  156. package/dist/providers/instrumentation.js.map +1 -1
  157. package/dist/providers/metadata.d.ts +39 -0
  158. package/dist/providers/metadata.d.ts.map +1 -0
  159. package/dist/providers/metadata.js +169 -0
  160. package/dist/providers/metadata.js.map +1 -0
  161. package/dist/providers/provider.d.ts +114 -9
  162. package/dist/providers/provider.d.ts.map +1 -1
  163. package/dist/providers/provider.js +3 -20
  164. package/dist/providers/provider.js.map +1 -1
  165. package/dist/schedules/index.d.ts +94 -13
  166. package/dist/schedules/index.d.ts.map +1 -1
  167. package/dist/schedules/index.js +66 -12
  168. package/dist/schedules/index.js.map +1 -1
  169. package/dist/server/audit-context.d.ts +29 -0
  170. package/dist/server/audit-context.d.ts.map +1 -0
  171. package/dist/server/audit-context.js +44 -0
  172. package/dist/server/audit-context.js.map +1 -0
  173. package/dist/server/context.d.ts +141 -0
  174. package/dist/server/context.d.ts.map +1 -0
  175. package/dist/server/context.js +39 -0
  176. package/dist/server/context.js.map +1 -0
  177. package/dist/server/contract-like.d.ts +1 -1
  178. package/dist/server/contract-like.d.ts.map +1 -1
  179. package/dist/server/contract-like.js +1 -1
  180. package/dist/server/contract-like.js.map +1 -1
  181. package/dist/server/health.d.ts +2 -2
  182. package/dist/server/health.d.ts.map +1 -1
  183. package/dist/server/hooks/auth.d.ts +89 -65
  184. package/dist/server/hooks/auth.d.ts.map +1 -1
  185. package/dist/server/hooks/auth.js +84 -55
  186. package/dist/server/hooks/auth.js.map +1 -1
  187. package/dist/server/hooks/cors.d.ts +1 -1
  188. package/dist/server/hooks/cors.d.ts.map +1 -1
  189. package/dist/server/hooks/errors.d.ts +2 -2
  190. package/dist/server/hooks/errors.d.ts.map +1 -1
  191. package/dist/server/hooks/errors.js +2 -2
  192. package/dist/server/hooks/errors.js.map +1 -1
  193. package/dist/server/hooks/idempotency.d.ts +78 -0
  194. package/dist/server/hooks/idempotency.d.ts.map +1 -0
  195. package/dist/server/hooks/idempotency.js +154 -0
  196. package/dist/server/hooks/idempotency.js.map +1 -0
  197. package/dist/server/hooks/index.d.ts +8 -7
  198. package/dist/server/hooks/index.d.ts.map +1 -1
  199. package/dist/server/hooks/index.js +6 -5
  200. package/dist/server/hooks/index.js.map +1 -1
  201. package/dist/server/hooks/logging.d.ts +2 -2
  202. package/dist/server/hooks/logging.d.ts.map +1 -1
  203. package/dist/server/hooks/logging.js +1 -1
  204. package/dist/server/hooks/logging.js.map +1 -1
  205. package/dist/server/hooks/rate-limit.d.ts +25 -7
  206. package/dist/server/hooks/rate-limit.d.ts.map +1 -1
  207. package/dist/server/hooks/rate-limit.js +47 -12
  208. package/dist/server/hooks/rate-limit.js.map +1 -1
  209. package/dist/server/hooks.d.ts +1 -1
  210. package/dist/server/hooks.d.ts.map +1 -1
  211. package/dist/server/hooks.js +1 -1
  212. package/dist/server/hooks.js.map +1 -1
  213. package/dist/server/http.d.ts +84 -6
  214. package/dist/server/http.d.ts.map +1 -1
  215. package/dist/server/index.d.ts +36 -12
  216. package/dist/server/index.d.ts.map +1 -1
  217. package/dist/server/index.js +24 -8
  218. package/dist/server/index.js.map +1 -1
  219. package/dist/server/instrumentation.d.ts +108 -0
  220. package/dist/server/instrumentation.d.ts.map +1 -0
  221. package/dist/server/instrumentation.js +297 -0
  222. package/dist/server/instrumentation.js.map +1 -0
  223. package/dist/server/openapi.d.ts +3 -3
  224. package/dist/server/openapi.d.ts.map +1 -1
  225. package/dist/server/openapi.js +1 -1
  226. package/dist/server/openapi.js.map +1 -1
  227. package/dist/server/providers/index.d.ts +3 -3
  228. package/dist/server/providers/index.d.ts.map +1 -1
  229. package/dist/server/providers/index.js +3 -3
  230. package/dist/server/providers/index.js.map +1 -1
  231. package/dist/server/providers/loadProviderConfig.d.ts +2 -2
  232. package/dist/server/providers/loadProviderConfig.d.ts.map +1 -1
  233. package/dist/server/providers/loadProviderConfig.js +2 -2
  234. package/dist/server/providers/loadProviderConfig.js.map +1 -1
  235. package/dist/server/request-context.d.ts +67 -0
  236. package/dist/server/request-context.d.ts.map +1 -0
  237. package/dist/server/request-context.js +79 -0
  238. package/dist/server/request-context.js.map +1 -0
  239. package/dist/server/server-context.d.ts +38 -0
  240. package/dist/server/server-context.d.ts.map +1 -0
  241. package/dist/server/server-context.js +38 -0
  242. package/dist/server/server-context.js.map +1 -0
  243. package/dist/server/server.d.ts +148 -35
  244. package/dist/server/server.d.ts.map +1 -1
  245. package/dist/server/server.js +482 -145
  246. package/dist/server/server.js.map +1 -1
  247. package/dist/server/types.d.ts +2 -2
  248. package/dist/server/types.d.ts.map +1 -1
  249. package/dist/server/types.js +2 -2
  250. package/dist/server/types.js.map +1 -1
  251. package/dist/server/use-case-route.d.ts +263 -0
  252. package/dist/server/use-case-route.d.ts.map +1 -0
  253. package/dist/server/use-case-route.js +77 -0
  254. package/dist/server/use-case-route.js.map +1 -0
  255. package/dist/server-only.d.ts +8 -0
  256. package/dist/server-only.d.ts.map +1 -0
  257. package/dist/server-only.js +8 -0
  258. package/dist/server-only.js.map +1 -0
  259. package/dist/tasks/index.d.ts +139 -0
  260. package/dist/tasks/index.d.ts.map +1 -0
  261. package/dist/tasks/index.js +98 -0
  262. package/dist/tasks/index.js.map +1 -0
  263. package/dist/testing/index.d.ts +611 -5
  264. package/dist/testing/index.d.ts.map +1 -1
  265. package/dist/testing/index.js +434 -4
  266. package/dist/testing/index.js.map +1 -1
  267. package/dist/tracing/index.d.ts +89 -0
  268. package/dist/tracing/index.d.ts.map +1 -0
  269. package/dist/tracing/index.js +101 -0
  270. package/dist/tracing/index.js.map +1 -0
  271. package/dist/uploads/client.d.ts +278 -0
  272. package/dist/uploads/client.d.ts.map +1 -0
  273. package/dist/uploads/client.js +428 -0
  274. package/dist/uploads/client.js.map +1 -0
  275. package/dist/uploads/index.d.ts +361 -0
  276. package/dist/uploads/index.d.ts.map +1 -0
  277. package/dist/uploads/index.js +543 -0
  278. package/dist/uploads/index.js.map +1 -0
  279. package/package.json +34 -3
  280. package/src/application/index.ts +193 -10
  281. package/src/client/client.ts +148 -150
  282. package/src/client/error-messages.ts +35 -0
  283. package/src/client/index.ts +12 -4
  284. package/src/client/types.ts +44 -5
  285. package/src/client-only.ts +7 -0
  286. package/src/config/index.ts +6 -6
  287. package/src/contracts/catalog-errors.ts +115 -0
  288. package/src/contracts/contract-builder.ts +39 -76
  289. package/src/contracts/contract-group.ts +33 -68
  290. package/src/contracts/contract-like.ts +1 -1
  291. package/src/contracts/index.ts +24 -11
  292. package/src/contracts/openapi-meta.ts +55 -0
  293. package/src/contracts/path-template.ts +2 -2
  294. package/src/contracts/schema-shape.ts +75 -0
  295. package/src/contracts/success-status.ts +68 -0
  296. package/src/contracts/types.ts +32 -5
  297. package/src/contracts/utils.ts +5 -2
  298. package/src/domain/events.ts +6 -2
  299. package/src/domain/index.ts +3 -3
  300. package/src/errors/catalog.ts +9 -1
  301. package/src/errors/http.ts +11 -1
  302. package/src/errors/index.ts +4 -4
  303. package/src/errors/response.ts +4 -1
  304. package/src/events/index.ts +12 -26
  305. package/src/idempotency/index.ts +5 -3
  306. package/src/jobs/index.ts +340 -29
  307. package/src/notifications/index.ts +17 -27
  308. package/src/openapi/index.ts +73 -38
  309. package/src/openapi/schema-introspector.ts +68 -17
  310. package/src/outbox/index.ts +151 -6
  311. package/src/ports/audit.ts +120 -11
  312. package/src/ports/auth.ts +132 -0
  313. package/src/ports/events.ts +2 -2
  314. package/src/ports/index.ts +104 -35
  315. package/src/ports/policy.ts +50 -3
  316. package/src/ports/testing.ts +2220 -33
  317. package/src/ports/unbound.ts +64 -0
  318. package/src/ports/unit-of-work.ts +6 -2
  319. package/src/providers/index.ts +16 -3
  320. package/src/providers/instrumentation.ts +93 -8
  321. package/src/providers/metadata.ts +234 -0
  322. package/src/providers/provider.ts +168 -9
  323. package/src/schedules/index.ts +173 -23
  324. package/src/server/audit-context.ts +45 -0
  325. package/src/server/context.ts +224 -0
  326. package/src/server/contract-like.ts +1 -1
  327. package/src/server/health.ts +2 -2
  328. package/src/server/hooks/auth.ts +175 -158
  329. package/src/server/hooks/cors.ts +1 -1
  330. package/src/server/hooks/errors.ts +7 -4
  331. package/src/server/hooks/idempotency.ts +263 -0
  332. package/src/server/hooks/index.ts +15 -12
  333. package/src/server/hooks/logging.ts +3 -3
  334. package/src/server/hooks/rate-limit.ts +85 -17
  335. package/src/server/hooks.ts +1 -1
  336. package/src/server/http.ts +112 -6
  337. package/src/server/index.ts +63 -12
  338. package/src/server/instrumentation.ts +470 -0
  339. package/src/server/openapi.ts +4 -4
  340. package/src/server/providers/index.ts +6 -3
  341. package/src/server/providers/loadProviderConfig.ts +4 -4
  342. package/src/server/request-context.ts +116 -0
  343. package/src/server/server-context.ts +44 -0
  344. package/src/server/server.ts +1045 -229
  345. package/src/server/types.ts +2 -2
  346. package/src/server/use-case-route.ts +430 -0
  347. package/src/server-only.ts +7 -0
  348. package/src/tasks/index.ts +275 -0
  349. package/src/testing/index.ts +1153 -6
  350. package/src/tracing/index.ts +176 -0
  351. package/src/uploads/client.ts +861 -0
  352. package/src/uploads/index.ts +1071 -0
  353. package/dist/ports/mailer.d.ts +0 -6
  354. package/dist/ports/mailer.d.ts.map +0 -1
  355. package/dist/ports/mailer.js +0 -2
  356. package/dist/ports/mailer.js.map +0 -1
  357. package/dist/ports/schedules.d.ts +0 -9
  358. package/dist/ports/schedules.d.ts.map +0 -1
  359. package/dist/ports/schedules.js +0 -2
  360. package/dist/ports/schedules.js.map +0 -1
@@ -0,0 +1,361 @@
1
+ import type { StandardSchemaV1 } from "@standard-schema/spec";
2
+ import type { StorageMetadata, StorageObject, StoragePort } from "../ports/index.js";
3
+ import type { ProviderInstrumentationTarget } from "../providers/index.js";
4
+ /**
5
+ * Any Standard Schema compatible validator.
6
+ */
7
+ export type StandardSchema = StandardSchemaV1<unknown, unknown>;
8
+ /**
9
+ * Value or promise of that value.
10
+ */
11
+ export type MaybePromise<T> = T | Promise<T>;
12
+ /**
13
+ * Infer the parsed output type from a Standard Schema.
14
+ */
15
+ export type InferSchemaOutput<T extends StandardSchemaV1> = StandardSchemaV1.InferOutput<T>;
16
+ /**
17
+ * File metadata declared by a browser before an upload starts.
18
+ */
19
+ export interface UploadFileIntent {
20
+ /**
21
+ * Original file name supplied by the client.
22
+ */
23
+ name: string;
24
+ /**
25
+ * MIME content type supplied by the client.
26
+ */
27
+ contentType: string;
28
+ /**
29
+ * File size in bytes.
30
+ */
31
+ size: number;
32
+ }
33
+ /**
34
+ * Constraints for files accepted by an upload definition.
35
+ */
36
+ export interface UploadFileConstraints {
37
+ /**
38
+ * Accepted MIME content types. Omit to accept any content type.
39
+ */
40
+ contentTypes?: readonly string[];
41
+ /**
42
+ * Maximum accepted file size in bytes.
43
+ */
44
+ maxSizeBytes?: number;
45
+ /**
46
+ * Maximum files accepted by one request.
47
+ *
48
+ * @default 1
49
+ */
50
+ maxFiles?: number;
51
+ /**
52
+ * Object visibility written to storage.
53
+ *
54
+ * @default "private"
55
+ */
56
+ visibility?: "private" | "public";
57
+ /**
58
+ * Cache-Control value written to storage.
59
+ */
60
+ cacheControl?: string;
61
+ }
62
+ /**
63
+ * Parsed file intent with a generated upload id and storage key.
64
+ */
65
+ export interface PreparedUploadFile extends UploadFileIntent {
66
+ /**
67
+ * Stable upload id used to correlate prepare, direct upload, and complete.
68
+ */
69
+ uploadId: string;
70
+ /**
71
+ * Storage key that should receive the file.
72
+ */
73
+ key: string;
74
+ }
75
+ /**
76
+ * Direct upload instruction returned by an upload signer.
77
+ */
78
+ export interface DirectUploadInstruction {
79
+ method: "PUT";
80
+ url: string;
81
+ headers?: Record<string, string>;
82
+ expiresAt: string;
83
+ }
84
+ /**
85
+ * Arguments passed to an upload signer.
86
+ */
87
+ export interface SignUploadArgs {
88
+ uploadName: string;
89
+ uploadId: string;
90
+ key: string;
91
+ file: UploadFileIntent;
92
+ metadata: unknown;
93
+ storage: {
94
+ visibility: "private" | "public";
95
+ cacheControl?: string;
96
+ metadata: StorageMetadata;
97
+ };
98
+ }
99
+ /**
100
+ * Port for providers that can create direct-upload instructions.
101
+ */
102
+ export interface UploadSignerPort {
103
+ /**
104
+ * Create direct upload instructions for one prepared file.
105
+ */
106
+ sign(args: SignUploadArgs): MaybePromise<DirectUploadInstruction>;
107
+ }
108
+ /**
109
+ * Prepared upload file returned to clients.
110
+ */
111
+ export interface PreparedUploadResultFile extends PreparedUploadFile {
112
+ /**
113
+ * Direct upload instruction when a signer is configured.
114
+ */
115
+ direct?: DirectUploadInstruction;
116
+ }
117
+ /**
118
+ * Result returned by `prepare(...)`.
119
+ */
120
+ export interface PrepareUploadResult {
121
+ uploadName: string;
122
+ mode: "direct" | "server";
123
+ files: PreparedUploadResultFile[];
124
+ }
125
+ /**
126
+ * File object completed by direct upload or server upload.
127
+ */
128
+ export interface CompletedUploadFile extends PreparedUploadFile {
129
+ object: StorageObject;
130
+ }
131
+ /**
132
+ * Result returned by upload completion.
133
+ */
134
+ export interface CompleteUploadResult<Result = unknown> {
135
+ uploadName: string;
136
+ files: CompletedUploadFile[];
137
+ result: Result;
138
+ }
139
+ /**
140
+ * Input for `prepare(...)`.
141
+ */
142
+ export interface PrepareUploadInput {
143
+ metadata: unknown;
144
+ files: readonly UploadFileIntent[];
145
+ }
146
+ /**
147
+ * Input for `complete(...)`.
148
+ */
149
+ export interface CompleteUploadInput {
150
+ metadata: unknown;
151
+ files: readonly PreparedUploadFile[];
152
+ }
153
+ /**
154
+ * Input for server-handled multipart uploads.
155
+ */
156
+ export interface ServerUploadInput {
157
+ formData: FormData;
158
+ }
159
+ /**
160
+ * Authorization result accepted by upload definitions.
161
+ */
162
+ export type UploadAuthorizeResult = boolean | undefined | {
163
+ allowed: boolean;
164
+ reason?: string;
165
+ };
166
+ /**
167
+ * Arguments passed to upload definition hooks.
168
+ */
169
+ export interface UploadHookArgs<Metadata, Ctx> {
170
+ ctx: Ctx;
171
+ metadata: Metadata;
172
+ }
173
+ /**
174
+ * Arguments passed to file-specific upload hooks.
175
+ */
176
+ export interface UploadFileHookArgs<Metadata, Ctx> extends UploadHookArgs<Metadata, Ctx> {
177
+ file: UploadFileIntent;
178
+ uploadId: string;
179
+ }
180
+ /**
181
+ * Arguments passed to `onComplete(...)`.
182
+ */
183
+ export interface UploadCompleteHookArgs<Metadata, Ctx> extends UploadHookArgs<Metadata, Ctx> {
184
+ files: CompletedUploadFile[];
185
+ }
186
+ /**
187
+ * Upload definition options.
188
+ */
189
+ export interface DefineUploadOptions<MetadataSchema extends StandardSchema, Ctx, Result> {
190
+ /**
191
+ * Metadata schema submitted with prepare, server upload, and complete calls.
192
+ */
193
+ metadata: MetadataSchema;
194
+ /**
195
+ * File constraints for this upload workflow.
196
+ */
197
+ file: UploadFileConstraints;
198
+ /**
199
+ * Optional human-readable description for docs and tooling.
200
+ */
201
+ description?: string;
202
+ /**
203
+ * Check whether the current actor may start this upload.
204
+ */
205
+ authorize?(args: UploadFileHookArgs<InferSchemaOutput<MetadataSchema>, Ctx>): MaybePromise<UploadAuthorizeResult>;
206
+ /**
207
+ * Build the storage key for one file.
208
+ */
209
+ key(args: UploadFileHookArgs<InferSchemaOutput<MetadataSchema>, Ctx>): MaybePromise<string>;
210
+ /**
211
+ * Add storage metadata for one file.
212
+ */
213
+ storageMetadata?(args: UploadFileHookArgs<InferSchemaOutput<MetadataSchema>, Ctx>): MaybePromise<StorageMetadata>;
214
+ /**
215
+ * Run after files exist in storage.
216
+ */
217
+ onComplete?(args: UploadCompleteHookArgs<InferSchemaOutput<MetadataSchema>, Ctx>): MaybePromise<Result>;
218
+ }
219
+ /**
220
+ * Upload definition created by `defineUpload(...)`.
221
+ */
222
+ export interface UploadDef<Name extends string = string, MetadataSchema extends StandardSchema = StandardSchema, Ctx = unknown, Result = unknown> {
223
+ readonly kind: "upload";
224
+ readonly name: Name;
225
+ readonly metadata: MetadataSchema;
226
+ readonly file: UploadFileConstraints;
227
+ readonly description?: string;
228
+ authorize?(args: UploadFileHookArgs<InferSchemaOutput<MetadataSchema>, Ctx>): MaybePromise<UploadAuthorizeResult>;
229
+ key(args: UploadFileHookArgs<InferSchemaOutput<MetadataSchema>, Ctx>): MaybePromise<string>;
230
+ storageMetadata?(args: UploadFileHookArgs<InferSchemaOutput<MetadataSchema>, Ctx>): MaybePromise<StorageMetadata>;
231
+ onComplete?(args: UploadCompleteHookArgs<InferSchemaOutput<MetadataSchema>, Ctx>): MaybePromise<Result>;
232
+ }
233
+ /**
234
+ * Infer the parsed metadata type for an upload definition.
235
+ */
236
+ export type InferUploadMetadata<U extends UploadDef> = U["metadata"] extends StandardSchemaV1<unknown, infer Output> ? Output : never;
237
+ /**
238
+ * Infer the result returned by an upload definition's completion hook.
239
+ */
240
+ export type InferUploadResult<U extends UploadDef> = U extends UploadDef<string, StandardSchema, unknown, infer Result> ? Result : unknown;
241
+ /**
242
+ * Nested upload registry shape used by server registration and typed clients.
243
+ */
244
+ export interface UploadRegistry {
245
+ /**
246
+ * Upload definition or nested upload registry.
247
+ */
248
+ readonly [key: string]: UploadDef | UploadRegistry;
249
+ }
250
+ /**
251
+ * Infer every upload definition contained in a nested upload registry.
252
+ */
253
+ export type UploadFromRegistry<Registry> = Registry extends UploadDef ? Registry : Registry extends readonly (infer Upload)[] ? Upload extends UploadDef ? Upload : never : Registry extends object ? {
254
+ [Key in keyof Registry]: UploadFromRegistry<Registry[Key]>;
255
+ }[keyof Registry] : never;
256
+ /**
257
+ * Client-safe upload metadata generated from server upload definitions.
258
+ */
259
+ export interface UploadManifestEntry {
260
+ /**
261
+ * Upload route name.
262
+ */
263
+ name: string;
264
+ /**
265
+ * Optional human-readable upload description.
266
+ */
267
+ description?: string;
268
+ /**
269
+ * File constraints safe to expose to browser UI code.
270
+ */
271
+ file: UploadFileConstraints;
272
+ }
273
+ /**
274
+ * Options for `createUploadRouter(...)`.
275
+ */
276
+ export interface CreateUploadRouterOptions<Ctx> {
277
+ /**
278
+ * Upload definitions registered with this router.
279
+ */
280
+ uploads: readonly UploadDef<string, StandardSchema, Ctx, unknown>[];
281
+ /**
282
+ * Request context value or lazy context factory.
283
+ */
284
+ ctx: Ctx | (() => MaybePromise<Ctx>);
285
+ /**
286
+ * Storage port used for server uploads and direct upload completion checks.
287
+ */
288
+ storage: StoragePort;
289
+ /**
290
+ * Optional signer used to prepare direct upload instructions.
291
+ */
292
+ signer?: UploadSignerPort;
293
+ /**
294
+ * Optional instrumentation target used by devtools/provider watchers.
295
+ */
296
+ instrumentation?: ProviderInstrumentationTarget;
297
+ /**
298
+ * Optional upload id generator for tests or custom id policies.
299
+ */
300
+ id?: () => string;
301
+ }
302
+ /**
303
+ * Framework-neutral upload router.
304
+ */
305
+ export interface UploadRouter {
306
+ prepare(uploadName: string, input: PrepareUploadInput): Promise<PrepareUploadResult>;
307
+ complete(uploadName: string, input: CompleteUploadInput): Promise<CompleteUploadResult>;
308
+ upload(uploadName: string, input: ServerUploadInput): Promise<CompleteUploadResult>;
309
+ handleRequest(request: Request, options: {
310
+ uploadName: string;
311
+ action: "prepare" | "complete" | "upload";
312
+ }): Promise<Response>;
313
+ }
314
+ /**
315
+ * Machine-readable upload error codes.
316
+ */
317
+ export type UploadErrorCode = "UPLOAD_NOT_FOUND" | "INVALID_UPLOAD_ACTION" | "INVALID_UPLOAD_METADATA" | "INVALID_UPLOAD_FILE" | "UNAUTHORIZED_UPLOAD" | "UPLOAD_OBJECT_NOT_FOUND" | "INVALID_UPLOAD_BODY";
318
+ /**
319
+ * Error thrown for expected upload failures.
320
+ */
321
+ export declare class UploadError extends Error {
322
+ readonly code: UploadErrorCode;
323
+ readonly status: number;
324
+ readonly details?: unknown;
325
+ constructor(args: {
326
+ code: UploadErrorCode;
327
+ message: string;
328
+ status?: number;
329
+ details?: unknown;
330
+ });
331
+ }
332
+ /**
333
+ * Define a typed upload workflow.
334
+ */
335
+ export declare function defineUpload<const Name extends string, MetadataSchema extends StandardSchema, Ctx = unknown, Result = unknown>(name: Name, options: DefineUploadOptions<MetadataSchema, Ctx, Result>): UploadDef<Name, MetadataSchema, Ctx, Result>;
336
+ /**
337
+ * Define a nested upload registry while preserving upload names and metadata
338
+ * types for client code.
339
+ */
340
+ export declare function defineUploads<const Uploads extends UploadRegistry>(uploads: Uploads): Uploads;
341
+ /**
342
+ * Flatten a nested upload registry into the list expected by
343
+ * `createUploadRouter(...)`.
344
+ */
345
+ export declare function uploadsFromRegistry(uploads: UploadRegistry | readonly UploadDef[]): UploadDef[];
346
+ /**
347
+ * Create client-safe upload metadata for browser helpers.
348
+ */
349
+ export declare function createUploadManifest(uploads: UploadRegistry | readonly UploadDef[]): UploadManifestEntry[];
350
+ /**
351
+ * Create deterministic direct upload instructions for tests.
352
+ */
353
+ export declare function createMemoryUploadSigner(options?: {
354
+ baseUrl?: string;
355
+ expiresAt?: string;
356
+ }): UploadSignerPort;
357
+ /**
358
+ * Create a framework-neutral upload router.
359
+ */
360
+ export declare function createUploadRouter<Ctx>(options: CreateUploadRouterOptions<Ctx>): UploadRouter;
361
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/uploads/index.ts"],"names":[],"mappings":"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"}