create-authenik8-app 2.0.6 โ†’ 2.0.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/bin/index.js CHANGED
@@ -9,28 +9,7 @@ import { execSync } from "child_process";
9
9
  import { fileURLToPath } from "url";
10
10
  import { spawnSync } from "child_process";
11
11
  import os from "os";
12
- function step(name, fn) {
13
- return { name, fn };
14
- }
15
- let state = {};
16
12
  let answers = {};
17
- const stateFile = (project) => path.join(process.cwd(), project, ".authenik8-state.json");
18
- function saveState(project, state) {
19
- fs.ensureDirSync(path.join(process.cwd(), project));
20
- fs.writeJsonSync(stateFile(project), state, { spaces: 2 });
21
- }
22
- function loadState(project) {
23
- const file = stateFile(project);
24
- if (!fs.existsSync(file))
25
- return null;
26
- return fs.readJsonSync(file);
27
- }
28
- function clearState(project) {
29
- const file = stateFile(project);
30
- if (fs.existsSync(file))
31
- fs.removeSync(file);
32
- }
33
- const isResume = process.argv.includes("--resume");
34
13
  const platform = os.platform();
35
14
  // 'linux' | 'darwin' | 'win32'
36
15
  const isTermux = process.env.PREFIX?.includes("com.termux") ||
@@ -49,17 +28,6 @@ function getBestHashLib() {
49
28
  // but still fallback later if needed
50
29
  return "bcryptjs";
51
30
  }
52
- function createSaver(projectName, ctx) {
53
- return (step, extra) => {
54
- saveState(projectName, {
55
- step,
56
- projectName,
57
- ...ctx.state,
58
- ...ctx.answers,
59
- ...extra,
60
- });
61
- };
62
- }
63
31
  function generateHashModule(hashLib) {
64
32
  if (hashLib === "argon2") {
65
33
  return `
@@ -94,32 +62,62 @@ if (!projectName) {
94
62
  process.exit(1);
95
63
  }
96
64
  const isProduction = process.argv.includes("--production-ready");
65
+ const isResume = process.argv.includes("--resume");
97
66
  const targetDir = path.join(process.cwd(), projectName);
98
67
  let projectCreated = false;
99
- const exists = fs.existsSync(targetDir);
100
- if (isResume) {
68
+ const stepOrder = [
69
+ "start",
70
+ "prompts",
71
+ "project-created",
72
+ "auth-installed",
73
+ "prisma-configured",
74
+ "deps-installed",
75
+ "prisma-generated",
76
+ "production-configured",
77
+ "git-initialized",
78
+ "done",
79
+ ];
80
+ const stateFile = path.join(targetDir, ".authenik8-state.json");
81
+ function hasReachedStep(currentStep, targetStep) {
82
+ return stepOrder.indexOf(currentStep) >= stepOrder.indexOf(targetStep);
83
+ }
84
+ function saveState(step, extra = {}) {
85
+ fs.ensureDirSync(targetDir);
86
+ fs.writeJsonSync(stateFile, {
87
+ step,
88
+ projectName,
89
+ ...answers,
90
+ ...extra,
91
+ }, { spaces: 2 });
92
+ }
93
+ function loadState() {
94
+ if (!fs.existsSync(stateFile))
95
+ return null;
96
+ return fs.readJsonSync(stateFile);
101
97
  }
102
- if (exists && !isResume) {
103
- const { action } = await inquirer.prompt([
104
- {
105
- type: "select",
106
- name: "action",
107
- message: `Folder "${projectName}" already exists. What do you want to do?`,
108
- choices: [
109
- { name: "Resume setup", value: "resume" },
110
- { name: "Overwrite", value: "overwrite" },
111
- { name: "Cancel", value: "cancel" },
112
- ],
113
- },
114
- ]);
115
- if (action === "resume") {
116
- // trigger resume logic
98
+ function clearState() {
99
+ if (fs.existsSync(stateFile)) {
100
+ fs.removeSync(stateFile);
117
101
  }
118
- if (action === "overwrite") {
119
- await fs.remove(targetDir);
102
+ }
103
+ function isInterruptedError(err) {
104
+ return (typeof err === "object" &&
105
+ err !== null &&
106
+ "signal" in err &&
107
+ (err.signal === "SIGINT" ||
108
+ err.signal === "SIGTERM"));
109
+ }
110
+ function exitForInterrupt(err) {
111
+ if (isInterruptedError(err)) {
112
+ throw err;
120
113
  }
121
- if (action === "cancel") {
122
- process.exit(0);
114
+ console.error(err);
115
+ process.exit(1);
116
+ }
117
+ async function cleanupIncompleteProject() {
118
+ if (projectCreated && fs.existsSync(targetDir)) {
119
+ await fs.remove(targetDir);
120
+ console.log("๐Ÿงน Cleaned up incomplete project.");
123
121
  }
124
122
  }
125
123
  const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
@@ -218,8 +216,12 @@ async function showBootLogo() {
218
216
  await sleep(800);
219
217
  boot.succeed("Engine ready");
220
218
  }
221
- //const isResume = process.argv.includes("--resume");
222
219
  async function main() {
220
+ process.on("SIGINT", async () => {
221
+ console.log("\n๐Ÿ‘‹ Authenik8 setup cancelled.");
222
+ await cleanupIncompleteProject();
223
+ process.exit(0);
224
+ });
223
225
  try {
224
226
  await showBootLogo();
225
227
  if (process.argv.includes("--help")) {
@@ -273,72 +275,91 @@ Features:
273
275
  โ€ข Git initialization (optional)
274
276
  โ€ข OAuth + Auth
275
277
  `));
