@lssm/lib.jobs 0.0.0-canary-20251212224228 → 0.0.0-canary-20251213172311

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.
@@ -0,0 +1 @@
1
+ var e=Object.defineProperty,t=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,i=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n&&e(r,Symbol.toStringTag,{value:`Module`}),r},a=(i,a,o,s)=>{if(a&&typeof a==`object`||typeof a==`function`)for(var c=n(a),l=0,u=c.length,d;l<u;l++)d=c[l],!r.call(i,d)&&d!==o&&e(i,d,{get:(e=>a[e]).bind(null,d),enumerable:!(s=t(a,d))||s.enumerable});return i},o=(t,n,r,i)=>{i&&(e(t,Symbol.toStringTag,{value:`Module`}),r&&e(r,Symbol.toStringTag,{value:`Module`})),a(t,n,`default`),r&&a(r,n,`default`)};export{i as __export,o as __reExport};
@@ -0,0 +1 @@
1
+ function e(e){return async t=>{await e.syncThreads(t.payload)}}export{e as createGmailSyncHandler};
@@ -0,0 +1 @@
1
+ import{registerDefinedJob as e}from"../queue/register-defined-job.js";import{PING_JOB_TYPE as t,PingPayloadSchema as n,pingJob as r}from"./ping-job.js";import{createGmailSyncHandler as i}from"./gmail-sync-handler.js";import{createStorageDocumentHandler as a}from"./storage-document-handler.js";function o(t){e(t,r)}export{t as PING_JOB_TYPE,n as PingPayloadSchema,i as createGmailSyncHandler,a as createStorageDocumentHandler,r as pingJob,o as registerAllJobs};
@@ -0,0 +1 @@
1
+ import*as e from"zod";const t=`core.ping`,n=e.object({}),r={type:t,schema:n,handler:async(e,t)=>{}};export{t as PING_JOB_TYPE,n as PingPayloadSchema,r as pingJob};
@@ -0,0 +1 @@
1
+ function e(e,t){return async n=>{let r=await e.getObject({bucket:n.payload.bucket,key:n.payload.key});if(!r)throw Error(`Object ${n.payload.bucket}/${n.payload.key} not found`);await t.ingestObject(r)}}export{e as createStorageDocumentHandler};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{JobCancelledEvent as e,JobCompletedEvent as t,JobDeadLetteredEvent as n,JobEnqueuedEvent as r,JobEvents as i,JobFailedEvent as a,JobRetryingEvent as o,JobStartedEvent as s,ScheduledJobTriggeredEvent as c}from"./events.js";import{JobEntity as l,JobExecutionEntity as u,JobStatusEnum as d,ScheduledJobEntity as f,jobEntities as p,jobsSchemaContribution as m}from"./entities/index.js";import{DEFAULT_RETRY_POLICY as h,calculateBackoff as g,defineJobType as _}from"./queue/types.js";import{MemoryJobQueue as v}from"./queue/memory-queue.js";import"./queue/index.js";import{JobScheduler as y,createScheduler as b,defineSchedule as x}from"./scheduler/index.js";import{CancelJobContract as S,CreateScheduledJobContract as C,EnqueueJobContract as w,GetJobContract as T,GetQueueStatsContract as E,JobModel as D,ListScheduledJobsContract as O,QueueStatsModel as k,ScheduledJobModel as A,ToggleScheduledJobContract as j}from"./contracts/index.js";export{S as CancelJobContract,C as CreateScheduledJobContract,h as DEFAULT_RETRY_POLICY,w as EnqueueJobContract,T as GetJobContract,E as GetQueueStatsContract,e as JobCancelledEvent,t as JobCompletedEvent,n as JobDeadLetteredEvent,r as JobEnqueuedEvent,l as JobEntity,i as JobEvents,u as JobExecutionEntity,a as JobFailedEvent,D as JobModel,o as JobRetryingEvent,y as JobScheduler,s as JobStartedEvent,d as JobStatusEnum,O as ListScheduledJobsContract,v as MemoryJobQueue,k as QueueStatsModel,f as ScheduledJobEntity,A as ScheduledJobModel,c as ScheduledJobTriggeredEvent,j as ToggleScheduledJobContract,g as calculateBackoff,b as createScheduler,_ as defineJobType,x as defineSchedule,p as jobEntities,m as jobsSchemaContribution};
1
+ import{__export as e,__reExport as t}from"./_virtual/rolldown_runtime.js";import{JobCancelledEvent as n,JobCompletedEvent as r,JobDeadLetteredEvent as i,JobEnqueuedEvent as a,JobEvents as o,JobFailedEvent as s,JobRetryingEvent as c,JobStartedEvent as l,ScheduledJobTriggeredEvent as u}from"./events.js";import{JobEntity as d,JobExecutionEntity as f,JobStatusEnum as p,ScheduledJobEntity as m,jobEntities as h,jobsSchemaContribution as g}from"./entities/index.js";import{MemoryJobQueue as _}from"./queue/memory-queue.js";import{ScalewaySqsJobQueue as v}from"./queue/scaleway-sqs-queue.js";import{GcpCloudTasksQueue as y}from"./queue/gcp-cloud-tasks.js";import{GcpPubSubQueue as b}from"./queue/gcp-pubsub.js";import{registerDefinedJob as x}from"./queue/register-defined-job.js";import{queue_exports as S}from"./queue/index.js";import{PING_JOB_TYPE as C,PingPayloadSchema as w,pingJob as T}from"./handlers/ping-job.js";import{createGmailSyncHandler as E}from"./handlers/gmail-sync-handler.js";import{createStorageDocumentHandler as D}from"./handlers/storage-document-handler.js";import{registerAllJobs as O}from"./handlers/index.js";import{JobScheduler as k,createScheduler as A,defineSchedule as j}from"./scheduler/index.js";import{CancelJobContract as M,CreateScheduledJobContract as N,EnqueueJobContract as P,GetJobContract as F,GetQueueStatsContract as I,JobModel as L,ListScheduledJobsContract as R,QueueStatsModel as z,ScheduledJobModel as B,ToggleScheduledJobContract as V}from"./contracts/index.js";export*from"@lssm/lib.contracts/jobs/queue";t(e({CancelJobContract:()=>M,CreateScheduledJobContract:()=>N,EnqueueJobContract:()=>P,GcpCloudTasksQueue:()=>y,GcpPubSubQueue:()=>b,GetJobContract:()=>F,GetQueueStatsContract:()=>I,JobCancelledEvent:()=>n,JobCompletedEvent:()=>r,JobDeadLetteredEvent:()=>i,JobEnqueuedEvent:()=>a,JobEntity:()=>d,JobEvents:()=>o,JobExecutionEntity:()=>f,JobFailedEvent:()=>s,JobModel:()=>L,JobRetryingEvent:()=>c,JobScheduler:()=>k,JobStartedEvent:()=>l,JobStatusEnum:()=>p,ListScheduledJobsContract:()=>R,MemoryJobQueue:()=>_,PING_JOB_TYPE:()=>C,PingPayloadSchema:()=>w,QueueStatsModel:()=>z,ScalewaySqsJobQueue:()=>v,ScheduledJobEntity:()=>m,ScheduledJobModel:()=>B,ScheduledJobTriggeredEvent:()=>u,ToggleScheduledJobContract:()=>V,createGmailSyncHandler:()=>E,createScheduler:()=>A,createStorageDocumentHandler:()=>D,defineSchedule:()=>j,jobEntities:()=>h,jobsSchemaContribution:()=>g,pingJob:()=>T,registerAllJobs:()=>O,registerDefinedJob:()=>x}),S);export{M as CancelJobContract,N as CreateScheduledJobContract,P as EnqueueJobContract,y as GcpCloudTasksQueue,b as GcpPubSubQueue,F as GetJobContract,I as GetQueueStatsContract,n as JobCancelledEvent,r as JobCompletedEvent,i as JobDeadLetteredEvent,a as JobEnqueuedEvent,d as JobEntity,o as JobEvents,f as JobExecutionEntity,s as JobFailedEvent,L as JobModel,c as JobRetryingEvent,k as JobScheduler,l as JobStartedEvent,p as JobStatusEnum,R as ListScheduledJobsContract,_ as MemoryJobQueue,C as PING_JOB_TYPE,w as PingPayloadSchema,z as QueueStatsModel,v as ScalewaySqsJobQueue,m as ScheduledJobEntity,B as ScheduledJobModel,u as ScheduledJobTriggeredEvent,V as ToggleScheduledJobContract,E as createGmailSyncHandler,A as createScheduler,D as createStorageDocumentHandler,j as defineSchedule,h as jobEntities,g as jobsSchemaContribution,T as pingJob,O as registerAllJobs,x as registerDefinedJob};
@@ -0,0 +1 @@
1
+ import{types_exports as e}from"./types.js";import{randomUUID as t}from"node:crypto";var n=class{handlers=new Map;constructor(e){this.options=e}async enqueue(n,r,i={}){let a=new Date,o=i.delaySeconds==null?void 0:{seconds:Math.floor(Date.now()/1e3)+i.delaySeconds},s=Buffer.from(JSON.stringify({id:t(),type:n,payload:r}),`utf-8`);return await this.options.client.createTask({parent:`projects/${this.options.projectId}/locations/${this.options.location}/queues/${this.options.queue}`,task:{httpRequest:{httpMethod:`POST`,url:this.options.resolveUrl(n),body:s,headers:{"Content-Type":`application/json`},oidcToken:this.options.serviceAccountEmail?{serviceAccountEmail:this.options.serviceAccountEmail}:void 0},scheduleTime:o}}),{id:t(),type:n,version:1,payload:r,status:`pending`,priority:i.priority??0,attempts:0,maxRetries:i.maxRetries??e.DEFAULT_RETRY_POLICY.maxRetries,createdAt:a,updatedAt:a,scheduledAt:i.delaySeconds?new Date(a.getTime()+i.delaySeconds*1e3):a,dedupeKey:i.dedupeKey,tenantId:i.tenantId,userId:i.userId,traceId:i.traceId,metadata:i.metadata}}register(e,t){this.handlers.set(e,t)}start(){}async stop(){this.handlers.clear()}};export{n as GcpCloudTasksQueue};
@@ -0,0 +1 @@
1
+ import{types_exports as e}from"./types.js";import{randomUUID as t}from"node:crypto";var n=class{handlers=new Map;constructor(e){this.options=e}async enqueue(n,r,i={}){let a=new Date;return await this.options.client.topic(this.options.topicName).publishMessage({data:Buffer.from(JSON.stringify({id:t(),type:n,payload:r}),`utf-8`)}),{id:t(),type:n,version:1,payload:r,status:`pending`,priority:i.priority??0,attempts:0,maxRetries:i.maxRetries??e.DEFAULT_RETRY_POLICY.maxRetries,createdAt:a,updatedAt:a,scheduledAt:i.delaySeconds?new Date(a.getTime()+i.delaySeconds*1e3):a,dedupeKey:i.dedupeKey,tenantId:i.tenantId,userId:i.userId,traceId:i.traceId,metadata:i.metadata}}register(e,t){this.handlers.set(e,t)}start(){}async stop(){this.handlers.clear()}};export{n as GcpPubSubQueue};
@@ -1 +1 @@
1
- import{DEFAULT_RETRY_POLICY as e,calculateBackoff as t,defineJobType as n}from"./types.js";import{MemoryJobQueue as r}from"./memory-queue.js";export{e as DEFAULT_RETRY_POLICY,r as MemoryJobQueue,t as calculateBackoff,n as defineJobType};
1
+ import{__export as e,__reExport as t}from"../_virtual/rolldown_runtime.js";import{types_exports as n}from"./types.js";import{MemoryJobQueue as r}from"./memory-queue.js";import{ScalewaySqsJobQueue as i}from"./scaleway-sqs-queue.js";import{GcpCloudTasksQueue as a}from"./gcp-cloud-tasks.js";import{GcpPubSubQueue as o}from"./gcp-pubsub.js";import{registerDefinedJob as s}from"./register-defined-job.js";export*from"@lssm/lib.contracts/jobs/queue";var c=e({GcpCloudTasksQueue:()=>a,GcpPubSubQueue:()=>o,MemoryJobQueue:()=>r,ScalewaySqsJobQueue:()=>i,registerDefinedJob:()=>s});t(c,n);export{a as GcpCloudTasksQueue,o as GcpPubSubQueue,r as MemoryJobQueue,i as ScalewaySqsJobQueue,c as queue_exports,s as registerDefinedJob};
@@ -1 +1 @@
1
- import{DEFAULT_RETRY_POLICY as e,calculateBackoff as t}from"./types.js";import{randomUUID as n}from"node:crypto";var r=class{jobs=new Map;handlers=new Map;timer;activeCount=0;pollIntervalMs;concurrency;retryPolicy;constructor(t={}){this.pollIntervalMs=t.pollIntervalMs??200,this.concurrency=t.concurrency??5,this.retryPolicy=t.retryPolicy??e}async enqueue(e,t,r={}){if(r.dedupeKey){let e=Array.from(this.jobs.values()).find(e=>e.dedupeKey===r.dedupeKey&&e.status===`pending`);if(e)return e}let i=new Date,a=r.delaySeconds?new Date(i.getTime()+r.delaySeconds*1e3):i,o={id:n(),type:e,version:1,payload:t,status:`pending`,priority:r.priority??0,attempts:0,maxRetries:r.maxRetries??this.retryPolicy.maxRetries,createdAt:i,updatedAt:i,scheduledAt:a,dedupeKey:r.dedupeKey,tenantId:r.tenantId,userId:r.userId,traceId:r.traceId,metadata:r.metadata};return r.timeoutMs&&(o.timeoutAt=new Date(i.getTime()+r.timeoutMs)),this.jobs.set(o.id,o),o}register(e,t){this.handlers.set(e,t)}start(){this.timer||=setInterval(()=>{this.processNext()},this.pollIntervalMs)}async stop(){for(this.timer&&=(clearInterval(this.timer),void 0);this.activeCount>0;)await new Promise(e=>setTimeout(e,50))}async getJob(e){return this.jobs.get(e)??null}async cancelJob(e){let t=this.jobs.get(e);return!t||t.status!==`pending`?!1:(t.status=`cancelled`,t.updatedAt=new Date,!0)}async getStats(){let e={pending:0,running:0,completed:0,failed:0,deadLetter:0};for(let t of this.jobs.values())switch(t.status){case`pending`:e.pending++;break;case`running`:e.running++;break;case`completed`:e.completed++;break;case`failed`:e.failed++;break;case`dead_letter`:e.deadLetter++;break}return e}async processNext(){if(this.activeCount>=this.concurrency)return;let e=new Date,n=Array.from(this.jobs.values()).filter(t=>t.status===`pending`&&(!t.scheduledAt||t.scheduledAt<=e)).sort((e,t)=>e.priority===t.priority?(e.scheduledAt?.getTime()??0)-(t.scheduledAt?.getTime()??0):t.priority-e.priority)[0];if(!n)return;let r=this.handlers.get(n.type);if(r){this.activeCount++,n.status=`running`,n.startedAt=new Date,n.updatedAt=new Date,n.attempts+=1;try{let e=await r(n);n.status=`completed`,n.completedAt=new Date,n.result=e}catch(e){if(n.lastError=e instanceof Error?e.message:`Unknown error`,n.attempts>=n.maxRetries)n.status=`dead_letter`;else{let e=t(n.attempts,this.retryPolicy);n.status=`pending`,n.scheduledAt=new Date(Date.now()+e)}}finally{n.updatedAt=new Date,this.activeCount--}}}};export{r as MemoryJobQueue};
1
+ import{types_exports as e}from"./types.js";import{randomUUID as t}from"node:crypto";var n=class{jobs=new Map;handlers=new Map;timer;activeCount=0;pollIntervalMs;concurrency;retryPolicy;constructor(t={}){this.pollIntervalMs=t.pollIntervalMs??200,this.concurrency=t.concurrency??5,this.retryPolicy=t.retryPolicy??e.DEFAULT_RETRY_POLICY}async enqueue(e,n,r={}){if(r.dedupeKey){let e=Array.from(this.jobs.values()).find(e=>e.dedupeKey===r.dedupeKey&&e.status===`pending`);if(e)return e}let i=new Date,a=r.delaySeconds?new Date(i.getTime()+r.delaySeconds*1e3):i,o={id:t(),type:e,version:1,payload:n,status:`pending`,priority:r.priority??0,attempts:0,maxRetries:r.maxRetries??this.retryPolicy.maxRetries,createdAt:i,updatedAt:i,scheduledAt:a,dedupeKey:r.dedupeKey,tenantId:r.tenantId,userId:r.userId,traceId:r.traceId,metadata:r.metadata};return r.timeoutMs&&(o.timeoutAt=new Date(i.getTime()+r.timeoutMs)),this.jobs.set(o.id,o),o}register(e,t){this.handlers.set(e,t)}start(){this.timer||=setInterval(()=>{this.processNext()},this.pollIntervalMs)}async stop(){for(this.timer&&=(clearInterval(this.timer),void 0);this.activeCount>0;)await new Promise(e=>setTimeout(e,50))}async getJob(e){return this.jobs.get(e)??null}async cancelJob(e){let t=this.jobs.get(e);return!t||t.status!==`pending`?!1:(t.status=`cancelled`,t.updatedAt=new Date,!0)}async getStats(){let e={pending:0,running:0,completed:0,failed:0,deadLetter:0};for(let t of this.jobs.values())switch(t.status){case`pending`:e.pending++;break;case`running`:e.running++;break;case`completed`:e.completed++;break;case`failed`:e.failed++;break;case`dead_letter`:e.deadLetter++;break}return e}async processNext(){if(this.activeCount>=this.concurrency)return;let t=new Date,n=Array.from(this.jobs.values()).filter(e=>e.status===`pending`&&(!e.scheduledAt||e.scheduledAt<=t)).sort((e,t)=>e.priority===t.priority?(e.scheduledAt?.getTime()??0)-(t.scheduledAt?.getTime()??0):t.priority-e.priority)[0];if(!n)return;let r=this.handlers.get(n.type);if(r){this.activeCount++,n.status=`running`,n.startedAt=new Date,n.updatedAt=new Date,n.attempts+=1;try{let e=await r(n);n.status=`completed`,n.completedAt=new Date,n.result=e}catch(t){if(n.lastError=t instanceof Error?t.message:`Unknown error`,n.attempts>=n.maxRetries)n.status=`dead_letter`;else{let t=(0,e.calculateBackoff)(n.attempts,this.retryPolicy);n.status=`pending`,n.scheduledAt=new Date(Date.now()+t)}}finally{n.updatedAt=new Date,this.activeCount--}}}};export{n as MemoryJobQueue};
@@ -0,0 +1 @@
1
+ function e(e,t){e.register(t.type,async e=>{let n=t.schema.parse(e.payload),r={...e,payload:n};await t.handler(n,r)})}export{e as registerDefinedJob};
@@ -0,0 +1 @@
1
+ import{types_exports as e}from"./types.js";import{randomUUID as t}from"node:crypto";import{DeleteMessageCommand as n,ReceiveMessageCommand as r,SQSClient as i,SendMessageCommand as a}from"@aws-sdk/client-sqs";var o=class{sqs;queueUrl;waitTimeSeconds;maxNumberOfMessages;visibilityTimeoutSeconds;handlers=new Map;logger;running=!1;constructor(e){this.logger=e.logger;let t=e.credentials?.accessKeyId??process.env.SCALEWAY_ACCESS_KEY_QUEUE,n=e.credentials?.secretAccessKey??process.env.SCALEWAY_SECRET_KEY_QUEUE;if(!t||!n)throw Error(`Missing SCALEWAY_ACCESS_KEY_QUEUE / SCALEWAY_SECRET_KEY_QUEUE in env`);this.sqs=new i({region:e.region??process.env.SCALEWAY_REGION??`par`,endpoint:e.endpoint??`https://sqs.mnq.fr-par.scaleway.com`,credentials:{accessKeyId:t,secretAccessKey:n}}),this.queueUrl=e.queueUrl,this.waitTimeSeconds=e.waitTimeSeconds??20,this.maxNumberOfMessages=e.maxNumberOfMessages??5,this.visibilityTimeoutSeconds=e.visibilityTimeoutSeconds??60}async enqueue(n,r,i={}){let o=t(),s=new Date,c=i.delaySeconds?new Date(s.getTime()+i.delaySeconds*1e3):s,l={id:o,type:n,payload:r};return await this.sqs.send(new a({QueueUrl:this.queueUrl,MessageBody:JSON.stringify(l),DelaySeconds:i.delaySeconds??0})),{id:o,type:n,version:1,payload:r,status:`pending`,priority:i.priority??0,attempts:0,maxRetries:i.maxRetries??e.DEFAULT_RETRY_POLICY.maxRetries,createdAt:s,updatedAt:s,scheduledAt:c,dedupeKey:i.dedupeKey,tenantId:i.tenantId,userId:i.userId,traceId:i.traceId,metadata:i.metadata}}register(e,t){if(this.handlers.has(e))throw Error(`Handler already registered for job type "${e}"`);this.handlers.set(e,t)}start(){this.running||(this.running=!0,this.pollLoop().catch(e=>{this.logger?.error?.(`jobs.queue.scaleway_sqs.poll_loop_fatal`,{error:e instanceof Error?e.message:String(e)}),this.running=!1}))}async stop(){this.running=!1}async pollLoop(){for(this.logger?.info?.(`jobs.queue.scaleway_sqs.started`,{queueUrl:this.queueUrl});this.running;)try{let t=(await this.sqs.send(new r({QueueUrl:this.queueUrl,MaxNumberOfMessages:this.maxNumberOfMessages,WaitTimeSeconds:this.waitTimeSeconds,VisibilityTimeout:this.visibilityTimeoutSeconds,MessageSystemAttributeNames:[`ApproximateReceiveCount`]}))).Messages??[];if(t.length===0)continue;for(let n of t){if(!n.Body||!n.ReceiptHandle){this.logger?.warn?.(`jobs.queue.scaleway_sqs.invalid_message`,{messageId:n.MessageId,reason:`missing_body_or_receipt`});continue}let t;try{t=JSON.parse(n.Body)}catch(e){this.logger?.warn?.(`jobs.queue.scaleway_sqs.parse_failed`,{messageId:n.MessageId,error:e instanceof Error?e.message:String(e)}),await this.deleteMessage(n.ReceiptHandle);continue}let r=this.handlers.get(t.type);if(!r){this.logger?.warn?.(`jobs.queue.scaleway_sqs.missing_handler`,{jobType:t.type,messageId:n.MessageId}),await this.deleteMessage(n.ReceiptHandle);continue}let i=new Date,a=parseInt(n.Attributes?.ApproximateReceiveCount??`1`,10),o={id:t.id,type:t.type,version:1,payload:t.payload,status:`pending`,priority:0,attempts:a,maxRetries:e.DEFAULT_RETRY_POLICY.maxRetries,createdAt:i,updatedAt:i};o.status=`running`,o.updatedAt=new Date;try{await r(o),o.status=`completed`,o.updatedAt=new Date,await this.deleteMessage(n.ReceiptHandle)}catch(e){o.status=`failed`,o.lastError=e instanceof Error?e.message:`Unknown job error`,o.updatedAt=new Date,this.logger?.error?.(`jobs.queue.scaleway_sqs.job_failed`,{jobType:o.type,jobId:o.id,error:e instanceof Error?e.message:String(e)})}}}catch(e){this.logger?.error?.(`jobs.queue.scaleway_sqs.poll_error`,{error:e instanceof Error?e.message:String(e)}),await this.sleep(5e3)}this.logger?.info?.(`jobs.queue.scaleway_sqs.stopped`,{queueUrl:this.queueUrl})}async deleteMessage(e){try{await this.sqs.send(new n({QueueUrl:this.queueUrl,ReceiptHandle:e}))}catch(e){this.logger?.warn?.(`jobs.queue.scaleway_sqs.delete_failed`,{error:e instanceof Error?e.message:String(e)})}}async sleep(e){await new Promise(t=>setTimeout(t,e))}};export{o as ScalewaySqsJobQueue};
@@ -1 +1 @@
1
- import"zod";const e={maxRetries:3,initialBackoffMs:1e3,maxBackoffMs:6e4,multiplier:2,jitter:!0};function t(t,n=e){let r=Math.min(n.initialBackoffMs*n.multiplier**(t-1),n.maxBackoffMs);if(n.jitter){let e=.8+Math.random()*.4;return Math.floor(r*e)}return r}function n(e){return e}export{e as DEFAULT_RETRY_POLICY,t as calculateBackoff,n as defineJobType};
1
+ import{__reExport as e}from"../_virtual/rolldown_runtime.js";export*from"@lssm/lib.contracts/jobs/queue";var t={};import*as n from"@lssm/lib.contracts/jobs/queue";e(t,n);export{t as types_exports};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lssm/lib.jobs",
3
- "version": "0.0.0-canary-20251212224228",
3
+ "version": "0.0.0-canary-20251213172311",
4
4
  "description": "Background jobs and scheduler module for ContractSpec applications",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -19,6 +19,8 @@
