@lovrozagar/oat 0.6.1 → 0.6.2

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.
@@ -1,5 +1,5 @@
1
1
  /** HTTP client with a full transcript, so every finding can cite the exchange that produced it. */
2
- import type { RateLimiter } from "./rate-limit.ts";
2
+ import { type RateLimiter } from "./rate-limit.ts";
3
3
  export interface Exchange {
4
4
  seq: number;
5
5
  method: string;
@@ -24,7 +24,7 @@ export interface Exchange {
24
24
  /** Rate-limit category this request was paced against, when one matched. */
25
25
  rateLimitCategory?: string;
26
26
  /** Where that category came from — a `spec.*` finding only ever cites a `"tag"` rejection. */
27
- rateLimitSource?: "tag" | "config";
27
+ rateLimitSource?: "tag" | "config" | "implicit";
28
28
  /** Whether the bucket had a token without waiting — oat believes it was under its own pace. */
29
29
  rateLimitHadRoom?: boolean;
30
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  /** HTTP client with a full transcript, so every finding can cite the exchange that produced it. */
2
+ import { headerValue, MAX_429_RETRIES, retryWaitMs } from "./rate-limit.js";
2
3
  export class Client {
3
4
  baseUrl;
4
5
  globalHeaders;
@@ -73,7 +74,10 @@ export class Client {
73
74
  * notion of time, a rate-limit category bounds throughput over time. The in-flight
74
75
  * slot is acquired first and released in the same finally as before — pacing sits
75
76
  * entirely inside that window and never changes what maxInFlight itself guarantees. */
76
- const rule = this.rateLimiter?.resolve(method.toUpperCase(), url.pathname);
77
+ const verb = method.toUpperCase();
78
+ const tagged = this.rateLimiter?.resolve(verb, url.pathname);
79
+ const implicit = tagged === undefined ? this.rateLimiter?.implicitRule(verb) : undefined;
80
+ const rule = tagged ?? implicit;
77
81
  await this.acquire();
78
82
  let rateLimitHadRoom;
79
83
  let started;
@@ -81,8 +85,10 @@ export class Client {
81
85
  let text;
82
86
  let at = 0;
83
87
  try {
84
- if (rule !== undefined)
85
- rateLimitHadRoom = await this.rateLimiter?.acquire(rule);
88
+ if (tagged !== undefined)
89
+ rateLimitHadRoom = await this.rateLimiter?.acquire(tagged);
90
+ else if (implicit !== undefined)
91
+ rateLimitHadRoom = await this.rateLimiter?.waitImplicit(verb);
86
92
  started = performance.now();
87
93
  response = await fetch(url, init);
88
94
  text = await response.text();
@@ -102,7 +108,6 @@ export class Client {
102
108
  }
103
109
  }
104
110
  this.seq += 1;
105
- const verb = method.toUpperCase();
106
111
  const responseHeaders = Object.fromEntries(response.headers.entries());
107
112
  const exchange = {
108
113
  at,
@@ -127,11 +132,25 @@ export class Client {
127
132
  };
128
133
  if (refresh !== undefined)
129
134
  await refresh(false);
130
- const first = await dispatch();
131
- if (first.status !== 401 || refresh === undefined)
132
- return first;
133
- await refresh(true);
134
- return dispatch();
135
+ let exchange = await dispatch();
136
+ if (exchange.status === 401 && refresh !== undefined) {
137
+ await refresh(true);
138
+ exchange = await dispatch();
139
+ }
140
+ /* 429 is reactive: the first one is never a seed/check failure. Tags pace proactively;
141
+ * this path honours the server even when the op has no x-rate-limit at all. */
142
+ for (let attempt = 0; exchange.status === 429 && attempt < MAX_429_RETRIES; attempt++) {
143
+ const waitMs = retryWaitMs(headerValue(exchange.responseHeaders, "retry-after"), attempt);
144
+ this.rateLimiter?.noteBackoff(method.toUpperCase(), url.pathname, waitMs);
145
+ if (waitMs > 0)
146
+ await new Promise((resolve) => setTimeout(resolve, waitMs));
147
+ exchange = await dispatch();
148
+ if (exchange.status === 401 && refresh !== undefined) {
149
+ await refresh(true);
150
+ exchange = await dispatch();
151
+ }
152
+ }
153
+ return exchange;
135
154
  }
136
155
  get(path, options = {}) {
137
156
  return this.request("GET", path, options);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"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"}
@@ -15,8 +15,10 @@ export interface CompiledRateLimitRule {
15
15
  category: string;
16
16
  rps: number;
17
17
  /** A 429 against a tag-sourced rule is a claim the document made; against config, it is the
18
- * operator's own guess about the environment — only the former is ever a finding. */
19
- source: "tag" | "config";
18
+ * operator's own guess about the environment — only the former is ever a finding.
19
+ * `"implicit"` is the reactive untagged-write bucket: it exists only after a 429, never as a
20
+ * documented claim. */
21
+ source: "tag" | "config" | "implicit";
20
22
  }
21
23
  /**
22
24
  * Builds the ordered rulebook `Client` consults on every request.
@@ -28,6 +30,21 @@ export interface CompiledRateLimitRule {
28
30
  * ever adds pacing where a rate is knowable, never removes coverage that existed before it.
29
31
  */
30
32
  export declare function buildRateLimitRules(model: SpecModel, configRules: readonly RateLimitSpec[] | undefined): CompiledRateLimitRule[];
33
+ /** Writes that never declared `x-rate-limit` still share a real backend budget (JWT writes, etc.). */
34
+ export declare const UNTAGGED_WRITE_CATEGORY = "untagged-write";
35
+ export declare const UNTAGGED_CATEGORY = "untagged";
36
+ /** Extra attempts after the first 429. The first 429 is never a seed/check failure by itself. */
37
+ export declare const MAX_429_RETRIES = 5;
38
+ export declare const RETRY_BACKOFF_INITIAL_MS = 1000;
39
+ export declare const RETRY_BACKOFF_CAP_MS = 30000;
40
+ /**
41
+ * `Retry-After` as a wait in ms. Delta-seconds or HTTP-date; anything unparseable is `null`
42
+ * so the caller can fall back to exponential backoff. Capped so a tester cannot hang for an hour.
43
+ */
44
+ export declare function parseRetryAfter(value: string | undefined, now?: number): number | null;
45
+ /** Wait before retry `attempt` (0-based) of a 429. Header wins; otherwise 1s, 2s, 4s… capped. */
46
+ export declare function retryWaitMs(retryAfterHeader: string | undefined, attempt: number, now?: number): number;
47
+ export declare function headerValue(headers: Record<string, string>, name: string): string | undefined;
31
48
  /**
32
49
  * A token bucket with a queue: concurrent requests against the same category are admitted one at
33
50
  * a time, each computing its wait from the bucket's current state rather than racing on it.
@@ -37,8 +54,14 @@ export declare class RateBucket {
37
54
  private readonly rps;
38
55
  private tokens;
39
56
  private last;
57
+ private cooldownUntil;
40
58
  private queue;
41
59
  constructor(rps: number);
60
+ /**
61
+ * A 429 said this budget is exhausted. Hold the next acquire for `waitMs`, then admit exactly
62
+ * one request — a full burst refill would immediately re-trip the limit we just hit.
63
+ */
64
+ penalize(waitMs: number): void;
42
65
  /** Resolves once a token is consumed. Returns `false` when the caller had to wait for it. */
43
66
  acquire(): Promise<boolean>;
44
67
  }
@@ -46,8 +69,23 @@ export declare class RateBucket {
46
69
  export declare class RateLimiter {
47
70
  private readonly rules;
48
71
  private readonly buckets;
72
+ /** Cooldown-only: after an untagged 429, later untagged writes wait this out, then run free. */
73
+ private readonly implicitUntil;
49
74
  constructor(rules: readonly CompiledRateLimitRule[]);
50
75
  resolve(method: string, pathname: string): CompiledRateLimitRule | undefined;
76
+ /**
77
+ * After a 429 on an untagged route, later untagged writes share this cooldown so they do not
78
+ * immediately re-trip. No ongoing rps — we do not know the undocumented rate.
79
+ */
80
+ implicitRule(method: string): CompiledRateLimitRule | undefined;
81
+ /**
82
+ * Feed a 429 wait into the matching bucket, or open the implicit untagged cooldown when the
83
+ * operation never declared a rate. Tags stay the proactive path; this is the reactive one.
84
+ */
85
+ noteBackoff(method: string, pathname: string, waitMs: number): CompiledRateLimitRule;
86
+ /** Wait out an implicit 429 cooldown. Returns `false` when the caller had to wait. */
87
+ waitImplicit(method: string): Promise<boolean>;
51
88
  acquire(rule: CompiledRateLimitRule): Promise<boolean>;
89
+ private bucketFor;
52
90
  }
53
91
  //# sourceMappingURL=rate-limit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../src/runtime/rate-limit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,KAAK,EAAkB,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEjE,MAAM,WAAW,qBAAqB;IACrC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAA;IACnD,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX;yFACqF;IACrF,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAA;CACxB;AA0DD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAClC,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,SAAS,aAAa,EAAE,GAAG,SAAS,GAC/C,qBAAqB,EAAE,CAuCzB;AAED;;;;GAIG;AACH,qBAAa,UAAU;IAKV,OAAO,CAAC,QAAQ,CAAC,GAAG;IAJhC,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,KAAK,CAAmC;gBAEnB,GAAG,EAAE,MAAM;IAIxC,6FAA6F;IACvF,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;CAoBjC;AAED,qGAAqG;AACrG,qBAAa,WAAW;IAGX,OAAO,CAAC,QAAQ,CAAC,KAAK;IAFlC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;gBAE3B,KAAK,EAAE,SAAS,qBAAqB,EAAE;IAEpE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAItE,OAAO,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC;CAQ5D"}
1
+ {"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../src/runtime/rate-limit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,KAAK,EAAkB,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEjE,MAAM,WAAW,qBAAqB;IACrC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAA;IACnD,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX;;;2BAGuB;IACvB,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAA;CACrC;AA0DD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAClC,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,SAAS,aAAa,EAAE,GAAG,SAAS,GAC/C,qBAAqB,EAAE,CAuCzB;AAED,sGAAsG;AACtG,eAAO,MAAM,uBAAuB,mBAAmB,CAAA;AACvD,eAAO,MAAM,iBAAiB,aAAa,CAAA;AAE3C,iGAAiG;AACjG,eAAO,MAAM,eAAe,IAAI,CAAA;AAChC,eAAO,MAAM,wBAAwB,OAAQ,CAAA;AAC7C,eAAO,MAAM,oBAAoB,QAAS,CAAA;AAG1C;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,SAAa,GAAG,MAAM,GAAG,IAAI,CAU1F;AAED,iGAAiG;AACjG,wBAAgB,WAAW,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,MAAM,CAK3G;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAM7F;AAMD;;;;GAIG;AACH,qBAAa,UAAU;IAMV,OAAO,CAAC,QAAQ,CAAC,GAAG;IALhC,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,KAAK,CAAmC;gBAEnB,GAAG,EAAE,MAAM;IAIxC;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAO9B,6FAA6F;IACvF,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;CA0BjC;AAED,qGAAqG;AACrG,qBAAa,WAAW;IAKX,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJlC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,gGAAgG;IAChG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;gBAE7B,KAAK,EAAE,SAAS,qBAAqB,EAAE;IAEpE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAI5E;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAW/D;;;OAGG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,qBAAqB;IAiBpF,sFAAsF;IAChF,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ9C,OAAO,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5D,OAAO,CAAC,SAAS;CAQjB"}
@@ -107,6 +107,51 @@ export function buildRateLimitRules(model, configRules) {
107
107
  }
108
108
  return rules;
109
109
  }
110
+ /** Writes that never declared `x-rate-limit` still share a real backend budget (JWT writes, etc.). */
111
+ export const UNTAGGED_WRITE_CATEGORY = "untagged-write";
112
+ export const UNTAGGED_CATEGORY = "untagged";
113
+ /** Extra attempts after the first 429. The first 429 is never a seed/check failure by itself. */
114
+ export const MAX_429_RETRIES = 5;
115
+ export const RETRY_BACKOFF_INITIAL_MS = 1_000;
116
+ export const RETRY_BACKOFF_CAP_MS = 30_000;
117
+ const WRITE_METHODS = new Set(["POST", "PUT", "PATCH", "DELETE"]);
118
+ /**
119
+ * `Retry-After` as a wait in ms. Delta-seconds or HTTP-date; anything unparseable is `null`
120
+ * so the caller can fall back to exponential backoff. Capped so a tester cannot hang for an hour.
121
+ */
122
+ export function parseRetryAfter(value, now = Date.now()) {
123
+ if (value === undefined)
124
+ return null;
125
+ const trimmed = value.trim();
126
+ if (trimmed === "")
127
+ return null;
128
+ if (/^\d+(?:\.\d+)?$/.test(trimmed)) {
129
+ return Math.min(RETRY_BACKOFF_CAP_MS, Math.max(0, Number(trimmed) * 1000));
130
+ }
131
+ const date = Date.parse(trimmed);
132
+ if (Number.isNaN(date))
133
+ return null;
134
+ return Math.min(RETRY_BACKOFF_CAP_MS, Math.max(0, date - now));
135
+ }
136
+ /** Wait before retry `attempt` (0-based) of a 429. Header wins; otherwise 1s, 2s, 4s… capped. */
137
+ export function retryWaitMs(retryAfterHeader, attempt, now = Date.now()) {
138
+ const parsed = parseRetryAfter(retryAfterHeader, now);
139
+ if (parsed !== null)
140
+ return parsed;
141
+ const exp = RETRY_BACKOFF_INITIAL_MS * 2 ** Math.max(0, attempt);
142
+ return Math.min(RETRY_BACKOFF_CAP_MS, exp);
143
+ }
144
+ export function headerValue(headers, name) {
145
+ const want = name.toLowerCase();
146
+ for (const [key, value] of Object.entries(headers)) {
147
+ if (key.toLowerCase() === want)
148
+ return value;
149
+ }
150
+ return undefined;
151
+ }
152
+ function implicitCategory(method) {
153
+ return WRITE_METHODS.has(method.toUpperCase()) ? UNTAGGED_WRITE_CATEGORY : UNTAGGED_CATEGORY;
154
+ }
110
155
  /**
111
156
  * A token bucket with a queue: concurrent requests against the same category are admitted one at
112
157
  * a time, each computing its wait from the bucket's current state rather than racing on it.
@@ -116,21 +161,37 @@ export class RateBucket {
116
161
  rps;
117
162
  tokens;
118
163
  last = performance.now();
164
+ cooldownUntil = 0;
119
165
  queue = Promise.resolve();
120
166
  constructor(rps) {
121
167
  this.rps = rps;
122
168
  this.tokens = rps;
123
169
  }
170
+ /**
171
+ * A 429 said this budget is exhausted. Hold the next acquire for `waitMs`, then admit exactly
172
+ * one request — a full burst refill would immediately re-trip the limit we just hit.
173
+ */
174
+ penalize(waitMs) {
175
+ const until = performance.now() + Math.max(0, waitMs);
176
+ this.cooldownUntil = Math.max(this.cooldownUntil, until);
177
+ this.tokens = 1;
178
+ this.last = this.cooldownUntil;
179
+ }
124
180
  /** Resolves once a token is consumed. Returns `false` when the caller had to wait for it. */
125
181
  async acquire() {
126
182
  let hadRoom = false;
127
183
  const previous = this.queue;
128
184
  this.queue = previous.then(async () => {
129
185
  const now = performance.now();
130
- this.tokens = Math.min(this.rps, this.tokens + ((now - this.last) / 1000) * this.rps);
131
- this.last = now;
186
+ if (now < this.cooldownUntil) {
187
+ await new Promise((resolve) => setTimeout(resolve, this.cooldownUntil - now));
188
+ }
189
+ const after = performance.now();
190
+ this.tokens = Math.min(this.rps, this.tokens + ((after - this.last) / 1000) * this.rps);
191
+ this.last = after;
132
192
  if (this.tokens >= 1) {
133
- hadRoom = true;
193
+ /* A cooldown wait is not room — oat did not believe it was under its own pace. */
194
+ hadRoom = now >= this.cooldownUntil;
134
195
  this.tokens -= 1;
135
196
  return;
136
197
  }
@@ -138,6 +199,7 @@ export class RateBucket {
138
199
  await new Promise((resolve) => setTimeout(resolve, waitMs));
139
200
  this.tokens = 0;
140
201
  this.last = performance.now();
202
+ hadRoom = false;
141
203
  });
142
204
  await this.queue;
143
205
  return hadRoom;
@@ -147,19 +209,68 @@ export class RateBucket {
147
209
  export class RateLimiter {
148
210
  rules;
149
211
  buckets = new Map();
212
+ /** Cooldown-only: after an untagged 429, later untagged writes wait this out, then run free. */
213
+ implicitUntil = new Map();
150
214
  constructor(rules) {
151
215
  this.rules = rules;
152
216
  }
153
217
  resolve(method, pathname) {
154
218
  return this.rules.find((rule) => rule.test(method, pathname));
155
219
  }
220
+ /**
221
+ * After a 429 on an untagged route, later untagged writes share this cooldown so they do not
222
+ * immediately re-trip. No ongoing rps — we do not know the undocumented rate.
223
+ */
224
+ implicitRule(method) {
225
+ const category = implicitCategory(method);
226
+ if (!this.implicitUntil.has(category))
227
+ return undefined;
228
+ return {
229
+ category,
230
+ rps: 0,
231
+ source: "implicit",
232
+ test: (m) => implicitCategory(m) === category,
233
+ };
234
+ }
235
+ /**
236
+ * Feed a 429 wait into the matching bucket, or open the implicit untagged cooldown when the
237
+ * operation never declared a rate. Tags stay the proactive path; this is the reactive one.
238
+ */
239
+ noteBackoff(method, pathname, waitMs) {
240
+ const tagged = this.resolve(method, pathname);
241
+ if (tagged !== undefined) {
242
+ this.bucketFor(tagged).penalize(waitMs);
243
+ return tagged;
244
+ }
245
+ const category = implicitCategory(method);
246
+ const until = performance.now() + Math.max(0, waitMs);
247
+ this.implicitUntil.set(category, Math.max(this.implicitUntil.get(category) ?? 0, until));
248
+ return {
249
+ category,
250
+ rps: 0,
251
+ source: "implicit",
252
+ test: (m) => implicitCategory(m) === category,
253
+ };
254
+ }
255
+ /** Wait out an implicit 429 cooldown. Returns `false` when the caller had to wait. */
256
+ async waitImplicit(method) {
257
+ const until = this.implicitUntil.get(implicitCategory(method)) ?? 0;
258
+ const now = performance.now();
259
+ if (now >= until)
260
+ return true;
261
+ await new Promise((resolve) => setTimeout(resolve, until - now));
262
+ return false;
263
+ }
156
264
  async acquire(rule) {
265
+ return this.bucketFor(rule).acquire();
266
+ }
267
+ bucketFor(rule) {
157
268
  let bucket = this.buckets.get(rule.category);
158
269
  if (bucket === undefined) {
159
270
  bucket = new RateBucket(rule.rps);
160
271
  this.buckets.set(rule.category, bucket);
161
272
  }
162
- return bucket.acquire();
273
+ return bucket;
163
274
  }
164
275
  }
165
276
  //# sourceMappingURL=rate-limit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../src/runtime/rate-limit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../src/runtime/rate-limit.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/runtime/run.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAqD,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEpG,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGvG,OAAO,EAAE,MAAM,EAAiB,MAAM,aAAa,CAAA;AACnD,OAAO,KAAK,EAAE,eAAe,EAAkC,MAAM,eAAe,CAAA;AACpF,OAAO,EAAE,KAAK,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AAIhF,OAAO,EAAU,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AAe3D,MAAM,MAAM,aAAa,GAAG,SAAS,CAAA;AAErC,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,aAAa,EAAE,CAAA;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,iGAAiG;IACjG,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACtC,8FAA8F;IAC9F,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iFAAiF;IACjF,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4FAA4F;IAC5F,UAAU,CAAC,EAAE,aAAa,EAAE,CAAA;IAC5B,+FAA+F;IAC/F,UAAU,CAAC,EAAE,eAAe,CAAA;CAC5B;AAED,MAAM,WAAW,SAAS;IACzB,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,KAAK,EAAE,SAAS,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,gGAAgG;IAChG,aAAa,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACtE;;;;;;;OAOG;IACH,gBAAgB,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC3E,0EAA0E;IAC1E,YAAY,EAAE,YAAY,EAAE,CAAA;IAC5B,oGAAoG;IACpG,OAAO,EAAE,MAAM,CAAA;IACf,mGAAmG;IACnG,iBAAiB,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACjF,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAA;CAC/B;AA0OD,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAknBjE"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/runtime/run.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAqD,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEpG,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGvG,OAAO,EAAE,MAAM,EAAiB,MAAM,aAAa,CAAA;AACnD,OAAO,KAAK,EAAE,eAAe,EAAkC,MAAM,eAAe,CAAA;AACpF,OAAO,EAAE,KAAK,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AAIhF,OAAO,EAAU,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AAgB3D,MAAM,MAAM,aAAa,GAAG,SAAS,CAAA;AAErC,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,aAAa,EAAE,CAAA;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,iGAAiG;IACjG,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACtC,8FAA8F;IAC9F,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iFAAiF;IACjF,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4FAA4F;IAC5F,UAAU,CAAC,EAAE,aAAa,EAAE,CAAA;IAC5B,+FAA+F;IAC/F,UAAU,CAAC,EAAE,eAAe,CAAA;CAC5B;AAED,MAAM,WAAW,SAAS;IACzB,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,KAAK,EAAE,SAAS,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,gGAAgG;IAChG,aAAa,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACtE;;;;;;;OAOG;IACH,gBAAgB,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC3E,0EAA0E;IAC1E,YAAY,EAAE,YAAY,EAAE,CAAA;IAC5B,oGAAoG;IACpG,OAAO,EAAE,MAAM,CAAA;IACf,mGAAmG;IACnG,iBAAiB,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACjF,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAA;CAC/B;AA8ND,wBAAsB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAyoBjE"}
@@ -17,7 +17,7 @@ import { buildRateLimitRules, RateLimiter } from "./rate-limit.js";
17
17
  import { Ledger } from "./teardown.js";
18
18
  import { SchemaValidator } from "./validate.js";
19
19
  import { isOverflowError, overflowFrom } from "./fixture.js";
20
- import { SeedError, fillPath, probeCreateFixtures, resolveScope, seedCohort, } from "./world.js";
20
+ import { SeedError, fillPath, listExisting, probeCreateFixtures, resolveScope, seedCohort, } from "./world.js";
21
21
  function readPointer(body, pointer) {
22
22
  const path = pointer
23
23
  .replace(/^\$\.?/, "")
@@ -157,22 +157,8 @@ async function readExisting(listOp, client, headers, roots) {
157
157
  if (scope[param] === undefined)
158
158
  return { records: [], scope };
159
159
  }
160
- try {
161
- const exchange = await client.get(fillPath(listOp.path, scope), { headers, query: { limit: 50 } });
162
- if (exchange.status >= 300)
163
- return { records: [], scope };
164
- const body = exchange.responseBody;
165
- const key = listOp.collection?.key ?? null;
166
- const items = Array.isArray(body)
167
- ? body
168
- : body !== null && typeof body === "object" && key !== null
169
- ? (body[key] ?? [])
170
- : [];
171
- return { records: Array.isArray(items) ? items : [], scope };
172
- }
173
- catch {
174
- return { records: [], scope };
175
- }
160
+ const records = await listExisting(listOp, client, headers, scope);
161
+ return { records, scope };
176
162
  }
177
163
  /** operationIds named in any principal `auth.steps` — those creates already ran during login. */
178
164
  function authStepOperationIds(principals) {
@@ -406,7 +392,26 @@ export async function run(options) {
406
392
  seed,
407
393
  uploads,
408
394
  }, scope);
409
- if (cohort.featureGate !== null) {
395
+ if (cohort.adopted === true) {
396
+ /* Plan limit after an effect already created the row: keep the id so children
397
+ * (row after extract→table) can seed, but do not assert write-path oracles
398
+ * against a body oat never submitted. */
399
+ findings.gap("world.seed", entity.name, `seeding "${entity.name}" hit a plan limit; using an existing same-tenant record`, `${createOp.operationId} returned a plan-limit refusal and the list already ` +
400
+ "had a record — likely an earlier x-effects create. Write-path checks stand " +
401
+ "down rather than treat payment_required as a backend defect.");
402
+ records = cohort.records;
403
+ degraded = true;
404
+ for (const ancestor of scope.created) {
405
+ ledger.record(ancestor.entity, ancestor.id, scope.values);
406
+ }
407
+ for (const record of records) {
408
+ const id = record[entity.identity ?? "id"];
409
+ if (typeof id === "string" || typeof id === "number") {
410
+ ledger.record(entity.name, String(id), scope.values);
411
+ }
412
+ }
413
+ }
414
+ else if (cohort.featureGate !== null) {
410
415
  /* Same degradation a profile-excluded create takes: the tag said this
411
416
  * principal cannot create the row, so a correct 403 is coverage, not a
412
417
  * seed defect. The 403 body still has to match the documented schema. */