@airdraft/cli 0.1.0 → 0.1.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.
- package/CHANGELOG.md +22 -0
- package/dist/bin.js +29 -76
- package/dist/bin.js.map +1 -1
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +158 -141
- package/dist/commands.js.map +1 -1
- package/dist/ui.d.ts +46 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +232 -0
- package/dist/ui.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
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.1](https://github.com/aevrHQ/airdraft/compare/cli@v0.1.0...cli@v0.1.1) (2026-05-22)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* add versioning and changelog support for all packages ([d6c85df](https://github.com/aevrHQ/airdraft/commit/d6c85dfed37f11c42151c93b49a80ede90699616))
|
|
11
|
+
* implement terminal UI helpers for improved user interaction ([0e0dca4](https://github.com/aevrHQ/airdraft/commit/0e0dca4a4e06196abea22e99c9a350fdd202a948))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
* improve error handling for missing schema file in buildProjectHandler ([4c3d318](https://github.com/aevrHQ/airdraft/commit/4c3d3184c9c454062fd2d9b33fb0593d5e91b71c))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Documentation
|
|
20
|
+
|
|
21
|
+
* add Releasing & Publishing section to README ([132193b](https://github.com/aevrHQ/airdraft/commit/132193bebff585ad3223ccb82176c30615f21443))
|
|
22
|
+
|
|
23
|
+
# Changelog
|
|
24
|
+
|
|
3
25
|
All notable changes to `@airdraft/cli` will be documented here.
|
|
4
26
|
|
|
5
27
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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) =>
|
|
55
|
-
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
|
-
|
|
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) =>
|
|
108
|
+
log: (msg) => process.stdout.write(msg + '\n'),
|
|
111
109
|
});
|
|
112
110
|
}
|
|
113
111
|
catch (err) {
|
|
114
|
-
|
|
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
|
-
|
|
170
|
-
|
|
171
|
-
|
|
128
|
+
const email = opts.email ?? await ui.prompt('Email', {
|
|
129
|
+
validate: (v) => v ? null : 'Email is required.',
|
|
130
|
+
});
|
|
172
131
|
if (!email) {
|
|
173
|
-
|
|
132
|
+
ui.logError('Email is required.');
|
|
174
133
|
process.exit(1);
|
|
175
134
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
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
|
-
|
|
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
|
-
|
|
150
|
+
ui.logError('Passwords do not match.');
|
|
198
151
|
process.exit(1);
|
|
199
152
|
}
|
|
200
153
|
try {
|
|
201
|
-
await createUser({ email, password, role
|
|
154
|
+
await createUser({ email, password, role, name, cwd: opts.cwd });
|
|
202
155
|
}
|
|
203
156
|
catch (err) {
|
|
204
|
-
|
|
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) =>
|
|
170
|
+
await loginCloud({ cloudUrl: opts.cloudUrl, log: (msg) => process.stdout.write(msg + '\n') });
|
|
218
171
|
}
|
|
219
172
|
catch (err) {
|
|
220
|
-
|
|
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":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE/H,OAAO,
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
package/dist/commands.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
|
package/dist/commands.js
CHANGED
|
@@ -3,6 +3,7 @@ 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
|
// ---------------------------------------------------------------------------
|
|
@@ -11,6 +12,28 @@ 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,20 @@ 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)
|
|
99
|
-
// ---------------------------------------------------------------------------
|
|
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
|
-
});
|
|
108
|
-
}
|
|
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`);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
// ---------------------------------------------------------------------------
|
|
121
121
|
// File write helper
|
|
122
122
|
// ---------------------------------------------------------------------------
|
|
123
|
-
async function writeProjectFile(filePath, content, force
|
|
123
|
+
async function writeProjectFile(filePath, content, force) {
|
|
124
124
|
if (!force) {
|
|
125
125
|
const exists = await access(filePath).then(() => true).catch(() => false);
|
|
126
126
|
if (exists) {
|
|
127
|
-
|
|
127
|
+
ui.fileSkipped(filePath);
|
|
128
128
|
return;
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
131
|
const { mkdir } = await import('node:fs/promises');
|
|
132
132
|
await mkdir(resolve(filePath, '..'), { recursive: true });
|
|
133
133
|
await writeFile(filePath, content, 'utf8');
|
|
134
|
-
|
|
134
|
+
ui.fileWritten(filePath);
|
|
135
135
|
}
|
|
136
136
|
// ---------------------------------------------------------------------------
|
|
137
137
|
// initProject — entry point
|
|
@@ -144,17 +144,20 @@ export async function initProject(opts = {}) {
|
|
|
144
144
|
// Mode selection
|
|
145
145
|
let mode = opts.mode;
|
|
146
146
|
if (!mode) {
|
|
147
|
-
mode = await
|
|
147
|
+
mode = await ui.select('How do you want to connect your GitHub repository?', [
|
|
148
148
|
{
|
|
149
|
-
label: 'Use Airdraft\'s GitHub App
|
|
149
|
+
label: 'Use Airdraft\'s GitHub App',
|
|
150
|
+
hint: 'recommended — Airdraft Cloud account required',
|
|
150
151
|
value: 'cloud-app',
|
|
151
152
|
},
|
|
152
153
|
{
|
|
153
|
-
label: 'Register your own GitHub App
|
|
154
|
+
label: 'Register your own GitHub App',
|
|
155
|
+
hint: 'automatic via browser, no cloud account needed',
|
|
154
156
|
value: 'own-app-auto',
|
|
155
157
|
},
|
|
156
158
|
{
|
|
157
|
-
label: 'Enter GitHub App credentials manually
|
|
159
|
+
label: 'Enter GitHub App credentials manually',
|
|
160
|
+
hint: 'for CI / headless environments',
|
|
158
161
|
value: 'own-app-manual',
|
|
159
162
|
},
|
|
160
163
|
]);
|
|
@@ -162,75 +165,75 @@ export async function initProject(opts = {}) {
|
|
|
162
165
|
log('');
|
|
163
166
|
switch (mode) {
|
|
164
167
|
case 'cloud-app':
|
|
165
|
-
return initMode2(cwd, force, credentials
|
|
168
|
+
return initMode2(cwd, force, credentials);
|
|
166
169
|
case 'own-app-auto':
|
|
167
|
-
return initMode3Auto(cwd, force
|
|
170
|
+
return initMode3Auto(cwd, force);
|
|
168
171
|
case 'own-app-manual':
|
|
169
|
-
return initMode3Manual(cwd, force, credentials
|
|
172
|
+
return initMode3Manual(cwd, force, credentials);
|
|
170
173
|
}
|
|
171
174
|
}
|
|
172
175
|
// ---------------------------------------------------------------------------
|
|
173
176
|
// Mode 2 — Airdraft's GitHub App
|
|
174
177
|
// ---------------------------------------------------------------------------
|
|
175
|
-
async function initMode2(cwd, force, credentials
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
await writeProjectFile(join(cwd, '
|
|
200
|
-
await writeProjectFile(join(cwd, '
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
178
|
+
async function initMode2(cwd, force, credentials) {
|
|
179
|
+
ui.section('Airdraft Cloud (Mode 2)');
|
|
180
|
+
ui.info('You need an Airdraft Cloud account with a project set up.');
|
|
181
|
+
ui.info('If you haven\'t done this yet, visit https://app.airdraft.space');
|
|
182
|
+
ui.info('and create a project, then copy the project key from its settings.');
|
|
183
|
+
process.stdout.write('\n');
|
|
184
|
+
const projectKey = credentials.projectKey ?? await ui.prompt('Airdraft project key', {
|
|
185
|
+
hint: 'starts with ntk_ — find it in your project settings',
|
|
186
|
+
validate: (v) => v.startsWith('ntk_')
|
|
187
|
+
? null
|
|
188
|
+
: 'Project keys start with "ntk_". Check the dashboard and try again.',
|
|
189
|
+
});
|
|
190
|
+
const repo = credentials.repo ?? await ui.prompt('GitHub repo', {
|
|
191
|
+
hint: 'e.g. myorg/mysite',
|
|
192
|
+
validate: (v) => v.includes('/')
|
|
193
|
+
? null
|
|
194
|
+
: 'Enter in owner/repo format, e.g. "myorg/mysite".',
|
|
195
|
+
});
|
|
196
|
+
const branch = credentials.branch ?? await ui.prompt('Default branch', { default: 'main' });
|
|
197
|
+
process.stdout.write('\n');
|
|
198
|
+
ui.info('Creating project files…');
|
|
199
|
+
process.stdout.write('\n');
|
|
200
|
+
await writeProjectFile(join(cwd, 'airdraft.config.ts'), mode2ConfigTemplate({ repo, branch }), force);
|
|
201
|
+
await writeProjectFile(join(cwd, 'app/api/cms/[...route]/route.ts'), ROUTE_HANDLER_TEMPLATE, force);
|
|
202
|
+
await writeProjectFile(join(cwd, '.env.local'), mode2EnvTemplate({ projectKey, repo, branch }), force);
|
|
203
|
+
await writeProjectFile(join(cwd, 'airdraft.schema.json'), SCHEMA_JSON_TEMPLATE, force);
|
|
204
|
+
ui.successBox('Airdraft initialized (Mode 2 — Airdraft Cloud)');
|
|
205
|
+
ui.nextSteps([
|
|
206
|
+
{ label: 'Install dependencies:', commands: ['npm install @airdraft/core @airdraft/next'] },
|
|
207
|
+
{
|
|
208
|
+
label: 'Commit and push airdraft.schema.json so the dashboard can read your schema:',
|
|
209
|
+
commands: [
|
|
210
|
+
'git add airdraft.schema.json',
|
|
211
|
+
'git commit -m "chore: add airdraft schema"',
|
|
212
|
+
'git push',
|
|
213
|
+
],
|
|
214
|
+
},
|
|
215
|
+
'Keep AIRDRAFT_PROJECT_KEY secure — it grants write access to your repository.',
|
|
216
|
+
'Open the dashboard to manage your content: https://app.airdraft.space',
|
|
217
|
+
]);
|
|
209
218
|
}
|
|
210
219
|
// ---------------------------------------------------------------------------
|
|
211
220
|
// Mode 3 automatic — GitHub App Manifest flow
|
|
212
221
|
// ---------------------------------------------------------------------------
|
|
213
|
-
async function initMode3Auto(cwd, force
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
log('');
|
|
220
|
-
const owner = await cliPrompt(' GitHub org or username (e.g. "myorg"): ');
|
|
222
|
+
async function initMode3Auto(cwd, force) {
|
|
223
|
+
ui.section('Own GitHub App (Mode 3 — automatic setup)');
|
|
224
|
+
ui.info('This will register a private GitHub App in your account or organisation.');
|
|
225
|
+
ui.info('You\'ll need to click "Create GitHub App" once in the browser — that\'s it.');
|
|
226
|
+
process.stdout.write('\n');
|
|
227
|
+
const owner = await ui.prompt('GitHub org or username', { hint: 'e.g. myorg' });
|
|
221
228
|
if (!owner)
|
|
222
229
|
throw new Error('Owner is required.');
|
|
223
230
|
const defaultAppName = `airdraft-${owner.toLowerCase().replace(/[^a-z0-9]/g, '-')}`;
|
|
224
|
-
const
|
|
225
|
-
const
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
}
|
|
231
|
-
const branchRaw = await cliPrompt(' Default branch [main]: ');
|
|
232
|
-
const branch = branchRaw || 'main';
|
|
233
|
-
log('');
|
|
231
|
+
const appName = await ui.prompt('App name', { default: defaultAppName });
|
|
232
|
+
const repo = await ui.prompt('GitHub repo to connect', {
|
|
233
|
+
hint: 'e.g. myorg/mysite',
|
|
234
|
+
validate: (v) => v.includes('/') ? null : 'Enter in owner/repo format, e.g. "myorg/mysite".',
|
|
235
|
+
});
|
|
236
|
+
const branch = await ui.prompt('Default branch', { default: 'main' });
|
|
234
237
|
// Run App Manifest + Installation flows
|
|
235
238
|
const { findFreePort, createCallbackServer, runAppManifestFlow, waitForGitHubInstall } = await import('./github.js');
|
|
236
239
|
const port = await findFreePort();
|
|
@@ -240,81 +243,95 @@ async function initMode3Auto(cwd, force, log) {
|
|
|
240
243
|
let privateKey;
|
|
241
244
|
let installationId;
|
|
242
245
|
try {
|
|
243
|
-
|
|
244
|
-
const manifest = await runAppManifestFlow({ owner, appName, port, log });
|
|
246
|
+
ui.stepHeader(1, 2, 'Create GitHub App');
|
|
247
|
+
const manifest = await runAppManifestFlow({ owner, appName, port, log: ui.log });
|
|
245
248
|
appId = manifest.appId;
|
|
246
249
|
appSlug = manifest.appSlug;
|
|
247
250
|
privateKey = manifest.privateKey;
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
log(` ✓ App installed (installation id: ${installationId})`);
|
|
251
|
+
ui.logSuccess(`GitHub App created ${appSlug} (id: ${appId})`);
|
|
252
|
+
ui.stepHeader(2, 2, 'Install the App on your repository');
|
|
253
|
+
installationId = await waitForGitHubInstall({ appSlug, server, log: ui.log });
|
|
254
|
+
ui.logSuccess(`App installed (installation id: ${installationId})`);
|
|
253
255
|
}
|
|
254
256
|
finally {
|
|
255
257
|
await server.close();
|
|
256
258
|
}
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
await writeProjectFile(join(cwd, '.
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
259
|
+
process.stdout.write('\n');
|
|
260
|
+
ui.info('Creating project files…');
|
|
261
|
+
process.stdout.write('\n');
|
|
262
|
+
await writeProjectFile(join(cwd, 'airdraft.config.ts'), mode3ConfigTemplate({ appId: String(appId), privateKey, installationId: String(installationId), repo, branch }), force);
|
|
263
|
+
await writeProjectFile(join(cwd, 'app/api/cms/[...route]/route.ts'), ROUTE_HANDLER_TEMPLATE, force);
|
|
264
|
+
await writeProjectFile(join(cwd, '.env.local'), mode3EnvTemplate({ appId: String(appId), privateKey, installationId: String(installationId), repo, branch }), force);
|
|
265
|
+
await writeProjectFile(join(cwd, 'airdraft.schema.json'), SCHEMA_JSON_TEMPLATE, force);
|
|
266
|
+
ui.successBox('Airdraft initialized (Mode 3 — own GitHub App)');
|
|
267
|
+
ui.nextSteps([
|
|
268
|
+
{ label: 'Install dependencies:', commands: ['npm install @airdraft/core @airdraft/next'] },
|
|
269
|
+
{
|
|
270
|
+
label: 'Commit and push airdraft.schema.json so the dashboard can read your schema:',
|
|
271
|
+
commands: [
|
|
272
|
+
'git add airdraft.schema.json',
|
|
273
|
+
'git commit -m "chore: add airdraft schema"',
|
|
274
|
+
'git push',
|
|
275
|
+
],
|
|
276
|
+
},
|
|
277
|
+
'Keep GITCMS_PRIVATE_KEY secret — it grants write access to your repository.',
|
|
278
|
+
'Visit /api/cms/schema to verify the self-hosted setup.',
|
|
279
|
+
]);
|
|
274
280
|
}
|
|
275
281
|
// ---------------------------------------------------------------------------
|
|
276
282
|
// Mode 3 manual — prompt for all credentials
|
|
277
283
|
// ---------------------------------------------------------------------------
|
|
278
|
-
async function initMode3Manual(cwd, force, credentials
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
284
|
+
async function initMode3Manual(cwd, force, credentials) {
|
|
285
|
+
ui.section('Own GitHub App (Mode 3 — manual setup)');
|
|
286
|
+
ui.info('You will need:');
|
|
287
|
+
ui.info(' • GitHub App ID — from the App\'s "General" settings page');
|
|
288
|
+
ui.info(' • GitHub App private key — PEM downloaded from App settings → "Private keys"');
|
|
289
|
+
ui.info(' • Installation ID — shown after installing the App on your repo');
|
|
290
|
+
process.stdout.write('\n');
|
|
291
|
+
const appId = credentials.appId ?? await ui.prompt('GitHub App ID', {
|
|
292
|
+
validate: (v) => !v || isNaN(Number(v)) ? 'App ID must be a number.' : null,
|
|
293
|
+
});
|
|
288
294
|
if (!appId || isNaN(Number(appId)))
|
|
289
295
|
throw new Error('App ID must be a number.');
|
|
290
296
|
let privateKey = credentials.privateKey ?? '';
|
|
291
297
|
if (!privateKey) {
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
298
|
+
ui.info('Paste your GitHub App private key (full PEM).');
|
|
299
|
+
ui.info('Start with "-----BEGIN RSA PRIVATE KEY-----" and paste all lines.');
|
|
300
|
+
ui.info('Enter a blank line followed by END when done.');
|
|
301
|
+
process.stdout.write('\n');
|
|
295
302
|
privateKey = await readMultilinePem();
|
|
296
303
|
}
|
|
297
|
-
const installationId = credentials.installationId ?? await
|
|
304
|
+
const installationId = credentials.installationId ?? await ui.prompt('Installation ID', {
|
|
305
|
+
validate: (v) => !v || isNaN(Number(v)) ? 'Installation ID must be a number.' : null,
|
|
306
|
+
});
|
|
298
307
|
if (!installationId || isNaN(Number(installationId)))
|
|
299
308
|
throw new Error('Installation ID must be a number.');
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
await writeProjectFile(join(cwd, 'airdraft.config.ts'), mode3ConfigTemplate({ appId, privateKey, installationId, repo, branch }), force
|
|
309
|
-
await writeProjectFile(join(cwd, 'app/api/cms/[...route]/route.ts'), ROUTE_HANDLER_TEMPLATE, force
|
|
310
|
-
await writeProjectFile(join(cwd, '.env.local'), mode3EnvTemplate({ appId, privateKey, installationId, repo, branch }), force
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
309
|
+
const repo = credentials.repo ?? await ui.prompt('GitHub repo', {
|
|
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 = credentials.branch ?? await ui.prompt('Default branch', { default: 'main' });
|
|
314
|
+
process.stdout.write('\n');
|
|
315
|
+
ui.info('Creating project files…');
|
|
316
|
+
process.stdout.write('\n');
|
|
317
|
+
await writeProjectFile(join(cwd, 'airdraft.config.ts'), mode3ConfigTemplate({ appId, privateKey, installationId, repo, branch }), force);
|
|
318
|
+
await writeProjectFile(join(cwd, 'app/api/cms/[...route]/route.ts'), ROUTE_HANDLER_TEMPLATE, force);
|
|
319
|
+
await writeProjectFile(join(cwd, '.env.local'), mode3EnvTemplate({ appId, privateKey, installationId, repo, branch }), force);
|
|
320
|
+
await writeProjectFile(join(cwd, 'airdraft.schema.json'), SCHEMA_JSON_TEMPLATE, force);
|
|
321
|
+
ui.successBox('Airdraft initialized (Mode 3 — own GitHub App, manual)');
|
|
322
|
+
ui.nextSteps([
|
|
323
|
+
{ label: 'Install dependencies:', commands: ['npm install @airdraft/core @airdraft/next'] },
|
|
324
|
+
{
|
|
325
|
+
label: 'Commit and push airdraft.schema.json so the dashboard can read your schema:',
|
|
326
|
+
commands: [
|
|
327
|
+
'git add airdraft.schema.json',
|
|
328
|
+
'git commit -m "chore: add airdraft schema"',
|
|
329
|
+
'git push',
|
|
330
|
+
],
|
|
331
|
+
},
|
|
332
|
+
'Keep .env.local out of version control — it contains your private key.',
|
|
333
|
+
'Visit /api/cms/schema to verify the self-hosted setup.',
|
|
334
|
+
]);
|
|
318
335
|
}
|
|
319
336
|
/**
|
|
320
337
|
* Reads a multi-line PEM from stdin.
|
package/dist/commands.js.map
CHANGED
|
@@ -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
|
package/dist/ui.d.ts.map
ADDED
|
@@ -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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"}
|