@selvajs/server 1.5.0-beta.9 → 2.0.0-beta.16

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 (143) hide show
  1. package/dist/access/guards.d.ts +0 -10
  2. package/dist/access/guards.d.ts.map +1 -1
  3. package/dist/access/guards.js +23 -26
  4. package/dist/access/guards.js.map +1 -1
  5. package/dist/api/bodies.d.ts +1 -1
  6. package/dist/api/bodies.d.ts.map +1 -1
  7. package/dist/api/bodies.js +2 -1
  8. package/dist/api/bodies.js.map +1 -1
  9. package/dist/api/idempotency.d.ts +10 -3
  10. package/dist/api/idempotency.d.ts.map +1 -1
  11. package/dist/api/idempotency.js +32 -9
  12. package/dist/api/idempotency.js.map +1 -1
  13. package/dist/api/index.d.ts +2 -2
  14. package/dist/api/index.d.ts.map +1 -1
  15. package/dist/api/index.js +2 -2
  16. package/dist/api/index.js.map +1 -1
  17. package/dist/api/request.d.ts +12 -4
  18. package/dist/api/request.d.ts.map +1 -1
  19. package/dist/api/request.js +32 -5
  20. package/dist/api/request.js.map +1 -1
  21. package/dist/api/respond.d.ts.map +1 -1
  22. package/dist/api/respond.js +11 -7
  23. package/dist/api/respond.js.map +1 -1
  24. package/dist/api/scope.d.ts +7 -0
  25. package/dist/api/scope.d.ts.map +1 -1
  26. package/dist/api/scope.js +15 -1
  27. package/dist/api/scope.js.map +1 -1
  28. package/dist/compute/idempotency.d.ts +8 -1
  29. package/dist/compute/idempotency.d.ts.map +1 -1
  30. package/dist/compute/idempotency.js +35 -5
  31. package/dist/compute/idempotency.js.map +1 -1
  32. package/dist/compute/index.d.ts +1 -1
  33. package/dist/compute/index.d.ts.map +1 -1
  34. package/dist/compute/index.js +1 -1
  35. package/dist/compute/index.js.map +1 -1
  36. package/dist/compute/limits.d.ts +0 -7
  37. package/dist/compute/limits.d.ts.map +1 -1
  38. package/dist/compute/limits.js +0 -1
  39. package/dist/compute/limits.js.map +1 -1
  40. package/dist/compute/server-config-write.d.ts +11 -0
  41. package/dist/compute/server-config-write.d.ts.map +1 -1
  42. package/dist/compute/server-config-write.js +34 -0
  43. package/dist/compute/server-config-write.js.map +1 -1
  44. package/dist/definitions/definition-service.d.ts.map +1 -1
  45. package/dist/definitions/definition-service.js +3 -2
  46. package/dist/definitions/definition-service.js.map +1 -1
  47. package/dist/definitions/index.d.ts +1 -1
  48. package/dist/definitions/index.d.ts.map +1 -1
  49. package/dist/definitions/index.js +1 -1
  50. package/dist/definitions/index.js.map +1 -1
  51. package/dist/definitions/load-for-render.d.ts +9 -0
  52. package/dist/definitions/load-for-render.d.ts.map +1 -1
  53. package/dist/definitions/load-for-render.js +1 -1
  54. package/dist/definitions/load-for-render.js.map +1 -1
  55. package/dist/definitions/visibility.d.ts.map +1 -1
  56. package/dist/definitions/visibility.js +7 -12
  57. package/dist/definitions/visibility.js.map +1 -1
  58. package/dist/handlers/apiTokens.d.ts.map +1 -1
  59. package/dist/handlers/apiTokens.js +3 -1
  60. package/dist/handlers/apiTokens.js.map +1 -1
  61. package/dist/handlers/definitionVersions.d.ts.map +1 -1
  62. package/dist/handlers/definitionVersions.js +2 -2
  63. package/dist/handlers/definitionVersions.js.map +1 -1
  64. package/dist/handlers/definitions.d.ts.map +1 -1
  65. package/dist/handlers/definitions.js +27 -15
  66. package/dist/handlers/definitions.js.map +1 -1
  67. package/dist/handlers/index.d.ts +1 -1
  68. package/dist/handlers/index.d.ts.map +1 -1
  69. package/dist/handlers/index.js +1 -1
  70. package/dist/handlers/index.js.map +1 -1
  71. package/dist/handlers/invite-lookup.d.ts.map +1 -1
  72. package/dist/handlers/invite-lookup.js +3 -5
  73. package/dist/handlers/invite-lookup.js.map +1 -1
  74. package/dist/handlers/invites.d.ts +4 -3
  75. package/dist/handlers/invites.d.ts.map +1 -1
  76. package/dist/handlers/invites.js +17 -3
  77. package/dist/handlers/invites.js.map +1 -1
  78. package/dist/handlers/oauthConsent.d.ts +25 -13
  79. package/dist/handlers/oauthConsent.d.ts.map +1 -1
  80. package/dist/handlers/oauthConsent.js +29 -13
  81. package/dist/handlers/oauthConsent.js.map +1 -1
  82. package/dist/handlers/orgAssets.d.ts.map +1 -1
  83. package/dist/handlers/orgAssets.js +2 -2
  84. package/dist/handlers/orgAssets.js.map +1 -1
  85. package/dist/handlers/orgCompute.d.ts.map +1 -1
  86. package/dist/handlers/orgCompute.js +4 -2
  87. package/dist/handlers/orgCompute.js.map +1 -1
  88. package/dist/handlers/orgMembers.d.ts.map +1 -1
  89. package/dist/handlers/orgMembers.js +76 -56
  90. package/dist/handlers/orgMembers.js.map +1 -1
  91. package/dist/handlers/ownerChanges.d.ts +8 -0
  92. package/dist/handlers/ownerChanges.d.ts.map +1 -0
  93. package/dist/handlers/ownerChanges.js +19 -0
  94. package/dist/handlers/ownerChanges.js.map +1 -0
  95. package/dist/handlers/projectMembers.d.ts.map +1 -1
  96. package/dist/handlers/projectMembers.js +20 -15
  97. package/dist/handlers/projectMembers.js.map +1 -1
  98. package/dist/handlers/projects.d.ts.map +1 -1
  99. package/dist/handlers/projects.js +10 -3
  100. package/dist/handlers/projects.js.map +1 -1
  101. package/dist/http/api-token.d.ts +17 -0
  102. package/dist/http/api-token.d.ts.map +1 -1
  103. package/dist/http/api-token.js +49 -14
  104. package/dist/http/api-token.js.map +1 -1
  105. package/dist/http/bounded-ttl-cache.d.ts +17 -0
  106. package/dist/http/bounded-ttl-cache.d.ts.map +1 -0
  107. package/dist/http/bounded-ttl-cache.js +58 -0
  108. package/dist/http/bounded-ttl-cache.js.map +1 -0
  109. package/dist/http/csrf.d.ts.map +1 -1
  110. package/dist/http/csrf.js +4 -2
  111. package/dist/http/csrf.js.map +1 -1
  112. package/dist/http/index.d.ts +3 -1
  113. package/dist/http/index.d.ts.map +1 -1
  114. package/dist/http/index.js +3 -1
  115. package/dist/http/index.js.map +1 -1
  116. package/dist/http/redirect.d.ts.map +1 -1
  117. package/dist/http/redirect.js +5 -0
  118. package/dist/http/redirect.js.map +1 -1
  119. package/dist/http/session-refresher.d.ts +14 -0
  120. package/dist/http/session-refresher.d.ts.map +1 -0
  121. package/dist/http/session-refresher.js +34 -0
  122. package/dist/http/session-refresher.js.map +1 -0
  123. package/dist/notifications/smtp-provider.d.ts.map +1 -1
  124. package/dist/notifications/smtp-provider.js +13 -6
  125. package/dist/notifications/smtp-provider.js.map +1 -1
  126. package/dist/oauth/index.d.ts +3 -0
  127. package/dist/oauth/index.d.ts.map +1 -1
  128. package/dist/oauth/index.js +14 -8
  129. package/dist/oauth/index.js.map +1 -1
  130. package/dist/organizations/org-asset-service.d.ts +2 -2
  131. package/dist/organizations/org-asset-service.js +2 -2
  132. package/dist/organizations/user-memberships.d.ts.map +1 -1
  133. package/dist/organizations/user-memberships.js +3 -7
  134. package/dist/organizations/user-memberships.js.map +1 -1
  135. package/dist/projects/delete-with-blobs.d.ts +17 -0
  136. package/dist/projects/delete-with-blobs.d.ts.map +1 -0
  137. package/dist/projects/delete-with-blobs.js +36 -0
  138. package/dist/projects/delete-with-blobs.js.map +1 -0
  139. package/dist/projects/index.d.ts +1 -0
  140. package/dist/projects/index.d.ts.map +1 -1
  141. package/dist/projects/index.js +1 -0
  142. package/dist/projects/index.js.map +1 -1
  143. package/package.json +11 -10
