@voltro/cli 0.53.0 → 0.54.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 +195 -0
- package/dist/{agentsMd-0l980yhL.js → agentsMd-BaLC10Na.js} +110 -82
- package/dist/agentsMd-DCY1RSs8.js +2 -0
- package/dist/apiBuild-CeUN55uk.js +2 -0
- package/dist/{apiBuild-CaPfoWku.js → apiBuild-DTWp0S_q.js} +2 -2
- package/dist/bin.js +1 -1
- package/dist/{build-D-OnvNMf.js → build-D4ygSbnV.js} +114 -114
- package/dist/{checkCommand-C5elt0tW.js → checkCommand-Dg1G7Gwd.js} +6 -6
- package/dist/{checkCommand-D2ZduVlh.js → checkCommand-L7DTlpIF.js} +1 -1
- package/dist/{cloudCmd-QUXh-b5w.js → cloudCmd-DzKcSYuy.js} +1 -1
- package/dist/{codegen-FEk8AZHb.js → codegen-DSLM8Su9.js} +2 -2
- package/dist/codegen-DjgxEOnD.js +2 -0
- package/dist/codegenCommand-CG_Vx4lc.js +41 -0
- package/dist/{codemodRunner-BjtB2lq6.js → codemodRunner-Cd4xkC6u.js} +9 -9
- package/dist/{commands-DyxAmhP0.js → commands-6Kzi92Np.js} +96 -73
- package/dist/{dashboardCommand-BdKTyT13.js → dashboardCommand-Cq1PWvI1.js} +3 -3
- package/dist/{dataCommand-Bab9X7s8.js → dataCommand-DYzW8vkv.js} +3 -3
- package/dist/{dbCommand-06O2finM.js → dbCommand-B4NWZtGL.js} +3 -3
- package/dist/dbCommand-CSFWs9ev.js +2 -0
- package/dist/{dev-C6LGF4iY.js → dev-CmuvUKRq.js} +2236 -2219
- package/dist/{dev-GjJWAYo2.js → dev-cKUiZZsB.js} +1 -1
- package/dist/{doctorCommand-etMkflRc.js → doctorCommand-DCiFVMtZ.js} +21 -21
- package/dist/doctorCommand-J3qu4E0Y.js +2 -0
- package/dist/{dormancyCommand-UwZ1AZzB.js → dormancyCommand-w1TrmgYP.js} +1 -1
- package/dist/{embeddingsCommand-C70zWHwo.js → embeddingsCommand-CMgPyRTr.js} +1 -1
- package/dist/{envCommand-dSyKvRkM.js → envCommand-Cyynmcfa.js} +15 -15
- package/dist/{evolveCommand-CG0_ebO5.js → evolveCommand-BwvQ8dVH.js} +2 -2
- package/dist/fileConventions-l-RIXbx8.js +36 -0
- package/dist/{fileTaxonomy-B7uxipWS.js → fileTaxonomy-CbyMQYx_.js} +37 -37
- package/dist/{frameworkTableAssembly-DKx3ba3S.js → frameworkTableAssembly-D7LJuALW.js} +5 -5
- package/dist/frameworkTableAssembly-IPD1pUnZ.js +2 -0
- package/dist/index.js +2 -2
- package/dist/{infoCommand-_53iOc_j.js → infoCommand-DlYlUPqs.js} +1 -1
- package/dist/{metaCommands-Cn2oboG4.js → metaCommands-x7RCi2AF.js} +2 -2
- package/dist/{migrate-Cko9rswM.js → migrate-BK_Bbx-_.js} +2 -2
- package/dist/mobileCommand-D9O6iq3D.js +428 -0
- package/dist/mobileCommand-DAum7tsG.js +2 -0
- package/dist/{pageConvention-C938S8oC.js → pageConvention-CMpfDN6r.js} +1 -1
- package/dist/{privacyCommand-DWTQMC6R.js → privacyCommand-BCa2OoZG.js} +2 -2
- package/dist/{probeCommand-DkGGLknv.js → probeCommand-_C0YU207.js} +1 -1
- package/dist/{projectScaffold-EzlErR4E.js → projectScaffold-CJfP-xbT.js} +1 -1
- package/dist/{projectScaffold-B4dmTlwT.js → projectScaffold-CSN0OzBV.js} +2 -2
- package/dist/renderModeScan-43yQ2opo.js +147 -0
- package/dist/{renderProfile-CskIgAfn.js → renderProfile-DvrhVJHa.js} +2 -2
- package/dist/{runtimeTrace-c0APJz7E.js → runtimeTrace-CGWx1Q6l.js} +1 -1
- package/dist/{sdkgen-BiQCgIEr.js → sdkgen-CDGHQUFj.js} +1 -1
- package/dist/serveCommand-BiPe8BJm.js +2 -0
- package/dist/{serveCommand-CueKQgzl.js → serveCommand-Bje09q1v.js} +708 -708
- package/dist/serveEntry.js +1 -1
- package/dist/start-B0bnJgxI.js +3 -0
- package/dist/{start-ekPan8BT.js → start-Clz-1BHB.js} +511 -504
- package/dist/startEntry.js +1 -1
- package/dist/{staticCommand-xlSL-IWk.js → staticCommand-ey0kYmOT.js} +1 -1
- package/dist/{subcommandNames-DpYs3DXr.js → subcommandNames-CDzfEtKV.js} +3 -3
- package/dist/{templates-BR-fb4SP.js → templates-BTWZkJJT.js} +41 -9
- package/dist/{test-BWPQcRoB.js → test-D_kW4KMj.js} +1 -1
- package/dist/updateCommand-CIoVDKnj.js +2 -0
- package/dist/{updateCommand-C_8I8Rzo.js → updateCommand-CRJlAOaM.js} +1 -1
- package/dist/{webDev-oczpugbx.js → webDev-DSI9SOhs.js} +1127 -1090
- package/dist/{webDev-C7jWJ5dX.js → webDev-DlvZO30c.js} +1 -1
- package/dist/{webhooksCommand-4SVPDjKg.js → webhooksCommand-BvzXNHji.js} +1 -1
- package/dist/workspaceDeps-RKEkX92S.js +45 -0
- package/package.json +19 -19
- package/templates/AGENTS.core.md +2 -0
- package/templates/AGENTS.md +4 -2
- package/templates/agent-docs/_index.md +2 -2
- package/templates/agent-docs/_manifest.json +1 -1
- package/templates/agent-docs/ai.md +4 -4
- package/templates/agent-docs/authentication.md +72 -0
- package/templates/agent-docs/cli.md +4 -1
- package/templates/agent-docs/data.md +61 -12
- package/templates/agent-docs/database/advancedqueries.md +1 -1
- package/templates/agent-docs/database/migrations.md +1 -1
- package/templates/agent-docs/database/seedsdialects.md +64 -2
- package/templates/agent-docs/internationalization.md +2 -0
- package/templates/agent-docs/introduction.md +25 -0
- package/templates/agent-docs/local-first-mobile.md +139 -41
- package/templates/agent-docs/observability.md +4 -2
- package/templates/agent-docs/plugins/atlassian.md +2 -2
- package/templates/agent-docs/plugins/audit.md +2 -2
- package/templates/agent-docs/plugins/billing.md +1 -1
- package/templates/agent-docs/plugins/cdc-out.md +8 -3
- package/templates/agent-docs/plugins/comments.md +22 -0
- package/templates/agent-docs/plugins/presence.md +32 -3
- package/templates/agent-docs/plugins/prometheus.md +2 -0
- package/templates/agent-docs/plugins/queue.md +47 -4
- package/templates/agent-docs/plugins.md +6 -6
- package/templates/agent-docs/reference.md +20 -1
- package/templates/agent-docs/routing.md +63 -9
- package/templates/agent-docs/scheduling.md +1 -1
- package/templates/agent-docs/schema-driven-ui.md +12 -1
- package/templates/agent-docs/templates/appshells.md +36 -4
- package/templates/agent-docs/whats-new.md +109 -135
- 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/README.md +3 -3
- package/templates/apps/api-collab/app.config.ts +1 -1
- package/templates/apps/api-collab/database/schema.ts +12 -8
- package/templates/apps/api-collab/mutations/documents.create.mutation.server.ts +1 -1
- package/templates/apps/api-collab/mutations/documents.setBody.mutation.server.ts +1 -1
- package/templates/apps/api-collab/mutations/documents.setBody.mutation.ts +1 -1
- package/templates/apps/api-collab/package.json +8 -8
- package/templates/apps/api-collab/template.json +1 -1
- package/templates/apps/api-collab/tests/documents.setBody.test.ts +10 -2
- 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 -10
- 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 -6
- package/templates/apps/edge-functions/package.json +2 -2
- package/templates/apps/frontend-admin/package.json +8 -8
- package/templates/apps/frontend-app/package.json +9 -9
- package/templates/apps/frontend-auth/package.json +8 -8
- package/templates/apps/frontend-blank/package.json +7 -7
- package/templates/apps/frontend-cms/package.json +9 -9
- package/templates/apps/frontend-collab/README.md +43 -24
- package/templates/apps/frontend-collab/app.config.ts +3 -3
- package/templates/apps/frontend-collab/package.json +14 -10
- package/templates/apps/frontend-collab/src/locales/de.ts +1 -2
- package/templates/apps/frontend-collab/src/locales/en.ts +1 -2
- package/templates/apps/frontend-collab/src/pages/page.test.tsx +72 -76
- package/templates/apps/frontend-collab/src/pages/page.tsx +45 -22
- package/templates/apps/frontend-collab/template.json +2 -2
- package/templates/apps/frontend-contact/package.json +7 -7
- package/templates/apps/frontend-dashboard/package.json +7 -7
- package/templates/apps/frontend-docs/package.json +8 -7
- package/templates/apps/frontend-i18n/package.json +6 -6
- package/templates/apps/frontend-landing/README.md +48 -0
- package/templates/apps/frontend-landing/app.config.ts +28 -0
- package/templates/apps/frontend-landing/package.json +7 -6
- package/templates/apps/frontend-landing/src/assets/hero.jpg +0 -0
- package/templates/apps/frontend-landing/src/fonts/Geist-Variable.woff2 +0 -0
- package/templates/apps/frontend-landing/src/fonts/LICENSE-Geist.txt +92 -0
- package/templates/apps/frontend-landing/src/globals.css +15 -0
- package/templates/apps/frontend-landing/src/globals.d.ts +17 -0
- package/templates/apps/frontend-landing/src/locales/de.ts +3 -2
- package/templates/apps/frontend-landing/src/locales/en.ts +5 -2
- package/templates/apps/frontend-landing/src/pages/page.test.tsx +79 -0
- package/templates/apps/frontend-landing/src/pages/page.tsx +26 -3
- package/templates/apps/frontend-landing/template.json +2 -2
- package/templates/apps/frontend-portal/package.json +8 -8
- package/templates/apps/frontend-saas/package.json +8 -8
- package/templates/apps/frontend-spa/package.json +7 -7
- package/templates/apps/frontend-ssr/package.json +7 -7
- package/templates/apps/frontend-ssr-api/package.json +8 -8
- package/templates/apps/frontend-static-blog/package.json +8 -7
- package/templates/apps/frontend-status/package.json +8 -8
- package/templates/apps/mobile-app/package.json +12 -11
- package/templates/apps/mobile-app/src/lib/deeplinks.ts +29 -17
- package/templates/apps/mobile-app/tests/deeplinks.test.ts +16 -0
- package/dist/agentsMd-SDDSkyl4.js +0 -2
- package/dist/apiBuild-DHtLXYx9.js +0 -2
- package/dist/codegen-BWpt3VgF.js +0 -2
- package/dist/codegenCommand-BOiWQ5hz.js +0 -137
- package/dist/dbCommand-B1EXBC6f.js +0 -2
- package/dist/doctorCommand-B0hX0tdz.js +0 -2
- package/dist/fileConventions-DASGEmj-.js +0 -35
- package/dist/frameworkTableAssembly-C_7Z-rMs.js +0 -2
- package/dist/renderModeScan-CUbOeOAg.js +0 -122
- package/dist/serveCommand-DsnrVN3U.js +0 -2
- package/dist/start-BJzZLbt8.js +0 -3
- package/dist/updateCommand-Bqql_rsQ.js +0 -2
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { c as e, d as t, f as n, i as r, p as i, u as a } from "./dev-
|
|
1
|
+
import { c as e, d as t, f as n, i as r, p as i, u as a } from "./dev-CmuvUKRq.js";
|
|
2
2
|
import "./dialectDriver-czCHYpeH.js";
|
|
3
3
|
export { r as buildStore, e as loadApiConfig, a as loadDiscovered, t as mergePluginRoutesInto, n as runDev, i as walk };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Ht as e, Ut as t, Wt as n } from "./dev-
|
|
2
|
-
import { Ft as r, It as i,
|
|
3
|
-
import { x as d } from "./frameworkTableAssembly-
|
|
4
|
-
import { n as f } from "./pageConvention-
|
|
5
|
-
import { r as p, u as m } from "./apiBuild-
|
|
1
|
+
import { Ht as e, Ut as t, Wt as n } from "./dev-CmuvUKRq.js";
|
|
2
|
+
import { Ft as r, It as i, Lt as a, P as o, Pt as s, l as c, t as l, x as u } from "./webDev-DSI9SOhs.js";
|
|
3
|
+
import { x as d } from "./frameworkTableAssembly-D7LJuALW.js";
|
|
4
|
+
import { n as f } from "./pageConvention-CMpfDN6r.js";
|
|
5
|
+
import { r as p, u as m } from "./apiBuild-DTWp0S_q.js";
|
|
6
6
|
import { n as h, r as g, t as ee } from "./cliOutput-D1tSBoRM.js";
|
|
7
7
|
import { n as _, t as te } from "./tsconfigPaths-BWXBWgcl.js";
|
|
8
|
-
import { n as ne, r as re } from "./fileTaxonomy-
|
|
8
|
+
import { n as ne, r as re } from "./fileTaxonomy-CbyMQYx_.js";
|
|
9
9
|
import { basename as ie, dirname as ae, join as v, relative as y, resolve as b, sep as x } from "node:path";
|
|
10
10
|
import { existsSync as S, readFileSync as C, readdirSync as w, statSync as T, writeFileSync as oe } from "node:fs";
|
|
11
11
|
import { pathToFileURL as se } from "node:url";
|
|
@@ -1427,7 +1427,7 @@ var le = /* @__PURE__ */ new Set([
|
|
|
1427
1427
|
let t = en.get(e);
|
|
1428
1428
|
if (t !== void 0) return t;
|
|
1429
1429
|
let n = (async () => {
|
|
1430
|
-
let { walk: t, loadDiscovered: n } = await import("./dev-
|
|
1430
|
+
let { walk: t, loadDiscovered: n } = await import("./dev-cKUiZZsB.js"), r = await t(e);
|
|
1431
1431
|
return {
|
|
1432
1432
|
files: r,
|
|
1433
1433
|
discovered: await n(r)
|
|
@@ -1552,7 +1552,7 @@ var le = /* @__PURE__ */ new Set([
|
|
|
1552
1552
|
}
|
|
1553
1553
|
}, J = async (r) => {
|
|
1554
1554
|
try {
|
|
1555
|
-
let { loadApiConfig: i } = await import("./dev-
|
|
1555
|
+
let { loadApiConfig: i } = await import("./dev-cKUiZZsB.js"), { discovered: a } = await U(r), o = t(await i(r)), s = {
|
|
1556
1556
|
queries: a.queries,
|
|
1557
1557
|
mutations: a.mutations,
|
|
1558
1558
|
actions: a.actions,
|
|
@@ -1636,7 +1636,7 @@ var le = /* @__PURE__ */ new Set([
|
|
|
1636
1636
|
}, pn = async (e) => ut({
|
|
1637
1637
|
hasWorkflows: async () => (await U(e)).discovered.workflows.length > 0,
|
|
1638
1638
|
openStore: async () => {
|
|
1639
|
-
let { loadApiConfig: t, buildStore: n } = await import("./dev-
|
|
1639
|
+
let { loadApiConfig: t, buildStore: n } = await import("./dev-cKUiZZsB.js"), r = await t(e);
|
|
1640
1640
|
if (r === null) throw Error("no app.config.ts in this directory");
|
|
1641
1641
|
let i = await n(r, void 0);
|
|
1642
1642
|
return {
|
|
@@ -1716,7 +1716,7 @@ var le = /* @__PURE__ */ new Set([
|
|
|
1716
1716
|
}
|
|
1717
1717
|
}, yn = async (e) => {
|
|
1718
1718
|
try {
|
|
1719
|
-
let { loadApiConfig: t } = await import("./dev-
|
|
1719
|
+
let { loadApiConfig: t } = await import("./dev-cKUiZZsB.js"), n = (await t(e))?.doctor?.scopeVocabulary;
|
|
1720
1720
|
if (typeof n != "string") return [];
|
|
1721
1721
|
let [r, i] = n.split("#");
|
|
1722
1722
|
if (r === void 0 || i === void 0) return [];
|
|
@@ -1733,10 +1733,10 @@ var le = /* @__PURE__ */ new Set([
|
|
|
1733
1733
|
findings: []
|
|
1734
1734
|
});
|
|
1735
1735
|
try {
|
|
1736
|
-
let { offlineManifest: n, toInput: r } = await import("./checkCommand-
|
|
1736
|
+
let { offlineManifest: n, toInput: r } = await import("./checkCommand-L7DTlpIF.js"), { buildAppGraph: i, checkAppGraph: a } = await import("./appGraph-CFmFKHb2.js"), o = await n(e), s = r(o.manifest, o.tables), c = await yn(e), l = [.../* @__PURE__ */ new Set([...s.scopes ?? [], ...c])];
|
|
1737
1737
|
if (l.length === 0) {
|
|
1738
1738
|
try {
|
|
1739
|
-
let { loadAppSchemaInputs: t } = await import("./frameworkTableAssembly-
|
|
1739
|
+
let { loadAppSchemaInputs: t } = await import("./frameworkTableAssembly-IPD1pUnZ.js");
|
|
1740
1740
|
await t(e);
|
|
1741
1741
|
} catch {
|
|
1742
1742
|
return t("app-not-importable");
|
|
@@ -1787,7 +1787,7 @@ var le = /* @__PURE__ */ new Set([
|
|
|
1787
1787
|
if (n === void 0 || r.length === 0) return;
|
|
1788
1788
|
let i = [];
|
|
1789
1789
|
try {
|
|
1790
|
-
let { loadApiConfig: t } = await import("./dev-
|
|
1790
|
+
let { loadApiConfig: t } = await import("./dev-cKUiZZsB.js");
|
|
1791
1791
|
i = (await t(e))?.locales ?? [];
|
|
1792
1792
|
} catch {
|
|
1793
1793
|
return;
|
|
@@ -1821,7 +1821,7 @@ var le = /* @__PURE__ */ new Set([
|
|
|
1821
1821
|
a()?.reason === "binary-missing" ? (console.log("image pipeline: sharp is INSTALLED but its platform binary is missing —"), console.log(" an install that omitted optional dependencies drops the @img/* prebuilds."), console.log(" Fix: reinstall without omitting optional deps, or `pnpm add -D sharp` in this app.")) : (console.log("image pipeline: sharp is NOT installed — ?image imports serve originals (no srcSet, no blur)."), console.log(" Fix: `pnpm add -D sharp` in this app (it is an optional dependency of @voltro/cli;"), console.log(" your installer skipped optional dependencies)."));
|
|
1822
1822
|
}, Cn = async (e) => {
|
|
1823
1823
|
try {
|
|
1824
|
-
let { loadConfig: t } = await import("./webDev-
|
|
1824
|
+
let { loadConfig: t } = await import("./webDev-DlvZO30c.js"), n = (await t(e, { preferSource: !0 }))?.fonts;
|
|
1825
1825
|
if (n === void 0 || n.length === 0) return;
|
|
1826
1826
|
let { loadFontkit: r, loadSubsetFont: i } = await import("./fontPipeline-LxIHa1vo.js"), a = [];
|
|
1827
1827
|
if (await r() === null && a.push("fontkit (size-adjust fallback metrics — the CLS guard — are skipped)"), await i() === null && a.push("subset-font (declared `subsets:` ship the full files)"), console.log(""), a.length === 0) {
|
|
@@ -1836,7 +1836,7 @@ var le = /* @__PURE__ */ new Set([
|
|
|
1836
1836
|
if (!S(t)) return !1;
|
|
1837
1837
|
let n = [];
|
|
1838
1838
|
try {
|
|
1839
|
-
let { walkPagesTree: e } = await import("./webDev-
|
|
1839
|
+
let { walkPagesTree: e } = await import("./webDev-DlvZO30c.js");
|
|
1840
1840
|
n = (await e(t)).pages.map((e) => e.pattern);
|
|
1841
1841
|
} catch {
|
|
1842
1842
|
return !1;
|
|
@@ -1849,7 +1849,7 @@ var le = /* @__PURE__ */ new Set([
|
|
|
1849
1849
|
}, Tn = async (e) => {
|
|
1850
1850
|
let { discovered: t } = await U(e), n = [];
|
|
1851
1851
|
try {
|
|
1852
|
-
let { loadApiConfig: t } = await import("./dev-
|
|
1852
|
+
let { loadApiConfig: t } = await import("./dev-cKUiZZsB.js");
|
|
1853
1853
|
n = ((await t(e))?.plugins ?? []).map((e) => {
|
|
1854
1854
|
let t = (e.extendSchema?.tables ?? []).map((e) => {
|
|
1855
1855
|
let t = e;
|
|
@@ -1995,7 +1995,7 @@ var le = /* @__PURE__ */ new Set([
|
|
|
1995
1995
|
return n.unchecked.length > $ && console.log(` … and ${n.unchecked.length - $} more — \`voltro doctor --json\` prints every one (\`authz.unchecked\`).`), i === void 0 ? (console.log(`\nNo ${X} yet, so this run is advisory. To start the ratchet:`), console.log("\n voltro doctor --write-authz-allowlist\n"), console.log("That records today's unchecked handlers as DEBT and fails every run after on"), console.log("anything NEW. Fix a handler and its line stops mattering — the scan reports it as"), console.log("guarded whether or not the line is still there."), !1) : (console.log(`\n${n.unchecked.length} executor(s) with no access check are not in ${X}.`), console.log("Add a guard, or add the tag to that file if it is genuinely open."), console.log("\nBefore hand-rolling another check: `guards: [{ action, resourceType, resource }]`"), console.log("answers \"may this subject act on THIS row\" declaratively, and an app whose"), console.log("relationships live in its own tables registers its own tuple source rather than"), console.log("copying data into a framework table. See the authorization docs."), !0);
|
|
1996
1996
|
}, jn = async (e) => {
|
|
1997
1997
|
try {
|
|
1998
|
-
let { loadApiConfig: t } = await import("./dev-
|
|
1998
|
+
let { loadApiConfig: t } = await import("./dev-cKUiZZsB.js"), { decidedSchemaReport: n } = await import("./doctorDecidedSchema-BlbWgCD_.js"), r = await t(e);
|
|
1999
1999
|
return r == null ? null : n({
|
|
2000
2000
|
...r.schema ? { declared: r.schema } : {},
|
|
2001
2001
|
...r.store === void 0 ? {} : { store: r.store },
|
|
@@ -2020,8 +2020,8 @@ var le = /* @__PURE__ */ new Set([
|
|
|
2020
2020
|
fileTaxonomy: re(o).findings,
|
|
2021
2021
|
junctionFks: (await W(o))?.issues ?? [],
|
|
2022
2022
|
eventDelivery: await G(o),
|
|
2023
|
-
duplicateInstances:
|
|
2024
|
-
versionSkew:
|
|
2023
|
+
duplicateInstances: s(o),
|
|
2024
|
+
versionSkew: r(o) ?? null,
|
|
2025
2025
|
serverOnly: (await q(o)).status,
|
|
2026
2026
|
accessDecisions: await J(o),
|
|
2027
2027
|
webhookVerification: await Y(o),
|
|
@@ -2036,9 +2036,9 @@ var le = /* @__PURE__ */ new Set([
|
|
|
2036
2036
|
Bt(o), zt(o), Qt(o), ne(o), await Kt(o), await hn(o), await mn(o), await tn(o), await sn(o), await on(o), await Mn(o), await cn(o), await Tn(o), await bn(o), await vn(o), console.log("");
|
|
2037
2037
|
for (let e of Ve(Be(o))) console.log(e);
|
|
2038
2038
|
await xn(o), await Sn(o), await Cn(o);
|
|
2039
|
-
let l = await fn(o), u = await An(o, e.includes("--write-authz-allowlist")), d = await ln(o), f = await dn(o), p = await wn(o), m =
|
|
2039
|
+
let l = await fn(o), u = await An(o, e.includes("--write-authz-allowlist")), d = await ln(o), f = await dn(o), p = await wn(o), m = a(r(o));
|
|
2040
2040
|
m !== void 0 && (console.log(""), console.log(m));
|
|
2041
|
-
let _ =
|
|
2041
|
+
let _ = i(s(o));
|
|
2042
2042
|
return _ !== void 0 && console.log(`\n${_}`), l || u || d || p || f ? Math.max(c, 1) : c;
|
|
2043
2043
|
};
|
|
2044
2044
|
//#endregion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { c as e } from "./dev-
|
|
2
|
-
import { Gt as t, Ht as n,
|
|
1
|
+
import { c as e } from "./dev-CmuvUKRq.js";
|
|
2
|
+
import { Gt as t, Ht as n, Vt as r, Wt as i } from "./webDev-DSI9SOhs.js";
|
|
3
3
|
import { join as a } from "node:path";
|
|
4
4
|
import { promises as o } from "node:fs";
|
|
5
5
|
import { createLogger as s } from "@voltro/logger";
|
|
@@ -21,27 +21,27 @@ var u = s({ scope: "voltro:env" }), d = "# Environment for this app", f = async
|
|
|
21
21
|
}, h = async (e) => {
|
|
22
22
|
let t = await f(e);
|
|
23
23
|
if (!t) return u.error("no app.config.ts found in the current directory"), 1;
|
|
24
|
-
let
|
|
25
|
-
u.info(`env manifest — ${
|
|
26
|
-
for (let e of
|
|
24
|
+
let n = r(t.name, t.input), i = `${p("KEY", 32)} ${p("OWNER", 16)} ${p("ACCESS", 8)} ${p("REQ", 4)} SET`;
|
|
25
|
+
u.info(`env manifest — ${n.app} (${n.summary.total} vars, ${n.summary.set} set)`), m(i);
|
|
26
|
+
for (let e of n.entries) {
|
|
27
27
|
let t = e.isSet ? "✓" : e.satisfied ? "·" : "✗";
|
|
28
28
|
m(`${p(e.key, 32)} ${p(e.owner, 16)} ${p(e.access, 8)} ${p(e.required ? "yes" : "", 4)} ${t}`);
|
|
29
29
|
}
|
|
30
|
-
return
|
|
30
|
+
return n.summary.missingRequired > 0 ? (u.error(`${n.summary.missingRequired} required var(s) are unset`), 1) : 0;
|
|
31
31
|
}, g = async (e, t) => {
|
|
32
|
-
let
|
|
33
|
-
if (!
|
|
34
|
-
let
|
|
32
|
+
let r = await f(e);
|
|
33
|
+
if (!r) return u.error("no app.config.ts found in the current directory"), 1;
|
|
34
|
+
let i = n(r.input, ["Environment for this app — generated from app.config.ts `env` + plugin declarations.", "Regenerate with `voltro env sync`. Copy to `.env` and fill in the blanks."]), s = a(e, ".env.example"), c = await o.readFile(s, "utf8").catch(() => null);
|
|
35
35
|
if (c !== null && !c.startsWith(d) && !t) {
|
|
36
36
|
let t = a(e, ".env.example.generated");
|
|
37
|
-
return await o.writeFile(t,
|
|
37
|
+
return await o.writeFile(t, i, "utf8"), u.warn(".env.example exists and is not framework-generated — wrote .env.example.generated instead", { hint: "merge it by hand, or pass --force to overwrite .env.example" }), 0;
|
|
38
38
|
}
|
|
39
|
-
return await o.writeFile(s,
|
|
39
|
+
return await o.writeFile(s, i, "utf8"), u.info("wrote .env.example", { app: r.name }), 0;
|
|
40
40
|
}, _ = async (n) => {
|
|
41
|
-
let
|
|
42
|
-
if (!
|
|
43
|
-
let a = l(
|
|
44
|
-
return a ? (
|
|
41
|
+
let r = await e(n).catch(() => null);
|
|
42
|
+
if (!r) return u.error("no app.config.ts found in the current directory"), 1;
|
|
43
|
+
let a = l(r.env) ? r.env : void 0;
|
|
44
|
+
return a ? (r.type === "web" ? (await i(n, a), u.info("wrote src/voltro-env.d.ts (publicEnv augmentation)", { app: r.name ?? "app" })) : (await t(n, a), u.info("wrote env.generated.d.ts (serverEnv augmentation)", { app: r.name ?? "app" })), 0) : (u.warn("no `defineEnv` declared in app.config.ts — nothing to generate", { hint: "add `env: defineEnv({ ... })` to app.config.ts (see @voltro/env)" }), 0);
|
|
45
45
|
}, v = () => {
|
|
46
46
|
let e = c();
|
|
47
47
|
return u.info(`${e.length} framework env vars for turbo.json globalPassThroughEnv:`), m(JSON.stringify([...e].sort(), null, 2)), u.info("merge these into the workspace turbo.json `globalPassThroughEnv` array (+ your own app vars)."), 0;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as e } from "./cliOutput-D1tSBoRM.js";
|
|
2
|
-
import { i as t } from "./checkCommand-
|
|
3
|
-
import { i as n, n as r } from "./codemodRunner-
|
|
2
|
+
import { i as t } from "./checkCommand-Dg1G7Gwd.js";
|
|
3
|
+
import { i as n, n as r } from "./codemodRunner-Cd4xkC6u.js";
|
|
4
4
|
import { basename as i, join as a, resolve as o } from "node:path";
|
|
5
5
|
import { branchNamespaceName as s, planBranchProvision as c } from "@voltro/database";
|
|
6
6
|
import { readFile as l } from "node:fs/promises";
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
//#region src/fileConventions.ts
|
|
2
|
+
var e = /\.(query|mutation|action|stream)\.ts$/, t = /\.(query|mutation|action|stream)\.server\.ts$/, n = /\.event\.ts$/, r = /\.ws\.ts$/, i = /\.workflow\.tsx$/, a = /\.workflow\.server\.tsx$/, o = /\.workflow\.tsx?$/, s = /\.trigger\.tsx?$/, c = /\.cron\.tsx?$/, l = /\.webhook\.tsx?$/, u = /\.outbox\.tsx?$/, d = /\.consumer\.tsx?$/, f = /\.subscribe\.tsx?$/, p = /\.reaction\.tsx?$/, m = /\.aggregate\.tsx?$/, h = /\.expectation\.ts$/, g = /\.budget\.ts$/, _ = /\.experiment\.ts$/, v = /\.deepLink\.ts$/, y = /\.startup\.tsx?$/, b = /\.seed\.ts$/, x = /\.relations\.ts$/, S = /\.entity\.ts$|\.schema\.ts$|^schema\.ts$/, C = (e) => o.test(e) && !i.test(e) && !a.test(e), w = /(?:^|\/)page\.tsx$/, T = /\.island\.tsx?$/, E = /\.component\.tsx$/, D = /\.component\.ui\.tsx$/, O = /\.hook\.tsx?$/, k = /\.internal\.tsx?$/, A = /\.types\.tsx?$/, j = /\.fixture\.tsx?$/, M = /\.tracking\.tsx?$/, N = /\.store\.tsx?$/, P = /\.client\.tsx?$/, F = /\.(test|spec)\.tsx?$/, I = [
|
|
3
|
+
e,
|
|
4
|
+
t,
|
|
5
|
+
o,
|
|
6
|
+
a,
|
|
7
|
+
s,
|
|
8
|
+
c,
|
|
9
|
+
l,
|
|
10
|
+
u,
|
|
11
|
+
d,
|
|
12
|
+
f,
|
|
13
|
+
p,
|
|
14
|
+
m,
|
|
15
|
+
y,
|
|
16
|
+
h,
|
|
17
|
+
g,
|
|
18
|
+
_,
|
|
19
|
+
b,
|
|
20
|
+
x,
|
|
21
|
+
S,
|
|
22
|
+
/\.route\.tsx?$/,
|
|
23
|
+
n,
|
|
24
|
+
r,
|
|
25
|
+
v,
|
|
26
|
+
N,
|
|
27
|
+
P,
|
|
28
|
+
/\.(agent|tool|email|connection|serverless|server|config|generated)\.tsx?$/
|
|
29
|
+
], L = (e) => I.some((t) => t.test(e)), R = /* @__PURE__ */ new Set([
|
|
30
|
+
"layout.tsx",
|
|
31
|
+
"error.tsx",
|
|
32
|
+
"loading.tsx",
|
|
33
|
+
"not-found.tsx"
|
|
34
|
+
]);
|
|
35
|
+
//#endregion
|
|
36
|
+
export { A, b as C, F as D, f as E, r as F, L as I, C as L, i as M, o as N, M as O, a as P, S, N as T, R as _, d as a, p as b, n as c, j as d, O as f, w as g, u as h, D as i, l as j, s as k, h as l, T as m, g as n, c as o, k as p, E as r, v as s, m as t, _ as u, e as v, y as w, x, t as y };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { A as e, D as t, O as n, T as r, _ as i, d as a, f as o, g as s, i as c, p as l, r as u } from "./fileConventions-l-RIXbx8.js";
|
|
2
2
|
import { n as d, t as f } from "./tsconfigPaths-BWXBWgcl.js";
|
|
3
3
|
import { dirname as p, join as m, relative as h, resolve as g, sep as _ } from "node:path";
|
|
4
4
|
import { existsSync as v, readFileSync as y, readdirSync as b, statSync as x } from "node:fs";
|
|
@@ -38,42 +38,42 @@ var T = ".voltro-vendored", E = (e, t) => {
|
|
|
38
38
|
}, D = (e, t) => t.some((t) => e === t.dir || e.startsWith(`${t.dir}${_}`)), O = (e, t) => t.map((t) => `${h(e, t.dir) || "."} (${t.source})`), k = [
|
|
39
39
|
{
|
|
40
40
|
id: "component.ui",
|
|
41
|
-
re:
|
|
41
|
+
re: c,
|
|
42
42
|
needsTest: !0
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
45
|
id: "component",
|
|
46
|
-
re:
|
|
46
|
+
re: u,
|
|
47
47
|
needsTest: !0
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
50
|
id: "hook",
|
|
51
|
-
re:
|
|
51
|
+
re: o,
|
|
52
52
|
needsTest: !0
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
55
|
id: "tracking",
|
|
56
|
-
re:
|
|
56
|
+
re: n,
|
|
57
57
|
needsTest: !0
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
60
|
id: "store",
|
|
61
|
-
re:
|
|
61
|
+
re: r,
|
|
62
62
|
needsTest: !0
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
65
|
id: "internal",
|
|
66
|
-
re:
|
|
66
|
+
re: l,
|
|
67
67
|
needsTest: !0
|
|
68
68
|
},
|
|
69
69
|
{
|
|
70
70
|
id: "fixture",
|
|
71
|
-
re:
|
|
71
|
+
re: a,
|
|
72
72
|
needsTest: !1
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
75
|
id: "types",
|
|
76
|
-
re:
|
|
76
|
+
re: e,
|
|
77
77
|
needsTest: !1
|
|
78
78
|
}
|
|
79
79
|
], A = (e) => k.find((t) => t.re.test(e))?.id ?? null, j = (e) => t.test(e), M = /* @__PURE__ */ new Set([
|
|
@@ -244,10 +244,10 @@ var T = ".voltro-vendored", E = (e, t) => {
|
|
|
244
244
|
scanned: 0,
|
|
245
245
|
vendored: n
|
|
246
246
|
};
|
|
247
|
-
let
|
|
247
|
+
let a = new C({
|
|
248
248
|
useInMemoryFileSystem: !0,
|
|
249
249
|
skipAddingFilesFromTsConfig: !0
|
|
250
|
-
}),
|
|
250
|
+
}), o = [], c = (t) => h(e, t), l = /* @__PURE__ */ new Map(), u = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Map(), f = /* @__PURE__ */ new Map();
|
|
251
251
|
for (let t of r) {
|
|
252
252
|
let n;
|
|
253
253
|
try {
|
|
@@ -257,7 +257,7 @@ var T = ".voltro-vendored", E = (e, t) => {
|
|
|
257
257
|
}
|
|
258
258
|
let r;
|
|
259
259
|
try {
|
|
260
|
-
r =
|
|
260
|
+
r = a.createSourceFile(t.endsWith("x") ? "/scan.tsx" : "/scan.ts", n, { overwrite: !0 });
|
|
261
261
|
} catch {
|
|
262
262
|
continue;
|
|
263
263
|
}
|
|
@@ -293,18 +293,18 @@ var T = ".voltro-vendored", E = (e, t) => {
|
|
|
293
293
|
for (let e of r) {
|
|
294
294
|
let t = A(e), n = l.get(e), r = u.get(e);
|
|
295
295
|
if (n === void 0 || r === void 0) continue;
|
|
296
|
-
let
|
|
297
|
-
t !== null && !
|
|
296
|
+
let a = j(e);
|
|
297
|
+
t !== null && !a && (g += 1);
|
|
298
298
|
let f = p.get(e) ?? [];
|
|
299
|
-
if ((t === "component" || t === "component.ui") && !
|
|
299
|
+
if ((t === "component" || t === "component.ui") && !a) {
|
|
300
300
|
let t = J(n.components);
|
|
301
|
-
(n.components.length === 0 || !t) &&
|
|
301
|
+
(n.components.length === 0 || !t) && o.push({
|
|
302
302
|
rule: "component/one-per-file",
|
|
303
303
|
file: c(e),
|
|
304
304
|
severity: "error",
|
|
305
305
|
detail: n.components.length === 0 ? "declares a component file but exports no component" : `exports ${n.components.length} unrelated components: ${n.components.join(", ")}`,
|
|
306
306
|
fix: "a component file exports ONE component — or one NAMESPACED family sharing its name (`Card`, `CardHeader`, `CardTitle`), which is one component with parts. Types alongside are fine. Unrelated components belong in their own files"
|
|
307
|
-
}), n.hooks.length > 0 &&
|
|
307
|
+
}), n.hooks.length > 0 && o.push({
|
|
308
308
|
rule: "component/no-hook-export",
|
|
309
309
|
file: c(e),
|
|
310
310
|
severity: "error",
|
|
@@ -312,19 +312,19 @@ var T = ".voltro-vendored", E = (e, t) => {
|
|
|
312
312
|
fix: "move the hook into its own *.hook.ts — a file exporting both is two files wearing one name, and neither can be reused without dragging the other"
|
|
313
313
|
});
|
|
314
314
|
}
|
|
315
|
-
if (t === "hook" && !
|
|
315
|
+
if (t === "hook" && !a && (n.hooks.length !== 1 && o.push({
|
|
316
316
|
rule: "hook/one-per-file",
|
|
317
317
|
file: c(e),
|
|
318
318
|
severity: "error",
|
|
319
319
|
detail: n.hooks.length === 0 ? "declares a hook file but exports no use* hook" : `exports ${n.hooks.length} hooks: ${n.hooks.join(", ")}`,
|
|
320
320
|
fix: "a hook file exports exactly ONE use* hook (types alongside are fine)"
|
|
321
|
-
}), n.components.length > 0 &&
|
|
321
|
+
}), n.components.length > 0 && o.push({
|
|
322
322
|
rule: "hook/no-component-export",
|
|
323
323
|
file: c(e),
|
|
324
324
|
severity: "error",
|
|
325
325
|
detail: `also exports component(s): ${n.components.join(", ")}`,
|
|
326
326
|
fix: "move the component into its own *.component.tsx"
|
|
327
|
-
})), t === "types" && n.hasRuntimeExport &&
|
|
327
|
+
})), t === "types" && n.hasRuntimeExport && o.push({
|
|
328
328
|
rule: "types/runtime-export",
|
|
329
329
|
file: c(e),
|
|
330
330
|
severity: "error",
|
|
@@ -336,7 +336,7 @@ var T = ".voltro-vendored", E = (e, t) => {
|
|
|
336
336
|
fix: "a *.types.ts has NO runtime export. That is what makes importing it provably free AND makes it impossible for it to sit in a runtime import cycle — the guarantee is the point, so move the value to a sibling module"
|
|
337
337
|
}), t === "internal") {
|
|
338
338
|
let t = f.filter((t) => !Y(t, e));
|
|
339
|
-
t.length > 0 &&
|
|
339
|
+
t.length > 0 && o.push({
|
|
340
340
|
rule: "internal/foreign-import",
|
|
341
341
|
file: c(e),
|
|
342
342
|
severity: "error",
|
|
@@ -346,7 +346,7 @@ var T = ".voltro-vendored", E = (e, t) => {
|
|
|
346
346
|
}
|
|
347
347
|
if (t === "fixture") {
|
|
348
348
|
let t = f.filter((e) => !j(e) && A(e) !== "fixture");
|
|
349
|
-
t.length > 0 &&
|
|
349
|
+
t.length > 0 && o.push({
|
|
350
350
|
rule: "fixture/production-import",
|
|
351
351
|
file: c(e),
|
|
352
352
|
severity: "error",
|
|
@@ -354,26 +354,26 @@ var T = ".voltro-vendored", E = (e, t) => {
|
|
|
354
354
|
fix: "test material must not be reachable from a production path — it ships in the bundle, and it is written to be convenient rather than correct"
|
|
355
355
|
});
|
|
356
356
|
}
|
|
357
|
-
if (t === "component.ui" && !
|
|
357
|
+
if (t === "component.ui" && !a) {
|
|
358
358
|
let t = [...r.namedBindings].filter((e) => M.has(e)).sort();
|
|
359
|
-
t.length > 0 &&
|
|
359
|
+
t.length > 0 && o.push({
|
|
360
360
|
rule: "ui/no-write",
|
|
361
361
|
file: c(e),
|
|
362
362
|
severity: "error",
|
|
363
363
|
detail: `imports write hook(s): ${t.join(", ")}`,
|
|
364
364
|
fix: "a *.component.ui.tsx renders; it does not write. Lift the mutation into the *.component.tsx that owns it and pass a handler down. Reading (useT / useCan / usePermissions) stays allowed — threading those through props is prop-drilling, not reusability"
|
|
365
365
|
});
|
|
366
|
-
let n = m(e),
|
|
366
|
+
let n = m(e), a = n.filter((e) => {
|
|
367
367
|
let t = A(e);
|
|
368
|
-
return t === "component" || t === "component.ui" ||
|
|
368
|
+
return t === "component" || t === "component.ui" || s.test(e) || i.has(e.slice(e.lastIndexOf(_) + 1));
|
|
369
369
|
});
|
|
370
|
-
n.length === 0 ?
|
|
370
|
+
n.length === 0 ? o.push({
|
|
371
371
|
rule: "ui/orphaned",
|
|
372
372
|
file: c(e),
|
|
373
373
|
severity: "warn",
|
|
374
374
|
detail: "nothing imports it",
|
|
375
375
|
fix: "render it from a *.component.tsx or a page, or delete it — an unrendered presentational component is carried, reviewed and refactored forever without reaching a user"
|
|
376
|
-
}) :
|
|
376
|
+
}) : a.length === 0 && o.push({
|
|
377
377
|
rule: "ui/unlinked",
|
|
378
378
|
file: c(e),
|
|
379
379
|
severity: "warn",
|
|
@@ -381,9 +381,9 @@ var T = ".voltro-vendored", E = (e, t) => {
|
|
|
381
381
|
fix: "a presentational component should be reached from a *.component.tsx, another *.component.ui.tsx, or a page"
|
|
382
382
|
});
|
|
383
383
|
}
|
|
384
|
-
if (t === "store" && !
|
|
384
|
+
if (t === "store" && !a) {
|
|
385
385
|
let t = d.get(e)?.get("defineStore") ?? 0;
|
|
386
|
-
t !== 1 &&
|
|
386
|
+
t !== 1 && o.push({
|
|
387
387
|
rule: "store/one-per-file",
|
|
388
388
|
file: c(e),
|
|
389
389
|
severity: "error",
|
|
@@ -391,7 +391,7 @@ var T = ".voltro-vendored", E = (e, t) => {
|
|
|
391
391
|
fix: "a store file defines exactly ONE store — the SSR seed pass and devtools address stores by name, so two in a file makes both harder to find and neither easier to reason about"
|
|
392
392
|
});
|
|
393
393
|
let n = [...d.get(e)?.keys() ?? []].filter((e) => P.has(e)).sort();
|
|
394
|
-
n.length > 0 &&
|
|
394
|
+
n.length > 0 && o.push({
|
|
395
395
|
rule: "store/mirrors-server-state",
|
|
396
396
|
file: c(e),
|
|
397
397
|
severity: "error",
|
|
@@ -399,9 +399,9 @@ var T = ".voltro-vendored", E = (e, t) => {
|
|
|
399
399
|
fix: "a store holds CLIENT state. A subscription is already live server state; copying it into a store gives you a second copy that does not live, and the page then shows the stale one — a bug that reads as \"reactivity is broken\". Read the subscription where you render it"
|
|
400
400
|
});
|
|
401
401
|
}
|
|
402
|
-
if (t !== "tracking" && !
|
|
402
|
+
if (t !== "tracking" && !a) {
|
|
403
403
|
let t = [...d.get(e)?.keys() ?? []].filter((e) => N.has(e)).sort();
|
|
404
|
-
t.length > 0 &&
|
|
404
|
+
t.length > 0 && o.push({
|
|
405
405
|
rule: "tracking/outside-tracking-file",
|
|
406
406
|
file: c(e),
|
|
407
407
|
severity: "error",
|
|
@@ -409,7 +409,7 @@ var T = ".voltro-vendored", E = (e, t) => {
|
|
|
409
409
|
fix: "move the defineTracking(...) spec into a *.tracking.ts and import it here. The event catalogue — names, property bags, the decisions about what personal data goes out — belongs in one place you can list; calling useTracking with a spec from there is fine"
|
|
410
410
|
});
|
|
411
411
|
}
|
|
412
|
-
if (k.find((e) => e.id === t)?.needsTest === !0 && !
|
|
412
|
+
if (k.find((e) => e.id === t)?.needsTest === !0 && !a) {
|
|
413
413
|
let t = e.replace(/\.tsx?$/, ""), n = e.endsWith("x") ? "tsx" : "ts";
|
|
414
414
|
["test", "spec"].flatMap((e) => [`${t}.${e}.ts`, `${t}.${e}.tsx`]).some((e) => {
|
|
415
415
|
try {
|
|
@@ -417,7 +417,7 @@ var T = ".voltro-vendored", E = (e, t) => {
|
|
|
417
417
|
} catch {
|
|
418
418
|
return !1;
|
|
419
419
|
}
|
|
420
|
-
}) ||
|
|
420
|
+
}) || o.push({
|
|
421
421
|
rule: "convention/missing-test",
|
|
422
422
|
file: c(e),
|
|
423
423
|
severity: "warn",
|
|
@@ -426,8 +426,8 @@ var T = ".voltro-vendored", E = (e, t) => {
|
|
|
426
426
|
});
|
|
427
427
|
}
|
|
428
428
|
}
|
|
429
|
-
return
|
|
430
|
-
findings:
|
|
429
|
+
return o.sort((e, t) => e.file === t.file ? e.rule.localeCompare(t.rule) : e.file.localeCompare(t.file)), {
|
|
430
|
+
findings: o,
|
|
431
431
|
declared: g,
|
|
432
432
|
scanned: r.length,
|
|
433
433
|
vendored: n
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as e } from "./appModuleLoader-C9r9mxZt.js";
|
|
2
2
|
import { n as t } from "./declaredSchemaGates-BlcwObhb.js";
|
|
3
|
-
import {
|
|
3
|
+
import { C as n, N as r, j as i, k as a, o } from "./fileConventions-l-RIXbx8.js";
|
|
4
4
|
import { basename as s, join as c } from "node:path";
|
|
5
5
|
import { existsSync as l, promises as u } from "node:fs";
|
|
6
6
|
import { pathToFileURL as d } from "node:url";
|
|
@@ -407,20 +407,20 @@ var we = [
|
|
|
407
407
|
connections: r.map((e) => `${e.definition.id} (${e.definition.kind})`),
|
|
408
408
|
files: r.map((e) => He(s(e.file)))
|
|
409
409
|
}), r;
|
|
410
|
-
}, J = (e) => o.test(e) ||
|
|
411
|
-
let t = !1,
|
|
410
|
+
}, J = (e) => o.test(e) || n.test(e), Y = async (e) => {
|
|
411
|
+
let t = !1, n = !1, o = !1, s = !1, l = !1, d = async (e) => {
|
|
412
412
|
let f = await u.readdir(e, { withFileTypes: !0 }).catch(() => []);
|
|
413
413
|
for (let u of f) if (u.isDirectory()) {
|
|
414
414
|
if (u.name === "node_modules" || u.name === "dist" || u.name === ".framework" || u.name.startsWith(".")) continue;
|
|
415
415
|
await d(c(e, u.name));
|
|
416
416
|
} else {
|
|
417
417
|
let e = u.name;
|
|
418
|
-
(r.test(e) ||
|
|
418
|
+
(r.test(e) || a.test(e)) && (t = !0), J(e) && (n = !0), i.test(e) && (o = !0), W.test(e) && (s = !0), q.test(e) && (l = !0);
|
|
419
419
|
}
|
|
420
420
|
};
|
|
421
421
|
return await d(e), {
|
|
422
422
|
workflows: t,
|
|
423
|
-
schedules:
|
|
423
|
+
schedules: n,
|
|
424
424
|
webhooks: o,
|
|
425
425
|
agents: s,
|
|
426
426
|
connections: l
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as e, i as t, n, o as r, r as i, t as a } from "./commands-
|
|
2
|
-
import { r as o } from "./templates-
|
|
1
|
+
import { a as e, i as t, n, o as r, r as i, t as a } from "./commands-6Kzi92Np.js";
|
|
2
|
+
import { r as o } from "./templates-BTWZkJJT.js";
|
|
3
3
|
//#region src/index.ts
|
|
4
4
|
var s = "framework";
|
|
5
5
|
//#endregion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as e, r as t, t as n } from "./cliOutput-D1tSBoRM.js";
|
|
2
|
-
import { o as r } from "./updateCommand-
|
|
2
|
+
import { o as r } from "./updateCommand-CRJlAOaM.js";
|
|
3
3
|
import { join as i, resolve as a } from "node:path";
|
|
4
4
|
import { readFileSync as o, readdirSync as s, statSync as c } from "node:fs";
|
|
5
5
|
//#region src/infoCommand.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { i as e, n as t, r as n } from "./cliArgs-D4p8n7EE.js";
|
|
2
2
|
import { t as r } from "./cliRuntime-Dh7UDinH.js";
|
|
3
|
-
import { n as i } from "./renderProfile-
|
|
4
|
-
import { a, i as o } from "./projectScaffold-
|
|
3
|
+
import { n as i } from "./renderProfile-DvrhVJHa.js";
|
|
4
|
+
import { a, i as o } from "./projectScaffold-CSN0OzBV.js";
|
|
5
5
|
import { t as s } from "./discover-C9XKJDco.js";
|
|
6
6
|
import { basename as c, join as l, relative as u, resolve as d } from "node:path";
|
|
7
7
|
import { createLogger as f } from "@voltro/logger";
|
|
@@ -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 { g as i, n as a, s as o } from "./frameworkTableAssembly-
|
|
4
|
+
import { g as i, n as a, s as o } from "./frameworkTableAssembly-D7LJuALW.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";
|
|
@@ -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-CSFWs9ev.js");
|
|
83
83
|
return t(["apply", ...e]);
|
|
84
84
|
};
|
|
85
85
|
//#endregion
|