@lumerahq/cli 0.19.12 → 0.19.13
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/index.js +1 -1
- package/dist/{init-QCNR4ULM.js → init-KJOWD2KQ.js} +9 -3
- package/package.json +1 -1
- package/templates/default/AGENTS.md +3 -3
- package/templates/default/_gitignore +0 -1
- package/templates/default/package.json +4 -7
- package/templates/default/pnpm-lock.yaml +4083 -0
- package/templates/default/src/styles.css +95 -1
package/dist/index.js
CHANGED
|
@@ -248,7 +248,7 @@ async function main() {
|
|
|
248
248
|
break;
|
|
249
249
|
// Project
|
|
250
250
|
case "init":
|
|
251
|
-
await import("./init-
|
|
251
|
+
await import("./init-KJOWD2KQ.js").then((m) => m.init(args.slice(1)));
|
|
252
252
|
break;
|
|
253
253
|
case "register":
|
|
254
254
|
await import("./register-QBRKXWNX.js").then((m) => m.register(args.slice(1)));
|
|
@@ -25,7 +25,7 @@ init_auth();
|
|
|
25
25
|
import pc from "picocolors";
|
|
26
26
|
import prompts from "prompts";
|
|
27
27
|
import { execSync } from "child_process";
|
|
28
|
-
import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync, rmSync, readlinkSync, symlinkSync } from "fs";
|
|
28
|
+
import { copyFileSync, existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync, rmSync, readlinkSync, symlinkSync } from "fs";
|
|
29
29
|
import { join, resolve } from "path";
|
|
30
30
|
function toTitleCase(str) {
|
|
31
31
|
return str.split(/[-_]/).map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
|
|
@@ -41,6 +41,7 @@ function processTemplate(content, replacements) {
|
|
|
41
41
|
}
|
|
42
42
|
var TEMPLATE_EXCLUDE = /* @__PURE__ */ new Set(["template.json"]);
|
|
43
43
|
var TEMPLATE_RENAMES = /* @__PURE__ */ new Map([["_gitignore", ".gitignore"]]);
|
|
44
|
+
var TEMPLATE_RAW_COPY = /* @__PURE__ */ new Set(["pnpm-lock.yaml"]);
|
|
44
45
|
function copyDir(src, dest, replacements, isRoot = true) {
|
|
45
46
|
if (!existsSync(dest)) {
|
|
46
47
|
mkdirSync(dest, { recursive: true });
|
|
@@ -60,6 +61,10 @@ function copyDir(src, dest, replacements, isRoot = true) {
|
|
|
60
61
|
} else if (entry.isDirectory()) {
|
|
61
62
|
copyDir(srcPath, destPath, replacements, false);
|
|
62
63
|
} else {
|
|
64
|
+
if (TEMPLATE_RAW_COPY.has(entry.name)) {
|
|
65
|
+
copyFileSync(srcPath, destPath);
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
63
68
|
const content = readFileSync(srcPath, "utf-8");
|
|
64
69
|
const processed = processTemplate(content, replacements);
|
|
65
70
|
writeFileSync(destPath, processed);
|
|
@@ -363,6 +368,7 @@ async function init(args) {
|
|
|
363
368
|
];
|
|
364
369
|
copyDir(templateDir, targetDir, replacements);
|
|
365
370
|
ensureClaudeInstructionsLink(targetDir);
|
|
371
|
+
const installCommand = existsSync(join(targetDir, "pnpm-lock.yaml")) ? "pnpm install --frozen-lockfile" : "pnpm install";
|
|
366
372
|
function listFiles(dir, prefix = "") {
|
|
367
373
|
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
368
374
|
const relativePath = prefix + entry.name;
|
|
@@ -405,7 +411,7 @@ async function init(args) {
|
|
|
405
411
|
if (opts.install) {
|
|
406
412
|
const stopInstall = spinner("Installing dependencies...");
|
|
407
413
|
try {
|
|
408
|
-
execSync(
|
|
414
|
+
execSync(installCommand, { cwd: targetDir, stdio: "ignore" });
|
|
409
415
|
stopInstall(pc.green("\u2713") + pc.dim(" Dependencies installed"));
|
|
410
416
|
} catch {
|
|
411
417
|
stopInstall(pc.yellow("\u26A0") + pc.dim(" Failed to install dependencies"));
|
|
@@ -453,7 +459,7 @@ async function init(args) {
|
|
|
453
459
|
console.log();
|
|
454
460
|
console.log(pc.cyan(` cd ${finalDirectory}`));
|
|
455
461
|
if (!opts.install) {
|
|
456
|
-
console.log(pc.cyan(
|
|
462
|
+
console.log(pc.cyan(` ${installCommand}`));
|
|
457
463
|
}
|
|
458
464
|
if (!registered) {
|
|
459
465
|
console.log(pc.cyan(" lumera login"));
|
package/package.json
CHANGED
|
@@ -55,11 +55,11 @@ For detailed technical reference (data models, relationships, design decisions),
|
|
|
55
55
|
|
|
56
56
|
### Installing components
|
|
57
57
|
|
|
58
|
-
Install shadcn components with `pnpm dlx` (the sandbox's default JS package manager):
|
|
58
|
+
Install shadcn components with `pnpm dlx` (the sandbox's default JS package manager). Match the sandbox-pinned shadcn version:
|
|
59
59
|
|
|
60
60
|
```bash
|
|
61
|
-
pnpm dlx shadcn@
|
|
62
|
-
pnpm dlx shadcn@
|
|
61
|
+
pnpm dlx shadcn@4.1.2 add button card dialog # Install specific components
|
|
62
|
+
pnpm dlx shadcn@4.1.2 add table input label select # Install more as needed
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
Components install into `src/components/ui/` and are fully editable.
|
|
@@ -27,26 +27,23 @@
|
|
|
27
27
|
"@lumerahq/ui": "^0.9.1",
|
|
28
28
|
"@tanstack/react-query": "^5.90.11",
|
|
29
29
|
"@tanstack/react-router": "1.155.0",
|
|
30
|
-
"@tanstack/router-plugin": "1.155.0",
|
|
31
|
-
"class-variance-authority": "^0.7.1",
|
|
32
30
|
"clsx": "^2.1.1",
|
|
33
31
|
"lucide-react": "^1.7.0",
|
|
34
|
-
"radix-ui": "^1.4.3",
|
|
35
|
-
"shadcn": "^4.1.2",
|
|
36
32
|
"tailwind-merge": "^3.4.0",
|
|
37
|
-
"tw-animate-css": "^1.4.0",
|
|
38
33
|
"react": "^19.2.0",
|
|
39
34
|
"react-dom": "^19.2.0",
|
|
40
|
-
"sonner": "^2.0.7"
|
|
41
|
-
"tailwindcss": "^4.2.2"
|
|
35
|
+
"sonner": "^2.0.7"
|
|
42
36
|
},
|
|
43
37
|
"devDependencies": {
|
|
44
38
|
"@biomejs/biome": "^2.4.10",
|
|
45
39
|
"@tailwindcss/vite": "^4.2.2",
|
|
46
40
|
"@tanstack/router-cli": "1.155.0",
|
|
41
|
+
"@tanstack/router-plugin": "1.155.0",
|
|
47
42
|
"@types/react": "^19.2.14",
|
|
48
43
|
"@types/react-dom": "^19.2.3",
|
|
49
44
|
"@vitejs/plugin-react": "^6.0.1",
|
|
45
|
+
"tailwindcss": "^4.2.2",
|
|
46
|
+
"tw-animate-css": "^1.4.0",
|
|
50
47
|
"typescript": "^6.0.2",
|
|
51
48
|
"vite": "^8.0.3"
|
|
52
49
|
}
|