create-rezi 0.1.0-alpha.9 → 0.1.0-beta.1

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.
Files changed (84) hide show
  1. package/README.md +45 -12
  2. package/dist/index.d.ts +11 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +93 -22
  5. package/dist/index.js.map +1 -1
  6. package/dist/mainEntry.d.ts +2 -0
  7. package/dist/mainEntry.d.ts.map +1 -0
  8. package/dist/mainEntry.js +20 -0
  9. package/dist/mainEntry.js.map +1 -0
  10. package/dist/scaffold.d.ts +4 -1
  11. package/dist/scaffold.d.ts.map +1 -1
  12. package/dist/scaffold.js +51 -39
  13. package/dist/scaffold.js.map +1 -1
  14. package/package.json +14 -7
  15. package/templates/cli-tool/README.md +70 -0
  16. package/templates/cli-tool/gitignore +2 -0
  17. package/templates/{dashboard → cli-tool}/package.json +6 -4
  18. package/templates/cli-tool/src/__tests__/keybindings.test.ts +12 -0
  19. package/templates/cli-tool/src/__tests__/reducer.test.ts +25 -0
  20. package/templates/cli-tool/src/__tests__/render.test.ts +13 -0
  21. package/templates/cli-tool/src/helpers/keybindings.ts +28 -0
  22. package/templates/cli-tool/src/helpers/logs.ts +51 -0
  23. package/templates/cli-tool/src/helpers/state.ts +99 -0
  24. package/templates/cli-tool/src/main.ts +175 -0
  25. package/templates/cli-tool/src/screens/home.ts +62 -0
  26. package/templates/cli-tool/src/screens/index.ts +45 -0
  27. package/templates/cli-tool/src/screens/logs.ts +79 -0
  28. package/templates/cli-tool/src/screens/settings.ts +88 -0
  29. package/templates/cli-tool/src/screens/shell.ts +103 -0
  30. package/templates/cli-tool/src/theme.ts +61 -0
  31. package/templates/cli-tool/src/types.ts +31 -0
  32. package/templates/minimal/README.md +56 -0
  33. package/templates/minimal/gitignore +2 -0
  34. package/templates/{form-app → minimal}/package.json +6 -4
  35. package/templates/minimal/src/__tests__/keybindings.test.ts +13 -0
  36. package/templates/minimal/src/__tests__/reducer.test.ts +20 -0
  37. package/templates/minimal/src/__tests__/render.test.ts +24 -0
  38. package/templates/minimal/src/helpers/keybindings.ts +24 -0
  39. package/templates/minimal/src/helpers/state.ts +20 -0
  40. package/templates/minimal/src/main.ts +150 -0
  41. package/templates/minimal/src/screens/main-screen.ts +110 -0
  42. package/templates/minimal/src/theme.ts +49 -0
  43. package/templates/minimal/src/types.ts +15 -0
  44. package/templates/starship/README.md +117 -0
  45. package/templates/starship/gitignore +2 -0
  46. package/templates/{file-browser → starship}/package.json +7 -5
  47. package/templates/starship/src/__tests__/keybindings.test.ts +39 -0
  48. package/templates/starship/src/__tests__/reducer.test.ts +113 -0
  49. package/templates/starship/src/__tests__/render.test.ts +159 -0
  50. package/templates/starship/src/helpers/debug.ts +22 -0
  51. package/templates/starship/src/helpers/formatters.ts +109 -0
  52. package/templates/starship/src/helpers/keybindings.ts +132 -0
  53. package/templates/starship/src/helpers/layout.ts +65 -0
  54. package/templates/starship/src/helpers/simulation.ts +269 -0
  55. package/templates/starship/src/helpers/state.ts +767 -0
  56. package/templates/starship/src/main.ts +761 -0
  57. package/templates/starship/src/screens/bridge.ts +561 -0
  58. package/templates/starship/src/screens/cargo.ts +389 -0
  59. package/templates/starship/src/screens/comms.ts +473 -0
  60. package/templates/starship/src/screens/crew.ts +566 -0
  61. package/templates/starship/src/screens/engineering.ts +549 -0
  62. package/templates/starship/src/screens/index.ts +36 -0
  63. package/templates/starship/src/screens/primitives.ts +172 -0
  64. package/templates/starship/src/screens/settings.ts +289 -0
  65. package/templates/starship/src/screens/shell.ts +696 -0
  66. package/templates/starship/src/theme.ts +448 -0
  67. package/templates/starship/src/types.ts +203 -0
  68. package/templates/{form-app → starship}/tsconfig.json +1 -0
  69. package/dist/__tests__/scaffold.test.d.ts +0 -2
  70. package/dist/__tests__/scaffold.test.d.ts.map +0 -1
  71. package/dist/__tests__/scaffold.test.js +0 -29
  72. package/dist/__tests__/scaffold.test.js.map +0 -1
  73. package/templates/dashboard/README.md +0 -18
  74. package/templates/dashboard/src/main.ts +0 -259
  75. package/templates/file-browser/README.md +0 -18
  76. package/templates/file-browser/src/main.ts +0 -258
  77. package/templates/form-app/README.md +0 -18
  78. package/templates/form-app/src/main.ts +0 -222
  79. package/templates/streaming-viewer/README.md +0 -17
  80. package/templates/streaming-viewer/package.json +0 -23
  81. package/templates/streaming-viewer/src/main.ts +0 -176
  82. package/templates/streaming-viewer/tsconfig.json +0 -14
  83. /package/templates/{dashboard → cli-tool}/tsconfig.json +0 -0
  84. /package/templates/{file-browser → minimal}/tsconfig.json +0 -0
