create-authenik8-app 1.0.0

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.
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bin/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,110 @@
1
+ #!/usr/bin/env node
2
+ import fs from "fs-extra";
3
+ import path from "path";
4
+ import chalk from "chalk";
5
+ import inquirer from "inquirer";
6
+ import ora from "ora";
7
+ import { execSync } from "child_process";
8
+ import { fileURLToPath } from "url";
9
+ const __filename = fileURLToPath(import.meta.url);
10
+ const __dirname = path.dirname(__filename);
11
+ const projectName = process.argv[2];
12
+ if (!projectName) {
13
+ console.log(chalk.red("āŒ Please provide a project name"));
14
+ process.exit(1);
15
+ }
16
+ const targetDir = path.join(process.cwd(), projectName);
17
+ async function main() {
18
+ console.log(chalk.blue.bold("\nšŸš€ Authenik8 App Generator\n"));
19
+ // šŸ”„ PROMPTS
20
+ const answers = await inquirer.prompt([
21
+ {
22
+ type: "list",
23
+ name: "framework",
24
+ message: "Choose framework:",
25
+ choices: ["Express", "Fastify (coming soon)"],
26
+ },
27
+ {
28
+ type: "confirm",
29
+ name: "usePrisma",
30
+ message: "Use Prisma?",
31
+ default: true,
32
+ },
33
+ {
34
+ type: "confirm",
35
+ name: "useGit",
36
+ message: "Initialize git?",
37
+ default: true,
38
+ },
39
+ ]);
40
+ // 🚫 Prevent overwrite
41
+ if (fs.existsSync(targetDir)) {
42
+ console.log(chalk.red("\nāŒ Folder already exists"));
43
+ process.exit(1);
44
+ }
45
+ console.log(chalk.cyan("\nāš™ļø Setting things up...\n"));
46
+ const templateRoot = path.resolve(__dirname, "../../templates");
47
+ const templatePath = answers.framework === "Express"
48
+ ? path.join(templateRoot, "express-ts")
49
+ : path.join(templateRoot, "express-ts"); // fallback for now
50
+ // šŸ“ Create project (SPINNER)
51
+ const createSpinner = ora("Creating project structure...").start();
52
+ try {
53
+ await fs.copy(templatePath, targetDir);
54
+ createSpinner.succeed("Project files created");
55
+ }
56
+ catch (err) {
57
+ createSpinner.fail("Failed to create project");
58
+ console.error(err);
59
+ process.exit(1);
60
+ }
61
+ if (answers.usePrisma) {
62
+ const prismaSpinner = ora("Adding Prisma setup...").start();
63
+ try {
64
+ await fs.copy(path.join(__dirname, "../../templates"), path.join(targetDir, "prisma"));
65
+ prismaSpinner.succeed("Prisma configured");
66
+ }
67
+ catch (err) {
68
+ prismaSpinner.fail("Failed to setup Prisma");
69
+ }
70
+ }
71
+ //
72
+ const installSpinner = ora("Installing dependencies...").start();
73
+ try {
74
+ execSync("npm install", {
75
+ cwd: targetDir,
76
+ stdio: "ignore",
77
+ });
78
+ installSpinner.succeed("Dependencies installed");
79
+ }
80
+ catch (err) {
81
+ installSpinner.fail("Failed to install dependencies");
82
+ console.error(err);
83
+ process.exit(1);
84
+ }
85
+ if (answers.useGit) {
86
+ const gitSpinner = ora("Initializing git...").start();
87
+ try {
88
+ execSync("git init", {
89
+ cwd: targetDir,
90
+ stdio: "ignore",
91
+ });
92
+ gitSpinner.succeed("Git initialized");
93
+ }
94
+ catch (err) {
95
+ gitSpinner.fail("Git init failed");
96
+ }
97
+ }
98
+ console.log(chalk.green.bold("\nšŸŽ‰ Authenik8 app created successfully!\n"));
99
+ console.log(chalk.white(`
100
+ Next steps:
101
+
102
+ cd ${projectName}
103
+ cp .env.example .env
104
+ npm run dev
105
+
106
+ šŸ”„ Your Authenik8 server is ready to go!
107
+ `));
108
+ }
109
+ main();
110
+ //# 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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"}
package/package.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "create-authenik8-app",
3
+ "version": "1.0.0",
4
+ "bin": {
5
+ "create-authenik8-app": "dist/bin/index.js"
6
+ },
7
+ "type": "module",
8
+ "dependencies": {
9
+ "authenik8-core": "^0.1.4",
10
+ "chalk": "^5.6.2",
11
+ "fs-extra": "^11.3.4",
12
+ "inquirer": "^13.3.2",
13
+ "ora": "^9.3.0",
14
+ "tsx": "^4.21.0"
15
+ },
16
+ "files": [
17
+ "dist",
18
+ "templates"
19
+ ],
20
+ "devDependencies": {
21
+ "@types/express": "^5.0.6",
22
+ "@types/fs-extra": "^11.0.4",
23
+ "@types/node": "^25.5.0"
24
+ }
25
+ }
@@ -0,0 +1,6 @@
1
+ model User {
2
+ id String @id @default(uuid())
3
+ email String @unique
4
+ password String
5
+ createdAt DateTime @default(now())
6
+ }
@@ -0,0 +1,3 @@
1
+ JWT_SECRET=supersecret
2
+ REFRESH_SECRET=refreshsecret
3
+ REDIS_URL=redis://localhost:6379