@@ -130,16 +130,6 @@ export declare function requireCanCreateDefinition(locals: ScopedLocals, project
130
130
  ctx: RequestContext;
131
131
  project: Project;
132
132
  }>;
133
- /**
134
- * Org-content gate — the caller must be a member of `orgId`. Used by the
135
- * file-serving proxy for org-private assets (e.g. pricing sheets under
136
- * `orgs/{id}/private/*`). Org membership is the only rule; runs through
137
- * `contentCheck` (no `instance_admin` bypass) — platform staff use Reclaim
138
- * if they need access without membership.
139
- *
140
- * Throws 401 unauthenticated, 403 when not a member.
141
- */
142
- export declare function requireCanViewOrg(locals: ScopedLocals, orgId: string): Promise<AuthUser>;
143
133
  /**
144
134
  * Project members must belong to the project's parent org. Enforced at the
145
135
  * rule layer, not as a DB constraint, to leave room for cross-org guests
@@ -1 +1 @@
1
- {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/access/guards.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/access/guards.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@
20
20
  * that reached for a module global would drag the whole composition root — and
21
21
  * its top-level `await createSelvaProviders()` — into every consumer.
22
22
  */
23
- import { isFlagEnabled, hasPermission, canReclaim, canCreateProject, canChangeOrgRole, canView, canSolve, canCreateDefinition, canManage, canEditProjectSettings, canEditDefinition, outsideTokenOrg } from '@selvajs/platform';
23
+ import { isFlagEnabled, hasPermission, canReclaim, canCreateProject, canChangeOrgRole, canView, canSolve, canCreateDefinition, canManage, canEditProjectSettings, canEditDefinition, outsideTokenOrg, SYSTEM_CONTEXT } from '@selvajs/platform';
24
24
  import { createProjectAccessInputBuilder } from './project-access-input.js';
25
25
  import { apiError, ApiErrorCode } from '../api/errors.js';