package/README.md CHANGED
@@ -1,30 +1,63 @@
1
1
  # create-rezi
2
2
 
3
- Scaffold a new Rezi terminal UI app.
3
+ Scaffold a Rezi terminal UI app.
4
4
 
5
5
  ## Usage
6
6
 
7
7
  ```bash
8
8
  npm create rezi my-app
9
9
  cd my-app
10
- npm start
10
+ npm run start
11
+
12
+ # Bun
13
+ bun create rezi my-app
14
+ cd my-app
15
+ bun run start
11
16
  ```
12
17
 
13
18
  ## Templates
14
19
 
15
- Choose a template interactively, or pass `--template`.
20
+ Available templates:
21
+
22
+ - `minimal` - Single-screen utility starter for focused tools
23
+ - Aliases: `mini`, `basic`, `utility`
24
+ - `cli-tool` - Multi-screen CLI starter with route-based screens
25
+ - Aliases: `cli`, `tool`, `multiscreen`
26
+ - `starship` - Advanced console template with routed decks, charts, forms, and overlays
27
+ - Aliases: `ship`, `bridge`, `command`
28
+
29
+ ```bash
30
+ npm create rezi my-app -- --template minimal
31
+ npm create rezi my-app -- --template cli-tool
32
+ npm create rezi my-app -- --template starship
33
+ ```
34
+
35
+ List templates and highlights from the CLI:
16
36
 
17
37
  ```bash
18
- npm create rezi my-app -- --template dashboard
19
- npm create rezi my-app -- --template form-app
20
- npm create rezi my-app -- --template file-browser
21
- npm create rezi my-app -- --template streaming-viewer
38
+ npm create rezi -- --list-templates
22
39
  ```
23
40
 
24
41
  ## Options
25
42
 
26
- - `--template <name>`: Choose a template.
27
- - `--no-install`: Skip dependency installation.
28
- - `--pm <npm|pnpm|yarn|bun>`: Choose a package manager.
29
- - `--list-templates`: Print available templates.
30
- - `--help`: Show help.
43
+ - `--template, -t <name>`: Select a template (`minimal`, `cli-tool`, `starship`, plus aliases).
44
+ - `--no-install, --skip-install`: Skip dependency installation.
45
+ - `--pm, --package-manager <npm|pnpm|yarn|bun>`: Choose a package manager.
46
+ - `--list-templates, --templates`: Print available templates and highlights.
47
+ - `--help, -h`: Show help.
48
+
49
+ ## Template Conventions
50
+
51
+ Scaffolded templates now follow the same baseline structure:
52
+
53
+ - `src/types.ts`
54
+ - `src/theme.ts`
55
+ - `src/helpers/`
56
+ - `src/screens/`
57
+ - `src/main.ts`
58
+ - `src/__tests__/`
59
+
60
+ Template theming convention:
61
+
62
+ - `src/theme.ts` is the canonical source for theme catalogs and style helpers.
63
+ - Screens should derive visual styling from active theme tokens instead of hardcoded RGB/hex literals.
package/dist/index.d.ts CHANGED
@@ -1,3 +1,14 @@
1
1
  #!/usr/bin/env node
