@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 +29 -0
- package/dist/bin.js +29 -76
- package/dist/bin.js.map +1 -1
- package/dist/commands.d.ts +5 -0
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +240 -138
- 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,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
|
-
|
|
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
CHANGED
|
@@ -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) */
|
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
|
@@ -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 '
|
|
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
|
-
//
|
|
121
|
+
// Next.js app detection
|
|
99
122
|
// ---------------------------------------------------------------------------
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
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
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
220
|
+
mode = await ui.select('How do you want to connect your GitHub repository?', [
|
|
148
221
|
{
|
|
149
|
-
label: 'Use Airdraft\'s GitHub App
|
|
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
|
|
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
|
|
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
|
|
241
|
+
return initMode2(cwd, force, credentials);
|
|
166
242
|
case 'own-app-auto':
|
|
167
|
-
return initMode3Auto(cwd, force
|
|
243
|
+
return initMode3Auto(cwd, force);
|
|
168
244
|
case 'own-app-manual':
|
|
169
|
-
return initMode3Manual(cwd, force, credentials
|
|
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
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
await writeProjectFile(join(
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
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
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
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
|
|
225
|
-
const
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
const
|
|
232
|
-
|
|
233
|
-
|
|
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
|
-
|
|
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
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
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
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
await writeProjectFile(join(
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
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
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
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
|
-
|
|
293
|
-
|
|
294
|
-
|
|
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
|
|
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
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
const
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
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.
|
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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"}
|