26
26
  /**
@@ -145,6 +145,14 @@ async function managementBypassOrRun(ctx, check) {
145
145
  async function contentCheck(check) {
146
146
  return await check();
147
147
  }
148
+ // With ENABLE_PLATFORM_PROJECTS off every rule denies a platform project, even for
149
+ // `instance_admin`, so the bypass must not reopen it.
150
+ function managementBypassForProject(ctx, project, src, check) {
151
+ if (project.visibility === 'platform' && !flagOf(src)('ENABLE_PLATFORM_PROJECTS')) {
152
+ return check();
153
+ }
154
+ return managementBypassOrRun(ctx, check);
155
+ }
148
156
  async function loadProjectOr404(ctx, projectId, src) {
149
157
  const project = await projectsOf(src).getProject(ctx, projectId);
150
158
  if (!project || outsideTokenOrg(ctx, project.orgId)) {
@@ -195,25 +203,6 @@ export async function requireCanCreateDefinition(locals, projectId) {
195
203
  }
196
204
  return { user, ctx, project };
197
205
  }
198
- /**
199
- * Org-content gate — the caller must be a member of `orgId`. Used by the
200
- * file-serving proxy for org-private assets (e.g. pricing sheets under
201
- * `orgs/{id}/private/*`). Org membership is the only rule; runs through
202
- * `contentCheck` (no `instance_admin` bypass) — platform staff use Reclaim
203
- * if they need access without membership.
204
- *
205
- * Throws 401 unauthenticated, 403 when not a member.
206
- */
207
- export async function requireCanViewOrg(locals, orgId) {
208
- const { user, ctx } = requireAuthed(locals);
209
- const allowed = await contentCheck(async () => {
210
- const member = await orgsOf(locals).getOrgMember(ctx, orgId, ctx.userId);
211
- return member !== null;
212
- });
213
- if (!allowed)
214
- apiError(403, ApiErrorCode.FORBIDDEN, 'You do not have access to this organization.');
215
- return user;
216
- }
217
206
  /**
218
207
  * Project members must belong to the project's parent org. Enforced at the
219
208
  * rule layer, not as a DB constraint, to leave room for cross-org guests
@@ -247,7 +236,15 @@ export async function canActorChangeOrgRole(ctx, orgId, role, src) {
247
236
  */
248
237
  export async function requireCanReclaim(locals, projectId) {
249
238
  const { user, ctx } = requireAuthed(locals);
250
- const project = await loadProjectOr404(ctx, projectId, locals);
239
+ // Reclaim exists for projects the caller cannot see, and RLS hides those from
240
+ // their own session. Only the org's leadership may learn that one exists.
241
+ const visible = await projectsOf(locals).getProject(ctx, projectId);
242
+ const project = visible ?? (await projectsOf(locals).getProject(SYSTEM_CONTEXT, projectId));
243
+ if (!project ||
244
+ outsideTokenOrg(ctx, project.orgId) ||
245
+ (!visible && project.orgId !== ctx.actingOrgId)) {
246
+ apiError(404, ApiErrorCode.NOT_FOUND, 'Project not found');
247
+ }
251
248
  // Ahead of the bypass, not inside the check: `instance_admin` short-circuits
252
249
  // `managementBypassOrRun`, so `canReclaim`'s platform-project refusal (§4a)
253
250
  // never ran for the one role that could reach it. Reclaim is content
@@ -265,6 +262,8 @@ export async function requireCanReclaim(locals, projectId) {
265
262
  });
266
263
  });
267
264
  if (!allowed) {
265
+ if (!visible)
266
+ apiError(404, ApiErrorCode.NOT_FOUND, 'Project not found');
268
267
  apiError(403, ApiErrorCode.FORBIDDEN, 'Only org owners or admins of this project’s org can reclaim it.');
269
268
  }
270
269
  return { user, ctx, project };