2
+ type PackageManager = "npm" | "pnpm" | "yarn" | "bun";
3
+ export declare function createInstallEnv(parentEnv?: Readonly<Record<string, string | undefined>>): NodeJS.ProcessEnv;
4
+ export declare function resolveInstallCwd(targetDir: string, baseDir?: string): string;
5
+ export declare function resolveInstallInvocation(packageManager: PackageManager, { env, platform, nodeExecPath, }?: {
6
+ env?: Readonly<Record<string, string | undefined>>;
7
+ platform?: NodeJS.Platform;
8
+ nodeExecPath?: string;
9
+ }): {
10
+ command: string;
11
+ args: string[];
12
+ };
2
13
  export {};
3
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAgBA,KAAK,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAgJtD,wBAAgB,gBAAgB,CAC9B,SAAS,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAe,GACpE,MAAM,CAAC,UAAU,CAQnB;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,MAAc,GAAG,MAAM,CAEpF;AAED,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,cAAc,EAC9B,EACE,GAAiB,EACjB,QAA2B,EAC3B,YAA+B,GAChC,GAAE;IACD,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;CAClB,GACL;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAarC"}
package/dist/index.js CHANGED
@@ -1,10 +1,20 @@
1
1
  #!/usr/bin/env node
2
- import { spawnSync } from "node:child_process";
3
- import { relative, resolve } from "node:path";
2
+ import { relative, resolve, win32 } from "node:path";
4
3
  import { cwd, exit, stdin, stdout } from "node:process";
5
4
  import { createInterface } from "node:readline/promises";
6
- import { fileURLToPath } from "node:url";
5
+ import * as crossSpawn from "cross-spawn";
6
+ import { isMainModuleEntry } from "./mainEntry.js";
7
7
  import { TEMPLATE_DEFINITIONS, createProject, isValidPackageName, normalizeTemplateName, resolveTargetName, toDisplayName, toValidPackageName, } from "./scaffold.js";
