@voltro/cli 0.56.0 → 0.57.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +194 -0
- package/dist/apiBuild-B83Cb2Rv.js +2 -0
- package/dist/{apiBuild-Bdaetr37.js → apiBuild-DDr2aNFd.js} +2 -2
- package/dist/bin.js +1 -1
- package/dist/{build-CI36wL4R.js → build-QKP6Bm0J.js} +191 -187
- package/dist/{checkCommand-D0QV_zM_.js → checkCommand-BISqx1OJ.js} +1 -1
- package/dist/{checkCommand-CAwFXrxA.js → checkCommand-DUtMWjcR.js} +4 -4
- package/dist/{codegenCommand-CidbQzbv.js → codegenCommand-DnVuDxwT.js} +10 -10
- package/dist/{commands-CWjfThXv.js → commands-CRbxgxv0.js} +22 -22
- package/dist/{dashboardCommand-BekcY5Ls.js → dashboardCommand-Bf_-Ne3P.js} +5 -5
- package/dist/{dataCommand-2pccgbIy.js → dataCommand-BoBJJ-Gb.js} +2 -2
- package/dist/{dbCommand-DpK_vQET.js → dbCommand-CMAIz-Bf.js} +3 -3
- package/dist/dbCommand-DHi_RuDl.js +2 -0
- package/dist/dev-Bl9HqtV7.js +3 -0
- package/dist/{dev-Dw263KPu.js → dev-DOEJXicj.js} +2109 -2092
- package/dist/{doctorCommand-aR_bFmIi.js → doctorCommand-BrWu67JZ.js} +331 -189
- package/dist/doctorCommand-DrQv9SL3.js +2 -0
- package/dist/{dormancyCommand-eXTQMbHU.js → dormancyCommand-xn2y-pJm.js} +1 -1
- package/dist/{embeddingsCommand-CTmiQvwa.js → embeddingsCommand-Cn5MbRDM.js} +1 -1
- package/dist/emptyResultHeadline-Csa5fZOF.js +18 -0
- package/dist/{envCommand-BDUgV7EM.js → envCommand-UJmJIbs9.js} +8 -8
- package/dist/{evolveCommand-YV8qW1LU.js → evolveCommand-Db30twUy.js} +1 -1
- package/dist/frameworkTableAssembly-B96WCNJA.js +2 -0
- package/dist/{frameworkTableAssembly-DNOFXfEQ.js → frameworkTableAssembly-vfkzuzEo.js} +104 -85
- package/dist/index.js +1 -1
- package/dist/inspect-B0hL41s0.js +2 -0
- package/dist/{inspect-CNYvNXPU.js → inspect-DZnan87F.js} +68 -52
- package/dist/{logsCmd-BU8uCdys.js → logsCmd-C5y9HyrG.js} +58 -53
- package/dist/{manifestBuild-CEkjfpwc.js → manifestBuild-DnbFKF6w.js} +1 -1
- package/dist/manifestBuild-UXrnUcXP.js +2 -0
- package/dist/{migrate-SICulyz1.js → migrate-DtC3lu7H.js} +4 -4
- package/dist/{probeCommand-6HxEkNDG.js → probeCommand-C5fuN6Z2.js} +1 -1
- package/dist/{runtimeTrace-DgYMc09E.js → runtimeTrace-BQL_lfz6.js} +1 -1
- package/dist/{sdkgen-PY-umd6O.js → sdkgen-CMUPrDjH.js} +1 -1
- package/dist/{serveCommand-DIJ3ma76.js → serveCommand-B_w-Mpb_.js} +1013 -954
- package/dist/serveCommand-Dtb48ffg.js +2 -0
- package/dist/serveEntry.js +1 -1
- package/dist/{start-B9NGB8gn.js → start-YaUehtDV.js} +564 -571
- package/dist/{start-BFQQkL1i.js → start-s25GAIgn.js} +1 -1
- package/dist/startEntry.js +1 -1
- package/dist/{tracesCmd-BWYDqMy6.js → tracesCmd-C1qKa94g.js} +68 -63
- package/dist/{webDev-C2dRz9s5.js → webDev-B6ZMX42w.js} +1 -1
- package/dist/{webDev-C53hJdcL.js → webDev-BgdkyjP6.js} +881 -774
- package/dist/{webhooksCommand-uuPu8qQX.js → webhooksCommand-CYXTNvXq.js} +2 -2
- package/package.json +19 -19
- package/templates/AGENTS.md +1 -1
- package/templates/agent-docs/_index.md +1 -1
- package/templates/agent-docs/_manifest.json +1 -1
- package/templates/agent-docs/ai.md +1 -1
- package/templates/agent-docs/authentication.md +34 -19
- package/templates/agent-docs/cli.md +48 -0
- package/templates/agent-docs/configuration.md +29 -4
- package/templates/agent-docs/database/scaling.md +10 -1
- package/templates/agent-docs/deployment.md +22 -0
- package/templates/agent-docs/plugins/audit.md +21 -5
- package/templates/agent-docs/plugins/billing.md +2 -0
- package/templates/agent-docs/reference.md +1 -0
- package/templates/agent-docs/scheduling.md +23 -0
- package/templates/agent-docs/schema-driven-ui.md +81 -0
- package/templates/agent-docs/whats-new.md +100 -403
- package/templates/apps/api-ai/package.json +6 -6
- package/templates/apps/api-auth/package.json +8 -8
- package/templates/apps/api-backend/package.json +7 -7
- package/templates/apps/api-backend-deactivation/package.json +7 -7
- package/templates/apps/api-backend-mail/package.json +8 -8
- package/templates/apps/api-backend-mariadb/package.json +9 -9
- package/templates/apps/api-backend-sqlite/package.json +8 -8
- package/templates/apps/api-backend-storage/package.json +8 -8
- package/templates/apps/api-cms/package.json +9 -9
- package/templates/apps/api-collab/package.json +8 -8
- package/templates/apps/api-data-advanced/package.json +8 -8
- package/templates/apps/api-durable/package.json +8 -8
- package/templates/apps/api-feature-flags/package.json +9 -9
- package/templates/apps/api-governance/package.json +8 -8
- package/templates/apps/api-kv/package.json +8 -8
- package/templates/apps/api-moderation/package.json +8 -8
- package/templates/apps/api-observability/package.json +8 -8
- package/templates/apps/api-ratelimit/package.json +8 -8
- package/templates/apps/api-rbac/package.json +8 -8
- package/templates/apps/api-rest/package.json +7 -7
- package/templates/apps/api-row-history/package.json +8 -8
- package/templates/apps/api-saas/package.json +11 -11
- package/templates/apps/api-saas-starter/package.json +10 -10
- package/templates/apps/api-search/package.json +8 -8
- package/templates/apps/api-status/package.json +8 -8
- package/templates/apps/api-webhooks/package.json +9 -9
- package/templates/apps/changelog/package.json +7 -7
- package/templates/apps/edge-functions/package.json +2 -2
- package/templates/apps/frontend-admin/package.json +7 -7
- package/templates/apps/frontend-app/package.json +8 -8
- package/templates/apps/frontend-auth/package.json +7 -7
- package/templates/apps/frontend-blank/package.json +6 -6
- package/templates/apps/frontend-cms/package.json +8 -8
- package/templates/apps/frontend-collab/package.json +9 -9
- package/templates/apps/frontend-contact/package.json +7 -7
- package/templates/apps/frontend-dashboard/package.json +6 -6
- package/templates/apps/frontend-docs/package.json +8 -8
- package/templates/apps/frontend-i18n/package.json +6 -6
- package/templates/apps/frontend-landing/package.json +7 -7
- package/templates/apps/frontend-portal/package.json +7 -7
- package/templates/apps/frontend-saas/package.json +7 -7
- package/templates/apps/frontend-spa/package.json +6 -6
- package/templates/apps/frontend-ssr/package.json +6 -6
- package/templates/apps/frontend-ssr-api/package.json +7 -7
- package/templates/apps/frontend-static-blog/package.json +8 -8
- package/templates/apps/frontend-status/package.json +7 -7
- package/templates/apps/mobile-app/package.json +4 -4
- package/dist/apiBuild-Vw1figjO.js +0 -2
- package/dist/dbCommand-DrycGWWt.js +0 -2
- package/dist/dev-B9Gz0k85.js +0 -3
- package/dist/doctorCommand-BMWs6aVm.js +0 -2
- package/dist/frameworkTableAssembly-CGNC0qr7.js +0 -2
- package/dist/inspect-S2rWy1Ys.js +0 -2
- package/dist/manifestBuild-DIa_s6u0.js +0 -2
- package/dist/serveCommand-BITS8Hpj.js +0 -2
|
@@ -433,15 +433,18 @@ var a = (e) => ({
|
|
|
433
433
|
let e = t.inspectTables?.().tables ?? [];
|
|
434
434
|
return y(200, F(t.rpc, t.workflows, e, t.plugins?.().plugins ?? []), a);
|
|
435
435
|
}
|
|
436
|
-
|
|
436
|
+
if (i === "/_voltro/inspect/metrics") return t.metrics === void 0 ? y(200, [], a) : y(200, t.metrics(), a);
|
|
437
|
+
if (i === "/_voltro/inspect/subscriptions") return t.kind === "api" ? t.subscriptions === void 0 ? y(200, {
|
|
437
438
|
subscriptions: [],
|
|
438
439
|
matcherStats: [],
|
|
439
440
|
resume: [],
|
|
440
441
|
capturedAt: Date.now()
|
|
441
|
-
}, a) : y(200, t.subscriptions(), a) : y(404, { error: "subscriptions endpoint is api-only" }, a)
|
|
442
|
+
}, a) : y(200, t.subscriptions(), a) : y(404, { error: "subscriptions endpoint is api-only" }, a);
|
|
443
|
+
if (i === "/_voltro/inspect/members") return t.kind === "api" ? t.members === void 0 ? y(200, {
|
|
442
444
|
members: [],
|
|
443
445
|
capturedAt: Date.now()
|
|
444
|
-
}, a) : y(200, t.members(), a) : y(404, { error: "members endpoint is api-only" }, a)
|
|
446
|
+
}, a) : y(200, t.members(), a) : y(404, { error: "members endpoint is api-only" }, a);
|
|
447
|
+
if (i === "/_voltro/inspect/events") return t.kind === "api" ? t.events === void 0 ? y(200, {
|
|
445
448
|
declared: [],
|
|
446
449
|
routes: [],
|
|
447
450
|
origin: "",
|
|
@@ -451,14 +454,16 @@ var a = (e) => ({
|
|
|
451
454
|
subscribers: 0,
|
|
452
455
|
buffered: 0
|
|
453
456
|
}
|
|
454
|
-
}, a) : y(200, t.events(), a) : y(404, { error: "events endpoint is api-only" }, a)
|
|
457
|
+
}, a) : y(200, t.events(), a) : y(404, { error: "events endpoint is api-only" }, a);
|
|
458
|
+
if (i === "/_voltro/inspect/data-cache") return t.kind === "api" ? t.dataCache === void 0 ? y(200, {
|
|
455
459
|
backend: "memory",
|
|
456
460
|
engine: "memory",
|
|
457
461
|
driver: "resp",
|
|
458
462
|
hits: 0,
|
|
459
463
|
misses: 0,
|
|
460
464
|
hitRate: 0
|
|
461
|
-
}, a) : y(200, t.dataCache(), a) : y(404, { error: "data-cache endpoint is api-only" }, a)
|
|
465
|
+
}, a) : y(200, t.dataCache(), a) : y(404, { error: "data-cache endpoint is api-only" }, a);
|
|
466
|
+
if (i === "/_voltro/inspect/database") return t.kind === "api" ? t.database === void 0 ? y(200, {
|
|
462
467
|
migrations: [],
|
|
463
468
|
seeds: [],
|
|
464
469
|
dialect: "memory",
|
|
@@ -469,10 +474,12 @@ var a = (e) => ({
|
|
|
469
474
|
region: null,
|
|
470
475
|
localityEnabled: !1
|
|
471
476
|
}
|
|
472
|
-
}, a) : y(200, t.database(), a) : y(404, { error: "database endpoint is api-only" }, a)
|
|
477
|
+
}, a) : y(200, t.database(), a) : y(404, { error: "database endpoint is api-only" }, a);
|
|
478
|
+
if (i === "/_voltro/inspect/plugins") return t.kind === "api" ? t.plugins === void 0 ? y(200, {
|
|
473
479
|
plugins: [],
|
|
474
480
|
capturedAt: Date.now()
|
|
475
|
-
}, a) : y(200, t.plugins(), a) : y(404, { error: "plugins endpoint is api-only" }, a)
|
|
481
|
+
}, a) : y(200, t.plugins(), a) : y(404, { error: "plugins endpoint is api-only" }, a);
|
|
482
|
+
if (i === "/_voltro/inspect/env") return t.env === void 0 ? y(200, {
|
|
476
483
|
app: t.meta.name ?? "app",
|
|
477
484
|
entries: [],
|
|
478
485
|
summary: {
|
|
@@ -480,22 +487,31 @@ var a = (e) => ({
|
|
|
480
487
|
set: 0,
|
|
481
488
|
missingRequired: 0
|
|
482
489
|
}
|
|
483
|
-
}, a) : y(200, t.env(), a)
|
|
490
|
+
}, a) : y(200, t.env(), a);
|
|
491
|
+
if (i === "/_voltro/inspect/data/tables") return t.kind === "api" ? t.inspectTables === void 0 ? y(200, { tables: [] }, a) : y(200, t.inspectTables(), a) : y(404, { error: "data viewer is api-only" }, a);
|
|
492
|
+
if (i === "/_voltro/inspect/invoke") return y(404, { error: "invoke not enabled here — use POST handler" }, a);
|
|
493
|
+
if (U.has(i)) {
|
|
494
|
+
let e = i.endsWith("/traces") ? "traces" : "logs";
|
|
495
|
+
return y(404, {
|
|
496
|
+
error: "endpoint not enabled on this instance",
|
|
497
|
+
path: i,
|
|
498
|
+
reason: `This instance keeps no in-process ${e} ring, so there is nothing to serve. It is off by default because a ring is memory per replica for data most deployments already collect from stdout. Turn it on with \`inspect: { ${e}: true }\` in app.config.ts (or \`{ ${e}: { size: 2000 } }\`), or set VOLTRO_INSPECT_${e.toUpperCase()}=2000 on the deployment. This is not a missing token: the same request with no token would be 401.`
|
|
499
|
+
}, a);
|
|
500
|
+
}
|
|
501
|
+
return H.has(i) ? y(404, {
|
|
484
502
|
error: "endpoint not mounted on this instance",
|
|
485
503
|
path: i,
|
|
486
|
-
reason: "This inspect endpoint is served by `voltro dev`. A production `voltro serve` does not mount it — the data behind it (the
|
|
504
|
+
reason: "This inspect endpoint is served by `voltro dev`. A production `voltro serve` does not mount it — the data behind it (the dev route table, the aggregate registry) is not collected there. This is not a missing token: the same request with no token would be 401."
|
|
487
505
|
}, a) : y(404, {
|
|
488
506
|
error: "unknown inspect endpoint",
|
|
489
507
|
path: i
|
|
490
508
|
}, a);
|
|
491
509
|
}, H = /* @__PURE__ */ new Set([
|
|
492
|
-
`${m}/logs`,
|
|
493
|
-
`${m}/traces`,
|
|
494
510
|
`${m}/workflows`,
|
|
495
511
|
`${m}/storage`,
|
|
496
512
|
`${m}/aggregates`,
|
|
497
513
|
`${m}/flags`
|
|
498
|
-
]), U = async (e, t, n, r = {}) => {
|
|
514
|
+
]), U = /* @__PURE__ */ new Set([`${m}/logs`, `${m}/traces`]), W = async (e, t, n, r = {}) => {
|
|
499
515
|
let i = x(t.origin ?? t.Origin);
|
|
500
516
|
if (h()) return y(503, { error: "inspect disabled (VOLTRO_INSPECT=off)" }, i);
|
|
501
517
|
let a = (r.method ?? "POST").toUpperCase();
|
|
@@ -530,7 +546,7 @@ var a = (e) => ({
|
|
|
530
546
|
n !== "cookie" && (d[n] = t);
|
|
531
547
|
}
|
|
532
548
|
return y(200, await l(c.input, d), i);
|
|
533
|
-
},
|
|
549
|
+
}, G = async (e, t, n, r = {}) => {
|
|
534
550
|
let i = /[?&]replica=([^&]+)/.exec(e)?.[1], a = n[d] !== void 0;
|
|
535
551
|
if (i !== void 0 && !a && t.kind === "api") {
|
|
536
552
|
let a = x(n.origin ?? n.Origin), o = (r.authResolver ?? _)(n, (r.method ?? "GET").toUpperCase());
|
|
@@ -555,9 +571,9 @@ var a = (e) => ({
|
|
|
555
571
|
headers: a
|
|
556
572
|
} : y(s.status, s.body, a);
|
|
557
573
|
}
|
|
558
|
-
let o = await
|
|
574
|
+
let o = await K(e, t, n, r);
|
|
559
575
|
return o === null ? null : z(j(e), o, r.fleetSize);
|
|
560
|
-
},
|
|
576
|
+
}, K = async (e, t, n, r = {}) => {
|
|
561
577
|
let i = j(e);
|
|
562
578
|
if (!N(i)) return null;
|
|
563
579
|
let a = /[?&]scope=fleet(?:&|$)/.test(e), o = i === "/_voltro/inspect/subscriptions" && a;
|
|
@@ -607,7 +623,7 @@ var a = (e) => ({
|
|
|
607
623
|
history: [],
|
|
608
624
|
softDropSnapshots: []
|
|
609
625
|
}, s) : y(200, await t.migrations(), s);
|
|
610
|
-
},
|
|
626
|
+
}, q = async (e, t, n, r, i = {}) => {
|
|
611
627
|
let a = j(e);
|
|
612
628
|
if (!N(a) || !a.startsWith("/_voltro/inspect/webhooks/")) return null;
|
|
613
629
|
let o = x(n.origin ?? n.Origin);
|
|
@@ -667,7 +683,7 @@ var a = (e) => ({
|
|
|
667
683
|
message: e?.message ?? String(e)
|
|
668
684
|
}, o);
|
|
669
685
|
}
|
|
670
|
-
},
|
|
686
|
+
}, J = async (e, t, n, r, i = {}) => {
|
|
671
687
|
let a = j(e);
|
|
672
688
|
if (!N(a)) return null;
|
|
673
689
|
let o = x(n.origin ?? n.Origin), s = (i.method ?? "POST").toUpperCase();
|
|
@@ -710,7 +726,7 @@ var a = (e) => ({
|
|
|
710
726
|
message: e?.message ?? String(e)
|
|
711
727
|
}, o);
|
|
712
728
|
}
|
|
713
|
-
},
|
|
729
|
+
}, Y = async (e, t, n, r = {}) => {
|
|
714
730
|
if (j(e) !== "/_voltro/inspect/data/rows") return null;
|
|
715
731
|
let i = x(n.origin ?? n.Origin), a = (r.method ?? "GET").toUpperCase();
|
|
716
732
|
if (a !== "GET") return y(405, {
|
|
@@ -725,9 +741,9 @@ var a = (e) => ({
|
|
|
725
741
|
}, i);
|
|
726
742
|
if (t.kind !== "api") return y(404, { error: "data viewer is api-only" }, i);
|
|
727
743
|
if (t.inspectRows === void 0) return y(404, { error: "inspectRows not configured" }, i);
|
|
728
|
-
let s =
|
|
744
|
+
let s = Z(e), c = s.get("table");
|
|
729
745
|
if (!c) return y(400, { error: "query.table is required" }, i);
|
|
730
|
-
let l =
|
|
746
|
+
let l = Q(s.get("offset")) ?? 0, u = Q(s.get("limit")) ?? 50, d = {}, f = s.get("q");
|
|
731
747
|
if (f) {
|
|
732
748
|
if (f.length > 8192) return y(400, { error: "query.q too large" }, i);
|
|
733
749
|
try {
|
|
@@ -752,7 +768,7 @@ var a = (e) => ({
|
|
|
752
768
|
message: e?.message ?? String(e)
|
|
753
769
|
}, i);
|
|
754
770
|
}
|
|
755
|
-
},
|
|
771
|
+
}, X = async (e, t, n, i = {}) => {
|
|
756
772
|
if (j(e) !== "/_voltro/inspect/provenance") return null;
|
|
757
773
|
let a = x(n.origin ?? n.Origin), o = (i.method ?? "GET").toUpperCase();
|
|
758
774
|
if (o !== "GET") return y(405, {
|
|
@@ -769,7 +785,7 @@ var a = (e) => ({
|
|
|
769
785
|
if (c) return c;
|
|
770
786
|
if (t.kind !== "api") return y(404, { error: "provenance is api-only" }, a);
|
|
771
787
|
if (t.inspectRows === void 0) return y(404, { error: "inspectRows not configured" }, a);
|
|
772
|
-
let l =
|
|
788
|
+
let l = Z(e), u = l.get("table"), d = l.get("id"), f = l.get("column") ?? void 0;
|
|
773
789
|
if (!u || !d) return y(400, { error: "query.table and query.id are required" }, a);
|
|
774
790
|
try {
|
|
775
791
|
let e = (await t.inspectRows({
|
|
@@ -796,14 +812,14 @@ var a = (e) => ({
|
|
|
796
812
|
message: e?.message ?? String(e)
|
|
797
813
|
}, a);
|
|
798
814
|
}
|
|
799
|
-
},
|
|
815
|
+
}, Z = (e) => {
|
|
800
816
|
let t = e.indexOf("?");
|
|
801
817
|
return t < 0 ? new URLSearchParams() : new URLSearchParams(e.slice(t + 1));
|
|
802
|
-
},
|
|
818
|
+
}, Q = (e) => {
|
|
803
819
|
if (e === null || e === "") return;
|
|
804
820
|
let t = Number(e);
|
|
805
821
|
return Number.isFinite(t) && t >= 0 ? Math.floor(t) : void 0;
|
|
806
|
-
},
|
|
822
|
+
}, $ = async (e, t, n, r = {}) => {
|
|
807
823
|
if (j(e) !== "/_voltro/inspect/workflows/runs") return null;
|
|
808
824
|
let i = x(n.origin ?? n.Origin), a = (r.method ?? "GET").toUpperCase();
|
|
809
825
|
if (a !== "GET") return y(405, {
|
|
@@ -823,7 +839,7 @@ var a = (e) => ({
|
|
|
823
839
|
offset: 0,
|
|
824
840
|
limit: 50
|
|
825
841
|
}, i);
|
|
826
|
-
let s =
|
|
842
|
+
let s = Z(e);
|
|
827
843
|
try {
|
|
828
844
|
let e = s.get("deadLettered") === "1" || s.get("deadLettered") === "true", n = (s.get("statuses") ?? "").split(",").map((e) => e.trim()).filter((e) => e !== "");
|
|
829
845
|
return y(200, await t.inspectWorkflowRuns({
|
|
@@ -834,8 +850,8 @@ var a = (e) => ({
|
|
|
834
850
|
...s.get("idPrefix") === null ? {} : { idPrefix: s.get("idPrefix") },
|
|
835
851
|
...s.get("from") === null ? {} : { startedAfter: s.get("from") },
|
|
836
852
|
...s.get("to") === null ? {} : { startedBefore: s.get("to") },
|
|
837
|
-
offset:
|
|
838
|
-
limit:
|
|
853
|
+
offset: Q(s.get("offset")) ?? 0,
|
|
854
|
+
limit: Q(s.get("limit")) ?? 50
|
|
839
855
|
}), i);
|
|
840
856
|
} catch (e) {
|
|
841
857
|
return I(e) ? y(200, {
|
|
@@ -849,7 +865,7 @@ var a = (e) => ({
|
|
|
849
865
|
message: e?.message ?? String(e)
|
|
850
866
|
}, i);
|
|
851
867
|
}
|
|
852
|
-
},
|
|
868
|
+
}, ee = async (e, t, n, r = {}) => {
|
|
853
869
|
if (j(e) !== "/_voltro/inspect/workflows/stats") return null;
|
|
854
870
|
let i = x(n.origin ?? n.Origin), a = (r.method ?? "GET").toUpperCase();
|
|
855
871
|
if (a !== "GET") return y(405, {
|
|
@@ -871,11 +887,11 @@ var a = (e) => ({
|
|
|
871
887
|
total: 0,
|
|
872
888
|
truncated: !1
|
|
873
889
|
}, i);
|
|
874
|
-
let s =
|
|
890
|
+
let s = Z(e);
|
|
875
891
|
try {
|
|
876
892
|
return y(200, await t.inspectWorkflowRunStats({
|
|
877
893
|
...s.get("tag") === null ? {} : { tag: s.get("tag") },
|
|
878
|
-
...
|
|
894
|
+
...Q(s.get("hours")) === void 0 ? {} : { hours: Q(s.get("hours")) }
|
|
879
895
|
}), i);
|
|
880
896
|
} catch (e) {
|
|
881
897
|
return I(e) ? y(200, {
|
|
@@ -891,7 +907,7 @@ var a = (e) => ({
|
|
|
891
907
|
message: e?.message ?? String(e)
|
|
892
908
|
}, i);
|
|
893
909
|
}
|
|
894
|
-
},
|
|
910
|
+
}, te = async (e, t, n, r, i = {}) => {
|
|
895
911
|
let a = j(e).match(/^\/_voltro\/inspect\/workflows\/start\/([^/]+)$/);
|
|
896
912
|
if (!a) return null;
|
|
897
913
|
let o = decodeURIComponent(a[1] ?? ""), s = x(n.origin ?? n.Origin), c = (i.method ?? "POST").toUpperCase();
|
|
@@ -924,7 +940,7 @@ var a = (e) => ({
|
|
|
924
940
|
message: e?.message ?? String(e)
|
|
925
941
|
}, s);
|
|
926
942
|
}
|
|
927
|
-
},
|
|
943
|
+
}, ne = async (e, t, n, r = {}) => {
|
|
928
944
|
let i = j(e);
|
|
929
945
|
if (!i.startsWith("/_voltro/inspect/schedules")) return null;
|
|
930
946
|
let a = x(n.origin ?? n.Origin);
|
|
@@ -974,7 +990,7 @@ var a = (e) => ({
|
|
|
974
990
|
expected: "POST"
|
|
975
991
|
}, a);
|
|
976
992
|
if (!t.inspectFireSchedule) return y(404, { error: "inspectFireSchedule not configured" }, a);
|
|
977
|
-
let n = decodeURIComponent(u[1] ?? ""), r =
|
|
993
|
+
let n = decodeURIComponent(u[1] ?? ""), r = Z(e).get("trigger") === "external" ? "external" : "manual";
|
|
978
994
|
try {
|
|
979
995
|
return y(200, await t.inspectFireSchedule({
|
|
980
996
|
name: n,
|
|
@@ -998,12 +1014,12 @@ var a = (e) => ({
|
|
|
998
1014
|
offset: 0,
|
|
999
1015
|
limit: 50
|
|
1000
1016
|
}, a);
|
|
1001
|
-
let n =
|
|
1017
|
+
let n = Z(e);
|
|
1002
1018
|
try {
|
|
1003
1019
|
return y(200, await t.inspectScheduleRuns({
|
|
1004
1020
|
...n.get("name") === null ? {} : { name: n.get("name") },
|
|
1005
|
-
offset:
|
|
1006
|
-
limit:
|
|
1021
|
+
offset: Q(n.get("offset")) ?? 0,
|
|
1022
|
+
limit: Q(n.get("limit")) ?? 50
|
|
1007
1023
|
}), a);
|
|
1008
1024
|
} catch (e) {
|
|
1009
1025
|
return y(500, {
|
|
@@ -1022,7 +1038,7 @@ var a = (e) => ({
|
|
|
1022
1038
|
error: "unknown schedules endpoint",
|
|
1023
1039
|
path: i
|
|
1024
1040
|
}, a);
|
|
1025
|
-
},
|
|
1041
|
+
}, re = async (e, t, r, i = {}) => {
|
|
1026
1042
|
if (j(e) !== "/_voltro/inspect/cluster") return null;
|
|
1027
1043
|
let a = x(r.origin ?? r.Origin);
|
|
1028
1044
|
if (h()) return y(503, { error: "inspect disabled (VOLTRO_INSPECT=off)" }, a);
|
|
@@ -1070,7 +1086,7 @@ var a = (e) => ({
|
|
|
1070
1086
|
message: e?.message ?? String(e)
|
|
1071
1087
|
}, a);
|
|
1072
1088
|
}
|
|
1073
|
-
},
|
|
1089
|
+
}, ie = async (e, t, n, r = {}) => {
|
|
1074
1090
|
let i = j(e).match(/^\/_voltro\/inspect\/workflows\/runs\/([^/]+)\/steps$/);
|
|
1075
1091
|
if (!i) return null;
|
|
1076
1092
|
let a = decodeURIComponent(i[1] ?? ""), o = x(n.origin ?? n.Origin), s = (r.method ?? "GET").toUpperCase();
|
|
@@ -1094,7 +1110,7 @@ var a = (e) => ({
|
|
|
1094
1110
|
message: e?.message ?? String(e)
|
|
1095
1111
|
}, o);
|
|
1096
1112
|
}
|
|
1097
|
-
},
|
|
1113
|
+
}, ae = async (e, t, n, r = {}) => {
|
|
1098
1114
|
let i = j(e).match(/^\/_voltro\/inspect\/workflows\/runs\/([^/]+)\/events$/);
|
|
1099
1115
|
if (!i) return null;
|
|
1100
1116
|
let a = decodeURIComponent(i[1] ?? ""), o = x(n.origin ?? n.Origin), s = (r.method ?? "GET").toUpperCase();
|
|
@@ -1118,7 +1134,7 @@ var a = (e) => ({
|
|
|
1118
1134
|
message: e?.message ?? String(e)
|
|
1119
1135
|
}, o);
|
|
1120
1136
|
}
|
|
1121
|
-
},
|
|
1137
|
+
}, oe = async (e, t, n, r = {}) => {
|
|
1122
1138
|
if (j(t) !== "/_voltro/inspect/workflows/events") return null;
|
|
1123
1139
|
let i = x(n.origin ?? n.Origin), a = (r.method ?? "GET").toUpperCase();
|
|
1124
1140
|
if (a !== "GET") return y(405, {
|
|
@@ -1157,7 +1173,7 @@ var a = (e) => ({
|
|
|
1157
1173
|
message: e?.message ?? String(e)
|
|
1158
1174
|
}, i);
|
|
1159
1175
|
}
|
|
1160
|
-
},
|
|
1176
|
+
}, se = async (e, t, n, r = {}) => {
|
|
1161
1177
|
let i = j(t).match(/^\/_voltro\/inspect\/workflows\/events\/([^/]+)\/deliveries$/);
|
|
1162
1178
|
if (!i) return null;
|
|
1163
1179
|
let a = decodeURIComponent(i[1] ?? ""), o = x(n.origin ?? n.Origin), s = (r.method ?? "GET").toUpperCase();
|
|
@@ -1181,7 +1197,7 @@ var a = (e) => ({
|
|
|
1181
1197
|
message: e?.message ?? String(e)
|
|
1182
1198
|
}, o);
|
|
1183
1199
|
}
|
|
1184
|
-
},
|
|
1200
|
+
}, ce = async (e, t, n, r = {}) => {
|
|
1185
1201
|
if (j(e) !== "/_voltro/inspect/workflows/children") return null;
|
|
1186
1202
|
let i = x(n.origin ?? n.Origin), a = (r.method ?? "GET").toUpperCase();
|
|
1187
1203
|
if (a !== "GET") return y(405, {
|
|
@@ -1195,7 +1211,7 @@ var a = (e) => ({
|
|
|
1195
1211
|
reason: o.reason
|
|
1196
1212
|
}, i);
|
|
1197
1213
|
if (t.kind !== "api") return y(404, { error: "workflow children are api-only" }, i);
|
|
1198
|
-
let s =
|
|
1214
|
+
let s = Z(e).get("parentExecutionId");
|
|
1199
1215
|
if (s === null || s === "") return y(400, { error: "parentExecutionId query param required" }, i);
|
|
1200
1216
|
if (t.inspectWorkflowChildren === void 0) return y(200, {
|
|
1201
1217
|
runs: [],
|
|
@@ -1211,7 +1227,7 @@ var a = (e) => ({
|
|
|
1211
1227
|
message: e?.message ?? String(e)
|
|
1212
1228
|
}, i);
|
|
1213
1229
|
}
|
|
1214
|
-
},
|
|
1230
|
+
}, le = async (e, t, n, r, i = {}) => {
|
|
1215
1231
|
let a = j(e).match(/^\/_voltro\/inspect\/workflows\/runs\/([^/]+)\/(cancel|retry|suspend|resume-from-step|resume|signal|update|discard|redrive)$/);
|
|
1216
1232
|
if (!a) return null;
|
|
1217
1233
|
let o = decodeURIComponent(a[1] ?? ""), s = a[2], c = x(n.origin ?? n.Origin), l = (i.method ?? "POST").toUpperCase();
|
|
@@ -1269,7 +1285,7 @@ var a = (e) => ({
|
|
|
1269
1285
|
message: e?.message ?? String(e)
|
|
1270
1286
|
}, c);
|
|
1271
1287
|
}
|
|
1272
|
-
},
|
|
1288
|
+
}, ue = async (e, t, n, r, i = {}) => {
|
|
1273
1289
|
if (j(e) !== "/_voltro/inspect/data/import" || (i.method ?? "POST").toUpperCase() !== "POST") return null;
|
|
1274
1290
|
let a = x(n.origin ?? n.Origin);
|
|
1275
1291
|
if (h()) return y(503, { error: "inspect disabled (VOLTRO_INSPECT=off)" }, a);
|
|
@@ -1302,7 +1318,7 @@ var a = (e) => ({
|
|
|
1302
1318
|
message: e?.message ?? String(e)
|
|
1303
1319
|
}, a);
|
|
1304
1320
|
}
|
|
1305
|
-
},
|
|
1321
|
+
}, de = async (e, t, n, r, i = {}) => {
|
|
1306
1322
|
let a = j(e);
|
|
1307
1323
|
if (!a.startsWith("/_voltro/inspect/data/rows")) return null;
|
|
1308
1324
|
let o = (i.method ?? "POST").toUpperCase();
|
|
@@ -1340,7 +1356,7 @@ var a = (e) => ({
|
|
|
1340
1356
|
if (!l) return null;
|
|
1341
1357
|
let u = decodeURIComponent(l[1] ?? "");
|
|
1342
1358
|
if (!u) return y(400, { error: "row id is required in URL" }, s);
|
|
1343
|
-
let d =
|
|
1359
|
+
let d = Z(e).get("table") ?? "";
|
|
1344
1360
|
if (!d) return y(400, { error: "query.table is required" }, s);
|
|
1345
1361
|
if (o === "PATCH") {
|
|
1346
1362
|
if (!t.inspectUpdateRow) return y(404, { error: "inspectUpdateRow not configured" }, s);
|
|
@@ -1382,7 +1398,7 @@ var a = (e) => ({
|
|
|
1382
1398
|
error: "method not allowed",
|
|
1383
1399
|
expected: "POST | PATCH | DELETE"
|
|
1384
1400
|
}, s);
|
|
1385
|
-
},
|
|
1401
|
+
}, fe = async (e, t, n, r, i = {}) => {
|
|
1386
1402
|
let a = j(e), o = `${m}/workflows/flow-control`;
|
|
1387
1403
|
if (a !== o && !a.startsWith(`${o}/`)) return null;
|
|
1388
1404
|
let s = x(n.origin ?? n.Origin), c = (i.method ?? "GET").toUpperCase();
|
|
@@ -1399,7 +1415,7 @@ var a = (e) => ({
|
|
|
1399
1415
|
expected: "GET"
|
|
1400
1416
|
}, s);
|
|
1401
1417
|
if (t.inspectInferences === void 0) return y(404, { error: "inspectInferences not configured" }, s);
|
|
1402
|
-
let n =
|
|
1418
|
+
let n = Z(e).get("limit"), r = n === null ? void 0 : Number(n);
|
|
1403
1419
|
try {
|
|
1404
1420
|
return y(200, await t.inspectInferences(r !== void 0 && Number.isFinite(r) ? { limit: r } : {}), s);
|
|
1405
1421
|
} catch (e) {
|
|
@@ -1415,7 +1431,7 @@ var a = (e) => ({
|
|
|
1415
1431
|
expected: "GET"
|
|
1416
1432
|
}, s);
|
|
1417
1433
|
if (t.inspectFlowControl === void 0) return y(404, { error: "inspectFlowControl not configured" }, s);
|
|
1418
|
-
let n =
|
|
1434
|
+
let n = Z(e).get("limit"), r = n === null ? void 0 : Number(n);
|
|
1419
1435
|
try {
|
|
1420
1436
|
return y(200, await t.inspectFlowControl(r !== void 0 && Number.isFinite(r) ? { limit: r } : {}), s);
|
|
1421
1437
|
} catch (e) {
|
|
@@ -1481,4 +1497,4 @@ var a = (e) => ({
|
|
|
1481
1497
|
}, s);
|
|
1482
1498
|
};
|
|
1483
1499
|
//#endregion
|
|
1484
|
-
export { w as A,
|
|
1500
|
+
export { w as A, ae as C, te as D, $ as E, A as F, C as I, v as L, b as M, z as N, x as O, E as P, se as S, ie as T, ne as _, T as a, ce as b, re as c, de as d, fe as f, B as g, X as h, F as i, h as j, k, ue as l, W as m, P as n, _ as o, J as p, S as r, G as s, m as t, Y as u, q as v, ee as w, oe as x, le as y };
|
|
@@ -2,9 +2,10 @@ import { n as e } from "./runtimeRegistry-DMeKfTHP.js";
|
|
|
2
2
|
import { r as t, t as n } from "./logFileSink-B4uP8pvf.js";
|
|
3
3
|
import { n as r } from "./cliOutput-D1tSBoRM.js";
|
|
4
4
|
import { a as i, i as a } from "./inspectFetch-BU1NyzxV.js";
|
|
5
|
-
import {
|
|
5
|
+
import { n as o, t as s } from "./emptyResultHeadline-Csa5fZOF.js";
|
|
6
|
+
import { ansi as c } from "@voltro/logger";
|
|
6
7
|
//#region src/logsCmd.ts
|
|
7
|
-
var
|
|
8
|
+
var l = (e) => {
|
|
8
9
|
let t = a(e);
|
|
9
10
|
if (t.error !== void 0) return { error: t.error };
|
|
10
11
|
let n = t.target, r = t.rest, i = {
|
|
@@ -31,7 +32,7 @@ var s = (e) => {
|
|
|
31
32
|
case "--since": {
|
|
32
33
|
let e = n();
|
|
33
34
|
if (e === void 0) return { error: "--since expects a value" };
|
|
34
|
-
let t =
|
|
35
|
+
let t = u(e);
|
|
35
36
|
if (t === null) return { error: `--since: unrecognised '${e}' (try '30s', '5m', '1h', or unix-ms)` };
|
|
36
37
|
i.since = t;
|
|
37
38
|
break;
|
|
@@ -89,7 +90,7 @@ var s = (e) => {
|
|
|
89
90
|
...i,
|
|
90
91
|
target: n
|
|
91
92
|
};
|
|
92
|
-
},
|
|
93
|
+
}, u = (e) => {
|
|
93
94
|
let t = /^(\d+)([smh])$/.exec(e);
|
|
94
95
|
if (t) {
|
|
95
96
|
let e = Number(t[1]), n = t[2], r = n === "s" ? 1e3 : n === "m" ? 6e4 : 36e5;
|
|
@@ -97,15 +98,15 @@ var s = (e) => {
|
|
|
97
98
|
}
|
|
98
99
|
let n = Number(e);
|
|
99
100
|
return Number.isFinite(n) && n > 0 ? n : null;
|
|
100
|
-
},
|
|
101
|
+
}, d = () => {
|
|
101
102
|
console.log("voltro logs — recent log records from every running voltro process"), console.log(""), console.log("Usage:"), console.log(" voltro logs [--tail N] [--since SPEC] [--level L] [--scope S]"), console.log(" [--source server|client] [--filter PAT] [--trace ID]"), console.log(" [--process NAME] [--format pretty|json|text] [--no-color]"), console.log(""), console.log("Examples:"), console.log(" voltro logs --tail 50"), console.log(" voltro logs --since 30s --level error"), console.log(" voltro logs --filter 'channels.create'"), console.log(" voltro logs --trace <traceId> --format json # whole chain for one request"), console.log(" voltro logs --format json | jq '.[] | select(.level == \"error\")'");
|
|
102
|
-
},
|
|
103
|
-
let a =
|
|
104
|
-
if ("error" in a) return a.error !== "help" && console.error(`voltro logs: ${a.error}`),
|
|
105
|
-
let
|
|
103
|
+
}, f = async (t) => {
|
|
104
|
+
let a = l(t);
|
|
105
|
+
if ("error" in a) return a.error !== "help" && console.error(`voltro logs: ${a.error}`), d(), a.error === "help" ? 0 : 2;
|
|
106
|
+
let s = a.target === void 0 ? await e() : {
|
|
106
107
|
version: 1,
|
|
107
108
|
apps: [i(a.target)]
|
|
108
|
-
}, u = a.process === void 0 ?
|
|
109
|
+
}, u = a.process === void 0 ? s.apps : s.apps.filter((e) => e.name === a.process);
|
|
109
110
|
if (u.length === 0 && a.process !== void 0) {
|
|
110
111
|
let e = n(a.process);
|
|
111
112
|
e !== void 0 && (u = [{
|
|
@@ -123,37 +124,41 @@ var s = (e) => {
|
|
|
123
124
|
if (u.length === 0) {
|
|
124
125
|
if (a.process !== void 0) {
|
|
125
126
|
console.error(`voltro logs: no running process named '${a.process}' and no orphan log file found`), console.error(" active processes:");
|
|
126
|
-
for (let e of
|
|
127
|
+
for (let e of s.apps) console.error(` - ${e.name} (${e.kind} @ ${e.url})`);
|
|
127
128
|
return 1;
|
|
128
129
|
}
|
|
129
130
|
return console.error("voltro logs: no running voltro process found"), console.error(" start one with 'voltro dev' (or 'voltro start') and try again."), 1;
|
|
130
131
|
}
|
|
131
|
-
let f = u.map((e) =>
|
|
132
|
-
for (let e of
|
|
132
|
+
let f = u.map((e) => p(e, a)), m = await Promise.all(f), h = [], g = [];
|
|
133
|
+
for (let e of m) e.kind === "ok" ? h.push(...e.records) : g.push({
|
|
133
134
|
name: e.name,
|
|
134
135
|
error: e.error
|
|
135
136
|
});
|
|
136
|
-
if (
|
|
137
|
-
let e =
|
|
138
|
-
records:
|
|
139
|
-
fetchErrors:
|
|
140
|
-
} : { records:
|
|
141
|
-
return r(e, { pretty: !1 }), +(
|
|
137
|
+
if (h.sort((e, t) => e.ts - t.ts), a.format === "json") {
|
|
138
|
+
let e = g.length > 0 ? {
|
|
139
|
+
records: h,
|
|
140
|
+
fetchErrors: g
|
|
141
|
+
} : { records: h };
|
|
142
|
+
return r(e, { pretty: !1 }), +(g.length === u.length);
|
|
142
143
|
}
|
|
143
144
|
if (a.format === "text") {
|
|
144
|
-
for (let e of
|
|
145
|
-
for (let e of
|
|
146
|
-
return +(
|
|
145
|
+
for (let e of h) console.log(_(e));
|
|
146
|
+
for (let e of g) console.error(`# fetch failed: ${e.name}: ${e.error}`);
|
|
147
|
+
return +(g.length === u.length);
|
|
147
148
|
}
|
|
148
|
-
for (let e of
|
|
149
|
-
|
|
150
|
-
|
|
149
|
+
for (let e of h) console.log(v(e, a.color));
|
|
150
|
+
h.length === 0 && console.error(o({
|
|
151
|
+
noun: "logs",
|
|
152
|
+
targets: u.length,
|
|
153
|
+
failures: g
|
|
154
|
+
}) ?? "voltro logs: no records matched the given filters.");
|
|
155
|
+
for (let e of g) {
|
|
151
156
|
let t = `# fetch failed: ${e.name}: ${e.error}`;
|
|
152
|
-
console.error(a.color ?
|
|
157
|
+
console.error(a.color ? c.dim(t) : t);
|
|
153
158
|
}
|
|
154
|
-
return +(
|
|
155
|
-
},
|
|
156
|
-
if (e.status === "booting") return
|
|
159
|
+
return +(g.length === u.length);
|
|
160
|
+
}, p = async (e, t) => {
|
|
161
|
+
if (e.status === "booting") return m(e, t, "process still booting");
|
|
157
162
|
let n = new URLSearchParams();
|
|
158
163
|
n.set("max", String(t.tail)), n.set("format", "json"), t.since !== void 0 && n.set("since", String(t.since)), t.level !== void 0 && n.set("level", t.level), t.scope !== void 0 && n.set("scope", t.scope), t.source !== void 0 && n.set("source", t.source), t.filter !== void 0 && n.set("filter", t.filter), t.traceId !== void 0 && n.set("trace", t.traceId);
|
|
159
164
|
let r = `${e.url.replace(/\/+$/, "")}/_voltro/inspect/logs?${n.toString()}`;
|
|
@@ -161,7 +166,7 @@ var s = (e) => {
|
|
|
161
166
|
let n = {};
|
|
162
167
|
process.env.VOLTRO_INSPECT_TOKEN !== void 0 && (n.authorization = `Bearer ${process.env.VOLTRO_INSPECT_TOKEN}`);
|
|
163
168
|
let i = await fetch(r, { headers: n });
|
|
164
|
-
if (!i.ok) return
|
|
169
|
+
if (!i.ok) return m(e, t, await s(i));
|
|
165
170
|
let a = await i.json(), o = Array.isArray(a.records) ? a.records : [];
|
|
166
171
|
return {
|
|
167
172
|
kind: "ok",
|
|
@@ -172,9 +177,9 @@ var s = (e) => {
|
|
|
172
177
|
}))
|
|
173
178
|
};
|
|
174
179
|
} catch (n) {
|
|
175
|
-
return
|
|
180
|
+
return m(e, t, n.message || String(n));
|
|
176
181
|
}
|
|
177
|
-
},
|
|
182
|
+
}, m = async (e, n, r) => {
|
|
178
183
|
if (!e.logFile) return {
|
|
179
184
|
kind: "err",
|
|
180
185
|
name: e.name,
|
|
@@ -215,49 +220,49 @@ var s = (e) => {
|
|
|
215
220
|
error: `${r}; file read failed: ${t.message || String(t)}`
|
|
216
221
|
};
|
|
217
222
|
}
|
|
218
|
-
},
|
|
219
|
-
trace:
|
|
220
|
-
debug:
|
|
221
|
-
info:
|
|
222
|
-
warn:
|
|
223
|
-
error:
|
|
224
|
-
fatal: (e) =>
|
|
225
|
-
},
|
|
223
|
+
}, h = {
|
|
224
|
+
trace: c.dim,
|
|
225
|
+
debug: c.cyan,
|
|
226
|
+
info: c.green,
|
|
227
|
+
warn: c.yellow,
|
|
228
|
+
error: c.red,
|
|
229
|
+
fatal: (e) => c.bgRed(c.white(e))
|
|
230
|
+
}, g = {
|
|
226
231
|
trace: "TRACE",
|
|
227
232
|
debug: "DEBUG",
|
|
228
233
|
info: "INFO ",
|
|
229
234
|
warn: "WARN ",
|
|
230
235
|
error: "ERROR",
|
|
231
236
|
fatal: "FATAL"
|
|
232
|
-
}, h = (e) => {
|
|
233
|
-
let t = _(e.ts), n = e.scope ?? "?", r = y(e.fields);
|
|
234
|
-
return `${t} ${m[e.level]} [${n}/${e.source}@${e.process}] ${e.message}${r}`;
|
|
235
|
-
}, g = (e, t) => {
|
|
236
|
-
if (!t) return h(e);
|
|
237
|
-
let n = o.dim(_(e.ts)), r = e.scope ?? "?", i = p[e.level](m[e.level]), a = o.dim(`[${r}/${e.source}@${e.process}]`), s = e.level === "error" || e.level === "fatal" ? o.red(e.message) : e.message, c = y(e.fields);
|
|
238
|
-
return `${n} ${i} ${a} ${s}${c ? o.dim(c) : ""}`;
|
|
239
237
|
}, _ = (e) => {
|
|
238
|
+
let t = y(e.ts), n = e.scope ?? "?", r = x(e.fields);
|
|
239
|
+
return `${t} ${g[e.level]} [${n}/${e.source}@${e.process}] ${e.message}${r}`;
|
|
240
|
+
}, v = (e, t) => {
|
|
241
|
+
if (!t) return _(e);
|
|
242
|
+
let n = c.dim(y(e.ts)), r = e.scope ?? "?", i = h[e.level](g[e.level]), a = c.dim(`[${r}/${e.source}@${e.process}]`), o = e.level === "error" || e.level === "fatal" ? c.red(e.message) : e.message, s = x(e.fields);
|
|
243
|
+
return `${n} ${i} ${a} ${o}${s ? c.dim(s) : ""}`;
|
|
244
|
+
}, y = (e) => {
|
|
240
245
|
let t = new Date(e);
|
|
241
246
|
return `${String(t.getHours()).padStart(2, "0")}:${String(t.getMinutes()).padStart(2, "0")}:${String(t.getSeconds()).padStart(2, "0")}.${String(t.getMilliseconds()).padStart(3, "0")}`;
|
|
242
|
-
},
|
|
247
|
+
}, b = 80, x = (e) => {
|
|
243
248
|
let t = Object.entries(e);
|
|
244
249
|
if (t.length === 0) return "";
|
|
245
250
|
let n = [];
|
|
246
|
-
for (let [e, r] of t) r !== void 0 && n.push(`${e}=${
|
|
251
|
+
for (let [e, r] of t) r !== void 0 && n.push(`${e}=${S(r)}`);
|
|
247
252
|
return n.length > 0 ? " " + n.join(" ") : "";
|
|
248
|
-
},
|
|
253
|
+
}, S = (e) => {
|
|
249
254
|
if (typeof e == "string") {
|
|
250
|
-
let t = e.length >
|
|
255
|
+
let t = e.length > b ? e.slice(0, b) + "…" : e;
|
|
251
256
|
return /[\s=]/.test(t) ? `"${t.replace(/"/g, "\\\"")}"` : t;
|
|
252
257
|
}
|
|
253
258
|
if (e === null) return "null";
|
|
254
259
|
if (typeof e == "number" || typeof e == "boolean") return String(e);
|
|
255
260
|
try {
|
|
256
261
|
let t = JSON.stringify(e);
|
|
257
|
-
return t.length >
|
|
262
|
+
return t.length > b ? t.slice(0, b) + "…" : t;
|
|
258
263
|
} catch {
|
|
259
264
|
return "[unserialisable]";
|
|
260
265
|
}
|
|
261
266
|
};
|
|
262
267
|
//#endregion
|
|
263
|
-
export {
|
|
268
|
+
export { f as runLogsCommand };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as e } from "./cliError-BmdYnghb.js";
|
|
2
2
|
import { r as t } from "./dialectDriver-czCHYpeH.js";
|
|
3
3
|
import { a as n, r } from "./connectionConfig-Bk9IC7D0.js";
|
|
4
|
-
import {
|
|
4
|
+
import { _ as i, c as a, n as o } from "./frameworkTableAssembly-vfkzuzEo.js";
|
|
5
5
|
import { t as s } from "./cliRuntime-Dh7UDinH.js";
|
|
6
6
|
import { join as c, relative as l, resolve as u } from "node:path";
|
|
7
7
|
import { pathToFileURL as d } from "node:url";
|
|
@@ -43,7 +43,7 @@ var _ = /* @__PURE__ */ new Set([
|
|
|
43
43
|
root: e
|
|
44
44
|
}), 1;
|
|
45
45
|
yield* m.logInfo(`discovered ${t.length} schema file(s)`, { files: t.map((t) => l(e, t)) });
|
|
46
|
-
let n = yield* x(t), r = yield* m.promise(() =>
|
|
46
|
+
let n = yield* x(t), r = yield* m.promise(() => o({ root: e })), s = [...n, ...r];
|
|
47
47
|
if (yield* m.logInfo(`tables to apply: ${s.length}`, {
|
|
48
48
|
user: n.map((e) => e.tableName),
|
|
49
49
|
framework: r.map((e) => e.tableName)
|
|
@@ -56,7 +56,7 @@ var _ = /* @__PURE__ */ new Set([
|
|
|
56
56
|
});
|
|
57
57
|
let g = yield* m.promise(() => w()), _ = g.makeSqlLayer(C());
|
|
58
58
|
yield* m.promise(() => h(s, _, g.id, { retryFilter: g.retryFilter }));
|
|
59
|
-
let v = yield* m.promise(() =>
|
|
59
|
+
let v = yield* m.promise(() => a(e)), b = [], S = yield* i(v, (e, t) => {
|
|
60
60
|
b.push({
|
|
61
61
|
message: e,
|
|
62
62
|
fields: t ?? {}
|
|
@@ -79,7 +79,7 @@ var _ = /* @__PURE__ */ new Set([
|
|
|
79
79
|
let t = u(e.find((e) => !e.startsWith("-")) ?? process.cwd());
|
|
80
80
|
return s(S(t), { scope: "voltro:migrate" });
|
|
81
81
|
}
|
|
82
|
-
let { runDbCommand: t } = await import("./dbCommand-
|
|
82
|
+
let { runDbCommand: t } = await import("./dbCommand-DHi_RuDl.js");
|
|
83
83
|
return t(["apply", ...e]);
|
|
84
84
|
};
|
|
85
85
|
//#endregion
|
|
@@ -108,7 +108,7 @@ server and in this shell.`);
|
|
|
108
108
|
}, m = async (e) => {
|
|
109
109
|
let t = /* @__PURE__ */ new Map();
|
|
110
110
|
try {
|
|
111
|
-
let { walk: n, loadDiscovered: r } = await import("./dev-
|
|
111
|
+
let { walk: n, loadDiscovered: r } = await import("./dev-Bl9HqtV7.js"), i = await r(await n(e), { root: e }), a = [
|
|
112
112
|
...i.queries,
|
|
113
113
|
...i.mutations,
|
|
114
114
|
...i.actions,
|