@beignet/core 0.0.29 → 0.0.31

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @beignet/core
2
2
 
3
+ ## 0.0.31
4
+
5
+ ### Patch Changes
6
+
7
+ - d77e367: New `@beignet/core/memo` subpath: `createMemo(fn)` deduplicates a lookup for the lifetime of one request — the first call runs, later calls with the same arguments (from context, policies, use cases) share the same value and in-flight promise. The server scopes every HTTP request and `runServiceContext(...)` execution automatically; the cache dies with the request, so there is no TTL, no invalidation policy, and no cross-request staleness. Mutations pair with `memoized.invalidate(...)`, `runMemoScope(fn)` scopes scripts and tests, and devtools records `memo.hit`/`memo.miss` events with fill durations. The generated CLAUDE/AGENTS capability index now points at it.
8
+
9
+ ## 0.0.30
10
+
11
+ ### Patch Changes
12
+
13
+ - 38d1770: Every published package now rebuilds in `prepack`, so publishing can never ship a stale `dist/` again (the 0.0.28 packaging incident). No runtime behavior changes.
14
+ - b601494: Rate-limit denials now set a standard `Retry-After` header on 429 responses whenever the limiter reports a reset time, so generic HTTP clients can back off without parsing the error body. Powering this, `AppError` (and `createAppError` helpers) accept an optional `headers` option that the server merges onto the HTTP response when the error crosses the boundary.
15
+
3
16
  ## 0.0.29
4
17
 
5
18
  ## 0.0.28
package/README.md CHANGED
@@ -61,6 +61,7 @@ name the framework area they depend on.
61
61
  | `@beignet/core/jobs` | Job definitions, retry policies, and inline job dispatch |
62
62
  | `@beignet/core/locks` | Lease-backed LocksPort, memory adapter, memory provider, and helpers |
63
63
  | `@beignet/core/mail` | Mail port, memory mailer, and memory mailer provider |
64
+ | `@beignet/core/memo` | Request-scoped memoization for port lookups |
64
65
  | `@beignet/core/notifications` | Notification definitions, dispatchers, inline notifications provider, mail channels, and test adapters |
65
66
  | `@beignet/core/openapi` | OpenAPI generation |
66
67
  | `@beignet/core/outbox` | Durable event and job outbox |
