@cloud-cli/on 1.19.0 → 1.20.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/migrations.d.ts +2 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/on.js +104 -94
- package/dist/server.d.ts.map +1 -1
- package/dist/workflows.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAmBA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAcnD"}
|
package/dist/on.js
CHANGED
|
@@ -8138,10 +8138,20 @@ var qo = /* @__PURE__ */ g({
|
|
|
8138
8138
|
stringify: () => Ko,
|
|
8139
8139
|
visit: () => lr,
|
|
8140
8140
|
visitAsync: () => dr
|
|
8141
|
-
})
|
|
8141
|
+
}), Jo = [{
|
|
8142
|
+
version: "001_add_workflow_enabled",
|
|
8143
|
+
async apply() {
|
|
8144
|
+
(await S.all("PRAGMA table_info(workflows)")).some((e) => e.name === "enabled") || await S.run("ALTER TABLE workflows ADD COLUMN enabled INTEGER NOT NULL DEFAULT 1");
|
|
8145
|
+
}
|
|
8146
|
+
}];
|
|
8147
|
+
async function Yo() {
|
|
8148
|
+
await S.exec("\n CREATE TABLE IF NOT EXISTS schema_migrations (\n version TEXT PRIMARY KEY,\n applied_at DATETIME DEFAULT CURRENT_TIMESTAMP\n )\n ");
|
|
8149
|
+
let e = new Set((await S.all("SELECT version FROM schema_migrations")).map((e) => e.version));
|
|
8150
|
+
for (let t of Jo) e.has(t.version) || (await t.apply(), await S.run("INSERT INTO schema_migrations (version) VALUES (?)", [t.version]));
|
|
8151
|
+
}
|
|
8142
8152
|
//#endregion
|
|
8143
8153
|
//#region src/parser/matrix-expander.ts
|
|
8144
|
-
function
|
|
8154
|
+
function Xo(e) {
|
|
8145
8155
|
if (!e.matrix || Object.keys(e.matrix).length === 0) return [e];
|
|
8146
8156
|
let t = e.matrix;
|
|
8147
8157
|
return Object.keys(t).reduce((e, n) => {
|
|
@@ -8168,22 +8178,22 @@ function Jo(e) {
|
|
|
8168
8178
|
}
|
|
8169
8179
|
//#endregion
|
|
8170
8180
|
//#region src/workflows.ts
|
|
8171
|
-
function
|
|
8181
|
+
function Zo(e) {
|
|
8172
8182
|
let t = String(e || "").toLowerCase().replace(/[^a-z0-9]/g, "-").replace(/^-+|-+$/g, "");
|
|
8173
8183
|
if (!t) throw Error("Workflow requires a name or id");
|
|
8174
8184
|
return t;
|
|
8175
8185
|
}
|
|
8176
|
-
function
|
|
8186
|
+
function Qo(e) {
|
|
8177
8187
|
let t = qo.parse(e);
|
|
8178
8188
|
if (!t || typeof t != "object" || Array.isArray(t)) throw Error("Workflow must be a YAML object");
|
|
8179
8189
|
if (t.includes) throw Error("includes is not supported for database workflows");
|
|
8180
8190
|
if (typeof t.name != "string" || !t.name.trim()) throw Error("Workflow name is required");
|
|
8181
8191
|
if (!Array.isArray(t.steps) || !t.steps.length) throw Error("Workflow requires at least one step");
|
|
8182
8192
|
if (!t.on || typeof t.on != "object") throw Error("Workflow requires an on block");
|
|
8183
|
-
return
|
|
8193
|
+
return Xo(t).map((e) => {
|
|
8184
8194
|
let [t, n] = Object.entries(e.on).find(([e]) => e !== "schedule" && e !== "solar") || ["generic", {}];
|
|
8185
8195
|
return {
|
|
8186
|
-
id:
|
|
8196
|
+
id: Zo(e.id || e.name),
|
|
8187
8197
|
name: e.name,
|
|
8188
8198
|
on: {
|
|
8189
8199
|
...n,
|
|
@@ -8198,12 +8208,12 @@ function Xo(e) {
|
|
|
8198
8208
|
};
|
|
8199
8209
|
});
|
|
8200
8210
|
}
|
|
8201
|
-
var
|
|
8211
|
+
var $o = class {
|
|
8202
8212
|
async init() {
|
|
8203
|
-
await S.exec("\n CREATE TABLE IF NOT EXISTS workflows (\n id TEXT PRIMARY KEY, name TEXT NOT NULL, source_yaml TEXT NOT NULL,\n status TEXT NOT NULL DEFAULT 'draft', active_revision INTEGER, enabled INTEGER NOT NULL DEFAULT 1,\n created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP\n );\n CREATE TABLE IF NOT EXISTS workflow_revisions (\n workflow_id TEXT NOT NULL, revision INTEGER NOT NULL, source_yaml TEXT NOT NULL,\n normalized_json TEXT NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP,\n PRIMARY KEY (workflow_id, revision)\n );\n CREATE TABLE IF NOT EXISTS scheduled_runs (\n workflow_id TEXT NOT NULL, trigger_id TEXT NOT NULL, scheduled_for TEXT NOT NULL,\n created_at DATETIME DEFAULT CURRENT_TIMESTAMP,\n PRIMARY KEY (workflow_id, trigger_id, scheduled_for)\n );\n "),
|
|
8213
|
+
await S.exec("\n CREATE TABLE IF NOT EXISTS workflows (\n id TEXT PRIMARY KEY, name TEXT NOT NULL, source_yaml TEXT NOT NULL,\n status TEXT NOT NULL DEFAULT 'draft', active_revision INTEGER, enabled INTEGER NOT NULL DEFAULT 1,\n created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP\n );\n CREATE TABLE IF NOT EXISTS workflow_revisions (\n workflow_id TEXT NOT NULL, revision INTEGER NOT NULL, source_yaml TEXT NOT NULL,\n normalized_json TEXT NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP,\n PRIMARY KEY (workflow_id, revision)\n );\n CREATE TABLE IF NOT EXISTS scheduled_runs (\n workflow_id TEXT NOT NULL, trigger_id TEXT NOT NULL, scheduled_for TEXT NOT NULL,\n created_at DATETIME DEFAULT CURRENT_TIMESTAMP,\n PRIMARY KEY (workflow_id, trigger_id, scheduled_for)\n );\n "), await Yo();
|
|
8204
8214
|
}
|
|
8205
8215
|
validate(e) {
|
|
8206
|
-
let t =
|
|
8216
|
+
let t = Qo(e);
|
|
8207
8217
|
for (let e of t) {
|
|
8208
8218
|
for (let t of e.schedule || []) if (typeof t.cron != "string" || t.cron.trim().split(/\s+/).length !== 5) throw Error("schedule.cron must have five fields");
|
|
8209
8219
|
for (let t of e.solar || []) if (!t.event || !Number.isFinite(t.latitude) || !Number.isFinite(t.longitude)) throw Error("solar triggers require event, latitude, and longitude");
|
|
@@ -8289,10 +8299,10 @@ var Zo = class {
|
|
|
8289
8299
|
n
|
|
8290
8300
|
]);
|
|
8291
8301
|
}
|
|
8292
|
-
},
|
|
8302
|
+
}, es = 50, ts = 500, ns = class e {
|
|
8293
8303
|
server;
|
|
8294
8304
|
preprocessors = /* @__PURE__ */ new Map();
|
|
8295
|
-
workflows = new
|
|
8305
|
+
workflows = new $o();
|
|
8296
8306
|
secretRepository = new qn();
|
|
8297
8307
|
queue;
|
|
8298
8308
|
secrets;
|
|
@@ -8339,8 +8349,8 @@ var Zo = class {
|
|
|
8339
8349
|
}), t.end(Yn("editor", n));
|
|
8340
8350
|
}
|
|
8341
8351
|
if (e.method === "GET" && n.pathname === "/api/jobs") {
|
|
8342
|
-
let e = n.searchParams.get("afterId"), r = n.searchParams.get("beforeId"), i = n.searchParams.get("limit"), a = e === null ? void 0 : Number(e), o = r === null ? void 0 : Number(r), s = i === null ?
|
|
8343
|
-
return a !== void 0 && (!Number.isSafeInteger(a) || a < 0) ? (t.writeHead(400, { "Content-Type": "application/json; charset=utf-8" }), t.end(JSON.stringify({ error: "afterId must be a non-negative integer" }))) : o !== void 0 && (!Number.isSafeInteger(o) || o < 1) ? (t.writeHead(400, { "Content-Type": "application/json; charset=utf-8" }), t.end(JSON.stringify({ error: "beforeId must be a positive integer" }))) : !Number.isSafeInteger(s) || s < 1 || s >
|
|
8352
|
+
let e = n.searchParams.get("afterId"), r = n.searchParams.get("beforeId"), i = n.searchParams.get("limit"), a = e === null ? void 0 : Number(e), o = r === null ? void 0 : Number(r), s = i === null ? es : Number(i);
|
|
8353
|
+
return a !== void 0 && (!Number.isSafeInteger(a) || a < 0) ? (t.writeHead(400, { "Content-Type": "application/json; charset=utf-8" }), t.end(JSON.stringify({ error: "afterId must be a non-negative integer" }))) : o !== void 0 && (!Number.isSafeInteger(o) || o < 1) ? (t.writeHead(400, { "Content-Type": "application/json; charset=utf-8" }), t.end(JSON.stringify({ error: "beforeId must be a positive integer" }))) : !Number.isSafeInteger(s) || s < 1 || s > ts ? (t.writeHead(400, { "Content-Type": "application/json; charset=utf-8" }), t.end(JSON.stringify({ error: `limit must be an integer from 1 to ${ts}` }))) : this.renderDashboardJobs(t, s, a, o);
|
|
8344
8354
|
}
|
|
8345
8355
|
if (e.method === "GET" && n.pathname === "/api/events") return this.events.subscribe(e, t);
|
|
8346
8356
|
if (n.pathname === "/api/workflows/validate" && e.method === "POST") return this.handleWorkflowValidation(e, t);
|
|
@@ -8598,7 +8608,7 @@ var Zo = class {
|
|
|
8598
8608
|
this.events.publish("jobs.changed", r ? { jobId: r } : {}), t.writeHead(202).end();
|
|
8599
8609
|
}
|
|
8600
8610
|
async renderDashboard(e) {
|
|
8601
|
-
let t = await this.queue.listJobs(51), n = fe(t.slice(0,
|
|
8611
|
+
let t = await this.queue.listJobs(51), n = fe(t.slice(0, es)), r = await this.redactText(pe(n, t.length > es));
|
|
8602
8612
|
e.writeHead(200, { "Content-Type": "text/html; charset=utf-8" }), e.end(r);
|
|
8603
8613
|
}
|
|
8604
8614
|
async renderDashboardJobs(e, t, n, r) {
|
|
@@ -8658,8 +8668,8 @@ var Zo = class {
|
|
|
8658
8668
|
async redactText(e) {
|
|
8659
8669
|
return this.redact(e, await this.currentSecrets());
|
|
8660
8670
|
}
|
|
8661
|
-
listen(e) {
|
|
8662
|
-
return new Promise((t) => {
|
|
8671
|
+
async listen(e) {
|
|
8672
|
+
return await this.workflowsLoaded, new Promise((t) => {
|
|
8663
8673
|
this.server.listen(e, process.env.RUNNER_HOST || "0.0.0.0", () => {
|
|
8664
8674
|
console.log(`🌐 Webhook Ingress Server running on port ${e}`), t(this);
|
|
8665
8675
|
});
|
|
@@ -8672,7 +8682,7 @@ var Zo = class {
|
|
|
8672
8682
|
});
|
|
8673
8683
|
});
|
|
8674
8684
|
}
|
|
8675
|
-
},
|
|
8685
|
+
}, rs = class extends m {
|
|
8676
8686
|
fd;
|
|
8677
8687
|
pending = "";
|
|
8678
8688
|
constructor(e) {
|
|
@@ -8695,7 +8705,7 @@ var Zo = class {
|
|
|
8695
8705
|
}
|
|
8696
8706
|
e.write(this.fd, t, 0, "utf8", (e) => n(e));
|
|
8697
8707
|
}
|
|
8698
|
-
},
|
|
8708
|
+
}, is = s(d), as = class {
|
|
8699
8709
|
name = "systemd";
|
|
8700
8710
|
async isSupported() {
|
|
8701
8711
|
try {
|
|
@@ -8707,7 +8717,7 @@ var Zo = class {
|
|
|
8707
8717
|
execute(t) {
|
|
8708
8718
|
let n = null, r = null, a = Date.now(), o = i.join(t.logsDir, `step-${t.step.id}.log`);
|
|
8709
8719
|
try {
|
|
8710
|
-
e.mkdirSync(t.logsDir, { recursive: !0 }), e.mkdirSync(t.workingDir, { recursive: !0 }), e.chmodSync(t.workingDir, 511), n = e.openSync(o, "a"), r = new
|
|
8720
|
+
e.mkdirSync(t.logsDir, { recursive: !0 }), e.mkdirSync(t.workingDir, { recursive: !0 }), e.chmodSync(t.workingDir, 511), n = e.openSync(o, "a"), r = new rs(n);
|
|
8711
8721
|
} catch (e) {
|
|
8712
8722
|
return {
|
|
8713
8723
|
done: Promise.resolve({
|
|
@@ -8817,7 +8827,7 @@ var Zo = class {
|
|
|
8817
8827
|
cancel: async () => {
|
|
8818
8828
|
p = !0;
|
|
8819
8829
|
try {
|
|
8820
|
-
t.image && await
|
|
8830
|
+
t.image && await is(`docker stop -t 2 ${s}`).catch(() => {}), await is(`systemctl stop ${s}.service`).catch(() => {});
|
|
8821
8831
|
} catch {}
|
|
8822
8832
|
},
|
|
8823
8833
|
logFilePath: o
|
|
@@ -8827,7 +8837,7 @@ var Zo = class {
|
|
|
8827
8837
|
let t = await p(e, "utf-8"), n = t.includes("Running as unit: ") ? t.indexOf("\n") + 1 : 0, r = t.includes("Finished with result: ") ? t.lastIndexOf("Finished with result: ") : t.length;
|
|
8828
8838
|
return t.slice(n, r);
|
|
8829
8839
|
}
|
|
8830
|
-
},
|
|
8840
|
+
}, os = class {
|
|
8831
8841
|
name = "standard-process";
|
|
8832
8842
|
async isSupported() {
|
|
8833
8843
|
return !0;
|
|
@@ -8835,7 +8845,7 @@ var Zo = class {
|
|
|
8835
8845
|
execute(t) {
|
|
8836
8846
|
let n = null, r = null, a = Date.now(), o = i.join(t.logsDir, `step-${t.step.id}.log`);
|
|
8837
8847
|
try {
|
|
8838
|
-
e.mkdirSync(t.logsDir, { recursive: !0 }), e.mkdirSync(t.workingDir, { recursive: !0 }), e.chmodSync(t.workingDir, 511), n = e.openSync(o, "a"), r = new
|
|
8848
|
+
e.mkdirSync(t.logsDir, { recursive: !0 }), e.mkdirSync(t.workingDir, { recursive: !0 }), e.chmodSync(t.workingDir, 511), n = e.openSync(o, "a"), r = new rs(n);
|
|
8839
8849
|
} catch (e) {
|
|
8840
8850
|
return {
|
|
8841
8851
|
done: Promise.resolve({
|
|
@@ -8941,19 +8951,19 @@ var Zo = class {
|
|
|
8941
8951
|
};
|
|
8942
8952
|
//#endregion
|
|
8943
8953
|
//#region src/drivers/index.ts
|
|
8944
|
-
async function
|
|
8945
|
-
let e = new
|
|
8946
|
-
return await e.isSupported() ? (console.log("⚡ Selected Execution Driver: Systemd (cgroups enabled)"), e) : (console.log("📦 Selected Execution Driver: Standard Process (Fallback)"), new
|
|
8954
|
+
async function ss() {
|
|
8955
|
+
let e = new as();
|
|
8956
|
+
return await e.isSupported() ? (console.log("⚡ Selected Execution Driver: Systemd (cgroups enabled)"), e) : (console.log("📦 Selected Execution Driver: Standard Process (Fallback)"), new os());
|
|
8947
8957
|
}
|
|
8948
8958
|
//#endregion
|
|
8949
8959
|
//#region src/signals.ts
|
|
8950
|
-
async function
|
|
8960
|
+
async function cs(e) {
|
|
8951
8961
|
let t = !1;
|
|
8952
8962
|
async function n(n) {
|
|
8953
8963
|
if (!t) {
|
|
8954
8964
|
t = !0, console.log(`\n🛑 Received ${n}. Initiating graceful shutdown...`);
|
|
8955
8965
|
try {
|
|
8956
|
-
|
|
8966
|
+
ms(), e.length > 0 && (console.log("⚙️ Waiting for active worker jobs to drain..."), await Promise.allSettled(e)), console.log("✨ Engine stopped cleanly. Goodbye!"), process.exit(0);
|
|
8957
8967
|
} catch (e) {
|
|
8958
8968
|
console.error("❌ Error during graceful shutdown:", e.message), process.exit(1);
|
|
8959
8969
|
}
|
|
@@ -8963,7 +8973,7 @@ async function os(e) {
|
|
|
8963
8973
|
}
|
|
8964
8974
|
//#endregion
|
|
8965
8975
|
//#region src/plugins/manager.ts
|
|
8966
|
-
var
|
|
8976
|
+
var ls = class {
|
|
8967
8977
|
plugins;
|
|
8968
8978
|
constructor(e = []) {
|
|
8969
8979
|
this.plugins = e;
|
|
@@ -8985,38 +8995,38 @@ var ss = class {
|
|
|
8985
8995
|
console.error(`[Plugin Error] ${n.name}.onWorkflowFinish:`, e);
|
|
8986
8996
|
}
|
|
8987
8997
|
}
|
|
8988
|
-
},
|
|
8989
|
-
function
|
|
8990
|
-
|
|
8998
|
+
}, us = { isStopping: !1 }, ds = /* @__PURE__ */ new Set(), fs = null, ps = null;
|
|
8999
|
+
function ms() {
|
|
9000
|
+
us.isStopping = !0, fs?.abort(), ps?.();
|
|
8991
9001
|
}
|
|
8992
|
-
function
|
|
8993
|
-
|
|
8994
|
-
let i = [
|
|
8995
|
-
return
|
|
9002
|
+
function hs(e, t, n, r) {
|
|
9003
|
+
us.isStopping = !1;
|
|
9004
|
+
let i = [gs(e, t, n, r)];
|
|
9005
|
+
return cs(i), i;
|
|
8996
9006
|
}
|
|
8997
|
-
async function
|
|
8998
|
-
let i = await
|
|
9007
|
+
async function gs(e, t, n, r) {
|
|
9008
|
+
let i = await ss(), a = new $o(), o = /* @__PURE__ */ new Set(), s = 0, c = null, l = () => {
|
|
8999
9009
|
s++, c?.();
|
|
9000
9010
|
};
|
|
9001
|
-
|
|
9002
|
-
let u =
|
|
9003
|
-
for (console.log(`🚀 Worker scheduler started. Driver: ${i.name}. Concurrency: ${e}. Tags: ${r.tags.join(", ") || "(none)"}`); !
|
|
9011
|
+
ps = l, fs = new AbortController();
|
|
9012
|
+
let u = _s(r, fs.signal, l);
|
|
9013
|
+
for (console.log(`🚀 Worker scheduler started. Driver: ${i.name}. Concurrency: ${e}. Tags: ${r.tags.join(", ") || "(none)"}`); !us.isStopping;) {
|
|
9004
9014
|
let n = s;
|
|
9005
9015
|
try {
|
|
9006
|
-
for (; o.size < e && !
|
|
9016
|
+
for (; o.size < e && !us.isStopping;) {
|
|
9007
9017
|
let e = await t.claimNextJob(r.tags);
|
|
9008
9018
|
if (!e) break;
|
|
9009
|
-
if (
|
|
9019
|
+
if (us.isStopping) {
|
|
9010
9020
|
await t.releaseJob(e.id);
|
|
9011
9021
|
break;
|
|
9012
9022
|
}
|
|
9013
9023
|
let n = process.env.WORKER_NAME || "cli", s;
|
|
9014
9024
|
s = (async () => {
|
|
9015
|
-
|
|
9025
|
+
bs(r, e.id);
|
|
9016
9026
|
let o = await a.getRevision(e.workflow_id, e.workflow_revision);
|
|
9017
9027
|
if (!o) throw await t.finishJob(e.id, "failed"), Error(`Workflow ${e.workflow_id} revision ${e.workflow_revision} was not found`);
|
|
9018
9028
|
let s = new le();
|
|
9019
|
-
s.replace(await
|
|
9029
|
+
s.replace(await xs(r, n, e.id)), await Ss({
|
|
9020
9030
|
workerId: n,
|
|
9021
9031
|
job: e,
|
|
9022
9032
|
queue: t,
|
|
@@ -9026,17 +9036,17 @@ async function ms(e, t, n, r) {
|
|
|
9026
9036
|
workflow: o
|
|
9027
9037
|
});
|
|
9028
9038
|
})().catch((e) => console.error(`[${n}] ⚠️ Worker execution error:`, e)).finally(() => {
|
|
9029
|
-
o.delete(s),
|
|
9039
|
+
o.delete(s), bs(r, e.id), l();
|
|
9030
9040
|
}), o.add(s);
|
|
9031
9041
|
}
|
|
9032
9042
|
} catch (e) {
|
|
9033
9043
|
console.error("⚠️ Worker scheduler claim error:", e), setTimeout(l, 5e3).unref();
|
|
9034
9044
|
}
|
|
9035
|
-
!
|
|
9045
|
+
!us.isStopping && s === n && (await vs(n, () => s, (e) => c = e), c = null);
|
|
9036
9046
|
}
|
|
9037
|
-
|
|
9047
|
+
fs.abort(), await Promise.allSettled(o), await u, ps = null, console.log("🛑 Worker scheduler stopped cleanly.");
|
|
9038
9048
|
}
|
|
9039
|
-
async function
|
|
9049
|
+
async function _s(e, t, n) {
|
|
9040
9050
|
let r = 1e3;
|
|
9041
9051
|
for (; !t.aborted;) {
|
|
9042
9052
|
try {
|
|
@@ -9047,10 +9057,10 @@ async function hs(e, t, n) {
|
|
|
9047
9057
|
if (t.aborted || e?.name === "AbortError") break;
|
|
9048
9058
|
console.error(`⚠️ Worker event stream disconnected: ${e.message}`);
|
|
9049
9059
|
}
|
|
9050
|
-
await
|
|
9060
|
+
await ys(r, t), r = Math.min(r * 2, 3e4);
|
|
9051
9061
|
}
|
|
9052
9062
|
}
|
|
9053
|
-
function
|
|
9063
|
+
function vs(e, t, n) {
|
|
9054
9064
|
return new Promise((r) => {
|
|
9055
9065
|
if (t() !== e) return r();
|
|
9056
9066
|
let i = setTimeout(r, 6e4);
|
|
@@ -9059,7 +9069,7 @@ function gs(e, t, n) {
|
|
|
9059
9069
|
});
|
|
9060
9070
|
});
|
|
9061
9071
|
}
|
|
9062
|
-
function
|
|
9072
|
+
function ys(e, t) {
|
|
9063
9073
|
return new Promise((n) => {
|
|
9064
9074
|
if (t.aborted) return n();
|
|
9065
9075
|
let r = () => {
|
|
@@ -9070,7 +9080,7 @@ function _s(e, t) {
|
|
|
9070
9080
|
t.addEventListener("abort", r, { once: !0 });
|
|
9071
9081
|
});
|
|
9072
9082
|
}
|
|
9073
|
-
async function
|
|
9083
|
+
async function bs(e, t) {
|
|
9074
9084
|
if (e.workerToken) try {
|
|
9075
9085
|
let n = await fetch(new URL("/api/events", e.serverUrl), {
|
|
9076
9086
|
method: "POST",
|
|
@@ -9086,7 +9096,7 @@ async function vs(e, t) {
|
|
|
9086
9096
|
Hn("Failed to publish job status event:", e);
|
|
9087
9097
|
}
|
|
9088
9098
|
}
|
|
9089
|
-
async function
|
|
9099
|
+
async function xs(e, t, n) {
|
|
9090
9100
|
if (!e.workerToken) return {};
|
|
9091
9101
|
try {
|
|
9092
9102
|
let r = await fetch(new URL(`/api/jobs/${n}/secrets`, e.serverUrl), {
|
|
@@ -9102,7 +9112,7 @@ async function ys(e, t, n) {
|
|
|
9102
9112
|
throw console.error(`Unable to retrieve secrets for job ${n}:`, e), e;
|
|
9103
9113
|
}
|
|
9104
9114
|
}
|
|
9105
|
-
async function
|
|
9115
|
+
async function Ss(e) {
|
|
9106
9116
|
let { workerId: t, job: n, config: r, secrets: a, queue: o } = e;
|
|
9107
9117
|
console.log(`\n[${t}] 📦 Claimed Job #${n.id} (Workflow: ${n.workflow_id})`);
|
|
9108
9118
|
let s = typeof n.payload == "string" ? JSON.parse(n.payload) : n.payload;
|
|
@@ -9122,27 +9132,27 @@ async function bs(e) {
|
|
|
9122
9132
|
durationMs: 0,
|
|
9123
9133
|
outputs: {},
|
|
9124
9134
|
logContent: ""
|
|
9125
|
-
})), g =
|
|
9126
|
-
await o.saveReport(n.id, g),
|
|
9127
|
-
let _ = new
|
|
9135
|
+
})), g = ks(n, "running", u, l, m.env, h, s);
|
|
9136
|
+
await o.saveReport(n.id, g), bs(r, n.id);
|
|
9137
|
+
let _ = new ls(r.plugins), v = {
|
|
9128
9138
|
jobId: String(n.id),
|
|
9129
9139
|
workflowName: n.workflow_id,
|
|
9130
9140
|
inputs: l,
|
|
9131
9141
|
runUrl: new URL(`/runs/${n.id}`, r.serverUrl).toString()
|
|
9132
9142
|
};
|
|
9133
9143
|
await _.triggerWorkflowStart(v);
|
|
9134
|
-
let { cancelled: y, failed: ee } = await
|
|
9144
|
+
let { cancelled: y, failed: ee } = await Cs({
|
|
9135
9145
|
payload: s,
|
|
9136
9146
|
steps: c,
|
|
9137
9147
|
executionContext: m,
|
|
9138
9148
|
...e
|
|
9139
9149
|
}, g), b = y ? "cancelled" : ee ? "failed" : "success";
|
|
9140
|
-
g.status = b, g.durationMs = Date.now() - u, g.finishedAt = (/* @__PURE__ */ new Date()).toISOString(), await o.completeJob(n.id, b, g),
|
|
9150
|
+
g.status = b, g.durationMs = Date.now() - u, g.finishedAt = (/* @__PURE__ */ new Date()).toISOString(), await o.completeJob(n.id, b, g), bs(r, n.id), console.log(`[${t}] ✅ Job #${n.id} completed as: ${b}`), await _.triggerWorkflowFinish(v, b);
|
|
9141
9151
|
}
|
|
9142
|
-
async function
|
|
9152
|
+
async function Cs(e, t) {
|
|
9143
9153
|
let { driver: n, workerId: r, queue: i, config: a, job: o, payload: s, steps: c, executionContext: l } = e, u = t.steps, d = !1, f = !1, p = 0;
|
|
9144
9154
|
try {
|
|
9145
|
-
e.workflow?.env && Object.assign(l.env, await
|
|
9155
|
+
e.workflow?.env && Object.assign(l.env, await Es(e.workflow.env, l));
|
|
9146
9156
|
for (let e = 0; e < c.length; e++) {
|
|
9147
9157
|
let s = c[e], m = (/* @__PURE__ */ new Date()).toISOString();
|
|
9148
9158
|
u[e] = {
|
|
@@ -9155,8 +9165,8 @@ async function xs(e, t) {
|
|
|
9155
9165
|
logContent: "",
|
|
9156
9166
|
startedAt: m,
|
|
9157
9167
|
finishedAt: void 0
|
|
9158
|
-
}, t.durationMs = Date.now() - Date.parse(t.startedAt), await i.saveReport(o.id, t),
|
|
9159
|
-
let h = await
|
|
9168
|
+
}, t.durationMs = Date.now() - Date.parse(t.startedAt), await i.saveReport(o.id, t), bs(a, o.id);
|
|
9169
|
+
let h = await ws({
|
|
9160
9170
|
workerId: r,
|
|
9161
9171
|
jobId: o.id,
|
|
9162
9172
|
step: s,
|
|
@@ -9183,7 +9193,7 @@ async function xs(e, t) {
|
|
|
9183
9193
|
exitCode: 1,
|
|
9184
9194
|
error: "Step failed before execution started",
|
|
9185
9195
|
finishedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
9186
|
-
}, p = e + 1, t.durationMs = Date.now() - Date.parse(t.startedAt), await i.saveReport(o.id, t),
|
|
9196
|
+
}, p = e + 1, t.durationMs = Date.now() - Date.parse(t.startedAt), await i.saveReport(o.id, t), bs(a, o.id), h.skipped) break;
|
|
9187
9197
|
if (h.cancelled) {
|
|
9188
9198
|
f = !0, d = !0;
|
|
9189
9199
|
break;
|
|
@@ -9196,13 +9206,13 @@ async function xs(e, t) {
|
|
|
9196
9206
|
} catch (e) {
|
|
9197
9207
|
console.log("🛑 Step failed", e), d = !0;
|
|
9198
9208
|
}
|
|
9199
|
-
return p < c.length && (
|
|
9209
|
+
return p < c.length && (Os(c, p, u), t.durationMs = Date.now() - Date.parse(t.startedAt), await i.saveReport(o.id, t), bs(a, o.id)), {
|
|
9200
9210
|
failed: d,
|
|
9201
9211
|
cancelled: f,
|
|
9202
9212
|
stepReports: u
|
|
9203
9213
|
};
|
|
9204
9214
|
}
|
|
9205
|
-
async function
|
|
9215
|
+
async function ws(e) {
|
|
9206
9216
|
let { step: t, stepIndex: n, executionContext: r } = e;
|
|
9207
9217
|
if (t.id ||= `step-${n}`, t.name ||= t.id, t.if && !await Gn.evaluateConditions(t.if, r)) return Hn(`⏩ Skipped step ${t.id} based on condition: ${t.if}`, r), {
|
|
9208
9218
|
failed: !1,
|
|
@@ -9211,7 +9221,7 @@ async function Ss(e) {
|
|
|
9211
9221
|
report: null
|
|
9212
9222
|
};
|
|
9213
9223
|
try {
|
|
9214
|
-
let n = await
|
|
9224
|
+
let n = await Es(t.env, r), i = {
|
|
9215
9225
|
jobId: String(e.jobId),
|
|
9216
9226
|
step: t,
|
|
9217
9227
|
command: t.run,
|
|
@@ -9225,10 +9235,10 @@ async function Ss(e) {
|
|
|
9225
9235
|
WORKING_DIR: r.workingDir
|
|
9226
9236
|
}
|
|
9227
9237
|
};
|
|
9228
|
-
return t.eval ?
|
|
9238
|
+
return t.eval ? Ts({
|
|
9229
9239
|
...e,
|
|
9230
9240
|
stepContext: i
|
|
9231
|
-
}) :
|
|
9241
|
+
}) : Ds({
|
|
9232
9242
|
...e,
|
|
9233
9243
|
stepContext: i
|
|
9234
9244
|
});
|
|
@@ -9241,7 +9251,7 @@ async function Ss(e) {
|
|
|
9241
9251
|
};
|
|
9242
9252
|
}
|
|
9243
9253
|
}
|
|
9244
|
-
async function
|
|
9254
|
+
async function Ts(e) {
|
|
9245
9255
|
let { queue: t, stepContext: n, executionContext: r } = e, { jobId: i, step: a } = n, o = Date.now(), s = a.id, c = a.name;
|
|
9246
9256
|
try {
|
|
9247
9257
|
let e = await Gn.evaluateExpression(a.eval, r);
|
|
@@ -9287,12 +9297,12 @@ async function Cs(e) {
|
|
|
9287
9297
|
};
|
|
9288
9298
|
}
|
|
9289
9299
|
}
|
|
9290
|
-
async function
|
|
9300
|
+
async function Es(e, t) {
|
|
9291
9301
|
let n = {};
|
|
9292
9302
|
if (e) for (let [r, i] of Object.entries(e)) n[r] = String(await Gn.evaluateValue(i, t));
|
|
9293
9303
|
return n;
|
|
9294
9304
|
}
|
|
9295
|
-
async function
|
|
9305
|
+
async function Ds(t) {
|
|
9296
9306
|
let { workerId: n, jobId: r, stepContext: i, executionContext: a, driver: o, queue: s } = t, { step: c } = i, l = c.id, u = c.name, d;
|
|
9297
9307
|
try {
|
|
9298
9308
|
d = o.execute(i);
|
|
@@ -9307,11 +9317,11 @@ async function Ts(t) {
|
|
|
9307
9317
|
logFilePath: ""
|
|
9308
9318
|
};
|
|
9309
9319
|
}
|
|
9310
|
-
|
|
9320
|
+
ds.add(d);
|
|
9311
9321
|
let f = !1, p = setInterval(async () => {
|
|
9312
9322
|
await s.isCancelled(r) && (console.log(`[${n}] 🛑 Job #${r} was cancelled! Halting execution.`), f = !0, clearInterval(p), await d.cancel());
|
|
9313
9323
|
}, 3e3), m = await d.done;
|
|
9314
|
-
if (clearInterval(p),
|
|
9324
|
+
if (clearInterval(p), ds.delete(d), d.logFilePath && e.existsSync(d.logFilePath)) try {
|
|
9315
9325
|
let e = await o.readLog(d.logFilePath);
|
|
9316
9326
|
await s.saveStepLog(r, l, e);
|
|
9317
9327
|
} catch (e) {
|
|
@@ -9338,7 +9348,7 @@ async function Ts(t) {
|
|
|
9338
9348
|
}
|
|
9339
9349
|
};
|
|
9340
9350
|
}
|
|
9341
|
-
function
|
|
9351
|
+
function Os(e, t, n) {
|
|
9342
9352
|
for (let r = t; r < e.length; r++) {
|
|
9343
9353
|
let t = e[r], i = t.id || `step-${r}`;
|
|
9344
9354
|
n[r] = {
|
|
@@ -9352,7 +9362,7 @@ function Es(e, t, n) {
|
|
|
9352
9362
|
};
|
|
9353
9363
|
}
|
|
9354
9364
|
}
|
|
9355
|
-
function
|
|
9365
|
+
function ks(e, t, n, r, i, a, o) {
|
|
9356
9366
|
return {
|
|
9357
9367
|
jobId: String(e.id),
|
|
9358
9368
|
parentId: String(e.parentId || ""),
|
|
@@ -9373,7 +9383,7 @@ function Ds(e, t, n, r, i, a, o) {
|
|
|
9373
9383
|
}
|
|
9374
9384
|
//#endregion
|
|
9375
9385
|
//#region src/scheduler.ts
|
|
9376
|
-
function
|
|
9386
|
+
function As(e, t, n, r) {
|
|
9377
9387
|
return e.split(",").some((e) => {
|
|
9378
9388
|
let [i, a] = e.split("/"), o = a ? Number(a) : 1;
|
|
9379
9389
|
if (!Number.isInteger(o) || o < 1) return !1;
|
|
@@ -9381,7 +9391,7 @@ function Os(e, t, n, r) {
|
|
|
9381
9391
|
return Number.isInteger(l) && Number.isInteger(u) && t >= l && t <= u && (t - l) % o === 0;
|
|
9382
9392
|
});
|
|
9383
9393
|
}
|
|
9384
|
-
function
|
|
9394
|
+
function js(e, t, n = "UTC") {
|
|
9385
9395
|
let r = e.trim().split(/\s+/);
|
|
9386
9396
|
if (r.length !== 5) return !1;
|
|
9387
9397
|
let i = new Intl.DateTimeFormat("en-US", {
|
|
@@ -9403,16 +9413,16 @@ function ks(e, t, n = "UTC") {
|
|
|
9403
9413
|
"Thu",
|
|
9404
9414
|
"Fri",
|
|
9405
9415
|
"Sat"
|
|
9406
|
-
].indexOf(i.weekday), o =
|
|
9407
|
-
return
|
|
9416
|
+
].indexOf(i.weekday), o = As(r[2], Number(i.day), 1, 31), s = As(r[4].replace(/7/g, "0"), a, 0, 6);
|
|
9417
|
+
return As(r[0], Number(i.minute), 0, 59) && As(r[1], Number(i.hour), 0, 23) && As(r[3], Number(i.month), 1, 12) && (r[2] === "*" || r[4] === "*" ? o && s : o || s);
|
|
9408
9418
|
}
|
|
9409
|
-
function
|
|
9419
|
+
function Ms(e) {
|
|
9410
9420
|
if (!e) return 0;
|
|
9411
9421
|
let t = e.match(/^([+-]?)(\d+)(m|h)$/);
|
|
9412
9422
|
if (!t) throw Error(`Invalid solar offset: ${e}`);
|
|
9413
9423
|
return (t[1] === "-" ? -1 : 1) * Number(t[2]) * (t[3] === "h" ? 36e5 : 6e4);
|
|
9414
9424
|
}
|
|
9415
|
-
function
|
|
9425
|
+
function Ns(e, t) {
|
|
9416
9426
|
let n = t.latitude, r = t.longitude, i = Date.UTC(e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate()), a = Math.floor((i - Date.UTC(e.getUTCFullYear(), 0, 0)) / 864e5), o = r / 15, s = a + ((t.event === "sunrise" ? 6 : 18) - o) / 24, c = .9856 * s - 3.289, l = c + 1.916 * Math.sin(c * Math.PI / 180) + .02 * Math.sin(2 * c * Math.PI / 180) + 282.634;
|
|
9417
9427
|
l = (l + 360) % 360;
|
|
9418
9428
|
let u = Math.atan(.91764 * Math.tan(l * Math.PI / 180)) * 180 / Math.PI;
|
|
@@ -9420,9 +9430,9 @@ function js(e, t) {
|
|
|
9420
9430
|
let d = .39782 * Math.sin(l * Math.PI / 180), f = Math.cos(Math.asin(d)), p = (Math.cos(90.833 * Math.PI / 180) - d * Math.sin(n * Math.PI / 180)) / (f * Math.cos(n * Math.PI / 180));
|
|
9421
9431
|
if (p > 1 || p < -1) return null;
|
|
9422
9432
|
let m = (t.event === "sunrise" ? 360 - Math.acos(p) * 180 / Math.PI : Math.acos(p) * 180 / Math.PI) / 15;
|
|
9423
|
-
return m = (m + u - .06571 * s - 6.622 - o + 24) % 24, new Date(i + m * 36e5 +
|
|
9433
|
+
return m = (m + u - .06571 * s - 6.622 - o + 24) % 24, new Date(i + m * 36e5 + Ms(t.offset));
|
|
9424
9434
|
}
|
|
9425
|
-
var
|
|
9435
|
+
var Ps = class {
|
|
9426
9436
|
queue;
|
|
9427
9437
|
workflows;
|
|
9428
9438
|
config;
|
|
@@ -9439,9 +9449,9 @@ var Ms = class {
|
|
|
9439
9449
|
async tick(e = /* @__PURE__ */ new Date()) {
|
|
9440
9450
|
let t = /* @__PURE__ */ new Date(Math.floor(e.getTime() / 6e4) * 6e4);
|
|
9441
9451
|
for (let { definition: e, revision: n } of await this.workflows.published()) {
|
|
9442
|
-
for (let [r, i] of (e.schedule || []).entries())
|
|
9452
|
+
for (let [r, i] of (e.schedule || []).entries()) js(i.cron, t, i.timezone || "UTC") && await this.enqueue(e, n, i, `cron-${r}`, t);
|
|
9443
9453
|
for (let [r, i] of (e.solar || []).entries()) {
|
|
9444
|
-
let a =
|
|
9454
|
+
let a = Ns(t, i);
|
|
9445
9455
|
a && Math.floor(a.getTime() / 6e4) === t.getTime() / 6e4 && await this.enqueue(e, n, i, `solar-${r}`, t);
|
|
9446
9456
|
}
|
|
9447
9457
|
}
|
|
@@ -9457,7 +9467,7 @@ var Ms = class {
|
|
|
9457
9467
|
} } };
|
|
9458
9468
|
await this.queue.enqueue(e.id, t, o, e.tags), console.log(`Scheduled ${e.id} via ${a}`);
|
|
9459
9469
|
}
|
|
9460
|
-
},
|
|
9470
|
+
}, Fs = class {
|
|
9461
9471
|
name = "github-commit-status";
|
|
9462
9472
|
token;
|
|
9463
9473
|
apiUrl;
|
|
@@ -9499,13 +9509,13 @@ var Ms = class {
|
|
|
9499
9509
|
};
|
|
9500
9510
|
//#endregion
|
|
9501
9511
|
//#region src/index.ts
|
|
9502
|
-
async function
|
|
9512
|
+
async function Is() {
|
|
9503
9513
|
let { config: e, command: t } = await se();
|
|
9504
9514
|
e || process.exit(1);
|
|
9505
9515
|
let n = new le(), r = new ce(process.env.WORKER_NAME || "cli");
|
|
9506
9516
|
switch (t) {
|
|
9507
9517
|
case "start-server":
|
|
9508
|
-
console.log("🌐 Starting Ingress Gateway..."), await r.init(), await
|
|
9518
|
+
console.log("🌐 Starting Ingress Gateway..."), await r.init(), await ns.withPort({
|
|
9509
9519
|
config: e,
|
|
9510
9520
|
queue: r,
|
|
9511
9521
|
secrets: n,
|
|
@@ -9514,13 +9524,13 @@ async function Ps() {
|
|
|
9514
9524
|
});
|
|
9515
9525
|
break;
|
|
9516
9526
|
case "start-workers":
|
|
9517
|
-
console.log(`⚙️ Starting worker scheduler with ${e.workers} concurrent slot(s)...`), await r.init(),
|
|
9527
|
+
console.log(`⚙️ Starting worker scheduler with ${e.workers} concurrent slot(s)...`), await r.init(), hs(e.workers, r, n, e);
|
|
9518
9528
|
break;
|
|
9519
9529
|
case "start-scheduler": {
|
|
9520
9530
|
console.log("Starting workflow scheduler..."), await r.init();
|
|
9521
|
-
let t = new
|
|
9531
|
+
let t = new $o();
|
|
9522
9532
|
await t.init();
|
|
9523
|
-
let n = new
|
|
9533
|
+
let n = new Ps(r, t, e);
|
|
9524
9534
|
n.start();
|
|
9525
9535
|
let i = () => {
|
|
9526
9536
|
n.stop(), process.exit(0);
|
|
@@ -9531,6 +9541,6 @@ async function Ps() {
|
|
|
9531
9541
|
default: console.error(`❌ Unknown command: '${t}'`), oe(), process.exit(1);
|
|
9532
9542
|
}
|
|
9533
9543
|
}
|
|
9534
|
-
|
|
9544
|
+
Is().catch(console.error);
|
|
9535
9545
|
//#endregion
|
|
9536
|
-
export {
|
|
9546
|
+
export { Fs as GitHubStatusPlugin };
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAc,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAOxF,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,aAAa,CAA0C;IAC/D,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,eAAe,CAAgB;WAE1B,QAAQ,CAAC,OAAO,EAAE,oBAAoB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;gBAK1D,OAAO,EAAE,oBAAoB;IAYzC,oBAAoB,CAAC,YAAY,EAAE,mBAAmB;YAIxC,aAAa;IA8H3B;;OAEG;YACW,aAAa;YA0Bb,WAAW;YAwBX,UAAU;YAyBV,cAAc;IAuC5B,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,YAAY;YAUN,QAAQ;YAYR,wBAAwB;YAcxB,kBAAkB;YAOlB,iBAAiB;YAWjB,kBAAkB;YAoBlB,oBAAoB;YASpB,qBAAqB;YAWrB,gBAAgB;YAMhB,gBAAgB;YAiBhB,kBAAkB;YASlB,gBAAgB;IAc9B;;OAEG;YACW,kBAAkB;YAclB,iBAAiB;IAuB/B;;OAEG;YACW,eAAe;YAQf,mBAAmB;IAWjC;;OAEG;YACW,gBAAgB;YAuBhB,gBAAgB;YAehB,eAAe;YAkBf,cAAc;IAS5B,OAAO,CAAC,MAAM;YAMA,UAAU;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAc,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAOxF,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,aAAa,CAA0C;IAC/D,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,eAAe,CAAgB;WAE1B,QAAQ,CAAC,OAAO,EAAE,oBAAoB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;gBAK1D,OAAO,EAAE,oBAAoB;IAYzC,oBAAoB,CAAC,YAAY,EAAE,mBAAmB;YAIxC,aAAa;IA8H3B;;OAEG;YACW,aAAa;YA0Bb,WAAW;YAwBX,UAAU;YAyBV,cAAc;IAuC5B,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,YAAY;YAUN,QAAQ;YAYR,wBAAwB;YAcxB,kBAAkB;YAOlB,iBAAiB;YAWjB,kBAAkB;YAoBlB,oBAAoB;YASpB,qBAAqB;YAWrB,gBAAgB;YAMhB,gBAAgB;YAiBhB,kBAAkB;YASlB,gBAAgB;IAc9B;;OAEG;YACW,kBAAkB;YAclB,iBAAiB;IAuB/B;;OAEG;YACW,eAAe;YAQf,mBAAmB;IAWjC;;OAEG;YACW,gBAAgB;YAuBhB,gBAAgB;YAehB,eAAe;YAkBf,cAAc;IAS5B,OAAO,CAAC,MAAM;YAMA,UAAU;IAIlB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAU5C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAS5B"}
|
package/dist/workflows.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../src/workflows.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../src/workflows.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEvE,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,GAAG,WAAW,GAAG,UAAU,CAAC;IAC3C,OAAO,EAAE,OAAO,CAAC;CAClB;AAQD,yFAAyF;AACzF,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAuBtE;AAED,qBAAa,kBAAkB;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB3B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAa5C,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,UAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IAWlF,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IASnD,IAAI,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAKjC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAK/C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASpC,SAAS,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAMxC,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAKrF,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAKvG"}
|