@workglow/indexeddb 0.3.1 → 0.3.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.
@@ -4,22 +4,17 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import type { IJobStore, JobRecord, JobStatus, JobStorageFormat, MessageId, SendOptions } from "@workglow/job-queue";
7
- import type { PendingIndexedDbWrite } from "./IndexedDbMessageQueue";
8
7
  import type { IndexedDbQueueStorage } from "./IndexedDbQueueStorage";
9
8
  export declare class IndexedDbJobStore<Input, Output> implements IJobStore<Input, Output> {
10
9
  /** @internal — shared with the paired message queue */
11
10
  readonly core: IndexedDbQueueStorage<Input, Output>;
12
- /** @internal — shared transient buffer for saveResult/saveError. */
13
- private readonly pending;
14
- constructor(core: IndexedDbQueueStorage<Input, Output>, pending: Map<unknown, PendingIndexedDbWrite<Output>>);
11
+ constructor(core: IndexedDbQueueStorage<Input, Output>);
15
12
  get(id: MessageId): Promise<JobRecord<Input, Output> | undefined>;
16
13
  peek(status?: JobStatus, num?: number): Promise<readonly JobRecord<Input, Output>[]>;
17
14
  size(status?: JobStatus): Promise<number>;
18
15
  getByRunId(runId: string): Promise<readonly JobRecord<Input, Output>[]>;
19
16
  outputForInput(input: Input): Promise<Output | null>;
20
17
  saveProgress(id: MessageId, progress: number, message: string, details: Record<string, any> | null): Promise<void>;
21
- saveResult(id: MessageId, output: Output): Promise<void>;
22
- saveError(id: MessageId, error: string, errorCode: string | null, abortRequested: boolean): Promise<void>;
23
18
  deleteByStatusAndAge(status: JobStatus, olderThanMs: number): Promise<void>;
24
19
  delete(id: MessageId): Promise<void>;
25
20
  deleteAll(): Promise<void>;
@@ -34,6 +29,7 @@ export declare class IndexedDbJobStore<Input, Output> implements IJobStore<Input
34
29
  readonly errorCode?: string | null;
35
30
  readonly abortRequested?: boolean;
36
31
  }): Promise<void>;
