@airdraft/cli 0.1.0 → 0.1.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/CHANGELOG.md CHANGED
@@ -1,5 +1,34 @@
1
1
  # Changelog
2
2
 
3
+ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
+
5
+ ### [0.1.2](https://github.com/aevrHQ/airdraft/compare/cli@v0.1.1...cli@v0.1.2) (2026-05-22)
6
+
7
+
8
+ ### Features
9
+
10
+ * add Next.js app detection and prompt for app directory in init commands ([2ed1afd](https://github.com/aevrHQ/airdraft/commit/2ed1afdd1ba3142fd50a9bfd4133f01c2ad22ae9))
11
+
12
+ ### [0.1.1](https://github.com/aevrHQ/airdraft/compare/cli@v0.1.0...cli@v0.1.1) (2026-05-22)
13
+
14
+
15
+ ### Features
16
+
17
+ * add versioning and changelog support for all packages ([d6c85df](https://github.com/aevrHQ/airdraft/commit/d6c85dfed37f11c42151c93b49a80ede90699616))
18
+ * implement terminal UI helpers for improved user interaction ([0e0dca4](https://github.com/aevrHQ/airdraft/commit/0e0dca4a4e06196abea22e99c9a350fdd202a948))
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * improve error handling for missing schema file in buildProjectHandler ([4c3d318](https://github.com/aevrHQ/airdraft/commit/4c3d3184c9c454062fd2d9b33fb0593d5e91b71c))
24
+
25
+
26
+ ### Documentation
27
+
28
+ * add Releasing & Publishing section to README ([132193b](https://github.com/aevrHQ/airdraft/commit/132193bebff585ad3223ccb82176c30615f21443))
29
+
30
+ # Changelog
31
+
3
32
  All notable changes to `@airdraft/cli` will be documented here.
4
33
 
5
34
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
package/dist/bin.js CHANGED
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from 'commander';
3
3
  import { initProject, validateConfig, printSchema, generateSecret, generateTypes, createUser, loginCloud } from './commands.js';
4
+ import * as ui from './ui.js';
4
5
  import { readFile } from 'node:fs/promises';
5
6
  import { join } from 'node:path';
6
- import { createInterface } from 'node:readline';
7
7
  const program = new Command();
8
8
  program
9
9
  .name('airdraft')
@@ -19,10 +19,10 @@ program
19
19
  .option('--cwd <dir>', 'Target directory (defaults to process.cwd())')
20
20
  .option('--mode <mode>', 'Setup mode: cloud-app | own-app-auto | own-app-manual (prompts if omitted)')
21
21
  .action(async (opts) => {
22
- console.log('Initializing Airdraft...\n');
22
+ ui.banner();
23
23
  const validModes = ['cloud-app', 'own-app-auto', 'own-app-manual'];
24
24
  if (opts.mode && !validModes.includes(opts.mode)) {
25
- console.error(`Invalid --mode "${opts.mode}". Must be one of: ${validModes.join(', ')}`);
25
+ ui.logError(`Invalid --mode "${opts.mode}". Must be one of: ${validModes.join(', ')}`);
26
26
  process.exit(1);
27
27
  }
28
28
  try {
@@ -30,11 +30,10 @@ program
30
30
  cwd: opts.cwd,
31
31
  force: opts.force,
32
32
  mode: opts.mode,
33
- log: (msg) => console.log(msg),
34
33
  });
35
34
  }
36
35
  catch (err) {
37
- console.error('init failed:', err instanceof Error ? err.message : err);
36
+ ui.logError(`init failed: ${err instanceof Error ? err.message : err}`);
38
37
  process.exit(1);
39
38
  }
40
39
  });
@@ -47,12 +46,11 @@ program
47
46
  .option('--config <path>', 'Path to config file (default: ./airdraft.config.json)')
48
47
  .option('--cwd <dir>', 'Working directory (defaults to process.cwd())')
49
48
  .action(async (opts) => {
50
- console.log('Validating Airdraft config...\n');
51
49
  const result = await validateConfig({
52
50
  configPath: opts.config,
53
51
  cwd: opts.cwd,
54
- log: (msg) => console.log(msg),
55
- error: (msg) => console.error(msg),
52
+ log: (msg) => process.stdout.write(msg + '\n'),
53
+ error: (msg) => ui.logError(msg),
56
54
  });
57
55
  process.exit(result.valid ? 0 : 1);
58
56
  });
@@ -73,7 +71,7 @@ program
73
71
  console.log(printSchema({ collections: config.collections }));
74
72
  }
75
73
  catch (err) {
76
- console.error('Failed to read config:', err instanceof Error ? err.message : err);
74
+ ui.logError(`Failed to read config: ${err instanceof Error ? err.message : err}`);
77
75
  process.exit(1);
78
76
  }
79
77
  });
@@ -107,53 +105,14 @@ program
107
105
  out: opts.out,
108
106
  apiKey: opts.apiKey ?? process.env.CMS_API_KEY,
109
107
  cwd: opts.cwd,
110
- log: (msg) => console.log(msg),
108
+ log: (msg) => process.stdout.write(msg + '\n'),
111
109
  });
112
110
  }
113
111
  catch (err) {
114
- console.error('generate-types failed:', err instanceof Error ? err.message : err);
112
+ ui.logError(`generate-types failed: ${err instanceof Error ? err.message : err}`);
115
113
  process.exit(1);
116
114
  }
117
115
  });
118
- function prompt(question) {
119
- const rl = createInterface({ input: process.stdin, output: process.stdout });
120
- return new Promise((resolve) => {
121
- rl.question(question, (answer) => {
122
- rl.close();
123
- resolve(answer.trim());
124
- });
125
- });
126
- }
127
- function promptPassword(question) {
128
- return new Promise((resolve) => {
129
- process.stdout.write(question);
130
- // Hide typed characters
131
- if (process.stdin.isTTY)
132
- process.stdin.setRawMode(true);
133
- let password = '';
134
- process.stdin.resume();
135
- process.stdin.setEncoding('utf8');
136
- const onData = (char) => {
137
- if (char === '\r' || char === '\n' || char === '\u0003') {
138
- if (char === '\u0003')
139
- process.exit();
140
- if (process.stdin.isTTY)
141
- process.stdin.setRawMode(false);
142
- process.stdin.pause();
143
- process.stdin.removeListener('data', onData);
144
- process.stdout.write('\n');
145
- resolve(password);
146
- }
147
- else if (char === '\u007f' || char === '\b') {
148
- password = password.slice(0, -1);
149
- }
150
- else {
151
- password += char;
152
- }
153
- };
154
- process.stdin.on('data', onData);
155
- });
156
- }
157
116
  // ---------------------------------------------------------------------------
