@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.
@@ -0,0 +1,2 @@
1
+ export declare function runMigrations(): Promise<void>;
2
+ //# sourceMappingURL=migrations.d.ts.map
@@ -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 Jo(e) {
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 Yo(e) {
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 Xo(e) {
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 Jo(t).map((e) => {
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: Yo(e.id || e.name),
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 Zo = class {
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 "), (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");
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 = Xo(e);
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
- }, Qo = 50, $o = 500, es = class e {
8302
+ }, es = 50, ts = 500, ns = class e {
8293
8303
  server;
8294
8304
  preprocessors = /* @__PURE__ */ new Map();
8295
- workflows = new Zo();
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 ? Qo : Number(i);
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 > $o ? (t.writeHead(400, { "Content-Type": "application/json; charset=utf-8" }), t.end(JSON.stringify({ error: `limit must be an integer from 1 to ${$o}` }))) : this.renderDashboardJobs(t, s, a, o);
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, Qo)), r = await this.redactText(pe(n, t.length > Qo));
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
- }, ts = class extends m {
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
- }, ns = s(d), rs = class {
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 ts(n);
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 ns(`docker stop -t 2 ${s}`).catch(() => {}), await ns(`systemctl stop ${s}.service`).catch(() => {});
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
- }, is = class {
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 ts(n);
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 as() {
8945
- let e = new rs();
8946
- return await e.isSupported() ? (console.log("⚡ Selected Execution Driver: Systemd (cgroups enabled)"), e) : (console.log("📦 Selected Execution Driver: Standard Process (Fallback)"), new is());
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 os(e) {
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
- fs(), 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);
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 ss = class {
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
- }, cs = { isStopping: !1 }, ls = /* @__PURE__ */ new Set(), us = null, ds = null;
8989
- function fs() {
8990
- cs.isStopping = !0, us?.abort(), ds?.();
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 ps(e, t, n, r) {
8993
- cs.isStopping = !1;
8994
- let i = [ms(e, t, n, r)];
8995
- return os(i), i;
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 ms(e, t, n, r) {
8998
- let i = await as(), a = new Zo(), o = /* @__PURE__ */ new Set(), s = 0, c = null, l = () => {
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
- ds = l, us = new AbortController();
9002
- let u = hs(r, us.signal, l);
9003
- for (console.log(`🚀 Worker scheduler started. Driver: ${i.name}. Concurrency: ${e}. Tags: ${r.tags.join(", ") || "(none)"}`); !cs.isStopping;) {
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 && !cs.isStopping;) {
9016
+ for (; o.size < e && !us.isStopping;) {
9007
9017
  let e = await t.claimNextJob(r.tags);
9008
9018
  if (!e) break;
9009
- if (cs.isStopping) {
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
- vs(r, e.id);
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 ys(r, n, e.id)), await bs({
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), vs(r, e.id), l();
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
- !cs.isStopping && s === n && (await gs(n, () => s, (e) => c = e), c = null);
9045
+ !us.isStopping && s === n && (await vs(n, () => s, (e) => c = e), c = null);
9036
9046
  }
9037
- us.abort(), await Promise.allSettled(o), await u, ds = null, console.log("🛑 Worker scheduler stopped cleanly.");
9047
+ fs.abort(), await Promise.allSettled(o), await u, ps = null, console.log("🛑 Worker scheduler stopped cleanly.");
9038
9048
  }
9039
- async function hs(e, t, n) {
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 _s(r, t), r = Math.min(r * 2, 3e4);
9060
+ await ys(r, t), r = Math.min(r * 2, 3e4);
9051
9061
  }
9052
9062
  }
9053
- function gs(e, t, n) {
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 _s(e, t) {
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 vs(e, t) {
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 ys(e, t, n) {
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 bs(e) {
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 = Ds(n, "running", u, l, m.env, h, s);
9126
- await o.saveReport(n.id, g), vs(r, n.id);
9127
- let _ = new ss(r.plugins), v = {
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 xs({
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), vs(r, n.id), console.log(`[${t}] ✅ Job #${n.id} completed as: ${b}`), await _.triggerWorkflowFinish(v, b);
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 xs(e, t) {
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 ws(e.workflow.env, l));
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), vs(a, o.id);
9159
- let h = await Ss({
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), vs(a, o.id), h.skipped) break;
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 && (Es(c, p, u), t.durationMs = Date.now() - Date.parse(t.startedAt), await i.saveReport(o.id, t), vs(a, o.id)), {
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 Ss(e) {
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 ws(t.env, r), i = {
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 ? Cs({
9238
+ return t.eval ? Ts({
9229
9239
  ...e,
9230
9240
  stepContext: i
9231
- }) : Ts({
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 Cs(e) {
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 ws(e, t) {
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 Ts(t) {
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
- ls.add(d);
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), ls.delete(d), d.logFilePath && e.existsSync(d.logFilePath)) try {
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 Es(e, t, n) {
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 Ds(e, t, n, r, i, a, o) {
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 Os(e, t, n, r) {
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 ks(e, t, n = "UTC") {
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 = Os(r[2], Number(i.day), 1, 31), s = Os(r[4].replace(/7/g, "0"), a, 0, 6);
9407
- return Os(r[0], Number(i.minute), 0, 59) && Os(r[1], Number(i.hour), 0, 23) && Os(r[3], Number(i.month), 1, 12) && (r[2] === "*" || r[4] === "*" ? o && s : o || s);
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 As(e) {
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 js(e, t) {
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 + As(t.offset));
9433
+ return m = (m + u - .06571 * s - 6.622 - o + 24) % 24, new Date(i + m * 36e5 + Ms(t.offset));
9424
9434
  }
9425
- var Ms = class {
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()) ks(i.cron, t, i.timezone || "UTC") && await this.enqueue(e, n, i, `cron-${r}`, t);
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 = js(t, i);
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
- }, Ns = class {
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 Ps() {
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 es.withPort({
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(), ps(e.workers, r, n, e);
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 Zo();
9531
+ let t = new $o();
9522
9532
  await t.init();
9523
- let n = new Ms(r, t, e);
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
- Ps().catch(console.error);
9544
+ Is().catch(console.error);
9535
9545
  //#endregion
9536
- export { Ns as GitHubStatusPlugin };
9546
+ export { Fs as GitHubStatusPlugin };
@@ -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;IAIxB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAStC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAS5B"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../src/workflows.ts"],"names":[],"mappings":"AAGA,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;IAwB3B,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"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloud-cli/on",
3
- "version": "1.19.0",
3
+ "version": "1.20.0",
4
4
  "description": "CLI entry point for the on plugin ecosystem.",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@10.30.3",