@@ -1067,6 +1068,51 @@ return ctx.ports.posts.findMany({
1067
1068
  Beignet's convention is `items` for list contents and `page` for pagination
1068
1069
  metadata. Keep filters and sort options app-owned plain objects.
1069
1070
 
1071
+ ### Request-scoped memoization
1072
+
1073
+ Use `createMemo(...)` from `@beignet/core/memo` to run a lookup once per
1074
+ request no matter how many policies, use cases, and handlers ask for it. The
1075
+ server enters a memo scope around every HTTP request and every
1076
+ `server.runServiceContext(...)` execution; the scope's cache dies with it, so
1077
+ there is no TTL, no invalidation policy, and no cross-request staleness.
1078
+
1079
+ ```ts
1080
+ import { createMemo } from "@beignet/core/memo";
1081
+
1082
+ const repository = createDrizzleIssuesRepository(db);
1083
+
1084
+ export const issues = {
1085
+ ...repository,
1086
+ findById: createMemo(repository.findById, { name: "issues.findById" }),
1087
+ update: async (id: string, patch: IssuePatch) => {
1088
+ const updated = await repository.update(id, patch);
1089
+ // A write makes the memoized read stale within this same request.
1090
+ issues.findById.invalidate(id);
1091
+ return updated;
1092
+ },
1093
+ };
1094
+ ```
1095
+
1096
+ - Wrap reads in infra, next to the adapter — use cases and policies never
1097
+ know caching exists. Memoize reads, not mutations, and pair mutations with
1098
+ `invalidate(...)` as above.
1099
+ - Concurrent calls share one in-flight promise; rejected promises are
1100
+ evicted so the next call retries instead of memoizing the failure.
1101
+ - Default cache keys use a structural, type-tagged encoding of the arguments
1102
+ (`"1"` and `1` never collide, object key order is irrelevant). Arguments
1103
+ that cannot be encoded deterministically throw a `MemoKeyError` naming the
1104
+ memo; pass `key: (...args) => string` for those.
1105
+ - Outside a scope — plain scripts, `createServiceContext(...)` callers —
1106
+ memoized functions call straight through uncached. `runMemoScope(fn)`
1107
+ creates a scope explicitly in scripts and unit tests.
1108
+ - With devtools installed, each call records a `memo.hit` or `memo.miss`
1109
+ event (with fill duration) under the request, so duplicate lookups are
1110
+ visible in the waterfall.
1111
+
1112
+ For caching that must survive across requests, use the explicit tier —
1113
+ `ports.cache.remember` with keys that change when the data changes — and see
1114
+ the request lifecycle docs for context latency budgets.
1115
+
1070
1116
  ### Rate limiting
1071
1117
 
1072
1118
  Use `createRateLimitHooks(...)` from `@beignet/core/server` to enforce
@@ -1097,8 +1143,9 @@ const server = await createServer<AppContext, AppPorts>({
1097
1143
  Beignet then trusts no forwarding headers and all `ip`-scoped traffic
1098
1144
  shares one `ip:unknown` bucket.
1099
1145
  - Denials throw the framework `429 Too Many Requests` catalog error with
1100
- `scope`, `retryAfterSeconds`, and `resetAt` details. The bucket key is
1101
- never included in the client-visible response.
1146
+ `scope`, `retryAfterSeconds`, and `resetAt` details, and the response
1147
+ carries a standard `Retry-After` header when the limiter reports a reset
1148
+ time. The bucket key is never included in the client-visible response.
1102
1149
  - Each denial emits a `rateLimit.denied` instrumentation event carrying the
1103
1150
  key, scope, limit, and window when the app ports include an
1104
1151
  `instrumentation` or `devtools` sink, so operators keep bucket visibility.
@@ -59,8 +59,15 @@ export declare class AppError<TDef extends ErrorDef = ErrorDef> extends Error {
59
59
  * logs, or error reporting instead.
60
60
  */
61
61
  readonly details?: InferErrorDetails<TDef>;
62
+ /**
63
+ * Optional HTTP response headers set when this error crosses the HTTP
64
+ * boundary, such as `Retry-After` on a 429. Headers are public response
65
+ * data; only include values that are safe to expose.
66
+ */
67
+ readonly headers?: Record<string, string>;
62
68
  constructor(def: TDef, details?: InferErrorDetails<TDef>, overrideMessage?: string, options?: {
63
69
  cause?: unknown;
70
+ headers?: Record<string, string>;
64
71
  });
65
72
  /**
66
73
  * Stable public error code.
@@ -85,6 +92,7 @@ export type AppErrorCreator<TCatalog extends ErrorCatalog> = {
85
92
  <Key extends keyof TCatalog>(key: Key, options?: {
86
93
  cause?: unknown;
87
94
  details?: InferErrorDetails<TCatalog[Key]>;
95
+ headers?: Record<string, string>;
88
96
  message?: string;
89
97
  }): AppError<TCatalog[Key]>;
90
98
  };
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/errors/catalog.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,KAAK,kBAAkB,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7D,QAAA,MAAM,eAAe,eAAiC,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,QAAQ,CACvB,QAAQ,SAAS,kBAAkB,GAAG,SAAS,GAC3C,kBAAkB,GAClB,SAAS;IAEb,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,QAAQ,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,IAAI,SAAS,QAAQ,IAAI,IAAI,SAAS;IAClE,OAAO,EAAE,kBAAkB,CAAC;CAC7B,GACG,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAC5C,OAAO,CAAC;AAEZ;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAErE;AAED;;;;;GAKG;AACH,qBAAa,QAAQ,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,KAAK;IACnE,QAAQ,CAAC,CAAC,eAAe,CAAC,QAAQ;IAClC,yCAAyC;IACzC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAGzC,GAAG,EAAE,IAAI,EACT,OAAO,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,EACjC,eAAe,CAAC,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;IAQ/B;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;CACF;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,QAAQ,SAAS,YAAY,IAAI;IAC3D;;OAEG;IACH,OAAO,EAAE,QAAQ,CAAC;IAClB;;OAEG;IACH,CAAC,GAAG,SAAS,MAAM,QAAQ,EACzB,GAAG,EAAE,GAAG,EACR,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GACA,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;CAC5B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,EACzD,OAAO,EAAE,CAAC,GACT,eAAe,CAAC,CAAC,CAAC,CAyBpB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAiBlE"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/errors/catalog.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,KAAK,kBAAkB,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7D,QAAA,MAAM,eAAe,eAAiC,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,QAAQ,CACvB,QAAQ,SAAS,kBAAkB,GAAG,SAAS,GAC3C,kBAAkB,GAClB,SAAS;IAEb,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,QAAQ,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,IAAI,SAAS,QAAQ,IAAI,IAAI,SAAS;IAClE,OAAO,EAAE,kBAAkB,CAAC;CAC7B,GACG,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAC5C,OAAO,CAAC;AAEZ;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAErE;AAED;;;;;GAKG;AACH,qBAAa,QAAQ,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,KAAK;IACnE,QAAQ,CAAC,CAAC,eAAe,CAAC,QAAQ;IAClC,yCAAyC;IACzC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAGxC,GAAG,EAAE,IAAI,EACT,OAAO,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,EACjC,eAAe,CAAC,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;IASjE;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;CACF;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,QAAQ,SAAS,YAAY,IAAI;IAC3D;;OAEG;IACH,OAAO,EAAE,QAAQ,CAAC;IAClB;;OAEG;IACH,CAAC,GAAG,SAAS,MAAM,QAAQ,EACzB,GAAG,EAAE,GAAG,EACR,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GACA,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;CAC5B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,EACzD,OAAO,EAAE,CAAC,GACT,eAAe,CAAC,CAAC,CAAC,CA2BpB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAiBlE"}
@@ -26,11 +26,18 @@ export class AppError extends Error {
26
26
  * logs, or error reporting instead.
27
27
  */
28
28
  details;
29
+ /**
30
+ * Optional HTTP response headers set when this error crosses the HTTP
31
+ * boundary, such as `Retry-After` on a 429. Headers are public response
32
+ * data; only include values that are safe to expose.
33
+ */
34
+ headers;
29
35
  constructor(def, details, overrideMessage, options) {
30
36
  super(overrideMessage ?? def.message, { cause: options?.cause });
31
37
  this.name = "AppError";
32
38
  this.def = def;
33
39
  this.details = details;
40
+ this.headers = options?.headers;
34
41
  }
35
42
  /**
36
43
  * Stable public error code.
@@ -59,6 +66,7 @@ export function createAppError(catalog) {
59
66
  }
60
67
  return new AppError(def, options?.details, options?.message, {
61
68
  cause: options?.cause,
69
+ headers: options?.headers,
62
70
  });
63
71
  });
64
72
  appError.catalog = catalog;
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/errors/catalog.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AA4CvD;;GAEG;AACH,MAAM,UAAU,YAAY,CAA+B,IAAO;IAChE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,QAA2C,SAAQ,KAAK;IAC1D,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;IAClC,yCAAyC;IAChC,GAAG,CAAO;IACnB;;;;;;OAMG;IACM,OAAO,CAA2B;IAE3C,YACE,GAAS,EACT,OAAiC,EACjC,eAAwB,EACxB,OAA6B;QAE7B,KAAK,CAAC,eAAe,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;IACzB,CAAC;CACF;AAuBD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAU;IAEV,MAAM,QAAQ,GAAG,CAAC,CAChB,GAAQ,EACR,OAIC,EACiB,EAAE;QACpB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAc,CAA8B,CAAC;QACjE,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,IAAI,QAAQ,CACjB,GAAG,EACH,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB;YACE,KAAK,EAAE,OAAO,EAAE,KAAK;SACtB,CACF,CAAC;IACJ,CAAC,CAAuB,CAAC;IAEzB,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,GAAY;IACrC,IAAI,GAAG,YAAY,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAE1D,MAAM,KAAK,GAAG,GAAmC,CAAC;IAClD,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAE5C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IACtB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAE1D,MAAM,QAAQ,GAAG,GAA8B,CAAC;IAChD,OAAO,CACL,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ;QACjC,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ;QACnC,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,CACrC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/errors/catalog.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AA4CvD;;GAEG;AACH,MAAM,UAAU,YAAY,CAA+B,IAAO;IAChE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,QAA2C,SAAQ,KAAK;IAC1D,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;IAClC,yCAAyC;IAChC,GAAG,CAAO;IACnB;;;;;;OAMG;IACM,OAAO,CAA2B;IAC3C;;;;OAIG;IACM,OAAO,CAA0B;IAE1C,YACE,GAAS,EACT,OAAiC,EACjC,eAAwB,EACxB,OAA+D;QAE/D,KAAK,CAAC,eAAe,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;IACzB,CAAC;CACF;AAwBD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAU;IAEV,MAAM,QAAQ,GAAG,CAAC,CAChB,GAAQ,EACR,OAKC,EACiB,EAAE;QACpB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAc,CAA8B,CAAC;QACjE,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,IAAI,QAAQ,CACjB,GAAG,EACH,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB;YACE,KAAK,EAAE,OAAO,EAAE,KAAK;YACrB,OAAO,EAAE,OAAO,EAAE,OAAO;SAC1B,CACF,CAAC;IACJ,CAAC,CAAuB,CAAC;IAEzB,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,GAAY;IACrC,IAAI,GAAG,YAAY,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAE1D,MAAM,KAAK,GAAG,GAAmC,CAAC;IAClD,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAE5C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IACtB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAE1D,MAAM,QAAQ,GAAG,GAA8B,CAAC;IAChD,OAAO,CACL,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ;QACjC,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ;QACnC,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,CACrC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * @beignet/core/memo
3
+ *
4
+ * Request-scoped memoization for port lookups and other async functions.
5
+ *
6
+ * `createMemo(fn)` deduplicates calls with the same arguments for the
7
+ * lifetime of one request: the server enters a memo scope around every HTTP
8
+ * request and `runServiceContext(...)` execution, and the scope's cache dies
9
+ * with it. There is no TTL and no cross-request state, so memoized reads can
10
+ * never serve data staler than the request that fetched them.
11
+ *
12
+ * Outside any scope — plain scripts, `createServiceContext(...)` callers —
13
+ * memoized functions call straight through without caching.
14
+ */
15
+ /**
16
+ * Error thrown when a default cache key cannot be derived from arguments.
17
+ */
18
+ export declare class MemoKeyError extends Error {
19
+ constructor(message: string);
20
+ }
21
+ /**
22
+ * Instrumentation event emitted by memoized functions inside a scope that
23
+ * carries a recorder.
24
+ */
25
+ export interface MemoInstrumentationEvent {
26
+ /** Whether the call was served from the scope cache or filled it. */
27
+ kind: "hit" | "miss";
28
+ /** Memo name from `createMemo` options, defaulting to the function name. */
29
+ memo: string;
30
+ /** Encoded argument key for the call. */
31
+ key: string;
32
+ /** Fill duration for misses, rounded to two decimals. */
33
+ durationMs?: number;
34
+ /** Set when a miss's underlying call rejected (the entry is evicted). */
35
+ failed?: boolean;
36
+ }
37
+ /**
38
+ * Run a function inside a memo scope with an explicit recorder.
39
+ *
40
+ * Internal to the server runtime — apps should use `runMemoScope(...)`.
41
+ * Always uses `AsyncLocalStorage.run` (never `enterWith`), so callers'
42
+ * continuations never resume through a dangling frame.
43
+ */
44
+ export declare function runWithMemoScope<T>(options: {
45
+ record?: (event: MemoInstrumentationEvent) => void;
46
+ }, fn: () => T): T;
47
+ /**
48
+ * Run a function inside a fresh memo scope.
49
+ *
50
+ * Use this in scripts and unit tests to give memoized functions a cache
51
+ * lifetime. Nested scopes start empty; an active recorder is inherited so
52
+ * instrumentation keeps flowing.
53
+ */
54
+ export declare function runMemoScope<T>(fn: () => T): T;
55
+ /**
56
+ * Memoized function returned by `createMemo(...)`.
57
+ */
58
+ export type Memoized<F extends (...args: never[]) => unknown> = F & {
59
+ /**
60
+ * Drop the current scope's entry for these arguments, so the next call
61
+ * re-executes. Call this from mutation methods that make a memoized read
62
+ * stale within the same request.
63
+ *
64
+ * @returns Whether an entry existed.
65
+ */
66
+ invalidate(...args: Parameters<F>): boolean;
67
+ /**
68
+ * Drop all of this function's entries in the current scope.
69
+ */
70
+ clear(): void;
71
+ };
72
+ /**
73
+ * Options for `createMemo(...)`.
74
+ */
75
+ export interface CreateMemoOptions<F extends (...args: never[]) => unknown> {
76
+ /**
77
+ * Name used in instrumentation events and key errors. Defaults to the
78
+ * wrapped function's name.
79
+ */
80
+ name?: string;
81
+ /**
82
+ * Build the cache key from the call arguments. Defaults to a structural,
83
+ * type-tagged encoding of the arguments that throws `MemoKeyError` for
84
+ * values it cannot encode deterministically (functions, symbols, class
85
+ * instances, circular references).
86
+ */
87
+ key?: (...args: Parameters<F>) => string;
88
+ }
89
+ /**
90
+ * Wrap an async lookup so calls with the same arguments run once per request.
91
+ *
92
+ * Within a memo scope the first call executes and every later call with the
93
+ * same key returns the same value — including the same in-flight promise, so
94
+ * concurrent calls share one execution. Rejected promises are evicted, so a
95
+ * failed lookup is retried by the next call rather than memoized. Outside a
96
+ * scope the function calls through uncached.
97
+ *
98
+ * Memoize reads, not mutations. When a mutation in the same infra module
99
+ * makes a memoized read stale, call `memoized.invalidate(...)` with the
100
+ * read's arguments.
101
+ *
102
+ * @param fn - Function to memoize. `this` is not forwarded.
103
+ * @param options - Optional name and key builder.
104
+ * @returns The function with `invalidate(...)` and `clear()` attached.
105
+ */
106
+ export declare function createMemo<F extends (...args: never[]) => unknown>(fn: F, options?: CreateMemoOptions<F>): Memoized<F>;
107
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memo/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAI5B;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,qEAAqE;IACrE,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AASD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAA;CAAE,EAC/D,EAAE,EAAE,MAAM,CAAC,GACV,CAAC,CAEH;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAE9C;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,IAAI,CAAC,GAAG;IAClE;;;;;;OAMG;IACH,UAAU,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IAC5C;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO;IACxE;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;CAC1C;AAsGD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,EAChE,EAAE,EAAE,CAAC,EACL,OAAO,GAAE,iBAAiB,CAAC,CAAC,CAAM,GACjC,QAAQ,CAAC,CAAC,CAAC,CA6Eb"}
@@ -0,0 +1,205 @@
1
+ /**
2
+ * @beignet/core/memo
3
+ *
4
+ * Request-scoped memoization for port lookups and other async functions.
5
+ *
6
+ * `createMemo(fn)` deduplicates calls with the same arguments for the
7
+ * lifetime of one request: the server enters a memo scope around every HTTP
8
+ * request and `runServiceContext(...)` execution, and the scope's cache dies
9
+ * with it. There is no TTL and no cross-request state, so memoized reads can
10
+ * never serve data staler than the request that fetched them.
11
+ *
12
+ * Outside any scope — plain scripts, `createServiceContext(...)` callers —
13
+ * memoized functions call straight through without caching.
14
+ */
15
+ import { AsyncLocalStorage } from "node:async_hooks";
16
+ /**
17
+ * Error thrown when a default cache key cannot be derived from arguments.
18
+ */
19
+ export class MemoKeyError extends Error {
20
+ constructor(message) {
21
+ super(message);
22
+ this.name = "MemoKeyError";
23
+ }
24
+ }
25
+ const memoScope = new AsyncLocalStorage();
26
+ /**
27
+ * Run a function inside a memo scope with an explicit recorder.
28
+ *
29
+ * Internal to the server runtime — apps should use `runMemoScope(...)`.
30
+ * Always uses `AsyncLocalStorage.run` (never `enterWith`), so callers'
31
+ * continuations never resume through a dangling frame.
32
+ */
33
+ export function runWithMemoScope(options, fn) {
34
+ return memoScope.run({ entries: new Map(), record: options.record }, fn);
35
+ }
36
+ /**
37
+ * Run a function inside a fresh memo scope.
38
+ *
39
+ * Use this in scripts and unit tests to give memoized functions a cache
40
+ * lifetime. Nested scopes start empty; an active recorder is inherited so
41
+ * instrumentation keeps flowing.
42
+ */
43
+ export function runMemoScope(fn) {
44
+ return runWithMemoScope({ record: memoScope.getStore()?.record }, fn);
45
+ }
46
+ function describeArgType(value) {
47
+ if (value === null)
48
+ return "null";
49
+ if (typeof value !== "object")
50
+ return typeof value;
51
+ const ctor = value.constructor?.name;
52
+ return ctor && ctor !== "Object" ? `class instance (${ctor})` : "object";
53
+ }
54
+ function encodeMemoValue(value, memoName, position, seen) {
55
+ if (value === null)
56
+ return ["null"];
57
+ switch (typeof value) {
58
+ case "string":
59
+ return ["string", value];
60
+ case "number":
61
+ return ["number", Object.is(value, -0) ? "-0" : String(value)];
62
+ case "boolean":
63
+ return ["boolean", value ? "true" : "false"];
64
+ case "undefined":
65
+ return ["undefined"];
66
+ case "bigint":
67
+ return ["bigint", value.toString()];
68
+ case "object":
69
+ break;
70
+ default:
71
+ throw new MemoKeyError(`[Beignet memo] Cannot build a default cache key for "${memoName}": argument ${position} is a ${typeof value}. Pass options.key to compute keys for these arguments.`);
72
+ }
73
+ if (value instanceof Date) {
74
+ return ["date", value.toISOString()];
75
+ }
76
+ if (seen.has(value)) {
77
+ throw new MemoKeyError(`[Beignet memo] Cannot build a default cache key for "${memoName}": argument ${position} contains a circular reference. Pass options.key to compute keys for these arguments.`);
78
+ }
79
+ if (Array.isArray(value)) {
80
+ seen.add(value);
81
+ const encoded = [
82
+ "array",
83
+ value.map((item) => encodeMemoValue(item, memoName, position, seen)),
84
+ ];
85
+ seen.delete(value);
86
+ return encoded;
87
+ }
88
+ const proto = Object.getPrototypeOf(value);
89
+ if (proto !== null && proto !== Object.prototype) {
90
+ throw new MemoKeyError(`[Beignet memo] Cannot build a default cache key for "${memoName}": argument ${position} is a ${describeArgType(value)}. Pass options.key to compute keys for these arguments.`);
91
+ }
92
+ seen.add(value);
93
+ const record = value;
94
+ const encoded = [
95
+ "object",
96
+ Object.keys(record)
97
+ .sort()
98
+ .map((key) => [
99
+ key,
100
+ encodeMemoValue(record[key], memoName, position, seen),
101
+ ]),
102
+ ];
103
+ seen.delete(value);
104
+ return encoded;
105
+ }
106
+ function defaultArgsKey(memoName, args) {
107
+ return JSON.stringify(args.map((arg, index) => encodeMemoValue(arg, memoName, index, new WeakSet())));
108
+ }
109
+ function isPromiseLike(value) {
110
+ return (value !== null &&
111
+ (typeof value === "object" || typeof value === "function") &&
112
+ typeof value.then === "function");
113
+ }
114
+ function roundDuration(startedAt) {
115
+ return Math.round((performance.now() - startedAt) * 100) / 100;
116
+ }
117
+ let nextMemoInstance = 0;
118
+ /**
119
+ * Wrap an async lookup so calls with the same arguments run once per request.
120
+ *
121
+ * Within a memo scope the first call executes and every later call with the
122
+ * same key returns the same value — including the same in-flight promise, so
123
+ * concurrent calls share one execution. Rejected promises are evicted, so a
124
+ * failed lookup is retried by the next call rather than memoized. Outside a
125
+ * scope the function calls through uncached.
126
+ *
127
+ * Memoize reads, not mutations. When a mutation in the same infra module
128
+ * makes a memoized read stale, call `memoized.invalidate(...)` with the
129
+ * read's arguments.
130
+ *
131
+ * @param fn - Function to memoize. `this` is not forwarded.
132
+ * @param options - Optional name and key builder.
133
+ * @returns The function with `invalidate(...)` and `clear()` attached.
134
+ */
135
+ export function createMemo(fn, options = {}) {
136
+ const name = options.name ?? (fn.name || "anonymous");
137
+ // The map key is namespaced by instance, not name, so two memos that share
138
+ // a name can never read each other's entries. The unit separator keeps
139
+ // prefixes unambiguous: instance 1 never prefix-matches instance 11.
140
+ nextMemoInstance += 1;
141
+ const instancePrefix = `${nextMemoInstance}\u001f`;
142
+ const keyOf = (args) => options.key ? options.key(...args) : defaultArgsKey(name, args);
143
+ const memoized = ((...args) => {
144
+ const store = memoScope.getStore();
145
+ if (!store)
146
+ return fn(...args);
147
+ const argsKey = keyOf(args);
148
+ const mapKey = instancePrefix + argsKey;
149
+ if (store.entries.has(mapKey)) {
150
+ store.record?.({ kind: "hit", memo: name, key: argsKey });
151
+ return store.entries.get(mapKey);
152
+ }
153
+ const startedAt = performance.now();
154
+ const value = fn(...args);
155
+ store.entries.set(mapKey, value);
156
+ if (isPromiseLike(value)) {
157
+ Promise.resolve(value).then(() => {
158
+ store.record?.({
159
+ kind: "miss",
160
+ memo: name,
161
+ key: argsKey,
162
+ durationMs: roundDuration(startedAt),
163
+ });
164
+ }, () => {
165
+ if (store.entries.get(mapKey) === value) {
166
+ store.entries.delete(mapKey);
167
+ }
168
+ store.record?.({
169
+ kind: "miss",
170
+ memo: name,
171
+ key: argsKey,
172
+ durationMs: roundDuration(startedAt),
173
+ failed: true,
174
+ });
175
+ });
176
+ }
177
+ else {
178
+ store.record?.({
179
+ kind: "miss",
180
+ memo: name,
181
+ key: argsKey,
182
+ durationMs: roundDuration(startedAt),
183
+ });
184
+ }
185
+ return value;
186
+ });
187
+ memoized.invalidate = (...args) => {
188
+ const store = memoScope.getStore();
189
+ if (!store)
190
+ return false;
191
+ return store.entries.delete(instancePrefix + keyOf(args));
192
+ };
193
+ memoized.clear = () => {
194
+ const store = memoScope.getStore();
195
+ if (!store)
196
+ return;
197
+ for (const key of [...store.entries.keys()]) {
198
+ if (key.startsWith(instancePrefix)) {
199
+ store.entries.delete(key);
200
+ }
201
+ }
202
+ };
203
+ return memoized;
204
+ }
205
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memo/index.ts"],"names":[],"mappings":"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"}
@@ -75,7 +75,9 @@ export interface RateLimitOptions<Ctx> {
75
75
  * in `onRequest` before context creation; user-scoped limits run in
76
76
  * `beforeHandle` after route hooks have resolved identity and `ctx.actor` is
77
77
  * available. Exceeded limits throw the framework `TooManyRequests` app error
78
- * with `scope`, `retryAfterSeconds`, and `resetAt` details. The bucket key is
78
+ * with `scope`, `retryAfterSeconds`, and `resetAt` details, and the 429
79
+ * response carries a `Retry-After` header when the limiter reports a reset
80
+ * time. The bucket key is
79
81
  * never sent to clients; denials emit a `rateLimit.denied` instrumentation
80
82
  * event that carries the key for operators.
81
83
  *
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../../src/server/hooks/rate-limit.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAKzE,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,aAAa,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,KAAK,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AAE3D;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,sBAAsB,GACtB,uBAAuB,GACvB,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,MAAM,GAAG,SAAS,CAAC,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,GAAG;IACnC;;;;OAIG;IACH,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE;QACX,GAAG,EAAE,GAAG,CAAC;QACT,GAAG,EAAE,eAAe,CAAC;QACrB,KAAK,EAAE,cAAc,CAAC;KACvB,KAAK,MAAM,CAAC;IACb;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAChB,GAAG,EAAE,eAAe,CAAC;QACrB,KAAK,EAAE,mBAAmB,CAAC;KAC5B,KAAK,MAAM,CAAC;IACb;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AA8ID;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,SAAS,gBAAgB,EAC/D,OAAO,GAAE,gBAAgB,CAAC,GAAG,CAAM,GAClC,UAAU,CAAC,GAAG,EAAE,cAAc,CAAC,CA+EjC"}
1
+ {"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../../src/server/hooks/rate-limit.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAKzE,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,aAAa,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,KAAK,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AAE3D;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,sBAAsB,GACtB,uBAAuB,GACvB,CAAC,CAAC,GAAG,EAAE,eAAe,KAAK,MAAM,GAAG,SAAS,CAAC,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,GAAG;IACnC;;;;OAIG;IACH,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE;QACX,GAAG,EAAE,GAAG,CAAC;QACT,GAAG,EAAE,eAAe,CAAC;QACrB,KAAK,EAAE,cAAc,CAAC;KACvB,KAAK,MAAM,CAAC;IACb;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAChB,GAAG,EAAE,eAAe,CAAC;QACrB,KAAK,EAAE,mBAAmB,CAAC;KAC5B,KAAK,MAAM,CAAC;IACb;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AAiJD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,SAAS,gBAAgB,EAC/D,OAAO,GAAE,gBAAgB,CAAC,GAAG,CAAM,GAClC,UAAU,CAAC,GAAG,EAAE,cAAc,CAAC,CA+EjC"}
@@ -89,7 +89,9 @@ async function enforceRateLimit(ports, args) {
89
89
  scope: args.scope,
90
90
  retryAfterSeconds: result.retryAfterSeconds,
91
91
  resetAt: result.resetAt?.toISOString() ?? null,
92
- }, "Rate limit exceeded");
92
+ }, "Rate limit exceeded", result.retryAfterSeconds !== null
93
+ ? { headers: { "Retry-After": String(result.retryAfterSeconds) } }
94
+ : undefined);
93
95
  }
94
96
  /**
95
97
  * Create metadata-driven rate-limit hooks.
@@ -98,7 +100,9 @@ async function enforceRateLimit(ports, args) {
98
100
  * in `onRequest` before context creation; user-scoped limits run in
99
101
  * `beforeHandle` after route hooks have resolved identity and `ctx.actor` is
100
102
  * available. Exceeded limits throw the framework `TooManyRequests` app error
101
- * with `scope`, `retryAfterSeconds`, and `resetAt` details. The bucket key is
103
+ * with `scope`, `retryAfterSeconds`, and `resetAt` details, and the 429
104
+ * response carries a `Retry-After` header when the limiter reports a reset
105
+ * time. The bucket key is
102
106
  * never sent to clients; denials emit a `rateLimit.denied` instrumentation
103
107
  * event that carries the key for operators.
104
108
  *
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../../src/server/hooks/rate-limit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../../src/server/hooks/rate-limit.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { StandardSchemaV1 } from "@standard-schema/spec";
2
2
  import { type HttpContractConfig } from "../contracts/index.js";
3
3
  import type { AnyPorts } from "../ports/index.js";
4
- import type { InferProviderPorts, ServiceProvider } from "../providers/index.js";
4
+ import { type InferProviderPorts, type ServiceProvider } from "../providers/index.js";
5
5
  import type { ServerContextConfig, ServiceContextInputArgs } from "./context.js";
6
6
  import type { ContractLike, ResolveContract } from "./contract-like.js";
7
7
  import type { AddedCtxFromHooks, Handler, HttpRequestLike, HttpResponse, RouteHook, ServerCaughtErrorHook, ServerHook, ServerUnhandledErrorMapper } from "./http.js";
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAIL,KAAK,kBAAkB,EAIxB,MAAM,uBAAuB,CAAC;AAiB/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAQlD,OAAO,KAAK,EACV,kBAAkB,EAElB,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAEV,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGxE,OAAO,KAAK,EACV,iBAAiB,EACjB,OAAO,EAEP,eAAe,EACf,YAAY,EAIZ,SAAS,EACT,qBAAqB,EACrB,UAAU,EACV,0BAA0B,EAC3B,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAoBzE,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAM7B;;;;;GAKG;AACH,MAAM,MAAM,eAAe,CACzB,GAAG,EACH,KAAK,SAAS,YAAY,GAAG,YAAY,EACzC,KAAK,SAAS,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,SAAS,SAAS,CAClE,GAAG,EACH,MAAM,CACP,EAAE,IACD;IACF;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC;IAChB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IACd;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IACxE,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,CAClB,GAAG,EACH,KAAK,SAAS,YAAY,GAAG,YAAY,EACzC,KAAK,SAAS,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,SAAS,SAAS,CAClE,GAAG,EACH,MAAM,CACP,EAAE,IACD,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,kBAAkB,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAG/E,KAAK,WAAW,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAGtC,KAAK,aAAa,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;AAG1D,KAAK,mBAAmB,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAEnD,QAAA,MAAM,gBAAgB,wBAAwB,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,CACpB,GAAG,EACH,MAAM,SAAS,SAAS,WAAW,EAAE,GAAG,SAAS,WAAW,EAAE,IAC5D;IACF;;OAEG;IACH,IAAI,EAAE,OAAO,gBAAgB,CAAC;IAC9B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC;IAC1C;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,UAAU,CAAC,GAAG,IACf,mBAAmB,CAAC,GAAG,CAAC,GACxB,WAAW,GACX,UAAU,CAAC,GAAG,EAAE,SAAS,WAAW,EAAE,CAAC,CAAC;AAE5C,KAAK,oBAAoB,CAAC,GAAG,IACzB,aAAa,CAAC,GAAG,CAAC,GAClB,UAAU,CAAC,GAAG,EAAE,SAAS,WAAW,EAAE,CAAC,CAAC;AAE5C,KAAK,iBAAiB,CAAC,GAAG,IAAI;IAC5B,CACE,KAAK,CAAC,UAAU,SAAS,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,SAAS,EAAE,EACxE,KAAK,CAAC,CAAC,SAAS,SAAS,aAAa,CACpC,GAAG,GAAG,iBAAiB,CAAC,UAAU,CAAC,CACpC,EAAE,GAAG,SAAS,aAAa,CAAC,GAAG,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC,EAAE,EACnE,KAAK,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,MAAM,EAAE,CAAC,GAAG,oBAAoB,CAAC,GAAG,GAAG,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;KAC1E,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACvB,CACE,KAAK,CAAC,UAAU,SAAS,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,SAAS,EAAE,EACxE,KAAK,CAAC,CAAC,SAAS,SAAS,WAAW,EAAE,GAAG,SAAS,WAAW,EAAE,EAC/D,KAAK,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,MAAM,EAAE,CAAC,GAAG,oBAAoB,CAAC,GAAG,GAAG,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;KAC1E,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;CACxB,CAAC;AAEF,KAAK,eAAe,CAAC,KAAK,IACxB,KAAK,SAAS,UAAU,CAAC,MAAM,IAAI,EAAE,MAAM,MAAM,CAAC,GAC9C,MAAM,GACN,KAAK,SAAS,WAAW,GACvB,SAAS,CAAC,KAAK,CAAC,GAChB,SAAS,EAAE,CAAC;AAEpB,KAAK,kBAAkB,CAAC,MAAM,SAAS,SAAS,OAAO,EAAE,IACvD,MAAM,SAAS,MAAM,CAAC,QAAQ,CAAC,GAC3B,SAAS,WAAW,EAAE,GACtB,MAAM,SAAS,SAAS,CAAC,MAAM,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,GAClD,SAAS,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,GACjE,SAAS,EAAE,CAAC;AAEpB,KAAK,sBAAsB,CAEzB,MAAM,SAAS,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAC1C;IACF,QAAQ,EAAE,KAAK,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,QAAQ,CAE9D,GAAG,EACH,MAAM,KAAK,CACZ,GACG,eAAe,CAAC,KAAK,CAAC,GACtB,KAAK;CACV,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG;KAE3B,KAAK,SAAS,YAAY,EAC1B,EAAE,SAAS,cAAc,QACnB,KAAK,SAAS,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,uBAE9C,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,GAC5C,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC;KAEvC,KAAK,SAAS,YAAY,QACpB,KAAK,SAAS,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,uBAE9C,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,GACxC,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC;EAMtC;AAED;;;;;;GAMG;AACH,KAAK,kBAAkB,GAAG,eAAe,CACvC,OAAO,EAEP,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,EAC1B,QAAQ,EAER,GAAG,EAEH,GAAG,CACJ,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAC7B,GAAG,EACH,KAAK,SAAS,QAAQ,EACtB,YAAY,GAAG,IAAI,EAEnB,MAAM,SAAS,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAC5E,SAAS,SAAS,SAAS,kBAAkB,EAAE,GAAG,SAAS,EAAE,IAC3D;IACF;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;IACb;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACjD;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEzC;;;;;;;;;;OAUG;IACH,OAAO,EAAE,mBAAmB,CAC1B,GAAG,EACH,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAC,EACrC,YAAY,CACb,CAAC;IACF;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;IACjE;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,EAAE,4BAA4B,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC5D;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC7C;;OAEG;IACH,aAAa,CAAC,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC3C;;OAEG;IACH,iBAAiB,CAAC,EAAE,0BAA0B,CAAC,GAAG,CAAC,CAAC;CACrD,CAAC;AAEF,UAAU,YAAY,CAAC,GAAG,EAAE,CAAC,SAAS,kBAAkB;IACtD,MAAM,EAAE,CACN,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,KAChB,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;CACtD;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;CAC3C,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,GAAG;IAClC,MAAM,EAAE,CACN,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,kBAAkB,CAAC,KACjC,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAC7B,GAAG,EACH,KAAK,SAAS,QAAQ,GAAG,QAAQ,EACjC,YAAY,GAAG,IAAI;IAEnB;;OAEG;IACH,GAAG,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACrD;;OAEG;IACH,KAAK,EAAE,CAAC,KAAK,SAAS,YAAY,EAChC,YAAY,EAAE,KAAK,KAChB,YAAY,CAAC,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C;;;;;;;;;;;;;OAaG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,eAAe,CAAC,GAAG,CAAC,CAAC;IACvD;;;;;OAKG;IACH,oBAAoB,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7D;;;;;;;;;;;OAWG;IACH,oBAAoB,EAAE,CACpB,GAAG,IAAI,EAAE,uBAAuB,CAAC,YAAY,CAAC,KAC3C,OAAO,CAAC,GAAG,CAAC,CAAC;IAClB;;;;;;;;OAQG;IACH,iBAAiB,EAAE,CAAC,CAAC,EACnB,GAAG,IAAI,EAAE;QACP,GAAG,uBAAuB,CAAC,YAAY,CAAC;QACxC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;KACjC,KACE,OAAO,CAAC,CAAC,CAAC,CAAC;IAChB;;OAEG;IACH,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACzC;;OAEG;IACH,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;CACd;AAmoDD;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAChC,GAAG,EACH,KAAK,SAAS,QAAQ,EACtB,YAAY,GAAG,IAAI,EAEnB,MAAM,SAAS,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAC5E,SAAS,SAAS,SAAS,kBAAkB,EAAE,GAAG,SAAS,EAAE,EAE7D,OAAO,EAAE,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,GACxE,OAAO,CACR,cAAc,CAAC,GAAG,EAAE,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,CACzE,CA4eA;AA4BD;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EACH,KAAK,CAAC,CAAC,SACL,SAAS,oBAAoB,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,oBAAoB,CAAC,GAAG,CAAC,EAAE,EAC7E,MAAM,EAAE,CAAC,GAAG,oBAAoB,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;AACnE,wBAAgB,YAAY,CAC1B,GAAG,EACH,KAAK,CAAC,CAAC,SAAS,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE,EACvE,MAAM,EAAE,CAAC,GAAG,oBAAoB,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAuBnE;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAEjC,KAAK,CAAC,CAAC,SAAS,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAC7C,MAAM,EAAE,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAItC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,KAAK,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAChE;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAEH,KAAK,CAAC,CAAC,SAAS,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAC7E,KAAK,EAAE;IACP,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC;IAC1C,MAAM,EAAE,CAAC,GAAG,oBAAoB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;CAC1C,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}