create-authenik8-app 2.1.7 → 2.3.3
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 +5 -4
- package/package.json +1 -1
- package/dist/bin/index.d.ts +0 -8
- package/dist/bin/index.d.ts.map +0 -1
- package/dist/bin/index.js +0 -796
- package/dist/bin/index.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -292
- package/dist/index.js.map +0 -1
- package/dist/lib/constants.d.ts +0 -4
- package/dist/lib/constants.d.ts.map +0 -1
- package/dist/lib/constants.js +0 -25
- package/dist/lib/constants.js.map +0 -1
- package/dist/lib/process.d.ts +0 -7
- package/dist/lib/process.d.ts.map +0 -1
- package/dist/lib/process.js +0 -60
- package/dist/lib/process.js.map +0 -1
- package/dist/lib/state.d.ts +0 -8
- package/dist/lib/state.d.ts.map +0 -1
- package/dist/lib/state.js +0 -31
- package/dist/lib/state.js.map +0 -1
- package/dist/lib/types.d.ts +0 -17
- package/dist/lib/types.d.ts.map +0 -1
- package/dist/lib/types.js +0 -2
- package/dist/lib/types.js.map +0 -1
- package/dist/lib/ui.d.ts +0 -7
- package/dist/lib/ui.d.ts.map +0 -1
- package/dist/lib/ui.js +0 -124
- package/dist/lib/ui.js.map +0 -1
- package/dist/steps/configurePrisma.d.ts +0 -3
- package/dist/steps/configurePrisma.d.ts.map +0 -1
- package/dist/steps/configurePrisma.js +0 -41
- package/dist/steps/configurePrisma.js.map +0 -1
- package/dist/steps/createProject.d.ts +0 -5
- package/dist/steps/createProject.d.ts.map +0 -1
- package/dist/steps/createProject.js +0 -35
- package/dist/steps/createProject.js.map +0 -1
- package/dist/steps/finalSetup.d.ts +0 -7
- package/dist/steps/finalSetup.d.ts.map +0 -1
- package/dist/steps/finalSetup.js +0 -110
- package/dist/steps/finalSetup.js.map +0 -1
- package/dist/steps/installAuth.d.ts +0 -3
- package/dist/steps/installAuth.d.ts.map +0 -1
- package/dist/steps/installAuth.js +0 -18
- package/dist/steps/installAuth.js.map +0 -1
- package/dist/steps/installDeps.d.ts +0 -4
- package/dist/steps/installDeps.d.ts.map +0 -1
- package/dist/steps/installDeps.js +0 -50
- package/dist/steps/installDeps.js.map +0 -1
- package/dist/steps/prompts.d.ts +0 -3
- package/dist/steps/prompts.d.ts.map +0 -1
- package/dist/steps/prompts.js +0 -76
- package/dist/steps/prompts.js.map +0 -1
- package/dist/tests/helpers/generator.d.ts +0 -27
- package/dist/tests/helpers/generator.d.ts.map +0 -1
- package/dist/tests/helpers/generator.js +0 -282
- package/dist/tests/helpers/generator.js.map +0 -1
- package/dist/tests/integration/generator.test.d.ts +0 -2
- package/dist/tests/integration/generator.test.d.ts.map +0 -1
- package/dist/tests/integration/generator.test.js +0 -116
- package/dist/tests/integration/generator.test.js.map +0 -1
- package/dist/tests/integration/snapshot.test.d.ts +0 -2
- package/dist/tests/integration/snapshot.test.d.ts.map +0 -1
- package/dist/tests/integration/snapshot.test.js +0 -68
- package/dist/tests/integration/snapshot.test.js.map +0 -1
- package/dist/tests/setup.d.ts +0 -2
- package/dist/tests/setup.d.ts.map +0 -1
- package/dist/tests/setup.js +0 -10
- package/dist/tests/setup.js.map +0 -1
- package/dist/tests/unit/cli.test.d.ts +0 -2
- package/dist/tests/unit/cli.test.d.ts.map +0 -1
- package/dist/tests/unit/cli.test.js +0 -242
- package/dist/tests/unit/cli.test.js.map +0 -1
- package/dist/utils/hash.d.ts +0 -4
- package/dist/utils/hash.d.ts.map +0 -1
- package/dist/utils/hash.js +0 -51
- package/dist/utils/hash.js.map +0 -1
- package/dist/utils/output.d.ts +0 -3
- package/dist/utils/output.d.ts.map +0 -1
- package/dist/utils/output.js +0 -65
- package/dist/utils/output.js.map +0 -1
- package/dist/vitest.config.d.ts +0 -3
- package/dist/vitest.config.d.ts.map +0 -1
- package/dist/vitest.config.js +0 -21
- package/dist/vitest.config.js.map +0 -1
- package/templates/prisma/postgresql/.env +0 -3
- package/templates/prisma/sqlite/.env +0 -1
package/dist/lib/ui.js
DELETED
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import chalk from "chalk";
|
|
2
|
-
import ora from "ora";
|
|
3
|
-
import { stepLabels, stepOrder } from "./constants.js";
|
|
4
|
-
import { hasReachedStep } from "./state.js";
|
|
5
|
-
export const spinner = ora().start();
|
|
6
|
-
export const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
7
|
-
const cleanLogo = `
|
|
8
|
-
|
|
9
|
-
█████╗ █████╗
|
|
10
|
-
██╔══██╗ ██╔══██╗
|
|
11
|
-
███████║ ╚█████╔╝
|
|
12
|
-
██╔══██║ ██╔══██╗
|
|
13
|
-
██║ ██║ ╚█████╔╝
|
|
14
|
-
╚═╝ ╚═╝ ╚════╝
|
|
15
|
-
|
|
16
|
-
A8
|
|
17
|
-
|
|
18
|
-
Authenik8 CLI
|
|
19
|
-
Build Faster
|
|
20
|
-
More , Secure
|
|
21
|
-
`;
|
|
22
|
-
const glitchFrames = [
|
|
23
|
-
`
|
|
24
|
-
█████╗ █████╗
|
|
25
|
-
██╔══██╗ ██▒▒▒▒██
|
|
26
|
-
███████║ ╚█████╔╝
|
|
27
|
-
██╔══██║ ██▒▒▒▒██
|
|
28
|
-
██║ ██║ ╚█████╔╝
|
|
29
|
-
╚═╝ ╚═╝ ╚════╝
|
|
30
|
-
|
|
31
|
-
A8
|
|
32
|
-
Authenik8 CLI
|
|
33
|
-
|
|
34
|
-
More
|
|
35
|
-
`,
|
|
36
|
-
`
|
|
37
|
-
██▓▓██╗ ██▓▓██╗
|
|
38
|
-
██▒▒██╔╝ ██▒▒██╔╝
|
|
39
|
-
██▒▒▒▒██ ╚█████╔╝
|
|
40
|
-
██▓▓██╔╝ ██▒▒██╗
|
|
41
|
-
██▒▒██║ ╚█████╔╝
|
|
42
|
-
╚═════╝ ╚════╝
|
|
43
|
-
|
|
44
|
-
A8
|
|
45
|
-
Authenik8 CLI
|
|
46
|
-
Faster
|
|
47
|
-
`,
|
|
48
|
-
`
|
|
49
|
-
██▒▒██╗ ██▒▒██╗
|
|
50
|
-
██▓▓██╔╝ ██▓▓██╔╝
|
|
51
|
-
██▒▒▒▒██ ╚█████╔╝
|
|
52
|
-
██▓▓██╔╝ ██▓▓██╗
|
|
53
|
-
██▒▒██║ ╚█████╔╝
|
|
54
|
-
╚═════╝ ╚════╝
|
|
55
|
-
|
|
56
|
-
A8
|
|
57
|
-
Authenik8 CLI
|
|
58
|
-
Build
|
|
59
|
-
`,
|
|
60
|
-
`
|
|
61
|
-
██▓▓██╗ ██▓▓██╗
|
|
62
|
-
██▒▒██╔╝ ██▒▒██╔╝
|
|
63
|
-
██▒▒▒▒██ ╚█████╔╝
|
|
64
|
-
██▓▓██╔╝ ██▒▒██╗
|
|
65
|
-
██▒▒██║ ╚█████╔╝
|
|
66
|
-
╚═════╝ ╚════╝
|
|
67
|
-
|
|
68
|
-
A8
|
|
69
|
-
Authenik8 CLI
|
|
70
|
-
|
|
71
|
-
`,
|
|
72
|
-
];
|
|
73
|
-
export function renderHeader() {
|
|
74
|
-
console.log(chalk.cyan.bold("Happy building \nAuthenik8 CLI"));
|
|
75
|
-
console.log(chalk.gray("────────────────────"));
|
|
76
|
-
console.log("");
|
|
77
|
-
}
|
|
78
|
-
export function renderStep(current, isProduction) {
|
|
79
|
-
console.clear();
|
|
80
|
-
renderHeader();
|
|
81
|
-
for (const step of stepOrder) {
|
|
82
|
-
const label = stepLabels[step];
|
|
83
|
-
if (step === "production-configured" && !isProduction) {
|
|
84
|
-
continue;
|
|
85
|
-
}
|
|
86
|
-
if (step === current) {
|
|
87
|
-
console.log(chalk.yellow(`⏳ ${label}...`));
|
|
88
|
-
break;
|
|
89
|
-
}
|
|
90
|
-
if (hasReachedStep(current, step)) {
|
|
91
|
-
console.log(chalk.green(`✔ ${label}`));
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
console.log(chalk.gray(`○ ${label}`));
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
console.log("");
|
|
98
|
-
}
|
|
99
|
-
export async function showBootLogo() {
|
|
100
|
-
console.clear();
|
|
101
|
-
spinner.text = "Initializing Authenik8 engine...";
|
|
102
|
-
console.clear();
|
|
103
|
-
console.log(chalk.cyan(cleanLogo));
|
|
104
|
-
await sleep(200);
|
|
105
|
-
for (let i = 0; i < 5; i++) {
|
|
106
|
-
console.clear();
|
|
107
|
-
const frame = glitchFrames[Math.floor(Math.random() * glitchFrames.length)];
|
|
108
|
-
console.log(chalk.cyan(frame));
|
|
109
|
-
await sleep(120 + Math.random() * 120);
|
|
110
|
-
}
|
|
111
|
-
for (let i = 0; i < 2; i++) {
|
|
112
|
-
console.clear();
|
|
113
|
-
console.log(chalk.cyan(cleanLogo));
|
|
114
|
-
await sleep(180);
|
|
115
|
-
console.clear();
|
|
116
|
-
console.log(chalk.gray(cleanLogo));
|
|
117
|
-
await sleep(120);
|
|
118
|
-
}
|
|
119
|
-
console.clear();
|
|
120
|
-
console.log(chalk.cyan.bold(cleanLogo));
|
|
121
|
-
await sleep(800);
|
|
122
|
-
spinner.succeed("Engine ready");
|
|
123
|
-
}
|
|
124
|
-
//# sourceMappingURL=ui.js.map
|
package/dist/lib/ui.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/lib/ui.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"configurePrisma.d.ts","sourceRoot":"","sources":["../../src/steps/configurePrisma.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAIhD,wBAAsB,eAAe,CACnC,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAkDf"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import fs from "fs-extra";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { spinner } from "../lib/ui.js";
|
|
4
|
-
import { exitForInterrupt } from "../lib/process.js";
|
|
5
|
-
export async function configurePrisma(state, targetDir, templateRoot) {
|
|
6
|
-
const pkgPath = path.join(targetDir, "package.json");
|
|
7
|
-
const pkg = await fs.readJson(pkgPath);
|
|
8
|
-
pkg.dependencies = {
|
|
9
|
-
...pkg.dependencies,
|
|
10
|
-
ioredis: "^5.8.1",
|
|
11
|
-
};
|
|
12
|
-
if (state.usePrisma) {
|
|
13
|
-
spinner.start("Adding Prisma setup...");
|
|
14
|
-
try {
|
|
15
|
-
const dbType = state.database === "postgresql" ? "postgresql" : "sqlite";
|
|
16
|
-
const prismaTemplatePath = path.join(templateRoot, `prisma/${dbType}`);
|
|
17
|
-
await fs.copy(path.join(prismaTemplatePath, "schema.prisma"), path.join(targetDir, "prisma/schema.prisma"));
|
|
18
|
-
await fs.copy(path.join(prismaTemplatePath, ".env"), path.join(targetDir, ".env"));
|
|
19
|
-
pkg.dependencies = {
|
|
20
|
-
...pkg.dependencies,
|
|
21
|
-
"@prisma/client": "5.22.0",
|
|
22
|
-
};
|
|
23
|
-
pkg.devDependencies = {
|
|
24
|
-
...pkg.devDependencies,
|
|
25
|
-
prisma: "5.22.0",
|
|
26
|
-
};
|
|
27
|
-
pkg.scripts = {
|
|
28
|
-
...pkg.scripts,
|
|
29
|
-
"prisma:generate": "prisma generate",
|
|
30
|
-
"prisma:migrate": "prisma migrate dev",
|
|
31
|
-
};
|
|
32
|
-
spinner.succeed(`Prisma (${dbType}) configured`);
|
|
33
|
-
}
|
|
34
|
-
catch (err) {
|
|
35
|
-
spinner.fail("Failed to setup Prisma");
|
|
36
|
-
exitForInterrupt(err);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
await fs.writeJson(pkgPath, pkg, { spaces: 2 });
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=configurePrisma.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"configurePrisma.js","sourceRoot":"","sources":["../../src/steps/configurePrisma.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAe,EACf,SAAiB,EACjB,YAAoB;IAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEvC,GAAG,CAAC,YAAY,GAAG;QACjB,GAAG,GAAG,CAAC,YAAY;QACnB,OAAO,EAAE,QAAQ;KAClB,CAAC;IAEF,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAExC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;YACzE,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,MAAM,EAAE,CAAC,CAAC;YAEvE,MAAM,EAAE,CAAC,IAAI,CACX,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,eAAe,CAAC,EAC9C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAC7C,CAAC;YAEF,MAAM,EAAE,CAAC,IAAI,CACX,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,EACrC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAC7B,CAAC;YAEF,GAAG,CAAC,YAAY,GAAG;gBACjB,GAAG,GAAG,CAAC,YAAY;gBACnB,gBAAgB,EAAE,QAAQ;aAC3B,CAAC;YAEF,GAAG,CAAC,eAAe,GAAG;gBACpB,GAAG,GAAG,CAAC,eAAe;gBACtB,MAAM,EAAE,QAAQ;aACjB,CAAC;YAEF,GAAG,CAAC,OAAO,GAAG;gBACZ,GAAG,GAAG,CAAC,OAAO;gBACd,iBAAiB,EAAE,iBAAiB;gBACpC,gBAAgB,EAAE,oBAAoB;aACvC,CAAC;YAEF,OAAO,CAAC,OAAO,CAAC,WAAW,MAAM,cAAc,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACvC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { CliState } from "../lib/types.js";
|
|
2
|
-
export declare function resolveTemplateName(authMode: string): string;
|
|
3
|
-
export declare function configurePackageJson(targetDir: string, usePrisma: boolean): void;
|
|
4
|
-
export declare function createProject(state: CliState, targetDir: string, templateRoot: string): Promise<void>;
|
|
5
|
-
//# sourceMappingURL=createProject.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createProject.d.ts","sourceRoot":"","sources":["../../src/steps/createProject.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAI5D;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAsBhF;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAIf"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import fs from "fs-extra";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import chalk from "chalk";
|
|
4
|
-
export function resolveTemplateName(authMode) {
|
|
5
|
-
if (authMode === "auth")
|
|
6
|
-
return "express-auth";
|
|
7
|
-
if (authMode === "auth-oauth")
|
|
8
|
-
return "express-auth+";
|
|
9
|
-
return "express-base";
|
|
10
|
-
}
|
|
11
|
-
export function configurePackageJson(targetDir, usePrisma) {
|
|
12
|
-
const pkgPath = path.join(targetDir, "package.json");
|
|
13
|
-
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
|
|
14
|
-
if (!pkg.scripts.postinstall?.includes("prisma")) {
|
|
15
|
-
pkg.scripts.postinstall = "npx prisma@5.22.0 generate";
|
|
16
|
-
}
|
|
17
|
-
if (usePrisma) {
|
|
18
|
-
const currentDev = pkg.scripts.dev || "tsx watch src/index.ts";
|
|
19
|
-
if (!currentDev.includes("prisma@5.22.0 generate")) {
|
|
20
|
-
pkg.scripts.dev = `npx prisma@5.22.0 generate && ${currentDev}`;
|
|
21
|
-
}
|
|
22
|
-
//pkg.scripts ??= {};
|
|
23
|
-
// pkg.scripts.postinstall = "npx prisma@5.22.0 generate";
|
|
24
|
-
//pkg.scripts.dev = pkg.scripts.dev
|
|
25
|
-
// ? `npx prisma@5.22.0 generate && ${pkg.scripts.dev}`
|
|
26
|
-
//: "npx prisma@5.22.0 generate";
|
|
27
|
-
}
|
|
28
|
-
fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2));
|
|
29
|
-
}
|
|
30
|
-
export async function createProject(state, targetDir, templateRoot) {
|
|
31
|
-
const templateName = resolveTemplateName(state.authMode ?? "base");
|
|
32
|
-
const templatePath = path.join(templateRoot, templateName);
|
|
33
|
-
await fs.copy(templatePath, targetDir);
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=createProject.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createProject.js","sourceRoot":"","sources":["../../src/steps/createProject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,cAAc,CAAC;IAC/C,IAAI,QAAQ,KAAK,YAAY;QAAE,OAAO,eAAe,CAAC;IACtD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,SAAiB,EAAE,SAAkB;IACxE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1D,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,4BAA4B,CAAC;IACzD,CAAC;IAEH,IAAI,SAAS,EAAE,CAAC;QACf,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,wBAAwB,CAAC;QAC9D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,iCAAiC,UAAU,EAAE,CAAC;QAClE,CAAC;QAEF,qBAAqB;QACrB,0DAA0D;QACzD,mCAAmC;QAClC,uDAAuD;QACtD,iCAAiC;IACrC,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAe,EACf,SAAiB,EACjB,YAAoB;IAEpB,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;IACnE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC3D,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export declare function hasBun(): boolean;
|
|
2
|
-
export declare function resolveRuntime(runtime: any): "node" | "bun";
|
|
3
|
-
export declare function createPm2Config(targetDir: string, projectName: string, runtime: "node" | "bun"): void;
|
|
4
|
-
export declare function configureProduction(targetDir: string, projectName: string, runtime: "node" | "bun"): Promise<void>;
|
|
5
|
-
export declare function initGit(targetDir: string): Promise<void>;
|
|
6
|
-
export declare function appendProductionReadme(targetDir: string, projectName: string): void;
|
|
7
|
-
//# sourceMappingURL=finalSetup.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"finalSetup.d.ts","sourceRoot":"","sources":["../../src/steps/finalSetup.ts"],"names":[],"mappings":"AAUA,wBAAgB,MAAM,IAAI,OAAO,CAOhC;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,GAAG,KAAK,CAO3D;AAGD,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAC,OAAO,EAAE,MAAM,GAAE,KAAK,GAAG,IAAI,CAuCnG;AAGD,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAC,WAAW,EAAC,MAAM,EAAG,OAAO,EAAC,MAAM,GAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBnH;AAKH,wBAAsB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAU9D;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAuBnF"}
|
package/dist/steps/finalSetup.js
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import fs from "fs-extra";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { run, getCommand, exitForInterrupt } from "../lib/process.js";
|
|
4
|
-
import { spinner } from "../lib/ui.js";
|
|
5
|
-
import { execSync } from "child_process";
|
|
6
|
-
const PM2_VERSION = "^5.4.2";
|
|
7
|
-
const TS_NODE_VERSION = "^10.9.2";
|
|
8
|
-
export function hasBun() {
|
|
9
|
-
try {
|
|
10
|
-
execSync("bun --version", { stdio: "ignore" });
|
|
11
|
-
return true;
|
|
12
|
-
}
|
|
13
|
-
catch {
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
export function resolveRuntime(runtime) {
|
|
18
|
-
if (runtime === "bun" && !hasBun()) {
|
|
19
|
-
console.log("⚠️ Bun not found, falling back to Node");
|
|
20
|
-
return "node";
|
|
21
|
-
}
|
|
22
|
-
if (runtime === "bun")
|
|
23
|
-
return "bun";
|
|
24
|
-
return "node";
|
|
25
|
-
}
|
|
26
|
-
export function createPm2Config(targetDir, projectName, runtime) {
|
|
27
|
-
const configPath = path.join(targetDir, "ecosystem.config.js");
|
|
28
|
-
const useBun = runtime === "bun";
|
|
29
|
-
const content = useBun
|
|
30
|
-
? `module.exports = {
|
|
31
|
-
apps: [
|
|
32
|
-
{
|
|
33
|
-
name: "${projectName}",
|
|
34
|
-
script: "src/server.ts",
|
|
35
|
-
interpreter: "bun",
|
|
36
|
-
instances: "max",
|
|
37
|
-
exec_mode: "cluster",
|
|
38
|
-
watch: false,
|
|
39
|
-
env: {
|
|
40
|
-
NODE_ENV: "production"
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
]
|
|
44
|
-
}` :
|
|
45
|
-
`module.exports = {
|
|
46
|
-
apps: [
|
|
47
|
-
{
|
|
48
|
-
name: "${projectName}",
|
|
49
|
-
script: "src/server.ts",
|
|
50
|
-
instances: "max",
|
|
51
|
-
interpreter:"node",
|
|
52
|
-
interpreter_args: "-r ts-node/register",
|
|
53
|
-
exec_mode: "cluster",
|
|
54
|
-
watch: false,
|
|
55
|
-
max_memory_restart: "300M",
|
|
56
|
-
env: {
|
|
57
|
-
NODE_ENV: "production"
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
]
|
|
61
|
-
};`;
|
|
62
|
-
fs.writeFileSync(configPath, content, "utf-8");
|
|
63
|
-
}
|
|
64
|
-
export async function configureProduction(targetDir, projectName, runtime) {
|
|
65
|
-
const pkgPath = path.join(targetDir, "package.json");
|
|
66
|
-
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
|
|
67
|
-
pkg.dependencies["pm2"] = PM2_VERSION;
|
|
68
|
-
if (runtime === "node") {
|
|
69
|
-
pkg.dependencies["ts-node"] = TS_NODE_VERSION;
|
|
70
|
-
}
|
|
71
|
-
pkg.scripts["pm2:start"] = "npx pm2 start ecosystem.config.js";
|
|
72
|
-
pkg.scripts["pm2:stop"] = `npx pm2 stop ${projectName}`;
|
|
73
|
-
pkg.scripts["pm2:logs"] = "npx pm2 logs";
|
|
74
|
-
fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2));
|
|
75
|
-
createPm2Config(targetDir, projectName, runtime);
|
|
76
|
-
}
|
|
77
|
-
export async function initGit(targetDir) {
|
|
78
|
-
try {
|
|
79
|
-
await run(getCommand("git"), ["init"], {
|
|
80
|
-
cwd: targetDir,
|
|
81
|
-
stdio: "ignore",
|
|
82
|
-
});
|
|
83
|
-
spinner.stop();
|
|
84
|
-
}
|
|
85
|
-
catch {
|
|
86
|
-
spinner.fail("Git init failed");
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
export function appendProductionReadme(targetDir, projectName) {
|
|
90
|
-
fs.appendFileSync(path.join(targetDir, "README.md"), `
|
|
91
|
-
|
|
92
|
-
🚀 Production Mode
|
|
93
|
-
|
|
94
|
-
This project is configured for production using PM2.
|
|
95
|
-
|
|
96
|
-
Start app in cluster mode:
|
|
97
|
-
|
|
98
|
-
npm run pm2:start
|
|
99
|
-
|
|
100
|
-
View logs:
|
|
101
|
-
|
|
102
|
-
npm run pm2:logs
|
|
103
|
-
|
|
104
|
-
Stop app:
|
|
105
|
-
|
|
106
|
-
npm run pm2:stop
|
|
107
|
-
|
|
108
|
-
`);
|
|
109
|
-
}
|
|
110
|
-
//# sourceMappingURL=finalSetup.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"finalSetup.js","sourceRoot":"","sources":["../../src/steps/finalSetup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"installAuth.d.ts","sourceRoot":"","sources":["../../src/steps/installAuth.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIvD,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EAAC,EAAE,EAAE,cAAc,GACnC,OAAO,CAAC,MAAM,CAAC,CAsBjB"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import fs from "fs-extra";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { run, getCommand, exitForInterrupt } from "../lib/process.js";
|
|
4
|
-
import { getBestHashLib, generateHashModule } from "../utils/hash.js";
|
|
5
|
-
import { spinner } from "../lib/ui.js";
|
|
6
|
-
export async function installAuth(targetDir, pm) {
|
|
7
|
-
let selectedHash = getBestHashLib(pm);
|
|
8
|
-
spinner.start("Installing password auth...");
|
|
9
|
-
const pkgPath = path.join(targetDir, "package.json");
|
|
10
|
-
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
|
|
11
|
-
pkg.dependencies[selectedHash] = selectedHash === "argon2" ? "^0.31.2" : "^2.4.3";
|
|
12
|
-
fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2));
|
|
13
|
-
spinner.stop();
|
|
14
|
-
const hashLib = selectedHash;
|
|
15
|
-
await fs.writeFile(path.join(targetDir, "src/utils/hash.ts"), generateHashModule(hashLib));
|
|
16
|
-
return selectedHash;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=installAuth.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"installAuth.js","sourceRoot":"","sources":["../../src/steps/installAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAKvC,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,SAAiB,EAAC,EAAkB;IAEpC,IAAI,YAAY,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;IAGtC,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAE7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1D,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IAElF,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAE1D,OAAO,CAAC,IAAI,EAAE,CAAC;IAEb,MAAM,OAAO,GAAG,YAAqC,CAAC;IACtD,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,EACzC,kBAAkB,CAAC,OAAO,CAAC,CAC5B,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"installDeps.d.ts","sourceRoot":"","sources":["../../src/steps/installDeps.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAEpD,wBAAgB,oBAAoB,IAAI,cAAc,CAYrD;AAgBD,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAc1E"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import fs from "fs-extra";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { execSync } from "child_process";
|
|
4
|
-
import { run, getCommand, exitForInterrupt } from "../lib/process.js";
|
|
5
|
-
import { spinner } from "../lib/ui.js";
|
|
6
|
-
export function detectPackageManager() {
|
|
7
|
-
try {
|
|
8
|
-
if (process.env.npm_execpath?.includes("pnpm"))
|
|
9
|
-
return "pnpm";
|
|
10
|
-
if (process.env.npm_execpath?.includes("bun"))
|
|
11
|
-
return "bun";
|
|
12
|
-
execSync("pnpm --version", { stdio: "ignore" });
|
|
13
|
-
return "pnpm";
|
|
14
|
-
}
|
|
15
|
-
catch { }
|
|
16
|
-
try {
|
|
17
|
-
execSync("bun --version", { stdio: "ignore" });
|
|
18
|
-
return "bun";
|
|
19
|
-
}
|
|
20
|
-
catch { }
|
|
21
|
-
return "npm";
|
|
22
|
-
}
|
|
23
|
-
function getInstallArgs(pm, targetDir) {
|
|
24
|
-
switch (pm) {
|
|
25
|
-
case "pnpm":
|
|
26
|
-
return ["install", "--prefer-offline"];
|
|
27
|
-
case "bun":
|
|
28
|
-
return ["install"];
|
|
29
|
-
case "npm":
|
|
30
|
-
default:
|
|
31
|
-
return ["install", "--prefer-offline", "--no-audit", "--no-fund"];
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
export async function installDependencies(targetDir) {
|
|
35
|
-
const pm = detectPackageManager();
|
|
36
|
-
spinner.start("Installing dependencies...(this may take a few minutes)");
|
|
37
|
-
try {
|
|
38
|
-
await run(getCommand(pm), getInstallArgs(pm, targetDir), {
|
|
39
|
-
cwd: targetDir,
|
|
40
|
-
stdio: "inherit",
|
|
41
|
-
});
|
|
42
|
-
spinner.stop();
|
|
43
|
-
}
|
|
44
|
-
catch (err) {
|
|
45
|
-
spinner.fail("Failed to install dependencies");
|
|
46
|
-
exitForInterrupt(err);
|
|
47
|
-
throw err;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=installDeps.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"installDeps.js","sourceRoot":"","sources":["../../src/steps/installDeps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAIvC,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC;QACH,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;QAC9D,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5D,QAAQ,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,IAAI,CAAC;QACH,QAAQ,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,KAAK,CAAC;AACf,CAAC;AAGD,SAAS,cAAc,CAAC,EAAkB,EAAE,SAAiB;IAC3D,QAAQ,EAAE,EAAE,CAAC;QACX,KAAK,MAAM;YACT,OAAO,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;QACzC,KAAK,KAAK;YACR,OAAO,CAAC,SAAS,CAAC,CAAC;QACrB,KAAK,KAAK,CAAC;QACX;YACA,OAAO,CAAC,SAAS,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IAEpE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,SAAiB;IACzD,MAAM,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAClC,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;IACzE,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE;YACvD,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC/C,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACxB,MAAM,GAAG,CAAC;IACV,CAAC;AACH,CAAC"}
|
package/dist/steps/prompts.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/steps/prompts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGhD,wBAAsB,UAAU,CAAC,KAAK,EAAC,QAAQ,EAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CA0EjG"}
|
package/dist/steps/prompts.js
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import inquirer from "inquirer";
|
|
2
|
-
import { hasBun } from "./finalSetup.js";
|
|
3
|
-
export async function runPrompts(state, isProduction) {
|
|
4
|
-
const bunAvailable = hasBun();
|
|
5
|
-
return inquirer.prompt([
|
|
6
|
-
{
|
|
7
|
-
type: "list",
|
|
8
|
-
name: "framework",
|
|
9
|
-
message: "Choose framework:",
|
|
10
|
-
choices: ["Express", "Fastify (coming soon)"],
|
|
11
|
-
default: "Express",
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
type: "list",
|
|
15
|
-
name: "authMode",
|
|
16
|
-
message: "Choose authentication setup:",
|
|
17
|
-
choices: [
|
|
18
|
-
{ name: "JWT only", value: "base" },
|
|
19
|
-
{ name: "Email + Password Auth", value: "auth" },
|
|
20
|
-
{ name: "Full Auth (Password + OAuth)", value: "auth-oauth" },
|
|
21
|
-
],
|
|
22
|
-
default: "base",
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
type: "confirm",
|
|
26
|
-
name: "usePrisma",
|
|
27
|
-
message: "Use Prisma?",
|
|
28
|
-
default: true,
|
|
29
|
-
when: (answers) => answers.authMode === "base"
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
type: "list",
|
|
33
|
-
name: "database",
|
|
34
|
-
message: "Choose database:",
|
|
35
|
-
choices: [
|
|
36
|
-
{ name: "PostgreSQL", value: "postgresql" },
|
|
37
|
-
{ name: "SQLite ", value: "sqlite" },
|
|
38
|
-
],
|
|
39
|
-
when: (answers) => answers.usePrisma || answers.authMode === "auth" || answers.authMode === "auth-oauth",
|
|
40
|
-
default: "sqlite",
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
type: "confirm",
|
|
44
|
-
name: "useGit",
|
|
45
|
-
message: "Initialize git?",
|
|
46
|
-
default: true,
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
type: "list",
|
|
50
|
-
name: "runtime",
|
|
51
|
-
message: "Choose runtime:",
|
|
52
|
-
choices: [
|
|
53
|
-
{
|
|
54
|
-
name: bunAvailable
|
|
55
|
-
? "Bun (fast, no build step)"
|
|
56
|
-
: "Bun (not installed)",
|
|
57
|
-
value: "bun",
|
|
58
|
-
disabled: !bunAvailable && "Bun not found",
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
name: "Node (stable, widely supported)",
|
|
62
|
-
value: "node",
|
|
63
|
-
},
|
|
64
|
-
],
|
|
65
|
-
when: () => isProduction,
|
|
66
|
-
default: bunAvailable ? "bun" : "node"
|
|
67
|
-
},
|
|
68
|
-
])
|
|
69
|
-
.then((result) => {
|
|
70
|
-
if (result.runtime === "bun" && !bunAvailable) {
|
|
71
|
-
result.runtime = "node";
|
|
72
|
-
}
|
|
73
|
-
return result;
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=prompts.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/steps/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAA;AAEtC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAc,EAAC,YAAqB;IACrE,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC;IAC5B,OAAO,QAAQ,CAAC,MAAM,CAAC;QACrB;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,mBAAmB;YAC5B,OAAO,EAAE,CAAC,SAAS,EAAE,uBAAuB,CAAC;YAC7C,OAAO,EAAE,SAAS;SACnB;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,8BAA8B;YACvC,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE;gBACnC,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,MAAM,EAAE;gBAChD,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,YAAY,EAAE;aAC9D;YACD,OAAO,EAAE,MAAM;SAChB;QACD;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,IAAI;YACd,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,MAAM;SAC9C;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,kBAAkB;YAC3B,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;gBAC3C,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE;aACrC;YACD,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,YAAY;YACxG,OAAO,EAAE,QAAQ;SAClB;QACD;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,iBAAiB;YAC1B,OAAO,EAAE,IAAI;SACd;QAEE;YACD,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,iBAAiB;YAC1B,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,YAAY;wBAChB,CAAC,CAAC,2BAA2B;wBAC7B,CAAC,CAAC,qBAAqB;oBACzB,KAAK,EAAE,KAAK;oBACZ,QAAQ,EAAE,CAAC,YAAY,IAAI,eAAe;iBAC3C;gBACD;oBACE,IAAI,EAAE,iCAAiC;oBACvC,KAAK,EAAE,MAAM;iBACd;aACF;YACD,IAAI,EAAE,GAAG,EAAE,CAAC,YAAY;YACxB,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;SACvC;KACF,CAAC;SACD,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACf,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YAC9C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;QAC1B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAA;AAEJ,CAAC"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { CliState } from "../../lib/types.js";
|
|
2
|
-
type TemplateKind = "base" | "auth" | "auth-oauth";
|
|
3
|
-
export type GeneratedProject = {
|
|
4
|
-
rootDir: string;
|
|
5
|
-
targetDir: string;
|
|
6
|
-
state: CliState;
|
|
7
|
-
cleanup: () => Promise<void>;
|
|
8
|
-
hashLib?: string;
|
|
9
|
-
};
|
|
10
|
-
export type GenerateProjectOptions = {
|
|
11
|
-
template: TemplateKind;
|
|
12
|
-
database?: "sqlite" | "postgresql";
|
|
13
|
-
usePrisma?: boolean;
|
|
14
|
-
productionRuntime?: "node" | "bun";
|
|
15
|
-
hashLib?: "argon2" | "bcryptjs";
|
|
16
|
-
};
|
|
17
|
-
export declare function generateProjectFixture(options: GenerateProjectOptions): Promise<GeneratedProject>;
|
|
18
|
-
export declare function collectProjectTree(rootDir: string): Promise<string[]>;
|
|
19
|
-
export declare function readProjectFiles(rootDir: string, relativePaths: string[]): Promise<Record<string, string>>;
|
|
20
|
-
export declare function installGeneratedAppStubs(targetDir: string): Promise<void>;
|
|
21
|
-
export declare function runGeneratedServerSmoke(targetDir: string, entryPath: string): Promise<{
|
|
22
|
-
code: number | null;
|
|
23
|
-
stdout: string;
|
|
24
|
-
stderr: string;
|
|
25
|
-
}>;
|
|
26
|
-
export {};
|
|
27
|
-
//# sourceMappingURL=generator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/tests/helpers/generator.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAOnD,KAAK,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,CAAC;AAEnD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;IACnC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACnC,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CACjC,CAAC;AAsCF,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC,CA8C3B;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAgC3E;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,mCAS9E;AAED,wBAAsB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkJ/E;AAED,wBAAsB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;UAc/C,MAAM,GAAG,IAAI;YAAU,MAAM;YAAU,MAAM;GA8C/E"}
|