@@ -295,10 +294,8 @@ export async function requireCanCreateProject(locals, targetOrgId) {
295
294
  */
296
295
  export async function requireCanManage(locals, projectId, action = 'project') {
297
296
  const { user, ctx } = requireAuthed(locals);
298
- const allowed = await managementBypassOrRun(ctx, async () => {
299
- const project = await loadProjectOr404(ctx, projectId, locals);
300
- return canManage(await buildProjectAccessInput(ctx, project, locals));
301
- });
297
+ const project = await loadProjectOr404(ctx, projectId, locals);
298
+ const allowed = await managementBypassForProject(ctx, project, locals, async () => canManage(await buildProjectAccessInput(ctx, project, locals)));
302
299
  if (!allowed) {
303
300
  apiError(403, ApiErrorCode.FORBIDDEN, action === 'members'
304
301
  ? 'Only project owners can manage members.'
@@ -311,7 +308,7 @@ export async function requireCanManage(locals, projectId, action = 'project') {
311
308
  export async function requireCanEditProjectSettings(locals, projectId) {
312
309
  const { user, ctx } = requireAuthed(locals);
313
310
  const project = await loadProjectOr404(ctx, projectId, locals);
314
- const allowed = await managementBypassOrRun(ctx, async () => canEditProjectSettings(await buildProjectAccessInput(ctx, project, locals)));
311
+ const allowed = await managementBypassForProject(ctx, project, locals, async () => canEditProjectSettings(await buildProjectAccessInput(ctx, project, locals)));
315
312
  if (!allowed)
316
313
  apiError(403, ApiErrorCode.FORBIDDEN, 'Only project owners can edit project settings.');
317
314
  return { user, ctx, project };
@@ -1 +1 @@
1
- {"version":3,"file":"guards.js","sourceRoot":"","sources":["../../src/access/guards.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guards.js","sourceRoot":"","sources":["../../src/access/guards.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@
12
12
  */
13
13
  import { z } from 'zod';
14
14
  export declare const SolveBodySchema: z.ZodObject<{
15
- inputs: z.ZodDefault<z.ZodArray<z.ZodUnknown>>;
15
+ inputs: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
16
16
  values: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
17
17
  channel: z.ZodDefault<z.ZodEnum<{
18
18
  draft: "draft";
@@ -1 +1 @@
1
- {"version":3,"file":"bodies.d.ts","sourceRoot":"","sources":["../../src/api/bodies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBxB,eAAO,MAAM,eAAe;;;;;;;;;iBAO1B,CAAC;AAMH,eAAO,MAAM,uBAAuB;;;;;;;;;;iBAKlC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;iBAOzB,CAAC;AAEZ,eAAO,MAAM,0BAA0B;;;;;;;iBAGrC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;iBAAwC,CAAC;AASnF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;iBAIjC,CAAC;AAiBH,eAAO,MAAM,yBAAyB;;;;;;;;;;iBAIpC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;iBASnC,CAAC;AAMJ,eAAO,MAAM,wBAAwB;;;;iBAInC,CAAC"}
1
+ {"version":3,"file":"bodies.d.ts","sourceRoot":"","sources":["../../src/api/bodies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBxB,eAAO,MAAM,eAAe;;;;;;;;;iBAQ1B,CAAC;AAMH,eAAO,MAAM,uBAAuB;;;;;;;;;;iBAKlC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;iBAOzB,CAAC;AAEZ,eAAO,MAAM,0BAA0B;;;;;;;iBAGrC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;iBAAwC,CAAC;AASnF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;iBAIjC,CAAC;AAiBH,eAAO,MAAM,yBAAyB;;;;;;;;;;iBAIpC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;iBASnC,CAAC;AAMJ,eAAO,MAAM,wBAAwB;;;;iBAInC,CAAC"}
@@ -16,7 +16,8 @@ import { ProjectVisibilitySchema, ProjectRoleSchema, OrgRoleSchema, OrgPermissio
16
16
  // Definitions
17
17
  // ============================================================================
18
18
  export const SolveBodySchema = z.object({
19
- inputs: z.array(z.unknown()).default([]),
19
+ /** Ignored: the solve reads the inputs from the version's stored schema. */
20
+ inputs: z.array(z.unknown()).optional().meta({ deprecated: true }),
20
21
  values: z.record(z.string(), z.unknown()).default({}),
21
22
  channel: z.enum(['live', 'draft']).default('live'),
22
23
  versionId: z.string().optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"bodies.js","sourceRoot":"","sources":["../../src/api/bodies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bodies.js","sourceRoot":"","sources":["../../src/api/bodies.ts"],"names":[],"mappings":"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"}
@@ -18,12 +18,18 @@ export declare const IDEMPOTENCY_KEY_HEADER = "Idempotency-Key";
18
18
  export declare const MAX_IDEMPOTENCY_KEY_LENGTH = 255;
19
19
  /** Covers a client's retry-on-timeout window without turning into a result cache. */
20
20
  export declare const DEFAULT_API_IDEMPOTENCY_TTL_MS: number;
21
+ /**
22
+ * Replayable response bytes one store keeps. A solve response can run to
23
+ * hundreds of MB, so the key cap alone would let a client that sends a fresh
24
+ * key per solve hold gigabytes for the whole TTL. Evicting costs a re-run.
25
+ */
26
+ export declare const DEFAULT_API_IDEMPOTENCY_MAX_BYTES: number;
21
27
  export interface IdempotentEntry {
22
28
  fingerprint: string;
23
29
  response: StoredResponse;
24
30
  }
25
31
  export type ApiIdempotencyStore = IdempotencyStore<IdempotentEntry>;
26
- export declare function createApiIdempotencyStore(ttlMs?: number): ApiIdempotencyStore;
32
+ export declare function createApiIdempotencyStore(ttlMs?: number, maxBytes?: number): ApiIdempotencyStore;
27
33
  /** The store `depsFromConfig` wires when the host passes none. One per process. */
28
34
  export declare function defaultApiIdempotencyStore(): ApiIdempotencyStore;
29
35
  /**
@@ -36,8 +42,9 @@ export declare function readIdempotencyKey(request: Request): string | null;
36
42
  /** SHA-256 over method, path with query, and body, hex. */
37
43
  export declare function requestFingerprint(method: string, url: URL, body: ArrayBuffer | string): Promise<string>;
38
44
  /**
39
- * The body `requestFingerprint` should hash, read from a clone so the handler
40
- * can still consume the original.
45
+ * The body `requestFingerprint` should hash. The handler can still read it: a
46
+ * JSON body comes from a clone, a form through `readForm`, which parses it once
47
+ * for both.
41
48
  *
42
49
  * Multipart is canonicalized to its fields and file contents: clients pick a
43
50
  * fresh random boundary per request, so the raw bytes of an identical retry
@@ -1 +1 @@
1
- {"version":3,"file":"idempotency.d.ts","sourceRoot":"","sources":["../../src/api/idempotency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAIN,KAAK,cAAc,EACnB,MAAM,uBAAuB,CAAC;AAG/B,eAAO,MAAM,sBAAsB,oBAAoB,CAAC;AACxD,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAC9C,qFAAqF;AACrF,eAAO,MAAM,8BAA8B,QAAa,CAAC;AAEzD,MAAM,WAAW,eAAe;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;AAEpE,wBAAgB,yBAAyB,CACxC,KAAK,SAAiC,GACpC,mBAAmB,CAErB;AAID,mFAAmF;AACnF,wBAAgB,0BAA0B,IAAI,mBAAmB,CAEhE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CAE/D;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAWlE;AAOD,2DAA2D;AAC3D,wBAAsB,kBAAkB,CACvC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,WAAW,GAAG,MAAM,GACxB,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,CAsBrF;AAmBD;;;;GAIG;AACH,wBAAsB,aAAa,CAClC,EACC,KAAK,EACL,QAAQ,EACR,SAAS,EACT,WAAW,EACX,EAAE;IAAE,KAAK,EAAE,mBAAmB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EAC3F,EAAE,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,GACzB,OAAO,CAAC,QAAQ,CAAC,CAiBnB"}
1
+ {"version":3,"file":"idempotency.d.ts","sourceRoot":"","sources":["../../src/api/idempotency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAIN,KAAK,cAAc,EACnB,MAAM,uBAAuB,CAAC;AAI/B,eAAO,MAAM,sBAAsB,oBAAoB,CAAC;AACxD,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAC9C,qFAAqF;AACrF,eAAO,MAAM,8BAA8B,QAAa,CAAC;AACzD;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,QAAoB,CAAC;AAInE,MAAM,WAAW,eAAe;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;AAEpE,wBAAgB,yBAAyB,CACxC,KAAK,SAAiC,EACtC,QAAQ,SAAoC,GAC1C,mBAAmB,CAKrB;AAID,mFAAmF;AACnF,wBAAgB,0BAA0B,IAAI,mBAAmB,CAEhE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CAE/D;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAWlE;AAOD,2DAA2D;AAC3D,wBAAsB,kBAAkB,CACvC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,WAAW,GAAG,MAAM,GACxB,OAAO,CAAC,MAAM,CAAC,CAOjB;AAQD;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,CAsBrF;AAmBD;;;;GAIG;AACH,wBAAsB,aAAa,CAClC,EACC,KAAK,EACL,QAAQ,EACR,SAAS,EACT,WAAW,EACX,EAAE;IAAE,KAAK,EAAE,mBAAmB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EAC3F,EAAE,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,GACzB,OAAO,CAAC,QAAQ,CAAC,CAwBnB"}
@@ -11,15 +11,24 @@
11
11
  * replay. Only responses below 400 are kept: a failed attempt frees the key so
12
12
  * a corrected retry can run.
13
13
  */
14
+ import { createHash } from 'node:crypto';
14
15
  import { createIdempotencyStore } from '../compute/idempotency.js';
15
16
  import { fromStoredResponse, idempotencyKey, toStoredResponse } from './idempotency-http.js';
16
17
  import { apiError, ApiErrorCode } from './errors.js';
18
+ import { readForm } from './request.js';
17
19
  export const IDEMPOTENCY_KEY_HEADER = 'Idempotency-Key';
18
20
  export const MAX_IDEMPOTENCY_KEY_LENGTH = 255;
19
21
  /** Covers a client's retry-on-timeout window without turning into a result cache. */
20
22
  export const DEFAULT_API_IDEMPOTENCY_TTL_MS = 5 * 60_000;
21
- export function createApiIdempotencyStore(ttlMs = DEFAULT_API_IDEMPOTENCY_TTL_MS) {
22
- return createIdempotencyStore({ ttlMs });
23
+ /**
24
+ * Replayable response bytes one store keeps. A solve response can run to
25
+ * hundreds of MB, so the key cap alone would let a client that sends a fresh
26
+ * key per solve hold gigabytes for the whole TTL. Evicting costs a re-run.
27
+ */
28
+ export const DEFAULT_API_IDEMPOTENCY_MAX_BYTES = 256 * 1024 * 1024;
29
+ const CLIENT_CLOSED_REQUEST = 499;
30
+ export function createApiIdempotencyStore(ttlMs = DEFAULT_API_IDEMPOTENCY_TTL_MS, maxBytes = DEFAULT_API_IDEMPOTENCY_MAX_BYTES) {
31
+ return createIdempotencyStore({ ttlMs, maxWeight: maxBytes }, (entry) => entry.response.body.byteLength);
23
32
  }
24
33
  let sharedDefault;
25
34
  /** The store `depsFromConfig` wires when the host passes none. One per process. */
@@ -56,9 +65,16 @@ export async function requestFingerprint(method, url, body) {
56
65
  bytes.set(tail, head.length);
57
66
  return sha256Hex(bytes);
58
67
  }
68
+ async function fileSha256Hex(file) {
69
+ const hash = createHash('sha256');
70
+ for await (const chunk of file.stream())
71
+ hash.update(chunk);
72
+ return hash.digest('hex');
73
+ }
59
74
  /**
60
- * The body `requestFingerprint` should hash, read from a clone so the handler
61
- * can still consume the original.
75
+ * The body `requestFingerprint` should hash. The handler can still read it: a
76
+ * JSON body comes from a clone, a form through `readForm`, which parses it once
77
+ * for both.
62
78
  *
63
79
  * Multipart is canonicalized to its fields and file contents: clients pick a
64
80
  * fresh random boundary per request, so the raw bytes of an identical retry
@@ -71,11 +87,11 @@ export async function fingerprintBody(request) {
71
87
  }
72
88
  let form;
73
89
  try {
74
- form = await request.clone().formData();
90
+ form = await readForm(request);
75
91
  }
76
92
  catch {
77
- // Malformed: hash the raw bytes and let the handler refuse it.
78
- return request.clone().arrayBuffer();
93
+ // The handler's own read fails the same way, and a failure is never replayed.
94
+ return 'malformed multipart';
79
95
  }
80
96
  const parts = [];
81
97
  for (const [name, value] of form) {
@@ -83,7 +99,7 @@ export async function fingerprintBody(request) {
83
99
  name,
84
100
  typeof value === 'string'
85
101
  ? value
86
- : { file: value.name, type: value.type, sha256: await sha256Hex(await value.arrayBuffer()) }
102
+ : { file: value.name, type: value.type, sha256: await fileSha256Hex(value) }
87
103
  ]);
88
104
  }
89
105
  return JSON.stringify(parts);
@@ -108,8 +124,10 @@ function assertSameRequest(stored, fingerprint) {
108
124
  */
109
125
  export async function runIdempotent({ store, callerId, clientKey, fingerprint }, fn) {
110
126
  let outcome;
127
+ let ranHere = false;
111
128
  try {
112
129
  outcome = await store.run(idempotencyKey(callerId, clientKey), async () => {
130
+ ranHere = true;
113
131
  const res = await fn();
114
132
  const response = await toStoredResponse(res);
115
133
  if (res.status >= 400)
@@ -120,8 +138,13 @@ export async function runIdempotent({ store, callerId, clientKey, fingerprint },
120
138
  catch (err) {
121
139
  if (!(err instanceof NotReplayable))
122
140
  throw err;
123
- // A concurrent retry joining the failed attempt receives the same failure.
124
141
  assertSameRequest(err.fingerprint, fingerprint);
142
+ // 499 is the first client hanging up, which says nothing about this one:
143
+ // its retry is the case the store exists for, so it runs on its own.
144
+ if (!ranHere && err.response.status === CLIENT_CLOSED_REQUEST) {
145
+ return runIdempotent({ store, callerId, clientKey, fingerprint }, fn);
146
+ }
147
+ // A concurrent retry joining the failed attempt receives the same failure.
125
148
  return fromStoredResponse(err.response, false);
126
149
  }
127
150
  assertSameRequest(outcome.value.fingerprint, fingerprint);
@@ -1 +1 @@
1
- {"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../../src/api/idempotency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,sBAAsB,EAAyB,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EACN,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAEhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,CAAC,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;AACxD,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAC9C,qFAAqF;AACrF,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,GAAG,MAAM,CAAC;AASzD,MAAM,UAAU,yBAAyB,CACxC,KAAK,GAAG,8BAA8B;IAEtC,OAAO,sBAAsB,CAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,IAAI,aAA8C,CAAC;AAEnD,mFAAmF;AACnF,MAAM,UAAU,0BAA0B;IACzC,OAAO,CAAC,aAAa,KAAK,yBAAyB,EAAE,CAAC,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAmB;IACtD,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;AAC9E,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IAClD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACxD,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,0BAA0B,EAAE,CAAC;QACjE,QAAQ,CACP,GAAG,EACH,YAAY,CAAC,iBAAiB,EAC9B,GAAG,sBAAsB,iBAAiB,0BAA0B,cAAc,CAClF,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,KAAmB;IAC3C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5F,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,MAAc,EACd,GAAQ,EACR,IAA0B;IAE1B,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IAChG,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9F,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IACxD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChB,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAgB;IACrD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IACvD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC3D,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC;IACD,IAAI,IAAc,CAAC;IACnB,IAAI,CAAC;QACJ,IAAI,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACR,+DAA+D;QAC/D,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC;IACD,MAAM,KAAK,GAAwE,EAAE,CAAC;IACtF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,OAAO,KAAK,KAAK,QAAQ;gBACxB,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE;SAC7F,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,aAAa;IAER;IACA;IAFV,YACU,WAAmB,EACnB,QAAwB;QADxB,gBAAW,GAAX,WAAW,CAAQ;QACnB,aAAQ,GAAR,QAAQ,CAAgB;IAC/B,CAAC;CACJ;AAED,SAAS,iBAAiB,CAAC,MAAc,EAAE,WAAmB;IAC7D,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAC5B,QAAQ,CACP,GAAG,EACH,YAAY,CAAC,aAAa,EAC1B,QAAQ,sBAAsB,4CAA4C,CAC1E,CAAC;IACH,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,EACC,KAAK,EACL,QAAQ,EACR,SAAS,EACT,WAAW,EAC+E,EAC3F,EAA2B;IAE3B,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACJ,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,KAAK,IAAI,EAAE;YACzE,MAAM,GAAG,GAAG,MAAM,EAAE,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG;gBAAE,MAAM,IAAI,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACtE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,CAAC,GAAG,YAAY,aAAa,CAAC;YAAE,MAAM,GAAG,CAAC;QAC/C,2EAA2E;QAC3E,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAChD,OAAO,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IACD,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC1D,OAAO,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../../src/api/idempotency.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,11 @@ export type { ApiHandler, ApiRequest, ApiResponse } from './types.js';
3
3
  export { depsFromConfig, type SelvaDeps } from './deps.js';
4
4
  export { collection, created, noContent } from './responses.js';
5
5
  export { shaped, shapedCollection } from './shaped.js';
6
- export { formText, parseBody, parseParam, requireCaller, requireParams, requireUpload, throwZodError } from './request.js';
6
+ export { formText, parseBody, parseParam, readForm, requireCaller, requireParams, requireUpload, throwZodError } from './request.js';
7
7
  export { runHandler, toErrorBody, type ApiErrorBody, type RunHandlerOptions } from './respond.js';
8
8
  export { createApiRateLimiter, defaultApiRateLimiter, resolveApiRateLimitConfig, chargeApiRateLimit, rateLimitHeaders, rateLimitedResponse, withRateLimitHeaders, DEFAULT_API_RATE_LIMIT, type ApiRateLimiter, type ApiRateLimitConfig, type ApiRateLimitVerdict } from './rate-limit.js';
9
9
  export { createApiIdempotencyStore, defaultApiIdempotencyStore, idempotencyCallerId, readIdempotencyKey, requestFingerprint, runIdempotent, IDEMPOTENCY_KEY_HEADER, MAX_IDEMPOTENCY_KEY_LENGTH, DEFAULT_API_IDEMPOTENCY_TTL_MS, type ApiIdempotencyStore, type IdempotentEntry } from './idempotency.js';
10
- export { assertScope, actionForMethod, scopeRefusalsToday, projectScopeTarget, definitionScopeTarget } from './scope.js';
10
+ export { assertScope, assertScopeAnywhere, actionForMethod, scopeRefusalsToday, projectScopeTarget, definitionScopeTarget } from './scope.js';
11
11
  export { mapCoreError } from './map-core-error.js';
12
12
  export { buildOpenApiDocument, operationId, type Endpoint, type HttpMethod, type Json, type OpenApiOptions, type ResponseKind } from './openapi.js';
13
13
  export { parseListOptions, parseDefinitionListOptions } from './pagination.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC1F,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACN,QAAQ,EACR,SAAS,EACT,UAAU,EACV,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAClG,OAAO,EACN,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,sBAAsB,EACtB,0BAA0B,EAC1B,8BAA8B,EAC9B,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACN,oBAAoB,EACpB,WAAW,EACX,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,IAAI,EACT,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EACN,eAAe,EACf,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,6BAA6B,EAC7B,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,uBAAuB,EACvB,8BAA8B,EAC9B,oBAAoB,EACpB,2BAA2B,EAC3B,8BAA8B,EAC9B,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,EAC7B,KAAK,iBAAiB,EACtB,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC1F,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACN,QAAQ,EACR,SAAS,EACT,UAAU,EACV,QAAQ,EACR,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAClG,OAAO,EACN,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,sBAAsB,EACtB,0BAA0B,EAC1B,8BAA8B,EAC9B,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACN,oBAAoB,EACpB,WAAW,EACX,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,IAAI,EACT,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EACN,eAAe,EACf,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,6BAA6B,EAC7B,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,uBAAuB,EACvB,8BAA8B,EAC9B,oBAAoB,EACpB,2BAA2B,EAC3B,8BAA8B,EAC9B,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,EAC7B,KAAK,iBAAiB,EACtB,MAAM,uBAAuB,CAAC"}
package/dist/api/index.js CHANGED
@@ -6,11 +6,11 @@ export { ApiError, ApiErrorCode, apiError, codeForStatus, isApiError } from './e
6
6
  export { depsFromConfig } from './deps.js';
7
7
  export { collection, created, noContent } from './responses.js';
8
8
  export { shaped, shapedCollection } from './shaped.js';
9
- export { formText, parseBody, parseParam, requireCaller, requireParams, requireUpload, throwZodError } from './request.js';
9
+ export { formText, parseBody, parseParam, readForm, requireCaller, requireParams, requireUpload, throwZodError } from './request.js';
10
10
  export { runHandler, toErrorBody } from './respond.js';
11
11
  export { createApiRateLimiter, defaultApiRateLimiter, resolveApiRateLimitConfig, chargeApiRateLimit, rateLimitHeaders, rateLimitedResponse, withRateLimitHeaders, DEFAULT_API_RATE_LIMIT } from './rate-limit.js';
12
12
  export { createApiIdempotencyStore, defaultApiIdempotencyStore, idempotencyCallerId, readIdempotencyKey, requestFingerprint, runIdempotent, IDEMPOTENCY_KEY_HEADER, MAX_IDEMPOTENCY_KEY_LENGTH, DEFAULT_API_IDEMPOTENCY_TTL_MS } from './idempotency.js';
13
- export { assertScope, actionForMethod, scopeRefusalsToday, projectScopeTarget, definitionScopeTarget } from './scope.js';
13
+ export { assertScope, assertScopeAnywhere, actionForMethod, scopeRefusalsToday, projectScopeTarget, definitionScopeTarget } from './scope.js';
14
14
  export { mapCoreError } from './map-core-error.js';
15
15
  export { buildOpenApiDocument, operationId } from './openapi.js';
16
16
  export { parseListOptions, parseDefinitionListOptions } from './pagination.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,EAAE;AACF,8EAA8E;AAC9E,kEAAkE;AAElE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE1F,OAAO,EAAE,cAAc,EAAkB,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACN,QAAQ,EACR,SAAS,EACT,UAAU,EACV,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,WAAW,EAA6C,MAAM,cAAc,CAAC;AAClG,OAAO,EACN,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EAItB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,sBAAsB,EACtB,0BAA0B,EAC1B,8BAA8B,EAG9B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACN,oBAAoB,EACpB,WAAW,EAMX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EACN,eAAe,EACf,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,6BAA6B,EAC7B,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,uBAAuB,EACvB,8BAA8B,EAC9B,oBAAoB,EACpB,2BAA2B,EAC3B,8BAA8B,EAC9B,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,EAE7B,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,EAAE;AACF,8EAA8E;AAC9E,kEAAkE;AAElE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE1F,OAAO,EAAE,cAAc,EAAkB,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACN,QAAQ,EACR,SAAS,EACT,UAAU,EACV,QAAQ,EACR,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,WAAW,EAA6C,MAAM,cAAc,CAAC;AAClG,OAAO,EACN,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EAItB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,sBAAsB,EACtB,0BAA0B,EAC1B,8BAA8B,EAG9B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACN,oBAAoB,EACpB,WAAW,EAMX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EACN,eAAe,EACf,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,6BAA6B,EAC7B,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,uBAAuB,EACvB,8BAA8B,EAC9B,oBAAoB,EACpB,2BAA2B,EAC3B,8BAA8B,EAC9B,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,EAE7B,MAAM,uBAAuB,CAAC"}
@@ -53,16 +53,24 @@ export declare function requireParams<K extends string>(params: Partial<Record<s
53
53
  */
54
54
  export declare function parseParam<T>(value: string | undefined, schema: ZodType<T>, name: string): T;
55
55
  /**
56
- * Parse and validate a JSON body. A malformed body becomes `null` rather than
57
- * throwing, so it fails the schema as a validation error — broken JSON gets a
58
- * 400 naming the problem, not a 500 from `request.json()`.
56
+ * Parse and validate a JSON body. Broken JSON is a 400, not a 500 from
57
+ * `request.json()`.
59
58
  *
60
59
  * `missingAs` covers endpoints whose fields are all optional: passing `{}` lets
61
- * an empty body mean "no changes" instead of a validation failure.
60
+ * an empty body mean "no changes" instead of a validation failure. Only an
61
+ * empty body: a truncated `{"versionId":…` read as "no changes" would publish
62
+ * the draft instead of rolling back.
62
63
  */
63
64
  export declare function parseBody<T>(request: Request, schema: ZodType<T>, { missingAs }?: {
64
65
  missingAs?: unknown;
65
66
  }): Promise<T>;
67
+ /**
68
+ * The request's form body, parsed once: the idempotency fingerprint reads it
69
+ * before the handler does, and a definition upload is too large to buffer twice.
70
+ * On an idempotent route, `request.formData()` throws: the body is already used.
71
+ * A conformance test keeps handlers off it.
72
+ */
73
+ export declare function readForm(request: Request): Promise<FormData>;
66
74
  /**
67
75
  * Pull a required file out of a multipart body and check its size and, where
68
76
  * given, its extension.
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/api/request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAE7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG;IAAE,GAAG,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAKtF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,KAAK,CAWlD;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAC7C,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACvC,GAAG,KAAK,EAAE,CAAC,EAAE,GACX,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAqBnB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAM5F;AAMD;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAChC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAClB,EAAE,SAAS,EAAE,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GACzC,OAAO,CAAC,CAAC,CAAC,CAKZ;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC5B,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,EACb,EACC,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,KAAc,EACd,EAAE;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE;QAAE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,GACC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CA4BnC;AAED,mFAAmF;AACnF,wBAAgB,QAAQ,CACvB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,EACb,EAAE,SAAS,EAAE,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACxC,MAAM,GAAG,SAAS,CAMpB"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/api/request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAE7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG;IAAE,GAAG,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAKtF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,KAAK,CAWlD;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAC7C,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACvC,GAAG,KAAK,EAAE,CAAC,EAAE,GACX,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAqBnB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAM5F;AAMD;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAChC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAClB,EAAE,SAAS,EAAE,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GACzC,OAAO,CAAC,CAAC,CAAC,CAaZ;AAQD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAW5D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC5B,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,EACb,EACC,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,KAAc,EACd,EAAE;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,YAAY,CAAC,EAAE;QAAE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,GACC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CA4BnC;AAED,mFAAmF;AACnF,wBAAgB,QAAQ,CACvB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,EACb,EAAE,SAAS,EAAE,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACxC,MAAM,GAAG,SAAS,CAMpB"}
@@ -92,15 +92,25 @@ export function parseParam(value, schema, name) {
92
92
  // Request bodies
93
93
  // ============================================================================
94
94
  /**
95
- * Parse and validate a JSON body. A malformed body becomes `null` rather than
96
- * throwing, so it fails the schema as a validation error — broken JSON gets a
97
- * 400 naming the problem, not a 500 from `request.json()`.
95
+ * Parse and validate a JSON body. Broken JSON is a 400, not a 500 from
96
+ * `request.json()`.
98
97
  *
99
98
  * `missingAs` covers endpoints whose fields are all optional: passing `{}` lets
100
- * an empty body mean "no changes" instead of a validation failure.
99
+ * an empty body mean "no changes" instead of a validation failure. Only an
100
+ * empty body: a truncated `{"versionId":…` read as "no changes" would publish
101
+ * the draft instead of rolling back.
101
102
  */
102
103
  export async function parseBody(request, schema, { missingAs } = {}) {
103
- const raw = await request.json().catch(() => null);
104
+ const text = await request.text().catch(() => '');
105
+ let raw = null;
106
+ if (text.trim()) {
107
+ try {
108
+ raw = JSON.parse(text);
109
+ }
110
+ catch {
111
+ apiError(400, ApiErrorCode.VALIDATION_FAILED, 'The request body is not valid JSON.');
112
+ }
113
+ }
104
114
  const parsed = schema.safeParse(raw ?? missingAs ?? null);
105
115
  if (!parsed.success)
106
116
  throwZodError(parsed.error);
@@ -109,6 +119,23 @@ export async function parseBody(request, schema, { missingAs } = {}) {
109
119
  // ============================================================================
110
120
  // Uploads
111
121
  // ============================================================================
122
+ const parsedForms = new WeakMap();
123
+ /**
124
+ * The request's form body, parsed once: the idempotency fingerprint reads it
125
+ * before the handler does, and a definition upload is too large to buffer twice.
126
+ * On an idempotent route, `request.formData()` throws: the body is already used.
127
+ * A conformance test keeps handlers off it.
128
+ */
129
+ export function readForm(request) {
130
+ let form = parsedForms.get(request);
131
+ if (!form) {
132
+ form = request
133
+ .formData()
134
+ .catch(() => apiError(400, ApiErrorCode.VALIDATION_FAILED, 'The request body is not a valid form.'));
135
+ parsedForms.set(request, form);
136
+ }
137
+ return form;
138
+ }
112
139
  /**
113
140
  * Pull a required file out of a multipart body and check its size and, where
114
141
  * given, its extension.
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/api/request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/api/request.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"respond.d.ts","sourceRoot":"","sources":["../../src/api/respond.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAyC,MAAM,aAAa,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAe,MAAM,YAAY,CAAC;AAiBtE,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAc7D,MAAM,WAAW,iBAAiB;IACjC,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,QAAQ,GAAG,SAAS,CAAC;IAClD;;;OAGG;IACH,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACtE;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,0EAA0E;AAC1E,wBAAsB,UAAU,CAC/B,OAAO,EAAE,UAAU,EACnB,GAAG,EAAE,UAAU,EACf,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,iBAAiB,GAClF,OAAO,CAAC,QAAQ,CAAC,CA4EnB"}
1
+ {"version":3,"file":"respond.d.ts","sourceRoot":"","sources":["../../src/api/respond.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAyC,MAAM,aAAa,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAe,MAAM,YAAY,CAAC;AAiBtE,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAc7D,MAAM,WAAW,iBAAiB;IACjC,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,QAAQ,GAAG,SAAS,CAAC;IAClD;;;OAGG;IACH,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACtE;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAWD,0EAA0E;AAC1E,wBAAsB,UAAU,CAC/B,OAAO,EAAE,UAAU,EACnB,GAAG,EAAE,UAAU,EACf,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,iBAAiB,GAClF,OAAO,CAAC,QAAQ,CAAC,CAsEnB"}