@workglow/supabase 0.3.0 → 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 { SupabasePendingWrite } from "./SupabaseMessageQueue";
8
7
  import type { SupabaseQueueStorage } from "./SupabaseQueueStorage";
9
8
  export declare class SupabaseJobStore<Input, Output> implements IJobStore<Input, Output> {
10
9
  /** @internal — shared with the paired message queue */
11
10
  readonly core: SupabaseQueueStorage<Input, Output>;
12
- /** @internal — shared transient buffer for saveResult/saveError. */
13
- private readonly pending;
14
- constructor(core: SupabaseQueueStorage<Input, Output>, pending: Map<unknown, SupabasePendingWrite<Output>>);
11
+ constructor(core: SupabaseQueueStorage<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 SupabaseJobStore<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":"SupabaseJobStore.d.ts","sourceRoot":"","sources":["../../src/job-queue/SupabaseJobStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SupabaseJobStore.d.ts","sourceRoot":"","sources":["../../src/job-queue/SupabaseJobStore.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 type { SupabaseQueueStorage } from "./SupabaseQueueStorage";
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 SupabasePendingWrite<Output> = {
14
- output?: Output | null;
15
- error?: string | null;
16
- errorCode?: string | null;
17
- abortRequested?: boolean;
18
- };
19
8
  export declare class SupabaseMessageQueue<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: SupabaseQueueStorage<Input, Output>;
23
- /** @internal — shared transient buffer for saveResult/saveError. */
24
- private readonly pending;
25
- constructor(core: SupabaseQueueStorage<Input, Output>, pending: Map<unknown, SupabasePendingWrite<Output>>);
12
+ constructor(core: SupabaseQueueStorage<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":"SupabaseMessageQueue.d.ts","sourceRoot":"","sources":["../../src/job-queue/SupabaseMessageQueue.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,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,CAAC,MAAM,IAAI;IACzC,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,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAE,YAAW,aAAa,CACvE,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAChC;IACC,SAAgB,KAAK,EAAE,iBAAiB,CAAC;IAEzC,mDAAmD;IACnD,SAAgB,IAAI,EAAE,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAE1D,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;IAErE,YACE,IAAI,EAAE,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,EACzC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,EAKpD;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":"SupabaseMessageQueue.d.ts","sourceRoot":"","sources":["../../src/job-queue/SupabaseMessageQueue.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,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AA8EnE,qBAAa,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAE,YAAW,aAAa,CACvE,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAChC;IACC,SAAgB,KAAK,EAAE,iBAAiB,CAAC;IAEzC,mDAAmD;IACnD,SAAgB,IAAI,EAAE,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAE1D,YAAY,IAAI,EAAE,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,EAGpD;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"}
@@ -209,6 +209,18 @@ export declare class SupabaseQueueStorage<Input, Output> implements IQueueStorag
209
209
  readonly errorCode?: string | null;
210
210
  readonly abortRequested?: boolean;
211
211
  }): Promise<void>;
212
+ /**
213
+ * Atomically writes status=DISABLED, releases the lease, clears progress
214
+ * fields, and stamps `completed_at` (preserving an existing value via
215
+ * COALESCE). Does NOT write error/error_code — DISABLED is not an error
216
+ * transition.
217
+ *
218
+ * Implemented via `exec_sql` so the COALESCE on completed_at runs inside
219
+ * the same UPDATE — PostgREST `.update()` cannot reference existing column
220
+ * values, which would otherwise force a read-then-write and open a race
221
+ * window with concurrent updates. Mirrors the {@link failWithError} pattern.
222
+ */
223
+ markDisabled(id: unknown): Promise<void>;
212
224
  /**
213
225
  * Delete jobs with a specific status older than a cutoff date
214
226
  * @param status - Status of jobs to delete
@@ -1 +1 @@
1
- {"version":3,"file":"SupabaseQueueStorage.d.ts","sourceRoot":"","sources":["../../src/job-queue/SupabaseQueueStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SupabaseQueueStorage.d.ts","sourceRoot":"","sources":["../../src/job-queue/SupabaseQueueStorage.ts"],"names":[],"mappings":"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"}
@@ -122,21 +122,6 @@ class SupabaseQueueStorage {
122
122
  throw tableError;
123
123
  }
124
124
  }
125
- const alterSqls = [
126
- `ALTER TABLE ${this.tableName} ADD COLUMN IF NOT EXISTS abort_requested_at timestamp with time zone`,
127
- `ALTER TABLE ${this.tableName} ADD COLUMN IF NOT EXISTS lease_expires_at timestamp with time zone`,
128
- `ALTER TABLE ${this.tableName} RENAME COLUMN run_after TO visible_at`,
129
- `ALTER TABLE ${this.tableName} RENAME COLUMN last_ran_at TO last_attempted_at`,
130
- `ALTER TABLE ${this.tableName} RENAME COLUMN run_attempts TO attempts`,
131
- `ALTER TABLE ${this.tableName} RENAME COLUMN max_retries TO max_attempts`,
132
- `ALTER TABLE ${this.tableName} RENAME COLUMN worker_id TO lease_owner`
133
- ];
134
- for (const sql of alterSqls) {
135
- const { error } = await this.client.rpc("exec_sql", { query: sql });
136
- if (error && error.code !== "42703") {
137
- throw new Error(`Failed to rename column: ${error.message}`);
138
- }
139
- }
140
125
  const indexes = [
141
126
  `CREATE INDEX IF NOT EXISTS job_fetcher${indexSuffix}_idx ON ${this.tableName} (${prefixIndexPrefix}id, status, visible_at)`,
142
127
  `CREATE INDEX IF NOT EXISTS job_queue_fetcher${indexSuffix}_idx ON ${this.tableName} (${prefixIndexPrefix}queue, status, visible_at)`,
@@ -582,6 +567,27 @@ class SupabaseQueueStorage {
582
567
  if (error)
583
568
  throw error;
584
569
  }
570
+ async markDisabled(id) {
571
+ const numericId = Number(id);
572
+ if (!Number.isFinite(numericId)) {
573
+ throw new Error(`Invalid job id: ${id}`);
574
+ }
575
+ const prefixConditions = this.buildPrefixWhereSql();
576
+ const validatedQueueName = this.validateSqlValue(this.queueName, "queueName");
577
+ const escapedQueueName = this.escapeSqlString(validatedQueueName);
578
+ const sql = `
579
+ UPDATE ${this.tableName}
580
+ SET status = 'DISABLED',
581
+ completed_at = COALESCE(completed_at, NOW() AT TIME ZONE 'UTC'),
582
+ lease_owner = NULL,
583
+ progress = 0,
584
+ progress_message = '',
585
+ progress_details = NULL
586
+ WHERE id = ${numericId} AND queue = '${escapedQueueName}'${prefixConditions}`;
587
+ const { error } = await this.client.rpc("exec_sql", { query: sql });
588
+ if (error)
589
+ throw error;
590
+ }
585
591
  async deleteJobsByStatusAndAge(status, olderThanMs) {
586
592
  const cutoffDate = new Date(Date.now() - olderThanMs).toISOString();
587
593
  let query = this.client.from(this.tableName).delete().eq("queue", this.queueName).eq("status", status).not("completed_at", "is", null).lte("completed_at", cutoffDate);
@@ -959,24 +965,20 @@ class SupabaseRateLimiterStorage {
959
965
  // src/job-queue/SupabaseMessageQueue.ts
960
966
  class SupabaseClaim {
961
967
  core;
962
- pending;
963
968
  id;
964
969
  body;
965
970
  attempts;
966
971
  workerId;
967
- constructor(core, pending, id, body, attempts, workerId) {
972
+ constructor(core, id, body, attempts, workerId) {
968
973
  this.core = core;
969
- this.pending = pending;
970
974
  this.id = id;
971
975
  this.body = body;
972
976
  this.attempts = attempts;
973
977
  this.workerId = workerId;
974
978
  }
975
979
  async ack(result) {
976
- const buf = this.pending.get(this.id);
977
- this.pending.delete(this.id);
978
980
  const current = await this.core.get(this.id) ?? this.body;
979
- const output = result !== undefined ? result : buf?.output !== undefined ? buf.output : current.output ?? null;
981
+ const output = result !== undefined ? result : current.output ?? null;
980
982
  await this.core.finalize(this.id, {
981
983
  output,
982
984
  error: null,
@@ -986,7 +988,6 @@ class SupabaseClaim {
986
988
  });
987
989
  }
988
990
  async retry(opts) {
989
- this.pending.delete(this.id);
990
991
  const delay = opts?.delaySeconds ?? 0;
991
992
  const current = await this.core.get(this.id) ?? this.body;
992
993
  await this.core.complete({
@@ -1002,12 +1003,10 @@ class SupabaseClaim {
1002
1003
  }
1003
1004
  async fail(opts) {
1004
1005
  opts?.permanent;
1005
- const buf = this.pending.get(this.id);
1006
- this.pending.delete(this.id);
1007
1006
  const current = await this.core.get(this.id) ?? this.body;
1008
- const error = opts?.error !== undefined ? opts.error : buf?.error !== undefined ? buf.error : current.error ?? null;
1009
- const errorCode = opts?.errorCode !== undefined ? opts.errorCode : buf?.errorCode !== undefined ? buf.errorCode : current.error_code ?? null;
1010
- const abortRequested = opts?.abortRequested !== undefined ? opts.abortRequested : buf?.abortRequested ?? false;
1007
+ const error = opts?.error !== undefined ? opts.error : current.error ?? null;
1008
+ const errorCode = opts?.errorCode !== undefined ? opts.errorCode : current.error_code ?? null;
1009
+ const abortRequested = opts?.abortRequested === true;
1011
1010
  await this.core.finalize(this.id, {
1012
1011
  error,
1013
1012
  error_code: errorCode,
@@ -1020,7 +1019,6 @@ class SupabaseClaim {
1020
1019
  await this.core.extendLease(this.id, this.workerId, ms);
1021
1020
  }
1022
1021
  async disable() {
1023
- this.pending.delete(this.id);
1024
1022
  const current = await this.core.get(this.id);
1025
1023
  const completedAt = current?.completed_at ?? new Date().toISOString();
1026
1024
  await this.core.finalize(this.id, {
@@ -1037,10 +1035,8 @@ class SupabaseClaim {
1037
1035
  class SupabaseMessageQueue {
1038
1036
  scope;
1039
1037
  core;
1040
- pending;
1041
- constructor(core, pending) {
1038
+ constructor(core) {
1042
1039
  this.core = core;
1043
- this.pending = pending;
1044
1040
  this.scope = core.scope;
1045
1041
  }
1046
1042
  async send(body, opts) {
@@ -1060,12 +1056,11 @@ class SupabaseMessageQueue {
1060
1056
  const job = await this.core.next(opts.workerId, { leaseMs: opts.leaseMs });
1061
1057
  if (!job)
1062
1058
  break;
1063
- claims.push(new SupabaseClaim(this.core, this.pending, job.id, job, job.attempts ?? 0, opts.workerId));
1059
+ claims.push(new SupabaseClaim(this.core, job.id, job, job.attempts ?? 0, opts.workerId));
1064
1060
  }
1065
1061
  return claims;
1066
1062
  }
1067
1063
  async releaseClaim(id) {
1068
- this.pending.delete(id);
1069
1064
  await this.core.releaseClaim(id);
1070
1065
  }
1071
1066
  async migrate() {
@@ -1099,10 +1094,8 @@ function applySendOptions(body, opts) {
1099
1094
  // src/job-queue/SupabaseJobStore.ts
1100
1095
  class SupabaseJobStore {
1101
1096
  core;
1102
- pending;
1103
- constructor(core, pending) {
1097
+ constructor(core) {
1104
1098
  this.core = core;
1105
- this.pending = pending;
1106
1099
  }
1107
1100
  get(id) {
1108
1101
  return this.core.get(id);
@@ -1122,27 +1115,13 @@ class SupabaseJobStore {
1122
1115
  async saveProgress(id, progress, message, details) {
1123
1116
  await this.core.saveProgress(id, progress, message, details);
1124
1117
  }
1125
- async saveResult(id, output) {
1126
- const buf = this.pending.get(id) ?? {};
1127
- buf.output = output ?? null;
1128
- this.pending.set(id, buf);
1129
- }
1130
- async saveError(id, error, errorCode, abortRequested) {
1131
- const buf = this.pending.get(id) ?? {};
1132
- buf.error = error;
1133
- buf.errorCode = errorCode;
1134
- buf.abortRequested = abortRequested;
1135
- this.pending.set(id, buf);
1136
- }
1137
1118
  async deleteByStatusAndAge(status, olderThanMs) {
1138
1119
  await this.core.deleteJobsByStatusAndAge(status, olderThanMs);
1139
1120
  }
1140
1121
  async delete(id) {
1141
- this.pending.delete(id);
1142
1122
  await this.core.delete(id);
1143
1123
  }
1144
1124
  async deleteAll() {
1145
- this.pending.clear();
1146
1125
  await this.core.deleteAll();
1147
1126
  }
1148
1127
  async abort(id) {
@@ -1168,13 +1147,14 @@ class SupabaseJobStore {
1168
1147
  return this.core.getMany(ids);
1169
1148
  }
1170
1149
  async completeWithResult(id, result) {
1171
- this.pending.delete(id);
1172
1150
  await this.core.completeWithResult(id, result);
1173
1151
  }
1174
1152
  async failWithError(id, opts) {
1175
- this.pending.delete(id);
1176
1153
  await this.core.failWithError(id, opts);
1177
1154
  }
1155
+ async markDisabled(id) {
1156
+ await this.core.markDisabled(id);
1157
+ }
1178
1158
  async markEnqueueDeferred(id, opts) {
1179
1159
  await this.core.finalize(id, {
1180
1160
  visible_at: opts.visible_at.toISOString(),
@@ -1185,11 +1165,9 @@ class SupabaseJobStore {
1185
1165
  // src/job-queue/createSupabaseQueue.ts
1186
1166
  function createSupabaseQueue(queueName, client, opts) {
1187
1167
  const core = new SupabaseQueueStorage(client, queueName, opts);
1188
- const pending = new Map;
1189
1168
  return {
1190
- messageQueue: new SupabaseMessageQueue(core, pending),
1191
- jobStore: new SupabaseJobStore(core, pending),
1192
- core
1169
+ messageQueue: new SupabaseMessageQueue(core),
1170
+ jobStore: new SupabaseJobStore(core)
1193
1171
  };
1194
1172
  }
1195
1173
  export {
@@ -1202,4 +1180,4 @@ export {
1202
1180
  SUPABASE_QUEUE_STORAGE
1203
1181
  };
1204
1182
 
1205
- //# debugId=9D95D30C4B098D6464756E2164756E21
1183
+ //# debugId=84543FECAC08FA2964756E2164756E21