19
19
  "dependencies": {
20
20
  "@lssm/lib.schema": "workspace:*",
21
21
  "@lssm/lib.contracts": "workspace:*",
22
+ "@lssm/lib.logger": "workspace:*",
23
+ "@aws-sdk/client-sqs": "^3.882.0",
22
24
  "zod": "^4.1.13",
23
25
  "cron-parser": "^5.4.0"
24
26
  },
@@ -32,8 +34,16 @@
32
34
  "./contracts": "./src/contracts/index.ts",
33
35
  "./entities": "./src/entities/index.ts",
34
36
  "./events": "./src/events.ts",
37
+ "./handlers": "./src/handlers/index.ts",
38
+ "./handlers/gmail-sync-handler": "./src/handlers/gmail-sync-handler.ts",
39
+ "./handlers/ping-job": "./src/handlers/ping-job.ts",
40
+ "./handlers/storage-document-handler": "./src/handlers/storage-document-handler.ts",
35
41
  "./queue": "./src/queue/index.ts",
42
+ "./queue/gcp-cloud-tasks": "./src/queue/gcp-cloud-tasks.ts",
43
+ "./queue/gcp-pubsub": "./src/queue/gcp-pubsub.ts",
36
44
  "./queue/memory-queue": "./src/queue/memory-queue.ts",
