lonnymq 0.0.10 → 0.0.12
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.cjs +20 -22
- package/dist/index.js +17 -19
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var{defineProperty:h,getOwnPropertyNames:z,getOwnPropertyDescriptor:V}=Object,W=Object.prototype.hasOwnProperty;var I=new WeakMap,Y=(e)=>{var t=I.get(e),s;if(t)return t;if(t=h({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")z(e).map((E)=>!W.call(t,E)&&h(t,E,{get:()=>e[E],enumerable:!(s=V(e,E))||s.enumerable}));return I.set(e,t),t};var X=(e,t)=>{for(var s in t)h(e,s,{get:t[s],enumerable:!0,configurable:!0,set:(E)=>t[s]=()=>E})};var ce={};X(ce,{queueEventDecode:()=>f,Queue:()=>L,MessageDequeueCommand:()=>
|
|
1
|
+
var{defineProperty:h,getOwnPropertyNames:z,getOwnPropertyDescriptor:V}=Object,W=Object.prototype.hasOwnProperty;var I=new WeakMap,Y=(e)=>{var t=I.get(e),s;if(t)return t;if(t=h({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")z(e).map((E)=>!W.call(t,E)&&h(t,E,{get:()=>e[E],enumerable:!(s=V(e,E))||s.enumerable}));return I.set(e,t),t};var X=(e,t)=>{for(var s in t)h(e,s,{get:t[s],enumerable:!0,configurable:!0,set:(E)=>t[s]=()=>E})};var ce={};X(ce,{queueEventDecode:()=>f,Queue:()=>L,MessageDequeueCommand:()=>o,MessageDeleteCommand:()=>i,MessageDeferCommand:()=>u,MessageCreateCommand:()=>m,ChannelPolicySetCommand:()=>c,ChannelPolicyClearCommand:()=>l});module.exports=Y(ce);var r=(e)=>({nodeType:"VALUE",value:e}),n=(e)=>({nodeType:"REF",value:e}),J=(e)=>({nodeType:"RAW",value:e}),K=(e)=>{return`'${e.replace(/'/g,"''")}'`},j=(e)=>{if(e===null)return"NULL";else if(typeof e==="string")return K(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}`)},Z=(e)=>{return`"${e.replace(/"/g,'""')}"`},ee=(e)=>{if(e.nodeType==="VALUE")return j(e.value);else if(e.nodeType==="REF")return Z(e.value);else if(e.nodeType==="RAW")return e.value;else throw new Error("Unsupported SQL node type")};var a=(e,...t)=>{let s=[];for(let E=0;E<e.length;E+=1)if(s.push(e[E]),E<t.length)s.push(ee(t[E]));return J(s.join(""))};class l{schema;channelName;createdAt;constructor(e){this.schema=e.schema,this.channelName=e.channelName,this.createdAt=new Date}sortKeyGet(){return JSON.stringify([this.channelName,null,this.createdAt.toISOString()])}async execute(e){await e.query(a`
|
|
2
2
|
SELECT 1 FROM ${n(this.schema)}."channel_policy_clear"(
|
|
3
3
|
$1
|
|
4
4
|
)
|
|
@@ -9,16 +9,16 @@ var{defineProperty:h,getOwnPropertyNames:z,getOwnPropertyDescriptor:V}=Object,W=
|
|
|
9
9
|
$3::INTEGER,
|
|
10
10
|
$4::INTEGER
|
|
11
11
|
)
|
|
12
|
-
`.value,[this.channelName,this.maxSize,this.maxConcurrency,this.releaseIntervalMs])}}var N=(e)=>{return e*1000},te=(e)=>{return N(e*60)},U=(e)=>{return te(e*60)};var d=N(0),O=U(1);var f=(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 x=require("node:crypto");class
|
|
12
|
+
`.value,[this.channelName,this.maxSize,this.maxConcurrency,this.releaseIntervalMs])}}var N=(e)=>{return e*1000},te=(e)=>{return N(e*60)},U=(e)=>{return te(e*60)};var d=N(0),O=U(1);var f=(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 x=require("node:crypto");class m{schema;channelName;name;content;lockMs;id;delayMs;createdAt;constructor(e){let t=e.name??null,s=e.lockMs===void 0?O:Math.max(0,e.lockMs),E=e.delayMs===void 0?d:e.delayMs;this.id=x.randomUUID(),this.schema=e.schema,this.channelName=e.channelName,this.content=e.content,this.name=t,this.lockMs=s,this.delayMs=E,this.createdAt=new Date}async execute(e){let t=await e.query(a`
|
|
13
13
|
SELECT * FROM ${n(this.schema)}."message_create"(
|
|
14
14
|
$1,
|
|
15
15
|
$2,
|
|
16
16
|
$3,
|
|
17
17
|
$4,
|
|
18
|
-
$5::
|
|
19
|
-
$6::
|
|
18
|
+
$5::BIGINT,
|
|
19
|
+
$6::BIGINT
|
|
20
20
|
)
|
|
21
|
-
`.value,[this.id,this.channelName,this.name,this.content,this.lockMs,this.delayMs]).then((s)=>s.rows[0]);if(t.result_code===1)return{resultType:"MESSAGE_DROPPED"};else if(t.result_code===2)return{resultType:"MESSAGE_DEDUPLICATED"};else if(t.result_code===0)return{resultType:"MESSAGE_CREATED"};else throw new Error("Unexpected result")}}class
|
|
21
|
+
`.value,[this.id,this.channelName,this.name,this.content,this.lockMs,this.delayMs]).then((s)=>s.rows[0]);if(t.result_code===1)return{resultType:"MESSAGE_DROPPED"};else if(t.result_code===2)return{resultType:"MESSAGE_DEDUPLICATED"};else if(t.result_code===0)return{resultType:"MESSAGE_CREATED"};else throw new Error("Unexpected result")}}class o{schema;constructor(e){this.schema=e.schema}async execute(e){let t=await e.query(a`
|
|
22
22
|
SELECT
|
|
23
23
|
result_code,
|
|
24
24
|
metadata,
|
|
@@ -32,7 +32,7 @@ var{defineProperty:h,getOwnPropertyNames:z,getOwnPropertyDescriptor:V}=Object,W=
|
|
|
32
32
|
`.value,[this.id]).then((s)=>s.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 u{schema;id;delayMs;state;constructor(e){let t=e.delayMs===void 0?d:e.delayMs;this.schema=e.schema,this.id=e.id,this.delayMs=t,this.state=e.state??null}async execute(e){let t=await e.query(a`
|
|
33
33
|
SELECT * FROM ${n(this.schema)}."message_defer"(
|
|
34
34
|
$1,
|
|
35
|
-
$2,
|
|
35
|
+
$2::BIGINT,
|
|
36
36
|
$3
|
|
37
37
|
)
|
|
38
38
|
`.value,[this.id,this.delayMs,this.state]).then((s)=>s.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 G=(e)=>{let t=e.split(`
|
|
@@ -84,9 +84,9 @@ var{defineProperty:h,getOwnPropertyNames:z,getOwnPropertyDescriptor:V}=Object,W=
|
|
|
84
84
|
"name" TEXT,
|
|
85
85
|
"content" BYTEA NOT NULL,
|
|
86
86
|
"state" BYTEA,
|
|
87
|
-
"lock_ms"
|
|
88
|
-
"is_locked" BOOLEAN NOT NULL
|
|
89
|
-
"num_attempts"
|
|
87
|
+
"lock_ms" BIGINT NOT NULL,
|
|
88
|
+
"is_locked" BOOLEAN NOT NULL,
|
|
89
|
+
"num_attempts" BIGINT NOT NULL,
|
|
90
90
|
"dequeue_at" TIMESTAMP NOT NULL,
|
|
91
91
|
"unlock_at" TIMESTAMP,
|
|
92
92
|
"created_at" TIMESTAMP NOT NULL,
|
|
@@ -110,14 +110,14 @@ var{defineProperty:h,getOwnPropertyNames:z,getOwnPropertyDescriptor:V}=Object,W=
|
|
|
110
110
|
ON ${n(e.schema)}."message" (
|
|
111
111
|
"unlock_at" ASC
|
|
112
112
|
) WHERE "is_locked";
|
|
113
|
-
`]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/03-function-message-create.ts",
|
|
113
|
+
`]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/03-function-message-create.ts",B={name:_(__filename),sql:(e)=>{return[a`
|
|
114
114
|
CREATE FUNCTION ${n(e.schema)}."message_create" (
|
|
115
115
|
p_id UUID,
|
|
116
116
|
p_channel_name TEXT,
|
|
117
117
|
p_name TEXT,
|
|
118
118
|
p_content BYTEA,
|
|
119
|
-
p_lock_ms
|
|
120
|
-
p_delay_ms
|
|
119
|
+
p_lock_ms BIGINT,
|
|
120
|
+
p_delay_ms BIGINT
|
|
121
121
|
) RETURNS TABLE (
|
|
122
122
|
result_code INTEGER
|
|
123
123
|
) AS $$
|
|
@@ -184,6 +184,8 @@ var{defineProperty:h,getOwnPropertyNames:z,getOwnPropertyDescriptor:V}=Object,W=
|
|
|
184
184
|
"name",
|
|
185
185
|
"content",
|
|
186
186
|
"lock_ms",
|
|
187
|
+
"is_locked",
|
|
188
|
+
"num_attempts",
|
|
187
189
|
"dequeue_at",
|
|
188
190
|
"created_at"
|
|
189
191
|
) VALUES (
|
|
@@ -192,6 +194,8 @@ var{defineProperty:h,getOwnPropertyNames:z,getOwnPropertyDescriptor:V}=Object,W=
|
|
|
192
194
|
p_name,
|
|
193
195
|
p_content,
|
|
194
196
|
p_lock_ms,
|
|
197
|
+
FALSE,
|
|
198
|
+
0,
|
|
195
199
|
v_now + INTERVAL '1 MILLISECOND' * p_delay_ms,
|
|
196
200
|
v_now
|
|
197
201
|
) ON CONFLICT ("channel_name", "name")
|
|
@@ -248,7 +252,7 @@ var{defineProperty:h,getOwnPropertyNames:z,getOwnPropertyDescriptor:V}=Object,W=
|
|
|
248
252
|
RETURN;
|
|
249
253
|
END;
|
|
250
254
|
$$ LANGUAGE plpgsql;
|
|
251
|
-
`]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/04-function-message-dequeue.ts",
|
|
255
|
+
`]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/04-function-message-dequeue.ts",P={name:_(__filename),sql:(e)=>{return[a`
|
|
252
256
|
CREATE FUNCTION ${n(e.schema)}."message_dequeue" ()
|
|
253
257
|
RETURNS TABLE (
|
|
254
258
|
result_code INTEGER,
|
|
@@ -403,7 +407,7 @@ var{defineProperty:h,getOwnPropertyNames:z,getOwnPropertyDescriptor:V}=Object,W=
|
|
|
403
407
|
RETURN;
|
|
404
408
|
END;
|
|
405
409
|
$$ LANGUAGE plpgsql;
|
|
406
|
-
`]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/05-function-message-delete.ts",
|
|
410
|
+
`]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/05-function-message-delete.ts",b={name:_(__filename),sql:(e)=>{return[a`
|
|
407
411
|
CREATE FUNCTION ${n(e.schema)}."message_delete" (
|
|
408
412
|
p_id UUID
|
|
409
413
|
)
|
|
@@ -481,7 +485,7 @@ var{defineProperty:h,getOwnPropertyNames:z,getOwnPropertyDescriptor:V}=Object,W=
|
|
|
481
485
|
`]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/06-function-message-defer.ts",Q={name:_(__filename),sql:(e)=>{return[a`
|
|
482
486
|
CREATE FUNCTION ${n(e.schema)}."message_defer" (
|
|
483
487
|
p_id UUID,
|
|
484
|
-
p_delay_ms
|
|
488
|
+
p_delay_ms BIGINT,
|
|
485
489
|
p_state BYTEA
|
|
486
490
|
)
|
|
487
491
|
RETURNS TABLE (
|
|
@@ -529,12 +533,6 @@ var{defineProperty:h,getOwnPropertyNames:z,getOwnPropertyDescriptor:V}=Object,W=
|
|
|
529
533
|
|
|
530
534
|
v_dequeue_at := v_now + INTERVAL '1 MILLISECOND' * p_delay_ms;
|
|
531
535
|
|
|
532
|
-
v_dequeue_at := GREATEST(
|
|
533
|
-
v_now,
|
|
534
|
-
v_now + INTERVAL '1 MILLISECOND' * p_delay_ms,
|
|
535
|
-
v_channel_state."message_last_dequeued_at"
|
|
536
|
-
);
|
|
537
|
-
|
|
538
536
|
IF
|
|
539
537
|
v_channel_state."message_id" IS NULL OR
|
|
540
538
|
v_dequeue_at < v_channel_state."message_dequeue_at" OR
|
|
@@ -644,4 +642,4 @@ var{defineProperty:h,getOwnPropertyNames:z,getOwnPropertyDescriptor:V}=Object,W=
|
|
|
644
642
|
END IF;
|
|
645
643
|
END;
|
|
646
644
|
$$ LANGUAGE plpgsql;
|
|
647
|
-
`]}};class S{schema;channelName;registerFn;constructor(e){this.schema=e.schema,this.channelName=e.channelName,this.registerFn=e.registerFn}create(e){let t=new
|
|
645
|
+
`]}};class S{schema;channelName;registerFn;constructor(e){this.schema=e.schema,this.channelName=e.channelName,this.registerFn=e.registerFn}create(e){let t=new m({schema:this.schema,channelName:this.channelName,name:e.name,content:e.content,lockMs:e.lockMs,delayMs:e.delayMs}),s=new Promise((E)=>{this.registerFn({sortKey:JSON.stringify([t.channelName,t.name,t.createdAt.toISOString()]),execute:(T)=>t.execute(T).then((H)=>E(H))})});return{messageId:t.id,promise:s}}}class D{schema;channelName;registerFn;constructor(e){this.schema=e.schema,this.channelName=e.channelName,this.registerFn=e.registerFn}set(e){let t=new c({schema:this.schema,channelName:this.channelName,maxConcurrency:e.maxConcurrency,maxSize:e.maxSize,releaseIntervalMs:e.releaseIntervalMs});this.registerFn({sortKey:JSON.stringify([t.channelName,null,t.createdAt.toISOString()]),execute:async(s)=>{await t.execute(s)}})}clear(){let e=new l({schema:this.schema,channelName:this.channelName});this.registerFn({sortKey:JSON.stringify([e.channelName,null,e.createdAt.toISOString()]),execute:async(t)=>{await e.execute(t)}})}}class A{policy;message;constructor(e){this.message=new S(e),this.policy=new D(e)}}var le=(e,t)=>{return e.sortKey.localeCompare(t.sortKey)};class y{commands;schema;constructor(e){this.commands=[],this.schema=e.schema}channel(e){return new A({schema:this.schema,channelName:e,registerFn:(t)=>{this.commands.push(t)}})}async execute(e){for(let t of this.commands.sort(le))await t.execute(e.databaseClient)}}class M{schema;channelName;constructor(e){this.schema=e.schema,this.channelName=e.channelName}async create(e){return new m({schema:this.schema,channelName:this.channelName,name:e.name,content:e.content,lockMs:e.lockMs,delayMs:e.delayMs}).execute(e.databaseClient)}}class p{schema;channelName;constructor(e){this.schema=e.schema,this.channelName=e.channelName}set(e){return new c({schema:this.schema,channelName:this.channelName,maxConcurrency:e.maxConcurrency,maxSize:e.maxSize,releaseIntervalMs:e.releaseIntervalMs}).execute(e.databaseClient)}clear(e){return new l({schema:this.schema,channelName:this.channelName}).execute(e.databaseClient)}}class C{policy;message;constructor(e){this.message=new M({schema:e.schema,channelName:e.channelName}),this.policy=new p({schema:e.schema,channelName:e.channelName})}}class v{schema;id;channelName;name;content;state;numAttempts;constructor(e){this.schema=e.schema,this.id=e.id,this.channelName=e.channelName,this.name=e.name,this.content=e.content,this.state=e.state,this.numAttempts=e.numAttempts}async defer(e){return new u({schema:this.schema,id:this.id,delayMs:e.delayMs,state:e.state}).execute(e.databaseClient)}async delete(e){return new i({schema:this.schema,id:this.id}).execute(e.databaseClient)}}class L{schema;constructor(e){this.schema=e.schema}async dequeue(e){let s=await new o({schema:this.schema}).execute(e.databaseClient);if(s.resultType==="MESSAGE_DEQUEUED")return{resultType:"MESSAGE_DEQUEUED",message:new v({schema:this.schema,id:s.message.id,channelName:s.message.channelName,name:s.message.name,content:s.message.content,state:s.message.state,numAttempts:s.message.numAttempts})};else return s}channel(e){return new C({schema:this.schema,channelName:e})}batch(){return new y({schema:this.schema})}migrations(e={}){return[F,q,$,B,P,b,Q,w,k].sort((t,s)=>t.name.localeCompare(s.name)).flatMap((t)=>t.sql({schema:this.schema,eventChannel:e.eventChannel??null})).map((t)=>G(t.value))}}
|
package/dist/index.js
CHANGED
|
@@ -9,14 +9,14 @@ var r=(e)=>({nodeType:"VALUE",value:e}),n=(e)=>({nodeType:"REF",value:e}),Q=(e)=
|
|
|
9
9
|
$3::INTEGER,
|
|
10
10
|
$4::INTEGER
|
|
11
11
|
)
|
|
12
|
-
`.value,[this.channelName,this.maxSize,this.maxConcurrency,this.releaseIntervalMs])}}var h=(e)=>{return e*1000},V=(e)=>{return h(e*60)},C=(e)=>{return V(e*60)};var
|
|
12
|
+
`.value,[this.channelName,this.maxSize,this.maxConcurrency,this.releaseIntervalMs])}}var h=(e)=>{return e*1000},V=(e)=>{return h(e*60)},C=(e)=>{return V(e*60)};var o=h(0),v=C(1);var W=(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")};import{randomUUID as X}from"node:crypto";class m{schema;channelName;name;content;lockMs;id;delayMs;createdAt;constructor(e){let t=e.name??null,a=e.lockMs===void 0?v:Math.max(0,e.lockMs),_=e.delayMs===void 0?o:e.delayMs;this.id=X(),this.schema=e.schema,this.channelName=e.channelName,this.content=e.content,this.name=t,this.lockMs=a,this.delayMs=_,this.createdAt=new Date}async execute(e){let t=await e.query(s`
|
|
13
13
|
SELECT * FROM ${n(this.schema)}."message_create"(
|
|
14
14
|
$1,
|
|
15
15
|
$2,
|
|
16
16
|
$3,
|
|
17
17
|
$4,
|
|
18
|
-
$5::
|
|
19
|
-
$6::
|
|
18
|
+
$5::BIGINT,
|
|
19
|
+
$6::BIGINT
|
|
20
20
|
)
|
|
21
21
|
`.value,[this.id,this.channelName,this.name,this.content,this.lockMs,this.delayMs]).then((a)=>a.rows[0]);if(t.result_code===1)return{resultType:"MESSAGE_DROPPED"};else if(t.result_code===2)return{resultType:"MESSAGE_DEDUPLICATED"};else if(t.result_code===0)return{resultType:"MESSAGE_CREATED"};else throw new Error("Unexpected result")}}class i{schema;constructor(e){this.schema=e.schema}async execute(e){let t=await e.query(s`
|
|
22
22
|
SELECT
|
|
@@ -29,10 +29,10 @@ var r=(e)=>({nodeType:"VALUE",value:e}),n=(e)=>({nodeType:"REF",value:e}),Q=(e)=
|
|
|
29
29
|
SELECT * FROM ${n(this.schema)}."message_delete"(
|
|
30
30
|
$1
|
|
31
31
|
)
|
|
32
|
-
`.value,[this.id]).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;delayMs;state;constructor(e){let t=e.delayMs===void 0?
|
|
32
|
+
`.value,[this.id]).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;delayMs;state;constructor(e){let t=e.delayMs===void 0?o:e.delayMs;this.schema=e.schema,this.id=e.id,this.delayMs=t,this.state=e.state??null}async execute(e){let t=await e.query(s`
|
|
33
33
|
SELECT * FROM ${n(this.schema)}."message_defer"(
|
|
34
34
|
$1,
|
|
35
|
-
$2,
|
|
35
|
+
$2::BIGINT,
|
|
36
36
|
$3
|
|
37
37
|
)
|
|
38
38
|
`.value,[this.id,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 L=(e)=>{let t=e.split(`
|
|
@@ -84,9 +84,9 @@ var r=(e)=>({nodeType:"VALUE",value:e}),n=(e)=>({nodeType:"REF",value:e}),Q=(e)=
|
|
|
84
84
|
"name" TEXT,
|
|
85
85
|
"content" BYTEA NOT NULL,
|
|
86
86
|
"state" BYTEA,
|
|
87
|
-
"lock_ms"
|
|
88
|
-
"is_locked" BOOLEAN NOT NULL
|
|
89
|
-
"num_attempts"
|
|
87
|
+
"lock_ms" BIGINT NOT NULL,
|
|
88
|
+
"is_locked" BOOLEAN NOT NULL,
|
|
89
|
+
"num_attempts" BIGINT NOT NULL,
|
|
90
90
|
"dequeue_at" TIMESTAMP NOT NULL,
|
|
91
91
|
"unlock_at" TIMESTAMP,
|
|
92
92
|
"created_at" TIMESTAMP NOT NULL,
|
|
@@ -116,8 +116,8 @@ var r=(e)=>({nodeType:"VALUE",value:e}),n=(e)=>({nodeType:"REF",value:e}),Q=(e)=
|
|
|
116
116
|
p_channel_name TEXT,
|
|
117
117
|
p_name TEXT,
|
|
118
118
|
p_content BYTEA,
|
|
119
|
-
p_lock_ms
|
|
120
|
-
p_delay_ms
|
|
119
|
+
p_lock_ms BIGINT,
|
|
120
|
+
p_delay_ms BIGINT
|
|
121
121
|
) RETURNS TABLE (
|
|
122
122
|
result_code INTEGER
|
|
123
123
|
) AS $$
|
|
@@ -184,6 +184,8 @@ var r=(e)=>({nodeType:"VALUE",value:e}),n=(e)=>({nodeType:"REF",value:e}),Q=(e)=
|
|
|
184
184
|
"name",
|
|
185
185
|
"content",
|
|
186
186
|
"lock_ms",
|
|
187
|
+
"is_locked",
|
|
188
|
+
"num_attempts",
|
|
187
189
|
"dequeue_at",
|
|
188
190
|
"created_at"
|
|
189
191
|
) VALUES (
|
|
@@ -192,6 +194,8 @@ var r=(e)=>({nodeType:"VALUE",value:e}),n=(e)=>({nodeType:"REF",value:e}),Q=(e)=
|
|
|
192
194
|
p_name,
|
|
193
195
|
p_content,
|
|
194
196
|
p_lock_ms,
|
|
197
|
+
FALSE,
|
|
198
|
+
0,
|
|
195
199
|
v_now + INTERVAL '1 MILLISECOND' * p_delay_ms,
|
|
196
200
|
v_now
|
|
197
201
|
) ON CONFLICT ("channel_name", "name")
|
|
@@ -481,7 +485,7 @@ var r=(e)=>({nodeType:"VALUE",value:e}),n=(e)=>({nodeType:"REF",value:e}),Q=(e)=
|
|
|
481
485
|
`]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/06-function-message-defer.ts",q={name:E(__filename),sql:(e)=>{return[s`
|
|
482
486
|
CREATE FUNCTION ${n(e.schema)}."message_defer" (
|
|
483
487
|
p_id UUID,
|
|
484
|
-
p_delay_ms
|
|
488
|
+
p_delay_ms BIGINT,
|
|
485
489
|
p_state BYTEA
|
|
486
490
|
)
|
|
487
491
|
RETURNS TABLE (
|
|
@@ -529,12 +533,6 @@ var r=(e)=>({nodeType:"VALUE",value:e}),n=(e)=>({nodeType:"REF",value:e}),Q=(e)=
|
|
|
529
533
|
|
|
530
534
|
v_dequeue_at := v_now + INTERVAL '1 MILLISECOND' * p_delay_ms;
|
|
531
535
|
|
|
532
|
-
v_dequeue_at := GREATEST(
|
|
533
|
-
v_now,
|
|
534
|
-
v_now + INTERVAL '1 MILLISECOND' * p_delay_ms,
|
|
535
|
-
v_channel_state."message_last_dequeued_at"
|
|
536
|
-
);
|
|
537
|
-
|
|
538
536
|
IF
|
|
539
537
|
v_channel_state."message_id" IS NULL OR
|
|
540
538
|
v_dequeue_at < v_channel_state."message_dequeue_at" OR
|
|
@@ -614,7 +612,7 @@ var r=(e)=>({nodeType:"VALUE",value:e}),n=(e)=>({nodeType:"REF",value:e}),Q=(e)=
|
|
|
614
612
|
WHERE "name" = p_name;
|
|
615
613
|
END;
|
|
616
614
|
$$ LANGUAGE plpgsql;
|
|
617
|
-
`]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/08-function-channel-policy-clear.ts",
|
|
615
|
+
`]}};var __filename="/home/runner/work/lonnymq/lonnymq/src/migration/08-function-channel-policy-clear.ts",B={name:E(__filename),sql:(e)=>{return[s`
|
|
618
616
|
CREATE FUNCTION ${n(e.schema)}."channel_policy_clear" (
|
|
619
617
|
p_name TEXT
|
|
620
618
|
) RETURNS VOID AS $$
|
|
@@ -644,4 +642,4 @@ var r=(e)=>({nodeType:"VALUE",value:e}),n=(e)=>({nodeType:"REF",value:e}),Q=(e)=
|
|
|
644
642
|
END IF;
|
|
645
643
|
END;
|
|
646
644
|
$$ LANGUAGE plpgsql;
|
|
647
|
-
`]}};class R{schema;channelName;registerFn;constructor(e){this.schema=e.schema,this.channelName=e.channelName,this.registerFn=e.registerFn}create(e){let t=new
|
|
645
|
+
`]}};class R{schema;channelName;registerFn;constructor(e){this.schema=e.schema,this.channelName=e.channelName,this.registerFn=e.registerFn}create(e){let t=new m({schema:this.schema,channelName:this.channelName,name:e.name,content:e.content,lockMs:e.lockMs,delayMs:e.delayMs}),a=new Promise((_)=>{this.registerFn({sortKey:JSON.stringify([t.channelName,t.name,t.createdAt.toISOString()]),execute:(T)=>t.execute(T).then((b)=>_(b))})});return{messageId:t.id,promise:a}}}class g{schema;channelName;registerFn;constructor(e){this.schema=e.schema,this.channelName=e.channelName,this.registerFn=e.registerFn}set(e){let t=new c({schema:this.schema,channelName:this.channelName,maxConcurrency:e.maxConcurrency,maxSize:e.maxSize,releaseIntervalMs:e.releaseIntervalMs});this.registerFn({sortKey:JSON.stringify([t.channelName,null,t.createdAt.toISOString()]),execute:async(a)=>{await t.execute(a)}})}clear(){let e=new l({schema:this.schema,channelName:this.channelName});this.registerFn({sortKey:JSON.stringify([e.channelName,null,e.createdAt.toISOString()]),execute:async(t)=>{await e.execute(t)}})}}class S{policy;message;constructor(e){this.message=new R(e),this.policy=new g(e)}}var te=(e,t)=>{return e.sortKey.localeCompare(t.sortKey)};class D{commands;schema;constructor(e){this.commands=[],this.schema=e.schema}channel(e){return new S({schema:this.schema,channelName:e,registerFn:(t)=>{this.commands.push(t)}})}async execute(e){for(let t of this.commands.sort(te))await t.execute(e.databaseClient)}}class A{schema;channelName;constructor(e){this.schema=e.schema,this.channelName=e.channelName}async create(e){return new m({schema:this.schema,channelName:this.channelName,name:e.name,content:e.content,lockMs:e.lockMs,delayMs:e.delayMs}).execute(e.databaseClient)}}class y{schema;channelName;constructor(e){this.schema=e.schema,this.channelName=e.channelName}set(e){return new c({schema:this.schema,channelName:this.channelName,maxConcurrency:e.maxConcurrency,maxSize:e.maxSize,releaseIntervalMs:e.releaseIntervalMs}).execute(e.databaseClient)}clear(e){return new l({schema:this.schema,channelName:this.channelName}).execute(e.databaseClient)}}class M{policy;message;constructor(e){this.message=new A({schema:e.schema,channelName:e.channelName}),this.policy=new y({schema:e.schema,channelName:e.channelName})}}class p{schema;id;channelName;name;content;state;numAttempts;constructor(e){this.schema=e.schema,this.id=e.id,this.channelName=e.channelName,this.name=e.name,this.content=e.content,this.state=e.state,this.numAttempts=e.numAttempts}async defer(e){return new d({schema:this.schema,id:this.id,delayMs:e.delayMs,state:e.state}).execute(e.databaseClient)}async delete(e){return new u({schema:this.schema,id:this.id}).execute(e.databaseClient)}}class P{schema;constructor(e){this.schema=e.schema}async dequeue(e){let a=await new i({schema:this.schema}).execute(e.databaseClient);if(a.resultType==="MESSAGE_DEQUEUED")return{resultType:"MESSAGE_DEQUEUED",message:new p({schema:this.schema,id:a.message.id,channelName:a.message.channelName,name:a.message.name,content:a.message.content,state:a.message.state,numAttempts:a.message.numAttempts})};else return a}channel(e){return new M({schema:this.schema,channelName:e})}batch(){return new D({schema:this.schema})}migrations(e={}){return[U,O,f,x,G,F,q,$,B].sort((t,a)=>t.name.localeCompare(a.name)).flatMap((t)=>t.sql({schema:this.schema,eventChannel:e.eventChannel??null})).map((t)=>L(t.value))}}export{W as queueEventDecode,P as Queue,i as MessageDequeueCommand,u as MessageDeleteCommand,d as MessageDeferCommand,m as MessageCreateCommand,c as ChannelPolicySetCommand,l as ChannelPolicyClearCommand};
|