158
117
  // airdraft create-user
159
118
  // ---------------------------------------------------------------------------
@@ -166,42 +125,36 @@ program
166
125
  .option('--cwd <dir>', 'Working directory (defaults to process.cwd())')
167
126
  .action(async (opts) => {
168
127
  const validRoles = ['admin', 'publisher', 'editor'];
169
- let email = opts.email ?? '';
170
- if (!email)
171
- email = await prompt('Email: ');
128
+ const email = opts.email ?? await ui.prompt('Email', {
129
+ validate: (v) => v ? null : 'Email is required.',
130
+ });
172
131
  if (!email) {
173
- console.error('Email is required.');
132
+ ui.logError('Email is required.');
174
133
  process.exit(1);
175
134
  }
176
- let role = (opts.role ?? '');
177
- if (!role) {
178
- const r = await prompt('Role (admin/publisher/editor) [editor]: ');
179
- role = (r || 'editor');
180
- }
181
- if (!validRoles.includes(role)) {
182
- console.error(`Invalid role "${role}". Must be one of: ${validRoles.join(', ')}`);
183
- process.exit(1);
184
- }
185
- let name = opts.name;
186
- if (name === undefined) {
187
- const n = await prompt('Display name (optional): ');
188
- name = n || undefined;
189
- }
190
- const password = await promptPassword('Password: ');
135
+ const roleInput = opts.role ?? await ui.prompt('Role', {
136
+ hint: 'admin / publisher / editor',
137
+ default: 'editor',
138
+ validate: (v) => validRoles.includes(v) ? null : `Must be one of: ${validRoles.join(', ')}`,
139
+ });
140
+ const role = roleInput;
141
+ const nameInput = opts.name ?? await ui.prompt('Display name', { hint: 'optional' });
142
+ const name = nameInput || undefined;
143
+ const password = await ui.promptPassword('Password');
191
144
  if (!password) {
192
- console.error('Password is required.');
145
+ ui.logError('Password is required.');
193
146
  process.exit(1);
194
147
  }
195
- const confirm = await promptPassword('Confirm password: ');
148
+ const confirm = await ui.promptPassword('Confirm password');
196
149
  if (password !== confirm) {
197
- console.error('Passwords do not match.');
150
+ ui.logError('Passwords do not match.');
198
151
  process.exit(1);
199
152
  }
200
153
  try {
201
- await createUser({ email, password, role: role, name, cwd: opts.cwd });
154
+ await createUser({ email, password, role, name, cwd: opts.cwd });
202
155
  }
203
156
  catch (err) {
204
- console.error('Failed:', err instanceof Error ? err.message : err);
157
+ ui.logError(`Failed: ${err instanceof Error ? err.message : err}`);
205
158
  process.exit(1);
206
159
  }
207
160
  });
@@ -214,10 +167,10 @@ program
214
167
  .option('--cloud-url <url>', 'Cloud dashboard URL (default: https://app.airdraft.space)')
215
168
  .action(async (opts) => {
216
169
  try {
217
- await loginCloud({ cloudUrl: opts.cloudUrl, log: (msg) => console.log(msg) });
170
+ await loginCloud({ cloudUrl: opts.cloudUrl, log: (msg) => process.stdout.write(msg + '\n') });
218
171
  }
219
172
  catch (err) {
220
- console.error('login failed:', err instanceof Error ? err.message : err);
173
+ ui.logError(`login failed: ${err instanceof Error ? err.message : err}`);
221
174
  process.exit(1);
222
175
  }
223
176
  });
package/dist/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,11 @@ export interface InitCredentials {
38
38
  repo?: string;
39
39
  /** Both modes — default branch (default: "main") */
40
40
  branch?: string;
41
+ /**
42
+ * Path to the Next.js app directory, relative to the repo root.
43
+ * Defaults to auto-detection. Use `'.'` to force the repo root.
44
+ */
45
+ appDir?: string;
41
46
  }
