@monotykamary/localterm-server 1.35.1 → 1.37.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/dist/automation-scheduler.d.ts.map +1 -1
- package/dist/automation-scheduler.js +3 -2
- package/dist/automation-scheduler.js.map +1 -1
- package/dist/caffeinate-preferences-store.d.ts.map +1 -1
- package/dist/caffeinate-preferences-store.js +6 -17
- package/dist/caffeinate-preferences-store.js.map +1 -1
- package/dist/constants.d.ts +1 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +6 -0
- package/dist/constants.js.map +1 -1
- package/dist/git-diff.d.ts.map +1 -1
- package/dist/git-diff.js +17 -37
- package/dist/git-diff.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +53 -7
- package/dist/index.js.map +1 -1
- package/dist/protocol.d.ts +2 -2
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +1 -1
- package/dist/protocol.js.map +1 -1
- package/dist/schemas.d.ts +96 -0
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +16 -4
- package/dist/schemas.js.map +1 -1
- package/dist/session-event-manager.d.ts +26 -0
- package/dist/session-event-manager.d.ts.map +1 -0
- package/dist/session-event-manager.js +125 -0
- package/dist/session-event-manager.js.map +1 -0
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/compile-schedule.d.ts.map +1 -1
- package/dist/utils/compile-schedule.js +6 -12
- package/dist/utils/compile-schedule.js.map +1 -1
- package/dist/utils/memo-by.d.ts +2 -0
- package/dist/utils/memo-by.d.ts.map +1 -0
- package/dist/utils/memo-by.js +13 -0
- package/dist/utils/memo-by.js.map +1 -0
- package/dist/utils/reconcile-downtime.d.ts.map +1 -1
- package/dist/utils/reconcile-downtime.js +4 -2
- package/dist/utils/reconcile-downtime.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-event-manager.d.ts","sourceRoot":"","sources":["../src/session-event-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,UAAU,yBAAyB;IACjC,GAAG,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;CAC/B;AAED,KAAK,gBAAgB,GAAG,WAAW,GAAG,cAAc,GAAG,KAAK,GAAG,YAAY,GAAG,MAAM,CAAC;AAYrF,qBAAa,mBAAoB,SAAQ,YAAY,CAAC,yBAAyB,CAAC;IAK5E,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJ1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwC;IAChE,OAAO,CAAC,QAAQ,CAAS;gBAGN,OAAO,EAAE;QACxB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;QACjD,aAAa,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,UAAU,GAAG,IAAI,CAAC;KAC5D;IAKH,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI;IAkBrC,cAAc,CAAC,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAiBrE,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAa7C,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,IAAI;IAUZ,OAAO,CAAC,SAAS;CAclB"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { EventEmitter } from "node:events";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
const signatureOf = (automation) => automation.trigger.kind === "event" ? `${automation.trigger.event}:${automation.cwd}` : "";
|
|
4
|
+
export class SessionEventManager extends EventEmitter {
|
|
5
|
+
options;
|
|
6
|
+
entries = new Map();
|
|
7
|
+
disposed = false;
|
|
8
|
+
constructor(options) {
|
|
9
|
+
super();
|
|
10
|
+
this.options = options;
|
|
11
|
+
}
|
|
12
|
+
sync(automations) {
|
|
13
|
+
if (this.disposed)
|
|
14
|
+
return;
|
|
15
|
+
const desired = new Map();
|
|
16
|
+
for (const automation of automations) {
|
|
17
|
+
if (!automation.enabled)
|
|
18
|
+
continue;
|
|
19
|
+
if (automation.lifecycle !== "active")
|
|
20
|
+
continue;
|
|
21
|
+
if (automation.trigger.kind !== "event")
|
|
22
|
+
continue;
|
|
23
|
+
desired.set(automation.id, automation);
|
|
24
|
+
}
|
|
25
|
+
for (const [id, entry] of this.entries) {
|
|
26
|
+
const automation = desired.get(id);
|
|
27
|
+
if (!automation || signatureOf(automation) !== entry.signature)
|
|
28
|
+
this.stopEntry(id);
|
|
29
|
+
}
|
|
30
|
+
for (const [id, automation] of desired) {
|
|
31
|
+
if (!this.entries.has(id))
|
|
32
|
+
this.startEntry(automation);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
onSessionEvent(eventName, sessionCwd) {
|
|
36
|
+
if (this.disposed)
|
|
37
|
+
return;
|
|
38
|
+
for (const [id, entry] of this.entries) {
|
|
39
|
+
if (entry.postRunGraceActive)
|
|
40
|
+
continue;
|
|
41
|
+
const automation = this.options.getAutomation(id);
|
|
42
|
+
if (!automation || automation.trigger.kind !== "event")
|
|
43
|
+
continue;
|
|
44
|
+
if (automation.trigger.event !== eventName)
|
|
45
|
+
continue;
|
|
46
|
+
if (!isCwdMatch(automation.cwd, sessionCwd))
|
|
47
|
+
continue;
|
|
48
|
+
if (entry.debounceTimer !== null)
|
|
49
|
+
clearTimeout(entry.debounceTimer);
|
|
50
|
+
entry.debounceTimer = setTimeout(() => {
|
|
51
|
+
entry.debounceTimer = null;
|
|
52
|
+
this.fire(id);
|
|
53
|
+
}, this.options.debounceMs);
|
|
54
|
+
entry.debounceTimer.unref?.();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
notifyRunFinished(automationId) {
|
|
58
|
+
if (this.disposed)
|
|
59
|
+
return;
|
|
60
|
+
const entry = this.entries.get(automationId);
|
|
61
|
+
if (!entry)
|
|
62
|
+
return;
|
|
63
|
+
if (entry.postRunGraceTimer !== null)
|
|
64
|
+
clearTimeout(entry.postRunGraceTimer);
|
|
65
|
+
entry.postRunGraceActive = true;
|
|
66
|
+
entry.postRunGraceTimer = setTimeout(() => {
|
|
67
|
+
entry.postRunGraceActive = false;
|
|
68
|
+
entry.postRunGraceTimer = null;
|
|
69
|
+
}, this.options.postRunGraceMs);
|
|
70
|
+
entry.postRunGraceTimer.unref?.();
|
|
71
|
+
}
|
|
72
|
+
dispose() {
|
|
73
|
+
this.disposed = true;
|
|
74
|
+
for (const id of [...this.entries.keys()])
|
|
75
|
+
this.stopEntry(id);
|
|
76
|
+
this.removeAllListeners();
|
|
77
|
+
}
|
|
78
|
+
startEntry(automation) {
|
|
79
|
+
if (automation.trigger.kind !== "event")
|
|
80
|
+
return;
|
|
81
|
+
const entry = {
|
|
82
|
+
debounceTimer: null,
|
|
83
|
+
signature: signatureOf(automation),
|
|
84
|
+
postRunGraceTimer: null,
|
|
85
|
+
postRunGraceActive: false,
|
|
86
|
+
};
|
|
87
|
+
this.entries.set(automation.id, entry);
|
|
88
|
+
}
|
|
89
|
+
fire(automationId) {
|
|
90
|
+
if (this.disposed)
|
|
91
|
+
return;
|
|
92
|
+
if (!this.entries.has(automationId))
|
|
93
|
+
return;
|
|
94
|
+
if (this.options.isRunInFlight(automationId))
|
|
95
|
+
return;
|
|
96
|
+
const automation = this.options.getAutomation(automationId);
|
|
97
|
+
if (!automation || !automation.enabled || automation.lifecycle !== "active")
|
|
98
|
+
return;
|
|
99
|
+
if (automation.trigger.kind !== "event")
|
|
100
|
+
return;
|
|
101
|
+
this.emit("due", automation);
|
|
102
|
+
}
|
|
103
|
+
stopEntry(automationId) {
|
|
104
|
+
const entry = this.entries.get(automationId);
|
|
105
|
+
if (!entry)
|
|
106
|
+
return;
|
|
107
|
+
if (entry.debounceTimer !== null) {
|
|
108
|
+
clearTimeout(entry.debounceTimer);
|
|
109
|
+
entry.debounceTimer = null;
|
|
110
|
+
}
|
|
111
|
+
if (entry.postRunGraceTimer !== null) {
|
|
112
|
+
clearTimeout(entry.postRunGraceTimer);
|
|
113
|
+
entry.postRunGraceTimer = null;
|
|
114
|
+
}
|
|
115
|
+
entry.postRunGraceActive = false;
|
|
116
|
+
this.entries.delete(automationId);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
const isCwdMatch = (automationCwd, sessionCwd) => {
|
|
120
|
+
const resolvedAutomation = path.resolve(automationCwd);
|
|
121
|
+
const resolvedSession = path.resolve(sessionCwd);
|
|
122
|
+
return (resolvedSession === resolvedAutomation ||
|
|
123
|
+
resolvedSession.startsWith(resolvedAutomation + path.sep));
|
|
124
|
+
};
|
|
125
|
+
//# sourceMappingURL=session-event-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-event-manager.js","sourceRoot":"","sources":["../src/session-event-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { z } from "zod";
|
|
2
|
-
import type { automationLastRunSchema, automationLastRunStatusSchema, automationLifecycleSchema, automationRunLimitSchema, automationRunRecordSchema, automationRunStatusSchema, automationScheduleSchema, automationSchema, automationTriggerSchema, automationV1Schema, automationV2Schema, automationWithNextRunSchema, caffeinateModeSchema, clientToServerMessageSchema, createAutomationInputSchema, gitBaseSourceSchema, gitBranchInfoSchema, gitBranchPrSchema, gitBranchPrStateSchema, gitDiffFileListResponseSchema, gitDiffFileMetaSchema, gitDiffFilePatchSchema, gitDiffFileSchema, gitDiffFileStatusSchema, gitDiffModeSchema, gitDiffResponseSchema, gitDiffSummarySchema, resetAutomationInputSchema, serverToClientMessageSchema, triggerInputSchema, updateAutomationInputSchema } from "./schemas.js";
|
|
2
|
+
import type { automationLastRunSchema, automationLastRunStatusSchema, automationLifecycleSchema, automationRunLimitSchema, automationRunRecordSchema, automationRunStatusSchema, automationScheduleSchema, automationSchema, automationSessionEventSchema, automationTriggerSchema, automationV1Schema, automationV2Schema, automationWithNextRunSchema, caffeinateModeSchema, clientToServerMessageSchema, createAutomationInputSchema, gitBaseSourceSchema, gitBranchInfoSchema, gitBranchPrSchema, gitBranchPrStateSchema, gitDiffFileListResponseSchema, gitDiffFileMetaSchema, gitDiffFilePatchSchema, gitDiffFileSchema, gitDiffFileStatusSchema, gitDiffModeSchema, gitDiffResponseSchema, gitDiffSummarySchema, resetAutomationInputSchema, serverToClientMessageSchema, triggerInputSchema, updateAutomationInputSchema } from "./schemas.js";
|
|
3
3
|
export interface SpawnPtyInput {
|
|
4
4
|
cols?: number;
|
|
5
5
|
rows?: number;
|
|
@@ -21,6 +21,7 @@ export type CaffeinateMode = z.infer<typeof caffeinateModeSchema>;
|
|
|
21
21
|
export type AutomationLastRunStatus = z.infer<typeof automationLastRunStatusSchema>;
|
|
22
22
|
export type AutomationLastRun = z.infer<typeof automationLastRunSchema>;
|
|
23
23
|
export type AutomationSchedule = z.infer<typeof automationScheduleSchema>;
|
|
24
|
+
export type AutomationSessionEvent = z.infer<typeof automationSessionEventSchema>;
|
|
24
25
|
export type AutomationTrigger = z.infer<typeof automationTriggerSchema>;
|
|
25
26
|
export type TriggerInput = z.infer<typeof triggerInputSchema>;
|
|
26
27
|
export type AutomationRunLimit = z.infer<typeof automationRunLimitSchema>;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile-schedule.d.ts","sourceRoot":"","sources":["../../src/utils/compile-schedule.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"compile-schedule.d.ts","sourceRoot":"","sources":["../../src/utils/compile-schedule.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAavF,eAAO,MAAM,kBAAkB,GAAI,UAAU,kBAAkB,KAAG,MAAM,EAuCvE,CAAC;AAIF,eAAO,MAAM,eAAe,GAAI,UAAU,kBAAkB,KAAG,MAC9B,CAAC;AAuFlC,eAAO,MAAM,eAAe,GAAI,YAAY,MAAM,KAAG,kBAAkB,GAAG,IAWzE,CAAC;AAKF,eAAO,MAAM,sBAAsB,GAAI,OAAO,kBAAkB,GAAG,MAAM,KAAG,kBAI3E,CAAC;AAKF,eAAO,MAAM,qBAAqB,GAAI,SAAS,YAAY,KAAG,iBASkB,CAAC"}
|
|
@@ -10,13 +10,14 @@
|
|
|
10
10
|
// (or an unparseable string) falls back to {kind:"cron"} byte-for-byte, so the
|
|
11
11
|
// firing schedule never changes.
|
|
12
12
|
import { parseCronExpression } from "../cron-expression.js";
|
|
13
|
+
import { memoBy } from "./memo-by.js";
|
|
13
14
|
const WEEKDAYS_CRON_DOW = "1-5";
|
|
14
15
|
const WEEKENDS_CRON_DOW = "0,6";
|
|
15
16
|
const MINUTE_FIELD_MAX = 59;
|
|
16
17
|
const HOUR_FIELD_MAX = 23;
|
|
17
18
|
const MONTH_FIELD_SIZE = 12;
|
|
18
19
|
const HOUR_FIELD_SIZE = 24;
|
|
19
|
-
const sortUnique = (values) =>
|
|
20
|
+
const sortUnique = (values) => memoBy(values, (value) => value).sort((a, b) => a - b);
|
|
20
21
|
export const compileScheduleAll = (schedule) => {
|
|
21
22
|
switch (schedule.kind) {
|
|
22
23
|
case "hourly":
|
|
@@ -25,16 +26,7 @@ export const compileScheduleAll = (schedule) => {
|
|
|
25
26
|
return [`${schedule.minute} ${schedule.hour} * * *`];
|
|
26
27
|
case "timesOfDay": {
|
|
27
28
|
const ordered = [...schedule.times].sort((a, b) => a.hour * 60 + a.minute - (b.hour * 60 + b.minute));
|
|
28
|
-
|
|
29
|
-
const crons = [];
|
|
30
|
-
for (const time of ordered) {
|
|
31
|
-
const key = time.hour * 60 + time.minute;
|
|
32
|
-
if (seen.has(key))
|
|
33
|
-
continue;
|
|
34
|
-
seen.add(key);
|
|
35
|
-
crons.push(`${time.minute} ${time.hour} * * *`);
|
|
36
|
-
}
|
|
37
|
-
return crons;
|
|
29
|
+
return memoBy(ordered, (time) => time.hour * 60 + time.minute).map((time) => `${time.minute} ${time.hour} * * *`);
|
|
38
30
|
}
|
|
39
31
|
case "weekdaysPreset":
|
|
40
32
|
return [
|
|
@@ -179,5 +171,7 @@ export const normalizeTriggerInput = (trigger) => trigger.kind === "watch"
|
|
|
179
171
|
recursive: trigger.recursive ?? true,
|
|
180
172
|
...(trigger.filter ? { filter: trigger.filter } : {}),
|
|
181
173
|
}
|
|
182
|
-
:
|
|
174
|
+
: trigger.kind === "event"
|
|
175
|
+
? { kind: "event", event: trigger.event }
|
|
176
|
+
: { kind: "schedule", schedule: normalizeScheduleInput(trigger.schedule) };
|
|
183
177
|
//# sourceMappingURL=compile-schedule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile-schedule.js","sourceRoot":"","sources":["../../src/utils/compile-schedule.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,2EAA2E;AAC3E,+EAA+E;AAC/E,sCAAsC;AACtC,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,6EAA6E;AAC7E,gFAAgF;AAChF,+EAA+E;AAC/E,iCAAiC;AAEjC,OAAO,EAAE,mBAAmB,EAA6B,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"compile-schedule.js","sourceRoot":"","sources":["../../src/utils/compile-schedule.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,2EAA2E;AAC3E,+EAA+E;AAC/E,sCAAsC;AACtC,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,6EAA6E;AAC7E,gFAAgF;AAChF,+EAA+E;AAC/E,iCAAiC;AAEjC,OAAO,EAAE,mBAAmB,EAA6B,MAAM,uBAAuB,CAAC;AAEvF,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAChC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAChC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,MAAM,UAAU,GAAG,CAAC,MAAyB,EAAY,EAAE,CACzD,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,QAA4B,EAAY,EAAE;IAC3E,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,QAAQ;YACX,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,UAAU,CAAC,CAAC;QACxC,KAAK,OAAO;YACV,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC;QACvD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CACtC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAC5D,CAAC;YACF,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAChE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,QAAQ,CAC9C,CAAC;QACJ,CAAC;QACD,KAAK,gBAAgB;YACnB,OAAO;gBACL,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,QACjC,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBACvD,EAAE;aACH,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO;gBACL,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,QAAQ,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;aACvF,CAAC;QACJ,KAAK,SAAS;YACZ,OAAO;gBACL,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;aACxF,CAAC;QACJ,KAAK,eAAe;YAClB,OAAO,CAAC,KAAK,QAAQ,CAAC,IAAI,UAAU,CAAC,CAAC;QACxC,KAAK,aAAa;YAChB,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC;QACzD,KAAK,MAAM;YACT,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,UAAU,GAAU,QAAQ,CAAC;YACnC,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,yEAAyE;AACzE,yEAAyE;AACzE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAA4B,EAAU,EAAE,CACtE,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAElC,MAAM,eAAe,GAAG,CAAC,CAAsB,EAAE,CAAsB,EAAW,EAAE;IAClF,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;IAClC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,CAAuB,EAAE,CAAuB,EAAW,EAAE,CACpF,eAAe,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC;IACrC,eAAe,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC;IACjC,eAAe,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC;IAC7C,eAAe,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;IACnC,eAAe,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC;IAC3C,CAAC,CAAC,sBAAsB,KAAK,CAAC,CAAC,sBAAsB;IACrD,CAAC,CAAC,qBAAqB,KAAK,CAAC,CAAC,qBAAqB,CAAC;AAEtD,4EAA4E;AAC5E,iEAAiE;AACjE,MAAM,UAAU,GAAG,CAAC,MAA2B,EAAE,GAAW,EAAiB,EAAE;IAC7E,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtE,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACnD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACjF,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,MAA4B,EAA6B,EAAE;IACrF,8EAA8E;IAC9E,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAgB;QAAE,OAAO,IAAI,CAAC;IACzD,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,sBAAsB,CAAC;IAC/C,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,qBAAqB,CAAC;IAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC;IAExD,4EAA4E;IAC5E,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QACpD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAC1D,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;IAChE,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtC,2EAA2E;IAC3E,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QACtC,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QACtD,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACtE,CAAC;IAED,0DAA0D;IAC1D,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QACtC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACpC,CAAC;IAED,qCAAqC;IACrC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAElC,IAAI,OAAO,IAAI,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAE/D,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChG,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YACvE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACtE,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACxD,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACtE,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrF,CAAC;IAED,IAAI,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACvF,CAAC;IAED,0EAA0E;IAC1E,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,UAAkB,EAA6B,EAAE;IAC/E,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,4EAA4E;IAC5E,+DAA+D;IAC/D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,UAAU,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,UAAU,IAAI,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9E,CAAC,CAAC;AAEF,+EAA+E;AAC/E,iFAAiF;AACjF,qEAAqE;AACrE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAAkC,EAAsB,EAAE;IAC/F,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AAC3E,CAAC,CAAC;AAEF,2EAA2E;AAC3E,8EAA8E;AAC9E,qCAAqC;AACrC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAqB,EAAqB,EAAE,CAChF,OAAO,CAAC,IAAI,KAAK,OAAO;IACtB,CAAC,CAAC;QACE,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;QACpC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD;IACH,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO;QACxB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;QACzC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memo-by.d.ts","sourceRoot":"","sources":["../../src/utils/memo-by.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,GAAI,CAAC,EAAE,CAAC,EAAE,OAAO,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAG,CAAC,EAU1E,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const memoBy = (items, keyFn) => {
|
|
2
|
+
const memo = new Set();
|
|
3
|
+
const result = [];
|
|
4
|
+
for (const item of items) {
|
|
5
|
+
const key = keyFn(item);
|
|
6
|
+
if (memo.has(key))
|
|
7
|
+
continue;
|
|
8
|
+
memo.add(key);
|
|
9
|
+
result.push(item);
|
|
10
|
+
}
|
|
11
|
+
return result;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=memo-by.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memo-by.js","sourceRoot":"","sources":["../../src/utils/memo-by.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG,CAAO,KAAmB,EAAE,KAAqB,EAAO,EAAE;IAC9E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAK,CAAC;IAC1B,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconcile-downtime.d.ts","sourceRoot":"","sources":["../../src/utils/reconcile-downtime.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"reconcile-downtime.d.ts","sourceRoot":"","sources":["../../src/utils/reconcile-downtime.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAQ9C,eAAO,MAAM,0BAA0B,GACrC,YAAY,UAAU,EACtB,aAAa,MAAM,EACnB,KAAK,MAAM,KACV,MAAM,EAkBR,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AUTOMATION_DOWNTIME_RECONCILE_CAP, AUTOMATION_RECONCILE_LOOKBACK_MS, } from "../constants.js";
|
|
2
2
|
import { nextCronOccurrence, parseCronExpression } from "../cron-expression.js";
|
|
3
3
|
import { compileScheduleAll } from "./compile-schedule.js";
|
|
4
|
+
import { memoBy } from "./memo-by.js";
|
|
4
5
|
// The most-recent missed scheduled occurrences (epoch-ms) in the downtime
|
|
5
6
|
// window (lastAliveAt, now). Enumeration starts no earlier than a fixed
|
|
6
7
|
// lookback so a frequent schedule can't walk forever after a long outage; only
|
|
@@ -22,7 +23,8 @@ export const enumerateMissedOccurrences = (automation, lastAliveAt, now) => {
|
|
|
22
23
|
cursor = nextCronOccurrence(parsed, cursor);
|
|
23
24
|
}
|
|
24
25
|
}
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
return memoBy(collected, (epoch) => epoch)
|
|
27
|
+
.sort((a, b) => a - b)
|
|
28
|
+
.slice(-AUTOMATION_DOWNTIME_RECONCILE_CAP);
|
|
27
29
|
};
|
|
28
30
|
//# sourceMappingURL=reconcile-downtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconcile-downtime.js","sourceRoot":"","sources":["../../src/utils/reconcile-downtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,gCAAgC,GACjC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"reconcile-downtime.js","sourceRoot":"","sources":["../../src/utils/reconcile-downtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,gCAAgC,GACjC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,0EAA0E;AAC1E,wEAAwE;AACxE,+EAA+E;AAC/E,yEAAyE;AACzE,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,UAAsB,EACtB,WAAmB,EACnB,GAAW,EACD,EAAE;IACZ,8EAA8E;IAC9E,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,EAAE,CAAC;IACtD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,GAAG,gCAAgC,CAAC,CAAC;IACpF,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC;IACzC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,UAAU,IAAI,kBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzE,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,IAAI,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClD,OAAO,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC;YACxC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YACjC,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;SACvC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;SACrB,KAAK,CAAC,CAAC,iCAAiC,CAAC,CAAC;AAC/C,CAAC,CAAC"}
|