@revealui/cli 0.6.2 → 0.6.4
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/README.md +3 -3
- package/bin/create-revealui.js +5 -3
- package/dist/cli.d.ts +1 -2
- package/dist/cli.js +49 -62
- package/dist/index.js +48 -54
- package/package.json +16 -12
- package/templates/basic-blog/src/app/page.tsx +3 -3
- package/templates/e-commerce/src/app/page.tsx +2 -2
- package/templates/portfolio/src/app/page.tsx +3 -3
- package/templates/starter/src/seed.ts +1 -1
- package/dist/cli.js.map +0 -1
- package/dist/index.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
// src/cli.ts
|
|
4
|
+
import { createRequire } from "module";
|
|
4
5
|
import { createLogger as createLogger14 } from "@revealui/setup/utils";
|
|
5
6
|
import { Command } from "commander";
|
|
6
7
|
|
|
@@ -15,9 +16,7 @@ async function runAgentStatusCommand() {
|
|
|
15
16
|
logger.info(`Project root: ${projectRoot}`);
|
|
16
17
|
logger.info(`Available: ${available ? "yes" : "no"}`);
|
|
17
18
|
if (!available) {
|
|
18
|
-
logger.warn(
|
|
19
|
-
"No LLM provider detected. Start BitNet, Ollama, or install an Ubuntu inference snap."
|
|
20
|
-
);
|
|
19
|
+
logger.warn("No LLM provider detected. Install an Ubuntu inference snap or start Ollama.");
|
|
21
20
|
}
|
|
22
21
|
}
|
|
23
22
|
async function runAgentHeadlessCommand(prompt) {
|
|
@@ -181,13 +180,13 @@ async function loadProDeps() {
|
|
|
181
180
|
}
|
|
182
181
|
async function detectProvider() {
|
|
183
182
|
const projectRoot = process.cwd();
|
|
184
|
-
if (process.env.
|
|
183
|
+
if (process.env.INFERENCE_SNAPS_BASE_URL) {
|
|
185
184
|
try {
|
|
186
|
-
const res = await fetch(`${process.env.
|
|
185
|
+
const res = await fetch(`${process.env.INFERENCE_SNAPS_BASE_URL}/v1/models`, {
|
|
187
186
|
signal: AbortSignal.timeout(2e3)
|
|
188
187
|
});
|
|
189
188
|
if (res.ok) {
|
|
190
|
-
return { available: true, provider: "
|
|
189
|
+
return { available: true, provider: "inference-snaps", model: "gemma3", projectRoot };
|
|
191
190
|
}
|
|
192
191
|
} catch {
|
|
193
192
|
}
|
|
@@ -198,7 +197,7 @@ async function detectProvider() {
|
|
|
198
197
|
signal: AbortSignal.timeout(2e3)
|
|
199
198
|
});
|
|
200
199
|
if (res.ok) {
|
|
201
|
-
return { available: true, provider: "ollama", model: "
|
|
200
|
+
return { available: true, provider: "ollama", model: "gemma4:e2b", projectRoot };
|
|
202
201
|
}
|
|
203
202
|
} catch {
|
|
204
203
|
}
|
|
@@ -360,7 +359,7 @@ async function runAuthStatusCommand(options) {
|
|
|
360
359
|
if (npmUser) {
|
|
361
360
|
logger2.success(`Authenticated as: ${npmUser}`);
|
|
362
361
|
} else {
|
|
363
|
-
logger2.error("Not authenticated
|
|
362
|
+
logger2.error("Not authenticated - npm whoami failed");
|
|
364
363
|
}
|
|
365
364
|
write("\n");
|
|
366
365
|
logger2.info(
|
|
@@ -376,7 +375,7 @@ async function runAuthStatusCommand(options) {
|
|
|
376
375
|
logger2.info(`Project .npmrc uses NPM_TOKEN: ${projectUsesEnvVar ? "yes" : "no"}`);
|
|
377
376
|
if (!projectUsesEnvVar && paths.project) {
|
|
378
377
|
logger2.warn(
|
|
379
|
-
"Project .npmrc does not reference NPM_TOKEN
|
|
378
|
+
"Project .npmrc does not reference NPM_TOKEN - direnv/RevVault tokens won't be used for publishing"
|
|
380
379
|
);
|
|
381
380
|
}
|
|
382
381
|
if (!vaultValue && hasVault && effectiveToken) {
|
|
@@ -391,12 +390,12 @@ async function runAuthSetTokenCommand(options) {
|
|
|
391
390
|
logger2.info("Create a Granular Access Token at: https://www.npmjs.com/settings/<user>/tokens");
|
|
392
391
|
logger2.info(" Type: Granular Access Token");
|
|
393
392
|
logger2.info(" Packages: All packages (read and write)");
|
|
394
|
-
logger2.info(" This bypasses 2FA
|
|
393
|
+
logger2.info(" This bypasses 2FA - no OTP needed for publish");
|
|
395
394
|
process.exitCode = 1;
|
|
396
395
|
return;
|
|
397
396
|
}
|
|
398
397
|
if (!token.startsWith("npm_")) {
|
|
399
|
-
logger2.warn('Token does not start with "npm_"
|
|
398
|
+
logger2.warn('Token does not start with "npm_" - this may not be a valid npm token');
|
|
400
399
|
}
|
|
401
400
|
if (!options.skipVault) {
|
|
402
401
|
const hasVault = await hasRevvault();
|
|
@@ -408,7 +407,7 @@ async function runAuthSetTokenCommand(options) {
|
|
|
408
407
|
logger2.error("Failed to store in RevVault");
|
|
409
408
|
}
|
|
410
409
|
} else {
|
|
411
|
-
logger2.warn("RevVault not installed
|
|
410
|
+
logger2.warn("RevVault not installed - skipping vault storage");
|
|
412
411
|
}
|
|
413
412
|
}
|
|
414
413
|
if (!options.skipNpmrc) {
|
|
@@ -448,7 +447,7 @@ ${NPMRC_AUTH_LINE}
|
|
|
448
447
|
const { stdout } = await execa2("npm", ["whoami"], { stdio: "pipe" });
|
|
449
448
|
logger2.success(`Authenticated as: ${stdout.trim()}`);
|
|
450
449
|
} catch {
|
|
451
|
-
logger2.error("npm whoami failed
|
|
450
|
+
logger2.error("npm whoami failed - token may be invalid or expired");
|
|
452
451
|
process.exitCode = 1;
|
|
453
452
|
return;
|
|
454
453
|
}
|
|
@@ -475,7 +474,7 @@ async function runAuthVerifyCommand(options) {
|
|
|
475
474
|
checks.push({
|
|
476
475
|
name: "Token source",
|
|
477
476
|
pass: !!envToken,
|
|
478
|
-
detail: source + (npmrcToken && !envToken ? "
|
|
477
|
+
detail: source + (npmrcToken && !envToken ? " - consider migrating to RevVault" : "")
|
|
479
478
|
});
|
|
480
479
|
const hasVault = await hasRevvault();
|
|
481
480
|
if (hasVault) {
|
|
@@ -492,7 +491,7 @@ async function runAuthVerifyCommand(options) {
|
|
|
492
491
|
checks.push({
|
|
493
492
|
name: ".npmrc NPM_TOKEN",
|
|
494
493
|
pass: usesEnvVar,
|
|
495
|
-
detail: usesEnvVar ? "Project .npmrc uses env var" : "Missing
|
|
494
|
+
detail: usesEnvVar ? "Project .npmrc uses env var" : "Missing - direnv token won't reach npm"
|
|
496
495
|
});
|
|
497
496
|
}
|
|
498
497
|
const envrcPath = path.join(process.cwd(), ".envrc");
|
|
@@ -500,7 +499,7 @@ async function runAuthVerifyCommand(options) {
|
|
|
500
499
|
checks.push({
|
|
501
500
|
name: ".envrc loads npm",
|
|
502
501
|
pass: loadsNpm,
|
|
503
|
-
detail: loadsNpm ? "revealui/env/npm in .envrc" : "Missing
|
|
502
|
+
detail: loadsNpm ? "revealui/env/npm in .envrc" : "Missing - direnv won't export NPM_TOKEN"
|
|
504
503
|
});
|
|
505
504
|
const hardcodedToken = await getTokenFromNpmrc();
|
|
506
505
|
checks.push({
|
|
@@ -524,7 +523,7 @@ async function runAuthVerifyCommand(options) {
|
|
|
524
523
|
const allPass = checks.every((c) => c.pass);
|
|
525
524
|
write("\n");
|
|
526
525
|
if (allPass) {
|
|
527
|
-
logger2.success("All checks passed
|
|
526
|
+
logger2.success("All checks passed - ready to publish");
|
|
528
527
|
} else {
|
|
529
528
|
logger2.warn("Some checks failed. Run `revealui auth set-token` to fix.");
|
|
530
529
|
process.exitCode = 1;
|
|
@@ -944,7 +943,7 @@ async function generateDevContainer(projectPath) {
|
|
|
944
943
|
onAutoForward: "notify"
|
|
945
944
|
},
|
|
946
945
|
"4000": {
|
|
947
|
-
label: "
|
|
946
|
+
label: "Admin",
|
|
948
947
|
onAutoForward: "notify"
|
|
949
948
|
},
|
|
950
949
|
"5432": {
|
|
@@ -1053,7 +1052,7 @@ For GitHub Codespaces, set secrets in your repository settings.
|
|
|
1053
1052
|
## Ports
|
|
1054
1053
|
|
|
1055
1054
|
- 3000: Web application
|
|
1056
|
-
- 4000:
|
|
1055
|
+
- 4000: Admin
|
|
1057
1056
|
- 5432: PostgreSQL database
|
|
1058
1057
|
`;
|
|
1059
1058
|
await fs4.writeFile(path4.join(devcontainerDir, "README.md"), readme, "utf-8");
|
|
@@ -1203,7 +1202,7 @@ var __dirname2 = path6.dirname(__filename2);
|
|
|
1203
1202
|
var TEMPLATES_DIR = existsSync(path6.resolve(__dirname2, "../../templates")) ? path6.resolve(__dirname2, "../../templates") : path6.resolve(__dirname2, "../templates");
|
|
1204
1203
|
function buildEnvLocal(cfg) {
|
|
1205
1204
|
const lines = [
|
|
1206
|
-
"# Generated by @revealui/cli
|
|
1205
|
+
"# Generated by @revealui/cli - fill in the remaining placeholders before running `pnpm dev`",
|
|
1207
1206
|
"",
|
|
1208
1207
|
"# Core",
|
|
1209
1208
|
`REVEALUI_SECRET=${generateSecret()}`,
|
|
@@ -1303,7 +1302,7 @@ async function pullContentRules(projectPath) {
|
|
|
1303
1302
|
signal: AbortSignal.timeout(1e4)
|
|
1304
1303
|
});
|
|
1305
1304
|
if (!manifestRes.ok) {
|
|
1306
|
-
spinner.info("AI rules not available
|
|
1305
|
+
spinner.info("AI rules not available - skipping");
|
|
1307
1306
|
return;
|
|
1308
1307
|
}
|
|
1309
1308
|
const manifest = await manifestRes.json();
|
|
@@ -1342,7 +1341,7 @@ async function pullContentRules(projectPath) {
|
|
|
1342
1341
|
spinner.info("No AI rules pulled");
|
|
1343
1342
|
}
|
|
1344
1343
|
} catch {
|
|
1345
|
-
spinner.info("AI rules not available
|
|
1344
|
+
spinner.info("AI rules not available - skipping");
|
|
1346
1345
|
}
|
|
1347
1346
|
}
|
|
1348
1347
|
async function createProject(cfg) {
|
|
@@ -1385,7 +1384,7 @@ async function createProject(cfg) {
|
|
|
1385
1384
|
const pnpmOk = await isPnpmInstalled();
|
|
1386
1385
|
if (!pnpmOk) {
|
|
1387
1386
|
logger7.warn(
|
|
1388
|
-
"pnpm not found
|
|
1387
|
+
"pnpm not found - skipping dependency installation. Run `pnpm install` manually."
|
|
1389
1388
|
);
|
|
1390
1389
|
} else {
|
|
1391
1390
|
await installDependencies(projectPath);
|
|
@@ -1396,7 +1395,7 @@ async function createProject(cfg) {
|
|
|
1396
1395
|
if (!skipGit) {
|
|
1397
1396
|
const gitOk = await isGitInstalled();
|
|
1398
1397
|
if (!gitOk) {
|
|
1399
|
-
logger7.warn("git not found
|
|
1398
|
+
logger7.warn("git not found - skipping repository initialisation.");
|
|
1400
1399
|
} else {
|
|
1401
1400
|
await initializeGitRepo(projectPath);
|
|
1402
1401
|
await createInitialCommit(projectPath);
|
|
@@ -1446,7 +1445,7 @@ async function checkProLicense() {
|
|
|
1446
1445
|
}
|
|
1447
1446
|
function printBanner() {
|
|
1448
1447
|
logger8.divider();
|
|
1449
|
-
logger8.info(" RevealUI
|
|
1448
|
+
logger8.info(" RevealUI - Agentic Business Runtime");
|
|
1450
1449
|
logger8.info(" Build your business, not your boilerplate.");
|
|
1451
1450
|
logger8.divider();
|
|
1452
1451
|
logger8.info("");
|
|
@@ -1466,9 +1465,9 @@ function printPostCreateSummary(projectName) {
|
|
|
1466
1465
|
logger8.info(` ./${projectName}/README.md \u2014 getting started guide`);
|
|
1467
1466
|
logger8.info("");
|
|
1468
1467
|
logger8.info(" RevealUI ecosystem:");
|
|
1469
|
-
logger8.info(" Studio: Native AI experience
|
|
1470
|
-
logger8.info(" Terminal: TUI client
|
|
1471
|
-
logger8.info("
|
|
1468
|
+
logger8.info(" Studio: Native AI experience - agent hub, local inference, dev environment");
|
|
1469
|
+
logger8.info(" Terminal: TUI client - run `revealui terminal install`");
|
|
1470
|
+
logger8.info(" admin: Admin dashboard at your-domain.com/admin");
|
|
1472
1471
|
logger8.info("");
|
|
1473
1472
|
logger8.info(" Helpful links:");
|
|
1474
1473
|
logger8.info(" Docs: https://docs.revealui.com");
|
|
@@ -1498,9 +1497,9 @@ function formatCreateError(err) {
|
|
|
1498
1497
|
}
|
|
1499
1498
|
logger8.info("");
|
|
1500
1499
|
logger8.info(" Troubleshooting:");
|
|
1501
|
-
logger8.info(" revealui doctor
|
|
1500
|
+
logger8.info(" revealui doctor - diagnose your environment");
|
|
1502
1501
|
logger8.info(" https://docs.revealui.com/docs/TROUBLESHOOTING");
|
|
1503
|
-
logger8.info(" support@revealui.com
|
|
1502
|
+
logger8.info(" support@revealui.com - we are here to help");
|
|
1504
1503
|
logger8.divider();
|
|
1505
1504
|
}
|
|
1506
1505
|
async function runCreateFlow(projectName, options) {
|
|
@@ -1748,7 +1747,11 @@ async function runDbStatusCommand() {
|
|
|
1748
1747
|
const root = getWorkspaceRootOrThrow();
|
|
1749
1748
|
const env = buildDbEnv(root);
|
|
1750
1749
|
const pgdata = getPgDataOrThrow(env);
|
|
1751
|
-
await
|
|
1750
|
+
if (!await commandExists("pg_ctl")) {
|
|
1751
|
+
logger9.warn("pg_ctl is not available in PATH. Install PostgreSQL or enter the Nix devshell.");
|
|
1752
|
+
logger9.info("Run `revealui doctor` for a full environment check.");
|
|
1753
|
+
return;
|
|
1754
|
+
}
|
|
1752
1755
|
try {
|
|
1753
1756
|
await execa5("pg_ctl", ["status", "-D", pgdata], {
|
|
1754
1757
|
env,
|
|
@@ -1880,16 +1883,6 @@ var ENV_VAR_SPECS = [
|
|
|
1880
1883
|
message: "Must be a JWT (starts with eyJ)"
|
|
1881
1884
|
})
|
|
1882
1885
|
},
|
|
1883
|
-
// Services
|
|
1884
|
-
{
|
|
1885
|
-
key: "RESEND_API_KEY",
|
|
1886
|
-
label: "Resend API key",
|
|
1887
|
-
required: false,
|
|
1888
|
-
validate: (v) => ({
|
|
1889
|
-
valid: v.startsWith("re_"),
|
|
1890
|
-
message: "Must start with re_"
|
|
1891
|
-
})
|
|
1892
|
-
},
|
|
1893
1886
|
// npm
|
|
1894
1887
|
{
|
|
1895
1888
|
key: "NPM_TOKEN",
|
|
@@ -1911,8 +1904,8 @@ var ENV_VAR_SPECS = [
|
|
|
1911
1904
|
},
|
|
1912
1905
|
// AI (open-model inference)
|
|
1913
1906
|
{
|
|
1914
|
-
key: "
|
|
1915
|
-
label: "
|
|
1907
|
+
key: "INFERENCE_SNAPS_BASE_URL",
|
|
1908
|
+
label: "Inference snaps base URL",
|
|
1916
1909
|
required: false
|
|
1917
1910
|
},
|
|
1918
1911
|
{
|
|
@@ -2206,8 +2199,8 @@ var DEV_PROFILES = {
|
|
|
2206
2199
|
agent: {
|
|
2207
2200
|
include: ["mcp"]
|
|
2208
2201
|
},
|
|
2209
|
-
|
|
2210
|
-
script: "dev:
|
|
2202
|
+
admin: {
|
|
2203
|
+
script: "dev:admin"
|
|
2211
2204
|
},
|
|
2212
2205
|
fullstack: {
|
|
2213
2206
|
include: ["mcp"],
|
|
@@ -2634,18 +2627,20 @@ async function runTerminalListCommand(options) {
|
|
|
2634
2627
|
}
|
|
2635
2628
|
|
|
2636
2629
|
// src/cli.ts
|
|
2630
|
+
var cliRequire = createRequire(import.meta.url);
|
|
2631
|
+
var CLI_VERSION = cliRequire("../package.json").version;
|
|
2637
2632
|
var logger14 = createLogger14({ prefix: "CLI" });
|
|
2638
|
-
function configureCreateCommand(command
|
|
2633
|
+
function configureCreateCommand(command) {
|
|
2639
2634
|
command.description("Create a new RevealUI project").argument("[project-name]", "Name of the project").option("-t, --template <name>", "Template to use (basic-blog, e-commerce, portfolio)").option("--skip-git", "Skip git initialization", false).option("--skip-install", "Skip dependency installation", false).option("-y, --yes", "Skip all prompts and use defaults", false).action(async (projectName, options) => {
|
|
2640
|
-
logger14.header(
|
|
2635
|
+
logger14.header("RevealUI Create");
|
|
2641
2636
|
await runCreateFlow(projectName, options);
|
|
2642
2637
|
});
|
|
2643
2638
|
return command;
|
|
2644
2639
|
}
|
|
2645
2640
|
function createCli() {
|
|
2646
2641
|
const program = new Command();
|
|
2647
|
-
program.name("revealui").description("RevealUI operational CLI").version(
|
|
2648
|
-
configureCreateCommand(program.command("create")
|
|
2642
|
+
program.name("revealui").description("RevealUI operational CLI").version(CLI_VERSION);
|
|
2643
|
+
configureCreateCommand(program.command("create"));
|
|
2649
2644
|
program.command("doctor").description("Check RevealUI workspace and developer environment health").option("--json", "Output machine-readable JSON", false).option("--fix", "Apply safe automatic fixes when possible", false).option("--strict", "Exit nonzero when checks fail", false).action(async (options) => {
|
|
2650
2645
|
await runDoctorCommand(options);
|
|
2651
2646
|
});
|
|
@@ -2690,7 +2685,7 @@ function createCli() {
|
|
|
2690
2685
|
const dev = program.command("dev").description("Prepare and manage the RevealUI development workspace");
|
|
2691
2686
|
dev.command("up").description(
|
|
2692
2687
|
"Ensure the local dev environment is ready, migrate the DB, optionally validate MCP, and start a dev script"
|
|
2693
|
-
).option("--json", "Output machine-readable JSON", false).option("--dry-run", "Print the effective plan and actions without executing them", false).option("--fix", "Apply safe automatic fixes before bootstrapping when possible", false).option("--no-ensure", "Skip automatic local DB initialization/start").option("--profile <name>", "Named dev profile: local, agent,
|
|
2688
|
+
).option("--json", "Output machine-readable JSON", false).option("--dry-run", "Print the effective plan and actions without executing them", false).option("--fix", "Apply safe automatic fixes before bootstrapping when possible", false).option("--no-ensure", "Skip automatic local DB initialization/start").option("--profile <name>", "Named dev profile: local, agent, admin, fullstack").option(
|
|
2694
2689
|
"--include <service...>",
|
|
2695
2690
|
"Additional development services to prepare (currently supports: mcp)"
|
|
2696
2691
|
).option("--script <name>", "Optional pnpm script to run after environment bootstrap").option("--inside", "Internal flag used after re-entering nix develop", false).action(
|
|
@@ -2698,7 +2693,7 @@ function createCli() {
|
|
|
2698
2693
|
await runDevUpCommand(options);
|
|
2699
2694
|
}
|
|
2700
2695
|
);
|
|
2701
|
-
dev.command("status").description("Show current RevealUI development environment status").option("--json", "Output machine-readable JSON", false).option("--profile <name>", "Named dev profile: local, agent,
|
|
2696
|
+
dev.command("status").description("Show current RevealUI development environment status").option("--json", "Output machine-readable JSON", false).option("--profile <name>", "Named dev profile: local, agent, admin, fullstack").option(
|
|
2702
2697
|
"--include <service...>",
|
|
2703
2698
|
"Additional development services to preview in the effective plan"
|
|
2704
2699
|
).option("--script <name>", "Optional pnpm script to preview in the effective plan").option("--inside", "Internal flag used after re-entering nix develop", false).action(
|
|
@@ -2709,7 +2704,7 @@ function createCli() {
|
|
|
2709
2704
|
dev.command("down").description("Stop local RevealUI development services that are managed by the CLI").action(async () => {
|
|
2710
2705
|
await runDevDownCommand();
|
|
2711
2706
|
});
|
|
2712
|
-
dev.command("shell").description("Alias for `revealui dev up` without starting an app script").option("--json", "Output machine-readable JSON", false).option("--dry-run", "Print the effective plan and actions without executing them", false).option("--fix", "Apply safe automatic fixes before bootstrapping when possible", false).option("--no-ensure", "Skip automatic local DB initialization/start").option("--profile <name>", "Named dev profile: local, agent,
|
|
2707
|
+
dev.command("shell").description("Alias for `revealui dev up` without starting an app script").option("--json", "Output machine-readable JSON", false).option("--dry-run", "Print the effective plan and actions without executing them", false).option("--fix", "Apply safe automatic fixes before bootstrapping when possible", false).option("--no-ensure", "Skip automatic local DB initialization/start").option("--profile <name>", "Named dev profile: local, agent, admin, fullstack").option(
|
|
2713
2708
|
"--include <service...>",
|
|
2714
2709
|
"Additional development services to prepare (currently supports: mcp)"
|
|
2715
2710
|
).option("--inside", "Internal flag used after re-entering nix develop", false).action(
|
|
@@ -2726,7 +2721,7 @@ function createCli() {
|
|
|
2726
2721
|
}
|
|
2727
2722
|
);
|
|
2728
2723
|
const devProfile = dev.command("profile").description("Persist or inspect the default dev profile");
|
|
2729
|
-
devProfile.command("set").description("Set the default profile used by `revealui dev up` and `revealui dev status`").argument("<name>", "Profile name: local, agent,
|
|
2724
|
+
devProfile.command("set").description("Set the default profile used by `revealui dev up` and `revealui dev status`").argument("<name>", "Profile name: local, agent, admin, fullstack").action(async (name) => {
|
|
2730
2725
|
await runDevProfileSetCommand(name);
|
|
2731
2726
|
});
|
|
2732
2727
|
devProfile.command("show").description("Show the configured default dev profile").option("--json", "Output machine-readable JSON", false).action(async (options) => {
|
|
@@ -2764,4 +2759,3 @@ if (import.meta.url === `file://${process.argv[1]}`) {
|
|
|
2764
2759
|
const cli = createCli();
|
|
2765
2760
|
cli.parse(process.argv);
|
|
2766
2761
|
}
|
|
2767
|
-
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@revealui/cli",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.4",
|
|
4
4
|
"description": "Create RevealUI projects with a single command",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli",
|
|
7
|
-
"
|
|
7
|
+
"admin",
|
|
8
8
|
"create",
|
|
9
9
|
"revealui",
|
|
10
10
|
"scaffolding"
|
|
@@ -21,16 +21,16 @@
|
|
|
21
21
|
"revealui": "./bin/revealui.js"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
+
"@clack/prompts": "^1.2.0",
|
|
24
25
|
"commander": "^14.0.3",
|
|
25
|
-
"execa": "^9.
|
|
26
|
-
"
|
|
27
|
-
"jose": "^6.1.3",
|
|
26
|
+
"execa": "^9.6.1",
|
|
27
|
+
"jose": "^6.2.2",
|
|
28
28
|
"ora": "^9.3.0",
|
|
29
|
-
"@revealui/config": "0.3.
|
|
30
|
-
"@revealui/setup": "0.3.
|
|
29
|
+
"@revealui/config": "0.3.4",
|
|
30
|
+
"@revealui/setup": "0.3.5"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
|
-
"@revealui/ai": "^0.2.
|
|
33
|
+
"@revealui/ai": "^0.2.9"
|
|
34
34
|
},
|
|
35
35
|
"peerDependenciesMeta": {
|
|
36
36
|
"@revealui/ai": {
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
}
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@types/node": "^25.5.
|
|
42
|
-
"tsup": "^8.
|
|
41
|
+
"@types/node": "^25.5.2",
|
|
42
|
+
"tsup": "^8.5.1",
|
|
43
43
|
"typescript": "^6.0.2"
|
|
44
44
|
},
|
|
45
45
|
"engines": {
|
|
@@ -61,12 +61,16 @@
|
|
|
61
61
|
"registry": "https://registry.npmjs.org"
|
|
62
62
|
},
|
|
63
63
|
"type": "module",
|
|
64
|
+
"homepage": "https://revealui.com",
|
|
65
|
+
"bugs": {
|
|
66
|
+
"url": "https://github.com/RevealUIStudio/revealui/issues"
|
|
67
|
+
},
|
|
64
68
|
"scripts": {
|
|
65
69
|
"build": "tsup",
|
|
66
70
|
"dev": "tsup --watch",
|
|
67
71
|
"lint": "biome check .",
|
|
68
|
-
"test": "vitest run
|
|
69
|
-
"test:coverage": "vitest run --coverage --coverage.reporter=json-summary --coverage.reporter=html --coverage.reporter=text
|
|
72
|
+
"test": "vitest run",
|
|
73
|
+
"test:coverage": "vitest run --coverage --coverage.reporter=json-summary --coverage.reporter=html --coverage.reporter=text",
|
|
70
74
|
"typecheck": "tsc --noEmit"
|
|
71
75
|
}
|
|
72
76
|
}
|
|
@@ -36,7 +36,7 @@ export default function HomePage() {
|
|
|
36
36
|
<h2 className="text-sm font-semibold uppercase tracking-wide text-gray-500">Quick start</h2>
|
|
37
37
|
<ol className="mt-3 space-y-2 text-sm text-gray-700">
|
|
38
38
|
<li>
|
|
39
|
-
<code className="rounded bg-gray-200 px-1.5 py-0.5 text-xs">pnpm db:seed</code>
|
|
39
|
+
<code className="rounded bg-gray-200 px-1.5 py-0.5 text-xs">pnpm db:seed</code> - add
|
|
40
40
|
sample blog posts
|
|
41
41
|
</li>
|
|
42
42
|
<li>
|
|
@@ -44,11 +44,11 @@ export default function HomePage() {
|
|
|
44
44
|
<a href="/admin" className="text-accent hover:text-accent-hover">
|
|
45
45
|
/admin
|
|
46
46
|
</a>{' '}
|
|
47
|
-
|
|
47
|
+
- manage your content
|
|
48
48
|
</li>
|
|
49
49
|
<li>
|
|
50
50
|
Edit <code className="rounded bg-gray-200 px-1.5 py-0.5 text-xs">src/app/page.tsx</code>{' '}
|
|
51
|
-
|
|
51
|
+
- customize this page
|
|
52
52
|
</li>
|
|
53
53
|
</ol>
|
|
54
54
|
</div>
|
|
@@ -61,7 +61,7 @@ export default function HomePage() {
|
|
|
61
61
|
<h2 className="text-sm font-semibold uppercase tracking-wide text-gray-500">Quick start</h2>
|
|
62
62
|
<ol className="mt-3 space-y-2 text-sm text-gray-700">
|
|
63
63
|
<li>
|
|
64
|
-
<code className="rounded bg-gray-200 px-1.5 py-0.5 text-xs">pnpm db:seed</code>
|
|
64
|
+
<code className="rounded bg-gray-200 px-1.5 py-0.5 text-xs">pnpm db:seed</code> - add
|
|
65
65
|
sample products
|
|
66
66
|
</li>
|
|
67
67
|
<li>
|
|
@@ -73,7 +73,7 @@ export default function HomePage() {
|
|
|
73
73
|
<a href="/admin" className="text-accent hover:text-accent-hover">
|
|
74
74
|
/admin
|
|
75
75
|
</a>{' '}
|
|
76
|
-
|
|
76
|
+
- manage products and orders
|
|
77
77
|
</li>
|
|
78
78
|
</ol>
|
|
79
79
|
</div>
|
|
@@ -17,7 +17,7 @@ export default function HomePage() {
|
|
|
17
17
|
>
|
|
18
18
|
RevealUI
|
|
19
19
|
</a>{' '}
|
|
20
|
-
|
|
20
|
+
- edit your projects from the admin panel, no code changes needed.
|
|
21
21
|
</p>
|
|
22
22
|
|
|
23
23
|
<div className="mt-8 flex gap-3">
|
|
@@ -43,7 +43,7 @@ export default function HomePage() {
|
|
|
43
43
|
above with your name
|
|
44
44
|
</li>
|
|
45
45
|
<li>
|
|
46
|
-
<code className="rounded bg-gray-200 px-1.5 py-0.5 text-xs">pnpm db:seed</code>
|
|
46
|
+
<code className="rounded bg-gray-200 px-1.5 py-0.5 text-xs">pnpm db:seed</code> - add
|
|
47
47
|
sample projects
|
|
48
48
|
</li>
|
|
49
49
|
<li>
|
|
@@ -51,7 +51,7 @@ export default function HomePage() {
|
|
|
51
51
|
<a href="/admin" className="text-accent hover:text-accent-hover">
|
|
52
52
|
/admin
|
|
53
53
|
</a>{' '}
|
|
54
|
-
|
|
54
|
+
- add your own projects, links, and tags
|
|
55
55
|
</li>
|
|
56
56
|
</ol>
|
|
57
57
|
</div>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Run with: pnpm db:seed
|
|
5
5
|
*
|
|
6
6
|
* Customize this file to populate your database with initial data.
|
|
7
|
-
* The examples below show common patterns
|
|
7
|
+
* The examples below show common patterns - uncomment and adapt as needed.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
// import { getClient } from '@revealui/db/client';
|