45
+ "./queue/register-defined-job": "./src/queue/register-defined-job.ts",
46
+ "./queue/scaleway-sqs-queue": "./src/queue/scaleway-sqs-queue.ts",
37
47
  "./queue/types": "./src/queue/types.ts",
38
48
  "./scheduler": "./src/scheduler/index.ts",
39
49
  "./*": "./*"
@@ -50,8 +60,16 @@
50
60
  "./contracts": "./dist/contracts/index.js",
51
61
  "./entities": "./dist/entities/index.js",
52
62
  "./events": "./dist/events.js",
63
+ "./handlers": "./dist/handlers/index.js",
64
+ "./handlers/gmail-sync-handler": "./dist/handlers/gmail-sync-handler.js",
65
+ "./handlers/ping-job": "./dist/handlers/ping-job.js",
66
+ "./handlers/storage-document-handler": "./dist/handlers/storage-document-handler.js",
53
67
  "./queue": "./dist/queue/index.js",
68
+ "./queue/gcp-cloud-tasks": "./dist/queue/gcp-cloud-tasks.js",
69
+ "./queue/gcp-pubsub": "./dist/queue/gcp-pubsub.js",
54
70
  "./queue/memory-queue": "./dist/queue/memory-queue.js",
71
+ "./queue/register-defined-job": "./dist/queue/register-defined-job.js",
72
+ "./queue/scaleway-sqs-queue": "./dist/queue/scaleway-sqs-queue.js",
55
73
  "./queue/types": "./dist/queue/types.js",
56
74
  "./scheduler": "./dist/scheduler/index.js",
57
75
  "./*": "./*"