create-warlock 4.0.113 → 4.0.115
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/cjs/commands/create-new-app/index.d.ts +1 -1
- package/cjs/commands/create-new-app/index.d.ts.map +1 -1
- package/cjs/commands/create-new-app/index.js +86 -41
- package/cjs/commands/create-new-app/index.js.map +1 -1
- package/cjs/commands/create-new-app/types.d.ts +8 -1
- package/cjs/commands/create-new-app/types.d.ts.map +1 -1
- package/cjs/commands/create-warlock-app/index.d.ts +1 -1
- package/cjs/commands/create-warlock-app/index.d.ts.map +1 -1
- package/cjs/commands/create-warlock-app/index.js +48 -44
- package/cjs/commands/create-warlock-app/index.js.map +1 -1
- package/cjs/features/database-drivers.d.ts +31 -0
- package/cjs/features/database-drivers.d.ts.map +1 -0
- package/cjs/features/database-drivers.js +53 -0
- package/cjs/features/database-drivers.js.map +1 -0
- package/cjs/features/features-map.d.ts +38 -0
- package/cjs/features/features-map.d.ts.map +1 -0
- package/cjs/features/features-map.js +120 -0
- package/cjs/features/features-map.js.map +1 -0
- package/cjs/helpers/app.d.ts +24 -6
- package/cjs/helpers/app.d.ts.map +1 -1
- package/cjs/helpers/app.js +77 -6
- package/cjs/helpers/app.js.map +1 -1
- package/cjs/helpers/package-manager.d.ts +13 -1
- package/cjs/helpers/package-manager.d.ts.map +1 -1
- package/cjs/helpers/package-manager.js +91 -9
- package/cjs/helpers/package-manager.js.map +1 -1
- package/cjs/helpers/project-builder-helpers.js +2 -9
- package/cjs/helpers/project-builder-helpers.js.map +1 -1
- package/cjs/index.d.ts.map +1 -1
- package/cjs/index.js +2 -4
- package/cjs/index.js.map +1 -1
- package/cjs/ui/banner.d.ts +29 -0
- package/cjs/ui/banner.d.ts.map +1 -0
- package/cjs/ui/banner.js +142 -0
- package/cjs/ui/banner.js.map +1 -0
- package/cjs/ui/spinners.d.ts +18 -0
- package/cjs/ui/spinners.d.ts.map +1 -0
- package/cjs/ui/spinners.js +17 -0
- package/cjs/ui/spinners.js.map +1 -0
- package/esm/commands/create-new-app/index.d.ts +1 -1
- package/esm/commands/create-new-app/index.d.ts.map +1 -1
- package/esm/commands/create-new-app/index.js +86 -41
- package/esm/commands/create-new-app/index.js.map +1 -1
- package/esm/commands/create-new-app/types.d.ts +8 -1
- package/esm/commands/create-new-app/types.d.ts.map +1 -1
- package/esm/commands/create-warlock-app/index.d.ts +1 -1
- package/esm/commands/create-warlock-app/index.d.ts.map +1 -1
- package/esm/commands/create-warlock-app/index.js +48 -44
- package/esm/commands/create-warlock-app/index.js.map +1 -1
- package/esm/features/database-drivers.d.ts +31 -0
- package/esm/features/database-drivers.d.ts.map +1 -0
- package/esm/features/database-drivers.js +53 -0
- package/esm/features/database-drivers.js.map +1 -0
- package/esm/features/features-map.d.ts +38 -0
- package/esm/features/features-map.d.ts.map +1 -0
- package/esm/features/features-map.js +120 -0
- package/esm/features/features-map.js.map +1 -0
- package/esm/helpers/app.d.ts +24 -6
- package/esm/helpers/app.d.ts.map +1 -1
- package/esm/helpers/app.js +76 -5
- package/esm/helpers/app.js.map +1 -1
- package/esm/helpers/package-manager.d.ts +13 -1
- package/esm/helpers/package-manager.d.ts.map +1 -1
- package/esm/helpers/package-manager.js +91 -9
- package/esm/helpers/package-manager.js.map +1 -1
- package/esm/helpers/project-builder-helpers.js +2 -9
- package/esm/helpers/project-builder-helpers.js.map +1 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +2 -4
- package/esm/index.js.map +1 -1
- package/esm/ui/banner.d.ts +29 -0
- package/esm/ui/banner.d.ts.map +1 -0
- package/esm/ui/banner.js +142 -0
- package/esm/ui/banner.js.map +1 -0
- package/esm/ui/spinners.d.ts +18 -0
- package/esm/ui/spinners.d.ts.map +1 -0
- package/esm/ui/spinners.js +17 -0
- package/esm/ui/spinners.js.map +1 -0
- package/package.json +2 -1
- package/templates/warlock/package.json +7 -7
- package/templates/warlock/src/config/app.ts +1 -1
- package/templates/warlock/src/config/auth.ts +1 -1
- package/templates/warlock/src/config/cache.ts +1 -2
- package/templates/warlock/src/config/database.ts +1 -1
- package/templates/warlock/src/config/http.ts +1 -1
- package/templates/warlock/src/config/mail.ts +1 -1
- package/templates/warlock/src/config/storage.ts +1 -2
- package/templates/warlock/src/config/google.ts +0 -22
- package/templates/warlock/src/config/notifications.ts +0 -11
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
const databaseDrivers = [
|
|
2
|
+
{
|
|
3
|
+
value: "mongodb",
|
|
4
|
+
label: "MongoDB",
|
|
5
|
+
package: "mongodb",
|
|
6
|
+
packageVersion: "^7.0.0",
|
|
7
|
+
defaultPort: 27017,
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
value: "postgres",
|
|
11
|
+
label: "PostgreSQL",
|
|
12
|
+
package: "pg",
|
|
13
|
+
packageVersion: "^8.11.0",
|
|
14
|
+
defaultPort: 5432,
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
value: "mysql",
|
|
18
|
+
label: "MySQL (Coming Soon)",
|
|
19
|
+
package: "mysql2",
|
|
20
|
+
packageVersion: "^3.5.0",
|
|
21
|
+
defaultPort: 3306,
|
|
22
|
+
disabled: true,
|
|
23
|
+
hint: "MySQL support coming in a future release",
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
/**
|
|
27
|
+
* Get database driver options for the select prompt
|
|
28
|
+
*/
|
|
29
|
+
function getDatabaseDriverOptions() {
|
|
30
|
+
return databaseDrivers.map(driver => ({
|
|
31
|
+
value: driver.value,
|
|
32
|
+
label: driver.label,
|
|
33
|
+
hint: driver.hint,
|
|
34
|
+
disabled: driver.disabled,
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Get database driver config by value
|
|
39
|
+
*/
|
|
40
|
+
function getDatabaseDriver(value) {
|
|
41
|
+
return databaseDrivers.find(driver => driver.value === value);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get database driver dependency
|
|
45
|
+
*/
|
|
46
|
+
function getDatabaseDependency(driverValue) {
|
|
47
|
+
const driver = getDatabaseDriver(driverValue);
|
|
48
|
+
if (!driver)
|
|
49
|
+
return {};
|
|
50
|
+
return {
|
|
51
|
+
[driver.package]: driver.packageVersion,
|
|
52
|
+
};
|
|
53
|
+
}export{databaseDrivers,getDatabaseDependency,getDatabaseDriver,getDatabaseDriverOptions};//# sourceMappingURL=database-drivers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-drivers.js","sources":["../../src/features/database-drivers.ts"],"sourcesContent":[null],"names":[],"mappings":"AAaa,MAAA,eAAe,GAAqB;AAC/C,IAAA;AACE,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,WAAW,EAAE,KAAK;AACnB,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,OAAO,EAAE,IAAI;AACb,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,WAAW,EAAE,IAAI;AAClB,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,qBAAqB;AAC5B,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,WAAW,EAAE,IAAI;AACjB,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,IAAI,EAAE,0CAA0C;AACjD,KAAA;EACD;AAEF;;AAEG;SACa,wBAAwB,GAAA;IACtC,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,KAAK;QACpC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;AAC1B,KAAA,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;AAEG;AACG,SAAU,iBAAiB,CAAC,KAAa,EAAA;AAC7C,IAAA,OAAO,eAAe,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AAChE,CAAC;AAED;;AAEG;AACG,SAAU,qBAAqB,CACnC,WAAmB,EAAA;AAEnB,IAAA,MAAM,MAAM,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;AAC9C,IAAA,IAAI,CAAC,MAAM;AAAE,QAAA,OAAO,EAAE,CAAC;IAEvB,OAAO;AACL,QAAA,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,cAAc;KACxC,CAAC;AACJ"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hardcoded features map with dependencies, devDependencies, and config stubs
|
|
3
|
+
*/
|
|
4
|
+
export type FeatureConfig = {
|
|
5
|
+
label: string;
|
|
6
|
+
description: string;
|
|
7
|
+
dependencies: Record<string, string>;
|
|
8
|
+
devDependencies?: Record<string, string>;
|
|
9
|
+
configStub?: {
|
|
10
|
+
name: string;
|
|
11
|
+
content: string;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export declare const communicatorConfigStub = "import { CommunicatorsConfigurations } from \"@warlock.js/herald\";\n\nconst communicatorsConfigurations: CommunicatorsConfigurations = {\n host: process.env.RABBITMQ_HOST || \"localhost\",\n port: Number(process.env.RABBITMQ_PORT) || 5672,\n username: process.env.RABBITMQ_USER || \"guest\",\n password: process.env.RABBITMQ_PASSWORD || \"guest\",\n};\n\nexport default communicatorsConfigurations;\n";
|
|
15
|
+
export declare const featuresMap: Record<string, FeatureConfig>;
|
|
16
|
+
/**
|
|
17
|
+
* Get feature options for the multiselect prompt
|
|
18
|
+
*/
|
|
19
|
+
export declare function getFeatureOptions(): {
|
|
20
|
+
value: string;
|
|
21
|
+
label: string;
|
|
22
|
+
hint: string;
|
|
23
|
+
}[];
|
|
24
|
+
/**
|
|
25
|
+
* Get all dependencies for selected features
|
|
26
|
+
*/
|
|
27
|
+
export declare function getFeatureDependencies(selectedFeatures: string[]): {
|
|
28
|
+
dependencies: Record<string, string>;
|
|
29
|
+
devDependencies: Record<string, string>;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Get config stubs for selected features
|
|
33
|
+
*/
|
|
34
|
+
export declare function getFeatureConfigStubs(selectedFeatures: string[]): Array<{
|
|
35
|
+
name: string;
|
|
36
|
+
content: string;
|
|
37
|
+
}>;
|
|
38
|
+
//# sourceMappingURL=features-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features-map.d.ts","sourceRoot":"","sources":["../../src/features/features-map.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,UAAU,CAAC,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,sBAAsB,0ZAUlC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAqErD,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB;;;;IAMhC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,gBAAgB,EAAE,MAAM,EAAE,GAAG;IAClE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC,CAeA;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,gBAAgB,EAAE,MAAM,EAAE,GACzB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAW1C"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
const communicatorConfigStub = `import { CommunicatorsConfigurations } from "@warlock.js/herald";
|
|
2
|
+
|
|
3
|
+
const communicatorsConfigurations: CommunicatorsConfigurations = {
|
|
4
|
+
host: process.env.RABBITMQ_HOST || "localhost",
|
|
5
|
+
port: Number(process.env.RABBITMQ_PORT) || 5672,
|
|
6
|
+
username: process.env.RABBITMQ_USER || "guest",
|
|
7
|
+
password: process.env.RABBITMQ_PASSWORD || "guest",
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export default communicatorsConfigurations;
|
|
11
|
+
`;
|
|
12
|
+
const featuresMap = {
|
|
13
|
+
react: {
|
|
14
|
+
label: "React (SSR for mails)",
|
|
15
|
+
description: "React and ReactDOM for server-side rendering, useful for email templates",
|
|
16
|
+
dependencies: {
|
|
17
|
+
react: "^19.0.0",
|
|
18
|
+
"react-dom": "^19.0.0",
|
|
19
|
+
},
|
|
20
|
+
devDependencies: {
|
|
21
|
+
"@types/react": "^19.0.0",
|
|
22
|
+
"@types/react-dom": "^19.0.0",
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
image: {
|
|
26
|
+
label: "Image processing (Sharp)",
|
|
27
|
+
description: "Sharp for image manipulation and optimization",
|
|
28
|
+
dependencies: {
|
|
29
|
+
sharp: "^0.34.0",
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
mail: {
|
|
33
|
+
label: "Mail (Nodemailer)",
|
|
34
|
+
description: "Nodemailer for sending emails",
|
|
35
|
+
dependencies: {
|
|
36
|
+
nodemailer: "^6.9.0",
|
|
37
|
+
},
|
|
38
|
+
devDependencies: {
|
|
39
|
+
"@types/nodemailer": "^6.4.0",
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
redis: {
|
|
43
|
+
label: "Redis cache",
|
|
44
|
+
description: "Redis client for caching",
|
|
45
|
+
dependencies: {
|
|
46
|
+
redis: "^4.6.0",
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
scheduler: {
|
|
50
|
+
label: "Scheduler",
|
|
51
|
+
description: "Warlock scheduler for background tasks and cron jobs",
|
|
52
|
+
dependencies: {
|
|
53
|
+
"@warlock.js/scheduler": "~4.0.0",
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
s3: {
|
|
57
|
+
label: "S3 storage",
|
|
58
|
+
description: "AWS S3 for cloud file storage",
|
|
59
|
+
dependencies: {
|
|
60
|
+
"@aws-sdk/client-s3": "^3.0.0",
|
|
61
|
+
"@aws-sdk/lib-storage": "^3.0.0",
|
|
62
|
+
"@aws-sdk/s3-request-presigner": "^3.0.0",
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
herald: {
|
|
66
|
+
label: "Herald (RabbitMQ)",
|
|
67
|
+
description: "Message broker for event-driven architecture",
|
|
68
|
+
dependencies: {
|
|
69
|
+
"@warlock.js/herald": "~4.0.0",
|
|
70
|
+
amqplib: "^0.10.0",
|
|
71
|
+
},
|
|
72
|
+
devDependencies: {
|
|
73
|
+
"@types/amqplib": "^0.10.0",
|
|
74
|
+
},
|
|
75
|
+
configStub: {
|
|
76
|
+
name: "communicator",
|
|
77
|
+
content: communicatorConfigStub,
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Get feature options for the multiselect prompt
|
|
83
|
+
*/
|
|
84
|
+
function getFeatureOptions() {
|
|
85
|
+
return Object.entries(featuresMap).map(([key, config]) => ({
|
|
86
|
+
value: key,
|
|
87
|
+
label: config.label,
|
|
88
|
+
hint: config.description,
|
|
89
|
+
}));
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Get all dependencies for selected features
|
|
93
|
+
*/
|
|
94
|
+
function getFeatureDependencies(selectedFeatures) {
|
|
95
|
+
const dependencies = {};
|
|
96
|
+
const devDependencies = {};
|
|
97
|
+
for (const feature of selectedFeatures) {
|
|
98
|
+
const config = featuresMap[feature];
|
|
99
|
+
if (config) {
|
|
100
|
+
Object.assign(dependencies, config.dependencies);
|
|
101
|
+
if (config.devDependencies) {
|
|
102
|
+
Object.assign(devDependencies, config.devDependencies);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return { dependencies, devDependencies };
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Get config stubs for selected features
|
|
110
|
+
*/
|
|
111
|
+
function getFeatureConfigStubs(selectedFeatures) {
|
|
112
|
+
const stubs = [];
|
|
113
|
+
for (const feature of selectedFeatures) {
|
|
114
|
+
const config = featuresMap[feature];
|
|
115
|
+
if (config?.configStub) {
|
|
116
|
+
stubs.push(config.configStub);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return stubs;
|
|
120
|
+
}export{communicatorConfigStub,featuresMap,getFeatureConfigStubs,getFeatureDependencies,getFeatureOptions};//# sourceMappingURL=features-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features-map.js","sources":["../../src/features/features-map.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/esm/helpers/app.d.ts
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
import { Application } from "
|
|
2
|
-
import { Template } from "
|
|
1
|
+
import { AppOptions, Application } from "../commands/create-new-app/types";
|
|
2
|
+
import { Template } from "./paths";
|
|
3
3
|
export declare class App {
|
|
4
4
|
protected app: Application;
|
|
5
5
|
/**
|
|
6
6
|
* Resolved files
|
|
7
7
|
*/
|
|
8
8
|
protected files: Record<string, FileManager>;
|
|
9
|
+
/**
|
|
10
|
+
* Resolved JSON files
|
|
11
|
+
*/
|
|
12
|
+
protected jsonFiles: Record<string, JsonFileManager>;
|
|
9
13
|
isInstalled: boolean;
|
|
10
14
|
constructor(app: Application);
|
|
15
|
+
get options(): AppOptions;
|
|
11
16
|
use(templateName: Template): this;
|
|
12
17
|
init(): this;
|
|
13
18
|
terminate(): void;
|
|
@@ -18,10 +23,22 @@ export declare class App {
|
|
|
18
23
|
exec(command: string): Promise<boolean>;
|
|
19
24
|
git(): Promise<boolean>;
|
|
20
25
|
updatePackageJson(): this;
|
|
26
|
+
/**
|
|
27
|
+
* Add database driver dependency to package.json
|
|
28
|
+
*/
|
|
29
|
+
addDatabaseDriver(driverValue: string): this;
|
|
30
|
+
/**
|
|
31
|
+
* Add selected features' dependencies to package.json
|
|
32
|
+
*/
|
|
33
|
+
addFeatures(features: string[]): this;
|
|
34
|
+
/**
|
|
35
|
+
* Copy config stubs for features that require them
|
|
36
|
+
*/
|
|
37
|
+
copyConfigStubs(): this;
|
|
21
38
|
/**
|
|
22
39
|
* Get package json file
|
|
23
40
|
*/
|
|
24
|
-
get package():
|
|
41
|
+
get package(): JsonFileManager;
|
|
25
42
|
updateDotEnv(): this;
|
|
26
43
|
/**
|
|
27
44
|
* Get env file to update
|
|
@@ -30,19 +47,20 @@ export declare class App {
|
|
|
30
47
|
get name(): string;
|
|
31
48
|
get path(): string;
|
|
32
49
|
file(relativePath: string): FileManager;
|
|
33
|
-
json(relativePath: string):
|
|
50
|
+
json(relativePath: string): JsonFileManager;
|
|
34
51
|
}
|
|
35
52
|
export declare function app(app: Application): App;
|
|
36
53
|
export declare class FileManager {
|
|
37
|
-
protected filePath:
|
|
54
|
+
protected filePath: string;
|
|
38
55
|
content: string;
|
|
39
|
-
constructor(filePath:
|
|
56
|
+
constructor(filePath: string);
|
|
40
57
|
protected parseContent(): void;
|
|
41
58
|
replace(search: string, replace: string): this;
|
|
42
59
|
replaceAll(search: string, replace: string): this;
|
|
43
60
|
save(): void;
|
|
44
61
|
}
|
|
45
62
|
export declare class JsonFileManager extends FileManager {
|
|
63
|
+
content: any;
|
|
46
64
|
protected parseContent(): void;
|
|
47
65
|
save(): void;
|
|
48
66
|
has(key: string): boolean;
|
package/esm/helpers/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/helpers/app.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/helpers/app.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAW3E,OAAO,EAAE,QAAQ,EAAY,MAAM,SAAS,CAAC;AAE7C,qBAAa,GAAG;IAaK,SAAS,CAAC,GAAG,EAAE,WAAW;IAZ7C;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAM;IAElD;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAM;IAEnD,WAAW,UAAS;gBAEE,GAAG,EAAE,WAAW;IAE7C,IAAW,OAAO,IAAI,UAAU,CAE/B;IAEM,GAAG,CAAC,YAAY,EAAE,QAAQ;IAY1B,IAAI;IAIJ,SAAS;IAIT,OAAO;;;;IAID,IAAI,CAAC,OAAO,EAAE,MAAM;IAKpB,GAAG;IAMT,iBAAiB;IASxB;;OAEG;IACI,iBAAiB,CAAC,WAAW,EAAE,MAAM;IAuC5C;;OAEG;IACI,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE;IAqBrC;;OAEG;IACI,eAAe;IAqBtB;;OAEG;IACH,IAAW,OAAO,oBAEjB;IAEM,YAAY;IAMnB;;OAEG;IACH,IAAW,GAAG,gBAEb;IAED,IAAW,IAAI,WAEd;IAED,IAAW,IAAI,WAEd;IAEM,IAAI,CAAC,YAAY,EAAE,MAAM;IAUzB,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,eAAe;CASnD;AAED,wBAAgB,GAAG,CAAC,GAAG,EAAE,WAAW,OAEnC;AAED,qBAAa,WAAW;IAEH,SAAS,CAAC,QAAQ,EAAE,MAAM;IADtC,OAAO,EAAG,MAAM,CAAC;gBACK,QAAQ,EAAE,MAAM;IAI7C,SAAS,CAAC,YAAY;IAIf,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAMvC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAM1C,IAAI;CAGZ;AAED,qBAAa,eAAgB,SAAQ,WAAW;IACvC,OAAO,EAAE,GAAG,CAAC;IAEpB,SAAS,CAAC,YAAY;IAIf,IAAI;IAIJ,GAAG,CAAC,GAAG,EAAE,MAAM;IAIf,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAM/B,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;CAO1C;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,eAEhC;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,mBAEpC"}
|
package/esm/helpers/app.js
CHANGED
|
@@ -1,13 +1,20 @@
|
|
|
1
|
-
import {copyDirectory,fileExists,copyFile,renameFile,getFile,putFile,getJsonFile,putJsonFile}from'@mongez/fs';import path__default from'path';import {
|
|
1
|
+
import {copyDirectory,fileExists,copyFile,renameFile,getFile,putFile,getJsonFile,putJsonFile}from'@mongez/fs';import path__default from'path';import {getDatabaseDependency,getDatabaseDriver}from'../features/database-drivers.js';import {getFeatureDependencies,getFeatureConfigStubs}from'../features/features-map.js';import {runCommand,executeCommand}from'./exec.js';import {getPackageManager}from'./package-manager.js';import {template}from'./paths.js';class App {
|
|
2
2
|
app;
|
|
3
3
|
/**
|
|
4
4
|
* Resolved files
|
|
5
5
|
*/
|
|
6
6
|
files = {};
|
|
7
|
+
/**
|
|
8
|
+
* Resolved JSON files
|
|
9
|
+
*/
|
|
10
|
+
jsonFiles = {};
|
|
7
11
|
isInstalled = false;
|
|
8
12
|
constructor(app) {
|
|
9
13
|
this.app = app;
|
|
10
14
|
}
|
|
15
|
+
get options() {
|
|
16
|
+
return this.app.options;
|
|
17
|
+
}
|
|
11
18
|
use(templateName) {
|
|
12
19
|
copyDirectory(template(templateName), this.path);
|
|
13
20
|
if (fileExists(this.path + "/.env.example")) {
|
|
@@ -20,7 +27,7 @@ import {copyDirectory,fileExists,copyFile,renameFile,getFile,putFile,getJsonFile
|
|
|
20
27
|
return this;
|
|
21
28
|
}
|
|
22
29
|
terminate() {
|
|
23
|
-
|
|
30
|
+
// No longer using outro, using showSuccessScreen instead
|
|
24
31
|
}
|
|
25
32
|
install() {
|
|
26
33
|
return runCommand(getPackageManager(), ["install"], this.path);
|
|
@@ -30,6 +37,7 @@ import {copyDirectory,fileExists,copyFile,renameFile,getFile,putFile,getJsonFile
|
|
|
30
37
|
return await executeCommand(commandName, optionsList, this.path);
|
|
31
38
|
}
|
|
32
39
|
async git() {
|
|
40
|
+
const { initializeGitRepository } = await import('./project-builder-helpers.js');
|
|
33
41
|
return await initializeGitRepository(this.path);
|
|
34
42
|
}
|
|
35
43
|
updatePackageJson() {
|
|
@@ -39,6 +47,68 @@ import {copyDirectory,fileExists,copyFile,renameFile,getFile,putFile,getJsonFile
|
|
|
39
47
|
.save();
|
|
40
48
|
return this;
|
|
41
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Add database driver dependency to package.json
|
|
52
|
+
*/
|
|
53
|
+
addDatabaseDriver(driverValue) {
|
|
54
|
+
const dependency = getDatabaseDependency(driverValue);
|
|
55
|
+
const driver = getDatabaseDriver(driverValue);
|
|
56
|
+
// Add dependency
|
|
57
|
+
const packageJson = this.package;
|
|
58
|
+
for (const [pkg, version] of Object.entries(dependency)) {
|
|
59
|
+
packageJson.content.dependencies[pkg] = version;
|
|
60
|
+
}
|
|
61
|
+
packageJson.save();
|
|
62
|
+
// Update .env with DB_DRIVER and DB_PORT
|
|
63
|
+
if (driver) {
|
|
64
|
+
let envContent = getFile(this.path + "/.env");
|
|
65
|
+
envContent = envContent.replace(/DB_PORT=\d+/, `DB_PORT=${driver.defaultPort}`);
|
|
66
|
+
// Add DB_DRIVER if not present, or update it
|
|
67
|
+
if (envContent.includes("DB_DRIVER=")) {
|
|
68
|
+
envContent = envContent.replace(/DB_DRIVER=\w*/, `DB_DRIVER=${driver.value}`);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
// Add after DB_PORT line
|
|
72
|
+
envContent = envContent.replace(/DB_PORT=\d+/, `DB_PORT=${driver.defaultPort}\nDB_DRIVER=${driver.value}`);
|
|
73
|
+
}
|
|
74
|
+
putFile(this.path + "/.env", envContent);
|
|
75
|
+
}
|
|
76
|
+
return this;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Add selected features' dependencies to package.json
|
|
80
|
+
*/
|
|
81
|
+
addFeatures(features) {
|
|
82
|
+
if (features.length === 0)
|
|
83
|
+
return this;
|
|
84
|
+
const { dependencies, devDependencies } = getFeatureDependencies(features);
|
|
85
|
+
const packageJson = this.package;
|
|
86
|
+
// Merge dependencies
|
|
87
|
+
for (const [pkg, version] of Object.entries(dependencies)) {
|
|
88
|
+
packageJson.content.dependencies[pkg] = version;
|
|
89
|
+
}
|
|
90
|
+
// Merge devDependencies
|
|
91
|
+
for (const [pkg, version] of Object.entries(devDependencies)) {
|
|
92
|
+
packageJson.content.devDependencies[pkg] = version;
|
|
93
|
+
}
|
|
94
|
+
packageJson.save();
|
|
95
|
+
return this;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Copy config stubs for features that require them
|
|
99
|
+
*/
|
|
100
|
+
copyConfigStubs() {
|
|
101
|
+
const features = this.options.features || [];
|
|
102
|
+
const stubs = getFeatureConfigStubs(features);
|
|
103
|
+
for (const stub of stubs) {
|
|
104
|
+
const configPath = path__default.join(this.path, "src", "config", `${stub.name}.ts`);
|
|
105
|
+
// Only create if doesn't exist
|
|
106
|
+
if (!fileExists(configPath)) {
|
|
107
|
+
putFile(configPath, stub.content);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return this;
|
|
111
|
+
}
|
|
42
112
|
/**
|
|
43
113
|
* Get package json file
|
|
44
114
|
*/
|
|
@@ -70,10 +140,10 @@ import {copyDirectory,fileExists,copyFile,renameFile,getFile,putFile,getJsonFile
|
|
|
70
140
|
}
|
|
71
141
|
json(relativePath) {
|
|
72
142
|
const fullPath = path__default.resolve(this.path, relativePath);
|
|
73
|
-
if (!this.
|
|
74
|
-
this.
|
|
143
|
+
if (!this.jsonFiles[fullPath]) {
|
|
144
|
+
this.jsonFiles[fullPath] = jsonFile(fullPath);
|
|
75
145
|
}
|
|
76
|
-
return this.
|
|
146
|
+
return this.jsonFiles[fullPath];
|
|
77
147
|
}
|
|
78
148
|
}
|
|
79
149
|
class FileManager {
|
|
@@ -99,6 +169,7 @@ class FileManager {
|
|
|
99
169
|
}
|
|
100
170
|
}
|
|
101
171
|
class JsonFileManager extends FileManager {
|
|
172
|
+
content;
|
|
102
173
|
parseContent() {
|
|
103
174
|
this.content = getJsonFile(this.filePath);
|
|
104
175
|
}
|
package/esm/helpers/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sources":["../../src/helpers/app.ts"],"sourcesContent":[null],"names":["path"],"mappings":"
|
|
1
|
+
{"version":3,"file":"app.js","sources":["../../src/helpers/app.ts"],"sourcesContent":[null],"names":["path"],"mappings":"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"}
|
|
@@ -1,4 +1,16 @@
|
|
|
1
|
-
export declare function getPackageManager():
|
|
1
|
+
export declare function getPackageManager(): string;
|
|
2
|
+
/**
|
|
3
|
+
* Detect available package managers asynchronously and cache results
|
|
4
|
+
*/
|
|
5
|
+
export declare function detectPackageManagers(): Promise<void>;
|
|
6
|
+
/**
|
|
7
|
+
* Get available package managers on the system
|
|
8
|
+
*/
|
|
9
|
+
export declare function getSystemPackageManagers(): string[];
|
|
10
|
+
/**
|
|
11
|
+
* Get the preferred package manager based on priority
|
|
12
|
+
*/
|
|
13
|
+
export declare function getPreferredPackageManager(): string;
|
|
2
14
|
export declare function setPackageManager(packageManager: string): void;
|
|
3
15
|
export declare function installCommand(): string;
|
|
4
16
|
export declare function startCommand(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../src/helpers/package-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../src/helpers/package-manager.ts"],"names":[],"mappings":"AAUA,wBAAgB,iBAAiB,WAMhC;AA0BD;;GAEG;AACH,wBAAsB,qBAAqB,kBAsB1C;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAcnD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAenD;AAED,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,QAEvD;AAED,wBAAgB,cAAc,WAE7B;AAED,wBAAgB,YAAY,WAI3B;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,UAMvD"}
|
|
@@ -1,22 +1,104 @@
|
|
|
1
|
-
import detectPackageManager from'which-pm-runs';
|
|
1
|
+
import {exec,execSync}from'child_process';import {promisify}from'util';import detectPackageManager from'which-pm-runs';const execAsync = promisify(exec);
|
|
2
|
+
let detectedPackageManager;
|
|
3
|
+
let cachedSystemManagers;
|
|
4
|
+
let cachedPreferredManager;
|
|
2
5
|
function getPackageManager() {
|
|
3
6
|
if (detectedPackageManager) {
|
|
4
7
|
return detectedPackageManager;
|
|
5
8
|
}
|
|
6
|
-
|
|
7
|
-
|
|
9
|
+
return getPreferredPackageManager();
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Check if a package manager is installed
|
|
13
|
+
*/
|
|
14
|
+
function isInstalled(manager) {
|
|
15
|
+
try {
|
|
16
|
+
execSync(`${manager} --version`, { stdio: "ignore" });
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Check if a package manager is installed (async)
|
|
25
|
+
*/
|
|
26
|
+
async function checkManager(manager) {
|
|
27
|
+
try {
|
|
28
|
+
await execAsync(`${manager} --version`);
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Detect available package managers asynchronously and cache results
|
|
37
|
+
*/
|
|
38
|
+
async function detectPackageManagers() {
|
|
39
|
+
const managers = ["npm"];
|
|
40
|
+
const checks = [checkManager("yarn"), checkManager("pnpm")];
|
|
41
|
+
const [hasYarn, hasPnpm] = await Promise.all(checks);
|
|
42
|
+
if (hasYarn)
|
|
43
|
+
managers.push("yarn");
|
|
44
|
+
if (hasPnpm)
|
|
45
|
+
managers.push("pnpm");
|
|
46
|
+
cachedSystemManagers = managers;
|
|
47
|
+
// Determine preference
|
|
48
|
+
const runningPm = detectPackageManager()?.name;
|
|
49
|
+
if (runningPm && runningPm !== "npm") {
|
|
50
|
+
cachedPreferredManager = runningPm;
|
|
51
|
+
}
|
|
52
|
+
else if (hasYarn) {
|
|
53
|
+
cachedPreferredManager = "yarn";
|
|
54
|
+
}
|
|
55
|
+
else if (hasPnpm) {
|
|
56
|
+
cachedPreferredManager = "pnpm";
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
cachedPreferredManager = "npm";
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get available package managers on the system
|
|
64
|
+
*/
|
|
65
|
+
function getSystemPackageManagers() {
|
|
66
|
+
if (cachedSystemManagers)
|
|
67
|
+
return cachedSystemManagers;
|
|
68
|
+
const managers = ["npm"]; // npm is assumed to be always available
|
|
69
|
+
if (isInstalled("yarn")) {
|
|
70
|
+
managers.push("yarn");
|
|
71
|
+
}
|
|
72
|
+
if (isInstalled("pnpm")) {
|
|
73
|
+
managers.push("pnpm");
|
|
74
|
+
}
|
|
75
|
+
return managers;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Get the preferred package manager based on priority
|
|
79
|
+
*/
|
|
80
|
+
function getPreferredPackageManager() {
|
|
81
|
+
if (cachedPreferredManager)
|
|
82
|
+
return cachedPreferredManager;
|
|
83
|
+
// Priority 1: The manager currently running the script
|
|
84
|
+
const runningPm = detectPackageManager()?.name;
|
|
85
|
+
if (runningPm && runningPm !== "npm")
|
|
86
|
+
return runningPm;
|
|
87
|
+
// Priority 2: Yarn (if installed)
|
|
88
|
+
if (isInstalled("yarn"))
|
|
89
|
+
return "yarn";
|
|
90
|
+
// Priority 3: pnpm (if installed)
|
|
91
|
+
if (isInstalled("pnpm"))
|
|
92
|
+
return "pnpm";
|
|
93
|
+
// Priority 4: npm (default)
|
|
94
|
+
return "npm";
|
|
8
95
|
}
|
|
9
96
|
function setPackageManager(packageManager) {
|
|
10
97
|
detectedPackageManager = packageManager;
|
|
11
98
|
}
|
|
12
|
-
function startCommand() {
|
|
13
|
-
if (getPackageManager() === "npm")
|
|
14
|
-
return "npm run dev";
|
|
15
|
-
return `${getPackageManager()} dev`;
|
|
16
|
-
}
|
|
17
99
|
function runPackageManagerCommand(command) {
|
|
18
100
|
const packageManager = getPackageManager();
|
|
19
101
|
if (packageManager === "npm")
|
|
20
102
|
return `npm run ${command}`;
|
|
21
103
|
return `${packageManager} ${command}`;
|
|
22
|
-
}export{getPackageManager,runPackageManagerCommand,setPackageManager
|
|
104
|
+
}export{detectPackageManagers,getPackageManager,getPreferredPackageManager,getSystemPackageManagers,runPackageManagerCommand,setPackageManager};//# sourceMappingURL=package-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-manager.js","sources":["../../src/helpers/package-manager.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"package-manager.js","sources":["../../src/helpers/package-manager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import'@clack/prompts';import'@mongez/copper';import'@mongez/fs';import'path';import {executeCommand}from'./exec.js';import'./package-manager.js';import'./paths.js';async function initializeGitRepository(appPath) {
|
|
2
2
|
// initialize git repository
|
|
3
3
|
await executeCommand(`git`, ["init"], appPath);
|
|
4
4
|
// switching to `main` branch
|
|
@@ -8,11 +8,4 @@ import {outro}from'@clack/prompts';import {colors}from'@mongez/copper';import'@m
|
|
|
8
8
|
// commit files
|
|
9
9
|
await executeCommand(`git`, ["commit", "-m", "Initial commit ⚡️"], appPath);
|
|
10
10
|
return true;
|
|
11
|
-
}
|
|
12
|
-
async function allDone(appName) {
|
|
13
|
-
outro("🌟 Awesome! Your project is ready to rock! " +
|
|
14
|
-
"Run the following command to start development:");
|
|
15
|
-
console.log(colors.cyan(`cd ${appName} && ${startCommand()}`));
|
|
16
|
-
console.log();
|
|
17
|
-
console.log(`💡 Pro tip: Install the ${colors.yellow("Generator Z")} extension in VSCode for helpful code snippets and productivity boosters! 🚀`);
|
|
18
|
-
}export{allDone,initializeGitRepository};//# sourceMappingURL=project-builder-helpers.js.map
|
|
11
|
+
}export{initializeGitRepository};//# sourceMappingURL=project-builder-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-builder-helpers.js","sources":["../../src/helpers/project-builder-helpers.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"project-builder-helpers.js","sources":["../../src/helpers/project-builder-helpers.ts"],"sourcesContent":[null],"names":[],"mappings":"qKAeO,eAAe,uBAAuB,CAAC,OAAe,EAAA;;IAE3D,MAAM,cAAc,CAAC,CAAA,GAAA,CAAK,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;;AAE/C,IAAA,MAAM,cAAc,CAAC,CAAK,GAAA,CAAA,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;;AAGjE,IAAA,MAAM,cAAc,CAAC,CAAK,GAAA,CAAA,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;;AAGnD,IAAA,MAAM,cAAc,CAAC,CAAK,GAAA,CAAA,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,mBAAmB,CAAC,EAAE,OAAO,CAAC,CAAC;AAE5E,IAAA,OAAO,IAAI,CAAC;AACd"}
|
package/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,SAAS,SAEhC"}
|
package/esm/index.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
const createWarlockVersion = packageJson.version;
|
|
4
|
-
createNewApp(createWarlockVersion);
|
|
1
|
+
import createNewApp from'./commands/create-new-app/index.js';function createApp() {
|
|
2
|
+
createNewApp();
|
|
5
3
|
}export{createApp as default};//# sourceMappingURL=index.js.map
|