8
+ const INSTALL_ENV_EXACT_BLOCKLIST = new Set([
9
+ "init_cwd",
10
+ "npm_command",
11
+ "npm_config_argv",
12
+ "npm_config_local_prefix",
13
+ "npm_config_prefix",
14
+ "npm_execpath",
15
+ "npm_node_execpath",
16
+ "npm_prefix",
17
+ ]);
8
18
  function parseArgs(argv) {
9
19
  const options = {
10
20
  install: true,
@@ -63,18 +73,24 @@ function parseArgs(argv) {
63
73
  function printHelp() {
64
74
  stdout.write("create-rezi\n\n");
65
75
  stdout.write("Usage:\n");
66
- stdout.write(" npm create rezi my-app\n\n");
76
+ stdout.write(" npm create rezi my-app\n");
77
+ stdout.write(" bun create rezi my-app\n\n");
67
78
  stdout.write("Options:\n");
68
- stdout.write(" --template, -t <name> Choose a template\n");
69
- stdout.write(" --no-install Skip dependency install\n");
79
+ stdout.write(" --template, -t <name> minimal | cli-tool | starship\n");
80
+ stdout.write(" --no-install Skip dependency install\n");
70
81
  stdout.write(" --pm <npm|pnpm|yarn|bun> Choose a package manager\n");
71
- stdout.write(" --list-templates Show available templates\n");
72
- stdout.write(" --help, -h Show this help\n");
82
+ stdout.write(" --list-templates Show templates and highlights\n");
83
+ stdout.write(" --help, -h Show this help\n");
73
84
  }
74
85
  function printTemplates() {
75
- stdout.write("Available templates:\n");
86
+ stdout.write("Available templates (--template <name>):\n");
76
87
  TEMPLATE_DEFINITIONS.forEach((template, index) => {
77
- stdout.write(` ${index + 1}. ${template.key.padEnd(16)} ${template.label} - ${template.description}\n`);
88
+ const defaultSuffix = index === 0 ? " (default)" : "";
89
+ const highlights = template.highlights.join(" | ");
90
+ stdout.write(` ${index + 1}. ${template.key.padEnd(16)} ${template.label}${defaultSuffix}\n`);
91
+ stdout.write(` ${template.description}\n`);
92
+ stdout.write(` Safety: ${template.safetyTag} — ${template.safetyNote}\n`);
93
+ stdout.write(` Highlights: ${highlights}\n`);
78
94
  });
79
95
  }
80
96
  function detectPackageManager() {
@@ -100,47 +116,100 @@ function resolvePackageManager(value) {
100
116
  }
101
117
  throw new Error(`Unsupported package manager: ${value}`);
102
118
  }
119
+ function shouldStripInstallEnvKey(key) {
120
+ const normalized = key.toLowerCase();
121
+ return (INSTALL_ENV_EXACT_BLOCKLIST.has(normalized) ||
122
+ normalized.startsWith("npm_lifecycle_") ||
123
+ normalized.startsWith("npm_package_"));
124
+ }
125
+ function isNpmExecPath(execPath) {
126
+ const normalized = execPath.replaceAll("\\", "/").toLowerCase();
127
+ return (normalized.endsWith("/npm-cli.js") ||
128
+ normalized.endsWith("/npm-cli.mjs") ||
129
+ /(^|\/)npm(\.cmd|\.exe)?$/.test(normalized));
130
+ }
131
+ export function createInstallEnv(parentEnv = process.env) {
132
+ const childEnv = { ...parentEnv };
133
+ for (const key of Object.keys(childEnv)) {
134
+ if (shouldStripInstallEnvKey(key)) {
135
+ delete childEnv[key];
136
+ }
137
+ }
138
+ return childEnv;
139
+ }
140
+ export function resolveInstallCwd(targetDir, baseDir = cwd()) {
141
+ return resolve(baseDir, targetDir);
142
+ }
143
+ export function resolveInstallInvocation(packageManager, { env = process.env, platform = process.platform, nodeExecPath = process.execPath, } = {}) {
144
+ if (packageManager === "npm") {
145
+ // biome-ignore lint/complexity/useLiteralKeys: process.env-compatible maps use index signatures in TS.
146
+ const npmExecPath = env["npm_execpath"];
147
+ if (npmExecPath && isNpmExecPath(npmExecPath)) {
148
+ return { command: nodeExecPath, args: [npmExecPath, "install"] };
149
+ }
150
+ if (platform === "win32") {
151
+ return { command: win32.join(win32.dirname(nodeExecPath), "npm.cmd"), args: ["install"] };
152
+ }
153
+ }
154
+ return { command: packageManager, args: ["install"] };
155
+ }
103
156
  async function promptText(rl, prompt, fallback) {
104
157
  const answer = await rl.question(`${prompt} (${fallback}): `);
105
158
  return answer.trim() || fallback;
106
159
  }
107
160
  async function promptTemplate(rl) {
108
- stdout.write("\nSelect a template:\n");
161
+ stdout.write("\nSelect a template (name or number):\n");
109
162
  TEMPLATE_DEFINITIONS.forEach((template, index) => {
110
- stdout.write(` ${index + 1}. ${template.label} - ${template.description}\n`);
163
+ const defaultSuffix = index === 0 ? " (default)" : "";
164
+ stdout.write(` ${index + 1}. ${template.key.padEnd(16)} ${template.label}${defaultSuffix}\n`);
165
+ stdout.write(` ${template.description}\n`);
166
+ stdout.write(` Safety: ${template.safetyTag} — ${template.safetyNote}\n`);
167
+ stdout.write(` Highlights: ${template.highlights.join(" | ")}\n`);
111
168
  });
112
- const answer = await rl.question("Template (1-4, default 1): ");
169
+ const answer = await rl.question(`Template (1-${TEMPLATE_DEFINITIONS.length}, default 1): `);
113
170
  const trimmed = answer.trim();
114
- if (!trimmed)
115
- return "dashboard";
171
+ if (!trimmed) {
172
+ return TEMPLATE_DEFINITIONS[0]?.key ?? "minimal";
173
+ }
116
174
  const asNumber = Number(trimmed);
117
175
  if (!Number.isNaN(asNumber) && asNumber >= 1 && asNumber <= TEMPLATE_DEFINITIONS.length) {
118
- return TEMPLATE_DEFINITIONS[asNumber - 1]?.key ?? "dashboard";
176
+ return TEMPLATE_DEFINITIONS[asNumber - 1]?.key ?? TEMPLATE_DEFINITIONS[0]?.key ?? "minimal";
119
177
  }
120
178
  return trimmed;
121
179
  }
122
180
  function runInstall(pm, targetDir) {
123
- const res = spawnSync(pm, ["install"], {
124
- cwd: targetDir,
181
+ const installCwd = resolveInstallCwd(targetDir);
182
+ const installInvocation = resolveInstallInvocation(pm);
183
+ const res = crossSpawn.sync(installInvocation.command, installInvocation.args, {
184
+ cwd: installCwd,
125
185
  stdio: "inherit",
186
+ env: createInstallEnv(),
126
187
  });
188
+ if (res.error) {
189
+ throw res.error;
190
+ }
127
191
  if (res.status !== 0) {
128
192
  throw new Error(`${pm} install failed`);
129
193
  }
130
194
  }
131
195
  function printNextSteps(targetDir, packageManager, installRan) {
196
+ const installCommand = `${packageManager} install`;
197
+ const startCommand = packageManager === "npm" || packageManager === "bun"
198
+ ? `${packageManager} run start`
199
+ : `${packageManager} start`;
132
200
  const rel = relative(cwd(), resolve(targetDir)) || ".";
133
201
  stdout.write("\nNext steps:\n");
134
202
  if (rel !== ".") {
135
203
  stdout.write(` cd ${rel}\n`);
136
204
  }
137
205
  if (!installRan) {
138
- stdout.write(` ${packageManager} install\n`);
206
+ stdout.write(` ${installCommand}\n`);
139
207
  }
140
- stdout.write(` ${packageManager} start\n`);
208
+ stdout.write(` ${startCommand}\n`);
141
209
  }
142
210
  async function main() {
143
211
  const options = parseArgs(process.argv.slice(2));
212
+ const isInteractive = Boolean(stdin.isTTY && stdout.isTTY);
144
213
  if (options.help) {
145
214
  printHelp();
146
215
  return;
@@ -155,8 +224,10 @@ async function main() {
155
224
  const templateInput = options.template || (await promptTemplate(rl));
156
225
  const templateKey = normalizeTemplateName(templateInput);
157
226
  if (!templateKey) {
227
+ const allowed = TEMPLATE_DEFINITIONS.map((template) => template.key).join(", ");
158
228
  stdout.write(`\nUnknown template: ${templateInput}\n`);
159
- printTemplates();
229
+ stdout.write(`Use one of: ${allowed}\n`);
230
+ stdout.write("Run with --list-templates to see highlights.\n");
160
231
  throw new Error("Invalid template");
161
232
  }
162
233
  const rawName = resolveTargetName(targetDir);
@@ -183,7 +254,7 @@ async function main() {
183
254
  rl.close();
184
255
  }
185
256
  }
186
- const isMain = process.argv[1] && fileURLToPath(import.meta.url) === resolve(process.argv[1]);
257
+ const isMain = isMainModuleEntry(process.argv[1], import.meta.url);
187
258
  if (isMain) {
188
259
  main().catch((err) => {
189
260
  stdout.write(`\ncreate-rezi error: ${err instanceof Error ? err.message : String(err)}\n`);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function isMainModuleEntry(argvPath: string | undefined, moduleUrl: string): boolean;
2
+ //# sourceMappingURL=mainEntry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mainEntry.d.ts","sourceRoot":"","sources":["../src/mainEntry.ts"],"names":[],"mappings":"AAYA,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAO1F"}
@@ -0,0 +1,20 @@
1
+ import { realpathSync } from "node:fs";
2
+ import { resolve } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ function resolveCanonicalPath(pathValue) {
5
+ try {
6
+ return realpathSync(pathValue);
7
+ }
8
+ catch {
9
+ return pathValue;
10
+ }
11
+ }
12
+ export function isMainModuleEntry(argvPath, moduleUrl) {
13
+ if (!argvPath) {
14
+ return false;
15
+ }
16
+ const modulePath = resolveCanonicalPath(fileURLToPath(moduleUrl));
17
+ const entryPath = resolveCanonicalPath(resolve(argvPath));
18
+ return modulePath === entryPath;
19
+ }
20
+ //# sourceMappingURL=mainEntry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mainEntry.js","sourceRoot":"","sources":["../src/mainEntry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,SAAS,oBAAoB,CAAC,SAAiB;IAC7C,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAA4B,EAAE,SAAiB;IAC/E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,UAAU,GAAG,oBAAoB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1D,OAAO,UAAU,KAAK,SAAS,CAAC;AAClC,CAAC"}
@@ -1,8 +1,11 @@
1
- export type TemplateKey = "dashboard" | "form-app" | "file-browser" | "streaming-viewer";
1
+ export type TemplateKey = "minimal" | "cli-tool" | "starship";
2
2
  export type TemplateDefinition = {
3
3
  key: TemplateKey;
4
4
  label: string;
5
5
  description: string;
6
+ safetyTag: string;
7
+ safetyNote: string;
8
+ highlights: readonly string[];
6
9
  dir: string;
7
10
  };
8
11
  export declare const TEMPLATE_DEFINITIONS: readonly TemplateDefinition[];
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,cAAc,GAAG,kBAAkB,CAAC;AAEzF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,EAAE,WAAW,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,SAAS,kBAAkB,EAyBpD,CAAC;AAMX,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAyBvE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMnD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAWvD;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAI3D;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB/D;AA+BD,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAyB/F"}
1
+ {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,EAAE,WAAW,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,SAAS,kBAAkB,EAuCpD,CAAC;AAwBX,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAQvE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMnD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAWvD;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAI3D;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB/D;AAgCD,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAyB/F"}
package/dist/scaffold.js CHANGED
@@ -3,57 +3,68 @@ import { basename, join, resolve } from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
4
  export const TEMPLATE_DEFINITIONS = [
5
5
  {
6
- key: "dashboard",
7
- label: "Dashboard",
8
- description: "Multi-panel ops dashboard with status list",
9
- dir: "dashboard",
6
+ key: "minimal",
7
+ label: "Minimal Utility TUI",
8
+ description: "Small single-screen starter for focused terminal utilities",
9
+ safetyTag: "safe-default",
10
+ safetyNote: "Small-footprint template for quick utility workflows.",
11
+ highlights: [
12
+ "single-screen state flow with keybindings, theme cycling, and inline error handling",
13
+ "lean multi-file structure plus reducer/render/keybinding test examples",
14
+ ],
15
+ dir: "minimal",
10
16
  },
11
17
  {
12
- key: "form-app",
13
- label: "Form app",
14
- description: "Data entry flow with preview panel",
15
- dir: "form-app",
18
+ key: "cli-tool",
19
+ label: "Multi-Screen CLI Tool",
20
+ description: "Routed starter for product-style terminal tools",
21
+ safetyTag: "safe-default",
22
+ safetyNote: "Lightweight template focused on product workflows and routing.",
23
+ highlights: [
24
+ "home/logs/settings screens with router history and focus restoration",
25
+ "global route keybindings plus breadcrumb and tabs helpers wired to router state",
26
+ ],
27
+ dir: "cli-tool",
16
28
  },
17
29
  {
18
- key: "file-browser",
19
- label: "File browser",
20
- description: "Split view with directory list + preview",
21
- dir: "file-browser",
22
- },
23
- {
24
- key: "streaming-viewer",
25
- label: "Streaming viewer",
26
- description: "Live stream list with chat + metrics",
27
- dir: "streaming-viewer",
30
+ key: "starship",
31
+ label: "Starship Command Console",
32
+ description: "Larger command-console showcase for routing, animation, charts, forms, and overlays",
33
+ safetyTag: "safe-default",
34
+ safetyNote: "Feature-rich showcase template with moderate CPU usage from animation hooks and live telemetry.",
35
+ highlights: [
36
+ "six-screen command console with routing, animated gauges, live telemetry charts, and crew management",
37
+ "command palette, modal dialogs, toast notifications, forms, split panes, canvas, and theme cycling with keybinding modes",
38
+ ],
39
+ dir: "starship",
28
40
  },
29
41
  ];
42
+ const TEMPLATE_FILENAME_ALIASES = new Map([
43
+ ["gitignore", ".gitignore"],
44
+ ["npmignore", ".npmignore"],
45
+ ]);
30
46
  const TEMPLATE_BY_KEY = new Map(TEMPLATE_DEFINITIONS.map((template) => [template.key, template]));
47
+ const TEMPLATE_ALIASES = new Map(TEMPLATE_DEFINITIONS.map((template) => [template.key, template.key]));
48
+ TEMPLATE_ALIASES.set("cli", "cli-tool");
49
+ TEMPLATE_ALIASES.set("tool", "cli-tool");
50
+ TEMPLATE_ALIASES.set("multiscreen", "cli-tool");
51
+ TEMPLATE_ALIASES.set("mini", "minimal");
52
+ TEMPLATE_ALIASES.set("basic", "minimal");
53
+ TEMPLATE_ALIASES.set("utility", "minimal");
54
+ TEMPLATE_ALIASES.set("ship", "starship");
55
+ TEMPLATE_ALIASES.set("bridge", "starship");
56
+ TEMPLATE_ALIASES.set("command", "starship");
31
57
  const PACKAGE_NAME_RE = /^(?:@[a-z0-9-~][a-z0-9-._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/;
32
58
  export function normalizeTemplateName(value) {
33
59
  const cleaned = value.trim().toLowerCase();
34
60
  if (!cleaned)
35
61
  return null;
36
62
  const slug = cleaned.replace(/[\s_]+/g, "-");
37
- switch (slug) {
38
- case "dashboard":
39
- return "dashboard";
40
- case "form":
41
- case "form-app":
42
- case "formapp":
43
- return "form-app";
44
- case "file":
45
- case "files":
46
- case "file-browser":
47
- case "filebrowser":
48
- return "file-browser";
49
- case "stream":
50
- case "streaming":
51
- case "streaming-viewer":
52
- case "streamingviewer":
53
- return "streaming-viewer";
54
- default:
55
- return TEMPLATE_BY_KEY.has(slug) ? slug : null;
56
- }
63
+ const normalized = TEMPLATE_ALIASES.get(slug);
64
+ if (normalized)
65
+ return normalized;
66
+ const compact = slug.replace(/-/g, "");
67
+ return TEMPLATE_ALIASES.get(compact) ?? null;
57
68
  }
58
69
  export function toDisplayName(value) {
59
70
  const name = value.trim();
@@ -120,7 +131,8 @@ async function copyTemplateDir(sourceDir, targetDir, vars) {
120
131
  const entries = await readdir(sourceDir, { withFileTypes: true });
121
132
  for (const entry of entries) {
122
133
  const srcPath = join(sourceDir, entry.name);
123
- const destPath = join(targetDir, entry.name);
134
+ const destName = TEMPLATE_FILENAME_ALIASES.get(entry.name) ?? entry.name;
135
+ const destPath = join(targetDir, destName);
124
136
  if (entry.isDirectory()) {
125
137
  await copyTemplateDir(srcPath, destPath, vars);
126
138
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "create-rezi",
3
- "version": "0.1.0-alpha.9",
4
- "description": "Scaffold a Rezi terminal UI app.",
3
+ "version": "0.1.0-beta.1",
4
+ "description": "Scaffold a Rezi terminal application from focused starter and showcase templates.",
5
5
  "license": "Apache-2.0",
6
- "homepage": "https://rtlzeromemory.github.io/Rezi/",
6
+ "homepage": "https://rezitui.dev",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "git+https://github.com/RtlZeroMemory/Rezi.git",
9
+ "url": "https://github.com/RtlZeroMemory/Rezi",
10
10
  "directory": "packages/create-rezi"
11
11
  },
12
12
  "bugs": {
@@ -19,12 +19,19 @@
19
19
  "files": [
20
20
  "dist/",
21
21
  "templates/",
22
- "README.md"
22
+ "README.md",
23
+ "!dist/**/__tests__/**",
24
+ "!dist/**/__e2e__/**"
23
25
  ],
24
26
  "engines": {
25
- "node": ">=18"
27
+ "node": ">=18",
28
+ "bun": ">=1.3.0"
26
29
  },
27
30
  "devDependencies": {
28
- "@rezi-ui/testkit": "0.1.0-alpha.9"
31
+ "@rezi-ui/testkit": "0.1.0-beta.1",
32
+ "@types/cross-spawn": "^6.0.6"
33
+ },
34
+ "dependencies": {
35
+ "cross-spawn": "^7.0.6"
29
36
  }
30
37
  }
@@ -0,0 +1,70 @@
1
+ # __APP_NAME__
2
+
3
+ Scaffolded with `create-rezi` using the **__TEMPLATE_LABEL__** template.
4
+
5
+ ## What This Template Demonstrates
6
+
7
+ - Multi-screen CLI workflow powered by first-party `createNodeApp({ routes })` routing.
8
+ - Multi-file structure for maintainability (`types`, `theme`, `helpers`, `screens`, `main`).
9
+ - Streamed logs + settings forms + global route keybindings.
10
+ - Route shell pattern you can extend for additional screens.
11
+ - `ui.page()` + `ui.panel()` composition with intent-based button styling.
12
+ - Shared theme metadata pipeline (`src/theme.ts`) used by shell, settings, and reducer defaults.
13
+
14
+ ## Screens
15
+
16
+ - `home`: status overview + quick actions.
17
+ - `logs`: streaming console and recent entry list.
18
+ - `settings`: environment/theme/operator controls.
19
+
20
+ ## File Layout
21
+
22
+ - `src/types.ts`: route/state/action contracts.
23
+ - `src/theme.ts`: theme catalog and template identity constants.
24
+ - `src/helpers/`: log helpers, reducer, and keybinding resolver.
25
+ - `src/screens/`: one file per route + shared shell wrapper.
26
+ - `src/main.ts`: route wiring, runtime loop, keybindings, and shutdown.
27
+ - `src/__tests__/`: reducer, render, and keybinding examples.
28
+
29
+ ## Controls
30
+
31
+ - `f1` / `alt+1` / `ctrl+1`: Home
32
+ - `f2` / `alt+2` / `ctrl+2`: Logs
33
+ - `f3` / `alt+3` / `ctrl+3`: Settings
34
+ - `p`: Pause/resume stream
35
+ - `h` or `?`: Toggle help modal
36
+ - `q` or `ctrl+c`: Quit
37
+
38
+ ## Testing
39
+
40
+ ```bash
41
+ npm run test
42
+ # or
43
+ bun run test
44
+ ```
45
+
46
+ ## Quickstart
47
+
48
+ ```bash
49
+ # npm
50
+ npm install
51
+ npm run start
52
+
53
+ # bun
54
+ bun install
55
+ bun run start
56
+ ```
57
+
58
+ ## Dev Loop (HSR)
59
+
60
+ ```bash
61
+ # npm
62
+ npm run dev
63
+
64
+ # bun
65
+ bun run dev
66
+ ```
67
+
68
+ `npm run dev` / `bun run dev` starts the app with `--hsr` so route edits hot-swap via
69
+ `tsx watch src/main.ts --hsr`, wiring `createNodeApp({ hotReload: ... })` +
70
+ `app.replaceRoutes(...)` while preserving app state, focus, and form input.
@@ -0,0 +1,2 @@
1
+ node_modules
2
+ dist