@lumerahq/cli 0.22.0 → 0.22.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-A55Q4P2T.js → chunk-WV5HOQNX.js} +1 -1
- package/dist/{dev-GQKLR7AK.js → dev-UTPD4MN5.js} +1 -1
- package/dist/index.js +8 -8
- package/dist/{resources-W7TYJOQN.js → resources-TJUKE2O3.js} +9 -6
- package/package.json +1 -1
- package/templates/default/index.html +8 -1
- package/templates/default/src/styles.css +37 -2
- package/templates/default/template.json +1 -1
|
@@ -95,7 +95,7 @@ async function deploy(options) {
|
|
|
95
95
|
console.log(pc.dim("Ensuring app record..."));
|
|
96
96
|
await ensureAppRecord(apiUrl, token, appName, appTitle);
|
|
97
97
|
console.log(pc.cyan(`Deploying ${appTitle}...`));
|
|
98
|
-
const version = options.version || resolveVersion(dirname(distDir));
|
|
98
|
+
const version = options.version || process.env.LUMERA_APP_VERSION?.trim() || resolveVersion(dirname(distDir));
|
|
99
99
|
console.log(pc.dim(`Version: ${version}`));
|
|
100
100
|
const tarball = await createTarball(distDir);
|
|
101
101
|
console.log(pc.dim(`Package: ${(tarball.length / 1024).toFixed(1)} KB`));
|
package/dist/index.js
CHANGED
|
@@ -226,29 +226,29 @@ async function main() {
|
|
|
226
226
|
switch (command) {
|
|
227
227
|
// Resource commands
|
|
228
228
|
case "plan":
|
|
229
|
-
await import("./resources-
|
|
229
|
+
await import("./resources-TJUKE2O3.js").then((m) => m.plan(args.slice(1)));
|
|
230
230
|
break;
|
|
231
231
|
case "apply":
|
|
232
|
-
await import("./resources-
|
|
232
|
+
await import("./resources-TJUKE2O3.js").then((m) => m.apply(args.slice(1)));
|
|
233
233
|
break;
|
|
234
234
|
case "pull":
|
|
235
|
-
await import("./resources-
|
|
235
|
+
await import("./resources-TJUKE2O3.js").then((m) => m.pull(args.slice(1)));
|
|
236
236
|
break;
|
|
237
237
|
case "destroy":
|
|
238
|
-
await import("./resources-
|
|
238
|
+
await import("./resources-TJUKE2O3.js").then((m) => m.destroy(args.slice(1)));
|
|
239
239
|
break;
|
|
240
240
|
case "list":
|
|
241
|
-
await import("./resources-
|
|
241
|
+
await import("./resources-TJUKE2O3.js").then((m) => m.list(args.slice(1)));
|
|
242
242
|
break;
|
|
243
243
|
case "show":
|
|
244
|
-
await import("./resources-
|
|
244
|
+
await import("./resources-TJUKE2O3.js").then((m) => m.show(args.slice(1)));
|
|
245
245
|
break;
|
|
246
246
|
case "diff":
|
|
247
|
-
await import("./resources-
|
|
247
|
+
await import("./resources-TJUKE2O3.js").then((m) => m.diff(args.slice(1)));
|
|
248
248
|
break;
|
|
249
249
|
// Development
|
|
250
250
|
case "dev":
|
|
251
|
-
await import("./dev-
|
|
251
|
+
await import("./dev-UTPD4MN5.js").then((m) => m.dev(args.slice(1)));
|
|
252
252
|
break;
|
|
253
253
|
case "run":
|
|
254
254
|
await import("./run-DJXAXDD2.js").then((m) => m.run(args.slice(1)));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
deploy
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-WV5HOQNX.js";
|
|
4
4
|
import {
|
|
5
5
|
syncDeps
|
|
6
6
|
} from "./chunk-3ESHIPZH.js";
|
|
@@ -3375,6 +3375,14 @@ async function apply(args) {
|
|
|
3375
3375
|
totalErrors += await applyMailboxes(api, localMailboxes);
|
|
3376
3376
|
console.log();
|
|
3377
3377
|
}
|
|
3378
|
+
if (totalErrors > 0) {
|
|
3379
|
+
console.log(pc2.red(` \u2717 ${totalErrors} error${totalErrors > 1 ? "s" : ""} during apply.`));
|
|
3380
|
+
if (willDeployApp) {
|
|
3381
|
+
console.log(pc2.dim(" App deploy skipped because resource apply failed."));
|
|
3382
|
+
}
|
|
3383
|
+
console.log();
|
|
3384
|
+
process.exit(1);
|
|
3385
|
+
}
|
|
3378
3386
|
if (willDeployApp) {
|
|
3379
3387
|
console.log(pc2.bold(" App:"));
|
|
3380
3388
|
await applyApp(args);
|
|
@@ -3382,11 +3390,6 @@ async function apply(args) {
|
|
|
3382
3390
|
}
|
|
3383
3391
|
totalCreated = creates.length;
|
|
3384
3392
|
totalUpdated = updates.length;
|
|
3385
|
-
if (totalErrors > 0) {
|
|
3386
|
-
console.log(pc2.red(` \u2717 ${totalErrors} error${totalErrors > 1 ? "s" : ""} during apply.`));
|
|
3387
|
-
console.log();
|
|
3388
|
-
process.exit(1);
|
|
3389
|
-
}
|
|
3390
3393
|
const summary = [];
|
|
3391
3394
|
if (totalCreated > 0) summary.push(pc2.green(`${totalCreated} created`));
|
|
3392
3395
|
if (totalUpdated > 0) summary.push(pc2.yellow(`${totalUpdated} updated`));
|
package/package.json
CHANGED
|
@@ -4,9 +4,16 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<meta name="theme-color" content="#000000" />
|
|
7
|
+
<!--
|
|
8
|
+
App fonts are an identity choice, not a default. Replace the pairing
|
|
9
|
+
below with fonts chosen for THIS app (see the building-enterprise-apps
|
|
10
|
+
skill, "Typography"): a characterful UI face plus a mono face for
|
|
11
|
+
figures, optionally a display face for page titles. Then update the
|
|
12
|
+
font tokens at the top of src/styles.css to match.
|
|
13
|
+
-->
|
|
7
14
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
8
15
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
9
|
-
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
16
|
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400..700&display=swap" rel="stylesheet">
|
|
10
17
|
<title>{{projectTitle}}</title>
|
|
11
18
|
</head>
|
|
12
19
|
<body>
|
|
@@ -98,15 +98,50 @@
|
|
|
98
98
|
|
|
99
99
|
@custom-variant dark (&:is(.dark *));
|
|
100
100
|
|
|
101
|
+
/* ──────────────────────────────────────────────────────────────────────────
|
|
102
|
+
APP IDENTITY — choose, don't inherit.
|
|
103
|
+
|
|
104
|
+
The fonts and core colors in this file are placeholders, not a design.
|
|
105
|
+
Before building screens, commit to a visual direction for THIS app (see
|
|
106
|
+
the building-enterprise-apps skill: "Design Direction" and "Typography"):
|
|
107
|
+
pick a font pairing in index.html and set the tokens below to match, then
|
|
108
|
+
re-derive at minimum --primary, --accent, --ring, and the background/
|
|
109
|
+
foreground neutrals from the chosen direction (bias neutrals toward the
|
|
110
|
+
accent instead of pure gray). Shipping this file unchanged is a
|
|
111
|
+
non-choice — every app built that way looks identical.
|
|
112
|
+
────────────────────────────────────────────────────────────────────────── */
|
|
113
|
+
|
|
114
|
+
:root {
|
|
115
|
+
/* UI face — replace Inter with the app's chosen face */
|
|
116
|
+
--font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
117
|
+
/* Data face — figures, amounts, and IDs render in this, with tabular numerals */
|
|
118
|
+
--font-data: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
|
|
119
|
+
/* Optional display face for page titles (often a serif); defaults to the UI face */
|
|
120
|
+
--font-titles: var(--font-ui);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
@theme inline {
|
|
124
|
+
--font-sans: var(--font-ui);
|
|
125
|
+
--font-mono: var(--font-data);
|
|
126
|
+
--font-display: var(--font-titles);
|
|
127
|
+
}
|
|
128
|
+
|
|
101
129
|
body {
|
|
102
130
|
@apply m-0;
|
|
103
|
-
font-family:
|
|
131
|
+
font-family: var(--font-ui);
|
|
104
132
|
font-feature-settings: "cv11", "ss01";
|
|
105
133
|
-webkit-font-smoothing: antialiased;
|
|
106
134
|
-moz-osx-font-smoothing: grayscale;
|
|
107
135
|
}
|
|
108
136
|
|
|
109
|
-
/*
|
|
137
|
+
/* Numerals line up wherever data lives */
|
|
138
|
+
table,
|
|
139
|
+
.font-mono {
|
|
140
|
+
font-variant-numeric: tabular-nums;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/* Core identity colors (placeholder: Lumera coral on warm off-white) + the
|
|
144
|
+
full shadcn variable set. Keep the variable names; change the values. */
|
|
110
145
|
|
|
111
146
|
:root {
|
|
112
147
|
--radius: 0.75rem;
|