@contentrail/cli 0.2.2 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -28
- package/dist/cli.d.ts +5 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +238 -140
- package/dist/cli.js.map +1 -1
- package/dist/cloudflare/pages-client.d.ts +4 -0
- package/dist/cloudflare/pages-client.d.ts.map +1 -1
- package/dist/cloudflare/pages-client.js +15 -1
- package/dist/cloudflare/pages-client.js.map +1 -1
- package/dist/commands/configure.d.ts +17 -0
- package/dist/commands/configure.d.ts.map +1 -0
- package/dist/commands/configure.js +109 -0
- package/dist/commands/configure.js.map +1 -0
- package/dist/commands/connect.d.ts +3 -0
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +37 -8
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/init-next-admin.d.ts.map +1 -1
- package/dist/commands/init-next-admin.js +34 -0
- package/dist/commands/init-next-admin.js.map +1 -1
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +141 -31
- package/dist/commands/init.js.map +1 -1
- package/dist/install/plan.d.ts +8 -0
- package/dist/install/plan.d.ts.map +1 -0
- package/dist/install/plan.js +29 -0
- package/dist/install/plan.js.map +1 -0
- package/dist/install/run.d.ts +5 -0
- package/dist/install/run.d.ts.map +1 -0
- package/dist/install/run.js +80 -0
- package/dist/install/run.js.map +1 -0
- package/dist/interactive/clack-host.d.ts +3 -0
- package/dist/interactive/clack-host.d.ts.map +1 -0
- package/dist/interactive/clack-host.js +47 -0
- package/dist/interactive/clack-host.js.map +1 -0
- package/dist/interactive/connect-wizard.d.ts +17 -0
- package/dist/interactive/connect-wizard.d.ts.map +1 -0
- package/dist/interactive/connect-wizard.js +41 -0
- package/dist/interactive/connect-wizard.js.map +1 -0
- package/dist/interactive/init-wizard.d.ts +12 -0
- package/dist/interactive/init-wizard.d.ts.map +1 -0
- package/dist/interactive/init-wizard.js +73 -0
- package/dist/interactive/init-wizard.js.map +1 -0
- package/dist/interactive/is-interactive.d.ts +9 -0
- package/dist/interactive/is-interactive.d.ts.map +1 -0
- package/dist/interactive/is-interactive.js +19 -0
- package/dist/interactive/is-interactive.js.map +1 -0
- package/dist/interactive/menu.d.ts +4 -0
- package/dist/interactive/menu.d.ts.map +1 -0
- package/dist/interactive/menu.js +55 -0
- package/dist/interactive/menu.js.map +1 -0
- package/dist/interactive/types.d.ts +34 -0
- package/dist/interactive/types.d.ts.map +1 -0
- package/dist/interactive/types.js +2 -0
- package/dist/interactive/types.js.map +1 -0
- package/package.json +5 -4
package/dist/commands/init.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
1
2
|
import path from "node:path";
|
|
2
3
|
import { CONFIG_FILE_NAME, DEFAULT_CONFIG, } from "../config/types.js";
|
|
3
4
|
import { detectFrameworkFromPackage, readPackageJson, } from "../detect/framework.js";
|
|
4
5
|
import { ExitCode } from "../exit-codes.js";
|
|
6
|
+
import { promptInitOptions } from "../interactive/init-wizard.js";
|
|
7
|
+
import { resolveInstallPlan } from "../install/plan.js";
|
|
5
8
|
import { ensureDir, writeFileSafe } from "../util/fs.js";
|
|
6
9
|
import { NEXT_ADMIN_FILES, nextAdminInstallHint, scaffoldNextAdmin, } from "./init-next-admin.js";
|
|
10
|
+
const CLI_VERSION = JSON.parse(readFileSync(new URL("../../package.json", import.meta.url), "utf8")).version;
|
|
7
11
|
export async function runInit(options, log) {
|
|
8
12
|
const nodeMajor = Number(process.versions.node.split(".")[0]);
|
|
9
13
|
if (Number.isNaN(nodeMajor) || nodeMajor < 22) {
|
|
@@ -16,7 +20,7 @@ export async function runInit(options, log) {
|
|
|
16
20
|
return ExitCode.Config;
|
|
17
21
|
}
|
|
18
22
|
const detected = detectFrameworkFromPackage(pkg);
|
|
19
|
-
|
|
23
|
+
let framework = options.framework === "astro" ||
|
|
20
24
|
options.framework === "vite" ||
|
|
21
25
|
options.framework === "next" ||
|
|
22
26
|
options.framework === "static"
|
|
@@ -24,14 +28,40 @@ export async function runInit(options, log) {
|
|
|
24
28
|
: detected === "unknown"
|
|
25
29
|
? "static"
|
|
26
30
|
: detected;
|
|
31
|
+
let withEditor = options.withEditor !== false;
|
|
32
|
+
let withFunctions = options.withFunctions !== false;
|
|
33
|
+
let force = options.force === true;
|
|
34
|
+
let shouldInstall = options.install === true;
|
|
35
|
+
if (options.interactive === true && options.prompts !== undefined) {
|
|
36
|
+
options.prompts.intro("ContentRail setup");
|
|
37
|
+
const answers = await promptInitOptions(options.prompts, detected);
|
|
38
|
+
if (answers.cancelled) {
|
|
39
|
+
return ExitCode.Success;
|
|
40
|
+
}
|
|
41
|
+
const frameworkForced = options.framework === "astro" ||
|
|
42
|
+
options.framework === "vite" ||
|
|
43
|
+
options.framework === "next" ||
|
|
44
|
+
options.framework === "static";
|
|
45
|
+
if (!frameworkForced) {
|
|
46
|
+
framework = answers.framework;
|
|
47
|
+
}
|
|
48
|
+
if (options.withEditor === undefined) {
|
|
49
|
+
withEditor = answers.withEditor;
|
|
50
|
+
}
|
|
51
|
+
if (options.withFunctions === undefined) {
|
|
52
|
+
withFunctions = answers.withFunctions;
|
|
53
|
+
}
|
|
54
|
+
if (options.force !== true) {
|
|
55
|
+
force = answers.force;
|
|
56
|
+
}
|
|
57
|
+
shouldInstall = options.install === true ? true : answers.install;
|
|
58
|
+
}
|
|
27
59
|
if (framework === "static" || framework === "next") {
|
|
28
60
|
log.info(framework === "next"
|
|
29
61
|
? 'Next.js detected: ContentRail will not generate App Router pages. Use output: "export" so Pages can serve `out/`. Init adds content, /admin (Vite bundle into public/admin), and Pages Functions.'
|
|
30
62
|
: "Generic static site: ContentRail will not generate your HTML/React pages. Init adds content, /admin (Vite bundle into public/admin), and Pages Functions.");
|
|
31
63
|
}
|
|
32
64
|
const collectionsPath = framework === "astro" ? "src/contentrail/config.ts" : "content/config.ts";
|
|
33
|
-
const withEditor = options.withEditor !== false;
|
|
34
|
-
const withFunctions = options.withFunctions !== false;
|
|
35
65
|
const config = {
|
|
36
66
|
...DEFAULT_CONFIG,
|
|
37
67
|
framework,
|
|
@@ -61,13 +91,23 @@ export async function runInit(options, log) {
|
|
|
61
91
|
for (const item of planned) {
|
|
62
92
|
log.info(` - ${item}`);
|
|
63
93
|
}
|
|
94
|
+
if (shouldInstall) {
|
|
95
|
+
const plan = resolveInstallPlan(framework, CLI_VERSION);
|
|
96
|
+
log.info("Dry run: would install:");
|
|
97
|
+
for (const pkg of plan.dependencies) {
|
|
98
|
+
log.info(` - ${pkg}`);
|
|
99
|
+
}
|
|
100
|
+
for (const pkg of plan.devDependencies) {
|
|
101
|
+
log.info(` - ${pkg} (dev)`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
64
104
|
log.info("No files were written.");
|
|
65
105
|
return ExitCode.Success;
|
|
66
106
|
}
|
|
67
|
-
const configResult = await writeFileSafe(path.join(options.projectRoot, CONFIG_FILE_NAME), `${JSON.stringify(config, null, 2)}\n`, { force
|
|
107
|
+
const configResult = await writeFileSafe(path.join(options.projectRoot, CONFIG_FILE_NAME), `${JSON.stringify(config, null, 2)}\n`, { force });
|
|
68
108
|
(configResult === "written" ? written : skipped).push(CONFIG_FILE_NAME);
|
|
69
109
|
const collectionSource = collectionModuleSource();
|
|
70
|
-
const collectionResult = await writeFileSafe(path.join(options.projectRoot, collectionsPath), collectionSource, { force
|
|
110
|
+
const collectionResult = await writeFileSafe(path.join(options.projectRoot, collectionsPath), collectionSource, { force });
|
|
71
111
|
(collectionResult === "written" ? written : skipped).push(collectionsPath);
|
|
72
112
|
await ensureDir(path.join(options.projectRoot, "content", "articles"));
|
|
73
113
|
const sampleEntry = path.join(options.projectRoot, "content", "articles", "welcome.json");
|
|
@@ -77,7 +117,7 @@ export async function runInit(options, log) {
|
|
|
77
117
|
published: true,
|
|
78
118
|
summary: "First ContentRail entry.",
|
|
79
119
|
body: "Edit this JSON or use the ContentRail editor.",
|
|
80
|
-
}, null, 2)}\n`, { force
|
|
120
|
+
}, null, 2)}\n`, { force });
|
|
81
121
|
(entryResult === "written" ? written : skipped).push("content/articles/welcome.json");
|
|
82
122
|
if (withEditor) {
|
|
83
123
|
const editorResult = await writeFileSafe(path.join(options.projectRoot, "contentrail.editor.json"), `${JSON.stringify({
|
|
@@ -124,15 +164,15 @@ export async function runInit(options, log) {
|
|
|
124
164
|
],
|
|
125
165
|
},
|
|
126
166
|
],
|
|
127
|
-
}, null, 2)}\n`, { force
|
|
167
|
+
}, null, 2)}\n`, { force });
|
|
128
168
|
(editorResult === "written" ? written : skipped).push("contentrail.editor.json");
|
|
129
169
|
}
|
|
130
170
|
if (framework === "static" || framework === "next") {
|
|
131
|
-
const htmlResult = await writeFileSafe(path.join(options.projectRoot, "admin/index.html"), ADMIN_HTML, { force
|
|
171
|
+
const htmlResult = await writeFileSafe(path.join(options.projectRoot, "admin/index.html"), ADMIN_HTML, { force });
|
|
132
172
|
(htmlResult === "written" ? written : skipped).push("admin/index.html");
|
|
133
|
-
const mainResult = await writeFileSafe(path.join(options.projectRoot, "admin/main.ts"), ADMIN_MAIN, { force
|
|
173
|
+
const mainResult = await writeFileSafe(path.join(options.projectRoot, "admin/main.ts"), ADMIN_MAIN, { force });
|
|
134
174
|
(mainResult === "written" ? written : skipped).push("admin/main.ts");
|
|
135
|
-
const nextAdmin = await scaffoldNextAdmin(options.projectRoot,
|
|
175
|
+
const nextAdmin = await scaffoldNextAdmin(options.projectRoot, force);
|
|
136
176
|
written.push(...nextAdmin.written);
|
|
137
177
|
skipped.push(...nextAdmin.skipped);
|
|
138
178
|
}
|
|
@@ -140,11 +180,11 @@ export async function runInit(options, log) {
|
|
|
140
180
|
const importPath = framework === "astro"
|
|
141
181
|
? "../../src/contentrail/config"
|
|
142
182
|
: "../../content/config";
|
|
143
|
-
const apiResult = await writeFileSafe(path.join(options.projectRoot, "functions/api/[[path]].ts"), pagesApiSource(importPath), { force
|
|
183
|
+
const apiResult = await writeFileSafe(path.join(options.projectRoot, "functions/api/[[path]].ts"), pagesApiSource(importPath), { force });
|
|
144
184
|
(apiResult === "written" ? written : skipped).push("functions/api/[[path]].ts");
|
|
145
|
-
const middlewareResult = await writeFileSafe(path.join(options.projectRoot, "functions/_middleware.ts"), PAGES_MIDDLEWARE, { force
|
|
185
|
+
const middlewareResult = await writeFileSafe(path.join(options.projectRoot, "functions/_middleware.ts"), PAGES_MIDDLEWARE, { force });
|
|
146
186
|
(middlewareResult === "written" ? written : skipped).push("functions/_middleware.ts");
|
|
147
|
-
const varsResult = await writeFileSafe(path.join(options.projectRoot, ".dev.vars.example"), DEV_VARS_EXAMPLE, { force
|
|
187
|
+
const varsResult = await writeFileSafe(path.join(options.projectRoot, ".dev.vars.example"), DEV_VARS_EXAMPLE, { force });
|
|
148
188
|
(varsResult === "written" ? written : skipped).push(".dev.vars.example");
|
|
149
189
|
}
|
|
150
190
|
log.info(`ContentRail initialized for ${framework}.`);
|
|
@@ -156,9 +196,34 @@ export async function runInit(options, log) {
|
|
|
156
196
|
.map((item) => ` - ${item}`)
|
|
157
197
|
.join("\n")}`);
|
|
158
198
|
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
199
|
+
if (shouldInstall) {
|
|
200
|
+
if (options.installDeps === undefined) {
|
|
201
|
+
log.error("Package install was requested but no installer is available. Re-run without --install or use the interactive CLI.");
|
|
202
|
+
return ExitCode.Failure;
|
|
203
|
+
}
|
|
204
|
+
const plan = resolveInstallPlan(framework, CLI_VERSION);
|
|
205
|
+
const installResult = await options.installDeps({
|
|
206
|
+
projectRoot: options.projectRoot,
|
|
207
|
+
plan,
|
|
208
|
+
dryRun: false,
|
|
209
|
+
});
|
|
210
|
+
if (!installResult.ok) {
|
|
211
|
+
log.error(installResult.detail);
|
|
212
|
+
return ExitCode.Failure;
|
|
213
|
+
}
|
|
214
|
+
log.info(installResult.detail);
|
|
215
|
+
if (options.interactive === true) {
|
|
216
|
+
options.prompts?.outro("Setup complete. Export CF_API_TOKEN, then run `contentrail` → Connect.");
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
log.info(framework === "next" || framework === "static"
|
|
221
|
+
? nextAdminInstallHint(framework)
|
|
222
|
+
: "Next: run `contentrail init --install` (or the interactive setup) to add packages, or install @contentrail/core @contentrail/editor @contentrail/cloudflare @contentrail/publisher preact@^10.26.0 zod@^4.6.7 manually. Export CF_API_TOKEN. Then `contentrail connect` and `contentrail deploy`. Protect /admin with Cloudflare Access.");
|
|
223
|
+
if (options.interactive === true) {
|
|
224
|
+
options.prompts?.outro("Files ready. Re-run setup with install, or `contentrail init --install`.");
|
|
225
|
+
}
|
|
226
|
+
}
|
|
162
227
|
return ExitCode.Success;
|
|
163
228
|
}
|
|
164
229
|
const ADMIN_HTML = `<!doctype html>
|
|
@@ -201,37 +266,47 @@ mountAdmin({
|
|
|
201
266
|
const DEV_VARS_EXAMPLE = `# Copy to .dev.vars (gitignored). Never commit secrets.
|
|
202
267
|
# Do not use PUBLIC_* or VITE_* for secrets.
|
|
203
268
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
269
|
+
# Default: username/password admin (no Zero Trust required)
|
|
270
|
+
CONTENTRAIL_ADMIN_USERNAME=admin
|
|
271
|
+
CONTENTRAIL_ADMIN_PASSWORD=
|
|
272
|
+
CONTENTRAIL_SESSION_SECRET=
|
|
273
|
+
|
|
274
|
+
CONTENTRAIL_SITE_ID=site
|
|
207
275
|
CONTENTRAIL_GIT_OWNER=
|
|
208
276
|
CONTENTRAIL_GIT_REPO=
|
|
209
277
|
CONTENTRAIL_GIT_BRANCH=main
|
|
210
278
|
CONTENTRAIL_CONTENT_ROOT=content
|
|
211
|
-
CONTENTRAIL_ADMIN_ORIGIN=http://localhost:
|
|
279
|
+
CONTENTRAIL_ADMIN_ORIGIN=http://localhost:8788
|
|
212
280
|
CONTENTRAIL_GITHUB_TOKEN=
|
|
213
281
|
`;
|
|
214
282
|
const PAGES_MIDDLEWARE = `/**
|
|
215
|
-
*
|
|
216
|
-
*
|
|
283
|
+
* Early reject for /api without session cookie, Bearer, or Access JWT.
|
|
284
|
+
* /api/login and /api/health stay public.
|
|
217
285
|
*/
|
|
218
286
|
export const onRequest: PagesFunction = async (context) => {
|
|
219
287
|
const url = new URL(context.request.url);
|
|
220
288
|
if (
|
|
221
289
|
url.pathname.startsWith("/api/") &&
|
|
222
290
|
url.pathname !== "/api/health" &&
|
|
291
|
+
url.pathname !== "/api/login" &&
|
|
223
292
|
context.request.method !== "OPTIONS"
|
|
224
293
|
) {
|
|
225
294
|
const access = context.request.headers.get("Cf-Access-Jwt-Assertion");
|
|
226
295
|
const authorization = context.request.headers.get("Authorization");
|
|
296
|
+
const cookie = context.request.headers.get("Cookie") ?? "";
|
|
227
297
|
const hasBearer =
|
|
228
298
|
authorization !== null && /^Bearer\\s+\\S+/i.test(authorization);
|
|
229
|
-
|
|
299
|
+
const hasSession = /(?:^|;\\s*)contentrail_session=/.test(cookie);
|
|
300
|
+
if (
|
|
301
|
+
(access === null || access.trim() === "") &&
|
|
302
|
+
!hasBearer &&
|
|
303
|
+
!hasSession
|
|
304
|
+
) {
|
|
230
305
|
return new Response(
|
|
231
306
|
JSON.stringify({
|
|
232
307
|
error: {
|
|
233
308
|
code: "MISSING_CREDENTIAL",
|
|
234
|
-
message: "Missing
|
|
309
|
+
message: "Missing admin session. Sign in at /admin.",
|
|
235
310
|
},
|
|
236
311
|
}),
|
|
237
312
|
{ status: 401, headers: { "content-type": "application/json" } },
|
|
@@ -244,11 +319,12 @@ export const onRequest: PagesFunction = async (context) => {
|
|
|
244
319
|
function pagesApiSource(collectionsImport) {
|
|
245
320
|
return `/**
|
|
246
321
|
* ContentRail Pages Functions API. Server-only.
|
|
247
|
-
*
|
|
322
|
+
* Default auth: username/password. Cloudflare Access is optional.
|
|
248
323
|
*/
|
|
249
324
|
import {
|
|
250
325
|
createCloudflareAccessAuthenticator,
|
|
251
326
|
createPagesSiteHandler,
|
|
327
|
+
createPasswordAuthenticator,
|
|
252
328
|
createSiteAuthorizer,
|
|
253
329
|
} from "@contentrail/cloudflare";
|
|
254
330
|
import {
|
|
@@ -259,8 +335,11 @@ import {
|
|
|
259
335
|
import { articles } from "${collectionsImport}";
|
|
260
336
|
|
|
261
337
|
interface Env {
|
|
262
|
-
|
|
263
|
-
|
|
338
|
+
CONTENTRAIL_ADMIN_USERNAME?: string;
|
|
339
|
+
CONTENTRAIL_ADMIN_PASSWORD?: string;
|
|
340
|
+
CONTENTRAIL_SESSION_SECRET?: string;
|
|
341
|
+
CONTENTRAIL_ACCESS_TEAM_DOMAIN?: string;
|
|
342
|
+
CONTENTRAIL_ACCESS_AUD?: string;
|
|
264
343
|
CONTENTRAIL_SITE_ID: string;
|
|
265
344
|
CONTENTRAIL_GIT_OWNER: string;
|
|
266
345
|
CONTENTRAIL_GIT_REPO: string;
|
|
@@ -272,12 +351,43 @@ interface Env {
|
|
|
272
351
|
|
|
273
352
|
export const onRequest: PagesFunction<Env> = async (context) => {
|
|
274
353
|
const env = context.env;
|
|
354
|
+
const passwordReady =
|
|
355
|
+
Boolean(env.CONTENTRAIL_ADMIN_USERNAME?.trim()) &&
|
|
356
|
+
Boolean(env.CONTENTRAIL_ADMIN_PASSWORD) &&
|
|
357
|
+
Boolean(env.CONTENTRAIL_SESSION_SECRET?.trim());
|
|
358
|
+
const accessReady =
|
|
359
|
+
Boolean(env.CONTENTRAIL_ACCESS_TEAM_DOMAIN?.trim()) &&
|
|
360
|
+
Boolean(env.CONTENTRAIL_ACCESS_AUD?.trim());
|
|
361
|
+
const passwordAuth = passwordReady
|
|
362
|
+
? {
|
|
363
|
+
username: env.CONTENTRAIL_ADMIN_USERNAME!.trim(),
|
|
364
|
+
password: env.CONTENTRAIL_ADMIN_PASSWORD!,
|
|
365
|
+
sessionSecret: env.CONTENTRAIL_SESSION_SECRET!.trim(),
|
|
366
|
+
}
|
|
367
|
+
: undefined;
|
|
368
|
+
const authenticator = passwordReady
|
|
369
|
+
? createPasswordAuthenticator(passwordAuth!)
|
|
370
|
+
: accessReady
|
|
371
|
+
? createCloudflareAccessAuthenticator({
|
|
372
|
+
teamDomain: env.CONTENTRAIL_ACCESS_TEAM_DOMAIN!,
|
|
373
|
+
audience: env.CONTENTRAIL_ACCESS_AUD!,
|
|
374
|
+
})
|
|
375
|
+
: {
|
|
376
|
+
async authenticate() {
|
|
377
|
+
return {
|
|
378
|
+
ok: false as const,
|
|
379
|
+
status: 401 as const,
|
|
380
|
+
code: "KEY_UNAVAILABLE" as const,
|
|
381
|
+
message:
|
|
382
|
+
"Configure CONTENTRAIL_ADMIN_USERNAME/PASSWORD/SESSION_SECRET or Cloudflare Access.",
|
|
383
|
+
};
|
|
384
|
+
},
|
|
385
|
+
};
|
|
386
|
+
|
|
275
387
|
const handler = createPagesSiteHandler({
|
|
276
388
|
siteId: env.CONTENTRAIL_SITE_ID,
|
|
277
|
-
authenticator
|
|
278
|
-
|
|
279
|
-
audience: env.CONTENTRAIL_ACCESS_AUD,
|
|
280
|
-
}),
|
|
389
|
+
authenticator,
|
|
390
|
+
...(passwordAuth !== undefined ? { passwordAuth } : {}),
|
|
281
391
|
authorizer: createSiteAuthorizer({
|
|
282
392
|
sites: {
|
|
283
393
|
[env.CONTENTRAIL_SITE_ID]: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAChB,cAAc,GAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,0BAA0B,EAC1B,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { InstallPlan } from "../interactive/types.js";
|
|
2
|
+
export type InstallFramework = "astro" | "vite" | "next" | "static";
|
|
3
|
+
/**
|
|
4
|
+
* Packages the consumer site needs after `contentrail init`.
|
|
5
|
+
* The developer installs `@contentrail/cli` only; init installs the rest.
|
|
6
|
+
*/
|
|
7
|
+
export declare function resolveInstallPlan(framework: InstallFramework, version: string): InstallPlan;
|
|
8
|
+
//# sourceMappingURL=plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/install/plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEpE;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,MAAM,GACd,WAAW,CAuBb"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Packages the consumer site needs after `contentrail init`.
|
|
3
|
+
* The developer installs `@contentrail/cli` only; init installs the rest.
|
|
4
|
+
*/
|
|
5
|
+
export function resolveInstallPlan(framework, version) {
|
|
6
|
+
const pin = (name) => `${name}@${version}`;
|
|
7
|
+
const dependencies = [
|
|
8
|
+
pin("@contentrail/core"),
|
|
9
|
+
pin("@contentrail/editor"),
|
|
10
|
+
pin("@contentrail/publisher"),
|
|
11
|
+
pin("@contentrail/cloudflare"),
|
|
12
|
+
"preact@^10.26.0",
|
|
13
|
+
"zod@^4.6.7",
|
|
14
|
+
];
|
|
15
|
+
const devDependencies = [];
|
|
16
|
+
if (framework === "astro") {
|
|
17
|
+
dependencies.push(pin("@contentrail/astro"), pin("@contentrail/reader"));
|
|
18
|
+
}
|
|
19
|
+
else if (framework === "vite") {
|
|
20
|
+
dependencies.push(pin("@contentrail/vite"), pin("@contentrail/reader"));
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
// Next / generic static: Vite builds /admin into public/admin.
|
|
24
|
+
dependencies.push(pin("@contentrail/reader"));
|
|
25
|
+
devDependencies.push("vite@^8.3.5");
|
|
26
|
+
}
|
|
27
|
+
return { dependencies, devDependencies };
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/install/plan.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,SAA2B,EAC3B,OAAe;IAEf,MAAM,GAAG,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC;IAC3D,MAAM,YAAY,GAAG;QACnB,GAAG,CAAC,mBAAmB,CAAC;QACxB,GAAG,CAAC,qBAAqB,CAAC;QAC1B,GAAG,CAAC,wBAAwB,CAAC;QAC7B,GAAG,CAAC,yBAAyB,CAAC;QAC9B,iBAAiB;QACjB,YAAY;KACb,CAAC;IACF,MAAM,eAAe,GAAa,EAAE,CAAC;IAErC,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC1B,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC3E,CAAC;SAAM,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QAChC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC1E,CAAC;SAAM,CAAC;QACN,+DAA+D;QAC/D,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC9C,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/install/run.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,yBAAyB,CAAC;AAmC5E,wBAAgB,0BAA0B,CAAC,OAAO,CAAC,EAAE;IACnD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAClC,GAAG,aAAa,CAiEhB"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { detectPackageManager } from "../detect/framework.js";
|
|
2
|
+
import { runCommand } from "../util/spawn.js";
|
|
3
|
+
function packageManagerArgs(manager, kind, packages) {
|
|
4
|
+
if (manager === "pnpm") {
|
|
5
|
+
return {
|
|
6
|
+
command: "pnpm",
|
|
7
|
+
args: kind === "devDependencies"
|
|
8
|
+
? ["add", "-D", ...packages]
|
|
9
|
+
: ["add", ...packages],
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
if (manager === "yarn") {
|
|
13
|
+
return {
|
|
14
|
+
command: "yarn",
|
|
15
|
+
args: kind === "devDependencies"
|
|
16
|
+
? ["add", "-D", ...packages]
|
|
17
|
+
: ["add", ...packages],
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
command: "npm",
|
|
22
|
+
args: kind === "devDependencies"
|
|
23
|
+
? ["install", "-D", ...packages]
|
|
24
|
+
: ["install", ...packages],
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export function createPackageInstallRunner(options) {
|
|
28
|
+
return async ({ projectRoot, plan, dryRun }) => {
|
|
29
|
+
if (plan.dependencies.length === 0 && plan.devDependencies.length === 0) {
|
|
30
|
+
return { ok: true, skipped: true, detail: "Nothing to install." };
|
|
31
|
+
}
|
|
32
|
+
const detected = await detectPackageManager(projectRoot);
|
|
33
|
+
const manager = detected === "unknown" ? "npm" : detected;
|
|
34
|
+
const lines = [
|
|
35
|
+
...plan.dependencies.map((pkg) => ` ${pkg}`),
|
|
36
|
+
...plan.devDependencies.map((pkg) => ` ${pkg} (dev)`),
|
|
37
|
+
];
|
|
38
|
+
if (dryRun) {
|
|
39
|
+
return {
|
|
40
|
+
ok: true,
|
|
41
|
+
skipped: true,
|
|
42
|
+
detail: `Dry run: would install with ${manager}:\n${lines.join("\n")}`,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
if (plan.dependencies.length > 0) {
|
|
46
|
+
const { command, args } = packageManagerArgs(manager, "dependencies", plan.dependencies);
|
|
47
|
+
const result = await runCommand(command, args, {
|
|
48
|
+
cwd: projectRoot,
|
|
49
|
+
...(options?.env !== undefined ? { env: options.env } : {}),
|
|
50
|
+
});
|
|
51
|
+
if (result.code !== 0) {
|
|
52
|
+
return {
|
|
53
|
+
ok: false,
|
|
54
|
+
skipped: false,
|
|
55
|
+
detail: `${command} ${args.join(" ")} failed:\n${result.stderr || result.stdout}`,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (plan.devDependencies.length > 0) {
|
|
60
|
+
const { command, args } = packageManagerArgs(manager, "devDependencies", plan.devDependencies);
|
|
61
|
+
const result = await runCommand(command, args, {
|
|
62
|
+
cwd: projectRoot,
|
|
63
|
+
...(options?.env !== undefined ? { env: options.env } : {}),
|
|
64
|
+
});
|
|
65
|
+
if (result.code !== 0) {
|
|
66
|
+
return {
|
|
67
|
+
ok: false,
|
|
68
|
+
skipped: false,
|
|
69
|
+
detail: `${command} ${args.join(" ")} failed:\n${result.stderr || result.stdout}`,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
ok: true,
|
|
75
|
+
skipped: false,
|
|
76
|
+
detail: `Installed with ${manager}:\n${lines.join("\n")}`,
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/install/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clack-host.d.ts","sourceRoot":"","sources":["../../src/interactive/clack-host.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAgB,MAAM,YAAY,CAAC;AAE3D,wBAAgB,qBAAqB,IAAI,UAAU,CA+ClD"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import * as p from "@clack/prompts";
|
|
2
|
+
export function createClackPromptHost() {
|
|
3
|
+
return {
|
|
4
|
+
intro(message) {
|
|
5
|
+
p.intro(message);
|
|
6
|
+
},
|
|
7
|
+
outro(message) {
|
|
8
|
+
p.outro(message);
|
|
9
|
+
},
|
|
10
|
+
note(message, title) {
|
|
11
|
+
p.note(message, title);
|
|
12
|
+
},
|
|
13
|
+
async select(message, options) {
|
|
14
|
+
// @clack Option<T> is incompatible with exactOptionalPropertyTypes for hints.
|
|
15
|
+
const value = await p.select({
|
|
16
|
+
message,
|
|
17
|
+
options: options.map((option) => ({
|
|
18
|
+
value: option.value,
|
|
19
|
+
label: option.label,
|
|
20
|
+
...(option.hint !== undefined ? { hint: option.hint } : {}),
|
|
21
|
+
})),
|
|
22
|
+
});
|
|
23
|
+
return value;
|
|
24
|
+
},
|
|
25
|
+
async confirm(message, initial = true) {
|
|
26
|
+
return p.confirm({ message, initialValue: initial });
|
|
27
|
+
},
|
|
28
|
+
async text(message, options) {
|
|
29
|
+
return p.text({
|
|
30
|
+
message,
|
|
31
|
+
...(options?.placeholder !== undefined
|
|
32
|
+
? { placeholder: options.placeholder }
|
|
33
|
+
: {}),
|
|
34
|
+
...(options?.initialValue !== undefined
|
|
35
|
+
? { initialValue: options.initialValue }
|
|
36
|
+
: {}),
|
|
37
|
+
});
|
|
38
|
+
},
|
|
39
|
+
cancel(message = "Cancelled.") {
|
|
40
|
+
p.cancel(message);
|
|
41
|
+
},
|
|
42
|
+
isCancel(value) {
|
|
43
|
+
return p.isCancel(value);
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=clack-host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clack-host.js","sourceRoot":"","sources":["../../src/interactive/clack-host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAGpC,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,KAAK,CAAC,OAAO;YACX,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC;QACD,KAAK,CAAC,OAAO;YACX,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,KAAK;YACjB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,KAAK,CAAC,MAAM,CACV,OAAe,EACf,OAAmC;YAEnC,8EAA8E;YAC9E,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC;gBAC3B,OAAO;gBACP,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;oBAChC,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC5D,CAAC,CAAC;aAC8B,CAAC,CAAC;YACrC,OAAO,KAAmB,CAAC;QAC7B,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;YACnC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO;YACzB,OAAO,CAAC,CAAC,IAAI,CAAC;gBACZ,OAAO;gBACP,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,SAAS;oBACpC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE;oBACtC,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,OAAO,EAAE,YAAY,KAAK,SAAS;oBACrC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE;oBACxC,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;QACL,CAAC;QACD,MAAM,CAAC,OAAO,GAAG,YAAY;YAC3B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;QACD,QAAQ,CAAC,KAAK;YACZ,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { PromptHost } from "./types.js";
|
|
2
|
+
export interface ConnectWizardAccount {
|
|
3
|
+
readonly id: string;
|
|
4
|
+
readonly name: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ConnectWizardResult {
|
|
7
|
+
readonly cancelled: boolean;
|
|
8
|
+
readonly accountId?: string;
|
|
9
|
+
readonly projectName?: string;
|
|
10
|
+
readonly confirmApply: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function promptConnectOptions(host: PromptHost, input: {
|
|
13
|
+
readonly accounts: readonly ConnectWizardAccount[];
|
|
14
|
+
readonly defaultAccountId?: string;
|
|
15
|
+
readonly defaultProjectName: string;
|
|
16
|
+
}): Promise<ConnectWizardResult>;
|
|
17
|
+
//# sourceMappingURL=connect-wizard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect-wizard.d.ts","sourceRoot":"","sources":["../../src/interactive/connect-wizard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE;IACL,QAAQ,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACnD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC,GACA,OAAO,CAAC,mBAAmB,CAAC,CAmD9B"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export async function promptConnectOptions(host, input) {
|
|
2
|
+
let accountId = input.defaultAccountId;
|
|
3
|
+
if (accountId === undefined || accountId === "") {
|
|
4
|
+
if (input.accounts.length === 1) {
|
|
5
|
+
accountId = input.accounts[0].id;
|
|
6
|
+
host.note(`${input.accounts[0].name} (${accountId})`, "Cloudflare account");
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
const selected = await host.select("Which Cloudflare account?", input.accounts.map((account) => ({
|
|
10
|
+
value: account.id,
|
|
11
|
+
label: account.name,
|
|
12
|
+
hint: account.id,
|
|
13
|
+
})));
|
|
14
|
+
if (host.isCancel(selected)) {
|
|
15
|
+
host.cancel("Connect cancelled.");
|
|
16
|
+
return { cancelled: true, confirmApply: false };
|
|
17
|
+
}
|
|
18
|
+
accountId = selected;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
const projectName = await host.text("Pages project name", {
|
|
22
|
+
initialValue: input.defaultProjectName,
|
|
23
|
+
placeholder: input.defaultProjectName,
|
|
24
|
+
});
|
|
25
|
+
if (host.isCancel(projectName) || projectName.trim() === "") {
|
|
26
|
+
host.cancel("Connect cancelled.");
|
|
27
|
+
return { cancelled: true, confirmApply: false };
|
|
28
|
+
}
|
|
29
|
+
const confirmApply = await host.confirm("Create or patch this Cloudflare Pages project now?", false);
|
|
30
|
+
if (host.isCancel(confirmApply)) {
|
|
31
|
+
host.cancel("Connect cancelled.");
|
|
32
|
+
return { cancelled: true, confirmApply: false };
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
cancelled: false,
|
|
36
|
+
accountId,
|
|
37
|
+
projectName: projectName.trim(),
|
|
38
|
+
confirmApply,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=connect-wizard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect-wizard.js","sourceRoot":"","sources":["../../src/interactive/connect-wizard.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAgB,EAChB,KAIC;IAED,IAAI,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC;IAEvC,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QAChD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CACP,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,IAAI,KAAK,SAAS,GAAG,EAC3C,oBAAoB,CACrB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAChC,2BAA2B,EAC3B,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC/B,KAAK,EAAE,OAAO,CAAC,EAAE;gBACjB,KAAK,EAAE,OAAO,CAAC,IAAI;gBACnB,IAAI,EAAE,OAAO,CAAC,EAAE;aACjB,CAAC,CAAC,CACJ,CAAC;YACF,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;gBAClC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;YAClD,CAAC;YACD,SAAS,GAAG,QAAQ,CAAC;QACvB,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;QACxD,YAAY,EAAE,KAAK,CAAC,kBAAkB;QACtC,WAAW,EAAE,KAAK,CAAC,kBAAkB;KACtC,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAClC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IAClD,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CACrC,oDAAoD,EACpD,KAAK,CACN,CAAC;IACF,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAClC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IAClD,CAAC;IAED,OAAO;QACL,SAAS,EAAE,KAAK;QAChB,SAAS;QACT,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE;QAC/B,YAAY;KACb,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { DetectedFramework } from "../detect/framework.js";
|
|
2
|
+
import type { PromptHost } from "./types.js";
|
|
3
|
+
export interface InitWizardResult {
|
|
4
|
+
readonly framework: "astro" | "vite" | "next" | "static";
|
|
5
|
+
readonly withEditor: boolean;
|
|
6
|
+
readonly withFunctions: boolean;
|
|
7
|
+
readonly force: boolean;
|
|
8
|
+
readonly install: boolean;
|
|
9
|
+
readonly cancelled: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare function promptInitOptions(host: PromptHost, detected: DetectedFramework): Promise<InitWizardResult>;
|
|
12
|
+
//# sourceMappingURL=init-wizard.d.ts.map
|