@procedures/schedule 0.4.0 → 0.6.0
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/CHANGELOG.md +33 -0
- package/README.md +55 -5
- package/dist/.tsbuildinfo +1 -1
- package/dist/cron.d.ts +36 -6
- package/dist/cron.d.ts.map +1 -1
- package/dist/cron.js +265 -41
- package/dist/cron.js.map +1 -1
- package/dist/errors.d.ts +4 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/module.d.ts +5 -0
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +8 -2
- package/dist/module.js.map +1 -1
- package/dist/procedures/schedule/add.d.ts +5 -2
- package/dist/procedures/schedule/add.d.ts.map +1 -1
- package/dist/procedures/schedule/add.js +15 -10
- package/dist/procedures/schedule/add.js.map +1 -1
- package/dist/procedures/schedule/list.js +1 -1
- package/dist/procedures/schedule/list.js.map +1 -1
- package/dist/procedures/schedule/next.d.ts +1 -1
- package/dist/procedures/schedule/next.d.ts.map +1 -1
- package/dist/procedures/schedule/next.js +2 -2
- package/dist/procedures/schedule/next.js.map +1 -1
- package/dist/programs.d.ts +3 -1
- package/dist/programs.d.ts.map +1 -1
- package/dist/programs.js.map +1 -1
- package/dist/scheduler.d.ts +9 -0
- package/dist/scheduler.d.ts.map +1 -1
- package/dist/scheduler.js +11 -6
- package/dist/scheduler.js.map +1 -1
- package/dist/store.d.ts +50 -5
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +161 -26
- package/dist/store.js.map +1 -1
- package/dist/types.d.ts +8 -4
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/cron.ts +277 -48
- package/src/errors.ts +4 -0
- package/src/index.ts +10 -2
- package/src/module.ts +13 -2
- package/src/procedures/schedule/add.ts +15 -10
- package/src/procedures/schedule/list.ts +1 -1
- package/src/procedures/schedule/next.ts +3 -3
- package/src/programs.ts +3 -1
- package/src/scheduler.ts +16 -6
- package/src/store.ts +166 -24
- package/src/types.ts +8 -4
package/dist/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,UAAU,GAMX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAyB,MAAM,eAAe,CAAC;AAc9F,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,+GAA+G,CAAC,CAAC;AAClK,MAAM,QAAQ,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,11 @@
|
|
|
8
8
|
import { type ProcedureContext } from "@procedures/client";
|
|
9
9
|
import { type ScheduleSettings } from "../../programs.js";
|
|
10
10
|
import type { Schedule, ScheduleAddInput, ScheduleAddOutput, ScheduleView } from "../../types.js";
|
|
11
|
-
/**
|
|
12
|
-
|
|
11
|
+
/**
|
|
12
|
+
* The view of a schedule: with its next time after `now`. The optional `local` is the IANA time
|
|
13
|
+
* zone of `local`. Without it, `local` is the time zone of the process.
|
|
14
|
+
*/
|
|
15
|
+
export declare function viewOf(schedule: Schedule, now: number, local?: string): ScheduleView;
|
|
13
16
|
/**
|
|
14
17
|
* Add a schedule: a cron expression that starts a stored program with an input
|
|
15
18
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/procedures/schedule/add.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG/E,OAAO,EAA0C,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAClG,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAElG
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/procedures/schedule/add.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG/E,OAAO,EAA0C,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAClG,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAElG;;;GAGG;AACH,wBAAgB,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,CAUpF;AAYD;;GAEG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,YAAY,GAAG,UAAU,CAAC,EAAE,QAAQ,GAAE,gBAA4C,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA2BtM"}
|
|
@@ -6,19 +6,24 @@
|
|
|
6
6
|
* the capability of the host, narrowed by it.
|
|
7
7
|
*/
|
|
8
8
|
import { PROCEDURE_REGISTRY } from "@procedures/client";
|
|
9
|
-
import { formatTime, nextTime, parseCron } from "../../cron.js";
|
|
9
|
+
import { checkTimeZone, formatTime, nextTime, parseCron, zoneFor } from "../../cron.js";
|
|
10
10
|
import { ScheduleError } from "../../errors.js";
|
|
11
11
|
import { DEFAULT_SCHEDULE_SETTINGS, findProgram } from "../../programs.js";
|
|
12
|
-
/**
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
/**
|
|
13
|
+
* The view of a schedule: with its next time after `now`. The optional `local` is the IANA time
|
|
14
|
+
* zone of `local`. Without it, `local` is the time zone of the process.
|
|
15
|
+
*/
|
|
16
|
+
export function viewOf(schedule, now, local) {
|
|
17
|
+
let nextRunAt;
|
|
15
18
|
try {
|
|
16
|
-
|
|
19
|
+
const zone = zoneFor(schedule.timeZone, local);
|
|
20
|
+
const next = nextTime(parseCron(schedule.cron), now, zone);
|
|
21
|
+
nextRunAt = next === undefined ? null : formatTime(next, zone);
|
|
17
22
|
}
|
|
18
23
|
catch {
|
|
19
|
-
|
|
24
|
+
nextRunAt = null;
|
|
20
25
|
}
|
|
21
|
-
return { ...schedule, nextRunAt
|
|
26
|
+
return { ...schedule, nextRunAt };
|
|
22
27
|
}
|
|
23
28
|
/** The capability of the caller to keep: its clearance and its permitted effects, without its deadline. */
|
|
24
29
|
function callerCapability(ctx) {
|
|
@@ -37,9 +42,9 @@ function callerCapability(ctx) {
|
|
|
37
42
|
*/
|
|
38
43
|
export async function scheduleAdd(input, ctx, settings = DEFAULT_SCHEDULE_SETTINGS) {
|
|
39
44
|
const now = settings.now();
|
|
40
|
-
const timeZone = input.timeZone ?? "local";
|
|
41
45
|
const cron = parseCron(input.cron);
|
|
42
|
-
|
|
46
|
+
const timeZone = checkTimeZone(input.timeZone ?? "local");
|
|
47
|
+
if (nextTime(cron, now, zoneFor(timeZone, settings.timeZone)) === undefined) {
|
|
43
48
|
throw new ScheduleError("BAD_CRON", `The cron expression ${JSON.stringify(input.cron)} has no time in the next 9 years`);
|
|
44
49
|
}
|
|
45
50
|
await findProgram(ctx?.registry ?? PROCEDURE_REGISTRY, input.program);
|
|
@@ -61,6 +66,6 @@ export async function scheduleAdd(input, ctx, settings = DEFAULT_SCHEDULE_SETTIN
|
|
|
61
66
|
throw new ScheduleError("EXISTS", `A schedule named ${id} exists: give replace: true, or another id`);
|
|
62
67
|
}
|
|
63
68
|
await settings.store.put(schedule);
|
|
64
|
-
return { schedule: viewOf(schedule, now) };
|
|
69
|
+
return { schedule: viewOf(schedule, now, settings.timeZone) };
|
|
65
70
|
}
|
|
66
71
|
//# sourceMappingURL=add.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/procedures/schedule/add.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,kBAAkB,EAAyB,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/procedures/schedule/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ export async function scheduleList(input, settings = DEFAULT_SCHEDULE_SETTINGS)
|
|
|
12
12
|
const now = settings.now();
|
|
13
13
|
const schedules = await settings.store.list();
|
|
14
14
|
return {
|
|
15
|
-
schedules: schedules.filter((schedule) => input.program === undefined || schedule.program === input.program).map((schedule) => viewOf(schedule, now)),
|
|
15
|
+
schedules: schedules.filter((schedule) => input.program === undefined || schedule.program === input.program).map((schedule) => viewOf(schedule, now, settings.timeZone)),
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
//# sourceMappingURL=list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/procedures/schedule/list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,yBAAyB,EAAyB,MAAM,mBAAmB,CAAC;AAErF,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAwB,EAAE,QAAQ,GAAqB,yBAAyB;IACjH,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC9C,OAAO;QACL,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/procedures/schedule/list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,yBAAyB,EAAyB,MAAM,mBAAmB,CAAC;AAErF,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAwB,EAAE,QAAQ,GAAqB,yBAAyB;IACjH,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC9C,OAAO;QACL,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;KACzK,CAAC;AACJ,CAAC"}
|
|
@@ -9,5 +9,5 @@ import type { ScheduleNextInput, ScheduleNextOutput } from "../../types.js";
|
|
|
9
9
|
/**
|
|
10
10
|
* The next times of a cron expression
|
|
11
11
|
*/
|
|
12
|
-
export declare function scheduleNext(input: ScheduleNextInput, settings?: Pick<ScheduleSettings, "now">): Promise<ScheduleNextOutput>;
|
|
12
|
+
export declare function scheduleNext(input: ScheduleNextInput, settings?: Pick<ScheduleSettings, "now" | "timeZone">): Promise<ScheduleNextOutput>;
|
|
13
13
|
//# sourceMappingURL=next.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next.d.ts","sourceRoot":"","sources":["../../../src/procedures/schedule/next.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAA6B,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAE5E;;GAEG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,GAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAA6B,GAAG,OAAO,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"next.d.ts","sourceRoot":"","sources":["../../../src/procedures/schedule/next.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAA6B,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAE5E;;GAEG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,GAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,GAAG,UAAU,CAA6B,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAS1K"}
|
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
* The next times of a cron expression. It reads no store: the output comes from the input and
|
|
5
5
|
* from the time.
|
|
6
6
|
*/
|
|
7
|
-
import { formatTime, nextTimes, parseCron } from "../../cron.js";
|
|
7
|
+
import { checkTimeZone, formatTime, nextTimes, parseCron, zoneFor } from "../../cron.js";
|
|
8
8
|
import { ScheduleError } from "../../errors.js";
|
|
9
9
|
import { DEFAULT_SCHEDULE_SETTINGS } from "../../programs.js";
|
|
10
10
|
/**
|
|
11
11
|
* The next times of a cron expression
|
|
12
12
|
*/
|
|
13
13
|
export async function scheduleNext(input, settings = DEFAULT_SCHEDULE_SETTINGS) {
|
|
14
|
-
const timeZone = input.timeZone ?? "local";
|
|
15
14
|
const cron = parseCron(input.cron);
|
|
15
|
+
const timeZone = zoneFor(checkTimeZone(input.timeZone ?? "local"), settings.timeZone);
|
|
16
16
|
let after = settings.now();
|
|
17
17
|
if (input.after !== undefined) {
|
|
18
18
|
after = Date.parse(input.after);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next.js","sourceRoot":"","sources":["../../../src/procedures/schedule/next.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"next.js","sourceRoot":"","sources":["../../../src/procedures/schedule/next.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAyB,MAAM,mBAAmB,CAAC;AAGrF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAwB,EAAE,QAAQ,GAA+C,yBAAyB;IAC3I,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACtF,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;IAC3B,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,UAAU,EAAE,kCAAkC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChI,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;AACjH,CAAC"}
|
package/dist/programs.d.ts
CHANGED
|
@@ -7,11 +7,13 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { type ProcedureRegistryLike } from "@procedures/client";
|
|
9
9
|
import { type ScheduleStore } from "./store.js";
|
|
10
|
-
/** What the procedures of a module use: the store
|
|
10
|
+
/** What the procedures of a module use: the store, the wall clock and the time zone of `local`. */
|
|
11
11
|
export interface ScheduleSettings {
|
|
12
12
|
readonly store: ScheduleStore;
|
|
13
13
|
/** The wall time, in milliseconds since 1970. */
|
|
14
14
|
readonly now: () => number;
|
|
15
|
+
/** The IANA time zone of the schedules with the time zone `local`. Without it, `local` is the time zone of the process. */
|
|
16
|
+
readonly timeZone?: string | undefined;
|
|
15
17
|
}
|
|
16
18
|
/** The settings of the default module: `defaultScheduleStore` and `Date.now`. */
|
|
17
19
|
export declare const DEFAULT_SCHEDULE_SETTINGS: ScheduleSettings;
|
package/dist/programs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"programs.d.ts","sourceRoot":"","sources":["../src/programs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAA+B,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAG7F,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEtE,
|
|
1
|
+
{"version":3,"file":"programs.d.ts","sourceRoot":"","sources":["../src/programs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAA+B,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAG7F,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEtE,mGAAmG;AACnG,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,iDAAiD;IACjD,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAC;IAC3B,2HAA2H;IAC3H,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,iFAAiF;AACjF,eAAO,MAAM,yBAAyB,EAAE,gBAAwF,CAAC;AAEjI,mFAAmF;AACnF,eAAO,MAAM,WAAW,EAAE,MAAgC,CAAC;AAE3D;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,qBAAqB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,CAW7G"}
|
package/dist/programs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"programs.js","sourceRoot":"","sources":["../src/programs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAA8B,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAsB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"programs.js","sourceRoot":"","sources":["../src/programs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAA8B,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAsB,MAAM,YAAY,CAAC;AAWtE,iFAAiF;AACjF,MAAM,CAAC,MAAM,yBAAyB,GAAqB,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAEjI,mFAAmF;AACnF,MAAM,CAAC,MAAM,WAAW,GAAW,uBAAuB,CAAC;AAE3D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAA+B,EAAE,GAAW;IAC5E,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,aAAa,CAAC,eAAe,EAAE,GAAG,GAAG,8HAA8H,CAAC,CAAC;QACjL,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IACtF,MAAM,IAAI,aAAa,CAAC,WAAW,EAAE,iCAAiC,GAAG,0DAA0D,CAAC,CAAC;AACvI,CAAC"}
|
package/dist/scheduler.d.ts
CHANGED
|
@@ -17,6 +17,8 @@
|
|
|
17
17
|
* missed during a run or a slow minute give one run, not one for each time.
|
|
18
18
|
* - The timers use an injectable `Clock` (`after` and `now`), and the calendar uses an injectable
|
|
19
19
|
* wall clock (`now`, default `Date.now`). A test gives `fakeClock` of `@mark1russell7/service/testing`.
|
|
20
|
+
* - Each schedule runs in its time zone: `utc`, `local` or an IANA name. The option `timeZone`
|
|
21
|
+
* gives the zone of `local`. The changes of daylight saving time follow Vixie cron (`cron.ts`).
|
|
20
22
|
*/
|
|
21
23
|
import { type Capability, type Clock, type HostPolicy, type ProcedureRegistry } from "@procedures/client";
|
|
22
24
|
import { type ScheduleStore } from "./store.js";
|
|
@@ -49,6 +51,11 @@ export interface SchedulerOptions {
|
|
|
49
51
|
readonly clock?: Clock | undefined;
|
|
50
52
|
/** The wall time, in milliseconds since 1970. The default is `Date.now`. */
|
|
51
53
|
readonly now?: (() => number) | undefined;
|
|
54
|
+
/**
|
|
55
|
+
* The IANA time zone of the schedules with the time zone `local`, for example `Europe/Berlin`.
|
|
56
|
+
* The default is the time zone of the process. The host gives the same zone to `createScheduleModule()`.
|
|
57
|
+
*/
|
|
58
|
+
readonly timeZone?: string | undefined;
|
|
52
59
|
/** The time limit of a run, in milliseconds. 0: no limit. The default is 10 minutes. */
|
|
53
60
|
readonly runTimeoutMs?: number | undefined;
|
|
54
61
|
/** This function gets each run and each skipped time. */
|
|
@@ -63,6 +70,8 @@ export declare class Scheduler {
|
|
|
63
70
|
private readonly clock;
|
|
64
71
|
private readonly now;
|
|
65
72
|
private readonly runTimeoutMs;
|
|
73
|
+
/** The IANA time zone of `local`, or undefined for the time zone of the process. */
|
|
74
|
+
private readonly timeZone;
|
|
66
75
|
private readonly options;
|
|
67
76
|
private readonly due;
|
|
68
77
|
private readonly runs;
|
package/dist/scheduler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"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"}
|
package/dist/scheduler.js
CHANGED
|
@@ -17,9 +17,11 @@
|
|
|
17
17
|
* missed during a run or a slow minute give one run, not one for each time.
|
|
18
18
|
* - The timers use an injectable `Clock` (`after` and `now`), and the calendar uses an injectable
|
|
19
19
|
* wall clock (`now`, default `Date.now`). A test gives `fakeClock` of `@mark1russell7/service/testing`.
|
|
20
|
+
* - Each schedule runs in its time zone: `utc`, `local` or an IANA name. The option `timeZone`
|
|
21
|
+
* gives the zone of `local`. The changes of daylight saving time follow Vixie cron (`cron.ts`).
|
|
20
22
|
*/
|
|
21
23
|
import { InvocationError, PROCEDURE_REGISTRY, invokePath, invokeProcedure, isRuntimeDefined, keyToPath, narrowCapability, outputValue, realClock, } from "@procedures/client";
|
|
22
|
-
import { nextTime, parseCron } from "./cron.js";
|
|
24
|
+
import { checkTimeZone, nextTime, parseCron, zoneFor } from "./cron.js";
|
|
23
25
|
import { ScheduleError } from "./errors.js";
|
|
24
26
|
import { findProgram } from "./programs.js";
|
|
25
27
|
import { defaultScheduleStore } from "./store.js";
|
|
@@ -32,10 +34,10 @@ function errorInfo(error) {
|
|
|
32
34
|
const code = error?.code;
|
|
33
35
|
return typeof code === "string" ? { code, message } : { message };
|
|
34
36
|
}
|
|
35
|
-
/** The next time of a schedule after a time, or undefined for an expression that is not correct. */
|
|
36
|
-
function nextOf(schedule, after) {
|
|
37
|
+
/** The next time of a schedule after a time, or undefined for an expression or a time zone that is not correct. */
|
|
38
|
+
function nextOf(schedule, after, local) {
|
|
37
39
|
try {
|
|
38
|
-
return nextTime(parseCron(schedule.cron), after, schedule.timeZone);
|
|
40
|
+
return nextTime(parseCron(schedule.cron), after, zoneFor(schedule.timeZone, local));
|
|
39
41
|
}
|
|
40
42
|
catch {
|
|
41
43
|
return undefined;
|
|
@@ -48,6 +50,8 @@ export class Scheduler {
|
|
|
48
50
|
clock;
|
|
49
51
|
now;
|
|
50
52
|
runTimeoutMs;
|
|
53
|
+
/** The IANA time zone of `local`, or undefined for the time zone of the process. */
|
|
54
|
+
timeZone;
|
|
51
55
|
options;
|
|
52
56
|
due = new Map();
|
|
53
57
|
runs = new Map();
|
|
@@ -63,6 +67,7 @@ export class Scheduler {
|
|
|
63
67
|
this.runTimeoutMs = options.runTimeoutMs ?? DEFAULT_RUN_TIMEOUT_MS;
|
|
64
68
|
if (!(this.runTimeoutMs >= 0))
|
|
65
69
|
throw new TypeError("Scheduler: runTimeoutMs must be 0 or more");
|
|
70
|
+
this.timeZone = options.timeZone === undefined ? undefined : checkTimeZone(options.timeZone);
|
|
66
71
|
}
|
|
67
72
|
/** True after `start()` and before `stop()`. */
|
|
68
73
|
get started() {
|
|
@@ -139,13 +144,13 @@ export class Scheduler {
|
|
|
139
144
|
let due = this.due.get(schedule.id);
|
|
140
145
|
if (due === undefined || due.version !== version) {
|
|
141
146
|
// A new or a changed schedule: its first time is after it was added, and after the start
|
|
142
|
-
due = { version, at: nextOf(schedule, Math.max(schedule.createdAt, this.startedAt) - 1) };
|
|
147
|
+
due = { version, at: nextOf(schedule, Math.max(schedule.createdAt, this.startedAt) - 1, this.timeZone) };
|
|
143
148
|
this.due.set(schedule.id, due);
|
|
144
149
|
}
|
|
145
150
|
if (due.at === undefined || due.at > now)
|
|
146
151
|
continue;
|
|
147
152
|
// The times that passed give one run: the next time comes after now
|
|
148
|
-
due.at = nextOf(schedule, now);
|
|
153
|
+
due.at = nextOf(schedule, now, this.timeZone);
|
|
149
154
|
if (!this.launch(schedule, now))
|
|
150
155
|
void this.skip(schedule, now);
|
|
151
156
|
}
|
package/dist/scheduler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"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"}
|
package/dist/store.d.ts
CHANGED
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
* A host gives one store to the module of the procedures (`createScheduleModule({ store })`) and
|
|
5
5
|
* the same store to its `Scheduler`. `update()` changes one schedule in one step, so the record of
|
|
6
6
|
* a run does not lose a change of `schedule.add` that came at the same time.
|
|
7
|
+
*
|
|
8
|
+
* Two processes can share the file of a `FileScheduleStore`: a lock file next to it keeps their
|
|
9
|
+
* changes apart (see the comment of the class).
|
|
7
10
|
*/
|
|
8
11
|
import type { Schedule } from "./types.js";
|
|
9
12
|
/** A store of schedules. Each method gives a Promise: a caller cannot tell a local store from a remote one. */
|
|
@@ -35,18 +38,40 @@ export declare class MemoryScheduleStore implements ScheduleStore {
|
|
|
35
38
|
delete(id: string): Promise<boolean>;
|
|
36
39
|
update(id: string, change: (schedule: Schedule) => Schedule | undefined): Promise<Schedule | undefined>;
|
|
37
40
|
}
|
|
41
|
+
/** The default age of a stale lock file: 30 seconds. */
|
|
42
|
+
export declare const DEFAULT_LOCK_STALE_MS = 30000;
|
|
43
|
+
/** The options of a `FileScheduleStore`. */
|
|
44
|
+
export interface FileScheduleStoreOptions {
|
|
45
|
+
/**
|
|
46
|
+
* The age in milliseconds after which a lock file is stale: its process stopped, and another
|
|
47
|
+
* store takes it over. The default is 30 seconds. A change holds the lock for one read and one write.
|
|
48
|
+
*/
|
|
49
|
+
readonly staleMs?: number | undefined;
|
|
50
|
+
}
|
|
38
51
|
/**
|
|
39
52
|
* A store in one JSON file: `{ "schemaVersion": 1, "schedules": { "<id>": <Schedule> } }`. Each
|
|
40
53
|
* operation reads the file again. A write goes through a temporary file and a rename, so a reader
|
|
41
|
-
*
|
|
42
|
-
*
|
|
54
|
+
* does not see a part of a write. The changes of this process go one at a time.
|
|
55
|
+
*
|
|
56
|
+
* Two processes can share the file. Each change holds a lock file next to it (`lockPath`):
|
|
57
|
+
* - The store makes the lock file with the flag `wx`. Only one process can make it.
|
|
58
|
+
* - Under the lock, the store reads the file again, changes it, writes it, and then removes the lock.
|
|
59
|
+
* - A lock file older than `staleMs` (default 30 seconds) is stale, and the store takes it over.
|
|
60
|
+
* - A store that waits for twice `staleMs` gives up with `LOCKED`.
|
|
61
|
+
* - The store removes only its own lock: the lock file holds a token of the store.
|
|
43
62
|
*/
|
|
44
63
|
export declare class FileScheduleStore implements ScheduleStore {
|
|
45
64
|
readonly path: string;
|
|
46
65
|
readonly kind = "file";
|
|
66
|
+
/** The lock file: the path of the store with `.lock`. */
|
|
67
|
+
readonly lockPath: string;
|
|
68
|
+
private readonly staleMs;
|
|
47
69
|
private queue;
|
|
48
|
-
/**
|
|
49
|
-
|
|
70
|
+
/**
|
|
71
|
+
* @param path - The JSON file. The store makes it, and its folder, at the first write.
|
|
72
|
+
* @param options - The age of a stale lock file.
|
|
73
|
+
*/
|
|
74
|
+
constructor(path: string, options?: FileScheduleStoreOptions);
|
|
50
75
|
get(id: string): Promise<Schedule | undefined>;
|
|
51
76
|
list(): Promise<Schedule[]>;
|
|
52
77
|
put(schedule: Schedule): Promise<void>;
|
|
@@ -54,8 +79,28 @@ export declare class FileScheduleStore implements ScheduleStore {
|
|
|
54
79
|
update(id: string, change: (schedule: Schedule) => Schedule | undefined): Promise<Schedule | undefined>;
|
|
55
80
|
/** The content of the file. A missing file is an empty store. */
|
|
56
81
|
private read;
|
|
57
|
-
/**
|
|
82
|
+
/**
|
|
83
|
+
* One change of the file, after the changes before it, under the lock file. The read under the
|
|
84
|
+
* lock gets the changes of the other processes. `edit` gives false for no change.
|
|
85
|
+
*/
|
|
58
86
|
private change;
|
|
87
|
+
/** This method writes the file through a temporary file and a rename. */
|
|
88
|
+
private write;
|
|
89
|
+
/**
|
|
90
|
+
* This method makes the lock file and gives its token. It waits while another store holds the
|
|
91
|
+
* lock, and it takes over a stale lock. After twice `staleMs`, it throws `LOCKED`.
|
|
92
|
+
*/
|
|
93
|
+
private lock;
|
|
94
|
+
/** This method removes the lock file when it holds the token of this store. A lock that another store took over stays. */
|
|
95
|
+
private unlock;
|
|
96
|
+
/** True when the file exists and its last change is older than `staleMs`. */
|
|
97
|
+
private isStale;
|
|
98
|
+
/**
|
|
99
|
+
* This method removes a stale lock file, and gives true then. A second lock file (`.lock.break`)
|
|
100
|
+
* lets one store at a time examine and remove a stale lock. A second store thus finds the new
|
|
101
|
+
* lock of the first store, not the stale lock, and does not remove it.
|
|
102
|
+
*/
|
|
103
|
+
private breakStale;
|
|
59
104
|
}
|
|
60
105
|
/** The store of the default module and of a `Scheduler` without a store: in memory, one for the process. */
|
|
61
106
|
export declare const defaultScheduleStore: ScheduleStore;
|
package/dist/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|