@byline/cli 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/LICENSE +373 -0
- package/README.md +23 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +72 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/doctor.d.ts +2 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +36 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/init.d.ts +16 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +76 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/context.d.ts +38 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +37 -0
- package/dist/context.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/pg-url.d.ts +11 -0
- package/dist/lib/pg-url.d.ts.map +1 -0
- package/dist/lib/pg-url.js +22 -0
- package/dist/lib/pg-url.js.map +1 -0
- package/dist/manifest/deps.d.ts +29 -0
- package/dist/manifest/deps.d.ts.map +1 -0
- package/dist/manifest/deps.js +97 -0
- package/dist/manifest/deps.js.map +1 -0
- package/dist/manifest/env.d.ts +18 -0
- package/dist/manifest/env.d.ts.map +1 -0
- package/dist/manifest/env.js +38 -0
- package/dist/manifest/env.js.map +1 -0
- package/dist/phases/db-init.d.ts +3 -0
- package/dist/phases/db-init.d.ts.map +1 -0
- package/dist/phases/db-init.js +163 -0
- package/dist/phases/db-init.js.map +1 -0
- package/dist/phases/db.d.ts +11 -0
- package/dist/phases/db.d.ts.map +1 -0
- package/dist/phases/db.js +93 -0
- package/dist/phases/db.js.map +1 -0
- package/dist/phases/deps.d.ts +3 -0
- package/dist/phases/deps.d.ts.map +1 -0
- package/dist/phases/deps.js +115 -0
- package/dist/phases/deps.js.map +1 -0
- package/dist/phases/env.d.ts +3 -0
- package/dist/phases/env.d.ts.map +1 -0
- package/dist/phases/env.js +172 -0
- package/dist/phases/env.js.map +1 -0
- package/dist/phases/host.d.ts +3 -0
- package/dist/phases/host.d.ts.map +1 -0
- package/dist/phases/host.js +99 -0
- package/dist/phases/host.js.map +1 -0
- package/dist/phases/index.d.ts +7 -0
- package/dist/phases/index.d.ts.map +1 -0
- package/dist/phases/index.js +40 -0
- package/dist/phases/index.js.map +1 -0
- package/dist/phases/preflight.d.ts +4 -0
- package/dist/phases/preflight.d.ts.map +1 -0
- package/dist/phases/preflight.js +81 -0
- package/dist/phases/preflight.js.map +1 -0
- package/dist/phases/routes.d.ts +3 -0
- package/dist/phases/routes.d.ts.map +1 -0
- package/dist/phases/routes.js +145 -0
- package/dist/phases/routes.js.map +1 -0
- package/dist/phases/scaffold.d.ts +3 -0
- package/dist/phases/scaffold.d.ts.map +1 -0
- package/dist/phases/scaffold.js +113 -0
- package/dist/phases/scaffold.js.map +1 -0
- package/dist/phases/stub.d.ts +3 -0
- package/dist/phases/stub.d.ts.map +1 -0
- package/dist/phases/stub.js +25 -0
- package/dist/phases/stub.js.map +1 -0
- package/dist/phases/ui.d.ts +3 -0
- package/dist/phases/ui.d.ts.map +1 -0
- package/dist/phases/ui.js +93 -0
- package/dist/phases/ui.js.map +1 -0
- package/dist/phases/wire/index.d.ts +3 -0
- package/dist/phases/wire/index.d.ts.map +1 -0
- package/dist/phases/wire/index.js +67 -0
- package/dist/phases/wire/index.js.map +1 -0
- package/dist/phases/wire/root-tsx.d.ts +3 -0
- package/dist/phases/wire/root-tsx.d.ts.map +1 -0
- package/dist/phases/wire/root-tsx.js +57 -0
- package/dist/phases/wire/root-tsx.js.map +1 -0
- package/dist/phases/wire/server-ts.d.ts +3 -0
- package/dist/phases/wire/server-ts.d.ts.map +1 -0
- package/dist/phases/wire/server-ts.js +54 -0
- package/dist/phases/wire/server-ts.js.map +1 -0
- package/dist/phases/wire/shared.d.ts +34 -0
- package/dist/phases/wire/shared.d.ts.map +1 -0
- package/dist/phases/wire/shared.js +2 -0
- package/dist/phases/wire/shared.js.map +1 -0
- package/dist/phases/wire/start-ts.d.ts +3 -0
- package/dist/phases/wire/start-ts.d.ts.map +1 -0
- package/dist/phases/wire/start-ts.js +149 -0
- package/dist/phases/wire/start-ts.js.map +1 -0
- package/dist/phases/wire/tsconfig.d.ts +3 -0
- package/dist/phases/wire/tsconfig.d.ts.map +1 -0
- package/dist/phases/wire/tsconfig.js +105 -0
- package/dist/phases/wire/tsconfig.js.map +1 -0
- package/dist/phases/wire/vite-config.d.ts +3 -0
- package/dist/phases/wire/vite-config.d.ts.map +1 -0
- package/dist/phases/wire/vite-config.js +46 -0
- package/dist/phases/wire/vite-config.js.map +1 -0
- package/dist/prompts.d.ts +34 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +49 -0
- package/dist/prompts.js.map +1 -0
- package/dist/runner.d.ts +5 -0
- package/dist/runner.d.ts.map +1 -0
- package/dist/runner.js +91 -0
- package/dist/runner.js.map +1 -0
- package/dist/state.d.ts +18 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +68 -0
- package/dist/state.js.map +1 -0
- package/dist/templates/byline/admin.config.ts +41 -0
- package/dist/templates/byline/i18n.ts +47 -0
- package/dist/templates/byline/routes.ts +28 -0
- package/dist/templates/byline/seed.ts +19 -0
- package/dist/templates/byline/seeds/admin.ts +62 -0
- package/dist/templates/byline/server.config.ts +92 -0
- package/dist/templates/byline-examples/admin.config.ts +74 -0
- package/dist/templates/byline-examples/blocks/photo-block.ts +59 -0
- package/dist/templates/byline-examples/blocks/richtext-block.ts +35 -0
- package/dist/templates/byline-examples/collections/doc-example-flat-locale-all.ts +373 -0
- package/dist/templates/byline-examples/collections/doc-example-flat-locale-en.ts +283 -0
- package/dist/templates/byline-examples/collections/doc-example-tree-locale-all.ts +278 -0
- package/dist/templates/byline-examples/collections/doc-example-tree-locale-en.ts +205 -0
- package/dist/templates/byline-examples/collections/docs/admin.tsx +204 -0
- package/dist/templates/byline-examples/collections/docs/components/.gitkeep +0 -0
- package/dist/templates/byline-examples/collections/docs/components/feature-formatter.tsx +10 -0
- package/dist/templates/byline-examples/collections/docs/hooks/.gitkeep +0 -0
- package/dist/templates/byline-examples/collections/docs/index.ts +10 -0
- package/dist/templates/byline-examples/collections/docs/schema.ts +209 -0
- package/dist/templates/byline-examples/collections/docs-categories/admin.tsx +78 -0
- package/dist/templates/byline-examples/collections/docs-categories/components/.gitkeep +0 -0
- package/dist/templates/byline-examples/collections/docs-categories/hooks/.gitkeep +0 -0
- package/dist/templates/byline-examples/collections/docs-categories/index.ts +10 -0
- package/dist/templates/byline-examples/collections/docs-categories/schema.ts +33 -0
- package/dist/templates/byline-examples/collections/media/admin.tsx +188 -0
- package/dist/templates/byline-examples/collections/media/components/media-list-view.tsx +330 -0
- package/dist/templates/byline-examples/collections/media/components/media-thumbnail.tsx +63 -0
- package/dist/templates/byline-examples/collections/media/hooks/.gitkeep +0 -0
- package/dist/templates/byline-examples/collections/media/index.ts +10 -0
- package/dist/templates/byline-examples/collections/media/schema.ts +157 -0
- package/dist/templates/byline-examples/collections/news/admin.tsx +192 -0
- package/dist/templates/byline-examples/collections/news/components/.gitkeep +0 -0
- package/dist/templates/byline-examples/collections/news/hooks/.gitkeep +0 -0
- package/dist/templates/byline-examples/collections/news/index.ts +10 -0
- package/dist/templates/byline-examples/collections/news/schema.ts +91 -0
- package/dist/templates/byline-examples/collections/news-categories/admin.tsx +78 -0
- package/dist/templates/byline-examples/collections/news-categories/components/.gitkeep +0 -0
- package/dist/templates/byline-examples/collections/news-categories/hooks/.gitkeep +0 -0
- package/dist/templates/byline-examples/collections/news-categories/index.ts +10 -0
- package/dist/templates/byline-examples/collections/news-categories/schema.ts +33 -0
- package/dist/templates/byline-examples/collections/pages/admin.tsx +183 -0
- package/dist/templates/byline-examples/collections/pages/components/.gitkeep +0 -0
- package/dist/templates/byline-examples/collections/pages/hooks/.gitkeep +0 -0
- package/dist/templates/byline-examples/collections/pages/index.ts +10 -0
- package/dist/templates/byline-examples/collections/pages/schema.ts +96 -0
- package/dist/templates/byline-examples/components/length-indicator.tsx +138 -0
- package/dist/templates/byline-examples/components/pill.tsx +38 -0
- package/dist/templates/byline-examples/components/summary-length.tsx +39 -0
- package/dist/templates/byline-examples/fields/available-languages-field.ts +90 -0
- package/dist/templates/byline-examples/fields/lexical-richtext-compact.ts +88 -0
- package/dist/templates/byline-examples/i18n.ts +47 -0
- package/dist/templates/byline-examples/routes.ts +28 -0
- package/dist/templates/byline-examples/scripts/regenerate-media.ts +275 -0
- package/dist/templates/byline-examples/seed.ts +25 -0
- package/dist/templates/byline-examples/seeds/admin.ts +62 -0
- package/dist/templates/byline-examples/seeds/doc-categories.ts +71 -0
- package/dist/templates/byline-examples/seeds/docs.ts +293 -0
- package/dist/templates/byline-examples/seeds/news-categories.ts +71 -0
- package/dist/templates/byline-examples/server.config.ts +179 -0
- package/dist/templates/host/vite.config.ts +41 -0
- package/dist/templates/migrations/0000_condemned_kronos.sql +324 -0
- package/dist/templates/migrations/0001_sudden_phantom_reporter.sql +1 -0
- package/dist/templates/migrations/meta/0000_snapshot.json +2793 -0
- package/dist/templates/migrations/meta/0001_snapshot.json +2799 -0
- package/dist/templates/migrations/meta/_journal.json +20 -0
- package/dist/templates/routes/(byline)/admin/account/index.tsx +11 -0
- package/dist/templates/routes/(byline)/admin/collections/$collection/$id/api.tsx +16 -0
- package/dist/templates/routes/(byline)/admin/collections/$collection/$id/history.tsx +19 -0
- package/dist/templates/routes/(byline)/admin/collections/$collection/$id/index.tsx +16 -0
- package/dist/templates/routes/(byline)/admin/collections/$collection/create.tsx +11 -0
- package/dist/templates/routes/(byline)/admin/collections/$collection/index.tsx +11 -0
- package/dist/templates/routes/(byline)/admin/index.tsx +11 -0
- package/dist/templates/routes/(byline)/admin/permissions/index.tsx +11 -0
- package/dist/templates/routes/(byline)/admin/roles/$id/index.tsx +11 -0
- package/dist/templates/routes/(byline)/admin/roles/index.tsx +11 -0
- package/dist/templates/routes/(byline)/admin/route.tsx +11 -0
- package/dist/templates/routes/(byline)/admin/users/$id/index.tsx +11 -0
- package/dist/templates/routes/(byline)/admin/users/index.tsx +11 -0
- package/dist/templates/routes/(byline)/sign-in.tsx +11 -0
- package/dist/templates/ui-byline/blocks/photo-block/index.tsx +80 -0
- package/dist/templates/ui-byline/blocks/richtext-block/index.tsx +46 -0
- package/dist/templates/ui-byline/components/admonition/index.tsx +40 -0
- package/dist/templates/ui-byline/components/code/code-serializer.tsx +20 -0
- package/dist/templates/ui-byline/components/code/code.tsx +50 -0
- package/dist/templates/ui-byline/components/code/index.module.scss +137 -0
- package/dist/templates/ui-byline/components/code/index.ts +2 -0
- package/dist/templates/ui-byline/components/code/types.ts +5 -0
- package/dist/templates/ui-byline/components/code/utils.ts +20 -0
- package/dist/templates/ui-byline/components/heading-anchor/heading-anchor.tsx +69 -0
- package/dist/templates/ui-byline/components/heading-anchor/index.ts +1 -0
- package/dist/templates/ui-byline/components/heading-anchor/utils.ts +15 -0
- package/dist/templates/ui-byline/components/inline-image/index.tsx +109 -0
- package/dist/templates/ui-byline/components/layout/index.tsx +63 -0
- package/dist/templates/ui-byline/components/link/lang-link.tsx +70 -0
- package/dist/templates/ui-byline/components/link/link-field.tsx +298 -0
- package/dist/templates/ui-byline/components/link/link-lexical.tsx +191 -0
- package/dist/templates/ui-byline/components/list/index.ts +2 -0
- package/dist/templates/ui-byline/components/list/list-item.tsx +32 -0
- package/dist/templates/ui-byline/components/list/list.tsx +17 -0
- package/dist/templates/ui-byline/components/responsive-image/index.tsx +205 -0
- package/dist/templates/ui-byline/components/richtext-lexical/index.tsx +31 -0
- package/dist/templates/ui-byline/components/richtext-lexical/serialize/index.tsx +249 -0
- package/dist/templates/ui-byline/components/richtext-lexical/serialize/richtext-node-formats.ts +66 -0
- package/dist/templates/ui-byline/components/richtext-lexical/serialize/types.ts +48 -0
- package/dist/templates/ui-byline/components/richtext-lexical/serialize/utils.ts +15 -0
- package/dist/templates/ui-byline/components/table-cell/index.tsx +36 -0
- package/dist/templates/ui-byline/components/vimeo/index.tsx +21 -0
- package/dist/templates/ui-byline/components/youtube/index.tsx +22 -0
- package/dist/templates/ui-byline/render-blocks.tsx +71 -0
- package/dist/templates/ui-byline/types/i18n.ts +14 -0
- package/dist/templates/ui-byline/utils/image-sources.ts +102 -0
- package/dist/templates/ui-byline/utils/to-kebab-case.ts +5 -0
- package/dist/types.d.ts +54 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/diff.d.ts +4 -0
- package/dist/ui/diff.d.ts.map +1 -0
- package/dist/ui/diff.js +23 -0
- package/dist/ui/diff.js.map +1 -0
- package/dist/ui/grid.d.ts +7 -0
- package/dist/ui/grid.d.ts.map +1 -0
- package/dist/ui/grid.js +24 -0
- package/dist/ui/grid.js.map +1 -0
- package/dist/ui/logger.d.ts +14 -0
- package/dist/ui/logger.d.ts.map +1 -0
- package/dist/ui/logger.js +30 -0
- package/dist/ui/logger.js.map +1 -0
- package/dist/ui/snippet.d.ts +2 -0
- package/dist/ui/snippet.d.ts.map +1 -0
- package/dist/ui/snippet.js +7 -0
- package/dist/ui/snippet.js.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/phases/db.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../src/phases/deps.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAkB,KAAK,EAAgB,MAAM,aAAa,CAAA;AAQtE,eAAO,MAAM,SAAS,EAAE,KA8DvB,CAAA"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { execa } from 'execa';
|
|
3
|
+
import { DEP_SPECS } from '../manifest/deps.js';
|
|
4
|
+
export const depsPhase = {
|
|
5
|
+
id: 'deps',
|
|
6
|
+
title: 'Deps — install required @byline/* and runtime packages',
|
|
7
|
+
defaultMode: 'auto',
|
|
8
|
+
async detect(ctx) {
|
|
9
|
+
if (ctx.state.isComplete('deps'))
|
|
10
|
+
return 'done';
|
|
11
|
+
const missing = computeMissing(ctx);
|
|
12
|
+
if (missing === null)
|
|
13
|
+
return 'blocked';
|
|
14
|
+
return missing.length === 0 ? 'done' : 'pending';
|
|
15
|
+
},
|
|
16
|
+
async plan(ctx) {
|
|
17
|
+
const missing = computeMissing(ctx);
|
|
18
|
+
if (missing === null) {
|
|
19
|
+
return {
|
|
20
|
+
writes: [],
|
|
21
|
+
commands: [],
|
|
22
|
+
notes: ['package.json not readable — run host phase first'],
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
if (missing.length === 0) {
|
|
26
|
+
return { writes: [], commands: [], notes: ['all required dependencies already declared'] };
|
|
27
|
+
}
|
|
28
|
+
const notes = [
|
|
29
|
+
`${missing.length} package(s) to install via ${ctx.pm}`,
|
|
30
|
+
...missing.map(({ spec }) => ` + ${spec.name}@${spec.version} (${spec.group}) — ${spec.note}`),
|
|
31
|
+
];
|
|
32
|
+
return { writes: [], commands: buildInstallCommands(ctx.pm, missing), notes };
|
|
33
|
+
},
|
|
34
|
+
async apply(_plan, ctx) {
|
|
35
|
+
const missing = computeMissing(ctx);
|
|
36
|
+
if (missing === null)
|
|
37
|
+
return { state: 'blocked' };
|
|
38
|
+
if (missing.length === 0) {
|
|
39
|
+
ctx.logger.info('all required dependencies already declared — nothing to install');
|
|
40
|
+
return { state: 'done' };
|
|
41
|
+
}
|
|
42
|
+
const commands = buildInstallCommands(ctx.pm, missing);
|
|
43
|
+
for (const c of commands) {
|
|
44
|
+
ctx.logger.step(`${c.command} ${c.args.join(' ')}`);
|
|
45
|
+
try {
|
|
46
|
+
await execa(c.command, c.args, { cwd: ctx.cwd, stdio: 'inherit' });
|
|
47
|
+
}
|
|
48
|
+
catch (e) {
|
|
49
|
+
ctx.logger.error(`install failed: ${e.message}`);
|
|
50
|
+
return { state: 'blocked' };
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
const stillMissing = computeMissing(ctx);
|
|
54
|
+
if (stillMissing && stillMissing.length > 0) {
|
|
55
|
+
ctx.logger.warn(`${stillMissing.length} package(s) still missing after install — package.json may not have been updated`);
|
|
56
|
+
return { state: 'partial' };
|
|
57
|
+
}
|
|
58
|
+
return { state: 'done' };
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
function computeMissing(ctx) {
|
|
62
|
+
const pkgPath = ctx.resolve('package.json');
|
|
63
|
+
if (!existsSync(pkgPath))
|
|
64
|
+
return null;
|
|
65
|
+
let pkg;
|
|
66
|
+
try {
|
|
67
|
+
pkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
const deps = pkg.dependencies ?? {};
|
|
73
|
+
const devDeps = pkg.devDependencies ?? {};
|
|
74
|
+
const missing = [];
|
|
75
|
+
for (const spec of DEP_SPECS) {
|
|
76
|
+
const inDeps = deps[spec.name];
|
|
77
|
+
const inDev = devDeps[spec.name];
|
|
78
|
+
const present = inDeps ?? inDev ?? null;
|
|
79
|
+
if (present !== null)
|
|
80
|
+
continue;
|
|
81
|
+
missing.push({
|
|
82
|
+
spec,
|
|
83
|
+
presentIn: inDeps !== undefined ? 'dependencies' : inDev !== undefined ? 'devDependencies' : null,
|
|
84
|
+
presentVersion: present,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
return missing;
|
|
88
|
+
}
|
|
89
|
+
function buildInstallCommands(pm, missing) {
|
|
90
|
+
const runtime = missing
|
|
91
|
+
.filter((m) => m.spec.group !== 'dev')
|
|
92
|
+
.map((m) => `${m.spec.name}@${m.spec.version}`);
|
|
93
|
+
const dev = missing
|
|
94
|
+
.filter((m) => m.spec.group === 'dev')
|
|
95
|
+
.map((m) => `${m.spec.name}@${m.spec.version}`);
|
|
96
|
+
const cmds = [];
|
|
97
|
+
if (runtime.length > 0)
|
|
98
|
+
cmds.push(installCommand(pm, runtime, false));
|
|
99
|
+
if (dev.length > 0)
|
|
100
|
+
cmds.push(installCommand(pm, dev, true));
|
|
101
|
+
return cmds;
|
|
102
|
+
}
|
|
103
|
+
function installCommand(pm, packages, dev) {
|
|
104
|
+
switch (pm) {
|
|
105
|
+
case 'pnpm':
|
|
106
|
+
return { command: 'pnpm', args: ['add', ...(dev ? ['-D'] : []), ...packages] };
|
|
107
|
+
case 'yarn':
|
|
108
|
+
return { command: 'yarn', args: ['add', ...(dev ? ['-D'] : []), ...packages] };
|
|
109
|
+
case 'bun':
|
|
110
|
+
return { command: 'bun', args: ['add', ...(dev ? ['-d'] : []), ...packages] };
|
|
111
|
+
case 'npm':
|
|
112
|
+
return { command: 'npm', args: ['install', dev ? '--save-dev' : '--save', ...packages] };
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=deps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/phases/deps.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/phases/env.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAExC,eAAO,MAAM,QAAQ,EAAE,KA2GtB,CAAA"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { randomBytes } from 'node:crypto';
|
|
2
|
+
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
3
|
+
import { buildPgUrl } from '../lib/pg-url.js';
|
|
4
|
+
import { ENV_SPECS } from '../manifest/env.js';
|
|
5
|
+
export const envPhase = {
|
|
6
|
+
id: 'env',
|
|
7
|
+
title: 'Env — generate .env (JWT secret, admin credentials, DB connection)',
|
|
8
|
+
defaultMode: 'confirm',
|
|
9
|
+
async detect(ctx) {
|
|
10
|
+
if (ctx.state.isComplete('env'))
|
|
11
|
+
return 'done';
|
|
12
|
+
const a = ctx.state.get().answers;
|
|
13
|
+
if (!a.dbHost || !a.dbName || !a.dbUser)
|
|
14
|
+
return 'blocked';
|
|
15
|
+
return 'pending';
|
|
16
|
+
},
|
|
17
|
+
async plan(ctx) {
|
|
18
|
+
const envPath = ctx.resolve('.env');
|
|
19
|
+
const existing = readEnvFile(envPath);
|
|
20
|
+
const missing = ENV_SPECS.filter((s) => !existing[s.key]);
|
|
21
|
+
const notes = [];
|
|
22
|
+
if (existsSync(envPath)) {
|
|
23
|
+
notes.push(`.env exists — preserving existing keys, appending what is missing`);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
notes.push('.env does not exist — will create');
|
|
27
|
+
}
|
|
28
|
+
if (missing.length === 0) {
|
|
29
|
+
notes.push('all required keys already present — nothing to do');
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
for (const s of missing)
|
|
33
|
+
notes.push(` + ${s.key} (${s.description})`);
|
|
34
|
+
}
|
|
35
|
+
return { writes: [], commands: [], notes };
|
|
36
|
+
},
|
|
37
|
+
async apply(_plan, ctx) {
|
|
38
|
+
const envPath = ctx.resolve('.env');
|
|
39
|
+
const existing = readEnvFile(envPath);
|
|
40
|
+
const missing = new Set(ENV_SPECS.filter((s) => !existing[s.key]).map((s) => s.key));
|
|
41
|
+
if (missing.size === 0) {
|
|
42
|
+
ctx.logger.info('all required env vars already set — leaving .env unchanged');
|
|
43
|
+
return { state: 'done' };
|
|
44
|
+
}
|
|
45
|
+
const a = ctx.state.get().answers;
|
|
46
|
+
if (!a.dbHost || !a.dbName || !a.dbUser) {
|
|
47
|
+
ctx.logger.error('db answers missing — run the db phase first');
|
|
48
|
+
return { state: 'blocked' };
|
|
49
|
+
}
|
|
50
|
+
const values = { ...existing };
|
|
51
|
+
if (missing.has('VITE_SERVER_URL')) {
|
|
52
|
+
ctx.prompter.note([
|
|
53
|
+
'The URL where this installation will be running.',
|
|
54
|
+
'Used by SSR rendering and as the base for admin UI links.',
|
|
55
|
+
'For local dev the default is fine; in production set this to your',
|
|
56
|
+
'public origin (e.g. https://cms.example.com).',
|
|
57
|
+
].join('\n'), 'VITE_SERVER_URL');
|
|
58
|
+
values.VITE_SERVER_URL = await ctx.prompter.text({
|
|
59
|
+
message: 'Public origin URL',
|
|
60
|
+
placeholder: 'http://localhost:5173/',
|
|
61
|
+
defaultValue: 'http://localhost:5173/',
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
if (missing.has('BYLINE_JWT_SECRET')) {
|
|
65
|
+
values.BYLINE_JWT_SECRET = randomBytes(64).toString('base64url');
|
|
66
|
+
ctx.logger.step('generated BYLINE_JWT_SECRET (64 random bytes, base64url)');
|
|
67
|
+
}
|
|
68
|
+
if (missing.has('BYLINE_SUPERADMIN_EMAIL')) {
|
|
69
|
+
const email = await ctx.prompter.text({
|
|
70
|
+
message: 'Super-admin email',
|
|
71
|
+
defaultValue: a.adminEmail ?? 'admin@byline.local',
|
|
72
|
+
});
|
|
73
|
+
ctx.state.patchAnswers({ adminEmail: email });
|
|
74
|
+
values.BYLINE_SUPERADMIN_EMAIL = email;
|
|
75
|
+
}
|
|
76
|
+
if (missing.has('BYLINE_SUPERADMIN_PASSWORD')) {
|
|
77
|
+
const pw = await ctx.prompter.password({
|
|
78
|
+
message: 'Super-admin password (min 12 chars)',
|
|
79
|
+
});
|
|
80
|
+
if (!pw || pw.length < 12) {
|
|
81
|
+
ctx.logger.error('password must be at least 12 characters');
|
|
82
|
+
return { state: 'blocked' };
|
|
83
|
+
}
|
|
84
|
+
values.BYLINE_SUPERADMIN_PASSWORD = pw;
|
|
85
|
+
}
|
|
86
|
+
if (missing.has('DB_CONNECTION_STRING')) {
|
|
87
|
+
const dbPassword = await resolveDbPassword(ctx);
|
|
88
|
+
if (!dbPassword)
|
|
89
|
+
return { state: 'blocked' };
|
|
90
|
+
values.DB_CONNECTION_STRING = buildPgUrl({
|
|
91
|
+
host: a.dbHost,
|
|
92
|
+
port: a.dbPort ?? 5432,
|
|
93
|
+
user: a.dbUser,
|
|
94
|
+
password: dbPassword,
|
|
95
|
+
database: a.dbName,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
writeFileSync(envPath, renderEnvFile(values), 'utf8');
|
|
99
|
+
ctx.logger.success(`wrote ${envPath}`);
|
|
100
|
+
return { state: 'done' };
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
async function resolveDbPassword(ctx) {
|
|
104
|
+
if (ctx.secrets.dbPassword)
|
|
105
|
+
return ctx.secrets.dbPassword;
|
|
106
|
+
const fromEnv = process.env.BYLINE_DB_PASSWORD;
|
|
107
|
+
if (fromEnv) {
|
|
108
|
+
ctx.logger.info('using app role password from BYLINE_DB_PASSWORD');
|
|
109
|
+
return fromEnv;
|
|
110
|
+
}
|
|
111
|
+
const pw = await ctx.prompter.password({
|
|
112
|
+
message: 'Application database role password (re-enter to compose DB_CONNECTION_STRING)',
|
|
113
|
+
});
|
|
114
|
+
if (!pw) {
|
|
115
|
+
ctx.logger.error('password is required to compose DB_CONNECTION_STRING');
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
ctx.secrets.dbPassword = pw;
|
|
119
|
+
return pw;
|
|
120
|
+
}
|
|
121
|
+
function readEnvFile(path) {
|
|
122
|
+
if (!existsSync(path))
|
|
123
|
+
return {};
|
|
124
|
+
const out = {};
|
|
125
|
+
const raw = readFileSync(path, 'utf8');
|
|
126
|
+
for (const line of raw.split(/\r?\n/)) {
|
|
127
|
+
const m = line.match(/^\s*([A-Z_][A-Z0-9_]*)\s*=\s*(.*)$/);
|
|
128
|
+
if (!m)
|
|
129
|
+
continue;
|
|
130
|
+
const key = m[1];
|
|
131
|
+
let val = (m[2] ?? '').trim();
|
|
132
|
+
if (val.startsWith('"') && val.endsWith('"')) {
|
|
133
|
+
val = val.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
|
|
134
|
+
}
|
|
135
|
+
else if (val.startsWith("'") && val.endsWith("'")) {
|
|
136
|
+
val = val.slice(1, -1);
|
|
137
|
+
}
|
|
138
|
+
out[key] = val;
|
|
139
|
+
}
|
|
140
|
+
return out;
|
|
141
|
+
}
|
|
142
|
+
function renderEnvFile(values) {
|
|
143
|
+
const known = new Set(ENV_SPECS.map((s) => s.key));
|
|
144
|
+
const groups = { app: [], database: [], auth: [] };
|
|
145
|
+
for (const spec of ENV_SPECS) {
|
|
146
|
+
const v = values[spec.key];
|
|
147
|
+
if (v === undefined)
|
|
148
|
+
continue;
|
|
149
|
+
groups[spec.group].push(`# ${spec.description}\n${spec.key}=${formatEnvValue(v)}`);
|
|
150
|
+
}
|
|
151
|
+
const sections = [];
|
|
152
|
+
if (groups.app.length)
|
|
153
|
+
sections.push(`# App\n${groups.app.join('\n\n')}`);
|
|
154
|
+
if (groups.database.length)
|
|
155
|
+
sections.push(`# Database\n${groups.database.join('\n\n')}`);
|
|
156
|
+
if (groups.auth.length)
|
|
157
|
+
sections.push(`# Auth\n${groups.auth.join('\n\n')}`);
|
|
158
|
+
const extras = Object.entries(values)
|
|
159
|
+
.filter(([k]) => !known.has(k))
|
|
160
|
+
.map(([k, v]) => `${k}=${formatEnvValue(v)}`);
|
|
161
|
+
if (extras.length)
|
|
162
|
+
sections.push(`# Existing\n${extras.join('\n')}`);
|
|
163
|
+
return `${sections.join('\n\n')}\n`;
|
|
164
|
+
}
|
|
165
|
+
function formatEnvValue(v) {
|
|
166
|
+
if (v === '')
|
|
167
|
+
return '';
|
|
168
|
+
if (/^[A-Za-z0-9_\-./:@+]+$/.test(v))
|
|
169
|
+
return v;
|
|
170
|
+
return `"${v.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`;
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/phases/env.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/phases/host.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAc,MAAM,aAAa,CAAA;AAyBpD,eAAO,MAAM,SAAS,EAAE,KAmCvB,CAAA"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { dirname } from 'node:path';
|
|
3
|
+
const TANSTACK_DEP = '@tanstack/react-start';
|
|
4
|
+
const REQUIRED_FILE = 'src/routes/__root.tsx';
|
|
5
|
+
const CREATABLE_FILES = [
|
|
6
|
+
{
|
|
7
|
+
rel: 'src/server.ts',
|
|
8
|
+
stub: `import handler, { createServerEntry } from '@tanstack/react-start/server-entry'
|
|
9
|
+
|
|
10
|
+
export default createServerEntry({
|
|
11
|
+
fetch(request) {
|
|
12
|
+
return handler.fetch(request)
|
|
13
|
+
},
|
|
14
|
+
})
|
|
15
|
+
`,
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
rel: 'src/start.ts',
|
|
19
|
+
stub: `import { createStart } from '@tanstack/react-start'
|
|
20
|
+
|
|
21
|
+
export const startInstance = createStart(() => ({}))
|
|
22
|
+
`,
|
|
23
|
+
},
|
|
24
|
+
];
|
|
25
|
+
export const hostPhase = {
|
|
26
|
+
id: 'host',
|
|
27
|
+
title: 'Host — detect TanStack Start application',
|
|
28
|
+
defaultMode: 'auto',
|
|
29
|
+
async detect(ctx) {
|
|
30
|
+
return inspectHost(ctx).state;
|
|
31
|
+
},
|
|
32
|
+
async plan(ctx) {
|
|
33
|
+
return { writes: [], commands: [], notes: inspectHost(ctx).notes };
|
|
34
|
+
},
|
|
35
|
+
async apply(_plan, ctx) {
|
|
36
|
+
const r = inspectHost(ctx);
|
|
37
|
+
if (r.state === 'blocked') {
|
|
38
|
+
ctx.logger.error('host detection failed:');
|
|
39
|
+
for (const n of r.notes)
|
|
40
|
+
ctx.logger.error(` ${n}`);
|
|
41
|
+
ctx.logger.info('see https://tanstack.com/start/latest/docs/framework/react/quick-start to bootstrap a new app');
|
|
42
|
+
return { state: 'blocked' };
|
|
43
|
+
}
|
|
44
|
+
for (const n of r.notes)
|
|
45
|
+
ctx.logger.info(n);
|
|
46
|
+
for (const f of CREATABLE_FILES) {
|
|
47
|
+
const abs = ctx.resolve(f.rel);
|
|
48
|
+
if (existsSync(abs))
|
|
49
|
+
continue;
|
|
50
|
+
mkdirSync(dirname(abs), { recursive: true });
|
|
51
|
+
writeFileSync(abs, f.stub, 'utf8');
|
|
52
|
+
ctx.logger.success(`created ${f.rel} (minimal stub — wire phase will register Byline)`);
|
|
53
|
+
}
|
|
54
|
+
return { state: 'done' };
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
function inspectHost(ctx) {
|
|
58
|
+
const notes = [];
|
|
59
|
+
const pkgPath = ctx.resolve('package.json');
|
|
60
|
+
if (!existsSync(pkgPath)) {
|
|
61
|
+
return { state: 'blocked', notes: ['no package.json in current directory'] };
|
|
62
|
+
}
|
|
63
|
+
let pkg;
|
|
64
|
+
try {
|
|
65
|
+
pkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
|
|
66
|
+
}
|
|
67
|
+
catch (e) {
|
|
68
|
+
return { state: 'blocked', notes: [`package.json parse error: ${e.message}`] };
|
|
69
|
+
}
|
|
70
|
+
const deps = { ...(pkg.dependencies ?? {}) };
|
|
71
|
+
if (!deps[TANSTACK_DEP]) {
|
|
72
|
+
return {
|
|
73
|
+
state: 'blocked',
|
|
74
|
+
notes: [
|
|
75
|
+
`${TANSTACK_DEP} not found in dependencies — this doesn't look like a TanStack Start app`,
|
|
76
|
+
],
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
notes.push(`${TANSTACK_DEP} ${deps[TANSTACK_DEP]} — detected`);
|
|
80
|
+
// __root.tsx is the only hard requirement — without it the app has no
|
|
81
|
+
// routes whatsoever and isn't really a TanStack Start app yet.
|
|
82
|
+
if (!existsSync(ctx.resolve(REQUIRED_FILE))) {
|
|
83
|
+
return {
|
|
84
|
+
state: 'blocked',
|
|
85
|
+
notes: [...notes, `missing required file: ${REQUIRED_FILE}`],
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
// server.ts / start.ts are optional in some bare TanStack Start templates
|
|
89
|
+
// — we'll create minimal stubs in apply() if they're absent so the wire
|
|
90
|
+
// phase has something to inject into.
|
|
91
|
+
const willCreate = CREATABLE_FILES.filter((f) => !existsSync(ctx.resolve(f.rel))).map((f) => f.rel);
|
|
92
|
+
if (willCreate.length > 0) {
|
|
93
|
+
notes.push(`will create minimal stubs for: ${willCreate.join(', ')}`);
|
|
94
|
+
return { state: 'pending', notes };
|
|
95
|
+
}
|
|
96
|
+
notes.push('found src/server.ts, src/start.ts, src/routes/__root.tsx');
|
|
97
|
+
return { state: 'done', notes };
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/phases/host.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKnC,MAAM,YAAY,GAAG,uBAAuB,CAAA;AAC5C,MAAM,aAAa,GAAG,uBAAuB,CAAA;AAC7C,MAAM,eAAe,GAAoC;IACvD;QACE,GAAG,EAAE,eAAe;QACpB,IAAI,EAAE;;;;;;;CAOT;KACE;IACD;QACE,GAAG,EAAE,cAAc;QACnB,IAAI,EAAE;;;CAGT;KACE;CACF,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAU;IAC9B,EAAE,EAAE,MAAM;IACV,KAAK,EAAE,0CAA0C;IACjD,WAAW,EAAE,MAAM;IAEnB,KAAK,CAAC,MAAM,CAAC,GAAG;QACd,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,CAAA;IAC/B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG;QACZ,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAA;IACpE,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG;QACpB,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;QAC1B,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1B,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;YAC1C,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK;gBAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACnD,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,+FAA+F,CAChG,CAAA;YACD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;QAC7B,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK;YAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAE3C,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YAC9B,IAAI,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAQ;YAC7B,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAC5C,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YAClC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,mDAAmD,CAAC,CAAA;QACzF,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;IAC1B,CAAC;CACF,CAAA;AAOD,SAAS,WAAW,CAAC,GAAY;IAC/B,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC3C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,sCAAsC,CAAC,EAAE,CAAA;IAC9E,CAAC;IAED,IAAI,GAA6D,CAAA;IACjE,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAe,CAAA;IAC/D,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,6BAA8B,CAAW,CAAC,OAAO,EAAE,CAAC,EAAE,CAAA;IAC3F,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAA;IAC5C,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE;gBACL,GAAG,YAAY,0EAA0E;aAC1F;SACF,CAAA;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;IAE9D,sEAAsE;IACtE,+DAA+D;IAC/D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QAC5C,OAAO;YACL,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,0BAA0B,aAAa,EAAE,CAAC;SAC7D,CAAA;IACH,CAAC;IAED,0EAA0E;IAC1E,wEAAwE;IACxE,sCAAsC;IACtC,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CACnF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CACb,CAAA;IACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,kCAAkC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACrE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;IACpC,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAA;IACtE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;AACjC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Phase, PhaseId } from '../types.js';
|
|
2
|
+
export declare const PHASES: Phase[];
|
|
3
|
+
export declare const PHASE_IDS: PhaseId[];
|
|
4
|
+
export declare function findPhase(id: PhaseId): Phase | undefined;
|
|
5
|
+
export declare function phasesFrom(id: PhaseId): Phase[];
|
|
6
|
+
export declare function phasesBetween(from: PhaseId | undefined, to: PhaseId | undefined): Phase[];
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/phases/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAEjD,eAAO,MAAM,MAAM,EAAE,KAAK,EAYzB,CAAA;AAED,eAAO,MAAM,SAAS,EAA8B,OAAO,EAAE,CAAA;AAE7D,wBAAgB,SAAS,CAAC,EAAE,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,CAExD;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,KAAK,EAAE,CAG/C;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,EAAE,EAAE,EAAE,OAAO,GAAG,SAAS,GAAG,KAAK,EAAE,CAKzF"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { dbPhase } from './db.js';
|
|
2
|
+
import { dbInitPhase } from './db-init.js';
|
|
3
|
+
import { depsPhase } from './deps.js';
|
|
4
|
+
import { envPhase } from './env.js';
|
|
5
|
+
import { hostPhase } from './host.js';
|
|
6
|
+
import { preflightPhase } from './preflight.js';
|
|
7
|
+
import { routesPhase } from './routes.js';
|
|
8
|
+
import { scaffoldPhase } from './scaffold.js';
|
|
9
|
+
import { stubPhase } from './stub.js';
|
|
10
|
+
import { uiPhase } from './ui.js';
|
|
11
|
+
import { wirePhase } from './wire/index.js';
|
|
12
|
+
export const PHASES = [
|
|
13
|
+
preflightPhase,
|
|
14
|
+
hostPhase,
|
|
15
|
+
dbPhase,
|
|
16
|
+
dbInitPhase,
|
|
17
|
+
envPhase,
|
|
18
|
+
depsPhase,
|
|
19
|
+
scaffoldPhase,
|
|
20
|
+
wirePhase,
|
|
21
|
+
routesPhase,
|
|
22
|
+
uiPhase,
|
|
23
|
+
stubPhase('verify', 'Verify — typecheck and smoke-test admin route'),
|
|
24
|
+
];
|
|
25
|
+
export const PHASE_IDS = PHASES.map((p) => p.id);
|
|
26
|
+
export function findPhase(id) {
|
|
27
|
+
return PHASES.find((p) => p.id === id);
|
|
28
|
+
}
|
|
29
|
+
export function phasesFrom(id) {
|
|
30
|
+
const idx = PHASES.findIndex((p) => p.id === id);
|
|
31
|
+
return idx === -1 ? [] : PHASES.slice(idx);
|
|
32
|
+
}
|
|
33
|
+
export function phasesBetween(from, to) {
|
|
34
|
+
const fromIdx = from ? PHASES.findIndex((p) => p.id === from) : 0;
|
|
35
|
+
const toIdx = to ? PHASES.findIndex((p) => p.id === to) : PHASES.length - 1;
|
|
36
|
+
if (fromIdx === -1 || toIdx === -1 || fromIdx > toIdx)
|
|
37
|
+
return [];
|
|
38
|
+
return PHASES.slice(fromIdx, toIdx + 1);
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/phases/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAG3C,MAAM,CAAC,MAAM,MAAM,GAAY;IAC7B,cAAc;IACd,SAAS;IACT,OAAO;IACP,WAAW;IACX,QAAQ;IACR,SAAS;IACT,aAAa;IACb,SAAS;IACT,WAAW;IACX,OAAO;IACP,SAAS,CAAC,QAAQ,EAAE,+CAA+C,CAAC;CACrE,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAc,CAAA;AAE7D,MAAM,UAAU,SAAS,CAAC,EAAW;IACnC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EAAW;IACpC,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAChD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAyB,EAAE,EAAuB;IAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjE,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;IAC3E,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,OAAO,GAAG,KAAK;QAAE,OAAO,EAAE,CAAA;IAChE,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;AACzC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../../src/phases/preflight.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAExD,eAAO,MAAM,cAAc,EAAE,KAoC5B,CAAA;AAwBD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAgBhE"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
export const preflightPhase = {
|
|
3
|
+
id: 'preflight',
|
|
4
|
+
title: 'Preflight — environment checks',
|
|
5
|
+
defaultMode: 'auto',
|
|
6
|
+
async detect(ctx) {
|
|
7
|
+
return ctx.state.isComplete('preflight') ? 'done' : 'pending';
|
|
8
|
+
},
|
|
9
|
+
async plan(_ctx) {
|
|
10
|
+
return { writes: [], commands: [], notes: ['check Node version, git repo, package manager'] };
|
|
11
|
+
},
|
|
12
|
+
async apply(_plan, ctx) {
|
|
13
|
+
const major = Number(process.versions.node.split('.')[0]);
|
|
14
|
+
if (major < 20) {
|
|
15
|
+
ctx.logger.error(`Node 20.9+ required (found ${process.versions.node})`);
|
|
16
|
+
return { state: 'blocked' };
|
|
17
|
+
}
|
|
18
|
+
if (!existsSync(ctx.resolve('.git'))) {
|
|
19
|
+
ctx.logger.warn('not a git repository — strongly recommended for installer rollback');
|
|
20
|
+
const ok = await ctx.prompter.confirm({
|
|
21
|
+
message: 'Continue without git?',
|
|
22
|
+
defaultValue: false,
|
|
23
|
+
});
|
|
24
|
+
if (!ok)
|
|
25
|
+
return { state: 'blocked' };
|
|
26
|
+
}
|
|
27
|
+
const pm = await resolvePackageManager(ctx);
|
|
28
|
+
ctx.pm = pm;
|
|
29
|
+
ctx.state.patchAnswers({ pm });
|
|
30
|
+
ctx.logger.info(`package manager: ${pm}`);
|
|
31
|
+
return { state: 'done' };
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
async function resolvePackageManager(ctx) {
|
|
35
|
+
const fromFlag = ctx.cliFlags.pm;
|
|
36
|
+
if (fromFlag) {
|
|
37
|
+
ctx.logger.info(`using --pm ${fromFlag}`);
|
|
38
|
+
return fromFlag;
|
|
39
|
+
}
|
|
40
|
+
const detected = detectPackageManager(ctx.cwd);
|
|
41
|
+
if (ctx.yes)
|
|
42
|
+
return detected;
|
|
43
|
+
// Put the detected manager first so --yes / pressing Enter accepts it,
|
|
44
|
+
// but let the user pick another if their fresh app has no lockfile yet
|
|
45
|
+
// and the detection defaulted to pnpm.
|
|
46
|
+
const others = ['pnpm', 'npm', 'yarn', 'bun'].filter((p) => p !== detected);
|
|
47
|
+
return ctx.prompter.select({
|
|
48
|
+
message: 'Package manager to use for installs',
|
|
49
|
+
options: [
|
|
50
|
+
{ value: detected, label: detected, hint: 'detected' },
|
|
51
|
+
...others.map((p) => ({ value: p, label: p })),
|
|
52
|
+
],
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
export function detectPackageManager(cwd) {
|
|
56
|
+
if (existsSync(`${cwd}/pnpm-lock.yaml`))
|
|
57
|
+
return 'pnpm';
|
|
58
|
+
if (existsSync(`${cwd}/bun.lockb`) || existsSync(`${cwd}/bun.lock`))
|
|
59
|
+
return 'bun';
|
|
60
|
+
if (existsSync(`${cwd}/yarn.lock`))
|
|
61
|
+
return 'yarn';
|
|
62
|
+
if (existsSync(`${cwd}/package-lock.json`))
|
|
63
|
+
return 'npm';
|
|
64
|
+
const pkgPath = `${cwd}/package.json`;
|
|
65
|
+
if (existsSync(pkgPath)) {
|
|
66
|
+
try {
|
|
67
|
+
const pkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
|
|
68
|
+
if (pkg.packageManager?.startsWith('pnpm'))
|
|
69
|
+
return 'pnpm';
|
|
70
|
+
if (pkg.packageManager?.startsWith('yarn'))
|
|
71
|
+
return 'yarn';
|
|
72
|
+
if (pkg.packageManager?.startsWith('bun'))
|
|
73
|
+
return 'bun';
|
|
74
|
+
if (pkg.packageManager?.startsWith('npm'))
|
|
75
|
+
return 'npm';
|
|
76
|
+
}
|
|
77
|
+
catch { }
|
|
78
|
+
}
|
|
79
|
+
return 'pnpm';
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=preflight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/phases/preflight.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/phases/routes.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAexC,eAAO,MAAM,WAAW,EAAE,KAsFzB,CAAA"}
|