create-authenik8-app 2.4.12 → 2.4.13
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 +160 -57
- package/assets/logo.svg +53 -0
- package/dist/src/bin/index.js +199 -125
- package/dist/src/bin/index.js.map +1 -1
- package/dist/src/lib/args.d.ts +18 -0
- package/dist/src/lib/args.d.ts.map +1 -0
- package/dist/src/lib/args.js +82 -0
- package/dist/src/lib/args.js.map +1 -0
- package/dist/src/lib/constants.d.ts +1 -0
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +10 -11
- package/dist/src/lib/constants.js.map +1 -1
- package/dist/src/lib/preflight.d.ts +3 -0
- package/dist/src/lib/preflight.d.ts.map +1 -0
- package/dist/src/lib/preflight.js +21 -0
- package/dist/src/lib/preflight.js.map +1 -0
- package/dist/src/lib/process.d.ts +6 -2
- package/dist/src/lib/process.d.ts.map +1 -1
- package/dist/src/lib/process.js +66 -8
- package/dist/src/lib/process.js.map +1 -1
- package/dist/src/lib/projectName.d.ts +2 -0
- package/dist/src/lib/projectName.d.ts.map +1 -0
- package/dist/src/lib/projectName.js +6 -0
- package/dist/src/lib/projectName.js.map +1 -0
- package/dist/src/lib/schemas.d.ts +192 -0
- package/dist/src/lib/schemas.d.ts.map +1 -0
- package/dist/src/lib/schemas.js +171 -0
- package/dist/src/lib/schemas.js.map +1 -0
- package/dist/src/lib/state.d.ts.map +1 -1
- package/dist/src/lib/state.js +20 -3
- package/dist/src/lib/state.js.map +1 -1
- package/dist/src/lib/types.d.ts +6 -13
- package/dist/src/lib/types.d.ts.map +1 -1
- package/dist/src/lib/ui.d.ts +8 -3
- package/dist/src/lib/ui.d.ts.map +1 -1
- package/dist/src/lib/ui.js +76 -112
- package/dist/src/lib/ui.js.map +1 -1
- package/dist/src/steps/configurePrisma.d.ts.map +1 -1
- package/dist/src/steps/configurePrisma.js +83 -9
- package/dist/src/steps/configurePrisma.js.map +1 -1
- package/dist/src/steps/createProject.d.ts +2 -1
- package/dist/src/steps/createProject.d.ts.map +1 -1
- package/dist/src/steps/createProject.js +149 -28
- package/dist/src/steps/createProject.js.map +1 -1
- package/dist/src/steps/finalSetup.d.ts +3 -3
- package/dist/src/steps/finalSetup.d.ts.map +1 -1
- package/dist/src/steps/finalSetup.js +24 -28
- package/dist/src/steps/finalSetup.js.map +1 -1
- package/dist/src/steps/installAuth.d.ts +1 -1
- package/dist/src/steps/installAuth.d.ts.map +1 -1
- package/dist/src/steps/installAuth.js +5 -4
- package/dist/src/steps/installAuth.js.map +1 -1
- package/dist/src/steps/installDeps.d.ts +11 -4
- package/dist/src/steps/installDeps.d.ts.map +1 -1
- package/dist/src/steps/installDeps.js +45 -77
- package/dist/src/steps/installDeps.js.map +1 -1
- package/dist/src/steps/prompts.d.ts +1 -1
- package/dist/src/steps/prompts.d.ts.map +1 -1
- package/dist/src/steps/prompts.js +42 -30
- package/dist/src/steps/prompts.js.map +1 -1
- package/dist/src/utils/jwk.d.ts +2 -0
- package/dist/src/utils/jwk.d.ts.map +1 -0
- package/dist/src/utils/jwk.js +44 -0
- package/dist/src/utils/jwk.js.map +1 -0
- package/dist/src/utils/output.d.ts +1 -1
- package/dist/src/utils/output.d.ts.map +1 -1
- package/dist/src/utils/output.js +75 -68
- package/dist/src/utils/output.js.map +1 -1
- package/package.json +17 -9
- package/templates/AGENT_IDENTITY.md +112 -0
- package/templates/THREAT_MODEL.md +27 -5
- package/templates/express-auth/README.md +13 -10
- package/templates/express-auth/docker-compose.yml +10 -0
- package/templates/express-auth/gitignore.template +6 -0
- package/templates/express-auth/package.json +13 -6
- package/templates/express-auth/src/app.ts +2 -0
- package/templates/express-auth/src/controllers/auth.controller.ts +2 -6
- package/templates/express-auth/src/controllers/protected.controller.ts +25 -10
- package/templates/express-auth/src/middleware/auth.middleware.ts +1 -0
- package/templates/express-auth/src/routes/protected.routes.ts +3 -1
- package/templates/express-auth/src/server.ts +6 -12
- package/templates/express-auth/src/utils/security.ts +119 -32
- package/templates/express-auth+/README.md +13 -10
- package/templates/express-auth+/docker-compose.yml +10 -0
- package/templates/express-auth+/gitignore.template +6 -0
- package/templates/express-auth+/package.json +12 -5
- package/templates/express-auth+/src/auth/auth.ts +3 -2
- package/templates/express-auth+/src/auth/controllers/password.controller.ts +3 -7
- package/templates/express-auth+/src/auth/controllers/protected.controller.ts +26 -11
- package/templates/express-auth+/src/auth/identity.adapter.ts +90 -0
- package/templates/express-auth+/src/auth/middleware/auth.middleware.ts +3 -4
- package/templates/express-auth+/src/auth/routes/protected.routes.ts +2 -2
- package/templates/express-auth+/src/oauth-providers/github/src/auth/auth.ts +3 -2
- package/templates/express-auth+/src/oauth-providers/google/src/auth/auth.ts +3 -2
- package/templates/express-auth+/src/oauth-providers/google-github/src/auth/auth.ts +3 -2
- package/templates/express-auth+/src/server.ts +5 -10
- package/templates/express-auth+/src/utils/security.ts +109 -28
- package/templates/express-base/README.md +13 -6
- package/templates/express-base/app.ts +2 -0
- package/templates/express-base/controllers/base.controller.ts +33 -19
- package/templates/express-base/docker-compose.yml +10 -0
- package/templates/express-base/gitignore.template +6 -0
- package/templates/express-base/package.json +11 -5
- package/templates/express-base/routes/base.routes.ts +1 -1
- package/templates/express-base/src/.env.example +7 -2
- package/templates/express-base/src/server.ts +6 -12
- package/templates/express-base/tsconfig.json +7 -40
- package/templates/express-base/utils/security.ts +111 -15
- package/templates/fullstack/.env.example +24 -0
- package/templates/fullstack/PRESET_CONTRACT.md +46 -0
- package/templates/fullstack/README.md +65 -0
- package/templates/fullstack/THREAT_MODEL.md +30 -0
- package/templates/fullstack/apps/api/package.json +48 -0
- package/templates/fullstack/apps/api/prisma/schema.prisma +124 -0
- package/templates/fullstack/apps/api/prisma/seed.ts +36 -0
- package/templates/fullstack/apps/api/prisma.config.ts +18 -0
- package/templates/fullstack/apps/api/src/app.ts +68 -0
- package/templates/fullstack/apps/api/src/auth/auth.controller.ts +125 -0
- package/templates/fullstack/apps/api/src/auth/auth.routes.ts +50 -0
- package/templates/fullstack/apps/api/src/auth/auth.service.ts +257 -0
- package/templates/fullstack/apps/api/src/auth/authenik8.ts +67 -0
- package/templates/fullstack/apps/api/src/auth/cookies.ts +36 -0
- package/templates/fullstack/apps/api/src/config/env.ts +72 -0
- package/templates/fullstack/apps/api/src/config/logger.ts +17 -0
- package/templates/fullstack/apps/api/src/config/mailer.ts +32 -0
- package/templates/fullstack/apps/api/src/config/origins.ts +27 -0
- package/templates/fullstack/apps/api/src/config/prisma.ts +9 -0
- package/templates/fullstack/apps/api/src/middleware/authenticate.ts +35 -0
- package/templates/fullstack/apps/api/src/middleware/csrf.ts +60 -0
- package/templates/fullstack/apps/api/src/middleware/origin.ts +12 -0
- package/templates/fullstack/apps/api/src/middleware/request-id.ts +9 -0
- package/templates/fullstack/apps/api/src/modules/admin/admin.controller.ts +17 -0
- package/templates/fullstack/apps/api/src/modules/admin/admin.routes.ts +14 -0
- package/templates/fullstack/apps/api/src/modules/admin/admin.service.ts +54 -0
- package/templates/fullstack/apps/api/src/modules/projects/project.controller.ts +22 -0
- package/templates/fullstack/apps/api/src/modules/projects/project.policy.ts +14 -0
- package/templates/fullstack/apps/api/src/modules/projects/project.repository.ts +20 -0
- package/templates/fullstack/apps/api/src/modules/projects/project.routes.ts +21 -0
- package/templates/fullstack/apps/api/src/modules/projects/project.service.ts +41 -0
- package/templates/fullstack/apps/api/src/modules/users/user.controller.ts +26 -0
- package/templates/fullstack/apps/api/src/modules/users/user.presenter.ts +13 -0
- package/templates/fullstack/apps/api/src/modules/users/user.routes.ts +21 -0
- package/templates/fullstack/apps/api/src/modules/users/user.service.ts +71 -0
- package/templates/fullstack/apps/api/src/openapi.ts +32 -0
- package/templates/fullstack/apps/api/src/server.ts +29 -0
- package/templates/fullstack/apps/api/src/types.ts +15 -0
- package/templates/fullstack/apps/api/src/utils/crypto.ts +4 -0
- package/templates/fullstack/apps/api/src/utils/http.ts +33 -0
- package/templates/fullstack/apps/api/src/utils/sealed-value.ts +37 -0
- package/templates/fullstack/apps/api/tests/project.policy.test.ts +26 -0
- package/templates/fullstack/apps/api/tests/registration.test.ts +69 -0
- package/templates/fullstack/apps/api/tests/security.test.ts +98 -0
- package/templates/fullstack/apps/api/tests/validation.test.ts +37 -0
- package/templates/fullstack/apps/api/tsconfig.json +16 -0
- package/templates/fullstack/apps/api/vitest.config.ts +9 -0
- package/templates/fullstack/apps/web/index.html +14 -0
- package/templates/fullstack/apps/web/package.json +31 -0
- package/templates/fullstack/apps/web/public/authenik8-logo.svg +53 -0
- package/templates/fullstack/apps/web/src/App.tsx +45 -0
- package/templates/fullstack/apps/web/src/auth/AuthProvider.tsx +53 -0
- package/templates/fullstack/apps/web/src/auth/RouteGuards.tsx +16 -0
- package/templates/fullstack/apps/web/src/auth/providers.ts +3 -0
- package/templates/fullstack/apps/web/src/components/AppShell.tsx +80 -0
- package/templates/fullstack/apps/web/src/components/AuthShell.tsx +26 -0
- package/templates/fullstack/apps/web/src/components/Page.tsx +30 -0
- package/templates/fullstack/apps/web/src/features/projects/ProjectPages.tsx +79 -0
- package/templates/fullstack/apps/web/src/main.tsx +24 -0
- package/templates/fullstack/apps/web/src/pages/DashboardPage.tsx +48 -0
- package/templates/fullstack/apps/web/src/pages/StatusPages.tsx +8 -0
- package/templates/fullstack/apps/web/src/pages/admin/AuditPage.tsx +19 -0
- package/templates/fullstack/apps/web/src/pages/admin/UsersPage.tsx +24 -0
- package/templates/fullstack/apps/web/src/pages/auth/LoginPage.tsx +51 -0
- package/templates/fullstack/apps/web/src/pages/auth/OAuthCallbackPage.tsx +26 -0
- package/templates/fullstack/apps/web/src/pages/auth/RecoveryPages.tsx +53 -0
- package/templates/fullstack/apps/web/src/pages/auth/RegisterPage.tsx +86 -0
- package/templates/fullstack/apps/web/src/pages/auth/VerifyEmailPage.tsx +24 -0
- package/templates/fullstack/apps/web/src/pages/settings/ProfilePage.tsx +34 -0
- package/templates/fullstack/apps/web/src/pages/settings/SecurityPage.tsx +57 -0
- package/templates/fullstack/apps/web/src/styles.css +289 -0
- package/templates/fullstack/apps/web/src/token-storage.test.ts +12 -0
- package/templates/fullstack/apps/web/tsconfig.app.json +19 -0
- package/templates/fullstack/apps/web/tsconfig.json +7 -0
- package/templates/fullstack/apps/web/tsconfig.node.json +10 -0
- package/templates/fullstack/apps/web/vite.config.ts +18 -0
- package/templates/fullstack/docker-compose.yml +35 -0
- package/templates/fullstack/docs/PRODUCTION.md +30 -0
- package/templates/fullstack/gitignore.template +8 -0
- package/templates/fullstack/package.json +39 -0
- package/templates/fullstack/packages/api-client/package.json +20 -0
- package/templates/fullstack/packages/api-client/src/index.ts +203 -0
- package/templates/fullstack/packages/api-client/tsconfig.json +14 -0
- package/templates/fullstack/packages/contracts/package.json +20 -0
- package/templates/fullstack/packages/contracts/src/index.ts +146 -0
- package/templates/fullstack/packages/contracts/tsconfig.json +13 -0
- package/templates/fullstack/packages/ui/package.json +22 -0
- package/templates/fullstack/packages/ui/src/index.tsx +33 -0
- package/templates/fullstack/packages/ui/tsconfig.json +14 -0
- package/templates/prisma/postgresql/.env.example +6 -2
- package/templates/prisma/postgresql/client.ts +17 -0
- package/templates/prisma/postgresql/prisma.config.ts +12 -0
- package/templates/prisma/postgresql/schema.prisma +0 -1
- package/templates/prisma/sqlite/.env.example +6 -2
- package/templates/prisma/sqlite/client.ts +16 -0
- package/templates/prisma/sqlite/prisma.config.ts +12 -0
- package/templates/prisma/sqlite/schema.prisma +0 -1
- package/dist/src/tests/templated-routes.test.d.ts +0 -2
- package/dist/src/tests/templated-routes.test.d.ts.map +0 -1
- package/dist/src/tests/templated-routes.test.js +0 -325
- package/dist/src/tests/templated-routes.test.js.map +0 -1
- package/dist/templates/THREAT_MODEL.md +0 -138
- package/dist/templates/express-auth/src/controllers/protected.controller.d.ts +0 -8
- package/dist/templates/express-auth/src/controllers/protected.controller.d.ts.map +0 -1
- package/dist/templates/express-auth/src/controllers/protected.controller.js +0 -50
- package/dist/templates/express-auth/src/controllers/protected.controller.js.map +0 -1
- package/dist/templates/express-auth/src/routes/protected.routes.d.ts +0 -2
- package/dist/templates/express-auth/src/routes/protected.routes.d.ts.map +0 -1
- package/dist/templates/express-auth/src/routes/protected.routes.js +0 -16
- package/dist/templates/express-auth/src/routes/protected.routes.js.map +0 -1
- package/dist/templates/express-auth/src/utils/security.d.ts +0 -8
- package/dist/templates/express-auth/src/utils/security.d.ts.map +0 -1
- package/dist/templates/express-auth/src/utils/security.js +0 -55
- package/dist/templates/express-auth/src/utils/security.js.map +0 -1
- package/dist/templates/express-base/controllers/base.controller.d.ts +0 -12
- package/dist/templates/express-base/controllers/base.controller.d.ts.map +0 -1
- package/dist/templates/express-base/controllers/base.controller.js +0 -77
- package/dist/templates/express-base/controllers/base.controller.js.map +0 -1
- package/dist/templates/express-base/routes/base.routes.d.ts +0 -2
- package/dist/templates/express-base/routes/base.routes.d.ts.map +0 -1
- package/dist/templates/express-base/routes/base.routes.js +0 -20
- package/dist/templates/express-base/routes/base.routes.js.map +0 -1
- package/dist/templates/express-base/utils/security.d.ts +0 -5
- package/dist/templates/express-base/utils/security.d.ts.map +0 -1
- package/dist/templates/express-base/utils/security.js +0 -40
- package/dist/templates/express-base/utils/security.js.map +0 -1
- package/dist/templates/package.json +0 -27
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export const PRISMA_VERSION = "7.8.0";
|
|
1
2
|
export const stepOrder = [
|
|
2
3
|
"start",
|
|
3
4
|
"prompts",
|
|
@@ -6,20 +7,18 @@ export const stepOrder = [
|
|
|
6
7
|
"prisma-configured",
|
|
7
8
|
"production-configured",
|
|
8
9
|
"deps-installed",
|
|
9
|
-
"prisma-generated",
|
|
10
10
|
"git-initialized",
|
|
11
11
|
"done",
|
|
12
12
|
];
|
|
13
13
|
export const stepLabels = {
|
|
14
|
-
start: "
|
|
15
|
-
prompts: "
|
|
16
|
-
"project-created": "
|
|
17
|
-
"auth-installed": "
|
|
18
|
-
"prisma-configured": "
|
|
19
|
-
"deps-installed": "
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
done: "Completed",
|
|
14
|
+
start: "Start setup",
|
|
15
|
+
prompts: "Collect configuration",
|
|
16
|
+
"project-created": "Create project files",
|
|
17
|
+
"auth-installed": "Configure authentication",
|
|
18
|
+
"prisma-configured": "Configure database",
|
|
19
|
+
"deps-installed": "Install dependencies",
|
|
20
|
+
"production-configured": "Configure production runtime",
|
|
21
|
+
"git-initialized": "Initialize Git repository",
|
|
22
|
+
done: "Project ready",
|
|
24
23
|
};
|
|
25
24
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AAEtC,MAAM,CAAC,MAAM,SAAS,GAAe;IACnC,OAAO;IACP,SAAS;IACT,iBAAiB;IACjB,gBAAgB;IAChB,mBAAmB;IACnB,uBAAuB;IACvB,gBAAgB;IAChB,iBAAiB;IACjB,MAAM;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAA6B;IAClD,KAAK,EAAE,aAAa;IACpB,OAAO,EAAE,uBAAuB;IAChC,iBAAiB,EAAE,sBAAsB;IACzC,gBAAgB,EAAE,0BAA0B;IAC5C,mBAAmB,EAAE,oBAAoB;IACzC,gBAAgB,EAAE,sBAAsB;IACxC,uBAAuB,EAAE,8BAA8B;IACvD,iBAAiB,EAAE,2BAA2B;IAC9C,IAAI,EAAE,eAAe;CACtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../../../src/lib/preflight.ts"],"names":[],"mappings":"AASA,wBAAgB,uBAAuB,CAAC,OAAO,SAAwB,GAAG,OAAO,CAKhF;AAED,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,UAAU,UAAQ,EAClB,OAAO,SAAwB,GAC9B,IAAI,CAMN"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
function parseNodeVersion(version) {
|
|
2
|
+
const [major = 0, minor = 0, patch = 0] = version
|
|
3
|
+
.replace(/^v/, "")
|
|
4
|
+
.split(".")
|
|
5
|
+
.map((part) => Number.parseInt(part, 10) || 0);
|
|
6
|
+
return [major, minor, patch];
|
|
7
|
+
}
|
|
8
|
+
export function supportsFullstackPreset(version = process.versions.node) {
|
|
9
|
+
const [major, minor] = parseNodeVersion(version);
|
|
10
|
+
if (major === 20)
|
|
11
|
+
return minor >= 19;
|
|
12
|
+
if (major === 22)
|
|
13
|
+
return minor >= 12;
|
|
14
|
+
return major >= 24;
|
|
15
|
+
}
|
|
16
|
+
export function assertPresetRequirements(_authMode, _usePrisma = false, version = process.versions.node) {
|
|
17
|
+
if (supportsFullstackPreset(version))
|
|
18
|
+
return;
|
|
19
|
+
throw new Error(`Authenik8 requires Node.js 20.19+, 22.12+, or 24+. Current version: ${version}.`);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=preflight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../../src/lib/preflight.ts"],"names":[],"mappings":"AAAA,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,OAAO;SAC9C,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;SACjB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEjD,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,KAAK,IAAI,EAAE,CAAC;IACrC,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,KAAK,IAAI,EAAE,CAAC;IACrC,OAAO,KAAK,IAAI,EAAE,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,SAA6B,EAC7B,UAAU,GAAG,KAAK,EAClB,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI;IAE/B,IAAI,uBAAuB,CAAC,OAAO,CAAC;QAAE,OAAO;IAE7C,MAAM,IAAI,KAAK,CACb,uEAAuE,OAAO,GAAG,CAClF,CAAC;AACJ,CAAC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { RunOptions } from "./types.js";
|
|
2
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;
|
|
3
|
+
export declare function killAllProcesses(platform?: NodeJS.Platform): void;
|
|
4
|
+
export declare function getCommand(cmd: string, platform?: NodeJS.Platform): string;
|
|
5
|
+
export declare function commandExists(cmd: string, platform?: NodeJS.Platform): boolean;
|
|
6
|
+
export declare function dockerComposeAvailable(platform?: NodeJS.Platform): boolean;
|
|
7
|
+
export declare function dockerDaemonAvailable(platform?: NodeJS.Platform): boolean;
|
|
8
|
+
export declare function isCommandNotFoundError(error: unknown): boolean;
|
|
5
9
|
export declare function isInterruptedError(err: unknown): boolean;
|
|
6
10
|
export declare function exitForInterrupt(err: unknown): Promise<void>;
|
|
7
11
|
//# sourceMappingURL=process.d.ts.map
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../src/lib/process.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAY7C,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA6ClF;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,kBAAmB,QAc3D;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,kBAAmB,UAQlE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,kBAAmB,GAAG,OAAO,CAQ/E;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,kBAAmB,GAAG,OAAO,CAQ3E;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,kBAAmB,GAAG,OAAO,CAY1E;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE9D;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,WAQ9C;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,OAAO,iBAIlD"}
|
package/dist/src/lib/process.js
CHANGED
|
@@ -1,20 +1,43 @@
|
|
|
1
|
-
import { spawn } from "child_process";
|
|
1
|
+
import { spawn, spawnSync } from "child_process";
|
|
2
2
|
const activeProcesses = new Set();
|
|
3
|
+
const MAX_CAPTURED_OUTPUT = 16_000;
|
|
4
|
+
function appendOutput(current, chunk) {
|
|
5
|
+
const next = `${current}${String(chunk)}`;
|
|
6
|
+
return next.length > MAX_CAPTURED_OUTPUT
|
|
7
|
+
? next.slice(next.length - MAX_CAPTURED_OUTPUT)
|
|
8
|
+
: next;
|
|
9
|
+
}
|
|
3
10
|
export function run(cmd, args, options) {
|
|
4
11
|
return new Promise((resolve, reject) => {
|
|
5
12
|
const child = spawn(cmd, args, {
|
|
6
13
|
cwd: options.cwd,
|
|
7
14
|
stdio: options.stdio ?? "ignore",
|
|
8
|
-
|
|
15
|
+
env: options.env,
|
|
16
|
+
shell: process.platform === "win32",
|
|
17
|
+
windowsHide: true,
|
|
9
18
|
});
|
|
10
19
|
activeProcesses.add(child);
|
|
11
|
-
|
|
20
|
+
let output = "";
|
|
21
|
+
child.stdout?.on("data", (chunk) => {
|
|
22
|
+
output = appendOutput(output, chunk);
|
|
23
|
+
});
|
|
24
|
+
child.stderr?.on("data", (chunk) => {
|
|
25
|
+
output = appendOutput(output, chunk);
|
|
26
|
+
});
|
|
27
|
+
child.on("close", (code, signal) => {
|
|
12
28
|
activeProcesses.delete(child);
|
|
13
29
|
if (code === 0) {
|
|
14
30
|
resolve();
|
|
15
31
|
}
|
|
16
32
|
else {
|
|
17
|
-
|
|
33
|
+
const reason = signal
|
|
34
|
+
? `${cmd} was interrupted by ${signal}`
|
|
35
|
+
: `${cmd} exited with code ${code}`;
|
|
36
|
+
const detail = output.trim();
|
|
37
|
+
const error = new Error(detail ? `${reason}\n\n${detail}` : reason);
|
|
38
|
+
if (signal)
|
|
39
|
+
error.signal = signal;
|
|
40
|
+
reject(error);
|
|
18
41
|
}
|
|
19
42
|
});
|
|
20
43
|
child.on("error", (err) => {
|
|
@@ -23,17 +46,25 @@ export function run(cmd, args, options) {
|
|
|
23
46
|
});
|
|
24
47
|
});
|
|
25
48
|
}
|
|
26
|
-
export function killAllProcesses() {
|
|
49
|
+
export function killAllProcesses(platform = process.platform) {
|
|
27
50
|
for (const proc of activeProcesses) {
|
|
28
51
|
try {
|
|
29
|
-
|
|
52
|
+
if (platform === "win32" && proc.pid) {
|
|
53
|
+
spawnSync("taskkill.exe", ["/pid", String(proc.pid), "/T", "/F"], {
|
|
54
|
+
stdio: "ignore",
|
|
55
|
+
windowsHide: true,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
proc.kill("SIGTERM");
|
|
60
|
+
}
|
|
30
61
|
}
|
|
31
62
|
catch { }
|
|
32
63
|
}
|
|
33
64
|
activeProcesses.clear();
|
|
34
65
|
}
|
|
35
|
-
export function getCommand(cmd) {
|
|
36
|
-
const isWin =
|
|
66
|
+
export function getCommand(cmd, platform = process.platform) {
|
|
67
|
+
const isWin = platform === "win32";
|
|
37
68
|
if (cmd === "npm")
|
|
38
69
|
return isWin ? "npm.cmd" : "npm";
|
|
39
70
|
if (cmd === "npx")
|
|
@@ -46,6 +77,33 @@ export function getCommand(cmd) {
|
|
|
46
77
|
return isWin ? "git.exe" : "git";
|
|
47
78
|
return cmd;
|
|
48
79
|
}
|
|
80
|
+
export function commandExists(cmd, platform = process.platform) {
|
|
81
|
+
const result = spawnSync(getCommand(cmd, platform), ["--version"], {
|
|
82
|
+
stdio: "ignore",
|
|
83
|
+
shell: platform === "win32",
|
|
84
|
+
windowsHide: true,
|
|
85
|
+
});
|
|
86
|
+
return !result.error && result.status === 0;
|
|
87
|
+
}
|
|
88
|
+
export function dockerComposeAvailable(platform = process.platform) {
|
|
89
|
+
const result = spawnSync(getCommand("docker", platform), ["compose", "version"], {
|
|
90
|
+
stdio: "ignore",
|
|
91
|
+
shell: platform === "win32",
|
|
92
|
+
windowsHide: true,
|
|
93
|
+
});
|
|
94
|
+
return !result.error && result.status === 0;
|
|
95
|
+
}
|
|
96
|
+
export function dockerDaemonAvailable(platform = process.platform) {
|
|
97
|
+
const result = spawnSync(getCommand("docker", platform), ["info", "--format", "{{.ServerVersion}}"], {
|
|
98
|
+
stdio: "ignore",
|
|
99
|
+
shell: platform === "win32",
|
|
100
|
+
windowsHide: true,
|
|
101
|
+
});
|
|
102
|
+
return !result.error && result.status === 0;
|
|
103
|
+
}
|
|
104
|
+
export function isCommandNotFoundError(error) {
|
|
105
|
+
return error instanceof Error && "code" in error && error.code === "ENOENT";
|
|
106
|
+
}
|
|
49
107
|
export function isInterruptedError(err) {
|
|
50
108
|
return (typeof err === "object" &&
|
|
51
109
|
err !== null &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../../src/lib/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../../src/lib/process.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectName.d.ts","sourceRoot":"","sources":["../../../src/lib/projectName.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGxE"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { firstZodIssue, projectNameSchema } from "./schemas.js";
|
|
2
|
+
export function projectNameError(projectName) {
|
|
3
|
+
const result = projectNameSchema.safeParse(projectName);
|
|
4
|
+
return result.success ? undefined : firstZodIssue(result.error);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=projectName.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectName.js","sourceRoot":"","sources":["../../../src/lib/projectName.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEhE,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const packageManagerSchema: z.ZodEnum<{
|
|
3
|
+
npm: "npm";
|
|
4
|
+
pnpm: "pnpm";
|
|
5
|
+
bun: "bun";
|
|
6
|
+
}>;
|
|
7
|
+
export declare const projectNameSchema: z.ZodString;
|
|
8
|
+
export declare const stepNameSchema: z.ZodEnum<{
|
|
9
|
+
start: "start";
|
|
10
|
+
prompts: "prompts";
|
|
11
|
+
"project-created": "project-created";
|
|
12
|
+
"auth-installed": "auth-installed";
|
|
13
|
+
"prisma-configured": "prisma-configured";
|
|
14
|
+
"production-configured": "production-configured";
|
|
15
|
+
"deps-installed": "deps-installed";
|
|
16
|
+
"git-initialized": "git-initialized";
|
|
17
|
+
done: "done";
|
|
18
|
+
}>;
|
|
19
|
+
export declare const authModeSchema: z.ZodEnum<{
|
|
20
|
+
base: "base";
|
|
21
|
+
auth: "auth";
|
|
22
|
+
"auth-oauth": "auth-oauth";
|
|
23
|
+
fullstack: "fullstack";
|
|
24
|
+
}>;
|
|
25
|
+
export declare const databaseSchema: z.ZodEnum<{
|
|
26
|
+
sqlite: "sqlite";
|
|
27
|
+
postgresql: "postgresql";
|
|
28
|
+
}>;
|
|
29
|
+
export declare const runtimeSchema: z.ZodEnum<{
|
|
30
|
+
bun: "bun";
|
|
31
|
+
node: "node";
|
|
32
|
+
}>;
|
|
33
|
+
export declare const oauthProviderSchema: z.ZodEnum<{
|
|
34
|
+
google: "google";
|
|
35
|
+
github: "github";
|
|
36
|
+
}>;
|
|
37
|
+
export declare const authMethodSchema: z.ZodEnum<{
|
|
38
|
+
google: "google";
|
|
39
|
+
github: "github";
|
|
40
|
+
password: "password";
|
|
41
|
+
}>;
|
|
42
|
+
export declare const authMethodSelectionSchema: z.ZodPreprocess<z.ZodArray<z.ZodEnum<{
|
|
43
|
+
google: "google";
|
|
44
|
+
github: "github";
|
|
45
|
+
password: "password";
|
|
46
|
+
}>>>;
|
|
47
|
+
export declare const oauthProviderSelectionSchema: z.ZodPreprocess<z.ZodArray<z.ZodEnum<{
|
|
48
|
+
google: "google";
|
|
49
|
+
github: "github";
|
|
50
|
+
}>>>;
|
|
51
|
+
export declare const promptAnswersSchema: z.ZodPipe<z.ZodObject<{
|
|
52
|
+
framework: z.ZodLiteral<"Express">;
|
|
53
|
+
authMode: z.ZodEnum<{
|
|
54
|
+
base: "base";
|
|
55
|
+
auth: "auth";
|
|
56
|
+
"auth-oauth": "auth-oauth";
|
|
57
|
+
fullstack: "fullstack";
|
|
58
|
+
}>;
|
|
59
|
+
authMethods: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
60
|
+
google: "google";
|
|
61
|
+
github: "github";
|
|
62
|
+
password: "password";
|
|
63
|
+
}>>>;
|
|
64
|
+
oauthProviders: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
65
|
+
google: "google";
|
|
66
|
+
github: "github";
|
|
67
|
+
}>>>;
|
|
68
|
+
usePrisma: z.ZodOptional<z.ZodBoolean>;
|
|
69
|
+
database: z.ZodOptional<z.ZodEnum<{
|
|
70
|
+
sqlite: "sqlite";
|
|
71
|
+
postgresql: "postgresql";
|
|
72
|
+
}>>;
|
|
73
|
+
useGit: z.ZodBoolean;
|
|
74
|
+
runtime: z.ZodOptional<z.ZodEnum<{
|
|
75
|
+
bun: "bun";
|
|
76
|
+
node: "node";
|
|
77
|
+
}>>;
|
|
78
|
+
}, z.core.$strict>, z.ZodTransform<{
|
|
79
|
+
framework: "Express";
|
|
80
|
+
authMode: "base" | "auth" | "auth-oauth" | "fullstack";
|
|
81
|
+
useGit: boolean;
|
|
82
|
+
authMethods?: ("google" | "github" | "password")[] | undefined;
|
|
83
|
+
oauthProviders?: ("google" | "github")[] | undefined;
|
|
84
|
+
usePrisma?: boolean | undefined;
|
|
85
|
+
database?: "sqlite" | "postgresql" | undefined;
|
|
86
|
+
runtime?: "bun" | "node" | undefined;
|
|
87
|
+
}, {
|
|
88
|
+
framework: "Express";
|
|
89
|
+
authMode: "base" | "auth" | "auth-oauth" | "fullstack";
|
|
90
|
+
useGit: boolean;
|
|
91
|
+
authMethods?: ("google" | "github" | "password")[] | undefined;
|
|
92
|
+
oauthProviders?: ("google" | "github")[] | undefined;
|
|
93
|
+
usePrisma?: boolean | undefined;
|
|
94
|
+
database?: "sqlite" | "postgresql" | undefined;
|
|
95
|
+
runtime?: "bun" | "node" | undefined;
|
|
96
|
+
}>>;
|
|
97
|
+
export declare const cliStateSchema: z.ZodObject<{
|
|
98
|
+
step: z.ZodEnum<{
|
|
99
|
+
start: "start";
|
|
100
|
+
prompts: "prompts";
|
|
101
|
+
"project-created": "project-created";
|
|
102
|
+
"auth-installed": "auth-installed";
|
|
103
|
+
"prisma-configured": "prisma-configured";
|
|
104
|
+
"production-configured": "production-configured";
|
|
105
|
+
"deps-installed": "deps-installed";
|
|
106
|
+
"git-initialized": "git-initialized";
|
|
107
|
+
done: "done";
|
|
108
|
+
}>;
|
|
109
|
+
runtime: z.ZodOptional<z.ZodEnum<{
|
|
110
|
+
bun: "bun";
|
|
111
|
+
node: "node";
|
|
112
|
+
}>>;
|
|
113
|
+
projectName: z.ZodString;
|
|
114
|
+
framework: z.ZodOptional<z.ZodString>;
|
|
115
|
+
usePrisma: z.ZodOptional<z.ZodBoolean>;
|
|
116
|
+
database: z.ZodOptional<z.ZodEnum<{
|
|
117
|
+
sqlite: "sqlite";
|
|
118
|
+
postgresql: "postgresql";
|
|
119
|
+
}>>;
|
|
120
|
+
useGit: z.ZodOptional<z.ZodBoolean>;
|
|
121
|
+
authMode: z.ZodOptional<z.ZodEnum<{
|
|
122
|
+
base: "base";
|
|
123
|
+
auth: "auth";
|
|
124
|
+
"auth-oauth": "auth-oauth";
|
|
125
|
+
fullstack: "fullstack";
|
|
126
|
+
}>>;
|
|
127
|
+
hashLib: z.ZodOptional<z.ZodLiteral<"bcryptjs">>;
|
|
128
|
+
installDeps: z.ZodOptional<z.ZodBoolean>;
|
|
129
|
+
packageManager: z.ZodOptional<z.ZodEnum<{
|
|
130
|
+
npm: "npm";
|
|
131
|
+
pnpm: "pnpm";
|
|
132
|
+
bun: "bun";
|
|
133
|
+
}>>;
|
|
134
|
+
oauthProviders: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
135
|
+
google: "google";
|
|
136
|
+
github: "github";
|
|
137
|
+
}>>>;
|
|
138
|
+
authMethods: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
139
|
+
google: "google";
|
|
140
|
+
github: "github";
|
|
141
|
+
password: "password";
|
|
142
|
+
}>>>;
|
|
143
|
+
}, z.core.$strict>;
|
|
144
|
+
export declare const configuredCliStateSchema: z.ZodObject<{
|
|
145
|
+
step: z.ZodEnum<{
|
|
146
|
+
start: "start";
|
|
147
|
+
prompts: "prompts";
|
|
148
|
+
"project-created": "project-created";
|
|
149
|
+
"auth-installed": "auth-installed";
|
|
150
|
+
"prisma-configured": "prisma-configured";
|
|
151
|
+
"production-configured": "production-configured";
|
|
152
|
+
"deps-installed": "deps-installed";
|
|
153
|
+
"git-initialized": "git-initialized";
|
|
154
|
+
done: "done";
|
|
155
|
+
}>;
|
|
156
|
+
runtime: z.ZodOptional<z.ZodEnum<{
|
|
157
|
+
bun: "bun";
|
|
158
|
+
node: "node";
|
|
159
|
+
}>>;
|
|
160
|
+
projectName: z.ZodString;
|
|
161
|
+
database: z.ZodOptional<z.ZodEnum<{
|
|
162
|
+
sqlite: "sqlite";
|
|
163
|
+
postgresql: "postgresql";
|
|
164
|
+
}>>;
|
|
165
|
+
hashLib: z.ZodOptional<z.ZodLiteral<"bcryptjs">>;
|
|
166
|
+
installDeps: z.ZodOptional<z.ZodBoolean>;
|
|
167
|
+
oauthProviders: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
168
|
+
google: "google";
|
|
169
|
+
github: "github";
|
|
170
|
+
}>>>;
|
|
171
|
+
authMethods: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
172
|
+
google: "google";
|
|
173
|
+
github: "github";
|
|
174
|
+
password: "password";
|
|
175
|
+
}>>>;
|
|
176
|
+
framework: z.ZodString;
|
|
177
|
+
authMode: z.ZodEnum<{
|
|
178
|
+
base: "base";
|
|
179
|
+
auth: "auth";
|
|
180
|
+
"auth-oauth": "auth-oauth";
|
|
181
|
+
fullstack: "fullstack";
|
|
182
|
+
}>;
|
|
183
|
+
usePrisma: z.ZodBoolean;
|
|
184
|
+
useGit: z.ZodBoolean;
|
|
185
|
+
packageManager: z.ZodEnum<{
|
|
186
|
+
npm: "npm";
|
|
187
|
+
pnpm: "pnpm";
|
|
188
|
+
bun: "bun";
|
|
189
|
+
}>;
|
|
190
|
+
}, z.core.$strict>;
|
|
191
|
+
export declare function firstZodIssue(error: z.ZodError): string;
|
|
192
|
+
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/lib/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,oBAAoB;;;;EAI/B,CAAC;AAEH,eAAO,MAAM,iBAAiB,aAS3B,CAAC;AAEJ,eAAO,MAAM,cAAc;;;;;;;;;;EAUzB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;EAAsD,CAAC;AAClF,eAAO,MAAM,cAAc;;;EAAmC,CAAC;AAC/D,eAAO,MAAM,aAAa;;;EAA0B,CAAC;AACrD,eAAO,MAAM,mBAAmB;;;EAA+B,CAAC;AAChE,eAAO,MAAM,gBAAgB;;;;EAA2C,CAAC;AAYzE,eAAO,MAAM,yBAAyB;;;;IAKrC,CAAC;AAEF,eAAO,MAAM,4BAA4B;;;IAGxC,CAAC;AAoEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAA2B,CAAC;AAE5D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAczB,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAiDnC,CAAC;AAEH,wBAAgB,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,GAAG,MAAM,CAKvD"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const MAX_PACKAGE_NAME_LENGTH = 214;
|
|
3
|
+
const PROJECT_NAME_PATTERN = /^[a-z0-9][a-z0-9._-]*$/;
|
|
4
|
+
export const packageManagerSchema = z.enum(["npm", "pnpm", "bun"], {
|
|
5
|
+
error: (issue) => issue.input === undefined
|
|
6
|
+
? "--package-manager requires npm, pnpm, or bun."
|
|
7
|
+
: `Unsupported package manager "${String(issue.input)}". Use npm, pnpm, or bun.`,
|
|
8
|
+
});
|
|
9
|
+
export const projectNameSchema = z
|
|
10
|
+
.string()
|
|
11
|
+
.max(MAX_PACKAGE_NAME_LENGTH, `Project names must be ${MAX_PACKAGE_NAME_LENGTH} characters or fewer.`)
|
|
12
|
+
.regex(PROJECT_NAME_PATTERN, "Use a lowercase name containing only letters, numbers, dots, hyphens, or underscores.");
|
|
13
|
+
export const stepNameSchema = z.enum([
|
|
14
|
+
"start",
|
|
15
|
+
"prompts",
|
|
16
|
+
"project-created",
|
|
17
|
+
"auth-installed",
|
|
18
|
+
"prisma-configured",
|
|
19
|
+
"production-configured",
|
|
20
|
+
"deps-installed",
|
|
21
|
+
"git-initialized",
|
|
22
|
+
"done",
|
|
23
|
+
]);
|
|
24
|
+
export const authModeSchema = z.enum(["base", "auth", "auth-oauth", "fullstack"]);
|
|
25
|
+
export const databaseSchema = z.enum(["sqlite", "postgresql"]);
|
|
26
|
+
export const runtimeSchema = z.enum(["node", "bun"]);
|
|
27
|
+
export const oauthProviderSchema = z.enum(["google", "github"]);
|
|
28
|
+
export const authMethodSchema = z.enum(["password", "google", "github"]);
|
|
29
|
+
function normalizeCheckboxChoices(value) {
|
|
30
|
+
if (!Array.isArray(value))
|
|
31
|
+
return value;
|
|
32
|
+
return value.map((choice) => {
|
|
33
|
+
if (typeof choice === "object" && choice !== null && "value" in choice) {
|
|
34
|
+
return choice.value;
|
|
35
|
+
}
|
|
36
|
+
return choice;
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
export const authMethodSelectionSchema = z.preprocess(normalizeCheckboxChoices, z.array(authMethodSchema).refine((methods) => methods.includes("password"), {
|
|
40
|
+
error: "Email and password is required by the first full-stack preset",
|
|
41
|
+
}));
|
|
42
|
+
export const oauthProviderSelectionSchema = z.preprocess(normalizeCheckboxChoices, z.array(oauthProviderSchema).min(1, "Select at least one OAuth provider"));
|
|
43
|
+
const promptAnswersInputSchema = z.strictObject({
|
|
44
|
+
framework: z.literal("Express"),
|
|
45
|
+
authMode: authModeSchema,
|
|
46
|
+
authMethods: z.array(authMethodSchema).optional(),
|
|
47
|
+
oauthProviders: z.array(oauthProviderSchema).optional(),
|
|
48
|
+
usePrisma: z.boolean().optional(),
|
|
49
|
+
database: databaseSchema.optional(),
|
|
50
|
+
useGit: z.boolean(),
|
|
51
|
+
runtime: runtimeSchema.optional(),
|
|
52
|
+
}).superRefine((answers, context) => {
|
|
53
|
+
if (answers.authMode === "fullstack") {
|
|
54
|
+
const result = authMethodSelectionSchema.safeParse(answers.authMethods);
|
|
55
|
+
if (!result.success) {
|
|
56
|
+
context.addIssue({
|
|
57
|
+
code: "custom",
|
|
58
|
+
path: ["authMethods"],
|
|
59
|
+
message: firstZodIssue(result.error),
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (answers.authMode === "auth-oauth") {
|
|
64
|
+
const result = oauthProviderSelectionSchema.safeParse(answers.oauthProviders);
|
|
65
|
+
if (!result.success) {
|
|
66
|
+
context.addIssue({
|
|
67
|
+
code: "custom",
|
|
68
|
+
path: ["oauthProviders"],
|
|
69
|
+
message: firstZodIssue(result.error),
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (answers.authMode === "base" && answers.usePrisma === undefined) {
|
|
74
|
+
context.addIssue({
|
|
75
|
+
code: "custom",
|
|
76
|
+
path: ["usePrisma"],
|
|
77
|
+
message: "Choose whether to add Prisma",
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
const requiresDatabase = answers.authMode === "auth"
|
|
81
|
+
|| answers.authMode === "auth-oauth"
|
|
82
|
+
|| (answers.authMode === "base" && answers.usePrisma);
|
|
83
|
+
if (requiresDatabase && !answers.database) {
|
|
84
|
+
context.addIssue({
|
|
85
|
+
code: "custom",
|
|
86
|
+
path: ["database"],
|
|
87
|
+
message: "Select a database",
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}).transform((answers) => {
|
|
91
|
+
if (answers.authMode !== "fullstack")
|
|
92
|
+
return answers;
|
|
93
|
+
const authMethods = authMethodSelectionSchema.parse(answers.authMethods);
|
|
94
|
+
return {
|
|
95
|
+
...answers,
|
|
96
|
+
authMethods,
|
|
97
|
+
usePrisma: true,
|
|
98
|
+
database: "postgresql",
|
|
99
|
+
runtime: "node",
|
|
100
|
+
oauthProviders: authMethods.filter((method) => method !== "password"),
|
|
101
|
+
};
|
|
102
|
+
});
|
|
103
|
+
export const promptAnswersSchema = promptAnswersInputSchema;
|
|
104
|
+
export const cliStateSchema = z.strictObject({
|
|
105
|
+
step: stepNameSchema,
|
|
106
|
+
runtime: runtimeSchema.optional(),
|
|
107
|
+
projectName: projectNameSchema,
|
|
108
|
+
framework: z.string().min(1).max(100).optional(),
|
|
109
|
+
usePrisma: z.boolean().optional(),
|
|
110
|
+
database: databaseSchema.optional(),
|
|
111
|
+
useGit: z.boolean().optional(),
|
|
112
|
+
authMode: authModeSchema.optional(),
|
|
113
|
+
hashLib: z.literal("bcryptjs").optional(),
|
|
114
|
+
installDeps: z.boolean().optional(),
|
|
115
|
+
packageManager: packageManagerSchema.optional(),
|
|
116
|
+
oauthProviders: z.array(oauthProviderSchema).max(2).optional(),
|
|
117
|
+
authMethods: z.array(authMethodSchema).max(3).optional(),
|
|
118
|
+
});
|
|
119
|
+
export const configuredCliStateSchema = cliStateSchema.extend({
|
|
120
|
+
framework: z.string({ error: "Missing required input: framework" }).min(1, "Missing required input: framework"),
|
|
121
|
+
authMode: authModeSchema,
|
|
122
|
+
usePrisma: z.boolean(),
|
|
123
|
+
useGit: z.boolean(),
|
|
124
|
+
packageManager: packageManagerSchema,
|
|
125
|
+
}).superRefine((state, context) => {
|
|
126
|
+
if (state.usePrisma && !state.database) {
|
|
127
|
+
context.addIssue({
|
|
128
|
+
code: "custom",
|
|
129
|
+
path: ["database"],
|
|
130
|
+
message: "Missing required input: database",
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
if (state.authMode === "fullstack") {
|
|
134
|
+
if (state.database !== "postgresql") {
|
|
135
|
+
context.addIssue({
|
|
136
|
+
code: "custom",
|
|
137
|
+
path: ["database"],
|
|
138
|
+
message: "The full-stack preset requires PostgreSQL",
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
if (state.runtime !== "node") {
|
|
142
|
+
context.addIssue({
|
|
143
|
+
code: "custom",
|
|
144
|
+
path: ["runtime"],
|
|
145
|
+
message: "The full-stack preset requires the Node.js runtime",
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
if (!state.authMethods?.includes("password")) {
|
|
149
|
+
context.addIssue({
|
|
150
|
+
code: "custom",
|
|
151
|
+
path: ["authMethods"],
|
|
152
|
+
message: "Email and password is required by the first full-stack preset",
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
if (state.authMode === "auth-oauth" && !state.oauthProviders?.length) {
|
|
157
|
+
context.addIssue({
|
|
158
|
+
code: "custom",
|
|
159
|
+
path: ["oauthProviders"],
|
|
160
|
+
message: "Select at least one OAuth provider",
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
export function firstZodIssue(error) {
|
|
165
|
+
const issue = error.issues[0];
|
|
166
|
+
if (!issue)
|
|
167
|
+
return "Input validation failed";
|
|
168
|
+
const location = issue.path.length > 0 ? `${issue.path.join(".")}: ` : "";
|
|
169
|
+
return `${location}${issue.message}`;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/lib/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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;
|
|
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;AAOrD,wBAAgB,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,QAO7D;AAED,wBAAgB,QAAQ,IAAI,QAAQ,CAEnC;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,QAQlD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAOvD;AAED,wBAAgB,UAAU,SASzB;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,WAEzE"}
|