@carno.js/schedule 0.2.3

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,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./schedule.decorator"), exports);
18
+ __exportStar(require("./interval.decorator"), exports);
19
+ __exportStar(require("./timeout.decorator"), exports);
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Schedules an interval (`setInterval`).
3
+ */
4
+ export declare function Interval(timeout: number): MethodDecorator;
5
+ /**
6
+ * Schedules an interval (`setInterval`).
7
+ */
8
+ export declare function Interval(name: string, timeout: number): MethodDecorator;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Interval = Interval;
4
+ const core_1 = require("@carno.js/core");
5
+ const constants_1 = require("../utils/constants");
6
+ const scheduler_type_enum_1 = require("../utils/scheduler-type.enum");
7
+ /**
8
+ * Schedules an interval (`setInterval`).
9
+ */
10
+ function Interval(nameOrTimeout, timeout) {
11
+ const [name, intervalTimeout] = (0, core_1.isString)(nameOrTimeout)
12
+ ? [nameOrTimeout, timeout]
13
+ : [undefined, nameOrTimeout];
14
+ return (target, propertyKey) => {
15
+ const anotherMetadata = core_1.Metadata.get(constants_1.SCHEDULE_INTERVAL_OPTIONS, Reflect) || [];
16
+ core_1.Metadata.set(constants_1.SCHEDULE_INTERVAL_OPTIONS, [
17
+ ...anotherMetadata,
18
+ {
19
+ name: name, methodName: propertyKey, target: target, type: scheduler_type_enum_1.SchedulerType.INTERVAL, timeout: intervalTimeout,
20
+ },
21
+ ], Reflect);
22
+ };
23
+ }
@@ -0,0 +1,8 @@
1
+ import { CronJobParams } from 'cron';
2
+ import { CronOptions } from '../utils/cron-options';
3
+ /**
4
+ * Creates a scheduled job.
5
+ * @param cronTime The time to fire off your job. This can be in the form of cron syntax, a JS ```Date``` object or a Luxon ```DateTime``` object.
6
+ * @param options Job execution options.
7
+ */
8
+ export declare function Schedule(cronTime: CronJobParams['cronTime'], options?: CronOptions): MethodDecorator;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Schedule = Schedule;
4
+ const core_1 = require("@carno.js/core");
5
+ const constants_1 = require("../utils/constants");
6
+ const scheduler_type_enum_1 = require("../utils/scheduler-type.enum");
7
+ /**
8
+ * Creates a scheduled job.
9
+ * @param cronTime The time to fire off your job. This can be in the form of cron syntax, a JS ```Date``` object or a Luxon ```DateTime``` object.
10
+ * @param options Job execution options.
11
+ */
12
+ function Schedule(cronTime, options = {}) {
13
+ const name = options?.name;
14
+ return (target, propertyKey) => {
15
+ const anotherMetadata = core_1.Metadata.get(constants_1.SCHEDULE_CRON_OPTIONS, Reflect) || [];
16
+ core_1.Metadata.set(constants_1.SCHEDULE_CRON_OPTIONS, [
17
+ ...anotherMetadata,
18
+ {
19
+ options: { ...options, cronTime },
20
+ ...{ name: name, methodName: propertyKey, target: target, type: scheduler_type_enum_1.SchedulerType.CRON },
21
+ },
22
+ ], Reflect);
23
+ };
24
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Schedules an timeout (`setTimeout`).
3
+ */
4
+ export declare function Timeout(timeout: number): MethodDecorator;
5
+ /**
6
+ * Schedules an timeout (`setTimeout`).
7
+ */
8
+ export declare function Timeout(name: string, timeout: number): MethodDecorator;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Timeout = Timeout;
4
+ const constants_1 = require("../utils/constants");
5
+ const scheduler_type_enum_1 = require("../utils/scheduler-type.enum");
6
+ const core_1 = require("@carno.js/core");
7
+ /**
8
+ * Schedules an timeout (`setTimeout`).
9
+ */
10
+ function Timeout(nameOrTimeout, timeout) {
11
+ const [name, timeoutValue] = (0, core_1.isString)(nameOrTimeout)
12
+ ? [nameOrTimeout, timeout]
13
+ : [undefined, nameOrTimeout];
14
+ return function (target, propertyKey) {
15
+ const anotherMetadata = core_1.Metadata.get(constants_1.SCHEDULE_TIMEOUT_OPTIONS, Reflect) || [];
16
+ core_1.Metadata.set(constants_1.SCHEDULE_TIMEOUT_OPTIONS, [
17
+ ...anotherMetadata,
18
+ {
19
+ name: name, methodName: propertyKey, target: target, type: scheduler_type_enum_1.SchedulerType.INTERVAL, timeout: timeoutValue,
20
+ },
21
+ ], Reflect);
22
+ };
23
+ }
@@ -0,0 +1,2 @@
1
+ import { Carno } from '@carno.js/core';
2
+ export declare const CarnoScheduler: Carno;
package/dist/entry.js ADDED
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CarnoScheduler = void 0;
4
+ const core_1 = require("@carno.js/core");
5
+ const scheduler_orchestration_service_1 = require("./scheduler-orchestration.service");
6
+ const scheduler_registry_1 = require("./scheduler.registry");
7
+ exports.CarnoScheduler = new core_1.Carno({
8
+ exports: [scheduler_orchestration_service_1.SchedulerOrchestration, scheduler_registry_1.SchedulerRegistry]
9
+ });
@@ -0,0 +1,3 @@
1
+ export * from './utils';
2
+ export * from './decorator';
3
+ export * from './entry';
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./utils"), exports);
18
+ __exportStar(require("./decorator"), exports);
19
+ __exportStar(require("./entry"), exports);
@@ -0,0 +1,26 @@
1
+ import { InjectorService } from '@carno.js/core';
2
+ import { CronOptions } from './utils/cron-options';
3
+ import { CronJobParams } from 'cron';
4
+ import { SchedulerRegistry } from './scheduler.registry';
5
+ export declare class SchedulerOrchestration {
6
+ private readonly schedulerRegistry;
7
+ private readonly injectorService;
8
+ private readonly cronJobs;
9
+ private readonly timeouts;
10
+ private readonly intervals;
11
+ constructor(schedulerRegistry: SchedulerRegistry, injectorService: InjectorService);
12
+ onApplicationInit(): void;
13
+ onApplicationShutdown(): void;
14
+ mountIntervals(): void;
15
+ mountTimeouts(): void;
16
+ mountCron(): void;
17
+ clearTimeouts(): void;
18
+ clearIntervals(): void;
19
+ closeCronJobs(): void;
20
+ addTimeout(methodRef: Function, timeout: number, name?: string): void;
21
+ addInterval(methodRef: Function, timeout: number, name?: string): void;
22
+ addCron(methodRef: Function, options: CronOptions & Record<'cronTime', CronJobParams['cronTime']>): void;
23
+ private discoverSchedulers;
24
+ private bindMethod;
25
+ private resolveInstance;
26
+ }
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SchedulerOrchestration = void 0;
13
+ const core_1 = require("@carno.js/core");
14
+ const cron_1 = require("cron");
15
+ const scheduler_registry_1 = require("./scheduler.registry");
16
+ const uuid_1 = require("uuid");
17
+ const constants_1 = require("./utils/constants");
18
+ let SchedulerOrchestration = class SchedulerOrchestration {
19
+ constructor(schedulerRegistry, injectorService) {
20
+ this.schedulerRegistry = schedulerRegistry;
21
+ this.injectorService = injectorService;
22
+ this.cronJobs = {};
23
+ this.timeouts = {};
24
+ this.intervals = {};
25
+ }
26
+ onApplicationInit() {
27
+ this.discoverSchedulers();
28
+ this.mountTimeouts();
29
+ this.mountIntervals();
30
+ this.mountCron();
31
+ }
32
+ onApplicationShutdown() {
33
+ this.clearTimeouts();
34
+ this.clearIntervals();
35
+ this.closeCronJobs();
36
+ }
37
+ mountIntervals() {
38
+ const intervalKeys = Object.keys(this.intervals);
39
+ intervalKeys.forEach((key) => {
40
+ const options = this.intervals[key];
41
+ const intervalRef = setInterval(options.target, options.timeout);
42
+ options.ref = intervalRef;
43
+ this.schedulerRegistry.addInterval(key, intervalRef);
44
+ });
45
+ }
46
+ mountTimeouts() {
47
+ const timeoutKeys = Object.keys(this.timeouts);
48
+ timeoutKeys.forEach((key) => {
49
+ const options = this.timeouts[key];
50
+ const timeoutRef = setTimeout(options.target, options.timeout);
51
+ options.ref = timeoutRef;
52
+ this.schedulerRegistry.addTimeout(key, timeoutRef);
53
+ });
54
+ }
55
+ mountCron() {
56
+ const cronKeys = Object.keys(this.cronJobs);
57
+ cronKeys.forEach((key) => {
58
+ const { options, target } = this.cronJobs[key];
59
+ const cronJob = cron_1.CronJob.from({
60
+ ...options,
61
+ onTick: target,
62
+ start: !(options.disabled ?? false)
63
+ });
64
+ this.cronJobs[key].ref = cronJob;
65
+ this.schedulerRegistry.addCronJob(key, cronJob);
66
+ });
67
+ }
68
+ clearTimeouts() {
69
+ this.schedulerRegistry.getTimeouts().forEach((key) => this.schedulerRegistry.deleteTimeout(key));
70
+ }
71
+ clearIntervals() {
72
+ this.schedulerRegistry.getIntervals().forEach((key) => this.schedulerRegistry.deleteInterval(key));
73
+ }
74
+ closeCronJobs() {
75
+ Array.from(this.schedulerRegistry.getCronJobs().keys()).forEach((key) => this.schedulerRegistry.deleteCronJob(key));
76
+ }
77
+ addTimeout(methodRef, timeout, name = (0, uuid_1.v4)()) {
78
+ this.timeouts[name] = {
79
+ target: methodRef,
80
+ timeout,
81
+ };
82
+ }
83
+ addInterval(methodRef, timeout, name = (0, uuid_1.v4)()) {
84
+ this.intervals[name] = {
85
+ target: methodRef,
86
+ timeout,
87
+ };
88
+ }
89
+ addCron(methodRef, options) {
90
+ const name = options.name || (0, uuid_1.v4)();
91
+ this.cronJobs[name] = {
92
+ target: methodRef,
93
+ options,
94
+ };
95
+ }
96
+ discoverSchedulers() {
97
+ const schedulers = core_1.Metadata.get(constants_1.SCHEDULE_CRON_OPTIONS, Reflect) || [];
98
+ const interval = core_1.Metadata.get(constants_1.SCHEDULE_INTERVAL_OPTIONS, Reflect) || [];
99
+ const timeout = core_1.Metadata.get(constants_1.SCHEDULE_TIMEOUT_OPTIONS, Reflect) || [];
100
+ schedulers.forEach((scheduler) => {
101
+ this.addCron(this.bindMethod(scheduler), scheduler.options);
102
+ });
103
+ interval.forEach((scheduler) => {
104
+ this.addInterval(this.bindMethod(scheduler), scheduler.timeout, scheduler.name);
105
+ });
106
+ timeout.forEach((scheduler) => {
107
+ this.addTimeout(this.bindMethod(scheduler), scheduler.timeout, scheduler.name);
108
+ });
109
+ }
110
+ bindMethod(scheduler) {
111
+ const instance = this.resolveInstance(scheduler.target);
112
+ return instance[scheduler.methodName].bind(instance);
113
+ }
114
+ resolveInstance(target) {
115
+ const token = target.constructor;
116
+ const provider = core_1.GlobalProvider.get(token);
117
+ if (provider?.instance) {
118
+ return provider.instance;
119
+ }
120
+ return this.injectorService.invoke(token);
121
+ }
122
+ };
123
+ exports.SchedulerOrchestration = SchedulerOrchestration;
124
+ __decorate([
125
+ (0, core_1.OnApplicationInit)(),
126
+ __metadata("design:type", Function),
127
+ __metadata("design:paramtypes", []),
128
+ __metadata("design:returntype", void 0)
129
+ ], SchedulerOrchestration.prototype, "onApplicationInit", null);
130
+ __decorate([
131
+ (0, core_1.OnApplicationShutdown)(),
132
+ __metadata("design:type", Function),
133
+ __metadata("design:paramtypes", []),
134
+ __metadata("design:returntype", void 0)
135
+ ], SchedulerOrchestration.prototype, "onApplicationShutdown", null);
136
+ exports.SchedulerOrchestration = SchedulerOrchestration = __decorate([
137
+ (0, core_1.Service)(),
138
+ __metadata("design:paramtypes", [scheduler_registry_1.SchedulerRegistry,
139
+ core_1.InjectorService])
140
+ ], SchedulerOrchestration);
@@ -0,0 +1,20 @@
1
+ import { CronJob } from 'cron';
2
+ export declare class SchedulerRegistry {
3
+ private readonly cronJobs;
4
+ private readonly timeouts;
5
+ private readonly intervals;
6
+ doesExist(type: 'cron' | 'timeout' | 'interval', name: string): boolean;
7
+ getCronJob(name: string): CronJob<null, null>;
8
+ getInterval(name: string): any;
9
+ getTimeout(name: string): any;
10
+ addCronJob(name: string, job: CronJob): void;
11
+ addInterval<T = any>(name: string, intervalId: T): void;
12
+ addTimeout<T = any>(name: string, timeoutId: T): void;
13
+ getCronJobs(): Map<string, CronJob>;
14
+ deleteCronJob(name: string): void;
15
+ getIntervals(): string[];
16
+ deleteInterval(name: string): void;
17
+ getTimeouts(): string[];
18
+ deleteTimeout(name: string): void;
19
+ private wrapFunctionInTryCatchBlocks;
20
+ }
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.SchedulerRegistry = void 0;
10
+ const core_1 = require("@carno.js/core");
11
+ let SchedulerRegistry = class SchedulerRegistry {
12
+ constructor() {
13
+ // private readonly logger = new Logger(SchedulerRegistry.name);
14
+ this.cronJobs = new Map();
15
+ this.timeouts = new Map();
16
+ this.intervals = new Map();
17
+ }
18
+ doesExist(type, name) {
19
+ switch (type) {
20
+ case 'cron':
21
+ return this.cronJobs.has(name);
22
+ case 'interval':
23
+ return this.intervals.has(name);
24
+ case 'timeout':
25
+ return this.timeouts.has(name);
26
+ default:
27
+ return false;
28
+ }
29
+ }
30
+ getCronJob(name) {
31
+ const ref = this.cronJobs.get(name);
32
+ if (!ref) {
33
+ throw new Error("NO_SCHEDULER_FOUND('Cron Job', name)");
34
+ }
35
+ return ref;
36
+ }
37
+ getInterval(name) {
38
+ const ref = this.intervals.get(name);
39
+ if (typeof ref === 'undefined') {
40
+ throw new Error("NO_SCHEDULER_FOUND('Interval', name)");
41
+ }
42
+ return ref;
43
+ }
44
+ getTimeout(name) {
45
+ const ref = this.timeouts.get(name);
46
+ if (typeof ref === 'undefined') {
47
+ throw new Error("NO_SCHEDULER_FOUND('Timeout', name)");
48
+ }
49
+ return ref;
50
+ }
51
+ addCronJob(name, job) {
52
+ const ref = this.cronJobs.get(name);
53
+ if (ref) {
54
+ throw new Error("DUPLICATE_SCHEDULER('Cron Job', name)");
55
+ }
56
+ job.fireOnTick = this.wrapFunctionInTryCatchBlocks(job.fireOnTick, job);
57
+ this.cronJobs.set(name, job);
58
+ }
59
+ addInterval(name, intervalId) {
60
+ const ref = this.intervals.get(name);
61
+ if (ref) {
62
+ throw new Error("DUPLICATE_SCHEDULER('Interval', name)");
63
+ }
64
+ this.intervals.set(name, intervalId);
65
+ }
66
+ addTimeout(name, timeoutId) {
67
+ const ref = this.timeouts.get(name);
68
+ if (ref) {
69
+ throw new Error("DUPLICATE_SCHEDULER('Timeout', name)");
70
+ }
71
+ this.timeouts.set(name, timeoutId);
72
+ }
73
+ getCronJobs() {
74
+ return this.cronJobs;
75
+ }
76
+ deleteCronJob(name) {
77
+ const cronJob = this.getCronJob(name);
78
+ cronJob.stop();
79
+ this.cronJobs.delete(name);
80
+ }
81
+ getIntervals() {
82
+ return [...this.intervals.keys()];
83
+ }
84
+ deleteInterval(name) {
85
+ const interval = this.getInterval(name);
86
+ clearInterval(interval);
87
+ this.intervals.delete(name);
88
+ }
89
+ getTimeouts() {
90
+ return [...this.timeouts.keys()];
91
+ }
92
+ deleteTimeout(name) {
93
+ const timeout = this.getTimeout(name);
94
+ clearTimeout(timeout);
95
+ this.timeouts.delete(name);
96
+ }
97
+ wrapFunctionInTryCatchBlocks(methodRef, instance) {
98
+ return async (...args) => {
99
+ try {
100
+ await methodRef.call(instance, ...args);
101
+ }
102
+ catch (error) {
103
+ console.log(error);
104
+ // this.logger.error(error);
105
+ }
106
+ };
107
+ }
108
+ };
109
+ exports.SchedulerRegistry = SchedulerRegistry;
110
+ exports.SchedulerRegistry = SchedulerRegistry = __decorate([
111
+ (0, core_1.Injectable)()
112
+ ], SchedulerRegistry);
@@ -0,0 +1,5 @@
1
+ export declare const SCHEDULE_CRON_OPTIONS = "carno:schedule:cron:options";
2
+ export declare const SCHEDULER_NAME = "carno:schedule:name";
3
+ export declare const SCHEDULER_TYPE = "carno:schedule:type";
4
+ export declare const SCHEDULE_TIMEOUT_OPTIONS = "carno:schedule:timeout:options";
5
+ export declare const SCHEDULE_INTERVAL_OPTIONS = "carno:schedule:interval:options";
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SCHEDULE_INTERVAL_OPTIONS = exports.SCHEDULE_TIMEOUT_OPTIONS = exports.SCHEDULER_TYPE = exports.SCHEDULER_NAME = exports.SCHEDULE_CRON_OPTIONS = void 0;
4
+ exports.SCHEDULE_CRON_OPTIONS = "carno:schedule:cron:options";
5
+ exports.SCHEDULER_NAME = "carno:schedule:name";
6
+ exports.SCHEDULER_TYPE = "carno:schedule:type";
7
+ exports.SCHEDULE_TIMEOUT_OPTIONS = "carno:schedule:timeout:options";
8
+ exports.SCHEDULE_INTERVAL_OPTIONS = "carno:schedule:interval:options";
@@ -0,0 +1,85 @@
1
+ export declare enum CronExpression {
2
+ EVERY_SECOND = "* * * * * *",
3
+ EVERY_5_SECONDS = "*/5 * * * * *",
4
+ EVERY_10_SECONDS = "*/10 * * * * *",
5
+ EVERY_30_SECONDS = "*/30 * * * * *",
6
+ EVERY_MINUTE = "*/1 * * * *",
7
+ EVERY_5_MINUTES = "0 */5 * * * *",
8
+ EVERY_10_MINUTES = "0 */10 * * * *",
9
+ EVERY_30_MINUTES = "0 */30 * * * *",
10
+ EVERY_HOUR = "0 0-23/1 * * *",
11
+ EVERY_2_HOURS = "0 0-23/2 * * *",
12
+ EVERY_3_HOURS = "0 0-23/3 * * *",
13
+ EVERY_4_HOURS = "0 0-23/4 * * *",
14
+ EVERY_5_HOURS = "0 0-23/5 * * *",
15
+ EVERY_6_HOURS = "0 0-23/6 * * *",
16
+ EVERY_7_HOURS = "0 0-23/7 * * *",
17
+ EVERY_8_HOURS = "0 0-23/8 * * *",
18
+ EVERY_9_HOURS = "0 0-23/9 * * *",
19
+ EVERY_10_HOURS = "0 0-23/10 * * *",
20
+ EVERY_11_HOURS = "0 0-23/11 * * *",
21
+ EVERY_12_HOURS = "0 0-23/12 * * *",
22
+ EVERY_DAY_AT_1AM = "0 01 * * *",
23
+ EVERY_DAY_AT_2AM = "0 02 * * *",
24
+ EVERY_DAY_AT_3AM = "0 03 * * *",
25
+ EVERY_DAY_AT_4AM = "0 04 * * *",
26
+ EVERY_DAY_AT_5AM = "0 05 * * *",
27
+ EVERY_DAY_AT_6AM = "0 06 * * *",
28
+ EVERY_DAY_AT_7AM = "0 07 * * *",
29
+ EVERY_DAY_AT_8AM = "0 08 * * *",
30
+ EVERY_DAY_AT_9AM = "0 09 * * *",
31
+ EVERY_DAY_AT_10AM = "0 10 * * *",
32
+ EVERY_DAY_AT_11AM = "0 11 * * *",
33
+ EVERY_DAY_AT_NOON = "0 12 * * *",
34
+ EVERY_DAY_AT_1PM = "0 13 * * *",
35
+ EVERY_DAY_AT_2PM = "0 14 * * *",
36
+ EVERY_DAY_AT_3PM = "0 15 * * *",
37
+ EVERY_DAY_AT_4PM = "0 16 * * *",
38
+ EVERY_DAY_AT_5PM = "0 17 * * *",
39
+ EVERY_DAY_AT_6PM = "0 18 * * *",
40
+ EVERY_DAY_AT_7PM = "0 19 * * *",
41
+ EVERY_DAY_AT_8PM = "0 20 * * *",
42
+ EVERY_DAY_AT_9PM = "0 21 * * *",
43
+ EVERY_DAY_AT_10PM = "0 22 * * *",
44
+ EVERY_DAY_AT_11PM = "0 23 * * *",
45
+ EVERY_DAY_AT_MIDNIGHT = "0 0 * * *",
46
+ EVERY_WEEK = "0 0 * * 0",
47
+ EVERY_WEEKDAY = "0 0 * * 1-5",
48
+ EVERY_WEEKEND = "0 0 * * 6,0",
49
+ EVERY_1ST_DAY_OF_MONTH_AT_MIDNIGHT = "0 0 1 * *",
50
+ EVERY_1ST_DAY_OF_MONTH_AT_NOON = "0 12 1 * *",
51
+ EVERY_2ND_HOUR = "0 */2 * * *",
52
+ EVERY_2ND_HOUR_FROM_1AM_THROUGH_11PM = "0 1-23/2 * * *",
53
+ EVERY_2ND_MONTH = "0 0 1 */2 *",
54
+ EVERY_QUARTER = "0 0 1 */3 *",
55
+ EVERY_6_MONTHS = "0 0 1 */6 *",
56
+ EVERY_YEAR = "0 0 1 0 *",
57
+ EVERY_30_MINUTES_BETWEEN_9AM_AND_5PM = "0 */30 9-17 * * *",
58
+ EVERY_30_MINUTES_BETWEEN_9AM_AND_6PM = "0 */30 9-18 * * *",
59
+ EVERY_30_MINUTES_BETWEEN_10AM_AND_7PM = "0 */30 10-19 * * *",
60
+ MONDAY_TO_FRIDAY_AT_1AM = "0 0 01 * * 1-5",
61
+ MONDAY_TO_FRIDAY_AT_2AM = "0 0 02 * * 1-5",
62
+ MONDAY_TO_FRIDAY_AT_3AM = "0 0 03 * * 1-5",
63
+ MONDAY_TO_FRIDAY_AT_4AM = "0 0 04 * * 1-5",
64
+ MONDAY_TO_FRIDAY_AT_5AM = "0 0 05 * * 1-5",
65
+ MONDAY_TO_FRIDAY_AT_6AM = "0 0 06 * * 1-5",
66
+ MONDAY_TO_FRIDAY_AT_7AM = "0 0 07 * * 1-5",
67
+ MONDAY_TO_FRIDAY_AT_8AM = "0 0 08 * * 1-5",
68
+ MONDAY_TO_FRIDAY_AT_9AM = "0 0 09 * * 1-5",
69
+ MONDAY_TO_FRIDAY_AT_09_30AM = "0 30 09 * * 1-5",
70
+ MONDAY_TO_FRIDAY_AT_10AM = "0 0 10 * * 1-5",
71
+ MONDAY_TO_FRIDAY_AT_11AM = "0 0 11 * * 1-5",
72
+ MONDAY_TO_FRIDAY_AT_11_30AM = "0 30 11 * * 1-5",
73
+ MONDAY_TO_FRIDAY_AT_12PM = "0 0 12 * * 1-5",
74
+ MONDAY_TO_FRIDAY_AT_1PM = "0 0 13 * * 1-5",
75
+ MONDAY_TO_FRIDAY_AT_2PM = "0 0 14 * * 1-5",
76
+ MONDAY_TO_FRIDAY_AT_3PM = "0 0 15 * * 1-5",
77
+ MONDAY_TO_FRIDAY_AT_4PM = "0 0 16 * * 1-5",
78
+ MONDAY_TO_FRIDAY_AT_5PM = "0 0 17 * * 1-5",
79
+ MONDAY_TO_FRIDAY_AT_6PM = "0 0 18 * * 1-5",
80
+ MONDAY_TO_FRIDAY_AT_7PM = "0 0 19 * * 1-5",
81
+ MONDAY_TO_FRIDAY_AT_8PM = "0 0 20 * * 1-5",
82
+ MONDAY_TO_FRIDAY_AT_9PM = "0 0 21 * * 1-5",
83
+ MONDAY_TO_FRIDAY_AT_10PM = "0 0 22 * * 1-5",
84
+ MONDAY_TO_FRIDAY_AT_11PM = "0 0 23 * * 1-5"
85
+ }
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CronExpression = void 0;
4
+ var CronExpression;
5
+ (function (CronExpression) {
6
+ CronExpression["EVERY_SECOND"] = "* * * * * *";
7
+ CronExpression["EVERY_5_SECONDS"] = "*/5 * * * * *";
8
+ CronExpression["EVERY_10_SECONDS"] = "*/10 * * * * *";
9
+ CronExpression["EVERY_30_SECONDS"] = "*/30 * * * * *";
10
+ CronExpression["EVERY_MINUTE"] = "*/1 * * * *";
11
+ CronExpression["EVERY_5_MINUTES"] = "0 */5 * * * *";
12
+ CronExpression["EVERY_10_MINUTES"] = "0 */10 * * * *";
13
+ CronExpression["EVERY_30_MINUTES"] = "0 */30 * * * *";
14
+ CronExpression["EVERY_HOUR"] = "0 0-23/1 * * *";
15
+ CronExpression["EVERY_2_HOURS"] = "0 0-23/2 * * *";
16
+ CronExpression["EVERY_3_HOURS"] = "0 0-23/3 * * *";
17
+ CronExpression["EVERY_4_HOURS"] = "0 0-23/4 * * *";
18
+ CronExpression["EVERY_5_HOURS"] = "0 0-23/5 * * *";
19
+ CronExpression["EVERY_6_HOURS"] = "0 0-23/6 * * *";
20
+ CronExpression["EVERY_7_HOURS"] = "0 0-23/7 * * *";
21
+ CronExpression["EVERY_8_HOURS"] = "0 0-23/8 * * *";
22
+ CronExpression["EVERY_9_HOURS"] = "0 0-23/9 * * *";
23
+ CronExpression["EVERY_10_HOURS"] = "0 0-23/10 * * *";
24
+ CronExpression["EVERY_11_HOURS"] = "0 0-23/11 * * *";
25
+ CronExpression["EVERY_12_HOURS"] = "0 0-23/12 * * *";
26
+ CronExpression["EVERY_DAY_AT_1AM"] = "0 01 * * *";
27
+ CronExpression["EVERY_DAY_AT_2AM"] = "0 02 * * *";
28
+ CronExpression["EVERY_DAY_AT_3AM"] = "0 03 * * *";
29
+ CronExpression["EVERY_DAY_AT_4AM"] = "0 04 * * *";
30
+ CronExpression["EVERY_DAY_AT_5AM"] = "0 05 * * *";
31
+ CronExpression["EVERY_DAY_AT_6AM"] = "0 06 * * *";
32
+ CronExpression["EVERY_DAY_AT_7AM"] = "0 07 * * *";
33
+ CronExpression["EVERY_DAY_AT_8AM"] = "0 08 * * *";
34
+ CronExpression["EVERY_DAY_AT_9AM"] = "0 09 * * *";
35
+ CronExpression["EVERY_DAY_AT_10AM"] = "0 10 * * *";
36
+ CronExpression["EVERY_DAY_AT_11AM"] = "0 11 * * *";
37
+ CronExpression["EVERY_DAY_AT_NOON"] = "0 12 * * *";
38
+ CronExpression["EVERY_DAY_AT_1PM"] = "0 13 * * *";
39
+ CronExpression["EVERY_DAY_AT_2PM"] = "0 14 * * *";
40
+ CronExpression["EVERY_DAY_AT_3PM"] = "0 15 * * *";
41
+ CronExpression["EVERY_DAY_AT_4PM"] = "0 16 * * *";
42
+ CronExpression["EVERY_DAY_AT_5PM"] = "0 17 * * *";
43
+ CronExpression["EVERY_DAY_AT_6PM"] = "0 18 * * *";
44
+ CronExpression["EVERY_DAY_AT_7PM"] = "0 19 * * *";
45
+ CronExpression["EVERY_DAY_AT_8PM"] = "0 20 * * *";
46
+ CronExpression["EVERY_DAY_AT_9PM"] = "0 21 * * *";
47
+ CronExpression["EVERY_DAY_AT_10PM"] = "0 22 * * *";
48
+ CronExpression["EVERY_DAY_AT_11PM"] = "0 23 * * *";
49
+ CronExpression["EVERY_DAY_AT_MIDNIGHT"] = "0 0 * * *";
50
+ CronExpression["EVERY_WEEK"] = "0 0 * * 0";
51
+ CronExpression["EVERY_WEEKDAY"] = "0 0 * * 1-5";
52
+ CronExpression["EVERY_WEEKEND"] = "0 0 * * 6,0";
53
+ CronExpression["EVERY_1ST_DAY_OF_MONTH_AT_MIDNIGHT"] = "0 0 1 * *";
54
+ CronExpression["EVERY_1ST_DAY_OF_MONTH_AT_NOON"] = "0 12 1 * *";
55
+ CronExpression["EVERY_2ND_HOUR"] = "0 */2 * * *";
56
+ CronExpression["EVERY_2ND_HOUR_FROM_1AM_THROUGH_11PM"] = "0 1-23/2 * * *";
57
+ CronExpression["EVERY_2ND_MONTH"] = "0 0 1 */2 *";
58
+ CronExpression["EVERY_QUARTER"] = "0 0 1 */3 *";
59
+ CronExpression["EVERY_6_MONTHS"] = "0 0 1 */6 *";
60
+ CronExpression["EVERY_YEAR"] = "0 0 1 0 *";
61
+ CronExpression["EVERY_30_MINUTES_BETWEEN_9AM_AND_5PM"] = "0 */30 9-17 * * *";
62
+ CronExpression["EVERY_30_MINUTES_BETWEEN_9AM_AND_6PM"] = "0 */30 9-18 * * *";
63
+ CronExpression["EVERY_30_MINUTES_BETWEEN_10AM_AND_7PM"] = "0 */30 10-19 * * *";
64
+ CronExpression["MONDAY_TO_FRIDAY_AT_1AM"] = "0 0 01 * * 1-5";
65
+ CronExpression["MONDAY_TO_FRIDAY_AT_2AM"] = "0 0 02 * * 1-5";
66
+ CronExpression["MONDAY_TO_FRIDAY_AT_3AM"] = "0 0 03 * * 1-5";
67
+ CronExpression["MONDAY_TO_FRIDAY_AT_4AM"] = "0 0 04 * * 1-5";
68
+ CronExpression["MONDAY_TO_FRIDAY_AT_5AM"] = "0 0 05 * * 1-5";
69
+ CronExpression["MONDAY_TO_FRIDAY_AT_6AM"] = "0 0 06 * * 1-5";
70
+ CronExpression["MONDAY_TO_FRIDAY_AT_7AM"] = "0 0 07 * * 1-5";
71
+ CronExpression["MONDAY_TO_FRIDAY_AT_8AM"] = "0 0 08 * * 1-5";
72
+ CronExpression["MONDAY_TO_FRIDAY_AT_9AM"] = "0 0 09 * * 1-5";
73
+ CronExpression["MONDAY_TO_FRIDAY_AT_09_30AM"] = "0 30 09 * * 1-5";
74
+ CronExpression["MONDAY_TO_FRIDAY_AT_10AM"] = "0 0 10 * * 1-5";
75
+ CronExpression["MONDAY_TO_FRIDAY_AT_11AM"] = "0 0 11 * * 1-5";
76
+ CronExpression["MONDAY_TO_FRIDAY_AT_11_30AM"] = "0 30 11 * * 1-5";
77
+ CronExpression["MONDAY_TO_FRIDAY_AT_12PM"] = "0 0 12 * * 1-5";
78
+ CronExpression["MONDAY_TO_FRIDAY_AT_1PM"] = "0 0 13 * * 1-5";
79
+ CronExpression["MONDAY_TO_FRIDAY_AT_2PM"] = "0 0 14 * * 1-5";
80
+ CronExpression["MONDAY_TO_FRIDAY_AT_3PM"] = "0 0 15 * * 1-5";
81
+ CronExpression["MONDAY_TO_FRIDAY_AT_4PM"] = "0 0 16 * * 1-5";
82
+ CronExpression["MONDAY_TO_FRIDAY_AT_5PM"] = "0 0 17 * * 1-5";
83
+ CronExpression["MONDAY_TO_FRIDAY_AT_6PM"] = "0 0 18 * * 1-5";
84
+ CronExpression["MONDAY_TO_FRIDAY_AT_7PM"] = "0 0 19 * * 1-5";
85
+ CronExpression["MONDAY_TO_FRIDAY_AT_8PM"] = "0 0 20 * * 1-5";
86
+ CronExpression["MONDAY_TO_FRIDAY_AT_9PM"] = "0 0 21 * * 1-5";
87
+ CronExpression["MONDAY_TO_FRIDAY_AT_10PM"] = "0 0 22 * * 1-5";
88
+ CronExpression["MONDAY_TO_FRIDAY_AT_11PM"] = "0 0 23 * * 1-5";
89
+ })(CronExpression || (exports.CronExpression = CronExpression = {}));