42
47
  export interface InitOptions {
43
48
  /** Target directory (defaults to cwd) */
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
package/dist/commands.js CHANGED
@@ -1,16 +1,39 @@
1
- import { readFile, writeFile, access } from 'node:fs/promises';
1
+ import { readFile, writeFile, access, readdir } from 'node:fs/promises';
2
2
  import { join, resolve } from 'node:path';
3
3
  import { randomBytes } from 'node:crypto';
4
4
  import { createInterface } from 'node:readline';
5
5
  import { checkFormatCompatibility } from '@airdraft/core';
6
+ import * as ui from './ui.js';
6
7
  // ---------------------------------------------------------------------------
7
8
  // File templates — per mode
8
9
  // ---------------------------------------------------------------------------
9
10
  const ROUTE_HANDLER_TEMPLATE = `import { createCmsHandler } from '@airdraft/next'
10
- import airdraft from '../../../airdraft.config'
11
+ import airdraft from '@/airdraft.config'
11
12
 
12
13
  export const { GET, POST, PUT, DELETE } = createCmsHandler(airdraft)
13
14
  `;
15
+ /**
16
+ * Minimal schema file written to the repository root.
17
+ * The Airdraft Cloud dashboard reads this to render the Schema Editor.
18
+ * Users can add collections via the dashboard UI or by editing this file directly.
19
+ */
20
+ const SCHEMA_JSON_TEMPLATE = JSON.stringify({
21
+ $schema: 'https://airdraft.dev/schema/v1',
22
+ version: 1,
23
+ collections: {
24
+ posts: {
25
+ path: 'content/posts/{slug}.mdx',
26
+ format: 'mdx',
27
+ publish: true,
28
+ slugSource: 'title',
29
+ fields: {
30
+ title: { type: 'string', required: true },
31
+ excerpt: { type: 'string' },
32
+ body: { type: 'rich-text' },
33
+ },
34
+ },
35
+ },
36
+ }, null, 2) + '\n';
14
37
  /** Mode 3 — own GitHub App: all five GITCMS_ vars */
15
38
  function mode3ConfigTemplate(vars) {
16
39
  return `import { defineConfig } from '@airdraft/core'
@@ -95,43 +118,93 @@ AIRDRAFT_REVALIDATE_SECRET=${randomBytes(32).toString('hex')}
95
118
  `;
96
119
  }
97
120
  // ---------------------------------------------------------------------------
98
- // Interactive prompt helpers (commands.ts internal — bin.ts has its own)
121
+ // Next.js app detection
99
122
  // ---------------------------------------------------------------------------
100
- function cliPrompt(question) {
101
- const rl = createInterface({ input: process.stdin, output: process.stdout });
102
- return new Promise((resolve) => {
103
- rl.question(question, (answer) => {
104
- rl.close();
105
- resolve(answer.trim());
106
- });
107
- });
123
+ const NEXT_CONFIG_NAMES = ['next.config.ts', 'next.config.js', 'next.config.mjs'];
124
+ const COMMON_APP_DIRS = ['apps', 'packages', 'sites', 'services'];
125
+ /**
126
+ * Scans `cwd` and common sub-directories for a Next.js app.
127
+ * Returns relative paths (e.g. `'.'`, `'apps/web'`, `'packages/web'`).
128
+ */
129
+ async function detectNextApp(cwd) {
130
+ const found = [];
131
+ async function hasNextConfig(dir) {
132
+ for (const name of NEXT_CONFIG_NAMES) {
133
+ if (await access(join(dir, name)).then(() => true).catch(() => false))
134
+ return true;
135
+ }
136
+ return false;
137
+ }
138
+ if (await hasNextConfig(cwd))
139
+ found.push('.');
140
+ for (const parent of COMMON_APP_DIRS) {
141
+ let entries;
142
+ try {
143
+ entries = await readdir(join(cwd, parent), { withFileTypes: true });
144
+ }
145
+ catch {
146
+ continue;
147
+ }
148
+ for (const entry of entries) {
149
+ if (!entry.isDirectory())
150
+ continue;
151
+ const sub = join(cwd, parent, entry.name);
152
+ if (await hasNextConfig(sub)) {
153
+ found.push(join(parent, entry.name));
154
+ }
155
+ }
156
+ }
157
+ return found;
108
158
  }
109
- async function cliSelect(question, choices) {
110
- const labels = choices.map((c, i) => ` ${i + 1}) ${c.label}`);
111
- process.stdout.write(`\n${question}\n${labels.join('\n')}\n\n`);
112
- while (true) {
113
- const raw = await cliPrompt(' Enter number: ');
114
- const n = parseInt(raw, 10);
115
- if (n >= 1 && n <= choices.length)
116
- return choices[n - 1].value;
117
- process.stdout.write(` Please enter a number between 1 and ${choices.length}.\n`);
159
+ /**
160
+ * Prompts the user to choose (or confirm) which directory holds their Next.js app.
161
+ * Skipped if `credentialAppDir` is pre-supplied.
162
+ */
163
+ async function promptAppDir(cwd, credentialAppDir) {
164
+ if (credentialAppDir)
165
+ return credentialAppDir;
166
+ const detected = await detectNextApp(cwd);
167
+ // Root-only no prompt, just confirm quietly
168
+ if (detected.length === 1 && detected[0] === '.')
169
+ return '.';
170
+ // Nothing detected — ask for manual input
171
+ if (detected.length === 0) {
172
+ ui.warn('No Next.js app found in common locations.');
173
+ return ui.prompt('Path to your Next.js app', {
174
+ hint: 'e.g. packages/web or apps/web (relative to repo root)',
175
+ default: '.',
176
+ });
118
177
  }
178
+ const choices = [
179
+ ...detected.map((d) => ({
180
+ label: d === '.' ? '. (repo root)' : d,
181
+ value: d,
182
+ })),
183
+ { label: 'Enter path manually', value: '__manual__' },
184
+ ];
185
+ const picked = await ui.select('Where is your Next.js app?', choices);
186
+ if (picked === '__manual__') {
187
+ return ui.prompt('Path to your Next.js app', {
188
+ hint: 'relative to repo root, e.g. packages/web',
189
+ });
190
+ }
191
+ return picked;
119
192
  }
120
193
  // ---------------------------------------------------------------------------
121
194
  // File write helper
122
195
  // ---------------------------------------------------------------------------
123
- async function writeProjectFile(filePath, content, force, log) {
196
+ async function writeProjectFile(filePath, content, force) {
124
197
  if (!force) {
125
198
  const exists = await access(filePath).then(() => true).catch(() => false);
126
199
  if (exists) {
127
- log(` skip ${filePath} (already exists; use --force to overwrite)`);
200
+ ui.fileSkipped(filePath);
128
201
  return;
129
202
  }
130
203
  }
131
204
  const { mkdir } = await import('node:fs/promises');
132
205
  await mkdir(resolve(filePath, '..'), { recursive: true });
133
206
  await writeFile(filePath, content, 'utf8');
134
- log(` write ${filePath}`);
207
+ ui.fileWritten(filePath);
135
208
  }
136
209
  // ---------------------------------------------------------------------------
137
210
  // initProject — entry point
@@ -144,17 +217,20 @@ export async function initProject(opts = {}) {
144
217
  // Mode selection
145
218
  let mode = opts.mode;
146
219
  if (!mode) {
147
- mode = await cliSelect('How do you want to connect your GitHub repository?', [
220
+ mode = await ui.select('How do you want to connect your GitHub repository?', [
148
221
  {
149
- label: 'Use Airdraft\'s GitHub App (Mode 2 — recommended, Airdraft Cloud account required)',
222
+ label: 'Use Airdraft\'s GitHub App',
223
+ hint: 'recommended — Airdraft Cloud account required',
150
224
  value: 'cloud-app',
151
225
  },
152
226
  {
153
- label: 'Register your own GitHub App (Mode 3 — automatic via browser, no cloud account needed)',
227
+ label: 'Register your own GitHub App',
228
+ hint: 'automatic via browser, no cloud account needed',
154
229
  value: 'own-app-auto',
155
230
  },
156
231
  {
157
- label: 'Enter GitHub App credentials manually (Mode 3 — for CI/headless environments)',
232
+ label: 'Enter GitHub App credentials manually',
233
+ hint: 'for CI / headless environments',
158
234
  value: 'own-app-manual',
159
235
  },
160
236
  ]);
@@ -162,75 +238,83 @@ export async function initProject(opts = {}) {
162
238
  log('');
163
239
  switch (mode) {
164
240
  case 'cloud-app':
165
- return initMode2(cwd, force, credentials, log);
241
+ return initMode2(cwd, force, credentials);
166
242
  case 'own-app-auto':
167
- return initMode3Auto(cwd, force, log);
243
+ return initMode3Auto(cwd, force);
168
244
  case 'own-app-manual':
169
- return initMode3Manual(cwd, force, credentials, log);
245
+ return initMode3Manual(cwd, force, credentials);
170
246
  }
171
247
  }
172
248
  // ---------------------------------------------------------------------------
173
249
  // Mode 2 — Airdraft's GitHub App
174
250
  // ---------------------------------------------------------------------------
175
- async function initMode2(cwd, force, credentials, log) {
176
- log('Mode 2: Airdraft\'s GitHub App');
177
- log('─────────────────────────────────────────────');
178
- log('');
179
- log('You need an Airdraft Cloud account with a project created.');
180
- log('If you haven\'t done this yet:');
181
- log(' 1. Sign up at https://app.airdraft.space');
182
- log(' 2. Create a project and connect your GitHub repository from the dashboard');
183
- log(' 3. Copy your project key from the project settings page');
184
- log('');
185
- let projectKey = credentials.projectKey ?? '';
186
- while (!projectKey.startsWith('ntk_')) {
187
- if (projectKey)
188
- log(' Project keys begin with "ntk_". Please check the dashboard and try again.');
189
- projectKey = await cliPrompt(' Airdraft project key (ntk_...): ');
190
- }
191
- let repo = credentials.repo ?? '';
192
- while (!repo.includes('/')) {
193
- if (repo)
194
- log(' Please enter the repo in owner/repo format, e.g. "myorg/mysite".');
195
- repo = await cliPrompt(' GitHub repo (owner/repo): ');
196
- }
197
- const branch = credentials.branch ?? ((await cliPrompt(' Default branch [main]: ')) || 'main');
198
- log('');
199
- await writeProjectFile(join(cwd, 'airdraft.config.ts'), mode2ConfigTemplate({ repo, branch }), force, log);
200
- await writeProjectFile(join(cwd, 'app/api/cms/[...route]/route.ts'), ROUTE_HANDLER_TEMPLATE, force, log);
201
- await writeProjectFile(join(cwd, '.env.local'), mode2EnvTemplate({ projectKey, repo, branch }), force, log);
202
- log('');
203
- log(' Airdraft initialized (Mode 2 Airdraft App)');
204
- log('');
205
- log('Next steps:');
206
- log(' 1. Run: npm install @airdraft/core @airdraft/next');
207
- log(' 2. Keep AIRDRAFT_PROJECT_KEY secure it grants write access to your repository');
208
- log(' 3. Visit /api/cms/schema to verify the setup');
251
+ async function initMode2(cwd, force, credentials) {
252
+ ui.section('Airdraft Cloud (Mode 2)');
253
+ ui.info('You need an Airdraft Cloud account with a project set up.');
254
+ ui.info('If you haven\'t done this yet, visit https://app.airdraft.space');
255
+ ui.info('and create a project, then copy the project key from its settings.');
256
+ process.stdout.write('\n');
257
+ const projectKey = credentials.projectKey ?? await ui.prompt('Airdraft project key', {
258
+ hint: 'starts with ntk_ find it in your project settings',
259
+ validate: (v) => v.startsWith('ntk_')
260
+ ? null
261
+ : 'Project keys start with "ntk_". Check the dashboard and try again.',
262
+ });
263
+ const repo = credentials.repo ?? await ui.prompt('GitHub repo', {
264
+ hint: 'e.g. myorg/mysite',
265
+ validate: (v) => v.includes('/')
266
+ ? null
267
+ : 'Enter in owner/repo format, e.g. "myorg/mysite".',
268
+ });
269
+ const branch = credentials.branch ?? await ui.prompt('Default branch', { default: 'main' });
270
+ const appDirRel = await promptAppDir(cwd, credentials.appDir);
271
+ const appRoot = resolve(cwd, appDirRel);
272
+ if (appDirRel !== '.')
273
+ ui.info(`Next.js app: ${appDirRel}`);
274
+ process.stdout.write('\n');
275
+ ui.info('Creating project files…');
276
+ process.stdout.write('\n');
277
+ await writeProjectFile(join(appRoot, 'airdraft.config.ts'), mode2ConfigTemplate({ repo, branch }), force);
278
+ await writeProjectFile(join(appRoot, 'app/api/cms/[...route]/route.ts'), ROUTE_HANDLER_TEMPLATE, force);
279
+ await writeProjectFile(join(appRoot, '.env.local'), mode2EnvTemplate({ projectKey, repo, branch }), force);
280
+ await writeProjectFile(join(cwd, 'airdraft.schema.json'), SCHEMA_JSON_TEMPLATE, force);
281
+ ui.successBox('Airdraft initialized (Mode 2 — Airdraft Cloud)');
282
+ ui.nextSteps([
283
+ { label: 'Install dependencies:', commands: ['npm install @airdraft/core @airdraft/next'] },
284
+ {
285
+ label: 'Commit and push airdraft.schema.json so the dashboard can read your schema:',
286
+ commands: [
287
+ 'git add airdraft.schema.json',
288
+ 'git commit -m "chore: add airdraft schema"',
289
+ 'git push',
290
+ ],
291
+ },
292
+ 'Keep AIRDRAFT_PROJECT_KEY secure — it grants write access to your repository.',
293
+ 'Open the dashboard to manage your content: https://app.airdraft.space',
294
+ ]);
209
295
  }
210
296
  // ---------------------------------------------------------------------------
211
297
  // Mode 3 automatic — GitHub App Manifest flow
212
298
  // ---------------------------------------------------------------------------
213
- async function initMode3Auto(cwd, force, log) {
214
- log('Mode 3: Own GitHub App (automatic setup)');
215
- log('─────────────────────────────────────────────');
216
- log('');
217
- log('This will create a private GitHub App in your account or organisation.');
218
- log('You\'ll need to click "Create GitHub App" once in the browser that\'s it.');
219
- log('');
220
- const owner = await cliPrompt(' GitHub org or username (e.g. "myorg"): ');
299
+ async function initMode3Auto(cwd, force) {
300
+ ui.section('Own GitHub App (Mode 3 — automatic setup)');
301
+ ui.info('This will register a private GitHub App in your account or organisation.');
302
+ ui.info('You\'ll need to click "Create GitHub App" once in the browser — that\'s it.');
303
+ process.stdout.write('\n');
304
+ const owner = await ui.prompt('GitHub org or username', { hint: 'e.g. myorg' });
221
305
  if (!owner)
222
306
  throw new Error('Owner is required.');
223
307
  const defaultAppName = `airdraft-${owner.toLowerCase().replace(/[^a-z0-9]/g, '-')}`;
224
- const appNameRaw = await cliPrompt(` App name [${defaultAppName}]: `);
225
- const appName = appNameRaw || defaultAppName;
226
- let repo = await cliPrompt(' GitHub repo to connect (owner/repo): ');
227
- while (!repo.includes('/')) {
228
- log(' Please enter the repo in owner/repo format, e.g. "myorg/mysite".');
229
- repo = await cliPrompt(' GitHub repo to connect (owner/repo): ');
230
- }
231
- const branchRaw = await cliPrompt(' Default branch [main]: ');
232
- const branch = branchRaw || 'main';
233
- log('');
308
+ const appName = await ui.prompt('App name', { default: defaultAppName });
309
+ const repo = await ui.prompt('GitHub repo to connect', {
310
+ hint: 'e.g. myorg/mysite',
311
+ validate: (v) => v.includes('/') ? null : 'Enter in owner/repo format, e.g. "myorg/mysite".',
312
+ });
313
+ const branch = await ui.prompt('Default branch', { default: 'main' });
314
+ const appDirRel = await promptAppDir(cwd);
315
+ const appRoot = resolve(cwd, appDirRel);
316
+ if (appDirRel !== '.')
317
+ ui.info(`Next.js app: ${appDirRel}`);
234
318
  // Run App Manifest + Installation flows
235
319
  const { findFreePort, createCallbackServer, runAppManifestFlow, waitForGitHubInstall } = await import('./github.js');
236
320
  const port = await findFreePort();
@@ -240,81 +324,99 @@ async function initMode3Auto(cwd, force, log) {
240
324
  let privateKey;
241
325
  let installationId;
242
326
  try {
243
- log('Step 1/2: Create GitHub App');
244
- const manifest = await runAppManifestFlow({ owner, appName, port, log });
327
+ ui.stepHeader(1, 2, 'Create GitHub App');
328
+ const manifest = await runAppManifestFlow({ owner, appName, port, log: ui.log });
245
329
  appId = manifest.appId;
246
330
  appSlug = manifest.appSlug;
247
331
  privateKey = manifest.privateKey;
248
- log(`GitHub App created (id: ${appId}, slug: ${appSlug})`);
249
- log('');
250
- log('Step 2/2: Install the App on your repository');
251
- installationId = await waitForGitHubInstall({ appSlug, server, log });
252
- log(` ✓ App installed (installation id: ${installationId})`);
332
+ ui.logSuccess(`GitHub App created ${appSlug} (id: ${appId})`);
333
+ ui.stepHeader(2, 2, 'Install the App on your repository');
334
+ installationId = await waitForGitHubInstall({ appSlug, server, log: ui.log });
335
+ ui.logSuccess(`App installed (installation id: ${installationId})`);
253
336
  }
254
337
  finally {
255
338
  await server.close();
256
339
  }
257
- log('');
258
- await writeProjectFile(join(cwd, 'airdraft.config.ts'), mode3ConfigTemplate({ appId: String(appId), privateKey, installationId: String(installationId), repo, branch }), force, log);
259
- await writeProjectFile(join(cwd, 'app/api/cms/[...route]/route.ts'), ROUTE_HANDLER_TEMPLATE, force, log);
260
- await writeProjectFile(join(cwd, '.env.local'), mode3EnvTemplate({
261
- appId: String(appId),
262
- privateKey,
263
- installationId: String(installationId),
264
- repo,
265
- branch,
266
- }), force, log);
267
- log('');
268
- log(' Airdraft initialized (Mode 3 own App)');
269
- log('');
270
- log('Next steps:');
271
- log(' 1. Run: npm install @airdraft/core @airdraft/next');
272
- log(' 2. Keep GITCMS_PRIVATE_KEY secret — it grants write access to your repository');
273
- log(' 3. Visit /api/cms/schema to verify the setup');
340
+ process.stdout.write('\n');
341
+ ui.info('Creating project files…');
342
+ process.stdout.write('\n');
343
+ await writeProjectFile(join(appRoot, 'airdraft.config.ts'), mode3ConfigTemplate({ appId: String(appId), privateKey, installationId: String(installationId), repo, branch }), force);
344
+ await writeProjectFile(join(appRoot, 'app/api/cms/[...route]/route.ts'), ROUTE_HANDLER_TEMPLATE, force);
345
+ await writeProjectFile(join(appRoot, '.env.local'), mode3EnvTemplate({ appId: String(appId), privateKey, installationId: String(installationId), repo, branch }), force);
346
+ await writeProjectFile(join(cwd, 'airdraft.schema.json'), SCHEMA_JSON_TEMPLATE, force);
347
+ ui.successBox('Airdraft initialized (Mode 3 — own GitHub App)');
348
+ ui.nextSteps([
349
+ { label: 'Install dependencies:', commands: ['npm install @airdraft/core @airdraft/next'] },
350
+ {
351
+ label: 'Commit and push airdraft.schema.json so the dashboard can read your schema:',
352
+ commands: [
353
+ 'git add airdraft.schema.json',
354
+ 'git commit -m "chore: add airdraft schema"',
355
+ 'git push',
356
+ ],
357
+ },
358
+ 'Keep GITCMS_PRIVATE_KEY secret — it grants write access to your repository.',
359
+ 'Visit /api/cms/schema to verify the self-hosted setup.',
360
+ ]);
274
361
  }
275
362
  // ---------------------------------------------------------------------------
276
363
  // Mode 3 manual — prompt for all credentials
277
364
  // ---------------------------------------------------------------------------
278
- async function initMode3Manual(cwd, force, credentials, log) {
279
- log('Mode 3: Own GitHub App (manual credential entry)');
280
- log('─────────────────────────────────────────────');
281
- log('');
282
- log('You will need:');
283
- log(' • GitHub App ID (from the App\'s "General" settings page)');
284
- log(' • GitHub App private key (PEM — download from App settings → "Private keys")');
285
- log(' • Installation ID (numeric ID shown after installing the App on your repo)');
286
- log('');
287
- const appId = credentials.appId ?? await cliPrompt(' GitHub App ID: ');
365
+ async function initMode3Manual(cwd, force, credentials) {
366
+ ui.section('Own GitHub App (Mode 3 — manual setup)');
367
+ ui.info('You will need:');
368
+ ui.info(' • GitHub App ID — from the App\'s "General" settings page');
369
+ ui.info(' GitHub App private key — PEM downloaded from App settings → "Private keys"');
370
+ ui.info(' • Installation ID shown after installing the App on your repo');
371
+ process.stdout.write('\n');
372
+ const appId = credentials.appId ?? await ui.prompt('GitHub App ID', {
373
+ validate: (v) => !v || isNaN(Number(v)) ? 'App ID must be a number.' : null,
374
+ });
288
375
  if (!appId || isNaN(Number(appId)))
289
376
  throw new Error('App ID must be a number.');
290
377
  let privateKey = credentials.privateKey ?? '';
291
378
  if (!privateKey) {
292
- log(' GitHub App private key — paste the full PEM below.');
293
- log(' Start with "-----BEGIN RSA PRIVATE KEY-----" and paste all lines.');
294
- log(' Enter a blank line followed by "END" when done.');
379
+ ui.info('Paste your GitHub App private key (full PEM).');
380
+ ui.info('Start with "-----BEGIN RSA PRIVATE KEY-----" and paste all lines.');
381
+ ui.info('Enter a blank line followed by END when done.');
382
+ process.stdout.write('\n');
295
383
  privateKey = await readMultilinePem();
296
384
  }
297
- const installationId = credentials.installationId ?? await cliPrompt(' Installation ID: ');
385
+ const installationId = credentials.installationId ?? await ui.prompt('Installation ID', {
386
+ validate: (v) => !v || isNaN(Number(v)) ? 'Installation ID must be a number.' : null,
387
+ });
298
388
  if (!installationId || isNaN(Number(installationId)))
299
389
  throw new Error('Installation ID must be a number.');
300
- let repo = credentials.repo ?? '';
301
- while (!repo.includes('/')) {
302
- if (repo)
303
- log(' Please enter the repo in owner/repo format, e.g. "myorg/mysite".');
304
- repo = await cliPrompt(' GitHub repo (owner/repo): ');
305
- }
306
- const branch = credentials.branch ?? ((await cliPrompt(' Default branch [main]: ')) || 'main');
307
- log('');
308
- await writeProjectFile(join(cwd, 'airdraft.config.ts'), mode3ConfigTemplate({ appId, privateKey, installationId, repo, branch }), force, log);
309
- await writeProjectFile(join(cwd, 'app/api/cms/[...route]/route.ts'), ROUTE_HANDLER_TEMPLATE, force, log);
310
- await writeProjectFile(join(cwd, '.env.local'), mode3EnvTemplate({ appId, privateKey, installationId, repo, branch }), force, log);
311
- log('');
312
- log(' Airdraft initialized (Mode 3 own App, manual)');
313
- log('');
314
- log('Next steps:');
315
- log(' 1. Run: npm install @airdraft/core @airdraft/next');
316
- log(' 2. Keep .env.local out of version control');
317
- log(' 3. Visit /api/cms/schema to verify the setup');
390
+ const repo = credentials.repo ?? await ui.prompt('GitHub repo', {
391
+ hint: 'e.g. myorg/mysite',
392
+ validate: (v) => v.includes('/') ? null : 'Enter in owner/repo format, e.g. "myorg/mysite".',
393
+ });
394
+ const branch = credentials.branch ?? await ui.prompt('Default branch', { default: 'main' });
395
+ const appDirRel = await promptAppDir(cwd, credentials.appDir);
396
+ const appRoot = resolve(cwd, appDirRel);
397
+ if (appDirRel !== '.')
398
+ ui.info(`Next.js app: ${appDirRel}`);
399
+ process.stdout.write('\n');
400
+ ui.info('Creating project files…');
401
+ process.stdout.write('\n');
402
+ await writeProjectFile(join(appRoot, 'airdraft.config.ts'), mode3ConfigTemplate({ appId, privateKey, installationId, repo, branch }), force);
403
+ await writeProjectFile(join(appRoot, 'app/api/cms/[...route]/route.ts'), ROUTE_HANDLER_TEMPLATE, force);
404
+ await writeProjectFile(join(appRoot, '.env.local'), mode3EnvTemplate({ appId, privateKey, installationId, repo, branch }), force);
405
+ await writeProjectFile(join(cwd, 'airdraft.schema.json'), SCHEMA_JSON_TEMPLATE, force);
406
+ ui.successBox('Airdraft initialized (Mode 3 own GitHub App, manual)');
407
+ ui.nextSteps([
408
+ { label: 'Install dependencies:', commands: ['npm install @airdraft/core @airdraft/next'] },
409
+ {
410
+ label: 'Commit and push airdraft.schema.json so the dashboard can read your schema:',
411
+ commands: [
412
+ 'git add airdraft.schema.json',
413
+ 'git commit -m "chore: add airdraft schema"',
414
+ 'git push',
415
+ ],
416
+ },
417
+ 'Keep .env.local out of version control — it contains your private key.',
418
+ 'Visit /api/cms/schema to verify the self-hosted setup.',
419
+ ]);
318
420
  }
319
421
  /**
320
422
  * Reads a multi-line PEM from stdin.
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
package/dist/ui.d.ts ADDED
@@ -0,0 +1,46 @@
1
+ export declare const IS_TTY: boolean;
2
+ /** Branded banner — printed once at CLI startup. */
3
+ export declare function banner(): void;
4
+ /** Bold section heading with a dim rule underneath. */
5
+ export declare function section(title: string): void;
6
+ /** Plain log line (no prefix). */
7
+ export declare function log(msg: string): void;
8
+ /** Dimmed body / explanatory text. */
9
+ export declare function info(msg: string): void;
10
+ /** Yellow advisory hint. */
11
+ export declare function warn(msg: string): void;
12
+ /** Green success tick. */
13
+ export declare function logSuccess(msg: string): void;
14
+ /** Red error line to stderr. */
15
+ export declare function logError(msg: string): void;
16
+ /** Green "created" indicator for a file. */
17
+ export declare function fileWritten(path: string): void;
18
+ /** Dim "skipped" indicator for an already-existing file. */
19
+ export declare function fileSkipped(path: string): void;
20
+ /** Step indicator for multi-step flows (e.g. "Step 1/2: Create GitHub App"). */
21
+ export declare function stepHeader(n: number, total: number, label: string): void;
22
+ /** Final success box summarising what completed. */
23
+ export declare function successBox(title: string): void;
24
+ /**
25
+ * Numbered next-steps list.
26
+ * Each item is either a plain string or an object with a label + shell commands.
27
+ */
28
+ export declare function nextSteps(items: Array<string | {
29
+ label: string;
30
+ commands: string[];
31
+ }>): void;
32
+ /** Interactive text input with optional default value, hint, and inline validation. */
33
+ export declare function prompt(question: string, opts?: {
34
+ default?: string;
35
+ hint?: string;
36
+ validate?: (value: string) => string | null;
37
+ }): Promise<string>;
38
+ /** Password prompt — typed characters are hidden. */
39
+ export declare function promptPassword(question: string): Promise<string>;
40
+ /** Interactive single-select with arrow-key navigation. Falls back to numbered list in non-TTY. */
41
+ export declare function select<T extends string>(question: string, choices: Array<{
42
+ label: string;
43
+ value: T;
44
+ hint?: string;
45
+ }>): Promise<T>;
46
+ //# sourceMappingURL=ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,MAAM,SAAgC,CAAA;AA4BnD,oDAAoD;AACpD,wBAAgB,MAAM,IAAI,IAAI,CAE7B;AAED,uDAAuD;AACvD,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED,kCAAkC;AAClC,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAErC;AAED,sCAAsC;AACtC,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEtC;AAED,4BAA4B;AAC5B,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEtC;AAED,0BAA0B;AAC1B,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE5C;AAED,gCAAgC;AAChC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED,4CAA4C;AAC5C,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,4DAA4D;AAC5D,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAExE;AAED,oDAAoD;AACpD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAI9C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,GAC3D,IAAI,CAeN;AAID,uFAAuF;AACvF,wBAAgB,MAAM,CACpB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE;IACL,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;CAC5C,GACA,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED,qDAAqD;AACrD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBhE;AAID,mGAAmG;AACnG,wBAAsB,MAAM,CAAC,CAAC,SAAS,MAAM,EAC3C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACzD,OAAO,CAAC,CAAC,CAAC,CA2EZ"}
package/dist/ui.js ADDED
@@ -0,0 +1,232 @@
1
+ /**
2
+ * Minimal terminal UI helpers — zero external dependencies.
3
+ * Colors and arrow-key navigation degrade gracefully in non-TTY environments.
4
+ */
5
+ import { createInterface, emitKeypressEvents } from 'node:readline';
6
+ // ─── Environment detection ────────────────────────────────────────────────────
7
+ export const IS_TTY = Boolean(process.stdout.isTTY);
8
+ const USE_COLOR = IS_TTY && !process.env.NO_COLOR && process.env.TERM !== 'dumb';
9
+ // ─── ANSI styling ─────────────────────────────────────────────────────────────
10
+ function style(open) {
11
+ return USE_COLOR ? (s) => `\x1b[${open}m${s}\x1b[0m` : (s) => s;
12
+ }
13
+ const bold = style(1);
14
+ const dim = style(2);
15
+ const green = style(32);
16
+ const yellow = style(33);
17
+ const red = style(31);
18
+ const cyan = style(36);
19
+ // Cursor / erase codes (only meaningful in TTY; safe no-ops elsewhere)
20
+ const CLEAR_LINE = IS_TTY ? '\x1b[2K' : '';
21
+ const CURSOR_UP = (n) => IS_TTY ? `\x1b[${n}A` : '';
22
+ const CURSOR_DN = IS_TTY ? '\x1b[1B' : '';
23
+ // ─── Output primitives ────────────────────────────────────────────────────────
24
+ const out = (s) => process.stdout.write(s);
25
+ const err = (s) => process.stderr.write(s);
26
+ // ─── Public logging functions ────────────────────────────────────────────────
27
+ /** Branded banner — printed once at CLI startup. */
28
+ export function banner() {
29
+ out(`\n ${bold(cyan('◆'))} ${bold('Airdraft')} ${dim('git-native CMS')}\n\n`);
30
+ }
31
+ /** Bold section heading with a dim rule underneath. */
32
+ export function section(title) {
33
+ out(`\n${bold(title)}\n${dim('─'.repeat(Math.min(title.length + 2, 54)))}\n\n`);
34
+ }
35
+ /** Plain log line (no prefix). */
36
+ export function log(msg) {
37
+ out(`${msg}\n`);
38
+ }
39
+ /** Dimmed body / explanatory text. */
40
+ export function info(msg) {
41
+ out(` ${dim(msg)}\n`);
42
+ }
43
+ /** Yellow advisory hint. */
44
+ export function warn(msg) {
45
+ out(` ${yellow('⚠')} ${yellow(msg)}\n`);
46
+ }
47
+ /** Green success tick. */
48
+ export function logSuccess(msg) {
49
+ out(` ${green('✔')} ${msg}\n`);
50
+ }
51
+ /** Red error line to stderr. */
52
+ export function logError(msg) {
53
+ err(` ${red('✖')} ${red(msg)}\n`);
54
+ }
55
+ /** Green "created" indicator for a file. */
56
+ export function fileWritten(path) {
57
+ out(` ${green('+')} ${bold(path)}\n`);
58
+ }
59
+ /** Dim "skipped" indicator for an already-existing file. */
60
+ export function fileSkipped(path) {
61
+ out(` ${dim('~')} ${dim(path)} ${dim('(exists, use --force to overwrite)')}\n`);
62
+ }
63
+ /** Step indicator for multi-step flows (e.g. "Step 1/2: Create GitHub App"). */
64
+ export function stepHeader(n, total, label) {
65
+ out(`\n ${dim(`Step ${n}/${total}:`)} ${bold(label)}\n`);
66
+ }
67
+ /** Final success box summarising what completed. */
68
+ export function successBox(title) {
69
+ const inner = ` ✓ ${title} `;
70
+ const bar = '─'.repeat(Math.max(inner.length, 40));
71
+ out(`\n ${green(bar)}\n ${green(bold(inner))}\n ${green(bar)}\n`);
72
+ }
73
+ /**
74
+ * Numbered next-steps list.
75
+ * Each item is either a plain string or an object with a label + shell commands.
76
+ */
77
+ export function nextSteps(items) {
78
+ out(`\n ${bold('Next steps:')}\n\n`);
79
+ let n = 0;
80
+ for (const item of items) {
81
+ n++;
82
+ if (typeof item === 'string') {
83
+ out(` ${dim(`${n}.`)} ${item}\n`);
84
+ }
85
+ else {
86
+ out(` ${dim(`${n}.`)} ${item.label}\n`);
87
+ for (const cmd of item.commands) {
88
+ out(` ${dim('$')} ${cyan(cmd)}\n`);
89
+ }
90
+ }
91
+ }
92
+ out('\n');
93
+ }
94
+ // ─── Text prompt ──────────────────────────────────────────────────────────────
95
+ /** Interactive text input with optional default value, hint, and inline validation. */
96
+ export function prompt(question, opts) {
97
+ return new Promise((resolve) => {
98
+ const ask = () => {
99
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
100
+ const dflt = opts?.default ? ` ${dim(`[${opts.default}]`)}` : '';
101
+ const hintText = opts?.hint ? ` ${dim(opts.hint)}` : '';
102
+ const prefix = ` ${cyan('◆')} ${bold(question)}${dflt}${hintText} ${dim('›')} `;
103
+ rl.question(prefix, (answer) => {
104
+ rl.close();
105
+ const value = answer.trim() || opts?.default || '';
106
+ const validErr = opts?.validate?.(value) ?? null;
107
+ if (validErr) {
108
+ logError(validErr);
109
+ ask();
110
+ return;
111
+ }
112
+ resolve(value);
113
+ });
114
+ };
115
+ ask();
116
+ });
117
+ }
118
+ /** Password prompt — typed characters are hidden. */
119
+ export function promptPassword(question) {
120
+ return new Promise((resolve) => {
121
+ const prefix = ` ${cyan('◆')} ${bold(question)} ${dim('›')} `;
122
+ process.stdout.write(prefix);
123
+ if (IS_TTY)
124
+ process.stdin.setRawMode(true);
125
+ let password = '';
126
+ process.stdin.resume();
127
+ process.stdin.setEncoding('utf8');
128
+ const onData = (char) => {
129
+ if (char === '\r' || char === '\n' || char === '\u0003') {
130
+ if (char === '\u0003')
131
+ process.exit(130);
132
+ if (IS_TTY)
133
+ process.stdin.setRawMode(false);
134
+ process.stdin.pause();
135
+ process.stdin.removeListener('data', onData);
136
+ process.stdout.write('\n');
137
+ resolve(password);
138
+ }
139
+ else if (char === '\u007f' || char === '\b') {
140
+ password = password.slice(0, -1);
141
+ }
142
+ else {
143
+ password += char;
144
+ }
145
+ };
146
+ process.stdin.on('data', onData);
147
+ });
148
+ }
149
+ // ─── Arrow-key select ────────────────────────────────────────────────────────
150
+ /** Interactive single-select with arrow-key navigation. Falls back to numbered list in non-TTY. */
151
+ export async function select(question, choices) {
152
+ if (!IS_TTY) {
153
+ return _numberedSelect(question, choices);
154
+ }
155
+ return new Promise((resolve) => {
156
+ let idx = 0;
157
+ let firstRender = true;
158
+ emitKeypressEvents(process.stdin);
159
+ process.stdin.setRawMode(true);
160
+ process.stdin.resume();
161
+ function render() {
162
+ if (!firstRender) {
163
+ out(CURSOR_UP(choices.length + 1));
164
+ }
165
+ firstRender = false;
166
+ out(` ${cyan('◆')} ${bold(question)}\n`);
167
+ for (let i = 0; i < choices.length; i++) {
168
+ const active = i === idx;
169
+ const marker = active ? ` ${cyan('❯')}` : ' ';
170
+ const label = active ? cyan(choices[i].label) : dim(choices[i].label);
171
+ const hint = choices[i].hint ? ` ${dim('— ' + choices[i].hint)}` : '';
172
+ out(`${CLEAR_LINE}${marker} ${label}${hint}\n`);
173
+ }
174
+ }
175
+ render();
176
+ const onKeypress = (_, key) => {
177
+ if (!key)
178
+ return;
179
+ if (key.ctrl && key.name === 'c') {
180
+ cleanup();
181
+ out('\n');
182
+ process.exit(130);
183
+ }
184
+ switch (key.name) {
185
+ case 'up':
186
+ idx = (idx - 1 + choices.length) % choices.length;
187
+ render();
188
+ break;
189
+ case 'down':
190
+ idx = (idx + 1) % choices.length;
191
+ render();
192
+ break;
193
+ case 'return': {
194
+ const selected = choices[idx];
195
+ cleanup();
196
+ // Collapse menu to a single summary line
197
+ out(CURSOR_UP(choices.length + 1));
198
+ out(`${CLEAR_LINE} ${green('✔')} ${bold(question)} ${dim('›')} ${cyan(selected.label)}\n`);
199
+ for (let i = 0; i < choices.length; i++) {
200
+ out(`${CLEAR_LINE}${CURSOR_DN}`);
201
+ }
202
+ out('\n');
203
+ resolve(selected.value);
204
+ break;
205
+ }
206
+ }
207
+ };
208
+ function cleanup() {
209
+ process.stdin.setRawMode(false);
210
+ process.stdin.removeListener('keypress', onKeypress);
211
+ process.stdin.pause();
212
+ }
213
+ process.stdin.on('keypress', onKeypress);
214
+ });
215
+ }
216
+ // ─── Non-TTY fallback ─────────────────────────────────────────────────────────
217
+ async function _numberedSelect(question, choices) {
218
+ out(`\n ${bold(question)}\n\n`);
219
+ choices.forEach((c, i) => {
220
+ const hint = c.hint ? ` ${dim('— ' + c.hint)}` : '';
221
+ out(` ${dim(`${i + 1}.`)} ${c.label}${hint}\n`);
222
+ });
223
+ out('\n');
224
+ while (true) {
225
+ const raw = await prompt('Enter number');
226
+ const n = parseInt(raw, 10);
227
+ if (n >= 1 && n <= choices.length)
228
+ return choices[n - 1].value;
229
+ logError(`Enter a number between 1 and ${choices.length}.`);
230
+ }
231
+ }
232
+ //# sourceMappingURL=ui.js.map
package/dist/ui.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@airdraft/cli",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Airdraft CLI — init, validate, migrate",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",