create-authenik8-app 2.4.6 → 2.4.7
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/dist/src/bin/index.d.ts +3 -0
- package/dist/src/bin/index.d.ts.map +1 -0
- package/dist/src/bin/index.js +275 -0
- package/dist/src/bin/index.js.map +1 -0
- package/dist/src/lib/constants.d.ts +4 -0
- package/dist/src/lib/constants.d.ts.map +1 -0
- package/dist/src/lib/constants.js +25 -0
- package/dist/src/lib/constants.js.map +1 -0
- package/dist/src/lib/process.d.ts +7 -0
- package/dist/src/lib/process.d.ts.map +1 -0
- package/dist/src/lib/process.js +60 -0
- package/dist/src/lib/process.js.map +1 -0
- package/dist/src/lib/state.d.ts +8 -0
- package/dist/src/lib/state.d.ts.map +1 -0
- package/dist/src/lib/state.js +31 -0
- package/dist/src/lib/state.js.map +1 -0
- package/dist/src/lib/types.d.ts +19 -0
- package/dist/src/lib/types.d.ts.map +1 -0
- package/dist/src/lib/types.js +2 -0
- package/dist/src/lib/types.js.map +1 -0
- package/dist/src/lib/ui.d.ts +7 -0
- package/dist/src/lib/ui.d.ts.map +1 -0
- package/dist/src/lib/ui.js +124 -0
- package/dist/src/lib/ui.js.map +1 -0
- package/dist/src/steps/configurePrisma.d.ts +3 -0
- package/dist/src/steps/configurePrisma.d.ts.map +1 -0
- package/dist/src/steps/configurePrisma.js +62 -0
- package/dist/src/steps/configurePrisma.js.map +1 -0
- package/dist/src/steps/createProject.d.ts +5 -0
- package/dist/src/steps/createProject.d.ts.map +1 -0
- package/dist/src/steps/createProject.js +202 -0
- package/dist/src/steps/createProject.js.map +1 -0
- package/dist/src/steps/finalSetup.d.ts +7 -0
- package/dist/src/steps/finalSetup.d.ts.map +1 -0
- package/dist/src/steps/finalSetup.js +110 -0
- package/dist/src/steps/finalSetup.js.map +1 -0
- package/dist/src/steps/installAuth.d.ts +3 -0
- package/dist/src/steps/installAuth.d.ts.map +1 -0
- package/dist/src/steps/installAuth.js +16 -0
- package/dist/src/steps/installAuth.js.map +1 -0
- package/dist/src/steps/installDeps.d.ts +5 -0
- package/dist/src/steps/installDeps.d.ts.map +1 -0
- package/dist/src/steps/installDeps.js +99 -0
- package/dist/src/steps/installDeps.js.map +1 -0
- package/dist/src/steps/prompts.d.ts +3 -0
- package/dist/src/steps/prompts.d.ts.map +1 -0
- package/dist/src/steps/prompts.js +93 -0
- package/dist/src/steps/prompts.js.map +1 -0
- package/dist/src/tests/templated-routes.test.d.ts +2 -0
- package/dist/src/tests/templated-routes.test.d.ts.map +1 -0
- package/dist/src/tests/templated-routes.test.js +325 -0
- package/dist/src/tests/templated-routes.test.js.map +1 -0
- package/dist/src/utils/hash.d.ts +4 -0
- package/dist/src/utils/hash.d.ts.map +1 -0
- package/dist/src/utils/hash.js +17 -0
- package/dist/src/utils/hash.js.map +1 -0
- package/dist/src/utils/output.d.ts +3 -0
- package/dist/src/utils/output.d.ts.map +1 -0
- package/dist/src/utils/output.js +81 -0
- package/dist/src/utils/output.js.map +1 -0
- package/dist/templates/THREAT_MODEL.md +138 -0
- package/dist/templates/express-auth/src/controllers/protected.controller.d.ts +8 -0
- package/dist/templates/express-auth/src/controllers/protected.controller.d.ts.map +1 -0
- package/dist/templates/express-auth/src/controllers/protected.controller.js +50 -0
- package/dist/templates/express-auth/src/controllers/protected.controller.js.map +1 -0
- package/dist/templates/express-auth/src/routes/protected.routes.d.ts +2 -0
- package/dist/templates/express-auth/src/routes/protected.routes.d.ts.map +1 -0
- package/dist/templates/express-auth/src/routes/protected.routes.js +16 -0
- package/dist/templates/express-auth/src/routes/protected.routes.js.map +1 -0
- package/dist/templates/express-auth/src/utils/security.d.ts +8 -0
- package/dist/templates/express-auth/src/utils/security.d.ts.map +1 -0
- package/dist/templates/express-auth/src/utils/security.js +55 -0
- package/dist/templates/express-auth/src/utils/security.js.map +1 -0
- package/dist/templates/express-base/controllers/base.controller.d.ts +12 -0
- package/dist/templates/express-base/controllers/base.controller.d.ts.map +1 -0
- package/dist/templates/express-base/controllers/base.controller.js +77 -0
- package/dist/templates/express-base/controllers/base.controller.js.map +1 -0
- package/dist/templates/express-base/routes/base.routes.d.ts +2 -0
- package/dist/templates/express-base/routes/base.routes.d.ts.map +1 -0
- package/dist/templates/express-base/routes/base.routes.js +20 -0
- package/dist/templates/express-base/routes/base.routes.js.map +1 -0
- package/dist/templates/express-base/utils/security.d.ts +5 -0
- package/dist/templates/express-base/utils/security.d.ts.map +1 -0
- package/dist/templates/express-base/utils/security.js +40 -0
- package/dist/templates/express-base/utils/security.js.map +1 -0
- package/dist/templates/package.json +27 -0
- package/package.json +4 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bin/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import fs from "fs-extra";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import chalk from "chalk";
|
|
5
|
+
import { ExitPromptError } from "@inquirer/core";
|
|
6
|
+
import { fileURLToPath } from "url";
|
|
7
|
+
import { initState, saveState, loadState, clearState, hasReachedStep, getState } from "../lib/state.js";
|
|
8
|
+
import { killAllProcesses } from "../lib/process.js";
|
|
9
|
+
import { showBootLogo, renderStep, spinner } from "../lib/ui.js";
|
|
10
|
+
import { runPrompts } from "../steps/prompts.js";
|
|
11
|
+
import { createProject, configurePackageJson } from "../steps/createProject.js";
|
|
12
|
+
import { installAuth } from "../steps/installAuth.js";
|
|
13
|
+
import { configurePrisma } from "../steps/configurePrisma.js";
|
|
14
|
+
import { installDependencies, detectPackageManager } from "../steps/installDeps.js";
|
|
15
|
+
import { configureProduction, initGit, appendProductionReadme, resolveRuntime } from "../steps/finalSetup.js";
|
|
16
|
+
import { printSummary } from "../utils/output.js";
|
|
17
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
18
|
+
const __dirname = path.dirname(__filename);
|
|
19
|
+
const args = process.argv.slice(2);
|
|
20
|
+
const projectNameArg = args.find((arg) => !arg.startsWith("--"));
|
|
21
|
+
if (!projectNameArg) {
|
|
22
|
+
console.log(chalk.red("❌ Please provide a project name\n Usage:\n npx create-authenik8-app <project-name>\n Run with --help for more info"));
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
const projectName = projectNameArg;
|
|
26
|
+
const isProduction = args.includes("--production-ready");
|
|
27
|
+
const isResume = args.includes("--resume");
|
|
28
|
+
const targetDir = path.resolve(process.cwd(), projectName);
|
|
29
|
+
const templateRoot = path.resolve(__dirname, "../../templates");
|
|
30
|
+
const globalStateDir = path.join(process.cwd(), ".authenik8");
|
|
31
|
+
const stateFile = path.join(globalStateDir, `${projectName}.json`);
|
|
32
|
+
//handles shutdown during resume
|
|
33
|
+
let shuttingDown = false;
|
|
34
|
+
const handleShutdown = async () => {
|
|
35
|
+
if (shuttingDown)
|
|
36
|
+
return;
|
|
37
|
+
shuttingDown = true;
|
|
38
|
+
console.log("\n");
|
|
39
|
+
spinner.stop();
|
|
40
|
+
killAllProcesses();
|
|
41
|
+
console.log(chalk.yellow("⏸ Setup interrupted."));
|
|
42
|
+
try {
|
|
43
|
+
const current = getState();
|
|
44
|
+
if (current && current.step && current.step !== "done") {
|
|
45
|
+
saveState({ ...current });
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch (_) { }
|
|
49
|
+
console.log(chalk.gray(`↻ Resume anytime with:`));
|
|
50
|
+
console.log(chalk.cyan(` npx create-authenik8-app ${projectName} --resume`));
|
|
51
|
+
process.exit(0);
|
|
52
|
+
};
|
|
53
|
+
process.prependListener('SIGINT', handleShutdown);
|
|
54
|
+
process.prependListener('SIGTERM', handleShutdown);
|
|
55
|
+
process.on('exit', () => {
|
|
56
|
+
killAllProcesses();
|
|
57
|
+
});
|
|
58
|
+
let projectCreated = false;
|
|
59
|
+
initState({ step: "start", projectName }, stateFile);
|
|
60
|
+
async function cleanupIncompleteProject() {
|
|
61
|
+
if (projectCreated && fs.existsSync(targetDir)) {
|
|
62
|
+
await fs.remove(targetDir);
|
|
63
|
+
console.log("🧹 Cleaned up incomplete project.");
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
function assertRequired(value, name) {
|
|
67
|
+
if (value === undefined || value === null || value === "") {
|
|
68
|
+
console.log(`❌ Missing required input: ${name}`);
|
|
69
|
+
process.exit(1);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
async function main() {
|
|
73
|
+
try {
|
|
74
|
+
await showBootLogo();
|
|
75
|
+
if (args.includes("--help")) {
|
|
76
|
+
console.log(`
|
|
77
|
+
Authenik8 CLI
|
|
78
|
+
|
|
79
|
+
Usage:
|
|
80
|
+
npx create-authenik8-app <project-name>
|
|
81
|
+
|
|
82
|
+
Options:
|
|
83
|
+
--resume Resume project setup
|
|
84
|
+
--help Show this help message
|
|
85
|
+
--production-ready production mode
|
|
86
|
+
|
|
87
|
+
Features:
|
|
88
|
+
Express backend (default)
|
|
89
|
+
Optional Prisma ORM
|
|
90
|
+
PostgreSQL (production)
|
|
91
|
+
SQLite (quick start)
|
|
92
|
+
Optional Git initialization
|
|
93
|
+
Optional OAuth
|
|
94
|
+
|
|
95
|
+
Examples:
|
|
96
|
+
create-authenik8-app my-app
|
|
97
|
+
`);
|
|
98
|
+
process.exit(0);
|
|
99
|
+
}
|
|
100
|
+
console.log(chalk.gray(`
|
|
101
|
+
Available options:
|
|
102
|
+
Authentication setup:
|
|
103
|
+
• base (JWT only)
|
|
104
|
+
• auth (JWT + Password/Email auth)
|
|
105
|
+
• auth-oauth(JWT+ Password/Email + oauth)
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
Frameworks:
|
|
109
|
+
• Express
|
|
110
|
+
|
|
111
|
+
Database (if Prisma enabled):
|
|
112
|
+
• PostgreSQL
|
|
113
|
+
• SQLite (quick start)
|
|
114
|
+
|
|
115
|
+
Features:
|
|
116
|
+
• Prisma ORM (optional)
|
|
117
|
+
• Git initialization (optional)
|
|
118
|
+
• OAuth + Auth
|
|
119
|
+
`));
|
|
120
|
+
const savedState = loadState(stateFile);
|
|
121
|
+
let currentStep = "start";
|
|
122
|
+
if (!isResume && fs.existsSync(targetDir)) {
|
|
123
|
+
if (savedState) {
|
|
124
|
+
console.log(chalk.red(`❌ "${projectName}" already contains an incomplete Authenik8 setup. Run again with --resume.`));
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
console.log(chalk.red(`❌ Directory "${projectName}" already exists.`));
|
|
128
|
+
}
|
|
129
|
+
process.exit(1);
|
|
130
|
+
}
|
|
131
|
+
if (isResume || fs.existsSync(stateFile)) {
|
|
132
|
+
console.log(chalk.gray(`
|
|
133
|
+
Resumable steps:
|
|
134
|
+
✔ project scaffold
|
|
135
|
+
✔ auth install
|
|
136
|
+
✔ prisma setup
|
|
137
|
+
✔ deps install
|
|
138
|
+
✔ prisma generate
|
|
139
|
+
✔ git init
|
|
140
|
+
`));
|
|
141
|
+
}
|
|
142
|
+
if (isResume) {
|
|
143
|
+
if (!savedState) {
|
|
144
|
+
console.log(chalk.red(`❌ No saved setup state found for "${projectName}".`));
|
|
145
|
+
process.exit(1);
|
|
146
|
+
}
|
|
147
|
+
initState(savedState, stateFile);
|
|
148
|
+
currentStep = savedState.step;
|
|
149
|
+
console.log(chalk.yellow(`\n↻ Resuming setup for ${projectName} from "${currentStep}"...\n`));
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
const promptAnswers = await runPrompts(getState(), isProduction);
|
|
153
|
+
saveState({ ...promptAnswers, step: "prompts" });
|
|
154
|
+
currentStep = "prompts";
|
|
155
|
+
}
|
|
156
|
+
const raw = getState();
|
|
157
|
+
if ((raw.authMode === "auth" || raw.authMode === "auth-oauth") && !raw.usePrisma) {
|
|
158
|
+
console.log(chalk.yellow("\n⚠ Auth and Auth+OAuth require Prisma — enabling automatically.\n"));
|
|
159
|
+
saveState({ usePrisma: true, database: raw.database ?? "sqlite" });
|
|
160
|
+
}
|
|
161
|
+
const state = getState();
|
|
162
|
+
const runtime = resolveRuntime(state.runtime);
|
|
163
|
+
assertRequired(state.framework, "framework");
|
|
164
|
+
assertRequired(state.authMode, "authMode");
|
|
165
|
+
if (state.usePrisma) {
|
|
166
|
+
if (!state.database)
|
|
167
|
+
saveState({ database: "sqlite" });
|
|
168
|
+
assertRequired(getState().database, "database");
|
|
169
|
+
}
|
|
170
|
+
console.log(chalk.cyan("\nSetting up your project\n"));
|
|
171
|
+
// Project scaffold
|
|
172
|
+
if (!hasReachedStep(currentStep, "project-created")) {
|
|
173
|
+
renderStep("project-created", isProduction);
|
|
174
|
+
try {
|
|
175
|
+
await createProject(getState(), targetDir, templateRoot);
|
|
176
|
+
projectCreated = true;
|
|
177
|
+
saveState({ step: "project-created" });
|
|
178
|
+
currentStep = "project-created";
|
|
179
|
+
renderStep(currentStep, isProduction);
|
|
180
|
+
}
|
|
181
|
+
catch (err) {
|
|
182
|
+
console.error(err);
|
|
183
|
+
process.exit(1);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
console.log(chalk.gray("↷ Skipping project creation (already completed)"));
|
|
188
|
+
}
|
|
189
|
+
// Auth install
|
|
190
|
+
let selectedHash = "bcryptjs";
|
|
191
|
+
if (!hasReachedStep(currentStep, "auth-installed")) {
|
|
192
|
+
if (getState().authMode !== "base") {
|
|
193
|
+
const pm = detectPackageManager();
|
|
194
|
+
selectedHash = await installAuth(targetDir, pm);
|
|
195
|
+
}
|
|
196
|
+
renderStep("auth-installed", isProduction);
|
|
197
|
+
saveState({ step: "auth-installed", ...(getState().authMode !== "base" && { hashLib: selectedHash }) });
|
|
198
|
+
currentStep = "auth-installed";
|
|
199
|
+
renderStep(currentStep, isProduction);
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
selectedHash = savedState?.hashLib ?? selectedHash;
|
|
203
|
+
console.log(chalk.gray("↷ Skipping auth setup (already completed)"));
|
|
204
|
+
}
|
|
205
|
+
// Prisma config
|
|
206
|
+
if (!hasReachedStep(currentStep, "prisma-configured")) {
|
|
207
|
+
await configurePrisma(getState(), targetDir, templateRoot);
|
|
208
|
+
saveState({ step: "prisma-configured", ...(getState().authMode !== "base" && { hashLib: selectedHash }) });
|
|
209
|
+
currentStep = "prisma-configured";
|
|
210
|
+
renderStep(currentStep, isProduction);
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
console.log(chalk.gray("↷ Skipping Prisma/package setup (already completed)"));
|
|
214
|
+
}
|
|
215
|
+
if (isProduction && !hasReachedStep(currentStep, "production-configured")) {
|
|
216
|
+
await configureProduction(targetDir, projectName, runtime);
|
|
217
|
+
saveState({ step: "production-configured", ...(getState().authMode !== "base" && { hashLib: selectedHash }) });
|
|
218
|
+
currentStep = "production-configured";
|
|
219
|
+
renderStep(currentStep, isProduction);
|
|
220
|
+
}
|
|
221
|
+
// Install deps
|
|
222
|
+
if (!hasReachedStep(currentStep, "deps-installed")) {
|
|
223
|
+
renderStep("deps-installed", isProduction);
|
|
224
|
+
configurePackageJson(targetDir, getState().usePrisma ?? false);
|
|
225
|
+
await installDependencies(targetDir);
|
|
226
|
+
saveState({ step: "deps-installed", ...(getState().authMode !== "base" && { hashLib: selectedHash }) });
|
|
227
|
+
currentStep = "deps-installed";
|
|
228
|
+
renderStep(currentStep, isProduction);
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
console.log(chalk.gray("↷ Skipping dependency installation (already completed)"));
|
|
232
|
+
}
|
|
233
|
+
// Git init
|
|
234
|
+
if (!hasReachedStep(currentStep, "git-initialized")) {
|
|
235
|
+
if (getState().useGit) {
|
|
236
|
+
renderStep("git-initialized", isProduction);
|
|
237
|
+
await initGit(targetDir);
|
|
238
|
+
}
|
|
239
|
+
saveState({ step: "git-initialized", ...(getState().authMode !== "base" && { hashLib: selectedHash }) });
|
|
240
|
+
currentStep = "git-initialized";
|
|
241
|
+
renderStep("done", isProduction);
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
console.log(chalk.gray("↷ Skipping git init (already completed)"));
|
|
245
|
+
}
|
|
246
|
+
// Done
|
|
247
|
+
if (isProduction) {
|
|
248
|
+
appendProductionReadme(targetDir, projectName);
|
|
249
|
+
}
|
|
250
|
+
printSummary(getState(), isProduction);
|
|
251
|
+
saveState({ step: "done", ...(getState().authMode !== "base" && { hashLib: selectedHash }) });
|
|
252
|
+
clearState();
|
|
253
|
+
}
|
|
254
|
+
catch (err) {
|
|
255
|
+
if (err instanceof ExitPromptError) {
|
|
256
|
+
throw err;
|
|
257
|
+
}
|
|
258
|
+
console.error("Fatal error", err);
|
|
259
|
+
process.exit(1);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
main().catch(async (err) => {
|
|
263
|
+
if (err instanceof ExitPromptError) {
|
|
264
|
+
console.log("\n👋 Authenik8 setup cancelled. You can --resume later");
|
|
265
|
+
killAllProcesses();
|
|
266
|
+
await new Promise((r) => setTimeout(r, 300));
|
|
267
|
+
console.log(chalk.bgYellow.black(" SETUP CANCELLED "));
|
|
268
|
+
await cleanupIncompleteProject();
|
|
269
|
+
process.exit(0);
|
|
270
|
+
}
|
|
271
|
+
console.error(chalk.red("\n❌ Unexpected error:"), err);
|
|
272
|
+
await cleanupIncompleteProject();
|
|
273
|
+
process.exit(1);
|
|
274
|
+
});
|
|
275
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bin/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,SAAS,EAAE,QAAQ,EAW/B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAW/C,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export const stepOrder = [
|
|
2
|
+
"start",
|
|
3
|
+
"prompts",
|
|
4
|
+
"project-created",
|
|
5
|
+
"auth-installed",
|
|
6
|
+
"prisma-configured",
|
|
7
|
+
"production-configured",
|
|
8
|
+
"deps-installed",
|
|
9
|
+
"prisma-generated",
|
|
10
|
+
"git-initialized",
|
|
11
|
+
"done",
|
|
12
|
+
];
|
|
13
|
+
export const stepLabels = {
|
|
14
|
+
start: "Starting",
|
|
15
|
+
prompts: "Collecting inputs",
|
|
16
|
+
"project-created": "Project scaffold",
|
|
17
|
+
"auth-installed": "Auth setup",
|
|
18
|
+
"prisma-configured": "Prisma setup",
|
|
19
|
+
"deps-installed": "Dependencies install",
|
|
20
|
+
"prisma-generated": "Prisma generate",
|
|
21
|
+
"production-configured": "Production setup",
|
|
22
|
+
"git-initialized": "Git init",
|
|
23
|
+
done: "Completed",
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAe;IACnC,OAAO;IACP,SAAS;IACT,iBAAiB;IACjB,gBAAgB;IAChB,mBAAmB;IACnB,uBAAuB;IACvB,gBAAgB;IAChB,kBAAkB;IAClB,iBAAiB;IACjB,MAAM;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAA6B;IAClD,KAAK,EAAE,UAAU;IACjB,OAAO,EAAE,mBAAmB;IAC5B,iBAAiB,EAAE,kBAAkB;IACrC,gBAAgB,EAAE,YAAY;IAC9B,mBAAmB,EAAE,cAAc;IACnC,gBAAgB,EAAE,sBAAsB;IACxC,kBAAkB,EAAE,iBAAiB;IACrC,uBAAuB,EAAE,kBAAkB;IAC3C,iBAAiB,EAAE,UAAU;IAC7B,IAAI,EAAE,WAAW;CAClB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { RunOptions } from "./types.js";
|
|
2
|
+
export declare function run(cmd: string, args: string[], options: RunOptions): Promise<void>;
|
|
3
|
+
export declare function killAllProcesses(): void;
|
|
4
|
+
export declare function getCommand(cmd: string): string;
|
|
5
|
+
export declare function isInterruptedError(err: unknown): boolean;
|
|
6
|
+
export declare function exitForInterrupt(err: unknown): Promise<void>;
|
|
7
|
+
//# sourceMappingURL=process.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../src/lib/process.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBnF;AAED,wBAAgB,gBAAgB,SAO/B;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,UAQrC;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,WAQ9C;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,OAAO,iBAIlD"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { spawn } from "child_process";
|
|
2
|
+
const activeProcesses = new Set();
|
|
3
|
+
export function run(cmd, args, options) {
|
|
4
|
+
return new Promise((resolve, reject) => {
|
|
5
|
+
const child = spawn(cmd, args, {
|
|
6
|
+
cwd: options.cwd,
|
|
7
|
+
stdio: options.stdio ?? "ignore",
|
|
8
|
+
});
|
|
9
|
+
activeProcesses.add(child);
|
|
10
|
+
child.on("exit", (code) => {
|
|
11
|
+
activeProcesses.delete(child);
|
|
12
|
+
if (code === 0) {
|
|
13
|
+
resolve();
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
reject(new Error(`${cmd} exited with code ${code}`));
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
child.on("error", (err) => {
|
|
20
|
+
activeProcesses.delete(child);
|
|
21
|
+
reject(err);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
export function killAllProcesses() {
|
|
26
|
+
for (const proc of activeProcesses) {
|
|
27
|
+
try {
|
|
28
|
+
proc.kill("SIGINT");
|
|
29
|
+
}
|
|
30
|
+
catch { }
|
|
31
|
+
}
|
|
32
|
+
activeProcesses.clear();
|
|
33
|
+
}
|
|
34
|
+
export function getCommand(cmd) {
|
|
35
|
+
const isWin = process.platform === "win32";
|
|
36
|
+
if (cmd === "npm")
|
|
37
|
+
return isWin ? "npm.cmd" : "npm";
|
|
38
|
+
if (cmd === "npx")
|
|
39
|
+
return isWin ? "npx.cmd" : "npx";
|
|
40
|
+
if (cmd === "pnpm")
|
|
41
|
+
return isWin ? "pnpm.cmd" : "pnpm";
|
|
42
|
+
if (cmd === "bun")
|
|
43
|
+
return isWin ? "bun.exe" : "bun";
|
|
44
|
+
if (cmd === "git")
|
|
45
|
+
return isWin ? "git.exe" : "git";
|
|
46
|
+
return cmd;
|
|
47
|
+
}
|
|
48
|
+
export function isInterruptedError(err) {
|
|
49
|
+
return (typeof err === "object" &&
|
|
50
|
+
err !== null &&
|
|
51
|
+
"signal" in err &&
|
|
52
|
+
(err.signal === "SIGINT" ||
|
|
53
|
+
err.signal === "SIGTERM"));
|
|
54
|
+
}
|
|
55
|
+
export async function exitForInterrupt(err) {
|
|
56
|
+
if (isInterruptedError(err)) {
|
|
57
|
+
throw err;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=process.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../../src/lib/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AAGpD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAgB,CAAC;AAEhD,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,OAAmB;IAClE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE;YAC7B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,QAAQ;SACjC,CAAC,CAAC;QACH,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAE3B,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,eAAe,CAAC,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;IAC3C,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IACpD,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IACpD,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;IACvD,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IACpD,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IACpD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAC7C,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,QAAQ,IAAI,GAAG;QACf,CAAE,GAA2B,CAAC,MAAM,KAAK,QAAQ;YAC9C,GAA2B,CAAC,MAAM,KAAK,SAAS,CAAC,CACrD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAY;IACjD,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { CliState, StepName } from "./types.js";
|
|
2
|
+
export declare function initState(initialState: CliState, file: string): void;
|
|
3
|
+
export declare function getState(): CliState;
|
|
4
|
+
export declare function saveState(update: Partial<CliState>): void;
|
|
5
|
+
export declare function loadState(file: string): CliState | null;
|
|
6
|
+
export declare function clearState(): void;
|
|
7
|
+
export declare function hasReachedStep(currentStep: StepName, targetStep: StepName): boolean;
|
|
8
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/lib/state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAMrD,wBAAgB,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,QAG7D;AAED,wBAAgB,QAAQ,IAAI,QAAQ,CAEnC;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,QAIlD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAGvD;AAED,wBAAgB,UAAU,SAIzB;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,WAEzE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import fs from "fs-extra";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { stepOrder } from "./constants.js";
|
|
4
|
+
let state;
|
|
5
|
+
let stateFile;
|
|
6
|
+
export function initState(initialState, file) {
|
|
7
|
+
state = initialState;
|
|
8
|
+
stateFile = file;
|
|
9
|
+
}
|
|
10
|
+
export function getState() {
|
|
11
|
+
return state;
|
|
12
|
+
}
|
|
13
|
+
export function saveState(update) {
|
|
14
|
+
state = { ...state, ...update };
|
|
15
|
+
fs.ensureDirSync(path.dirname(stateFile));
|
|
16
|
+
fs.writeJsonSync(stateFile, state, { spaces: 2 });
|
|
17
|
+
}
|
|
18
|
+
export function loadState(file) {
|
|
19
|
+
if (!fs.existsSync(file))
|
|
20
|
+
return null;
|
|
21
|
+
return fs.readJsonSync(file);
|
|
22
|
+
}
|
|
23
|
+
export function clearState() {
|
|
24
|
+
if (fs.existsSync(stateFile)) {
|
|
25
|
+
fs.removeSync(stateFile);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export function hasReachedStep(currentStep, targetStep) {
|
|
29
|
+
return stepOrder.indexOf(currentStep) >= stepOrder.indexOf(targetStep);
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/lib/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,IAAI,KAAe,CAAC;AACpB,IAAI,SAAiB,CAAC;AAEtB,MAAM,UAAU,SAAS,CAAC,YAAsB,EAAE,IAAY;IAC5D,KAAK,GAAG,YAAY,CAAC;IACrB,SAAS,GAAG,IAAI,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAyB;IACjD,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,EAAE,CAAC;IAChC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1C,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAa,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,WAAqB,EAAE,UAAoB;IACxE,OAAO,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACzE,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { StdioOptions } from "child_process";
|
|
2
|
+
export type StepName = "start" | "prompts" | "project-created" | "auth-installed" | "prisma-configured" | "production-configured" | "deps-installed" | "prisma-generated" | "git-initialized" | "done";
|
|
3
|
+
export type CliState = {
|
|
4
|
+
step: StepName;
|
|
5
|
+
runtime?: "node" | "bun";
|
|
6
|
+
projectName: string;
|
|
7
|
+
framework?: string;
|
|
8
|
+
usePrisma?: boolean;
|
|
9
|
+
database?: string;
|
|
10
|
+
useGit?: boolean;
|
|
11
|
+
authMode?: string;
|
|
12
|
+
hashLib?: string;
|
|
13
|
+
oauthProviders?: string[];
|
|
14
|
+
};
|
|
15
|
+
export type RunOptions = {
|
|
16
|
+
cwd: string;
|
|
17
|
+
stdio?: StdioOptions;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,MAAM,QAAQ,GAChB,OAAO,GACP,SAAS,GACT,iBAAiB,GACjB,gBAAgB,GAChB,mBAAmB,GACnB,uBAAuB,GACvB,gBAAgB,GAChB,kBAAkB,GAClB,iBAAiB,GACjB,MAAM,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,CAAC,EAAC,MAAM,GAAC,KAAK,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { StepName } from "./types.js";
|
|
2
|
+
export declare const spinner: import("ora").Ora;
|
|
3
|
+
export declare const sleep: (ms: number) => Promise<unknown>;
|
|
4
|
+
export declare function renderHeader(): void;
|
|
5
|
+
export declare function renderStep(current: StepName, isProduction: boolean): void;
|
|
6
|
+
export declare function showBootLogo(): Promise<void>;
|
|
7
|
+
//# sourceMappingURL=ui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../src/lib/ui.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI3C,eAAO,MAAM,OAAO,mBAAgB,CAAC;AAErC,eAAO,MAAM,KAAK,GAAI,IAAI,MAAM,qBAA0C,CAAC;AAsE3E,wBAAgB,YAAY,SAI3B;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,QAwBlE;AAED,wBAAsB,YAAY,kBA4BjC"}
|
|
@@ -0,0 +1,124 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../src/lib/ui.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
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,CA6Ef"}
|