32
+ markDisabled(id: MessageId): Promise<void>;
37
33
  markEnqueueDeferred(id: MessageId, opts: {
38
34
  readonly visible_at: Date;
39
35
  readonly errorCode: string;
@@ -1 +1 @@
1
- {"version":3,"file":"IndexedDbJobStore.d.ts","sourceRoot":"","sources":["../../src/job-queue/IndexedDbJobStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IndexedDbJobStore.d.ts","sourceRoot":"","sources":["../../src/job-queue/IndexedDbJobStore.ts"],"names":[],"mappings":"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"}
@@ -5,24 +5,11 @@
5
5
  */
6
6
  import type { IClaim, IMessageQueue, JobStorageFormat, MessageId, QueueChangePayload, QueueStorageScope, QueueSubscribeOptions, SendOptions } from "@workglow/job-queue";
7
7
  import { IndexedDbQueueStorage } from "./IndexedDbQueueStorage";
8
- /**
9
- * Per-id buffer that lets {@link IJobStore.saveResult}/{@link IJobStore.saveError}
10
- * stage output/error until the terminal claim.ack()/fail() persists them in
11
- * a single complete() call (avoids double-bumping `attempts`).
12
- */
13
- export type PendingIndexedDbWrite<Output> = {
14
- output?: Output | null;
15
- error?: string | null;
16
- errorCode?: string | null;
17
- abortRequested?: boolean;
18
- };
19
8
  export declare class IndexedDbMessageQueue<Input, Output> implements IMessageQueue<JobStorageFormat<Input, Output>> {
20
9
  readonly scope: QueueStorageScope;
21
10
  /** @internal — shared with the paired job store */
22
11
  readonly core: IndexedDbQueueStorage<Input, Output>;
23
- /** @internal — shared transient buffer for saveResult/saveError. */
24
- private readonly pending;
25
- constructor(core: IndexedDbQueueStorage<Input, Output>, pending: Map<unknown, PendingIndexedDbWrite<Output>>);
12
+ constructor(core: IndexedDbQueueStorage<Input, Output>);
26
13
  send(body: JobStorageFormat<Input, Output>, opts?: SendOptions): Promise<MessageId>;
27
14
  sendBatch(bodies: readonly JobStorageFormat<Input, Output>[], opts?: SendOptions): Promise<readonly MessageId[]>;
28
15
  receive(opts: {
@@ -1 +1 @@
1
- {"version":3,"file":"IndexedDbMessageQueue.d.ts","sourceRoot":"","sources":["../../src/job-queue/IndexedDbMessageQueue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,CAAC,MAAM,IAAI;IAC1C,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAqGF,qBAAa,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAE,YAAW,aAAa,CACxE,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAChC;IACC,SAAgB,KAAK,EAAE,iBAAiB,CAAa;IAErD,mDAAmD;IACnD,SAAgB,IAAI,EAAE,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAE3D,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8C;IAEtE,YACE,IAAI,EAAE,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,EAC1C,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC,EAIrD;IAEK,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAExF;IAEK,SAAS,CACb,MAAM,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAClD,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAM/B;IAEK,OAAO,CAAC,IAAI,EAAE;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,SAAS,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAkB9D;IAEK,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/C;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7B;IAED,aAAa,IAAI,aAAa,CAAC,OAAO,CAAC,CAEtC;IAED,kBAAkB,CAChB,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,IAAI,EACxD,OAAO,CAAC,EAAE,qBAAqB,GAC9B,MAAM,IAAI,CAEZ;CACF"}
1
+ {"version":3,"file":"IndexedDbMessageQueue.d.ts","sourceRoot":"","sources":["../../src/job-queue/IndexedDbMessageQueue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AA8EhE,qBAAa,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAE,YAAW,aAAa,CACxE,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAChC;IACC,SAAgB,KAAK,EAAE,iBAAiB,CAAa;IAErD,mDAAmD;IACnD,SAAgB,IAAI,EAAE,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAE3D,YAAY,IAAI,EAAE,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,EAErD;IAEK,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAExF;IAEK,SAAS,CACb,MAAM,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAClD,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAM/B;IAEK,OAAO,CAAC,IAAI,EAAE;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,SAAS,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAW9D;IAEK,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7B;IAED,aAAa,IAAI,aAAa,CAAC,OAAO,CAAC,CAEtC;IAED,kBAAkB,CAChB,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,IAAI,EACxD,OAAO,CAAC,EAAE,qBAAqB,GAC9B,MAAM,IAAI,CAEZ;CACF"}
@@ -145,6 +145,14 @@ export declare class IndexedDbQueueStorage<Input, Output> implements IQueueStora
145
145
  progress_details?: Record<string, any> | null;
146
146
  visible_at?: string | null;
147
147
  }): Promise<void>;
148
+ /**
149
+ * Atomically writes status=DISABLED, releases the lease, clears progress
150
+ * fields, and stamps completed_at (preserving an existing value). IDB
151
+ * is single-threaded per-origin within a JS context, so the get + finalize
152
+ * pair is observably atomic — no other transaction can interleave between
153
+ * them inside this microtask chain.
154
+ */
155
+ markDisabled(id: unknown): Promise<void>;
148
156
  /**
149
157
  * Deletes all jobs from the queue.
150
158
  */
@@ -1 +1 @@
1
- {"version":3,"file":"IndexedDbQueueStorage.d.ts","sourceRoot":"","sources":["../../src/job-queue/IndexedDbQueueStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IndexedDbQueueStorage.d.ts","sourceRoot":"","sources":["../../src/job-queue/IndexedDbQueueStorage.ts"],"names":[],"mappings":"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"}
@@ -287,7 +287,7 @@ function indexedDbQueueMigrations(tableName, prefixes) {
287
287
  if (!db.objectStoreNames.contains(tableName)) {
288
288
  const store = db.createObjectStore(tableName, { keyPath: "id" });
289
289
  store.createIndex("queue_status", k(["queue", "status"]), { unique: false });
290
- store.createIndex("queue_status_run_after", k(["queue", "status", "run_after"]), {
290
+ store.createIndex("queue_status_visible_at", k(["queue", "status", "visible_at"]), {
291
291
  unique: false
292
292
  });
293
293
  store.createIndex("queue_job_run_id", k(["queue", "job_run_id"]), { unique: false });
@@ -296,62 +296,6 @@ function indexedDbQueueMigrations(tableName, prefixes) {
296
296
  });
297
297
  }
298
298
  }
299
- },
300
- {
301
- component,
302
- version: 2,
303
- description: "Rename queue_status_run_after → queue_status_visible_at; backfill five legacy field renames (run_after → visible_at, run_attempts → attempts, last_ran_at → last_attempted_at, max_retries → max_attempts, worker_id → lease_owner)",
304
- up({ tx }) {
305
- const store = tx.objectStore(tableName);
306
- const indexNames = Array.from(store.indexNames);
307
- if (indexNames.includes("queue_status_run_after")) {
308
- store.deleteIndex("queue_status_run_after");
309
- }
310
- const cursorReq = store.openCursor();
311
- cursorReq.onsuccess = () => {
312
- const cursor = cursorReq.result;
313
- if (!cursor) {
314
- if (!Array.from(store.indexNames).includes("queue_status_visible_at")) {
315
- store.createIndex("queue_status_visible_at", k(["queue", "status", "visible_at"]), {
316
- unique: false
317
- });
318
- }
319
- return;
320
- }
321
- const row = cursor.value;
322
- if (row) {
323
- let dirty = false;
324
- if (row.run_after !== undefined && row.visible_at === undefined) {
325
- row.visible_at = row.run_after;
326
- delete row.run_after;
327
- dirty = true;
328
- }
329
- if (row.run_attempts !== undefined && row.attempts === undefined) {
330
- row.attempts = row.run_attempts;
331
- delete row.run_attempts;
332
- dirty = true;
333
- }
334
- if (row.last_ran_at !== undefined && row.last_attempted_at === undefined) {
335
- row.last_attempted_at = row.last_ran_at;
336
- delete row.last_ran_at;
337
- dirty = true;
338
- }
339
- if (row.max_retries !== undefined && row.max_attempts === undefined) {
340
- row.max_attempts = row.max_retries;
341
- delete row.max_retries;
342
- dirty = true;
343
- }
344
- if (row.worker_id !== undefined && row.lease_owner === undefined) {
345
- row.lease_owner = row.worker_id;
346
- delete row.worker_id;
347
- dirty = true;
348
- }
349
- if (dirty)
350
- cursor.update(row);
351
- }
352
- cursor.continue();
353
- };
354
- }
355
299
  }
356
300
  ];
357
301
  }
@@ -756,6 +700,20 @@ class IndexedDbQueueStorage {
756
700
  updated.visible_at = fields.visible_at ?? null;
757
701
  await this.put(updated);
758
702
  }
703
+ async markDisabled(id) {
704
+ const existing = await this.get(id);
705
+ if (!existing)
706
+ return;
707
+ const completedAt = existing.completed_at ?? new Date().toISOString();
708
+ await this.finalize(id, {
709
+ status: JobStatus.DISABLED,
710
+ completed_at: completedAt,
711
+ lease_owner: null,
712
+ progress: 0,
713
+ progress_message: "",
714
+ progress_details: null
715
+ });
716
+ }
759
717
  async deleteAll() {
760
718
  const db = await this.getDb();
761
719
  const tx = db.transaction(this.tableName, "readwrite");
@@ -1040,24 +998,20 @@ class IndexedDbQueueStorage {
1040
998
  // src/job-queue/IndexedDbMessageQueue.ts
1041
999
  class IndexedDbClaim {
1042
1000
  core;
1043
- pending;
1044
1001
  id;
1045
1002
  body;
1046
1003
  attempts;
1047
1004
  workerId;
1048
- constructor(core, pending, id, body, attempts, workerId) {
1005
+ constructor(core, id, body, attempts, workerId) {
1049
1006
  this.core = core;
1050
- this.pending = pending;
1051
1007
  this.id = id;
1052
1008
  this.body = body;
1053
1009
  this.attempts = attempts;
1054
1010
  this.workerId = workerId;
1055
1011
  }
1056
1012
  async ack(result) {
1057
- const buf = this.pending.get(this.id);
1058
- this.pending.delete(this.id);
1059
1013
  const current = await this.core.get(this.id) ?? this.body;
1060
- const output = result !== undefined ? result : buf?.output !== undefined ? buf.output : current.output ?? null;
1014
+ const output = result !== undefined ? result : current.output ?? null;
1061
1015
  await this.core.finalize(this.id, {
1062
1016
  output,
1063
1017
  error: null,
@@ -1067,7 +1021,6 @@ class IndexedDbClaim {
1067
1021
  });
1068
1022
  }
1069
1023
  async retry(opts) {
1070
- this.pending.delete(this.id);
1071
1024
  const delay = opts?.delaySeconds ?? 0;
1072
1025
  const current = await this.core.get(this.id) ?? this.body;
1073
1026
  await this.core.complete({
@@ -1083,12 +1036,10 @@ class IndexedDbClaim {
1083
1036
  }
1084
1037
  async fail(opts) {
1085
1038
  opts?.permanent;
1086
- const buf = this.pending.get(this.id);
1087
- this.pending.delete(this.id);
1088
1039
  const current = await this.core.get(this.id) ?? this.body;
1089
- const error = opts?.error !== undefined ? opts.error : buf?.error !== undefined ? buf.error : current.error ?? null;
1090
- const errorCode = opts?.errorCode !== undefined ? opts.errorCode : buf?.errorCode !== undefined ? buf.errorCode : current.error_code ?? null;
1091
- const abortRequested = opts?.abortRequested !== undefined ? opts.abortRequested : buf?.abortRequested ?? false;
1040
+ const error = opts?.error !== undefined ? opts.error : current.error ?? null;
1041
+ const errorCode = opts?.errorCode !== undefined ? opts.errorCode : current.error_code ?? null;
1042
+ const abortRequested = opts?.abortRequested === true;
1092
1043
  await this.core.finalize(this.id, {
1093
1044
  error,
1094
1045
  error_code: errorCode,
@@ -1101,7 +1052,6 @@ class IndexedDbClaim {
1101
1052
  await this.core.extendLease(this.id, this.workerId, ms);
1102
1053
  }
1103
1054
  async disable() {
1104
- this.pending.delete(this.id);
1105
1055
  const current = await this.core.get(this.id);
1106
1056
  const completedAt = current?.completed_at ?? new Date().toISOString();
1107
1057
  await this.core.finalize(this.id, {
@@ -1118,10 +1068,8 @@ class IndexedDbClaim {
1118
1068
  class IndexedDbMessageQueue {
1119
1069
  scope = "process";
1120
1070
  core;
1121
- pending;
1122
- constructor(core, pending) {
1071
+ constructor(core) {
1123
1072
  this.core = core;
1124
- this.pending = pending;
1125
1073
  }
1126
1074
  async send(body, opts) {
1127
1075
  return this.core.add(applySendOptions(body, opts));
@@ -1140,12 +1088,11 @@ class IndexedDbMessageQueue {
1140
1088
  const job = await this.core.next(opts.workerId, { leaseMs: opts.leaseMs });
1141
1089
  if (!job)
1142
1090
  break;
1143
- claims.push(new IndexedDbClaim(this.core, this.pending, job.id, job, job.attempts ?? 0, opts.workerId));
1091
+ claims.push(new IndexedDbClaim(this.core, job.id, job, job.attempts ?? 0, opts.workerId));
1144
1092
  }
1145
1093
  return claims;
1146
1094
  }
1147
1095
  async releaseClaim(id) {
1148
- this.pending.delete(id);
1149
1096
  await this.core.releaseClaim(id);
1150
1097
  }
1151
1098
  async migrate() {
@@ -1179,10 +1126,8 @@ function applySendOptions(body, opts) {
1179
1126
  // src/job-queue/IndexedDbJobStore.ts
1180
1127
  class IndexedDbJobStore {
1181
1128
  core;
1182
- pending;
1183
- constructor(core, pending) {
1129
+ constructor(core) {
1184
1130
  this.core = core;
1185
- this.pending = pending;
1186
1131
  }
1187
1132
  get(id) {
1188
1133
  return this.core.get(id);
@@ -1202,27 +1147,13 @@ class IndexedDbJobStore {
1202
1147
  async saveProgress(id, progress, message, details) {
1203
1148
  await this.core.saveProgress(id, progress, message, details);
1204
1149
  }
1205
- async saveResult(id, output) {
1206
- const buf = this.pending.get(id) ?? {};
1207
- buf.output = output ?? null;
1208
- this.pending.set(id, buf);
1209
- }
1210
- async saveError(id, error, errorCode, abortRequested) {
1211
- const buf = this.pending.get(id) ?? {};
1212
- buf.error = error;
1213
- buf.errorCode = errorCode;
1214
- buf.abortRequested = abortRequested;
1215
- this.pending.set(id, buf);
1216
- }
1217
1150
  async deleteByStatusAndAge(status, olderThanMs) {
1218
1151
  await this.core.deleteJobsByStatusAndAge(status, olderThanMs);
1219
1152
  }
1220
1153
  async delete(id) {
1221
- this.pending.delete(id);
1222
1154
  await this.core.delete(id);
1223
1155
  }
1224
1156
  async deleteAll() {
1225
- this.pending.clear();
1226
1157
  await this.core.deleteAll();
1227
1158
  }
1228
1159
  async abort(id) {
@@ -1252,7 +1183,6 @@ class IndexedDbJobStore {
1252
1183
  return Promise.all(ids.map((id) => this.core.get(id)));
1253
1184
  }
1254
1185
  async completeWithResult(id, result) {
1255
- this.pending.delete(id);
1256
1186
  await this.core.finalize(id, {
1257
1187
  output: result,
1258
1188
  error: null,
@@ -1262,7 +1192,6 @@ class IndexedDbJobStore {
1262
1192
  });
1263
1193
  }
1264
1194
  async failWithError(id, opts) {
1265
- this.pending.delete(id);
1266
1195
  const current = await this.core.get(id);
1267
1196
  const now = new Date().toISOString();
1268
1197
  const abortRequestedAt = opts.abortRequested === true ? current?.abort_requested_at ?? now : current?.abort_requested_at ?? null;
@@ -1274,6 +1203,9 @@ class IndexedDbJobStore {
1274
1203
  completed_at: current?.completed_at ?? now
1275
1204
  });
1276
1205
  }
1206
+ async markDisabled(id) {
1207
+ await this.core.markDisabled(id);
1208
+ }
1277
1209
  async markEnqueueDeferred(id, opts) {
1278
1210
  await this.core.finalize(id, {
1279
1211
  visible_at: opts.visible_at.toISOString(),
@@ -1284,11 +1216,9 @@ class IndexedDbJobStore {
1284
1216
  // src/job-queue/createIndexedDbQueue.ts
1285
1217
  function createIndexedDbQueue(queueName, opts) {
1286
1218
  const core = new IndexedDbQueueStorage(queueName, opts);
1287
- const pending = new Map;
1288
1219
  return {
1289
- messageQueue: new IndexedDbMessageQueue(core, pending),
1290
- jobStore: new IndexedDbJobStore(core, pending),
1291
- core
1220
+ messageQueue: new IndexedDbMessageQueue(core),
1221
+ jobStore: new IndexedDbJobStore(core)
1292
1222
  };
1293
1223
  }
1294
1224
  // src/job-queue/IndexedDbRateLimiterStorage.ts
@@ -1646,4 +1576,4 @@ export {
1646
1576
  INDEXED_DB_QUEUE_STORAGE
1647
1577
  };
1648
1578
 
1649
- //# debugId=89B6FF01B7C5033864756E2164756E21
1579
+ //# debugId=80E77CCF46AD569C64756E2164756E21