@digilogiclabs/create-saas-app 1.9.0 → 1.9.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.
Files changed (99) hide show
  1. package/bin/index.js +1 -1
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/index.js +1173 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/templates/mobile/base/template/package.json +1 -1
  6. package/dist/templates/web/base/template/package.json +1 -1
  7. package/dist/templates/web/ui-auth/template/package.json +2 -2
  8. package/dist/templates/web/ui-auth-payments/template/package.json +2 -2
  9. package/dist/templates/web/ui-auth-payments-audio/template/package.json +2 -2
  10. package/dist/templates/web/ui-auth-payments-audio/template/src/app/page.tsx +136 -107
  11. package/dist/templates/web/ui-auth-payments-video/template/package.json +2 -2
  12. package/dist/templates/web/ui-only/template/package.json +2 -2
  13. package/dist/templates/web/ui-package-test/template/package.json +2 -2
  14. package/package.json +2 -2
  15. package/src/templates/mobile/base/template/package.json +1 -1
  16. package/src/templates/web/base/template/package.json +1 -1
  17. package/src/templates/web/ui-auth/template/package.json +2 -2
  18. package/src/templates/web/ui-auth-payments/template/package.json +2 -2
  19. package/src/templates/web/ui-auth-payments-audio/template/package.json +2 -2
  20. package/src/templates/web/ui-auth-payments-audio/template/src/app/page.tsx +136 -107
  21. package/src/templates/web/ui-auth-payments-video/template/package.json +2 -2
  22. package/src/templates/web/ui-only/template/package.json +2 -2
  23. package/src/templates/web/ui-package-test/template/package.json +2 -2
  24. package/dist/cli/commands/add.d.ts +0 -6
  25. package/dist/cli/commands/add.d.ts.map +0 -1
  26. package/dist/cli/commands/add.js +0 -39
  27. package/dist/cli/commands/add.js.map +0 -1
  28. package/dist/cli/commands/create.d.ts +0 -28
  29. package/dist/cli/commands/create.d.ts.map +0 -1
  30. package/dist/cli/commands/create.js +0 -130
  31. package/dist/cli/commands/create.js.map +0 -1
  32. package/dist/cli/commands/index.d.ts +0 -4
  33. package/dist/cli/commands/index.d.ts.map +0 -1
  34. package/dist/cli/commands/index.js +0 -20
  35. package/dist/cli/commands/index.js.map +0 -1
  36. package/dist/cli/commands/update.d.ts +0 -6
  37. package/dist/cli/commands/update.d.ts.map +0 -1
  38. package/dist/cli/commands/update.js +0 -68
  39. package/dist/cli/commands/update.js.map +0 -1
  40. package/dist/cli/index.d.ts +0 -4
  41. package/dist/cli/index.d.ts.map +0 -1
  42. package/dist/cli/index.js +0 -59
  43. package/dist/cli/index.js.map +0 -1
  44. package/dist/cli/prompts/index.d.ts +0 -2
  45. package/dist/cli/prompts/index.d.ts.map +0 -1
  46. package/dist/cli/prompts/index.js +0 -18
  47. package/dist/cli/prompts/index.js.map +0 -1
  48. package/dist/cli/prompts/project-setup.d.ts +0 -5
  49. package/dist/cli/prompts/project-setup.d.ts.map +0 -1
  50. package/dist/cli/prompts/project-setup.js +0 -251
  51. package/dist/cli/prompts/project-setup.js.map +0 -1
  52. package/dist/cli/utils/git.d.ts +0 -9
  53. package/dist/cli/utils/git.d.ts.map +0 -1
  54. package/dist/cli/utils/git.js +0 -77
  55. package/dist/cli/utils/git.js.map +0 -1
  56. package/dist/cli/utils/index.d.ts +0 -5
  57. package/dist/cli/utils/index.d.ts.map +0 -1
  58. package/dist/cli/utils/index.js +0 -21
  59. package/dist/cli/utils/index.js.map +0 -1
  60. package/dist/cli/utils/logger.d.ts +0 -16
  61. package/dist/cli/utils/logger.d.ts.map +0 -1
  62. package/dist/cli/utils/logger.js +0 -55
  63. package/dist/cli/utils/logger.js.map +0 -1
  64. package/dist/cli/utils/package-manager.d.ts +0 -8
  65. package/dist/cli/utils/package-manager.d.ts.map +0 -1
  66. package/dist/cli/utils/package-manager.js +0 -92
  67. package/dist/cli/utils/package-manager.js.map +0 -1
  68. package/dist/cli/utils/spinner.d.ts +0 -7
  69. package/dist/cli/utils/spinner.d.ts.map +0 -1
  70. package/dist/cli/utils/spinner.js +0 -48
  71. package/dist/cli/utils/spinner.js.map +0 -1
  72. package/dist/cli/validators/dependencies.d.ts +0 -15
  73. package/dist/cli/validators/dependencies.d.ts.map +0 -1
  74. package/dist/cli/validators/dependencies.js +0 -108
  75. package/dist/cli/validators/dependencies.js.map +0 -1
  76. package/dist/cli/validators/index.d.ts +0 -3
  77. package/dist/cli/validators/index.d.ts.map +0 -1
  78. package/dist/cli/validators/index.js +0 -19
  79. package/dist/cli/validators/index.js.map +0 -1
  80. package/dist/cli/validators/project-name.d.ts +0 -5
  81. package/dist/cli/validators/project-name.d.ts.map +0 -1
  82. package/dist/cli/validators/project-name.js +0 -151
  83. package/dist/cli/validators/project-name.js.map +0 -1
  84. package/dist/generators/file-processor.d.ts +0 -28
  85. package/dist/generators/file-processor.d.ts.map +0 -1
  86. package/dist/generators/file-processor.js +0 -203
  87. package/dist/generators/file-processor.js.map +0 -1
  88. package/dist/generators/index.d.ts +0 -4
  89. package/dist/generators/index.d.ts.map +0 -1
  90. package/dist/generators/index.js +0 -20
  91. package/dist/generators/index.js.map +0 -1
  92. package/dist/generators/package-installer.d.ts +0 -29
  93. package/dist/generators/package-installer.d.ts.map +0 -1
  94. package/dist/generators/package-installer.js +0 -167
  95. package/dist/generators/package-installer.js.map +0 -1
  96. package/dist/generators/template-generator.d.ts +0 -48
  97. package/dist/generators/template-generator.d.ts.map +0 -1
  98. package/dist/generators/template-generator.js +0 -274
  99. package/dist/generators/template-generator.js.map +0 -1
@@ -1,48 +0,0 @@
1
- import { ProjectConfig } from '../cli/commands/create';
2
- export interface TemplateContext {
3
- projectName: string;
4
- platform: string;
5
- template: string;
6
- auth: string;
7
- database: string;
8
- theme: string;
9
- themeColor: string;
10
- defaultTheme: string;
11
- packageName: string;
12
- className: string;
13
- camelCaseName: string;
14
- kebabCaseName: string;
15
- titleCaseName: string;
16
- description: string;
17
- author: string;
18
- year: number;
19
- generatedDate: string;
20
- generatorVersion: string;
21
- uiVersion: string;
22
- authVersion: string;
23
- paymentsVersion: string;
24
- dependencies: Record<string, string>;
25
- devDependencies: Record<string, string>;
26
- scripts: Record<string, string>;
27
- }
28
- export declare class TemplateGenerator {
29
- private config;
30
- private context;
31
- private templatesDir;
32
- constructor(config: ProjectConfig);
33
- private createTemplateContext;
34
- private getDependencies;
35
- private getDevDependencies;
36
- private getScripts;
37
- generate(outputPath: string): Promise<void>;
38
- private generateWebProject;
39
- private generateMobileProject;
40
- private copyTemplate;
41
- private copyAndProcessFiles;
42
- private copySharedResources;
43
- private isTextFile;
44
- private toPascalCase;
45
- private toCamelCase;
46
- private toTitleCase;
47
- }
48
- //# sourceMappingURL=template-generator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-generator.d.ts","sourceRoot":"","sources":["../../src/generators/template-generator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,YAAY,CAAS;gBAEjB,MAAM,EAAE,aAAa;IAQjC,OAAO,CAAC,qBAAqB;IA4C7B,OAAO,CAAC,eAAe;IAoEvB,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,UAAU;IAwBL,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAyB1C,kBAAkB;YAKlB,qBAAqB;YAKrB,YAAY;YASZ,mBAAmB;YA6BnB,mBAAmB;IAsBjC,OAAO,CAAC,UAAU;IA6BlB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,WAAW;CAOpB"}
@@ -1,274 +0,0 @@
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.TemplateGenerator = void 0;
7
- const path_1 = __importDefault(require("path"));
8
- const fs_extra_1 = __importDefault(require("fs-extra"));
9
- const mustache_1 = __importDefault(require("mustache"));
10
- const glob_1 = require("glob");
11
- const logger_1 = require("../cli/utils/logger");
12
- class TemplateGenerator {
13
- constructor(config) {
14
- this.config = config;
15
- // Always use the templates directory relative to __dirname
16
- // In the built package, templates are copied to dist/templates
17
- this.templatesDir = path_1.default.join(__dirname, '..', 'templates');
18
- this.context = this.createTemplateContext();
19
- }
20
- createTemplateContext() {
21
- const projectName = this.config.name;
22
- const packageName = projectName.toLowerCase().replace(/[^a-z0-9-]/g, '-');
23
- const className = this.toPascalCase(projectName);
24
- const camelCaseName = this.toCamelCase(projectName);
25
- const kebabCaseName = packageName;
26
- const titleCaseName = this.toTitleCase(projectName);
27
- const dependencies = this.getDependencies();
28
- const generatedDate = new Date().toLocaleDateString('en-US', {
29
- year: 'numeric',
30
- month: 'short',
31
- day: 'numeric',
32
- });
33
- return {
34
- projectName,
35
- platform: this.config.platform,
36
- template: this.config.template,
37
- auth: this.config.auth,
38
- database: this.config.database,
39
- theme: this.config.theme,
40
- themeColor: this.config.themeColor,
41
- defaultTheme: this.config.defaultTheme,
42
- packageName,
43
- className,
44
- camelCaseName,
45
- kebabCaseName,
46
- titleCaseName,
47
- description: `A modern SaaS application built with Digi Logic Labs`,
48
- author: 'Digi Logic Labs',
49
- year: new Date().getFullYear(),
50
- generatedDate,
51
- generatorVersion: '1.5.0',
52
- uiVersion: dependencies['@digilogiclabs/saas-factory-ui']?.replace('^', '') || '0.15.6',
53
- authVersion: dependencies['@digilogiclabs/saas-factory-auth']?.replace('^', '') || '1.0.0',
54
- paymentsVersion: dependencies['@digilogiclabs/saas-factory-payments']?.replace('^', '') || '1.0.0',
55
- dependencies,
56
- devDependencies: this.getDevDependencies(),
57
- scripts: this.getScripts(),
58
- };
59
- }
60
- getDependencies() {
61
- const baseDeps = {};
62
- // Add UI package for ui-only, ui-auth, ui-auth-payments, and media player templates
63
- if ([
64
- 'ui-only',
65
- 'ui-auth',
66
- 'ui-auth-payments',
67
- 'ui-auth-payments-audio',
68
- 'ui-auth-payments-video',
69
- ].includes(this.config.template)) {
70
- baseDeps['@digilogiclabs/saas-factory-ui'] = '^0.15.6';
71
- }
72
- // Add auth package for auth-enabled templates
73
- if (['ui-auth', 'ui-auth-payments', 'ui-auth-payments-audio', 'ui-auth-payments-video'].includes(this.config.template)) {
74
- baseDeps['@digilogiclabs/saas-factory-auth'] = '^1.0.0';
75
- }
76
- // Add payments package for payment-enabled templates
77
- if (['ui-auth-payments', 'ui-auth-payments-audio', 'ui-auth-payments-video'].includes(this.config.template)) {
78
- baseDeps['@digilogiclabs/saas-factory-payments'] = '^1.0.0';
79
- }
80
- if (this.config.platform === 'web' || this.config.platform === 'both') {
81
- Object.assign(baseDeps, {
82
- next: '^15.0.0',
83
- react: '^19.0.0',
84
- 'react-dom': '^19.0.0',
85
- tailwindcss: '^3.3.0',
86
- typescript: '^5.0.0',
87
- clsx: '^2.0.0',
88
- 'class-variance-authority': '^0.7.0',
89
- 'tailwind-merge': '^2.0.0',
90
- 'next-themes': '^0.2.1',
91
- 'lucide-react': '^0.542.0',
92
- autoprefixer: '^10.4.16',
93
- postcss: '^8.4.31',
94
- });
95
- }
96
- if (this.config.platform === 'mobile' || this.config.platform === 'both') {
97
- Object.assign(baseDeps, {
98
- expo: '~49.0.0',
99
- 'react-native': '0.72.0',
100
- '@expo/vector-icons': '^13.0.0',
101
- });
102
- }
103
- if (this.config.auth === 'firebase') {
104
- baseDeps['firebase'] = '^10.0.0';
105
- }
106
- else if (this.config.auth === 'supabase') {
107
- baseDeps['@supabase/supabase-js'] = '^2.0.0';
108
- }
109
- return baseDeps;
110
- }
111
- getDevDependencies() {
112
- const baseDeps = {
113
- '@types/node': '^20.0.0',
114
- eslint: '^8.0.0',
115
- prettier: '^3.0.0',
116
- };
117
- if (this.config.platform === 'web' || this.config.platform === 'both') {
118
- Object.assign(baseDeps, {
119
- '@types/react': '^18.0.0',
120
- '@types/react-dom': '^18.0.0',
121
- autoprefixer: '^10.0.0',
122
- postcss: '^8.0.0',
123
- });
124
- }
125
- return baseDeps;
126
- }
127
- getScripts() {
128
- const scripts = {};
129
- if (this.config.platform === 'web' || this.config.platform === 'both') {
130
- Object.assign(scripts, {
131
- dev: 'next dev',
132
- build: 'next build',
133
- start: 'next start',
134
- lint: 'next lint',
135
- });
136
- }
137
- if (this.config.platform === 'mobile' || this.config.platform === 'both') {
138
- Object.assign(scripts, {
139
- start: 'expo start',
140
- android: 'expo start --android',
141
- ios: 'expo start --ios',
142
- web: 'expo start --web',
143
- });
144
- }
145
- return scripts;
146
- }
147
- async generate(outputPath) {
148
- try {
149
- // Ensure output directory exists
150
- await fs_extra_1.default.ensureDir(outputPath);
151
- // Generate based on platform
152
- if (this.config.platform === 'web') {
153
- await this.generateWebProject(outputPath);
154
- }
155
- else if (this.config.platform === 'mobile') {
156
- await this.generateMobileProject(outputPath);
157
- }
158
- else if (this.config.platform === 'both') {
159
- await this.generateWebProject(outputPath);
160
- await this.generateMobileProject(path_1.default.join(outputPath, 'mobile'));
161
- }
162
- // Copy shared resources
163
- await this.copySharedResources(outputPath);
164
- logger_1.logger.debug('Template generation completed');
165
- }
166
- catch (error) {
167
- logger_1.logger.error('Template generation failed:', error);
168
- throw error;
169
- }
170
- }
171
- async generateWebProject(outputPath) {
172
- const templatePath = path_1.default.join(this.templatesDir, 'web', this.config.template);
173
- await this.copyTemplate(templatePath, outputPath);
174
- }
175
- async generateMobileProject(outputPath) {
176
- const templatePath = path_1.default.join(this.templatesDir, 'mobile', this.config.template);
177
- await this.copyTemplate(templatePath, outputPath);
178
- }
179
- async copyTemplate(templatePath, outputPath) {
180
- const templateDir = path_1.default.join(templatePath, 'template');
181
- if (!(await fs_extra_1.default.pathExists(templateDir))) {
182
- throw new Error(`Template not found: ${templateDir}`);
183
- }
184
- await this.copyAndProcessFiles(templateDir, outputPath);
185
- }
186
- async copyAndProcessFiles(sourceDir, targetDir) {
187
- if (!(await fs_extra_1.default.pathExists(sourceDir))) {
188
- logger_1.logger.debug(`Template source directory not found: ${sourceDir}`);
189
- return;
190
- }
191
- const files = await (0, glob_1.glob)('**/*', {
192
- cwd: sourceDir,
193
- dot: true,
194
- nodir: true,
195
- });
196
- for (const file of files) {
197
- const sourcePath = path_1.default.join(sourceDir, file);
198
- const targetPath = path_1.default.join(targetDir, file);
199
- await fs_extra_1.default.ensureDir(path_1.default.dirname(targetPath));
200
- const content = await fs_extra_1.default.readFile(sourcePath, 'utf-8');
201
- if (this.isTextFile(file)) {
202
- const processedContent = mustache_1.default.render(content, this.context);
203
- await fs_extra_1.default.writeFile(targetPath, processedContent);
204
- }
205
- else {
206
- await fs_extra_1.default.copy(sourcePath, targetPath);
207
- }
208
- }
209
- }
210
- async copySharedResources(outputPath) {
211
- // Skip copying shared resources for UI-only templates
212
- if (this.config.template === 'ui-only') {
213
- logger_1.logger.debug('Skipping shared resources for UI-only template');
214
- return;
215
- }
216
- const sharedPath = path_1.default.join(this.templatesDir, 'shared');
217
- // Copy auth configuration
218
- const authPath = path_1.default.join(sharedPath, 'auth', this.config.auth);
219
- await this.copyAndProcessFiles(authPath, outputPath);
220
- // Copy theme configuration
221
- const themePath = path_1.default.join(sharedPath, 'themes', this.config.theme);
222
- await this.copyAndProcessFiles(themePath, outputPath);
223
- // Copy database configuration
224
- const dbPath = path_1.default.join(sharedPath, 'database', this.config.database);
225
- await this.copyAndProcessFiles(dbPath, outputPath);
226
- }
227
- isTextFile(filename) {
228
- const textExtensions = [
229
- '.js',
230
- '.jsx',
231
- '.ts',
232
- '.tsx',
233
- '.json',
234
- '.md',
235
- '.txt',
236
- '.yml',
237
- '.yaml',
238
- '.xml',
239
- '.html',
240
- '.css',
241
- '.scss',
242
- '.sass',
243
- '.less',
244
- '.env',
245
- '.gitignore',
246
- '.eslintrc',
247
- '.prettierrc',
248
- '.editorconfig',
249
- '.nvmrc',
250
- ];
251
- const ext = path_1.default.extname(filename).toLowerCase();
252
- return textExtensions.includes(ext) || !ext;
253
- }
254
- toPascalCase(str) {
255
- return str
256
- .replace(/[^a-zA-Z0-9]/g, ' ')
257
- .split(' ')
258
- .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
259
- .join('');
260
- }
261
- toCamelCase(str) {
262
- const pascal = this.toPascalCase(str);
263
- return pascal.charAt(0).toLowerCase() + pascal.slice(1);
264
- }
265
- toTitleCase(str) {
266
- return str
267
- .replace(/[^a-zA-Z0-9]/g, ' ')
268
- .split(' ')
269
- .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
270
- .join(' ');
271
- }
272
- }
273
- exports.TemplateGenerator = TemplateGenerator;
274
- //# sourceMappingURL=template-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-generator.js","sourceRoot":"","sources":["../../src/generators/template-generator.ts"],"names":[],"mappings":"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"}