@digilogiclabs/create-saas-app 1.5.1 → 1.5.3
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/dist/templates/web/ui-auth-payments/template/package-lock.json +12240 -0
- package/dist/templates/web/ui-auth-payments/template/src/components/client/login-form.tsx +1 -1
- package/dist/templates/web/ui-auth-payments/template/src/components/client/signup-form.tsx +3 -3
- package/dist/templates/web/ui-auth-payments/template/tsconfig.tsbuildinfo +1 -0
- package/dist/templates/web/ui-auth-payments-audio/template/middleware.ts +68 -0
- package/dist/templates/web/ui-auth-payments-audio/template/package-lock.json +12241 -0
- package/dist/templates/web/ui-auth-payments-audio/template/src/app/dashboard/layout.tsx +22 -0
- package/dist/templates/web/ui-auth-payments-audio/template/src/app/dashboard/page.tsx +183 -0
- package/dist/templates/web/ui-auth-payments-audio/template/src/app/login/page.tsx +2 -105
- package/dist/templates/web/ui-auth-payments-audio/template/src/app/signup/page.tsx +2 -124
- package/dist/templates/web/ui-auth-payments-audio/template/src/components/client/auth-status.tsx +52 -0
- package/dist/templates/web/ui-auth-payments-audio/template/src/components/client/login-form.tsx +144 -0
- package/dist/templates/web/ui-auth-payments-audio/template/src/components/client/signup-form.tsx +185 -0
- package/dist/templates/web/ui-auth-payments-audio/template/src/lib/actions/auth.ts +246 -0
- package/dist/templates/web/ui-auth-payments-audio/template/src/lib/actions/index.ts +14 -0
- package/dist/templates/web/ui-auth-payments-audio/template/src/lib/auth-server.ts +177 -0
- package/dist/templates/web/ui-auth-payments-audio/template/tsconfig.tsbuildinfo +1 -0
- package/dist/templates/web/ui-package-test/template/next-env.d.ts +5 -0
- package/package.json +4 -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/middleware.ts +68 -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/dashboard/layout.tsx +22 -0
- package/src/templates/web/ui-auth-payments-audio/template/src/app/dashboard/page.tsx +183 -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/src/templates/web/ui-auth-payments-audio/template/src/components/client/auth-status.tsx +52 -0
- package/src/templates/web/ui-auth-payments-audio/template/src/components/client/login-form.tsx +144 -0
- package/src/templates/web/ui-auth-payments-audio/template/src/components/client/signup-form.tsx +185 -0
- package/src/templates/web/ui-auth-payments-audio/template/src/lib/actions/auth.ts +246 -0
- 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/src/lib/auth-server.ts +177 -0
- package/src/templates/web/ui-auth-payments-audio/template/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1,48 @@
|
|
|
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.spinner = spinner;
|
|
7
|
+
exports.createSpinner = createSpinner;
|
|
8
|
+
exports.successSpinner = successSpinner;
|
|
9
|
+
exports.errorSpinner = errorSpinner;
|
|
10
|
+
exports.warnSpinner = warnSpinner;
|
|
11
|
+
const ora_1 = __importDefault(require("ora"));
|
|
12
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
13
|
+
function spinner(text) {
|
|
14
|
+
return (0, ora_1.default)({
|
|
15
|
+
text: chalk_1.default.gray(text),
|
|
16
|
+
spinner: 'dots',
|
|
17
|
+
color: 'cyan',
|
|
18
|
+
}).start();
|
|
19
|
+
}
|
|
20
|
+
function createSpinner(text) {
|
|
21
|
+
return (0, ora_1.default)({
|
|
22
|
+
text: chalk_1.default.gray(text),
|
|
23
|
+
spinner: 'dots',
|
|
24
|
+
color: 'cyan',
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function successSpinner(text) {
|
|
28
|
+
return (0, ora_1.default)({
|
|
29
|
+
text: chalk_1.default.green(text),
|
|
30
|
+
spinner: 'dots',
|
|
31
|
+
color: 'green',
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
function errorSpinner(text) {
|
|
35
|
+
return (0, ora_1.default)({
|
|
36
|
+
text: chalk_1.default.red(text),
|
|
37
|
+
spinner: 'dots',
|
|
38
|
+
color: 'red',
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
function warnSpinner(text) {
|
|
42
|
+
return (0, ora_1.default)({
|
|
43
|
+
text: chalk_1.default.yellow(text),
|
|
44
|
+
spinner: 'dots',
|
|
45
|
+
color: 'yellow',
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=spinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../../src/cli/utils/spinner.ts"],"names":[],"mappings":";;;;;AAGA,0BAMC;AAED,sCAMC;AAED,wCAMC;AAED,oCAMC;AAED,kCAMC;AAzCD,8CAA+B;AAC/B,kDAA0B;AAE1B,SAAgB,OAAO,CAAC,IAAY;IAClC,OAAO,IAAA,aAAG,EAAC;QACT,IAAI,EAAE,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QACtB,OAAO,EAAE,MAAM;QACf,KAAK,EAAE,MAAM;KACd,CAAC,CAAC,KAAK,EAAE,CAAC;AACb,CAAC;AAED,SAAgB,aAAa,CAAC,IAAY;IACxC,OAAO,IAAA,aAAG,EAAC;QACT,IAAI,EAAE,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QACtB,OAAO,EAAE,MAAM;QACf,KAAK,EAAE,MAAM;KACd,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,cAAc,CAAC,IAAY;IACzC,OAAO,IAAA,aAAG,EAAC;QACT,IAAI,EAAE,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC;QACvB,OAAO,EAAE,MAAM;QACf,KAAK,EAAE,OAAO;KACf,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,YAAY,CAAC,IAAY;IACvC,OAAO,IAAA,aAAG,EAAC;QACT,IAAI,EAAE,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QACrB,OAAO,EAAE,MAAM;QACf,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,WAAW,CAAC,IAAY;IACtC,OAAO,IAAA,aAAG,EAAC;QACT,IAAI,EAAE,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC;QACxB,OAAO,EAAE,MAAM;QACf,KAAK,EAAE,QAAQ;KAChB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface DependencyInfo {
|
|
2
|
+
name: string;
|
|
3
|
+
version: string;
|
|
4
|
+
latest?: string;
|
|
5
|
+
outdated?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function validateNodeVersion(): Promise<boolean>;
|
|
8
|
+
export declare function checkPackageExists(packageName: string): Promise<boolean>;
|
|
9
|
+
export declare function getLatestVersion(packageName: string): Promise<string | null>;
|
|
10
|
+
export declare function validateDependencies(dependencies: string[]): Promise<DependencyInfo[]>;
|
|
11
|
+
export declare function validateVersionRange(version: string): boolean;
|
|
12
|
+
export declare function isValidSemver(version: string): boolean;
|
|
13
|
+
export declare function compareVersions(version1: string, version2: string): number;
|
|
14
|
+
export declare function getVersionSuggestion(currentVersion: string, latestVersion: string): string;
|
|
15
|
+
//# sourceMappingURL=dependencies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../../src/cli/validators/dependencies.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAY5D;AAED,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO9E;AAED,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOlF;AAED,wBAAsB,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CA8B5F;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAM7D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM1E;AAED,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAwB1F"}
|
|
@@ -0,0 +1,108 @@
|
|
|
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.validateNodeVersion = validateNodeVersion;
|
|
7
|
+
exports.checkPackageExists = checkPackageExists;
|
|
8
|
+
exports.getLatestVersion = getLatestVersion;
|
|
9
|
+
exports.validateDependencies = validateDependencies;
|
|
10
|
+
exports.validateVersionRange = validateVersionRange;
|
|
11
|
+
exports.isValidSemver = isValidSemver;
|
|
12
|
+
exports.compareVersions = compareVersions;
|
|
13
|
+
exports.getVersionSuggestion = getVersionSuggestion;
|
|
14
|
+
const semver_1 = __importDefault(require("semver"));
|
|
15
|
+
const execa_1 = __importDefault(require("execa"));
|
|
16
|
+
const logger_1 = require("../utils/logger");
|
|
17
|
+
async function validateNodeVersion() {
|
|
18
|
+
const nodeVersion = process.version;
|
|
19
|
+
const minVersion = '16.0.0';
|
|
20
|
+
if (!semver_1.default.gte(nodeVersion, minVersion)) {
|
|
21
|
+
logger_1.logger.error(`Node.js version ${minVersion} or higher is required. Current version: ${nodeVersion}`);
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
async function checkPackageExists(packageName) {
|
|
27
|
+
try {
|
|
28
|
+
await (0, execa_1.default)('npm', ['view', packageName, 'version']);
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
async function getLatestVersion(packageName) {
|
|
36
|
+
try {
|
|
37
|
+
const result = await (0, execa_1.default)('npm', ['view', packageName, 'version']);
|
|
38
|
+
return result.stdout.trim();
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
async function validateDependencies(dependencies) {
|
|
45
|
+
const results = [];
|
|
46
|
+
for (const dep of dependencies) {
|
|
47
|
+
const [name, version] = dep.includes('@') && !dep.startsWith('@') ? dep.split('@') : [dep, 'latest'];
|
|
48
|
+
try {
|
|
49
|
+
const latest = await getLatestVersion(name);
|
|
50
|
+
if (!latest) {
|
|
51
|
+
logger_1.logger.warn(`Package "${name}" not found in npm registry`);
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
const resolvedVersion = version === 'latest' ? latest : version;
|
|
55
|
+
const outdated = version !== 'latest' && semver_1.default.lt(resolvedVersion, latest);
|
|
56
|
+
results.push({
|
|
57
|
+
name,
|
|
58
|
+
version: resolvedVersion,
|
|
59
|
+
latest,
|
|
60
|
+
outdated,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
logger_1.logger.warn(`Failed to validate package "${name}":`, error);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return results;
|
|
68
|
+
}
|
|
69
|
+
function validateVersionRange(version) {
|
|
70
|
+
try {
|
|
71
|
+
return semver_1.default.validRange(version) !== null;
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function isValidSemver(version) {
|
|
78
|
+
return semver_1.default.valid(version) !== null;
|
|
79
|
+
}
|
|
80
|
+
function compareVersions(version1, version2) {
|
|
81
|
+
try {
|
|
82
|
+
return semver_1.default.compare(version1, version2);
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return 0;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function getVersionSuggestion(currentVersion, latestVersion) {
|
|
89
|
+
if (!isValidSemver(currentVersion) || !isValidSemver(latestVersion)) {
|
|
90
|
+
return latestVersion;
|
|
91
|
+
}
|
|
92
|
+
const current = semver_1.default.parse(currentVersion);
|
|
93
|
+
const latest = semver_1.default.parse(latestVersion);
|
|
94
|
+
if (!current || !latest) {
|
|
95
|
+
return latestVersion;
|
|
96
|
+
}
|
|
97
|
+
// If major version is different, suggest latest
|
|
98
|
+
if (current.major !== latest.major) {
|
|
99
|
+
return `^${latestVersion}`;
|
|
100
|
+
}
|
|
101
|
+
// If minor version is different, suggest latest minor
|
|
102
|
+
if (current.minor !== latest.minor) {
|
|
103
|
+
return `~${latestVersion}`;
|
|
104
|
+
}
|
|
105
|
+
// If only patch is different, suggest exact latest
|
|
106
|
+
return latestVersion;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=dependencies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../src/cli/validators/dependencies.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/validators/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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-name"), exports);
|
|
18
|
+
__exportStar(require("./dependencies"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/validators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,iDAA+B"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function validateProjectName(name: string): boolean;
|
|
2
|
+
export declare function validateProjectPath(projectPath: string): Promise<boolean>;
|
|
3
|
+
export declare function sanitizeProjectName(name: string): string;
|
|
4
|
+
export declare function suggestProjectName(name: string): string;
|
|
5
|
+
//# sourceMappingURL=project-name.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-name.d.ts","sourceRoot":"","sources":["../../../src/cli/validators/project-name.ts"],"names":[],"mappings":"AAKA,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAiGzD;AAED,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAkC/E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMxD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgBvD"}
|
|
@@ -0,0 +1,151 @@
|
|
|
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.validateProjectName = validateProjectName;
|
|
7
|
+
exports.validateProjectPath = validateProjectPath;
|
|
8
|
+
exports.sanitizeProjectName = sanitizeProjectName;
|
|
9
|
+
exports.suggestProjectName = suggestProjectName;
|
|
10
|
+
const validate_npm_package_name_1 = __importDefault(require("validate-npm-package-name"));
|
|
11
|
+
const path_1 = __importDefault(require("path"));
|
|
12
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
13
|
+
const logger_1 = require("../utils/logger");
|
|
14
|
+
function validateProjectName(name) {
|
|
15
|
+
// Check if name is empty
|
|
16
|
+
if (!name || name.trim().length === 0) {
|
|
17
|
+
logger_1.logger.error('Project name cannot be empty');
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
// Check npm package name validity
|
|
21
|
+
const validation = (0, validate_npm_package_name_1.default)(name);
|
|
22
|
+
if (!validation.validForNewPackages) {
|
|
23
|
+
logger_1.logger.error('Invalid project name:');
|
|
24
|
+
if (validation.errors) {
|
|
25
|
+
validation.errors.forEach((error) => logger_1.logger.error(` • ${error}`));
|
|
26
|
+
}
|
|
27
|
+
if (validation.warnings) {
|
|
28
|
+
validation.warnings.forEach((warning) => logger_1.logger.warn(` • ${warning}`));
|
|
29
|
+
}
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
// Check for reserved names
|
|
33
|
+
const reservedNames = [
|
|
34
|
+
'node_modules',
|
|
35
|
+
'package.json',
|
|
36
|
+
'package-lock.json',
|
|
37
|
+
'yarn.lock',
|
|
38
|
+
'pnpm-lock.yaml',
|
|
39
|
+
'.git',
|
|
40
|
+
'.gitignore',
|
|
41
|
+
'README.md',
|
|
42
|
+
'LICENSE',
|
|
43
|
+
'src',
|
|
44
|
+
'dist',
|
|
45
|
+
'build',
|
|
46
|
+
'public',
|
|
47
|
+
'static',
|
|
48
|
+
'assets',
|
|
49
|
+
'components',
|
|
50
|
+
'pages',
|
|
51
|
+
'app',
|
|
52
|
+
'lib',
|
|
53
|
+
'utils',
|
|
54
|
+
'hooks',
|
|
55
|
+
'types',
|
|
56
|
+
'styles',
|
|
57
|
+
'config',
|
|
58
|
+
'test',
|
|
59
|
+
'tests',
|
|
60
|
+
'__tests__',
|
|
61
|
+
'spec',
|
|
62
|
+
'specs',
|
|
63
|
+
'docs',
|
|
64
|
+
'documentation',
|
|
65
|
+
];
|
|
66
|
+
if (reservedNames.includes(name.toLowerCase())) {
|
|
67
|
+
logger_1.logger.error(`Project name "${name}" is reserved. Please choose a different name.`);
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
// Check for common problematic patterns
|
|
71
|
+
if (name.startsWith('.')) {
|
|
72
|
+
logger_1.logger.error('Project name cannot start with a dot');
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
if (name.startsWith('-')) {
|
|
76
|
+
logger_1.logger.error('Project name cannot start with a hyphen');
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
if (name.endsWith('-')) {
|
|
80
|
+
logger_1.logger.error('Project name cannot end with a hyphen');
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
if (name.includes('..')) {
|
|
84
|
+
logger_1.logger.error('Project name cannot contain consecutive dots');
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
if (name.includes('//')) {
|
|
88
|
+
logger_1.logger.error('Project name cannot contain consecutive slashes');
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
// Check length
|
|
92
|
+
if (name.length > 214) {
|
|
93
|
+
logger_1.logger.error('Project name is too long (max 214 characters)');
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
async function validateProjectPath(projectPath) {
|
|
99
|
+
try {
|
|
100
|
+
// Check if directory already exists
|
|
101
|
+
if (await fs_extra_1.default.pathExists(projectPath)) {
|
|
102
|
+
const stats = await fs_extra_1.default.stat(projectPath);
|
|
103
|
+
if (stats.isDirectory()) {
|
|
104
|
+
const files = await fs_extra_1.default.readdir(projectPath);
|
|
105
|
+
if (files.length > 0) {
|
|
106
|
+
logger_1.logger.error(`Directory "${path_1.default.basename(projectPath)}" already exists and is not empty`);
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
logger_1.logger.error(`A file with the name "${path_1.default.basename(projectPath)}" already exists`);
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// Check if parent directory is writable
|
|
116
|
+
const parentDir = path_1.default.dirname(projectPath);
|
|
117
|
+
try {
|
|
118
|
+
await fs_extra_1.default.access(parentDir, fs_extra_1.default.constants.W_OK);
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
logger_1.logger.error(`Cannot write to directory "${parentDir}"`);
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
|
+
return true;
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
logger_1.logger.error('Failed to validate project path:', error);
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
function sanitizeProjectName(name) {
|
|
132
|
+
return name
|
|
133
|
+
.toLowerCase()
|
|
134
|
+
.replace(/[^a-z0-9-]/g, '-')
|
|
135
|
+
.replace(/^-+|-+$/g, '')
|
|
136
|
+
.replace(/-+/g, '-');
|
|
137
|
+
}
|
|
138
|
+
function suggestProjectName(name) {
|
|
139
|
+
const sanitized = sanitizeProjectName(name);
|
|
140
|
+
if (validateProjectName(sanitized)) {
|
|
141
|
+
return sanitized;
|
|
142
|
+
}
|
|
143
|
+
// If still invalid, add a prefix
|
|
144
|
+
const suggested = `my-${sanitized}`;
|
|
145
|
+
if (validateProjectName(suggested)) {
|
|
146
|
+
return suggested;
|
|
147
|
+
}
|
|
148
|
+
// Last resort
|
|
149
|
+
return 'my-saas-app';
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=project-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-name.js","sourceRoot":"","sources":["../../../src/cli/validators/project-name.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface FileProcessorOptions {
|
|
2
|
+
templateVariables: Record<string, unknown>;
|
|
3
|
+
fileExtensions: string[];
|
|
4
|
+
ignorePatterns: string[];
|
|
5
|
+
preserveBinaryFiles: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare class FileProcessor {
|
|
8
|
+
private options;
|
|
9
|
+
constructor(options?: Partial<FileProcessorOptions>);
|
|
10
|
+
processFile(sourcePath: string, targetPath: string): Promise<void>;
|
|
11
|
+
processDirectory(sourceDir: string, targetDir: string): Promise<void>;
|
|
12
|
+
private processTemplateFile;
|
|
13
|
+
private copyBinaryFile;
|
|
14
|
+
private shouldProcessAsTemplate;
|
|
15
|
+
private shouldIgnoreFile;
|
|
16
|
+
private getFilesRecursively;
|
|
17
|
+
setTemplateVariables(variables: Record<string, unknown>): void;
|
|
18
|
+
addFileExtension(extension: string): void;
|
|
19
|
+
addIgnorePattern(pattern: string): void;
|
|
20
|
+
validateTemplate(templatePath: string): Promise<boolean>;
|
|
21
|
+
getTemplateInfo(templatePath: string): Promise<{
|
|
22
|
+
name: string;
|
|
23
|
+
description: string;
|
|
24
|
+
version: string;
|
|
25
|
+
dependencies: string[];
|
|
26
|
+
} | null>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=file-processor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-processor.d.ts","sourceRoot":"","sources":["../../src/generators/file-processor.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,oBAAoB;IACnC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAuB;gBAE1B,OAAO,GAAE,OAAO,CAAC,oBAAoB,CAAM;IAyC1C,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBlE,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAyBpE,mBAAmB;YAanB,cAAc;IAU5B,OAAO,CAAC,uBAAuB;IAK/B,OAAO,CAAC,gBAAgB;YAeV,mBAAmB;IAoB1B,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI9D,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAMzC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMjC,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BxD,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;QAC1D,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,GAAG,IAAI,CAAC;CAqBV"}
|
|
@@ -0,0 +1,203 @@
|
|
|
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.FileProcessor = 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 logger_1 = require("../cli/utils/logger");
|
|
11
|
+
class FileProcessor {
|
|
12
|
+
constructor(options = {}) {
|
|
13
|
+
this.options = {
|
|
14
|
+
templateVariables: {},
|
|
15
|
+
fileExtensions: [
|
|
16
|
+
'.js',
|
|
17
|
+
'.jsx',
|
|
18
|
+
'.ts',
|
|
19
|
+
'.tsx',
|
|
20
|
+
'.json',
|
|
21
|
+
'.md',
|
|
22
|
+
'.txt',
|
|
23
|
+
'.yml',
|
|
24
|
+
'.yaml',
|
|
25
|
+
'.xml',
|
|
26
|
+
'.html',
|
|
27
|
+
'.css',
|
|
28
|
+
'.scss',
|
|
29
|
+
'.sass',
|
|
30
|
+
'.less',
|
|
31
|
+
'.env',
|
|
32
|
+
'.gitignore',
|
|
33
|
+
'.eslintrc',
|
|
34
|
+
'.prettierrc',
|
|
35
|
+
'.editorconfig',
|
|
36
|
+
'.nvmrc',
|
|
37
|
+
'.toml',
|
|
38
|
+
],
|
|
39
|
+
ignorePatterns: [
|
|
40
|
+
'node_modules/**',
|
|
41
|
+
'.git/**',
|
|
42
|
+
'dist/**',
|
|
43
|
+
'build/**',
|
|
44
|
+
'*.log',
|
|
45
|
+
'.DS_Store',
|
|
46
|
+
'Thumbs.db',
|
|
47
|
+
],
|
|
48
|
+
preserveBinaryFiles: true,
|
|
49
|
+
...options,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
async processFile(sourcePath, targetPath) {
|
|
53
|
+
try {
|
|
54
|
+
// Ensure target directory exists
|
|
55
|
+
await fs_extra_1.default.ensureDir(path_1.default.dirname(targetPath));
|
|
56
|
+
// Check if file should be processed as template
|
|
57
|
+
if (this.shouldProcessAsTemplate(sourcePath)) {
|
|
58
|
+
await this.processTemplateFile(sourcePath, targetPath);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
await this.copyBinaryFile(sourcePath, targetPath);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
logger_1.logger.error(`Failed to process file ${sourcePath}:`, error);
|
|
66
|
+
throw error;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
async processDirectory(sourceDir, targetDir) {
|
|
70
|
+
try {
|
|
71
|
+
// Ensure target directory exists
|
|
72
|
+
await fs_extra_1.default.ensureDir(targetDir);
|
|
73
|
+
// Get all files in source directory
|
|
74
|
+
const files = await this.getFilesRecursively(sourceDir);
|
|
75
|
+
for (const file of files) {
|
|
76
|
+
const sourcePath = path_1.default.join(sourceDir, file);
|
|
77
|
+
const targetPath = path_1.default.join(targetDir, file);
|
|
78
|
+
// Skip ignored files
|
|
79
|
+
if (this.shouldIgnoreFile(file)) {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
await this.processFile(sourcePath, targetPath);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
logger_1.logger.error(`Failed to process directory ${sourceDir}:`, error);
|
|
87
|
+
throw error;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
async processTemplateFile(sourcePath, targetPath) {
|
|
91
|
+
try {
|
|
92
|
+
const content = await fs_extra_1.default.readFile(sourcePath, 'utf-8');
|
|
93
|
+
const processedContent = mustache_1.default.render(content, this.options.templateVariables);
|
|
94
|
+
await fs_extra_1.default.writeFile(targetPath, processedContent);
|
|
95
|
+
logger_1.logger.debug(`Processed template file: ${path_1.default.basename(sourcePath)}`);
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
logger_1.logger.error(`Failed to process template file ${sourcePath}:`, error);
|
|
99
|
+
throw error;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
async copyBinaryFile(sourcePath, targetPath) {
|
|
103
|
+
try {
|
|
104
|
+
await fs_extra_1.default.copy(sourcePath, targetPath);
|
|
105
|
+
logger_1.logger.debug(`Copied binary file: ${path_1.default.basename(sourcePath)}`);
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
logger_1.logger.error(`Failed to copy binary file ${sourcePath}:`, error);
|
|
109
|
+
throw error;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
shouldProcessAsTemplate(filePath) {
|
|
113
|
+
const ext = path_1.default.extname(filePath).toLowerCase();
|
|
114
|
+
return this.options.fileExtensions.includes(ext) || !ext;
|
|
115
|
+
}
|
|
116
|
+
shouldIgnoreFile(filePath) {
|
|
117
|
+
return this.options.ignorePatterns.some((pattern) => {
|
|
118
|
+
// Simple pattern matching (could be enhanced with glob patterns)
|
|
119
|
+
if (pattern.endsWith('/**')) {
|
|
120
|
+
const dir = pattern.slice(0, -3);
|
|
121
|
+
return filePath.startsWith(dir + '/');
|
|
122
|
+
}
|
|
123
|
+
if (pattern.startsWith('*.')) {
|
|
124
|
+
const ext = pattern.slice(1);
|
|
125
|
+
return filePath.endsWith(ext);
|
|
126
|
+
}
|
|
127
|
+
return filePath.includes(pattern);
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
async getFilesRecursively(dir) {
|
|
131
|
+
const files = [];
|
|
132
|
+
const items = await fs_extra_1.default.readdir(dir);
|
|
133
|
+
for (const item of items) {
|
|
134
|
+
const fullPath = path_1.default.join(dir, item);
|
|
135
|
+
const stat = await fs_extra_1.default.stat(fullPath);
|
|
136
|
+
if (stat.isDirectory()) {
|
|
137
|
+
const subFiles = await this.getFilesRecursively(fullPath);
|
|
138
|
+
files.push(...subFiles.map((f) => path_1.default.join(item, f)));
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
files.push(item);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return files;
|
|
145
|
+
}
|
|
146
|
+
setTemplateVariables(variables) {
|
|
147
|
+
this.options.templateVariables = { ...this.options.templateVariables, ...variables };
|
|
148
|
+
}
|
|
149
|
+
addFileExtension(extension) {
|
|
150
|
+
if (!this.options.fileExtensions.includes(extension)) {
|
|
151
|
+
this.options.fileExtensions.push(extension);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
addIgnorePattern(pattern) {
|
|
155
|
+
if (!this.options.ignorePatterns.includes(pattern)) {
|
|
156
|
+
this.options.ignorePatterns.push(pattern);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
async validateTemplate(templatePath) {
|
|
160
|
+
try {
|
|
161
|
+
// Check if template directory exists
|
|
162
|
+
if (!(await fs_extra_1.default.pathExists(templatePath))) {
|
|
163
|
+
logger_1.logger.error(`Template directory not found: ${templatePath}`);
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
// Check if template has required files
|
|
167
|
+
const requiredFiles = ['package.json'];
|
|
168
|
+
for (const file of requiredFiles) {
|
|
169
|
+
const filePath = path_1.default.join(templatePath, file);
|
|
170
|
+
if (!(await fs_extra_1.default.pathExists(filePath))) {
|
|
171
|
+
logger_1.logger.error(`Required template file missing: ${file}`);
|
|
172
|
+
return false;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return true;
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
logger_1.logger.error('Template validation failed:', error);
|
|
179
|
+
return false;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
async getTemplateInfo(templatePath) {
|
|
183
|
+
try {
|
|
184
|
+
const packageJsonPath = path_1.default.join(templatePath, 'package.json');
|
|
185
|
+
if (!(await fs_extra_1.default.pathExists(packageJsonPath))) {
|
|
186
|
+
return null;
|
|
187
|
+
}
|
|
188
|
+
const packageJson = await fs_extra_1.default.readJson(packageJsonPath);
|
|
189
|
+
return {
|
|
190
|
+
name: packageJson.name || 'Unknown',
|
|
191
|
+
description: packageJson.description || 'No description',
|
|
192
|
+
version: packageJson.version || '1.0.0',
|
|
193
|
+
dependencies: Object.keys(packageJson.dependencies || {}),
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
catch (error) {
|
|
197
|
+
logger_1.logger.error('Failed to get template info:', error);
|
|
198
|
+
return null;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
exports.FileProcessor = FileProcessor;
|
|
203
|
+
//# sourceMappingURL=file-processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-processor.js","sourceRoot":"","sources":["../../src/generators/file-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC"}
|