276
- answers = await inquirer.prompt([
277
- {
278
- type: "list",
279
- name: "framework",
280
- message: "Choose framework:",
281
- choices: ["Express", "Fastify (coming soon)"],
282
- default: state.framework ?? "Express",
283
- },
284
- {
285
- type: "confirm",
286
- name: "usePrisma",
287
- message: "Use Prisma?",
288
- default: state.usePrisma ?? true,
289
- },
290
- {
291
- type: "list",
292
- name: "database",
293
- message: "Choose database:",
294
- choices: [
295
- { name: "PostgreSQL", value: "postgresql" },
296
- { name: "SQLite ", value: "sqlite" }
297
- ],
298
- when: (answers) => answers.usePrisma,
299
- default: state.database ?? "sqlite",
300
- },
301
- {
302
- type: "confirm",
303
- name: "useGit",
304
- message: "Initialize git?",
305
- default: state.useGit ?? true,
306
- }, {
307
- type: "list",
308
- name: "authMode",
309
- message: "Choose authentication setup:",
310
- choices: [
311
- { name: "JWT only", value: "base" },
312
- { name: "Email + Password Auth", value: "auth" },
313
- { name: "Full Auth (Password + OAuth)", value: "auth-oauth" },
314
- ],
315
- default: state.authMode ?? "base"
278
+ const savedState = loadState();
279
+ let currentStep = "start";
280
+ if (!isResume && fs.existsSync(targetDir)) {
281
+ if (savedState) {
282
+ console.log(chalk.red(`โŒ "${projectName}" already contains an incomplete Authenik8 setup. Run again with --resume.`));
283
+ }
284
+ else {
285
+ console.log(chalk.red(`โŒ Directory "${projectName}" already exists.`));
316
286
  }
317
- ]);
287
+ process.exit(1);
288
+ }
289
+ if (isResume) {
290
+ if (!savedState) {
291
+ console.log(chalk.red(`โŒ No saved setup state found for "${projectName}".`));
292
+ process.exit(1);
293
+ }
294
+ answers = {
295
+ framework: savedState.framework,
296
+ usePrisma: savedState.usePrisma,
297
+ database: savedState.database,
298
+ useGit: savedState.useGit,
299
+ authMode: savedState.authMode,
300
+ };
301
+ currentStep = savedState.step;
302
+ console.log(chalk.yellow(`\nโ†ป Resuming setup for ${projectName} from "${currentStep}"...\n`));
303
+ }
304
+ else {
305
+ answers = await inquirer.prompt([
306
+ {
307
+ type: "list",
308
+ name: "framework",
309
+ message: "Choose framework:",
310
+ choices: ["Express", "Fastify (coming soon)"],
311
+ default: "Express",
312
+ },
313
+ {
314
+ type: "confirm",
315
+ name: "usePrisma",
316
+ message: "Use Prisma?",
317
+ default: true,
318
+ },
319
+ {
320
+ type: "list",
321
+ name: "database",
322
+ message: "Choose database:",
323
+ choices: [
324
+ { name: "PostgreSQL", value: "postgresql" },
325
+ { name: "SQLite ", value: "sqlite" }
326
+ ],
327
+ when: (answers) => answers.usePrisma,
328
+ default: "sqlite",
329
+ },
330
+ {
331
+ type: "confirm",
332
+ name: "useGit",
333
+ message: "Initialize git?",
334
+ default: true,
335
+ }, {
336
+ type: "list",
337
+ name: "authMode",
338
+ message: "Choose authentication setup:",
339
+ choices: [
340
+ { name: "JWT only", value: "base" },
341
+ { name: "Email + Password Auth", value: "auth" },
342
+ { name: "Full Auth (Password + OAuth)", value: "auth-oauth" },
343
+ ],
344
+ default: "base"
345
+ }
346
+ ]);
347
+ saveState("prompts");
348
+ currentStep = "prompts";
349
+ }
318
350
  function assertRequired(value, name) {
319
351
  if (value === undefined || value === null || value === "") {
320
352
  console.log(`โŒ Missing required input: ${name}`);
321
353
  process.exit(1);
322
354
  }
323
355
  }
324
- const finalConfig = {
325
- ...state,
326
- ...answers,
327
- };
328
- assertRequired(finalConfig.framework, "framework");
329
- assertRequired(finalConfig.authMode, "authMode");
330
- if (finalConfig.usePrisma && !finalConfig.database) {
331
- finalConfig.database = "sqlite";
332
- }
333
- if (finalConfig.usePrisma) {
334
- assertRequired(finalConfig.database, "database");
335
- }
336
- if (finalConfig.usePrisma && !answers.database && !state.database) {
337
- console.log(chalk.gray("โ„น๏ธ Defaulting to SQLite (quick start)"));
338
- }
339
- if (!answers.authMode || !answers.framework) {
340
- console.log("โŒ Invalid setup state. Restart CLI.");
341
- process.exit(1);
356
+ assertRequired(answers.framework, "framework");
357
+ assertRequired(answers.authMode, "authMode");
358
+ if (answers.usePrisma) {
359
+ if (!answers.database) {
360
+ answers.database = "sqlite";
361
+ }
362
+ assertRequired(answers.database, "database");
342
363
  }
343
364
  console.log(chalk.cyan("\nโš™๏ธ Setting things up...\n"));
344
365
  const templateRoot = path.resolve(__dirname, "../../templates");
@@ -351,95 +372,146 @@ Features:
351
372
  }
352
373
  const templatePath = path.join(templateRoot, templateName);
353
374
  // ๐Ÿ“ Create project (SPINNER)
354
- const createSpinner = ora("Creating project structure...").start();
355
- try {
356
- await fs.copy(templatePath, targetDir);
357
- projectCreated = true;
358
- createSpinner.succeed("Project files created");
375
+ if (!hasReachedStep(currentStep, "project-created")) {
376
+ const createSpinner = ora("Creating project structure...").start();
377
+ try {
378
+ await fs.copy(templatePath, targetDir);
379
+ projectCreated = true;
380
+ createSpinner.succeed("Project files created");
381
+ saveState("project-created");
382
+ currentStep = "project-created";
383
+ }
384
+ catch (err) {
385
+ createSpinner.fail("Failed to create project");
386
+ console.error(err);
387
+ process.exit(1);
388
+ }
359
389
  }
360
- catch (err) {
361
- createSpinner.fail("Failed to create project");
362
- console.error(err);
363
- process.exit(1);
390
+ else {
391
+ console.log(chalk.gray("โ†ท Skipping project creation (already completed)"));
364
392
  }
365
393
  let selectedHash = "bcryptjs"; // default safe fallback
366
- if (answers.authMode !== "base") {
367
- const authSpinner = ora("Installing password auth...").start();
368
- selectedHash = getBestHashLib();
369
- try {
370
- spawnSync("npm", ["install", selectedHash], {
394
+ if (!hasReachedStep(currentStep, "auth-installed")) {
395
+ if (answers.authMode !== "base") {
396
+ const authSpinner = ora("Installing password auth...").start();
397
+ selectedHash = getBestHashLib();
398
+ const installResult = spawnSync("npm", ["install", selectedHash], {
371
399
  cwd: targetDir,
372
400
  stdio: "ignore"
373
401
  });
374
- authSpinner.succeed(`Password auth ready ${selectedHash}`);
375
- }
376
- catch (err) {
377
- if (selectedHash !== "bcryptjs") {
378
- authSpinner.warn(`${selectedHash} failed, falling back to bcryptjs`);
379
- spawnSync("npm", ["install", "bcryptjs"], {
380
- cwd: targetDir,
381
- stdio: "ignore",
382
- });
383
- selectedHash = "bcryptjs";
384
- authSpinner.succeed("Password auth ready (bcryptjs fallback)");
402
+ if (!installResult.error && installResult.status === 0) {
403
+ authSpinner.succeed(`Password auth ready ${selectedHash}`);
385
404
  }
386
405
  else {
387
- authSpinner.fail("Failed to install password auth");
388
- process.exit(1);
406
+ if (selectedHash !== "bcryptjs") {
407
+ authSpinner.warn(`${selectedHash} failed, falling back to bcryptjs`);
408
+ const fallbackResult = spawnSync("npm", ["install", "bcryptjs"], {
409
+ cwd: targetDir,
410
+ stdio: "ignore",
411
+ });
412
+ if (!fallbackResult.error && fallbackResult.status === 0) {
413
+ selectedHash = "bcryptjs";
414
+ authSpinner.succeed("Password auth ready (bcryptjs fallback)");
415
+ }
416
+ else {
417
+ authSpinner.fail("Failed to install password auth");
418
+ process.exit(1);
419
+ }
420
+ }
421
+ else {
422
+ authSpinner.fail("Failed to install password auth");
423
+ process.exit(1);
424
+ }
389
425
  }
390
426
  }
427
+ if (answers.authMode !== "base") {
428
+ const hashLib = selectedHash;
429
+ await fs.writeFile(path.join(targetDir, "src/utils/hash.ts"), generateHashModule(hashLib));
430
+ //const deps = [];
431
+ //if (hashLib === "argon2") deps.push("argon2");
432
+ //if (hashLib === "bcryptjs") deps.push("bcryptjs");
433
+ //if (deps.length) {
434
+ //execSync(`npm install ${deps.join(" ")}`, {
435
+ //cwd: targetDir,
436
+ //stdio: "ignore",
437
+ //});
438
+ //};
439
+ }
440
+ saveState("auth-installed", answers.authMode !== "base" ? { hashLib: selectedHash } : {});
441
+ currentStep = "auth-installed";
391
442
  }
392
- if (answers.authMode !== "base") {
393
- const hashLib = getBestHashLib(); // or CLI decision
394
- await fs.writeFile(path.join(targetDir, "src/utils/hash.ts"), generateHashModule(hashLib));
395
- const deps = [];
396
- if (hashLib === "argon2")
397
- deps.push("argon2");
398
- if (hashLib === "bcryptjs")
399
- deps.push("bcryptjs");
400
- if (deps.length) {
401
- execSync(`npm install ${deps.join(" ")}`, {
402
- cwd: targetDir,
403
- stdio: "ignore",
404
- });
443
+ else {
444
+ selectedHash = savedState?.hashLib ?? selectedHash;
445
+ console.log(chalk.gray("โ†ท Skipping auth setup (already completed)"));
446
+ }
447
+ if (!hasReachedStep(currentStep, "prisma-configured")) {
448
+ const pkgPath = path.join(targetDir, "package.json");
449
+ const pkg = await fs.readJson(pkgPath);
450
+ pkg.dependencies = {
451
+ ...pkg.dependencies,
452
+ ioredis: "^5.8.1",
453
+ };
454
+ if (answers.usePrisma) {
455
+ const prismaSpinner = ora("Adding Prisma setup...").start();
456
+ try {
457
+ const dbType = answers.database ===
458
+ "postgresql" ? "postgresql"
459
+ : "sqlite";
460
+ const prismaTemplatePath = path.join(templateRoot, `prisma/${dbType}`);
461
+ // Copy prisma schema
462
+ await fs.copy(path.join(prismaTemplatePath, "schema.prisma"), path.join(targetDir, "prisma/schema.prisma"));
463
+ // Copy env
464
+ await fs.copy(path.join(prismaTemplatePath, ".env"), path.join(targetDir, ".env"));
465
+ // Inject dependencies
466
+ pkg.dependencies = {
467
+ ...pkg.dependencies,
468
+ "@prisma/client": "5.22.0",
469
+ };
470
+ pkg.devDependencies = {
471
+ ...pkg.devDependencies,
472
+ prisma: "5.22.0",
473
+ };
474
+ // Add scripts
475
+ pkg.scripts = {
476
+ ...pkg.scripts,
477
+ "prisma:generate": "prisma generate",
478
+ "prisma:migrate": "prisma migrate dev",
479
+ };
480
+ await fs.writeJson(pkgPath, pkg, { spaces: 2 });
481
+ prismaSpinner.succeed(`Prisma (${dbType}) configured`);
482
+ }
483
+ catch (err) {
484
+ prismaSpinner.fail("Failed to setup Prisma");
485
+ exitForInterrupt(err);
486
+ }
405
487
  }
406
- ;
488
+ await fs.writeJson(pkgPath, pkg, { spaces: 2 });
489
+ saveState("prisma-configured", answers.authMode !== "base" ? { hashLib: selectedHash } : {});
490
+ currentStep = "prisma-configured";
407
491
  }
408
- if (answers.usePrisma) {
409
- const prismaSpinner = ora("Adding Prisma setup...").start();
492
+ else {
493
+ console.log(chalk.gray("โ†ท Skipping Prisma/package setup (already completed)"));
494
+ }
495
+ if (!hasReachedStep(currentStep, "deps-installed")) {
496
+ const installSpinner = ora("Installing dependencies...(this may take a few minutes)").start();
410
497
  try {
411
- const dbType = answers.database ===
412
- "postgresql" ? "postgresql"
413
- : "sqlite";
414
- const prismaTemplatePath = path.join(templateRoot, `prisma/${dbType}`);
415
- // Copy prisma schema
416
- await fs.copy(path.join(prismaTemplatePath, "schema.prisma"), path.join(targetDir, "prisma/schema.prisma"));
417
- // Copy env
418
- await fs.copy(path.join(prismaTemplatePath, ".env"), path.join(targetDir, ".env"));
419
- const pkgPath = path.join(targetDir, "package.json");
420
- const pkg = await fs.readJson(pkgPath);
421
- await fs.writeJson(pkgPath, pkg, { spaces: 2 });
422
- // Inject dependencies
423
- pkg.dependencies = {
424
- ...pkg.dependencies,
425
- "@prisma/client": "5.22.0",
426
- };
427
- pkg.devDependencies = {
428
- ...pkg.devDependencies,
429
- prisma: "5.22.0",
430
- };
431
- // Add scripts
432
- pkg.scripts = {
433
- ...pkg.scripts,
434
- "prisma:generate": "prisma generate",
435
- "prisma:migrate": "prisma migrate dev",
436
- };
437
- prismaSpinner.succeed(`Prisma (${dbType}) configured`);
498
+ execSync("npm install", {
499
+ cwd: targetDir,
500
+ stdio: "ignore",
501
+ });
502
+ installSpinner.succeed("Dependencies installed");
438
503
  }
439
504
  catch (err) {
440
- prismaSpinner.fail("Failed to setup Prisma");
441
- console.error(err);
505
+ installSpinner.fail("Failed to install dependencies");
506
+ exitForInterrupt(err);
442
507
  }
508
+ saveState("deps-installed", answers.authMode !== "base" ? { hashLib: selectedHash } : {});
509
+ currentStep = "deps-installed";
510
+ }
511
+ else {
512
+ console.log(chalk.gray("โ†ท Skipping dependency install (already completed)"));
513
+ }
514
+ if (!hasReachedStep(currentStep, "prisma-generated")) {
443
515
  if (answers.usePrisma) {
444
516
  const prismaGenSpinner = ora("Generating Prisma client...").start();
445
517
  try {
@@ -451,48 +523,50 @@ Features:
451
523
  }
452
524
  catch (err) {
453
525
  prismaGenSpinner.fail("Failed to generate Prisma client");
454
- console.error(err);
526
+ exitForInterrupt(err);
455
527
  }
456
528
  }
457
- const installSpinner = ora("Installing dependencies...(this may take a few minutes)").start();
529
+ saveState("prisma-generated", answers.authMode !== "base" ? { hashLib: selectedHash } : {});
530
+ currentStep = "prisma-generated";
531
+ }
532
+ else {
533
+ console.log(chalk.gray("โ†ท Skipping Prisma client generation (already completed)"));
534
+ }
535
+ if (isProduction && !hasReachedStep(currentStep, "production-configured")) {
536
+ const pm2Spinner = ora("Setting up production mode (PM2)...").start();
458
537
  try {
459
- execSync("npm install", {
538
+ execSync("npm install pm2", {
460
539
  cwd: targetDir,
461
540
  stdio: "ignore",
462
541
  });
463
- installSpinner.succeed("Dependencies installed");
542
+ pm2Spinner.succeed("PM2 installed (production-ready)");
464
543
  }
465
544
  catch (err) {
466
- installSpinner.fail("Failed to install dependencies");
467
- console.error(err);
468
- process.exit(1);
545
+ pm2Spinner.fail("Failed to install PM2");
546
+ exitForInterrupt(err);
469
547
  }
470
- if (isProduction) {
471
- const pm2Spinner = ora("Setting up production mode (PM2)...").start();
548
+ saveState("production-configured", answers.authMode !== "base" ? { hashLib: selectedHash } : {});
549
+ currentStep = "production-configured";
550
+ }
551
+ if (!hasReachedStep(currentStep, "git-initialized")) {
552
+ if (answers.useGit) {
553
+ const gitSpinner = ora("Initializing git...").start();
472
554
  try {
473
- execSync("npm install pm2", {
555
+ execSync("git init", {
474
556
  cwd: targetDir,
475
557
  stdio: "ignore",
476
558
  });
477
- pm2Spinner.succeed("PM2 installed (production-ready)");
559
+ gitSpinner.succeed("Git initialized");
478
560
  }
479
561
  catch (err) {
480
- pm2Spinner.fail("Failed to install PM2");
562
+ gitSpinner.fail("Git init failed");
481
563
  }
482
564
  }
565
+ saveState("git-initialized", answers.authMode !== "base" ? { hashLib: selectedHash } : {});
566
+ currentStep = "git-initialized";
483
567
  }
484
- if (answers.useGit) {
485
- const gitSpinner = ora("Initializing git...").start();
486
- try {
487
- execSync("git init", {
488
- cwd: targetDir,
489
- stdio: "ignore",
490
- });
491
- gitSpinner.succeed("Git initialized");
492
- }
493
- catch (err) {
494
- gitSpinner.fail("Git init failed");
495
- }
568
+ else {
569
+ console.log(chalk.gray("โ†ท Skipping git init (already completed)"));
496
570
  }
497
571
  console.log(chalk.green.bold("\n๐ŸŽ‰ Authenik8 app created successfully!\n"));
498
572
  if (isProduction) {
@@ -532,7 +606,7 @@ ${answers.authMode === "base"
532
606
 
533
607
  ๐Ÿ›  Stack:
534
608
  โœ” Express
535
- โœ” ${answers.usePrisma ? (answers.database.includes("postgresql") ? "PostgreSQL" : "SQLite") : "No database"}
609
+ โœ” ${answers.usePrisma ? (answers.database === "postgresql" ? "PostgreSQL" : "SQLite") : "No database"}
536
610
  โœ” ${answers.usePrisma ? "Prisma ORM" : "No ORM"}
537
611
 
538
612
  ๐Ÿ“ก API Routes:
@@ -573,26 +647,22 @@ Run:
573
647
  npm run pm2:start
574
648
  `);
575
649
  }
650
+ saveState("done", answers.authMode !== "base" ? { hashLib: selectedHash } : {});
651
+ clearState();
576
652
  }
577
653
  catch (err) {
578
654
  console.error("Fatal error", err);
579
655
  process.exit(1);
580
656
  }
581
657
  }
582
- process.on("SIGINT", () => {
583
- console.log("\n๐Ÿ‘‹ Cancelled.");
584
- process.exit(0);
585
- });
586
658
  main().catch(async (err) => {
587
659
  if (err instanceof ExitPromptError) {
588
660
  console.log("\n๐Ÿ‘‹ Authenik8 setup cancelled.");
589
- if (projectCreated && fs.existsSync(targetDir)) {
590
- await fs.remove(targetDir);
591
- console.log("๐Ÿงน Cleaned up incomplete project.");
592
- }
661
+ await cleanupIncompleteProject();
593
662
  process.exit(0);
594
663
  }
595
- console.error("โŒ Unexpected error:", err);
664
+ console.error(chalk.red("\nโŒ Unexpected error:"), err);
665
+ await cleanupIncompleteProject();
596
666
  process.exit(1);
597
667
  });
598
668
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bin/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bin/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "create-authenik8-app",
3
- "version": "2.0.6",
4
- "description": "Create production-ready backend APIs in seconds. Authenik8 scaffolds Express + Prisma projects with JWT authentication, database setup (PostgreSQL or SQLite), and scalable architecture out of the box.",
3
+ "version": "2.0.7",
4
+ "description": "Create production-ready backend APIs with a built-in identity engine. Authenik8 scaffolds Express + Prisma apps with JWT auth, refresh token rotation, account linking, Redis-backed security, and scalable architecture out of the box.",
5
5
  "bin": {
6
6
  "create-authenik8-app": "dist/bin/index.js"
7
7
  },
@@ -40,9 +40,12 @@
40
40
  "dist",
41
41
  "templates"
42
42
  ],
43
+ "scripts": {
44
+ "test:templates": "node --import tsx --test tests/template-servers.test.mjs"
45
+ },
43
46
  "devDependencies": {
44
47
  "@types/express": "^5.0.6",
45
48
  "@types/fs-extra": "^11.0.4",
46
- "@types/node": "^25.6.0"
49
+ "@types/node": "^25.5.2"
47
50
  }
48
51
  }
@@ -5,11 +5,11 @@ import { getAuth } from "./auth";
5
5
  const router = express.Router();
6
6
 
7
7
 
8
- router.get("/protected", (req, res) => {
8
+ router.get("/protected", (req, res, next) => {
9
9
 
10
10
  const auth = getAuth()
11
11
 
12
- return auth.requireAdmin(req, res, next);
12
+ auth.requireAdmin(req, res, next);
13
13
  }, (req, res) => {
14
14
  res.json({ message: "Protected route" });
15
15
  });