lonnymq 0.0.20 → 0.0.21

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/dist/index.js CHANGED
@@ -1,49 +1,44 @@
1
- var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type===0)return{eventType:"MESSAGE_CREATED",id:t.id,delayMs:t.delay_ms};else if(t.type===1)return{eventType:"MESSAGE_DELETED",id:t.id};else if(t.type===2)return{eventType:"MESSAGE_DEFERRED",id:t.id,delayMs:t.delay_ms};else throw new Error("Unknown event type")};var r=(e)=>({nodeType:"VALUE",value:e}),s=(e)=>({nodeType:"REF",value:e}),Q=(e)=>({nodeType:"RAW",value:e}),V=(e)=>{return`'${e.replace(/'/g,"''")}'`},W=(e)=>{if(e===null)return"NULL";else if(typeof e==="string")return V(e);else if(typeof e==="number")return e.toString();else if(typeof e==="boolean")return e?"TRUE":"FALSE";else if(e instanceof Date)return`'${e.toISOString()}'`;else if(typeof e==="bigint")return e.toString();else throw new Error(`Unsupported value type: ${typeof e}`)},Y=(e)=>{return`"${e.replace(/"/g,'""')}"`},z=(e)=>{if(e.nodeType==="VALUE")return W(e.value);else if(e.nodeType==="REF")return Y(e.value);else if(e.nodeType==="RAW")return e.value;else throw new Error("Unsupported SQL node type")};var n=(e,...t)=>{let a=[];for(let _=0;_<e.length;_+=1)if(a.push(e[_]),_<t.length)a.push(z(t[_]));return Q(a.join(""))};class c{schema;channelName;createdAt;constructor(e){this.schema=e.schema,this.channelName=e.channelName,this.createdAt=new Date}async execute(e){await e.query(n`
2
- SELECT 1 FROM ${s(this.schema)}."channel_policy_clear"(
1
+ var D=(e)=>{return e*1000};var l=D(0);var $=(e)=>{let t=JSON.parse(e);if(t.type===0)return{eventType:"MESSAGE_CREATED",id:t.id,delayMs:t.delay_ms};else if(t.type===1)return{eventType:"MESSAGE_DELETED",id:t.id};else if(t.type===2)return{eventType:"MESSAGE_DEFERRED",id:t.id,delayMs:t.delay_ms};else throw new Error("Unknown event type")};var _=(e)=>({nodeType:"VALUE",value:e}),n=(e)=>({nodeType:"REF",value:e}),F=(e)=>({nodeType:"RAW",value:e}),b=(e)=>{return`'${e.replace(/'/g,"''")}'`},B=(e)=>{if(e===null)return"NULL";else if(typeof e==="string")return b(e);else if(typeof e==="number")return e.toString();else if(typeof e==="boolean")return e?"TRUE":"FALSE";else if(e instanceof Date)return`'${e.toISOString()}'`;else if(typeof e==="bigint")return e.toString();else throw new Error(`Unsupported value type: ${typeof e}`)},k=(e)=>{return`"${e.replace(/"/g,'""')}"`},P=(e)=>{if(e.nodeType==="VALUE")return B(e.value);else if(e.nodeType==="REF")return k(e.value);else if(e.nodeType==="RAW")return e.value;else throw new Error("Unsupported SQL node type")};var s=(e,...t)=>{let a=[];for(let r=0;r<e.length;r+=1)if(a.push(e[r]),r<t.length)a.push(P(t[r]));return F(a.join(""))};class o{schema;channelName;createdAt;constructor(e){this.schema=e.schema,this.channelName=e.channelName,this.createdAt=new Date}async execute(e){await e.query(s`
2
+ SELECT 1 FROM ${n(this.schema)}."channel_policy_clear"(
3
3
  $1
4
4
  )
5
- `.value,[this.channelName])}}class l{schema;channelName;maxConcurrency;releaseIntervalMs;createdAt;constructor(e){this.schema=e.schema,this.channelName=e.channelName;let t=e.maxConcurrency??null;this.maxConcurrency=t!==null?Math.max(0,t):null;let a=e.releaseIntervalMs??null;this.releaseIntervalMs=a!==null?Math.max(0,a):null,this.createdAt=new Date}async execute(e){await e.query(n`
6
- SELECT 1 FROM ${s(this.schema)}."channel_policy_set"(
5
+ `.value,[this.channelName])}}class m{schema;channelName;maxConcurrency;releaseIntervalMs;createdAt;constructor(e){this.schema=e.schema,this.channelName=e.channelName;let t=e.maxConcurrency??null;this.maxConcurrency=t!==null?Math.max(0,t):null;let a=e.releaseIntervalMs??null;this.releaseIntervalMs=a!==null?Math.max(0,a):null,this.createdAt=new Date}async execute(e){await e.query(s`
6
+ SELECT 1 FROM ${n(this.schema)}."channel_policy_set"(
7
7
  $1,
8
8
  $2::INTEGER,
9
9
  $3::INTEGER
10
10
  )
11
- `.value,[this.channelName,this.maxConcurrency,this.releaseIntervalMs])}}import{randomBytes as J}from"crypto";var L=()=>{return J(16).toString("base64url")};import{randomUUID as X}from"node:crypto";class o{schema;channelName;content;lockMs;id;delayMs;createdAt;constructor(e){let t=Math.max(0,e.lockMs),a=e.delayMs===void 0?m:e.delayMs;this.id=X(),this.schema=e.schema,this.channelName=e.channelName??L(),this.content=e.content,this.lockMs=t,this.delayMs=a,this.createdAt=new Date}async execute(e){await e.query(n`
12
- SELECT 1 FROM ${s(this.schema)}."message_create"(
11
+ `.value,[this.channelName,this.maxConcurrency,this.releaseIntervalMs])}}import{randomBytes as w}from"crypto";var g=()=>{return w(16).toString("base64url")};import{randomUUID as Q}from"node:crypto";class c{schema;channelName;content;lockMs;id;delayMs;createdAt;constructor(e){let t=Math.max(0,e.lockMs),a=e.delayMs===void 0?l:e.delayMs;this.id=Q(),this.schema=e.schema,this.channelName=e.channelName??g(),this.content=e.content,this.lockMs=t,this.delayMs=a,this.createdAt=new Date}async execute(e){await e.query(s`
12
+ SELECT 1 FROM ${n(this.schema)}."message_create"(
13
13
  $1,
14
14
  $2,
15
15
  $3,
16
16
  $4::BIGINT,
17
17
  $5::BIGINT
18
18
  )
19
- `.value,[this.id,this.channelName,this.content,this.lockMs,this.delayMs])}}class i{schema;constructor(e){this.schema=e.schema}async execute(e){let t=await e.query(n`
19
+ `.value,[this.id,this.channelName,this.content,this.lockMs,this.delayMs])}}class i{schema;constructor(e){this.schema=e.schema}async execute(e){let t=await e.query(s`
20
20
  SELECT
21
21
  result_code,
22
22
  metadata,
23
23
  content,
24
24
  state
25
- FROM ${s(this.schema)}."message_dequeue"()
26
- `.value,[]).then((a)=>a.rows[0]);if(t.result_code===0)return{resultType:"MESSAGE_NOT_AVAILABLE",retryMs:t.metadata.retry_ms};else if(t.result_code===1)return{resultType:"MESSAGE_DEQUEUED",message:{id:t.metadata.id,channelName:t.metadata.channel_name,isUnlocked:t.metadata.is_unlocked,content:t.content,state:t.state,numAttempts:t.metadata.num_attempts}};else throw new Error("Unexpected dequeue result")}}class u{schema;id;numAttempts;constructor(e){this.schema=e.schema,this.id=e.id,this.numAttempts=e.numAttempts}async execute(e){let t=await e.query(n`
27
- SELECT * FROM ${s(this.schema)}."message_delete"(
25
+ FROM ${n(this.schema)}."message_dequeue"()
26
+ `.value,[]).then((a)=>a.rows[0]);if(t.result_code===0)return{resultType:"MESSAGE_NOT_AVAILABLE",retryMs:t.metadata.retry_ms};else if(t.result_code===1)return{resultType:"MESSAGE_DEQUEUED",message:{id:t.metadata.id,channelName:t.metadata.channel_name,isUnlocked:t.metadata.is_unlocked,content:t.content,state:t.state,numAttempts:t.metadata.num_attempts}};else throw new Error("Unexpected dequeue result")}}class u{schema;id;numAttempts;constructor(e){this.schema=e.schema,this.id=e.id,this.numAttempts=e.numAttempts}async execute(e){let t=await e.query(s`
27
+ SELECT * FROM ${n(this.schema)}."message_delete"(
28
28
  $1,
29
29
  $2::BIGINT
30
30
  )
31
- `.value,[this.id,this.numAttempts]).then((a)=>a.rows[0]);if(t.result_code===0)return{resultType:"MESSAGE_NOT_FOUND"};else if(t.result_code===1)return{resultType:"STATE_INVALID"};else if(t.result_code===2)return{resultType:"MESSAGE_DELETED"};else throw new Error("Unexpected result")}}class d{schema;id;numAttempts;delayMs;state;constructor(e){let t=e.delayMs===void 0?m:e.delayMs;this.schema=e.schema,this.numAttempts=e.numAttempts,this.id=e.id,this.delayMs=t,this.state=e.state??null}async execute(e){let t=await e.query(n`
32
- SELECT * FROM ${s(this.schema)}."message_defer"(
31
+ `.value,[this.id,this.numAttempts]).then((a)=>a.rows[0]);if(t.result_code===0)return{resultType:"MESSAGE_NOT_FOUND"};else if(t.result_code===1)return{resultType:"STATE_INVALID"};else if(t.result_code===2)return{resultType:"MESSAGE_DELETED"};else throw new Error("Unexpected result")}}class d{schema;id;numAttempts;delayMs;state;constructor(e){let t=e.delayMs===void 0?l:e.delayMs;this.schema=e.schema,this.numAttempts=e.numAttempts,this.id=e.id,this.delayMs=t,this.state=e.state??null}async execute(e){let t=await e.query(s`
32
+ SELECT * FROM ${n(this.schema)}."message_defer"(
33
33
  $1,
34
34
  $2::BIGINT,
35
35
  $3::BIGINT,
36
36
  $4
37
37
  )
38
- `.value,[this.id,this.numAttempts,this.delayMs,this.state]).then((a)=>a.rows[0]);if(t.result_code===0)return{resultType:"MESSAGE_NOT_FOUND"};else if(t.result_code===1)return{resultType:"STATE_INVALID"};else if(t.result_code===2)return{resultType:"MESSAGE_DEFERRED"};else throw new Error("Unexpected result")}}class T{schema;id;numAttempts;constructor(e){this.schema=e.schema,this.numAttempts=e.numAttempts,this.id=e.id}async execute(e){let t=await e.query(n`
39
- SELECT * FROM ${s(this.schema)}."message_heartbeat"(
40
- $1,
41
- $2::BIGINT
42
- )
43
- `.value,[this.id,this.numAttempts]).then((a)=>a.rows[0]);if(t.result_code===0)return{resultType:"MESSAGE_NOT_FOUND"};else if(t.result_code===1)return{resultType:"MESSAGE_STATE_INVALID"};else if(t.result_code===2)return{resultType:"MESSAGE_HEARTBEATED"};else throw new Error("Unexpected result")}}var C=(e)=>{let t=e.split(`
44
- `),a=Number.MAX_SAFE_INTEGER;for(let _ of t){if(_.trim().length===0)continue;let H=_.search(/\S/);a=Math.min(a,H)}return t.map((_)=>_.slice(a)).join(`
45
- `).trim()};import{dirname as U}from"path";var __filename="/home/runner/work/lonnymq/lonnymq/src/core/path.ts",te=U(U(__filename)),se=new RegExp(`^${te}/`),E=(e)=>{return e.replace(se,"")};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/00-table-channel-policy.ts",O={name:E(__filename),sql:(e)=>{return[n`
46
- CREATE TABLE ${s(e.schema)}."channel_policy" (
38
+ `.value,[this.id,this.numAttempts,this.delayMs,this.state]).then((a)=>a.rows[0]);if(t.result_code===0)return{resultType:"MESSAGE_NOT_FOUND"};else if(t.result_code===1)return{resultType:"STATE_INVALID"};else if(t.result_code===2)return{resultType:"MESSAGE_DEFERRED"};else throw new Error("Unexpected result")}}var p=(e)=>{let t=e.split(`
39
+ `),a=Number.MAX_SAFE_INTEGER;for(let r of t){if(r.trim().length===0)continue;let G=r.search(/\S/);a=Math.min(a,G)}return t.map((r)=>r.slice(a)).join(`
40
+ `).trim()};import{dirname as y}from"path";var __filename="/home/runner/work/lonnymq/lonnymq/src/core/path.ts",Y=y(y(__filename)),z=new RegExp(`^${Y}/`),E=(e)=>{return e.replace(z,"")};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/00-table-channel-policy.ts",v={name:E(__filename),sql:(e)=>{return[s`
41
+ CREATE TABLE ${n(e.schema)}."channel_policy" (
47
42
  "id" UUID NOT NULL DEFAULT GEN_RANDOM_UUID(),
48
43
  "name" TEXT NOT NULL,
49
44
  "max_concurrency" INTEGER,
@@ -51,11 +46,11 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
51
46
  "created_at" TIMESTAMP NOT NULL,
52
47
  PRIMARY KEY ("id")
53
48
  );
54
- `,n`
49
+ `,s`
55
50
  CREATE UNIQUE INDEX "channel_policy_name_ux"
56
- ON ${s(e.schema)}."channel_policy" ("name");
57
- `]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/01-table-channel-state.ts",f={name:E(__filename),sql:(e)=>{return[n`
58
- CREATE TABLE ${s(e.schema)}."channel_state" (
51
+ ON ${n(e.schema)}."channel_policy" ("name");
52
+ `]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/01-table-channel-state.ts",M={name:E(__filename),sql:(e)=>{return[s`
53
+ CREATE TABLE ${n(e.schema)}."channel_state" (
59
54
  "id" UUID NOT NULL DEFAULT GEN_RANDOM_UUID(),
60
55
  "name" TEXT NOT NULL,
61
56
  "max_concurrency" INTEGER,
@@ -70,17 +65,17 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
70
65
  "created_at" TIMESTAMP NOT NULL,
71
66
  PRIMARY KEY ("id")
72
67
  );
73
- `,n`
68
+ `,s`
74
69
  CREATE UNIQUE INDEX "channel_state_name_ux"
75
- ON ${s(e.schema)}."channel_state" ("name");
76
- `,n`
70
+ ON ${n(e.schema)}."channel_state" ("name");
71
+ `,s`
77
72
  CREATE INDEX "channel_state_dequeue_ix"
78
- ON ${s(e.schema)}."channel_state" (
73
+ ON ${n(e.schema)}."channel_state" (
79
74
  "active_next_at" ASC
80
75
  ) WHERE "message_id" IS NOT NULL
81
76
  AND ("max_concurrency" IS NULL OR "current_concurrency" < "max_concurrency");
82
- `]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/02-table-message.ts",F={name:E(__filename),sql:(e)=>{return[n`
83
- CREATE TABLE ${s(e.schema)}."message" (
77
+ `]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/02-table-message.ts",I={name:E(__filename),sql:(e)=>{return[s`
78
+ CREATE TABLE ${n(e.schema)}."message" (
84
79
  "id" UUID NOT NULL,
85
80
  "channel_name" TEXT NOT NULL,
86
81
  "seq_no" BIGSERIAL NOT NULL,
@@ -94,20 +89,20 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
94
89
  "created_at" TIMESTAMP NOT NULL,
95
90
  PRIMARY KEY ("id")
96
91
  );
97
- `,n`
92
+ `,s`
98
93
  CREATE INDEX "message_dequeue_ix"
99
- ON ${s(e.schema)}."message" (
94
+ ON ${n(e.schema)}."message" (
100
95
  "channel_name",
101
96
  "dequeue_at" ASC,
102
97
  "seq_no" ASC
103
98
  ) WHERE NOT "is_locked";
104
- `,n`
99
+ `,s`
105
100
  CREATE INDEX "message_locked_dequeue_ix"
106
- ON ${s(e.schema)}."message" (
101
+ ON ${n(e.schema)}."message" (
107
102
  "unlock_at" ASC
108
103
  ) WHERE "is_locked";
109
- `]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/03-function-message-create.ts",x={name:E(__filename),sql:(e)=>{return[n`
110
- CREATE FUNCTION ${s(e.schema)}."message_create" (
104
+ `]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/03-function-message-create.ts",L={name:E(__filename),sql:(e)=>{return[s`
105
+ CREATE FUNCTION ${n(e.schema)}."message_create" (
111
106
  p_id UUID,
112
107
  p_channel_name TEXT,
113
108
  p_content BYTEA,
@@ -122,7 +117,7 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
122
117
  BEGIN
123
118
  v_now := NOW();
124
119
 
125
- INSERT INTO ${s(e.schema)}."message" (
120
+ INSERT INTO ${n(e.schema)}."message" (
126
121
  "id",
127
122
  "channel_name",
128
123
  "content",
@@ -149,12 +144,12 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
149
144
  SELECT
150
145
  "channel_policy"."max_concurrency",
151
146
  "channel_policy"."release_interval_ms"
152
- FROM ${s(e.schema)}."channel_policy"
147
+ FROM ${n(e.schema)}."channel_policy"
153
148
  WHERE "name" = p_channel_name
154
149
  FOR SHARE
155
150
  INTO v_channel_policy;
156
151
 
157
- INSERT INTO ${s(e.schema)}."channel_state" (
152
+ INSERT INTO ${n(e.schema)}."channel_state" (
158
153
  "name",
159
154
  "current_concurrency",
160
155
  "current_size",
@@ -189,7 +184,7 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
189
184
  v_message."dequeue_at" < v_channel_state."message_dequeue_at" OR
190
185
  v_message."dequeue_at" = v_channel_state."message_dequeue_at" AND v_message."seq_no" < v_channel_state."message_seq_no"
191
186
  THEN
192
- UPDATE ${s(e.schema)}."channel_state" SET
187
+ UPDATE ${n(e.schema)}."channel_state" SET
193
188
  "current_size" = v_channel_state."current_size" + 1,
194
189
  "message_id" = v_message."id",
195
190
  "message_dequeue_at" = v_message."dequeue_at",
@@ -200,16 +195,16 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
200
195
  )
201
196
  WHERE "id" = v_channel_state."id";
202
197
  ELSE
203
- UPDATE ${s(e.schema)}."channel_state" SET
198
+ UPDATE ${n(e.schema)}."channel_state" SET
204
199
  "current_size" = v_channel_state."current_size" + 1
205
200
  WHERE "id" = v_channel_state."id";
206
201
  END IF;
207
202
 
208
- IF ${r(e.eventChannel!==null)} THEN
203
+ IF ${_(e.eventChannel!==null)} THEN
209
204
  PERFORM PG_NOTIFY(
210
- ${r(e.eventChannel)},
205
+ ${_(e.eventChannel)},
211
206
  JSON_BUILD_OBJECT(
212
- 'type', ${r(0)},
207
+ 'type', ${_(0)},
213
208
  'id', p_id,
214
209
  'delay_ms', p_delay_ms
215
210
  )::TEXT
@@ -217,7 +212,7 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
217
212
  END IF;
218
213
  END;
219
214
  $$ LANGUAGE plpgsql;
220
- `]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/04-function-message-dequeue.ts",ne=(e)=>n`
215
+ `]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/04-function-message-dequeue.ts",X=(e)=>s`
221
216
  SELECT
222
217
  "message"."id",
223
218
  "message"."state",
@@ -226,11 +221,11 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
226
221
  "message"."lock_ms",
227
222
  "message"."unlock_at",
228
223
  "message"."num_attempts"
229
- FROM ${s(e.schema)}."message"
224
+ FROM ${n(e.schema)}."message"
230
225
  WHERE "is_locked"
231
226
  AND "unlock_at" <= ${e.now}
232
227
  ORDER BY "unlock_at" ASC
233
- `,ae=(e)=>n`
228
+ `,J=(e)=>s`
234
229
  SELECT
235
230
  "channel_state"."id",
236
231
  "channel_state"."name",
@@ -239,21 +234,21 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
239
234
  "channel_state"."active_next_at",
240
235
  "channel_state"."active_prev_at",
241
236
  "channel_state"."current_concurrency"
242
- FROM ${s(e.schema)}."channel_state"
237
+ FROM ${n(e.schema)}."channel_state"
243
238
  WHERE "message_id" IS NOT NULL
244
239
  AND ("max_concurrency" IS NULL OR "current_concurrency" < "max_concurrency")
245
240
  ORDER BY "active_next_at" ASC
246
- `,re=(e)=>n`
241
+ `,K=(e)=>s`
247
242
  SELECT
248
243
  "message"."id",
249
244
  "message"."dequeue_at",
250
245
  "message"."seq_no"
251
- FROM ${s(e.schema)}."message"
246
+ FROM ${n(e.schema)}."message"
252
247
  WHERE NOT "is_locked"
253
248
  AND "channel_name" = ${e.channelName}
254
249
  ORDER BY "dequeue_at" ASC, "seq_no" ASC
255
- `,G={name:E(__filename),sql:(e)=>{let t=ne({now:n`v_now`,schema:e.schema}),a=re({channelName:n`v_channel_state."name"`,schema:e.schema}),_=ae({schema:e.schema});return[n`
256
- CREATE FUNCTION ${s(e.schema)}."message_dequeue" ()
250
+ `,U={name:E(__filename),sql:(e)=>{let t=X({now:s`v_now`,schema:e.schema}),a=K({channelName:s`v_channel_state."name"`,schema:e.schema}),r=J({schema:e.schema});return[s`
251
+ CREATE FUNCTION ${n(e.schema)}."message_dequeue" ()
257
252
  RETURNS TABLE (
258
253
  result_code INTEGER,
259
254
  content BYTEA,
@@ -276,13 +271,13 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
276
271
  INTO v_message_locked;
277
272
 
278
273
  IF v_message_locked."id" IS NOT NULL THEN
279
- UPDATE ${s(e.schema)}."message" SET
274
+ UPDATE ${n(e.schema)}."message" SET
280
275
  "num_attempts" = v_message_locked."num_attempts" + 1,
281
276
  "unlock_at" = v_now + (v_message_locked."lock_ms" * INTERVAL '1 millisecond')
282
277
  WHERE "id" = v_message_locked."id";
283
278
 
284
279
  RETURN QUERY SELECT
285
- ${r(1)},
280
+ ${_(1)},
286
281
  v_message_locked.content,
287
282
  v_message_locked.state,
288
283
  JSON_BUILD_OBJECT(
@@ -294,7 +289,7 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
294
289
  RETURN;
295
290
  END IF;
296
291
 
297
- ${_}
292
+ ${r}
298
293
  FOR UPDATE
299
294
  SKIP LOCKED
300
295
  LIMIT 1
@@ -302,7 +297,7 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
302
297
 
303
298
  IF v_channel_state."id" IS NULL THEN
304
299
  RETURN QUERY SELECT
305
- ${r(0)},
300
+ ${_(0)},
306
301
  NULL::BYTEA,
307
302
  NULL::BYTEA,
308
303
  JSON_BUILD_OBJECT('retry_ms', NULL);
@@ -311,7 +306,7 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
311
306
 
312
307
  IF v_channel_state."active_next_at" > v_now THEN
313
308
  RETURN QUERY SELECT
314
- ${r(0)},
309
+ ${_(0)},
315
310
  NULL::BYTEA,
316
311
  NULL::BYTEA,
317
312
  JSON_BUILD_OBJECT(
@@ -327,11 +322,11 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
327
322
  "message"."num_attempts",
328
323
  "message"."state",
329
324
  "message"."lock_ms"
330
- FROM ${s(e.schema)}."message"
325
+ FROM ${n(e.schema)}."message"
331
326
  WHERE "id" = v_channel_state."message_id"
332
327
  INTO v_message_dequeue;
333
328
 
334
- UPDATE ${s(e.schema)}."message" SET
329
+ UPDATE ${n(e.schema)}."message" SET
335
330
  "is_locked" = TRUE,
336
331
  "num_attempts" = v_message_dequeue."num_attempts" + 1,
337
332
  "unlock_at" = v_now + (v_message_dequeue."lock_ms" * INTERVAL '1 millisecond')
@@ -342,13 +337,13 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
342
337
  INTO v_message_next;
343
338
 
344
339
  IF v_message_next."id" IS NULL THEN
345
- UPDATE ${s(e.schema)}."channel_state" SET
340
+ UPDATE ${n(e.schema)}."channel_state" SET
346
341
  "current_concurrency" = v_channel_state."current_concurrency" + 1,
347
342
  "active_prev_at" = v_now,
348
343
  "message_id" = NULL
349
344
  WHERE "id" = v_channel_state."id";
350
345
  ELSE
351
- UPDATE ${s(e.schema)}."channel_state" SET
346
+ UPDATE ${n(e.schema)}."channel_state" SET
352
347
  "current_concurrency" = v_channel_state."current_concurrency" + 1,
353
348
  "message_id" = v_message_next."id",
354
349
  "message_dequeue_at" = v_message_next."dequeue_at",
@@ -362,7 +357,7 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
362
357
  END IF;
363
358
 
364
359
  RETURN QUERY SELECT
365
- ${r(1)},
360
+ ${_(1)},
366
361
  v_message_dequeue.content,
367
362
  v_message_dequeue.state,
368
363
  JSON_BUILD_OBJECT(
@@ -374,8 +369,8 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
374
369
  RETURN;
375
370
  END;
376
371
  $$ LANGUAGE plpgsql;
377
- `]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/05-function-message-delete.ts",q={name:E(__filename),sql:(e)=>{return[n`
378
- CREATE FUNCTION ${s(e.schema)}."message_delete" (
372
+ `]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/05-function-message-delete.ts",O={name:E(__filename),sql:(e)=>{return[s`
373
+ CREATE FUNCTION ${n(e.schema)}."message_delete" (
379
374
  p_id UUID,
380
375
  p_num_attempts BIGINT
381
376
  )
@@ -392,24 +387,24 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
392
387
  "message"."channel_name",
393
388
  "message"."num_attempts",
394
389
  "message"."is_locked"
395
- FROM ${s(e.schema)}."message"
390
+ FROM ${n(e.schema)}."message"
396
391
  WHERE "id" = p_id
397
392
  FOR UPDATE
398
393
  INTO v_message;
399
394
 
400
395
  IF v_message."id" IS NULL THEN
401
396
  RETURN QUERY SELECT
402
- ${r(0)};
397
+ ${_(0)};
403
398
  RETURN;
404
399
  ELSIF NOT v_message."is_locked" OR v_message."num_attempts" <> p_num_attempts THEN
405
400
  RETURN QUERY SELECT
406
- ${r(1)};
401
+ ${_(1)};
407
402
  RETURN;
408
403
  END IF;
409
404
 
410
405
  SELECT
411
406
  "channel_policy"."id"
412
- FROM ${s(e.schema)}."channel_policy"
407
+ FROM ${n(e.schema)}."channel_policy"
413
408
  WHERE "name" = v_message."channel_name"
414
409
  FOR SHARE
415
410
  INTO v_channel_policy;
@@ -418,41 +413,41 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
418
413
  "channel_state"."id",
419
414
  "channel_state"."current_size",
420
415
  "channel_state"."current_concurrency"
421
- FROM ${s(e.schema)}."channel_state"
416
+ FROM ${n(e.schema)}."channel_state"
422
417
  WHERE "name" = v_message."channel_name"
423
418
  FOR UPDATE
424
419
  INTO v_channel_state;
425
420
 
426
421
  IF v_channel_policy."id" IS NULL AND v_channel_state."current_size" = 1 THEN
427
- DELETE FROM ${s(e.schema)}."channel_state"
422
+ DELETE FROM ${n(e.schema)}."channel_state"
428
423
  WHERE "id" = v_channel_state."id";
429
424
  ELSE
430
- UPDATE ${s(e.schema)}."channel_state" SET
425
+ UPDATE ${n(e.schema)}."channel_state" SET
431
426
  "current_concurrency" = v_channel_state."current_concurrency" - 1,
432
427
  "current_size" = v_channel_state."current_size" - 1
433
428
  WHERE "id" = v_channel_state."id";
434
429
  END IF;
435
430
 
436
- IF ${r(e.eventChannel!==null)} THEN
431
+ IF ${_(e.eventChannel!==null)} THEN
437
432
  PERFORM PG_NOTIFY(
438
- ${r(e.eventChannel)},
433
+ ${_(e.eventChannel)},
439
434
  JSON_BUILD_OBJECT(
440
- 'type', ${r(1)},
435
+ 'type', ${_(1)},
441
436
  'id', p_id
442
437
  )::TEXT
443
438
  );
444
439
  END IF;
445
440
 
446
- DELETE FROM ${s(e.schema)}."message"
441
+ DELETE FROM ${n(e.schema)}."message"
447
442
  WHERE "id" = p_id;
448
443
 
449
444
  RETURN QUERY SELECT
450
- ${r(2)};
445
+ ${_(2)};
451
446
  RETURN;
452
447
  END;
453
448
  $$ LANGUAGE plpgsql;
454
- `]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/06-function-message-defer.ts",$={name:E(__filename),sql:(e)=>{return[n`
455
- CREATE FUNCTION ${s(e.schema)}."message_defer" (
449
+ `]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/06-function-message-defer.ts",C={name:E(__filename),sql:(e)=>{return[s`
450
+ CREATE FUNCTION ${n(e.schema)}."message_defer" (
456
451
  p_id UUID,
457
452
  p_num_attempts BIGINT,
458
453
  p_delay_ms BIGINT,
@@ -475,18 +470,18 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
475
470
  "message"."num_attempts",
476
471
  "message"."is_locked",
477
472
  "message"."seq_no"
478
- FROM ${s(e.schema)}."message"
473
+ FROM ${n(e.schema)}."message"
479
474
  WHERE "id" = p_id
480
475
  FOR UPDATE
481
476
  INTO v_message;
482
477
 
483
478
  IF v_message."id" IS NULL THEN
484
479
  RETURN QUERY SELECT
485
- ${r(0)};
480
+ ${_(0)};
486
481
  RETURN;
487
482
  ELSIF NOT v_message."is_locked" OR v_message."num_attempts" <> p_num_attempts THEN
488
483
  RETURN QUERY SELECT
489
- ${r(1)};
484
+ ${_(1)};
490
485
  RETURN;
491
486
  END IF;
492
487
 
@@ -497,7 +492,7 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
497
492
  "channel_state"."message_dequeue_at",
498
493
  "channel_state"."active_prev_at",
499
494
  "channel_state"."message_seq_no"
500
- FROM ${s(e.schema)}."channel_state"
495
+ FROM ${n(e.schema)}."channel_state"
501
496
  WHERE "name" = v_message."channel_name"
502
497
  FOR UPDATE
503
498
  INTO v_channel_state;
@@ -509,7 +504,7 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
509
504
  v_dequeue_at < v_channel_state."message_dequeue_at" OR
510
505
  v_dequeue_at = v_channel_state."message_dequeue_at" AND v_message."seq_no" < v_channel_state."message_seq_no"
511
506
  THEN
512
- UPDATE ${s(e.schema)}."channel_state" SET
507
+ UPDATE ${n(e.schema)}."channel_state" SET
513
508
  "current_concurrency" = v_channel_state."current_concurrency" - 1,
514
509
  "message_id" = v_message."id",
515
510
  "message_dequeue_at" = v_dequeue_at,
@@ -520,22 +515,22 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
520
515
  )
521
516
  WHERE "name" = v_message."channel_name";
522
517
  ELSE
523
- UPDATE ${s(e.schema)}."channel_state" SET
518
+ UPDATE ${n(e.schema)}."channel_state" SET
524
519
  "current_concurrency" = v_channel_state."current_concurrency" - 1
525
520
  WHERE "name" = v_message."channel_name";
526
521
  END IF;
527
522
 
528
- UPDATE ${s(e.schema)}."message" SET
523
+ UPDATE ${n(e.schema)}."message" SET
529
524
  "state" = p_state,
530
525
  "is_locked" = FALSE,
531
526
  "dequeue_at" = v_dequeue_at
532
527
  WHERE "id" = p_id;
533
528
 
534
- IF ${r(e.eventChannel!==null)} THEN
529
+ IF ${_(e.eventChannel!==null)} THEN
535
530
  PERFORM PG_NOTIFY(
536
- ${r(e.eventChannel)},
531
+ ${_(e.eventChannel)},
537
532
  JSON_BUILD_OBJECT(
538
- 'type', ${r(2)},
533
+ 'type', ${_(2)},
539
534
  'delay_ms', p_delay_ms,
540
535
  'id', p_id
541
536
  )::TEXT
@@ -543,84 +538,41 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
543
538
  END IF;
544
539
 
545
540
  RETURN QUERY SELECT
546
- ${r(2)};
547
- RETURN;
548
- END;
549
- $$ LANGUAGE plpgsql;
550
- `]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/07-function-message-heartbeat.ts",b={name:E(__filename),sql:(e)=>{return[n`
551
- CREATE FUNCTION ${s(e.schema)}."message_heartbeat" (
552
- p_id UUID,
553
- p_num_attempts BIGINT
554
- )
555
- RETURNS TABLE (
556
- result_code INTEGER
557
- ) AS $$
558
- DECLARE
559
- v_now TIMESTAMP;
560
- v_message RECORD;
561
- BEGIN
562
- v_now := NOW();
563
-
564
- SELECT
565
- "message"."id",
566
- "message"."is_locked",
567
- "message"."num_attempts",
568
- "message"."lock_ms"
569
- FROM ${s(e.schema)}."message"
570
- WHERE "id" = p_id
571
- FOR UPDATE
572
- INTO v_message;
573
-
574
- IF v_message."id" IS NULL THEN
575
- RETURN QUERY SELECT
576
- ${r(0)};
577
- RETURN;
578
- ELSIF NOT v_message."is_locked" OR v_message."num_attempts" <> p_num_attempts THEN
579
- RETURN QUERY SELECT
580
- ${r(1)};
581
- RETURN;
582
- END IF;
583
-
584
- UPDATE ${s(e.schema)}."message" SET
585
- "unlock_at" = v_now + INTERVAL '1 MILLISECOND' * v_message."lock_ms"
586
- WHERE "id" = p_id;
587
-
588
- RETURN QUERY SELECT
589
- ${r(2)};
541
+ ${_(2)};
590
542
  RETURN;
591
543
  END;
592
544
  $$ LANGUAGE plpgsql;
593
- `]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/08-function-channel-policy-clear.ts",B={name:E(__filename),sql:(e)=>{return[n`
594
- CREATE FUNCTION ${s(e.schema)}."channel_policy_clear" (
545
+ `]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/08-function-channel-policy-clear.ts",f={name:E(__filename),sql:(e)=>{return[s`
546
+ CREATE FUNCTION ${n(e.schema)}."channel_policy_clear" (
595
547
  p_name TEXT
596
548
  ) RETURNS VOID AS $$
597
549
  DECLARE
598
550
  v_channel_state RECORD;
599
551
  BEGIN
600
- DELETE FROM ${s(e.schema)}."channel_policy"
552
+ DELETE FROM ${n(e.schema)}."channel_policy"
601
553
  WHERE "name" = p_name;
602
554
 
603
555
  SELECT
604
556
  "channel_state"."id",
605
557
  "channel_state"."current_size"
606
- FROM ${s(e.schema)}."channel_state"
558
+ FROM ${n(e.schema)}."channel_state"
607
559
  WHERE "name" = p_name
608
560
  FOR UPDATE
609
561
  INTO v_channel_state;
610
562
 
611
563
  IF v_channel_state."current_size" = 0 THEN
612
- DELETE FROM ${s(e.schema)}."channel_state"
564
+ DELETE FROM ${n(e.schema)}."channel_state"
613
565
  WHERE "id" = v_channel_state."id";
614
566
  ELSE
615
- UPDATE ${s(e.schema)}."channel_state" SET
567
+ UPDATE ${n(e.schema)}."channel_state" SET
616
568
  "max_concurrency" = NULL,
617
569
  "release_interval_ms" = NULL
618
570
  WHERE "name" = p_name;
619
571
  END IF;
620
572
  END;
621
573
  $$ LANGUAGE plpgsql;
622
- `]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/09-function-channel-policy-set.ts",k={name:E(__filename),sql:(e)=>{return[n`
623
- CREATE FUNCTION ${s(e.schema)}."channel_policy_set" (
574
+ `]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/09-function-channel-policy-set.ts",q={name:E(__filename),sql:(e)=>{return[s`
575
+ CREATE FUNCTION ${n(e.schema)}."channel_policy_set" (
624
576
  p_name TEXT,
625
577
  p_max_concurrency INTEGER,
626
578
  p_release_interval_ms INTEGER
@@ -630,7 +582,7 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
630
582
  BEGIN
631
583
  v_now := NOW();
632
584
 
633
- INSERT INTO ${s(e.schema)}."channel_policy" (
585
+ INSERT INTO ${n(e.schema)}."channel_policy" (
634
586
  "name",
635
587
  "max_concurrency",
636
588
  "release_interval_ms",
@@ -644,10 +596,10 @@ var I=(e)=>{return e*1000};var m=I(0);var P=(e)=>{let t=JSON.parse(e);if(t.type=
644
596
  "max_concurrency" = EXCLUDED."max_concurrency",
645
597
  "release_interval_ms" = EXCLUDED."release_interval_ms";
646
598
 
647
- UPDATE ${s(e.schema)}."channel_state" SET
599
+ UPDATE ${n(e.schema)}."channel_state" SET
648
600
  "max_concurrency" = p_max_concurrency,
649
601
  "release_interval_ms" = p_release_interval_ms
650
602
  WHERE "name" = p_name;
651
603
  END;
652
604
  $$ LANGUAGE plpgsql;
653
- `]}};class N{schema;channelName;registerFn;constructor(e){this.schema=e.schema,this.channelName=e.channelName,this.registerFn=e.registerFn}create(e){let t=new o({schema:this.schema,channelName:this.channelName,content:e.content,lockMs:e.lockMs,delayMs:e.delayMs});return this.registerFn({sortKey:JSON.stringify([t.channelName,t.createdAt.toISOString()]),execute:(a)=>t.execute(a)}),{messageId:t.id}}}class g{schema;channelName;registerFn;constructor(e){this.schema=e.schema,this.channelName=e.channelName,this.registerFn=e.registerFn}set(e){let t=new l({schema:this.schema,channelName:this.channelName,maxConcurrency:e.maxConcurrency,releaseIntervalMs:e.releaseIntervalMs});this.registerFn({sortKey:JSON.stringify([t.channelName,t.createdAt.toISOString()]),execute:async(a)=>{await t.execute(a)}})}clear(){let e=new c({schema:this.schema,channelName:this.channelName});this.registerFn({sortKey:JSON.stringify([e.channelName,e.createdAt.toISOString()]),execute:async(t)=>{await e.execute(t)}})}}class S{policy;message;constructor(e){this.message=new N(e),this.policy=new g(e)}}class R{schema;registerFn;constructor(e){this.schema=e.schema,this.registerFn=e.registerFn}create(e){let t=new o({schema:this.schema,content:e.content,lockMs:e.lockMs,delayMs:e.delayMs});return this.registerFn({sortKey:JSON.stringify([t.channelName,t.createdAt.toISOString()]),execute:(a)=>t.execute(a)}),{messageId:t.id,channelName:t.channelName}}}var _e=(e,t)=>{return e.sortKey.localeCompare(t.sortKey)};class A{commands;schema;adaptor;message;constructor(e){this.schema=e.schema,this.adaptor=e.adaptor,this.commands=[],this.message=new R({schema:this.schema,registerFn:(t)=>this.commands.push(t)})}channel(e){return new S({schema:this.schema,channelName:e,registerFn:(t)=>this.commands.push(t)})}async execute(e){let t=this.adaptor(e.databaseClient);for(let a of this.commands.sort(_e))await a.execute(t)}}class p{schema;channelName;adaptor;constructor(e){this.schema=e.schema,this.adaptor=e.adaptor,this.channelName=e.channelName}async create(e){let t=this.adaptor(e.databaseClient),a=new o({schema:this.schema,channelName:this.channelName,content:e.content,lockMs:e.lockMs,delayMs:e.delayMs});return await a.execute(t),{messageId:a.id}}}class D{schema;adaptor;channelName;constructor(e){this.schema=e.schema,this.adaptor=e.adaptor,this.channelName=e.channelName}set(e){let t=this.adaptor(e.databaseClient);return new l({schema:this.schema,channelName:this.channelName,maxConcurrency:e.maxConcurrency,releaseIntervalMs:e.releaseIntervalMs}).execute(t)}clear(e){let t=this.adaptor(e.databaseClient);return new c({schema:this.schema,channelName:this.channelName}).execute(t)}}class y{policy;message;constructor(e){this.message=new p({schema:e.schema,adaptor:e.adaptor,channelName:e.channelName}),this.policy=new D({schema:e.schema,adaptor:e.adaptor,channelName:e.channelName})}}class M{schema;adaptor;id;isUnlocked;channelName;content;state;numAttempts;constructor(e){this.schema=e.schema,this.adaptor=e.adaptor,this.id=e.id,this.channelName=e.channelName,this.isUnlocked=e.isUnlocked,this.content=e.content,this.state=e.state,this.numAttempts=e.numAttempts}async defer(e){let t=this.adaptor(e.databaseClient);return new d({schema:this.schema,id:this.id,numAttempts:this.numAttempts,delayMs:e.delayMs,state:e.state}).execute(t)}async delete(e){let t=this.adaptor(e.databaseClient);return new u({schema:this.schema,numAttempts:this.numAttempts,id:this.id}).execute(t)}async heartbeat(e){let t=this.adaptor(e.databaseClient);return new T({schema:this.schema,id:this.id,numAttempts:this.numAttempts}).execute(t)}}class v{schema;adaptor;constructor(e){this.schema=e.schema,this.adaptor=e.adaptor}async create(e){let t=this.adaptor(e.databaseClient),a=new o({schema:this.schema,content:e.content,lockMs:e.lockMs,delayMs:e.delayMs});return await a.execute(t),{messageId:a.id,channelName:a.channelName}}}class w{schema;adaptor;message;constructor(e){this.schema=e.schema,this.adaptor=e.adaptor?e.adaptor:(t)=>t,this.message=new v({schema:this.schema,adaptor:this.adaptor})}async dequeue(e){let t=new i({schema:this.schema}),a=this.adaptor(e.databaseClient),_=await t.execute(a);if(_.resultType==="MESSAGE_DEQUEUED")return{resultType:"MESSAGE_DEQUEUED",message:new M({schema:this.schema,adaptor:this.adaptor,id:_.message.id,channelName:_.message.channelName,isUnlocked:_.message.isUnlocked,content:_.message.content,state:_.message.state,numAttempts:_.message.numAttempts})};else return _}channel(e){return new y({adaptor:this.adaptor,schema:this.schema,channelName:e})}batch(){return new A({schema:this.schema,adaptor:this.adaptor})}migrations(e={}){return[O,f,F,x,G,q,$,b,k,B].sort((t,a)=>t.name.localeCompare(a.name)).flatMap((t)=>t.sql({schema:this.schema,eventChannel:e.eventChannel??null})).map((t)=>C(t.value))}}export{P as queueEventDecode,w as Queue,T as MessageHeartbeatCommand,i as MessageDequeueCommand,u as MessageDeleteCommand,d as MessageDeferCommand,o as MessageCreateCommand,l as ChannelPolicySetCommand,c as ChannelPolicyClearCommand};
605
+ `]}};class h{schema;channelName;adaptor;constructor(e){this.schema=e.schema,this.adaptor=e.adaptor,this.channelName=e.channelName}async create(e){let t=this.adaptor(e.databaseClient),a=new c({schema:this.schema,channelName:this.channelName,content:e.content,lockMs:e.lockMs,delayMs:e.delayMs});return await a.execute(t),{messageId:a.id}}}class N{schema;adaptor;channelName;constructor(e){this.schema=e.schema,this.adaptor=e.adaptor,this.channelName=e.channelName}set(e){let t=this.adaptor(e.databaseClient);return new m({schema:this.schema,channelName:this.channelName,maxConcurrency:e.maxConcurrency,releaseIntervalMs:e.releaseIntervalMs}).execute(t)}clear(e){let t=this.adaptor(e.databaseClient);return new o({schema:this.schema,channelName:this.channelName}).execute(t)}}class S{policy;message;constructor(e){this.message=new h({schema:e.schema,adaptor:e.adaptor,channelName:e.channelName}),this.policy=new N({schema:e.schema,adaptor:e.adaptor,channelName:e.channelName})}}class R{schema;adaptor;id;isUnlocked;channelName;content;state;numAttempts;constructor(e){this.schema=e.schema,this.adaptor=e.adaptor,this.id=e.id,this.channelName=e.channelName,this.isUnlocked=e.isUnlocked,this.content=e.content,this.state=e.state,this.numAttempts=e.numAttempts}async defer(e){let t=this.adaptor(e.databaseClient);return new d({schema:this.schema,id:this.id,numAttempts:this.numAttempts,delayMs:e.delayMs,state:e.state}).execute(t)}async delete(e){let t=this.adaptor(e.databaseClient);return new u({schema:this.schema,numAttempts:this.numAttempts,id:this.id}).execute(t)}}class A{schema;adaptor;constructor(e){this.schema=e.schema,this.adaptor=e.adaptor}async create(e){let t=this.adaptor(e.databaseClient),a=new c({schema:this.schema,content:e.content,lockMs:e.lockMs,delayMs:e.delayMs});return await a.execute(t),{messageId:a.id,channelName:a.channelName}}}class x{schema;adaptor;message;constructor(e){this.schema=e.schema,this.adaptor=e.adaptor?e.adaptor:(t)=>t,this.message=new A({schema:this.schema,adaptor:this.adaptor})}async dequeue(e){let t=new i({schema:this.schema}),a=this.adaptor(e.databaseClient),r=await t.execute(a);if(r.resultType==="MESSAGE_DEQUEUED")return{resultType:"MESSAGE_DEQUEUED",message:new R({schema:this.schema,adaptor:this.adaptor,id:r.message.id,channelName:r.message.channelName,isUnlocked:r.message.isUnlocked,content:r.message.content,state:r.message.state,numAttempts:r.message.numAttempts})};else return r}channel(e){return new S({adaptor:this.adaptor,schema:this.schema,channelName:e})}migrations(e={}){return[v,M,I,L,U,O,C,q,f].sort((t,a)=>t.name.localeCompare(a.name)).flatMap((t)=>t.sql({schema:this.schema,eventChannel:e.eventChannel??null})).map((t)=>p(t.value))}}export{$ as queueEventDecode,x as Queue,i as MessageDequeueCommand,u as MessageDeleteCommand,d as MessageDeferCommand,c as MessageCreateCommand,m as ChannelPolicySetCommand,o as ChannelPolicyClearCommand};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lonnymq",
3
- "version": "0.0.20",
3
+ "version": "0.0.21",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {