@digilogiclabs/create-saas-app 1.5.1 → 1.5.2
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/.tsbuildinfo +1 -1
- package/dist/cli/commands/add.d.ts +6 -0
- package/dist/cli/commands/add.d.ts.map +1 -0
- package/dist/cli/commands/add.js +39 -0
- package/dist/cli/commands/add.js.map +1 -0
- package/dist/cli/commands/create.d.ts +28 -0
- package/dist/cli/commands/create.d.ts.map +1 -0
- package/dist/cli/commands/create.js +130 -0
- package/dist/cli/commands/create.js.map +1 -0
- package/dist/cli/commands/index.d.ts +4 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +20 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/update.d.ts +6 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/commands/update.js +68 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/{index.d.ts → cli/index.d.ts} +2 -3
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +59 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/prompts/index.d.ts +2 -0
- package/dist/cli/prompts/index.d.ts.map +1 -0
- package/dist/cli/prompts/index.js +18 -0
- package/dist/cli/prompts/index.js.map +1 -0
- package/dist/cli/prompts/project-setup.d.ts +5 -0
- package/dist/cli/prompts/project-setup.d.ts.map +1 -0
- package/dist/cli/prompts/project-setup.js +251 -0
- package/dist/cli/prompts/project-setup.js.map +1 -0
- package/dist/cli/utils/git.d.ts +9 -0
- package/dist/cli/utils/git.d.ts.map +1 -0
- package/dist/cli/utils/git.js +77 -0
- package/dist/cli/utils/git.js.map +1 -0
- package/dist/cli/utils/index.d.ts +5 -0
- package/dist/cli/utils/index.d.ts.map +1 -0
- package/dist/cli/utils/index.js +21 -0
- package/dist/cli/utils/index.js.map +1 -0
- package/dist/cli/utils/logger.d.ts +16 -0
- package/dist/cli/utils/logger.d.ts.map +1 -0
- package/dist/cli/utils/logger.js +55 -0
- package/dist/cli/utils/logger.js.map +1 -0
- package/dist/cli/utils/package-manager.d.ts +8 -0
- package/dist/cli/utils/package-manager.d.ts.map +1 -0
- package/dist/cli/utils/package-manager.js +92 -0
- package/dist/cli/utils/package-manager.js.map +1 -0
- package/dist/cli/utils/spinner.d.ts +7 -0
- package/dist/cli/utils/spinner.d.ts.map +1 -0
- package/dist/cli/utils/spinner.js +48 -0
- package/dist/cli/utils/spinner.js.map +1 -0
- package/dist/cli/validators/dependencies.d.ts +15 -0
- package/dist/cli/validators/dependencies.d.ts.map +1 -0
- package/dist/cli/validators/dependencies.js +108 -0
- package/dist/cli/validators/dependencies.js.map +1 -0
- package/dist/cli/validators/index.d.ts +3 -0
- package/dist/cli/validators/index.d.ts.map +1 -0
- package/dist/cli/validators/index.js +19 -0
- package/dist/cli/validators/index.js.map +1 -0
- package/dist/cli/validators/project-name.d.ts +5 -0
- package/dist/cli/validators/project-name.d.ts.map +1 -0
- package/dist/cli/validators/project-name.js +151 -0
- package/dist/cli/validators/project-name.js.map +1 -0
- package/dist/generators/file-processor.d.ts +28 -0
- package/dist/generators/file-processor.d.ts.map +1 -0
- package/dist/generators/file-processor.js +203 -0
- package/dist/generators/file-processor.js.map +1 -0
- package/dist/generators/index.d.ts +4 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +20 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/generators/package-installer.d.ts +29 -0
- package/dist/generators/package-installer.d.ts.map +1 -0
- package/dist/generators/package-installer.js +167 -0
- package/dist/generators/package-installer.js.map +1 -0
- package/dist/generators/template-generator.d.ts +48 -0
- package/dist/generators/template-generator.d.ts.map +1 -0
- package/dist/generators/template-generator.js +276 -0
- package/dist/generators/template-generator.js.map +1 -0
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/templates/web/ui-auth-payments/template/package-lock.json +12240 -0
- package/src/templates/web/ui-auth-payments/template/src/components/client/login-form.tsx +1 -1
- package/src/templates/web/ui-auth-payments/template/src/components/client/signup-form.tsx +3 -3
- package/src/templates/web/ui-auth-payments/template/tsconfig.tsbuildinfo +1 -0
- package/src/templates/web/ui-auth-payments-audio/template/package-lock.json +12241 -0
- package/src/templates/web/ui-auth-payments-audio/template/src/app/login/page.tsx +2 -105
- package/src/templates/web/ui-auth-payments-audio/template/src/app/signup/page.tsx +2 -124
- package/{dist/templates/web/ui-auth-payments → src/templates/web/ui-auth-payments-audio}/template/src/components/client/login-form.tsx +1 -1
- package/{dist/templates/web/ui-auth-payments → src/templates/web/ui-auth-payments-audio}/template/src/components/client/signup-form.tsx +3 -3
- package/src/templates/web/ui-auth-payments-audio/template/src/lib/actions/index.ts +14 -0
- package/src/templates/web/ui-auth-payments-audio/template/tsconfig.tsbuildinfo +1 -0
- package/dist/templates/mobile/base/template/.env.example +0 -15
- package/dist/templates/mobile/base/template/App.tsx +0 -88
- package/dist/templates/mobile/base/template/app/(auth)/login.tsx +0 -44
- package/dist/templates/mobile/base/template/app/(auth)/signup.tsx +0 -43
- package/dist/templates/mobile/base/template/app/checkout.tsx +0 -20
- package/dist/templates/mobile/base/template/package.json +0 -38
- package/dist/templates/shared/auth/firebase/web/config.ts +0 -23
- package/dist/templates/shared/auth/supabase/web/config.ts +0 -8
- package/dist/templates/web/base/template/.env.example +0 -15
- package/dist/templates/web/base/template/.eslintrc.js +0 -8
- package/dist/templates/web/base/template/README.md +0 -68
- package/dist/templates/web/base/template/next.config.js +0 -15
- package/dist/templates/web/base/template/package.json +0 -58
- package/dist/templates/web/base/template/postcss.config.js +0 -7
- package/dist/templates/web/base/template/src/app/auth/callback/route.ts +0 -18
- package/dist/templates/web/base/template/src/app/checkout/page.tsx +0 -28
- package/dist/templates/web/base/template/src/app/error.tsx +0 -97
- package/dist/templates/web/base/template/src/app/globals.css +0 -60
- package/dist/templates/web/base/template/src/app/layout.tsx +0 -35
- package/dist/templates/web/base/template/src/app/loading.tsx +0 -34
- package/dist/templates/web/base/template/src/app/login/page.tsx +0 -39
- package/dist/templates/web/base/template/src/app/page.tsx +0 -132
- package/dist/templates/web/base/template/src/app/signup/page.tsx +0 -39
- package/dist/templates/web/base/template/src/components/__tests__/example.test.tsx +0 -49
- package/dist/templates/web/base/template/src/components/providers/app-providers.tsx +0 -33
- package/dist/templates/web/base/template/src/components/providers/theme-provider.tsx +0 -94
- package/dist/templates/web/base/template/src/components/shared/footer.tsx +0 -36
- package/dist/templates/web/base/template/src/components/shared/header.tsx +0 -44
- package/dist/templates/web/base/template/src/components/ui/badge.tsx +0 -36
- package/dist/templates/web/base/template/src/components/ui/button.tsx +0 -56
- package/dist/templates/web/base/template/src/components/ui/card.tsx +0 -71
- package/dist/templates/web/base/template/src/components/ui/theme-toggle.tsx +0 -34
- package/dist/templates/web/base/template/src/lib/env.ts +0 -46
- package/dist/templates/web/base/template/src/lib/utils.ts +0 -140
- package/dist/templates/web/base/template/src/test/setup.ts +0 -79
- package/dist/templates/web/base/template/tailwind.config.js +0 -77
- package/dist/templates/web/base/template/tsconfig.json +0 -33
- package/dist/templates/web/base/template/vitest.config.ts +0 -17
- package/dist/templates/web/base/template.backup/.env.example +0 -15
- package/dist/templates/web/base/template.backup.20250817/.env.example +0 -15
- package/dist/templates/web/ui-auth/template/.env.example +0 -15
- package/dist/templates/web/ui-auth/template/.eslintrc.js +0 -8
- package/dist/templates/web/ui-auth/template/README.md +0 -68
- package/dist/templates/web/ui-auth/template/next.config.js +0 -12
- package/dist/templates/web/ui-auth/template/package.json +0 -50
- package/dist/templates/web/ui-auth/template/postcss.config.js +0 -7
- package/dist/templates/web/ui-auth/template/src/app/auth/callback/route.ts +0 -12
- package/dist/templates/web/ui-auth/template/src/app/checkout/page.tsx +0 -25
- package/dist/templates/web/ui-auth/template/src/app/error.tsx +0 -67
- package/dist/templates/web/ui-auth/template/src/app/globals.css +0 -42
- package/dist/templates/web/ui-auth/template/src/app/layout.tsx +0 -33
- package/dist/templates/web/ui-auth/template/src/app/loading.tsx +0 -20
- package/dist/templates/web/ui-auth/template/src/app/login/page.tsx +0 -109
- package/dist/templates/web/ui-auth/template/src/app/page.tsx +0 -129
- package/dist/templates/web/ui-auth/template/src/app/signup/page.tsx +0 -128
- package/dist/templates/web/ui-auth/template/src/components/__tests__/example.test.tsx +0 -49
- package/dist/templates/web/ui-auth/template/src/components/providers/app-providers.tsx +0 -29
- package/dist/templates/web/ui-auth/template/src/components/providers/theme-provider.tsx +0 -94
- package/dist/templates/web/ui-auth/template/src/components/shared/footer.tsx +0 -36
- package/dist/templates/web/ui-auth/template/src/components/shared/header.tsx +0 -53
- package/dist/templates/web/ui-auth/template/src/components/ui/badge.tsx +0 -36
- package/dist/templates/web/ui-auth/template/src/components/ui/theme-toggle.tsx +0 -34
- package/dist/templates/web/ui-auth/template/src/lib/env.ts +0 -49
- package/dist/templates/web/ui-auth/template/src/lib/utils.ts +0 -140
- package/dist/templates/web/ui-auth/template/src/test/setup.ts +0 -79
- package/dist/templates/web/ui-auth/template/tailwind.config.js +0 -77
- package/dist/templates/web/ui-auth/template/tsconfig.json +0 -33
- package/dist/templates/web/ui-auth/template/vitest.config.ts +0 -17
- package/dist/templates/web/ui-auth/template.backup/.env.example +0 -15
- package/dist/templates/web/ui-auth/template.backup.20250817/.env.example +0 -15
- package/dist/templates/web/ui-auth-payments/template/.env.example +0 -15
- package/dist/templates/web/ui-auth-payments/template/README.md +0 -165
- package/dist/templates/web/ui-auth-payments/template/next.config.js +0 -12
- package/dist/templates/web/ui-auth-payments/template/package.json +0 -52
- package/dist/templates/web/ui-auth-payments/template/postcss.config.js +0 -7
- package/dist/templates/web/ui-auth-payments/template/src/app/auth/callback/route.ts +0 -12
- package/dist/templates/web/ui-auth-payments/template/src/app/billing/page.tsx +0 -211
- package/dist/templates/web/ui-auth-payments/template/src/app/checkout/page.tsx +0 -142
- package/dist/templates/web/ui-auth-payments/template/src/app/error.tsx +0 -67
- package/dist/templates/web/ui-auth-payments/template/src/app/globals.css +0 -42
- package/dist/templates/web/ui-auth-payments/template/src/app/layout.tsx +0 -33
- package/dist/templates/web/ui-auth-payments/template/src/app/loading.tsx +0 -20
- package/dist/templates/web/ui-auth-payments/template/src/app/login/loading.tsx +0 -38
- package/dist/templates/web/ui-auth-payments/template/src/app/login/page.tsx +0 -109
- package/dist/templates/web/ui-auth-payments/template/src/app/page.tsx +0 -143
- package/dist/templates/web/ui-auth-payments/template/src/app/signup/loading.tsx +0 -50
- package/dist/templates/web/ui-auth-payments/template/src/app/signup/page.tsx +0 -128
- package/dist/templates/web/ui-auth-payments/template/src/components/__tests__/example.test.tsx +0 -49
- package/dist/templates/web/ui-auth-payments/template/src/components/client/newsletter-signup.tsx +0 -68
- package/dist/templates/web/ui-auth-payments/template/src/components/providers/app-providers.tsx +0 -32
- package/dist/templates/web/ui-auth-payments/template/src/components/providers/theme-provider.tsx +0 -94
- package/dist/templates/web/ui-auth-payments/template/src/components/shared/footer.tsx +0 -36
- package/dist/templates/web/ui-auth-payments/template/src/components/shared/header.tsx +0 -62
- package/dist/templates/web/ui-auth-payments/template/src/components/ui/badge.tsx +0 -36
- package/dist/templates/web/ui-auth-payments/template/src/components/ui/theme-toggle.tsx +0 -34
- package/dist/templates/web/ui-auth-payments/template/src/lib/actions/index.ts +0 -340
- package/dist/templates/web/ui-auth-payments/template/src/lib/auth-server.ts +0 -177
- package/dist/templates/web/ui-auth-payments/template/src/lib/env.ts +0 -49
- package/dist/templates/web/ui-auth-payments/template/src/lib/utils.ts +0 -140
- package/dist/templates/web/ui-auth-payments/template/src/test/setup.ts +0 -79
- package/dist/templates/web/ui-auth-payments/template/tailwind.config.js +0 -77
- package/dist/templates/web/ui-auth-payments/template/tsconfig.json +0 -33
- package/dist/templates/web/ui-auth-payments/template/vitest.config.ts +0 -17
- package/dist/templates/web/ui-auth-payments-audio/template/.env.example +0 -15
- package/dist/templates/web/ui-auth-payments-audio/template/README.md +0 -187
- package/dist/templates/web/ui-auth-payments-audio/template/next.config.js +0 -12
- package/dist/templates/web/ui-auth-payments-audio/template/package.json +0 -53
- package/dist/templates/web/ui-auth-payments-audio/template/postcss.config.js +0 -7
- package/dist/templates/web/ui-auth-payments-audio/template/src/app/auth/callback/route.ts +0 -12
- package/dist/templates/web/ui-auth-payments-audio/template/src/app/billing/page.tsx +0 -211
- package/dist/templates/web/ui-auth-payments-audio/template/src/app/checkout/page.tsx +0 -142
- package/dist/templates/web/ui-auth-payments-audio/template/src/app/error.tsx +0 -67
- package/dist/templates/web/ui-auth-payments-audio/template/src/app/globals.css +0 -42
- package/dist/templates/web/ui-auth-payments-audio/template/src/app/layout.tsx +0 -35
- package/dist/templates/web/ui-auth-payments-audio/template/src/app/loading.tsx +0 -20
- package/dist/templates/web/ui-auth-payments-audio/template/src/app/login/page.tsx +0 -109
- package/dist/templates/web/ui-auth-payments-audio/template/src/app/page.tsx +0 -181
- package/dist/templates/web/ui-auth-payments-audio/template/src/app/signup/page.tsx +0 -128
- package/dist/templates/web/ui-auth-payments-audio/template/src/components/__tests__/example.test.tsx +0 -49
- package/dist/templates/web/ui-auth-payments-audio/template/src/components/providers/app-providers.tsx +0 -32
- package/dist/templates/web/ui-auth-payments-audio/template/src/components/providers/theme-provider.tsx +0 -94
- package/dist/templates/web/ui-auth-payments-audio/template/src/components/shared/footer.tsx +0 -36
- package/dist/templates/web/ui-auth-payments-audio/template/src/components/shared/header.tsx +0 -62
- package/dist/templates/web/ui-auth-payments-audio/template/src/components/ui/badge.tsx +0 -36
- package/dist/templates/web/ui-auth-payments-audio/template/src/components/ui/theme-toggle.tsx +0 -34
- package/dist/templates/web/ui-auth-payments-audio/template/src/lib/env.ts +0 -49
- package/dist/templates/web/ui-auth-payments-audio/template/src/lib/utils.ts +0 -140
- package/dist/templates/web/ui-auth-payments-audio/template/src/test/setup.ts +0 -79
- package/dist/templates/web/ui-auth-payments-audio/template/tailwind.config.js +0 -77
- package/dist/templates/web/ui-auth-payments-audio/template/tsconfig.json +0 -33
- package/dist/templates/web/ui-auth-payments-audio/template/vitest.config.ts +0 -17
- package/dist/templates/web/ui-auth-payments-video/template/.env.example +0 -15
- package/dist/templates/web/ui-auth-payments-video/template/README.md +0 -190
- package/dist/templates/web/ui-auth-payments-video/template/next.config.js +0 -12
- package/dist/templates/web/ui-auth-payments-video/template/package.json +0 -53
- package/dist/templates/web/ui-auth-payments-video/template/postcss.config.js +0 -7
- package/dist/templates/web/ui-auth-payments-video/template/src/app/auth/callback/route.ts +0 -12
- package/dist/templates/web/ui-auth-payments-video/template/src/app/billing/page.tsx +0 -211
- package/dist/templates/web/ui-auth-payments-video/template/src/app/checkout/page.tsx +0 -142
- package/dist/templates/web/ui-auth-payments-video/template/src/app/error.tsx +0 -67
- package/dist/templates/web/ui-auth-payments-video/template/src/app/globals.css +0 -42
- package/dist/templates/web/ui-auth-payments-video/template/src/app/layout.tsx +0 -33
- package/dist/templates/web/ui-auth-payments-video/template/src/app/loading.tsx +0 -20
- package/dist/templates/web/ui-auth-payments-video/template/src/app/login/page.tsx +0 -109
- package/dist/templates/web/ui-auth-payments-video/template/src/app/page.tsx +0 -187
- package/dist/templates/web/ui-auth-payments-video/template/src/app/signup/page.tsx +0 -128
- package/dist/templates/web/ui-auth-payments-video/template/src/components/__tests__/example.test.tsx +0 -49
- package/dist/templates/web/ui-auth-payments-video/template/src/components/providers/app-providers.tsx +0 -32
- package/dist/templates/web/ui-auth-payments-video/template/src/components/providers/theme-provider.tsx +0 -94
- package/dist/templates/web/ui-auth-payments-video/template/src/components/shared/footer.tsx +0 -36
- package/dist/templates/web/ui-auth-payments-video/template/src/components/shared/header.tsx +0 -62
- package/dist/templates/web/ui-auth-payments-video/template/src/components/ui/badge.tsx +0 -36
- package/dist/templates/web/ui-auth-payments-video/template/src/components/ui/theme-toggle.tsx +0 -34
- package/dist/templates/web/ui-auth-payments-video/template/src/lib/env.ts +0 -49
- package/dist/templates/web/ui-auth-payments-video/template/src/lib/utils.ts +0 -140
- package/dist/templates/web/ui-auth-payments-video/template/src/test/setup.ts +0 -79
- package/dist/templates/web/ui-auth-payments-video/template/tailwind.config.js +0 -77
- package/dist/templates/web/ui-auth-payments-video/template/tsconfig.json +0 -33
- package/dist/templates/web/ui-auth-payments-video/template/vitest.config.ts +0 -17
- package/dist/templates/web/ui-only/template/.env.example +0 -15
- package/dist/templates/web/ui-only/template/.eslintrc.js +0 -8
- package/dist/templates/web/ui-only/template/README.md +0 -68
- package/dist/templates/web/ui-only/template/next.config.js +0 -12
- package/dist/templates/web/ui-only/template/package.json +0 -49
- package/dist/templates/web/ui-only/template/postcss.config.js +0 -7
- package/dist/templates/web/ui-only/template/src/app/auth/callback/route.ts +0 -12
- package/dist/templates/web/ui-only/template/src/app/checkout/page.tsx +0 -25
- package/dist/templates/web/ui-only/template/src/app/error.tsx +0 -67
- package/dist/templates/web/ui-only/template/src/app/globals.css +0 -42
- package/dist/templates/web/ui-only/template/src/app/layout.tsx +0 -33
- package/dist/templates/web/ui-only/template/src/app/loading.tsx +0 -20
- package/dist/templates/web/ui-only/template/src/app/login/page.tsx +0 -63
- package/dist/templates/web/ui-only/template/src/app/page.tsx +0 -91
- package/dist/templates/web/ui-only/template/src/app/signup/page.tsx +0 -79
- package/dist/templates/web/ui-only/template/src/components/__tests__/example.test.tsx +0 -49
- package/dist/templates/web/ui-only/template/src/components/providers/app-providers.tsx +0 -26
- package/dist/templates/web/ui-only/template/src/components/providers/theme-provider.tsx +0 -94
- package/dist/templates/web/ui-only/template/src/components/shared/footer.tsx +0 -36
- package/dist/templates/web/ui-only/template/src/components/shared/header.tsx +0 -53
- package/dist/templates/web/ui-only/template/src/components/ui/badge.tsx +0 -36
- package/dist/templates/web/ui-only/template/src/components/ui/theme-toggle.tsx +0 -34
- package/dist/templates/web/ui-only/template/src/lib/env.ts +0 -49
- package/dist/templates/web/ui-only/template/src/lib/utils.ts +0 -140
- package/dist/templates/web/ui-only/template/src/test/setup.ts +0 -79
- package/dist/templates/web/ui-only/template/tailwind.config.js +0 -77
- package/dist/templates/web/ui-only/template/tsconfig.json +0 -33
- package/dist/templates/web/ui-only/template/vitest.config.ts +0 -17
- package/dist/templates/web/ui-only/template.backup/.env.example +0 -15
- package/dist/templates/web/ui-only/template.backup.20250817/.env.example +0 -15
- package/dist/templates/web/ui-package-test/template/package.json +0 -42
- package/dist/templates/web/ui-package-test/template/src/app/page.tsx +0 -106
- package/dist/templates/web/ui-package-test/template/tsconfig.json +0 -41
- /package/{dist/templates/web/ui-auth-payments → src/templates/web/ui-auth-payments-audio}/template/middleware.ts +0 -0
- /package/{dist/templates/web/ui-auth-payments → src/templates/web/ui-auth-payments-audio}/template/src/app/dashboard/layout.tsx +0 -0
- /package/{dist/templates/web/ui-auth-payments → src/templates/web/ui-auth-payments-audio}/template/src/app/dashboard/page.tsx +0 -0
- /package/{dist/templates/web/ui-auth-payments → src/templates/web/ui-auth-payments-audio}/template/src/components/client/auth-status.tsx +0 -0
- /package/{dist/templates/web/ui-auth-payments → src/templates/web/ui-auth-payments-audio}/template/src/lib/actions/auth.ts +0 -0
- /package/{dist/templates/web/base → src/templates/web/ui-auth-payments-audio}/template/src/lib/auth-server.ts +0 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addFeature = addFeature;
|
|
4
|
+
const logger_1 = require("../utils/logger");
|
|
5
|
+
const spinner_1 = require("../utils/spinner");
|
|
6
|
+
async function addFeature(feature, _options = {}) {
|
|
7
|
+
try {
|
|
8
|
+
logger_1.logger.title(`Adding ${feature} feature`);
|
|
9
|
+
const validFeatures = [
|
|
10
|
+
'auth',
|
|
11
|
+
'billing',
|
|
12
|
+
'analytics',
|
|
13
|
+
'teams',
|
|
14
|
+
'notifications',
|
|
15
|
+
'admin',
|
|
16
|
+
'api',
|
|
17
|
+
'docs',
|
|
18
|
+
];
|
|
19
|
+
if (!validFeatures.includes(feature)) {
|
|
20
|
+
logger_1.logger.error(`Invalid feature: ${feature}`);
|
|
21
|
+
logger_1.logger.info('Available features:');
|
|
22
|
+
logger_1.logger.list(validFeatures);
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
const addSpinner = (0, spinner_1.spinner)(`Adding ${feature} feature...`);
|
|
26
|
+
// Simulate feature addition (placeholder for now)
|
|
27
|
+
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
28
|
+
addSpinner.succeed(`${feature} feature added successfully`);
|
|
29
|
+
logger_1.logger.newLine();
|
|
30
|
+
logger_1.logger.success('Feature added successfully!');
|
|
31
|
+
logger_1.logger.info("Don't forget to update your environment variables if needed.");
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
logger_1.logger.error('Failed to add feature:');
|
|
35
|
+
logger_1.logger.error(error instanceof Error ? error.message : String(error));
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=add.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/cli/commands/add.ts"],"names":[],"mappings":";;AAOA,gCAqCC;AA5CD,4CAAyC;AACzC,8CAA2C;AAMpC,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE,WAAuB,EAAE;IACzE,IAAI,CAAC;QACH,eAAM,CAAC,KAAK,CAAC,UAAU,OAAO,UAAU,CAAC,CAAC;QAE1C,MAAM,aAAa,GAAG;YACpB,MAAM;YACN,SAAS;YACT,WAAW;YACX,OAAO;YACP,eAAe;YACf,OAAO;YACP,KAAK;YACL,MAAM;SACP,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,eAAM,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC5C,eAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACnC,eAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,UAAU,GAAG,IAAA,iBAAO,EAAC,UAAU,OAAO,aAAa,CAAC,CAAC;QAE3D,kDAAkD;QAClD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAE1D,UAAU,CAAC,OAAO,CAAC,GAAG,OAAO,6BAA6B,CAAC,CAAC;QAE5D,eAAM,CAAC,OAAO,EAAE,CAAC;QACjB,eAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;QAC9C,eAAM,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACvC,eAAM,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
interface CreateOptions {
|
|
2
|
+
auth?: string;
|
|
3
|
+
database?: string;
|
|
4
|
+
theme?: string;
|
|
5
|
+
themeColor?: string;
|
|
6
|
+
defaultTheme?: string;
|
|
7
|
+
install?: boolean;
|
|
8
|
+
git?: boolean;
|
|
9
|
+
yes?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface ProjectConfig {
|
|
12
|
+
platform: 'web' | 'mobile' | 'both';
|
|
13
|
+
template: string;
|
|
14
|
+
name: string;
|
|
15
|
+
auth: 'firebase' | 'supabase';
|
|
16
|
+
database: 'supabase' | 'firebase';
|
|
17
|
+
theme: 'default' | 'corporate' | 'startup';
|
|
18
|
+
themeColor: 'blue' | 'green' | 'purple' | 'orange' | 'red' | 'slate';
|
|
19
|
+
defaultTheme: 'light' | 'dark' | 'system';
|
|
20
|
+
install: boolean;
|
|
21
|
+
git: boolean;
|
|
22
|
+
}
|
|
23
|
+
export declare function createProject(platform: string, template?: string, name?: string, options?: CreateOptions & {
|
|
24
|
+
themeColor?: string;
|
|
25
|
+
defaultTheme?: string;
|
|
26
|
+
}): Promise<void>;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/create.ts"],"names":[],"mappings":"AAUA,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC;IAC9B,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC;IAClC,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IAC3C,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;IACrE,YAAY,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,GAAE,aAAa,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,iBA+H7E"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createProject = createProject;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const logger_1 = require("../utils/logger");
|
|
9
|
+
const spinner_1 = require("../utils/spinner");
|
|
10
|
+
const project_name_1 = require("../validators/project-name");
|
|
11
|
+
const dependencies_1 = require("../validators/dependencies");
|
|
12
|
+
const project_setup_1 = require("../prompts/project-setup");
|
|
13
|
+
const template_generator_1 = require("../../generators/template-generator");
|
|
14
|
+
const package_installer_1 = require("../../generators/package-installer");
|
|
15
|
+
const git_1 = require("../utils/git");
|
|
16
|
+
async function createProject(platform, template, name, options = {}) {
|
|
17
|
+
try {
|
|
18
|
+
// Validate Node.js version
|
|
19
|
+
if (!(await (0, dependencies_1.validateNodeVersion)())) {
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
// Validate platform
|
|
23
|
+
const validPlatforms = ['web', 'mobile', 'both'];
|
|
24
|
+
if (!validPlatforms.includes(platform)) {
|
|
25
|
+
logger_1.logger.error(`Invalid platform: ${platform}. Must be one of: ${validPlatforms.join(', ')}`);
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
// Set up initial configuration
|
|
29
|
+
let config = {
|
|
30
|
+
platform: platform,
|
|
31
|
+
template: template || 'base',
|
|
32
|
+
name: name || 'my-saas-app',
|
|
33
|
+
auth: options.auth || 'supabase',
|
|
34
|
+
database: options.database || 'supabase',
|
|
35
|
+
theme: options.theme || 'default',
|
|
36
|
+
themeColor: options.themeColor || 'blue',
|
|
37
|
+
defaultTheme: options.defaultTheme || 'system',
|
|
38
|
+
install: options.install !== false,
|
|
39
|
+
git: options.git !== false,
|
|
40
|
+
};
|
|
41
|
+
// Interactive prompts if not in yes mode
|
|
42
|
+
if (!options.yes) {
|
|
43
|
+
config = await (0, project_setup_1.getProjectPrompts)(config);
|
|
44
|
+
}
|
|
45
|
+
// Validate project name
|
|
46
|
+
if (!(0, project_name_1.validateProjectName)(config.name)) {
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
const projectPath = path_1.default.resolve(process.cwd(), config.name);
|
|
50
|
+
// Validate project path
|
|
51
|
+
if (!(await (0, project_name_1.validateProjectPath)(projectPath))) {
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
// Display configuration
|
|
55
|
+
logger_1.logger.title('🚀 Creating your SaaS application');
|
|
56
|
+
logger_1.logger.info(`Platform: ${config.platform}`);
|
|
57
|
+
logger_1.logger.info(`Template: ${config.template}`);
|
|
58
|
+
logger_1.logger.info(`Project: ${config.name}`);
|
|
59
|
+
logger_1.logger.info(`Auth: ${config.auth}`);
|
|
60
|
+
logger_1.logger.info(`Database: ${config.database}`);
|
|
61
|
+
logger_1.logger.info(`Theme: ${config.theme}`);
|
|
62
|
+
logger_1.logger.info(`Theme Color: ${config.themeColor}`);
|
|
63
|
+
logger_1.logger.info(`Default Theme: ${config.defaultTheme}`);
|
|
64
|
+
logger_1.logger.newLine();
|
|
65
|
+
// Generate project structure
|
|
66
|
+
const templateSpinner = (0, spinner_1.spinner)('Generating project structure...');
|
|
67
|
+
try {
|
|
68
|
+
const generator = new template_generator_1.TemplateGenerator(config);
|
|
69
|
+
await generator.generate(projectPath);
|
|
70
|
+
templateSpinner.succeed('Project structure created');
|
|
71
|
+
}
|
|
72
|
+
catch (_error) {
|
|
73
|
+
templateSpinner.fail('Failed to generate project structure');
|
|
74
|
+
throw _error;
|
|
75
|
+
}
|
|
76
|
+
// Install dependencies
|
|
77
|
+
if (config.install) {
|
|
78
|
+
const installSpinner = (0, spinner_1.spinner)('Installing dependencies...');
|
|
79
|
+
try {
|
|
80
|
+
const installer = new package_installer_1.PackageInstaller(projectPath);
|
|
81
|
+
await installer.install();
|
|
82
|
+
installSpinner.succeed('Dependencies installed');
|
|
83
|
+
}
|
|
84
|
+
catch (_error) {
|
|
85
|
+
installSpinner.fail('Failed to install dependencies');
|
|
86
|
+
logger_1.logger.warn('You can install dependencies manually by running:');
|
|
87
|
+
logger_1.logger.code(`cd ${config.name} && npm install`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Initialize git repository
|
|
91
|
+
if (config.git) {
|
|
92
|
+
const gitSpinner = (0, spinner_1.spinner)('Initializing git repository...');
|
|
93
|
+
try {
|
|
94
|
+
await (0, git_1.initializeGit)(projectPath);
|
|
95
|
+
gitSpinner.succeed('Git repository initialized');
|
|
96
|
+
}
|
|
97
|
+
catch (_error) {
|
|
98
|
+
gitSpinner.fail('Failed to initialize git repository');
|
|
99
|
+
logger_1.logger.warn('You can initialize git manually by running:');
|
|
100
|
+
logger_1.logger.code(`cd ${config.name} && git init`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// Success message with next steps
|
|
104
|
+
logger_1.logger.newLine();
|
|
105
|
+
logger_1.logger.success('🎉 Project created successfully!');
|
|
106
|
+
logger_1.logger.newLine();
|
|
107
|
+
logger_1.logger.title('Next steps:');
|
|
108
|
+
logger_1.logger.code(`cd ${config.name}`);
|
|
109
|
+
if (!config.install) {
|
|
110
|
+
logger_1.logger.code('npm install');
|
|
111
|
+
}
|
|
112
|
+
if (config.platform === 'web' || config.platform === 'both') {
|
|
113
|
+
logger_1.logger.code('npm run dev');
|
|
114
|
+
logger_1.logger.info('Open http://localhost:3000 in your browser');
|
|
115
|
+
}
|
|
116
|
+
if (config.platform === 'mobile' || config.platform === 'both') {
|
|
117
|
+
logger_1.logger.code('npx expo start');
|
|
118
|
+
logger_1.logger.info('Scan QR code with Expo Go app');
|
|
119
|
+
}
|
|
120
|
+
logger_1.logger.newLine();
|
|
121
|
+
logger_1.logger.info('📚 Documentation: https://docs.digilogiclabs.com');
|
|
122
|
+
logger_1.logger.info('💬 Support: https://discord.gg/digilogiclabs');
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
logger_1.logger.error('Failed to create project:');
|
|
126
|
+
logger_1.logger.error(error instanceof Error ? error.message : String(error));
|
|
127
|
+
process.exit(1);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/cli/commands/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./create"), exports);
|
|
18
|
+
__exportStar(require("./add"), exports);
|
|
19
|
+
__exportStar(require("./update"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,wCAAsB;AACtB,2CAAyB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"AAKA,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AASD,wBAAsB,kBAAkB,CAAC,OAAO,GAAE,aAAkB,iBAqDnE"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.updateDependencies = updateDependencies;
|
|
7
|
+
const logger_1 = require("../utils/logger");
|
|
8
|
+
const spinner_1 = require("../utils/spinner");
|
|
9
|
+
const package_manager_1 = require("../utils/package-manager");
|
|
10
|
+
const execa_1 = __importDefault(require("execa"));
|
|
11
|
+
const DIGILOGIC_PACKAGES = [
|
|
12
|
+
'@digilogiclabs/saas-factory-ui',
|
|
13
|
+
'@digilogiclabs/saas-factory-auth',
|
|
14
|
+
'@digilogiclabs/saas-factory-billing',
|
|
15
|
+
'@digilogiclabs/saas-factory-analytics',
|
|
16
|
+
];
|
|
17
|
+
async function updateDependencies(options = {}) {
|
|
18
|
+
try {
|
|
19
|
+
logger_1.logger.title('Updating Digi Logic Labs dependencies');
|
|
20
|
+
const packageManager = await (0, package_manager_1.detectPackageManager)();
|
|
21
|
+
logger_1.logger.info(`Using package manager: ${packageManager}`);
|
|
22
|
+
if (options.check) {
|
|
23
|
+
const checkSpinner = (0, spinner_1.spinner)('Checking for updates...');
|
|
24
|
+
// Check for outdated packages
|
|
25
|
+
try {
|
|
26
|
+
const result = await (0, execa_1.default)(packageManager, ['outdated', ...DIGILOGIC_PACKAGES], {
|
|
27
|
+
reject: false,
|
|
28
|
+
});
|
|
29
|
+
checkSpinner.succeed('Update check completed');
|
|
30
|
+
if (result.stdout) {
|
|
31
|
+
logger_1.logger.info('Available updates:');
|
|
32
|
+
logger_1.logger.log(result.stdout);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
logger_1.logger.success('All Digi Logic Labs packages are up to date!');
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
checkSpinner.fail('Failed to check for updates');
|
|
40
|
+
throw error;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
const updateSpinner = (0, spinner_1.spinner)('Updating packages...');
|
|
45
|
+
try {
|
|
46
|
+
// Update packages
|
|
47
|
+
const command = await (0, package_manager_1.getAddCommand)(packageManager, DIGILOGIC_PACKAGES);
|
|
48
|
+
await (0, execa_1.default)(command[0], command.slice(1), {
|
|
49
|
+
stdio: 'inherit',
|
|
50
|
+
});
|
|
51
|
+
updateSpinner.succeed('Packages updated successfully');
|
|
52
|
+
logger_1.logger.newLine();
|
|
53
|
+
logger_1.logger.success('All Digi Logic Labs packages have been updated!');
|
|
54
|
+
logger_1.logger.info("Don't forget to test your application after updating.");
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
updateSpinner.fail('Failed to update packages');
|
|
58
|
+
throw error;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
logger_1.logger.error('Failed to update dependencies:');
|
|
64
|
+
logger_1.logger.error(error instanceof Error ? error.message : String(error));
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":";;;;;AAgBA,gDAqDC;AArED,4CAAyC;AACzC,8CAA2C;AAC3C,8DAA+E;AAC/E,kDAA0B;AAM1B,MAAM,kBAAkB,GAAG;IACzB,gCAAgC;IAChC,kCAAkC;IAClC,qCAAqC;IACrC,uCAAuC;CACxC,CAAC;AAEK,KAAK,UAAU,kBAAkB,CAAC,UAAyB,EAAE;IAClE,IAAI,CAAC;QACH,eAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAEtD,MAAM,cAAc,GAAG,MAAM,IAAA,sCAAoB,GAAE,CAAC;QACpD,eAAM,CAAC,IAAI,CAAC,0BAA0B,cAAc,EAAE,CAAC,CAAC;QAExD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,YAAY,GAAG,IAAA,iBAAO,EAAC,yBAAyB,CAAC,CAAC;YAExD,8BAA8B;YAC9B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAA,eAAK,EAAC,cAAc,EAAE,CAAC,UAAU,EAAE,GAAG,kBAAkB,CAAC,EAAE;oBAC9E,MAAM,EAAE,KAAK;iBACd,CAAC,CAAC;gBAEH,YAAY,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;gBAE/C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClB,eAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;oBAClC,eAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,eAAM,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,YAAY,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;gBACjD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,aAAa,GAAG,IAAA,iBAAO,EAAC,sBAAsB,CAAC,CAAC;YAEtD,IAAI,CAAC;gBACH,kBAAkB;gBAClB,MAAM,OAAO,GAAG,MAAM,IAAA,+BAAa,EAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;gBACxE,MAAM,IAAA,eAAK,EAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBACxC,KAAK,EAAE,SAAS;iBACjB,CAAC,CAAC;gBAEH,aAAa,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;gBAEvD,eAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,eAAM,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC;gBAClE,eAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACvE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,aAAa,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAChD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC/C,eAAM,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,QAAA,MAAM,OAAO,SAAgB,CAAC;AAsD9B,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const commander_1 = require("commander");
|
|
7
|
+
const create_1 = require("./commands/create");
|
|
8
|
+
const add_1 = require("./commands/add");
|
|
9
|
+
const update_1 = require("./commands/update");
|
|
10
|
+
const logger_1 = require("./utils/logger");
|
|
11
|
+
const package_json_1 = __importDefault(require("../../package.json"));
|
|
12
|
+
const program = new commander_1.Command();
|
|
13
|
+
program
|
|
14
|
+
.name('create-saas-app')
|
|
15
|
+
.description('Create modern SaaS applications with Digi Logic Labs packages')
|
|
16
|
+
.version(package_json_1.default.version);
|
|
17
|
+
program
|
|
18
|
+
.command('create')
|
|
19
|
+
.alias('c')
|
|
20
|
+
.description('Create a new SaaS application')
|
|
21
|
+
.argument('<platform>', 'Platform: web, mobile, or both')
|
|
22
|
+
.argument('[template]', 'Template: base, dashboard, saas (web) | base, tabs, stack (mobile)')
|
|
23
|
+
.argument('[name]', 'Project name')
|
|
24
|
+
.option('-a, --auth <provider>', 'Auth provider: firebase, supabase')
|
|
25
|
+
.option('-d, --database <provider>', 'Database provider: supabase, firebase')
|
|
26
|
+
.option('-t, --theme <theme>', 'Theme: default, corporate, startup')
|
|
27
|
+
.option('-c, --theme-color <color>', 'Theme color: blue, green, purple, orange, red, slate')
|
|
28
|
+
.option('--default-theme <mode>', 'Default theme mode: light, dark, system')
|
|
29
|
+
.option('--no-install', 'Skip package installation')
|
|
30
|
+
.option('--no-git', 'Skip git initialization')
|
|
31
|
+
.option('-y, --yes', 'Skip interactive prompts')
|
|
32
|
+
.action(create_1.createProject);
|
|
33
|
+
program
|
|
34
|
+
.command('add')
|
|
35
|
+
.alias('a')
|
|
36
|
+
.description('Add features to existing project')
|
|
37
|
+
.argument('<feature>', 'Feature to add: auth, billing, analytics, etc.')
|
|
38
|
+
.option('-p, --provider <provider>', 'Service provider')
|
|
39
|
+
.action(add_1.addFeature);
|
|
40
|
+
program
|
|
41
|
+
.command('update')
|
|
42
|
+
.alias('u')
|
|
43
|
+
.description('Update Digi Logic Labs dependencies')
|
|
44
|
+
.option('--check', 'Check for updates without installing')
|
|
45
|
+
.action(update_1.updateDependencies);
|
|
46
|
+
// Handle unknown commands
|
|
47
|
+
program.on('command:*', () => {
|
|
48
|
+
logger_1.logger.error(`Unknown command: ${program.args.join(' ')}`);
|
|
49
|
+
logger_1.logger.info('Run "create-saas-app --help" for available commands');
|
|
50
|
+
process.exit(1);
|
|
51
|
+
});
|
|
52
|
+
// Show help if no arguments provided
|
|
53
|
+
if (!process.argv.slice(2).length) {
|
|
54
|
+
program.outputHelp();
|
|
55
|
+
process.exit(0);
|
|
56
|
+
}
|
|
57
|
+
program.parse();
|
|
58
|
+
exports.default = program;
|
|
59
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;AAAA,yCAAoC;AACpC,8CAAkD;AAClD,wCAA4C;AAC5C,8CAAuD;AACvD,2CAAwC;AACxC,sEAA6C;AAE7C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,iBAAiB,CAAC;KACvB,WAAW,CAAC,+DAA+D,CAAC;KAC5E,OAAO,CAAC,sBAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,+BAA+B,CAAC;KAC5C,QAAQ,CAAC,YAAY,EAAE,gCAAgC,CAAC;KACxD,QAAQ,CAAC,YAAY,EAAE,oEAAoE,CAAC;KAC5F,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;KAClC,MAAM,CAAC,uBAAuB,EAAE,mCAAmC,CAAC;KACpE,MAAM,CAAC,2BAA2B,EAAE,uCAAuC,CAAC;KAC5E,MAAM,CAAC,qBAAqB,EAAE,oCAAoC,CAAC;KACnE,MAAM,CAAC,2BAA2B,EAAE,sDAAsD,CAAC;KAC3F,MAAM,CAAC,wBAAwB,EAAE,yCAAyC,CAAC;KAC3E,MAAM,CAAC,cAAc,EAAE,2BAA2B,CAAC;KACnD,MAAM,CAAC,UAAU,EAAE,yBAAyB,CAAC;KAC7C,MAAM,CAAC,WAAW,EAAE,0BAA0B,CAAC;KAC/C,MAAM,CAAC,sBAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,kCAAkC,CAAC;KAC/C,QAAQ,CAAC,WAAW,EAAE,gDAAgD,CAAC;KACvE,MAAM,CAAC,2BAA2B,EAAE,kBAAkB,CAAC;KACvD,MAAM,CAAC,gBAAU,CAAC,CAAC;AAEtB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,SAAS,EAAE,sCAAsC,CAAC;KACzD,MAAM,CAAC,2BAAkB,CAAC,CAAC;AAE9B,0BAA0B;AAC1B,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;IAC3B,eAAM,CAAC,KAAK,CAAC,oBAAoB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3D,eAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,qCAAqC;AACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,OAAO,CAAC,KAAK,EAAE,CAAC;AAEhB,kBAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/prompts/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./project-setup"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/prompts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ProjectConfig } from '../commands/create';
|
|
2
|
+
export declare function getProjectPrompts(initialConfig: ProjectConfig): Promise<ProjectConfig>;
|
|
3
|
+
export declare function getAuthSetupPrompts(authProvider: string): Promise<any>;
|
|
4
|
+
export declare function getThemeCustomizationPrompts(theme: string): Promise<any>;
|
|
5
|
+
//# sourceMappingURL=project-setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-setup.d.ts","sourceRoot":"","sources":["../../../src/cli/prompts/project-setup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD,wBAAsB,iBAAiB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAiK5F;AAED,wBAAsB,mBAAmB,CAAC,YAAY,EAAE,MAAM,gBAkD7D;AAED,wBAAsB,4BAA4B,CAAC,KAAK,EAAE,MAAM,gBA+B/D"}
|