@sidequest/engine 1.0.0-next.13 → 1.0.0-next.14
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/job/job-builder.cjs +51 -9
- package/dist/job/job-builder.cjs.map +1 -1
- package/dist/job/job-builder.d.ts +21 -0
- package/dist/job/job-builder.js +52 -10
- package/dist/job/job-builder.js.map +1 -1
- package/dist/workers/main.cjs +3 -3
- package/dist/workers/main.cjs.map +1 -1
- package/dist/workers/main.js +3 -3
- package/dist/workers/main.js.map +1 -1
- package/package.json +3 -3
package/dist/job/job-builder.cjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var core = require('@sidequest/core');
|
|
4
|
+
var nodeCron = require('node-cron');
|
|
4
5
|
var constants = require('./constants.cjs');
|
|
5
6
|
|
|
6
7
|
/**
|
|
@@ -114,12 +115,7 @@ class JobBuilder {
|
|
|
114
115
|
this.jobAvailableAt = value;
|
|
115
116
|
return this;
|
|
116
117
|
}
|
|
117
|
-
|
|
118
|
-
* Enqueues the job with the specified arguments.
|
|
119
|
-
* @param args Arguments to pass to the job's run method.
|
|
120
|
-
* @returns A promise resolving to the created job data.
|
|
121
|
-
*/
|
|
122
|
-
async enqueue(...args) {
|
|
118
|
+
async build(...args) {
|
|
123
119
|
const job = new this.JobClass(...this.constructorArgs);
|
|
124
120
|
await job.ready();
|
|
125
121
|
if (!job.script) {
|
|
@@ -138,15 +134,61 @@ class JobBuilder {
|
|
|
138
134
|
timeout: this.jobTimeout,
|
|
139
135
|
uniqueness_config: this.uniquenessConfig,
|
|
140
136
|
};
|
|
141
|
-
core.logger("JobBuilder").debug(`Enqueuing job ${job.className} with args: ${JSON.stringify(args)}
|
|
142
|
-
and constructor args: ${JSON.stringify(this.constructorArgs)}`);
|
|
143
137
|
if (this.uniquenessConfig) {
|
|
144
138
|
const uniqueness = core.UniquenessFactory.create(this.uniquenessConfig);
|
|
145
139
|
jobData.unique_digest = uniqueness.digest(jobData);
|
|
146
|
-
core.logger("JobBuilder").debug(`Job ${
|
|
140
|
+
core.logger("JobBuilder").debug(`Job ${jobData.class} uniqueness digest: ${jobData.unique_digest}`);
|
|
147
141
|
}
|
|
142
|
+
return jobData;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Enqueues the job with the specified arguments.
|
|
146
|
+
* @param args Arguments to pass to the job's run method.
|
|
147
|
+
* @returns A promise resolving to the created job data.
|
|
148
|
+
*/
|
|
149
|
+
async enqueue(...args) {
|
|
150
|
+
const jobData = await this.build(...args);
|
|
151
|
+
core.logger("JobBuilder").debug(`Enqueuing job ${jobData.class} with args: ${JSON.stringify(args)}
|
|
152
|
+
and constructor args: ${JSON.stringify(this.constructorArgs)}`);
|
|
148
153
|
return this.backend.createNewJob(jobData);
|
|
149
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* Registers a recurring schedule to enqueue the job automatically based on a cron expression.
|
|
157
|
+
*
|
|
158
|
+
* This sets up an in-memory schedule that enqueues the job with the provided arguments
|
|
159
|
+
* every time the cron expression is triggered.
|
|
160
|
+
*
|
|
161
|
+
* @remarks
|
|
162
|
+
* - The schedule is **not persisted** to any database. It will be lost if the process restarts and must be re-registered at startup.
|
|
163
|
+
* - You must call this method during application initialization to ensure the job is scheduled correctly.
|
|
164
|
+
* - Uses node-cron’s `noOverlap: true` option to prevent concurrent executions.
|
|
165
|
+
*
|
|
166
|
+
* @param cronExpression - A valid cron expression (node-cron compatible) that defines when the job should be enqueued.
|
|
167
|
+
* @param args - Arguments to be passed to the job’s `run` method on each scheduled execution.
|
|
168
|
+
*
|
|
169
|
+
* @returns The underlying `ScheduledTask` instance created by node-cron.
|
|
170
|
+
*
|
|
171
|
+
* @throws {Error} If the cron expression is invalid.
|
|
172
|
+
*/
|
|
173
|
+
async schedule(cronExpression, ...args) {
|
|
174
|
+
if (!nodeCron.validate(cronExpression)) {
|
|
175
|
+
throw new Error(`Invalid cron expression ${cronExpression}`);
|
|
176
|
+
}
|
|
177
|
+
// Build the job data using the provided arguments,
|
|
178
|
+
// this ensures the scheduled state is going to be respected in cases where the builder was reused.
|
|
179
|
+
// Includes class name, queue, timeout, uniqueness, etc.
|
|
180
|
+
const jobData = await this.build(...args);
|
|
181
|
+
// Freeze the job data to prevent future modifications.
|
|
182
|
+
// Ensures the same payload is used on every scheduled execution.
|
|
183
|
+
Object.freeze(jobData);
|
|
184
|
+
core.logger("JobBuilder").debug(`Scheduling job ${jobData.class} with cron: "${cronExpression}", args: ${JSON.stringify(args)}, ` +
|
|
185
|
+
`constructor args: ${JSON.stringify(this.constructorArgs)}`);
|
|
186
|
+
return nodeCron.schedule(cronExpression, async () => {
|
|
187
|
+
const newJobData = Object.assign({}, jobData);
|
|
188
|
+
core.logger("JobBuilder").debug(`Cron triggered for job ${newJobData.class} at ${newJobData.available_at.toISOString()} with args: ${JSON.stringify(args)}`);
|
|
189
|
+
return this.backend.createNewJob(jobData);
|
|
190
|
+
}, { noOverlap: true });
|
|
191
|
+
}
|
|
150
192
|
}
|
|
151
193
|
|
|
152
194
|
exports.JobBuilder = JobBuilder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-builder.cjs","sources":["../../src/job/job-builder.ts"],"sourcesContent":[null],"names":["JOB_BUILDER_FALLBACK","
|
|
1
|
+
{"version":3,"file":"job-builder.cjs","sources":["../../src/job/job-builder.ts"],"sourcesContent":[null],"names":["JOB_BUILDER_FALLBACK","UniquenessFactory","logger"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Backend } from '@sidequest/backend';
|
|
2
2
|
import { TimePeriod, JobData } from '@sidequest/core';
|
|
3
|
+
import { ScheduledTask } from 'node-cron';
|
|
3
4
|
import { JobClassType } from './job.js';
|
|
4
5
|
|
|
5
6
|
/**
|
|
@@ -103,12 +104,32 @@ declare class JobBuilder<T extends JobClassType> {
|
|
|
103
104
|
* @returns This builder instance.
|
|
104
105
|
*/
|
|
105
106
|
availableAt(value: Date): this;
|
|
107
|
+
private build;
|
|
106
108
|
/**
|
|
107
109
|
* Enqueues the job with the specified arguments.
|
|
108
110
|
* @param args Arguments to pass to the job's run method.
|
|
109
111
|
* @returns A promise resolving to the created job data.
|
|
110
112
|
*/
|
|
111
113
|
enqueue(...args: Parameters<InstanceType<T>["run"]>): Promise<JobData>;
|
|
114
|
+
/**
|
|
115
|
+
* Registers a recurring schedule to enqueue the job automatically based on a cron expression.
|
|
116
|
+
*
|
|
117
|
+
* This sets up an in-memory schedule that enqueues the job with the provided arguments
|
|
118
|
+
* every time the cron expression is triggered.
|
|
119
|
+
*
|
|
120
|
+
* @remarks
|
|
121
|
+
* - The schedule is **not persisted** to any database. It will be lost if the process restarts and must be re-registered at startup.
|
|
122
|
+
* - You must call this method during application initialization to ensure the job is scheduled correctly.
|
|
123
|
+
* - Uses node-cron’s `noOverlap: true` option to prevent concurrent executions.
|
|
124
|
+
*
|
|
125
|
+
* @param cronExpression - A valid cron expression (node-cron compatible) that defines when the job should be enqueued.
|
|
126
|
+
* @param args - Arguments to be passed to the job’s `run` method on each scheduled execution.
|
|
127
|
+
*
|
|
128
|
+
* @returns The underlying `ScheduledTask` instance created by node-cron.
|
|
129
|
+
*
|
|
130
|
+
* @throws {Error} If the cron expression is invalid.
|
|
131
|
+
*/
|
|
132
|
+
schedule(cronExpression: string, ...args: Parameters<InstanceType<T>["run"]>): Promise<ScheduledTask>;
|
|
112
133
|
}
|
|
113
134
|
|
|
114
135
|
export { JobBuilder };
|
package/dist/job/job-builder.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UniquenessFactory, logger } from '@sidequest/core';
|
|
2
|
+
import nodeCron from 'node-cron';
|
|
2
3
|
import { JOB_BUILDER_FALLBACK } from './constants.js';
|
|
3
4
|
|
|
4
5
|
/**
|
|
@@ -112,12 +113,7 @@ class JobBuilder {
|
|
|
112
113
|
this.jobAvailableAt = value;
|
|
113
114
|
return this;
|
|
114
115
|
}
|
|
115
|
-
|
|
116
|
-
* Enqueues the job with the specified arguments.
|
|
117
|
-
* @param args Arguments to pass to the job's run method.
|
|
118
|
-
* @returns A promise resolving to the created job data.
|
|
119
|
-
*/
|
|
120
|
-
async enqueue(...args) {
|
|
116
|
+
async build(...args) {
|
|
121
117
|
const job = new this.JobClass(...this.constructorArgs);
|
|
122
118
|
await job.ready();
|
|
123
119
|
if (!job.script) {
|
|
@@ -136,15 +132,61 @@ class JobBuilder {
|
|
|
136
132
|
timeout: this.jobTimeout,
|
|
137
133
|
uniqueness_config: this.uniquenessConfig,
|
|
138
134
|
};
|
|
139
|
-
logger("JobBuilder").debug(`Enqueuing job ${job.className} with args: ${JSON.stringify(args)}
|
|
140
|
-
and constructor args: ${JSON.stringify(this.constructorArgs)}`);
|
|
141
135
|
if (this.uniquenessConfig) {
|
|
142
136
|
const uniqueness = UniquenessFactory.create(this.uniquenessConfig);
|
|
143
137
|
jobData.unique_digest = uniqueness.digest(jobData);
|
|
144
|
-
logger("JobBuilder").debug(`Job ${
|
|
138
|
+
logger("JobBuilder").debug(`Job ${jobData.class} uniqueness digest: ${jobData.unique_digest}`);
|
|
145
139
|
}
|
|
140
|
+
return jobData;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Enqueues the job with the specified arguments.
|
|
144
|
+
* @param args Arguments to pass to the job's run method.
|
|
145
|
+
* @returns A promise resolving to the created job data.
|
|
146
|
+
*/
|
|
147
|
+
async enqueue(...args) {
|
|
148
|
+
const jobData = await this.build(...args);
|
|
149
|
+
logger("JobBuilder").debug(`Enqueuing job ${jobData.class} with args: ${JSON.stringify(args)}
|
|
150
|
+
and constructor args: ${JSON.stringify(this.constructorArgs)}`);
|
|
146
151
|
return this.backend.createNewJob(jobData);
|
|
147
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* Registers a recurring schedule to enqueue the job automatically based on a cron expression.
|
|
155
|
+
*
|
|
156
|
+
* This sets up an in-memory schedule that enqueues the job with the provided arguments
|
|
157
|
+
* every time the cron expression is triggered.
|
|
158
|
+
*
|
|
159
|
+
* @remarks
|
|
160
|
+
* - The schedule is **not persisted** to any database. It will be lost if the process restarts and must be re-registered at startup.
|
|
161
|
+
* - You must call this method during application initialization to ensure the job is scheduled correctly.
|
|
162
|
+
* - Uses node-cron’s `noOverlap: true` option to prevent concurrent executions.
|
|
163
|
+
*
|
|
164
|
+
* @param cronExpression - A valid cron expression (node-cron compatible) that defines when the job should be enqueued.
|
|
165
|
+
* @param args - Arguments to be passed to the job’s `run` method on each scheduled execution.
|
|
166
|
+
*
|
|
167
|
+
* @returns The underlying `ScheduledTask` instance created by node-cron.
|
|
168
|
+
*
|
|
169
|
+
* @throws {Error} If the cron expression is invalid.
|
|
170
|
+
*/
|
|
171
|
+
async schedule(cronExpression, ...args) {
|
|
172
|
+
if (!nodeCron.validate(cronExpression)) {
|
|
173
|
+
throw new Error(`Invalid cron expression ${cronExpression}`);
|
|
174
|
+
}
|
|
175
|
+
// Build the job data using the provided arguments,
|
|
176
|
+
// this ensures the scheduled state is going to be respected in cases where the builder was reused.
|
|
177
|
+
// Includes class name, queue, timeout, uniqueness, etc.
|
|
178
|
+
const jobData = await this.build(...args);
|
|
179
|
+
// Freeze the job data to prevent future modifications.
|
|
180
|
+
// Ensures the same payload is used on every scheduled execution.
|
|
181
|
+
Object.freeze(jobData);
|
|
182
|
+
logger("JobBuilder").debug(`Scheduling job ${jobData.class} with cron: "${cronExpression}", args: ${JSON.stringify(args)}, ` +
|
|
183
|
+
`constructor args: ${JSON.stringify(this.constructorArgs)}`);
|
|
184
|
+
return nodeCron.schedule(cronExpression, async () => {
|
|
185
|
+
const newJobData = Object.assign({}, jobData);
|
|
186
|
+
logger("JobBuilder").debug(`Cron triggered for job ${newJobData.class} at ${newJobData.available_at.toISOString()} with args: ${JSON.stringify(args)}`);
|
|
187
|
+
return this.backend.createNewJob(jobData);
|
|
188
|
+
}, { noOverlap: true });
|
|
189
|
+
}
|
|
148
190
|
}
|
|
149
191
|
|
|
150
192
|
export { JobBuilder };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-builder.js","sources":["../../src/job/job-builder.ts"],"sourcesContent":[null],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"job-builder.js","sources":["../../src/job/job-builder.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/workers/main.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var core = require('@sidequest/core');
|
|
4
|
-
var
|
|
4
|
+
var nodeCron = require('node-cron');
|
|
5
5
|
var engine = require('../engine.cjs');
|
|
6
6
|
var dispatcher = require('../execution/dispatcher.cjs');
|
|
7
7
|
var executorManager = require('../execution/executor-manager.cjs');
|
|
@@ -56,7 +56,7 @@ class MainWorker {
|
|
|
56
56
|
throw new Error("Backend is not initialized. Cannot start stale jobs release cron.");
|
|
57
57
|
}
|
|
58
58
|
core.logger("Worker").debug(`Starting stale jobs release cron with interval: ${intervalMin} minutes`);
|
|
59
|
-
const releaseTask =
|
|
59
|
+
const releaseTask = nodeCron.schedule(`*/${intervalMin} * * * *`, async () => {
|
|
60
60
|
try {
|
|
61
61
|
core.logger("Worker").debug("Running stale jobs release task");
|
|
62
62
|
await releaseStaleJobs.releaseStaleJobs(this.backend, maxStaleMs, maxClaimedMs);
|
|
@@ -76,7 +76,7 @@ class MainWorker {
|
|
|
76
76
|
throw new Error("Backend is not initialized. Cannot start finished jobs cleanup cron.");
|
|
77
77
|
}
|
|
78
78
|
core.logger("Worker").debug(`Starting finished jobs cleanup cron with interval: ${intervalMin} minutes`);
|
|
79
|
-
const cleanupTask =
|
|
79
|
+
const cleanupTask = nodeCron.schedule(`*/${intervalMin} * * * *`, async () => {
|
|
80
80
|
try {
|
|
81
81
|
core.logger("Worker").debug("Running finished jobs cleanup task");
|
|
82
82
|
await cleanupFinishedJob.cleanupFinishedJobs(this.backend, cutoffMs);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.cjs","sources":["../../src/workers/main.ts"],"sourcesContent":[null],"names":["Engine","Dispatcher","QueueManager","ExecutorManager","logger","releaseStaleJobs","cleanupFinishedJobs","gracefulShutdown"],"mappings":";;;;;;;;;;;;MAWa,UAAU,CAAA;IACrB,YAAY,GAAG,KAAK;AACZ,IAAA,UAAU;AACV,IAAA,MAAM,GAAG,IAAIA,aAAM,EAAE;AACrB,IAAA,OAAO;AAEf;;;AAGG;IACH,MAAM,SAAS,CAAC,eAA6B,EAAA;AAC3C,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,IAAI;gBACF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC;gBAClE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAG;gBAExC,IAAI,CAAC,UAAU,GAAG,IAAIC,qBAAU,CAC9B,IAAI,CAAC,OAAO,EACZ,IAAIC,yBAAY,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,EACjF,IAAIC,+BAAe,CACjB,IAAI,CAAC,OAAO,EACZ,aAAa,CAAC,iBAAiB,EAC/B,aAAa,CAAC,UAAU,EACxB,aAAa,CAAC,UAAU,CACzB,CACF;AACD,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;gBAEvB,MAAM,IAAI,CAAC,SAAS,CAClB,aAAa,CAAC,2BAA2B,EACzC,aAAa,CAAC,0BAA0B,EACxC,aAAa,CAAC,4BAA4B,EAC1C,aAAa,CAAC,8BAA8B,EAC5C,aAAa,CAAC,4BAA4B,CAC3C;YACH;YAAE,OAAO,KAAK,EAAE;gBACdC,WAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;AAC7B,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACjB;QACF;aAAO;YACLA,WAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,uDAAuD,CAAC;QAChF;IACF;AAEA;;AAEG;AACH,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,YAAA,MAAM,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE;AAC7B,YAAA,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;QAC3B;IACF;AAEA;;;AAGG;AACH,IAAA,MAAM,mCAAmC,CACvC,WAAmB,EACnB,UAAkB,EAClB,YAAoB,EAAA;AAEpB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC;QACtF;QAEAA,WAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAA,gDAAA,EAAmD,WAAW,CAAA,QAAA,CAAU,CAAC;AAChG,QAAA,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"main.cjs","sources":["../../src/workers/main.ts"],"sourcesContent":[null],"names":["Engine","Dispatcher","QueueManager","ExecutorManager","logger","cron","releaseStaleJobs","cleanupFinishedJobs","gracefulShutdown"],"mappings":"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"}
|
package/dist/workers/main.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { logger } from '@sidequest/core';
|
|
2
|
-
import
|
|
2
|
+
import nodeCron from 'node-cron';
|
|
3
3
|
import { Engine } from '../engine.js';
|
|
4
4
|
import { Dispatcher } from '../execution/dispatcher.js';
|
|
5
5
|
import { ExecutorManager } from '../execution/executor-manager.js';
|
|
@@ -54,7 +54,7 @@ class MainWorker {
|
|
|
54
54
|
throw new Error("Backend is not initialized. Cannot start stale jobs release cron.");
|
|
55
55
|
}
|
|
56
56
|
logger("Worker").debug(`Starting stale jobs release cron with interval: ${intervalMin} minutes`);
|
|
57
|
-
const releaseTask =
|
|
57
|
+
const releaseTask = nodeCron.schedule(`*/${intervalMin} * * * *`, async () => {
|
|
58
58
|
try {
|
|
59
59
|
logger("Worker").debug("Running stale jobs release task");
|
|
60
60
|
await releaseStaleJobs(this.backend, maxStaleMs, maxClaimedMs);
|
|
@@ -74,7 +74,7 @@ class MainWorker {
|
|
|
74
74
|
throw new Error("Backend is not initialized. Cannot start finished jobs cleanup cron.");
|
|
75
75
|
}
|
|
76
76
|
logger("Worker").debug(`Starting finished jobs cleanup cron with interval: ${intervalMin} minutes`);
|
|
77
|
-
const cleanupTask =
|
|
77
|
+
const cleanupTask = nodeCron.schedule(`*/${intervalMin} * * * *`, async () => {
|
|
78
78
|
try {
|
|
79
79
|
logger("Worker").debug("Running finished jobs cleanup task");
|
|
80
80
|
await cleanupFinishedJobs(this.backend, cutoffMs);
|
package/dist/workers/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sources":["../../src/workers/main.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;MAWa,UAAU,CAAA;IACrB,YAAY,GAAG,KAAK;AACZ,IAAA,UAAU;AACV,IAAA,MAAM,GAAG,IAAI,MAAM,EAAE;AACrB,IAAA,OAAO;AAEf;;;AAGG;IACH,MAAM,SAAS,CAAC,eAA6B,EAAA;AAC3C,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,IAAI;gBACF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC;gBAClE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAG;gBAExC,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAC9B,IAAI,CAAC,OAAO,EACZ,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,EACjF,IAAI,eAAe,CACjB,IAAI,CAAC,OAAO,EACZ,aAAa,CAAC,iBAAiB,EAC/B,aAAa,CAAC,UAAU,EACxB,aAAa,CAAC,UAAU,CACzB,CACF;AACD,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;gBAEvB,MAAM,IAAI,CAAC,SAAS,CAClB,aAAa,CAAC,2BAA2B,EACzC,aAAa,CAAC,0BAA0B,EACxC,aAAa,CAAC,4BAA4B,EAC1C,aAAa,CAAC,8BAA8B,EAC5C,aAAa,CAAC,4BAA4B,CAC3C;YACH;YAAE,OAAO,KAAK,EAAE;gBACd,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;AAC7B,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACjB;QACF;aAAO;YACL,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,uDAAuD,CAAC;QAChF;IACF;AAEA;;AAEG;AACH,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,YAAA,MAAM,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE;AAC7B,YAAA,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;QAC3B;IACF;AAEA;;;AAGG;AACH,IAAA,MAAM,mCAAmC,CACvC,WAAmB,EACnB,UAAkB,EAClB,YAAoB,EAAA;AAEpB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC;QACtF;QAEA,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAA,gDAAA,EAAmD,WAAW,CAAA,QAAA,CAAU,CAAC;AAChG,QAAA,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"main.js","sources":["../../src/workers/main.ts"],"sourcesContent":[null],"names":["cron"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sidequest/engine",
|
|
3
|
-
"version": "1.0.0-next.
|
|
3
|
+
"version": "1.0.0-next.14",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
},
|
|
21
21
|
"license": "LGPL-3.0-or-later",
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@sidequest/backend": "1.0.0-next.
|
|
24
|
-
"@sidequest/core": "1.0.0-next.
|
|
23
|
+
"@sidequest/backend": "1.0.0-next.14",
|
|
24
|
+
"@sidequest/core": "1.0.0-next.14",
|
|
25
25
|
"node-cron": "^4.1.1",
|
|
26
26
|
"piscina": "^5.1.2"
|
|
27
27
|
},
|