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.
Files changed (89) hide show
  1. package/cjs/commands/create-new-app/index.d.ts +1 -1
  2. package/cjs/commands/create-new-app/index.d.ts.map +1 -1
  3. package/cjs/commands/create-new-app/index.js +86 -41
  4. package/cjs/commands/create-new-app/index.js.map +1 -1
  5. package/cjs/commands/create-new-app/types.d.ts +8 -1
  6. package/cjs/commands/create-new-app/types.d.ts.map +1 -1
  7. package/cjs/commands/create-warlock-app/index.d.ts +1 -1
  8. package/cjs/commands/create-warlock-app/index.d.ts.map +1 -1
  9. package/cjs/commands/create-warlock-app/index.js +48 -44
  10. package/cjs/commands/create-warlock-app/index.js.map +1 -1
  11. package/cjs/features/database-drivers.d.ts +31 -0
  12. package/cjs/features/database-drivers.d.ts.map +1 -0
  13. package/cjs/features/database-drivers.js +53 -0
  14. package/cjs/features/database-drivers.js.map +1 -0
  15. package/cjs/features/features-map.d.ts +38 -0
  16. package/cjs/features/features-map.d.ts.map +1 -0
  17. package/cjs/features/features-map.js +120 -0
  18. package/cjs/features/features-map.js.map +1 -0
  19. package/cjs/helpers/app.d.ts +24 -6
  20. package/cjs/helpers/app.d.ts.map +1 -1
  21. package/cjs/helpers/app.js +77 -6
  22. package/cjs/helpers/app.js.map +1 -1
  23. package/cjs/helpers/package-manager.d.ts +13 -1
  24. package/cjs/helpers/package-manager.d.ts.map +1 -1
  25. package/cjs/helpers/package-manager.js +91 -9
  26. package/cjs/helpers/package-manager.js.map +1 -1
  27. package/cjs/helpers/project-builder-helpers.js +2 -9
  28. package/cjs/helpers/project-builder-helpers.js.map +1 -1
  29. package/cjs/index.d.ts.map +1 -1
  30. package/cjs/index.js +2 -4
  31. package/cjs/index.js.map +1 -1
  32. package/cjs/ui/banner.d.ts +29 -0
  33. package/cjs/ui/banner.d.ts.map +1 -0
  34. package/cjs/ui/banner.js +142 -0
  35. package/cjs/ui/banner.js.map +1 -0
  36. package/cjs/ui/spinners.d.ts +18 -0
  37. package/cjs/ui/spinners.d.ts.map +1 -0
  38. package/cjs/ui/spinners.js +17 -0
  39. package/cjs/ui/spinners.js.map +1 -0
  40. package/esm/commands/create-new-app/index.d.ts +1 -1
  41. package/esm/commands/create-new-app/index.d.ts.map +1 -1
  42. package/esm/commands/create-new-app/index.js +86 -41
  43. package/esm/commands/create-new-app/index.js.map +1 -1
  44. package/esm/commands/create-new-app/types.d.ts +8 -1
  45. package/esm/commands/create-new-app/types.d.ts.map +1 -1
  46. package/esm/commands/create-warlock-app/index.d.ts +1 -1
  47. package/esm/commands/create-warlock-app/index.d.ts.map +1 -1
  48. package/esm/commands/create-warlock-app/index.js +48 -44
  49. package/esm/commands/create-warlock-app/index.js.map +1 -1
  50. package/esm/features/database-drivers.d.ts +31 -0
  51. package/esm/features/database-drivers.d.ts.map +1 -0
  52. package/esm/features/database-drivers.js +53 -0
  53. package/esm/features/database-drivers.js.map +1 -0
  54. package/esm/features/features-map.d.ts +38 -0
  55. package/esm/features/features-map.d.ts.map +1 -0
  56. package/esm/features/features-map.js +120 -0
  57. package/esm/features/features-map.js.map +1 -0
  58. package/esm/helpers/app.d.ts +24 -6
  59. package/esm/helpers/app.d.ts.map +1 -1
  60. package/esm/helpers/app.js +76 -5
  61. package/esm/helpers/app.js.map +1 -1
  62. package/esm/helpers/package-manager.d.ts +13 -1
  63. package/esm/helpers/package-manager.d.ts.map +1 -1
  64. package/esm/helpers/package-manager.js +91 -9
  65. package/esm/helpers/package-manager.js.map +1 -1
  66. package/esm/helpers/project-builder-helpers.js +2 -9
  67. package/esm/helpers/project-builder-helpers.js.map +1 -1
  68. package/esm/index.d.ts.map +1 -1
  69. package/esm/index.js +2 -4
  70. package/esm/index.js.map +1 -1
  71. package/esm/ui/banner.d.ts +29 -0
  72. package/esm/ui/banner.d.ts.map +1 -0
  73. package/esm/ui/banner.js +142 -0
  74. package/esm/ui/banner.js.map +1 -0
  75. package/esm/ui/spinners.d.ts +18 -0
  76. package/esm/ui/spinners.d.ts.map +1 -0
  77. package/esm/ui/spinners.js +17 -0
  78. package/esm/ui/spinners.js.map +1 -0
  79. package/package.json +2 -1
  80. package/templates/warlock/package.json +7 -7
  81. package/templates/warlock/src/config/app.ts +1 -1
  82. package/templates/warlock/src/config/auth.ts +1 -1
  83. package/templates/warlock/src/config/cache.ts +1 -2
  84. package/templates/warlock/src/config/database.ts +1 -1
  85. package/templates/warlock/src/config/http.ts +1 -1
  86. package/templates/warlock/src/config/mail.ts +1 -1
  87. package/templates/warlock/src/config/storage.ts +1 -2
  88. package/templates/warlock/src/config/google.ts +0 -22
  89. 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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"}
@@ -1,13 +1,18 @@
1
- import { Application } from "src/commands/create-new-app/types";
2
- import { Template } from "src/helpers/paths";
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(): FileManager;
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): FileManager;
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: any;
54
+ protected filePath: string;
38
55
  content: string;
39
- constructor(filePath: any);
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;
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/helpers/app.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAY,MAAM,mBAAmB,CAAC;AAOvD,qBAAa,GAAG;IAQK,SAAS,CAAC,GAAG,EAAE,WAAW;IAP7C;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAM;IAE3C,WAAW,UAAS;gBAEE,GAAG,EAAE,WAAW;IAEtC,GAAG,CAAC,YAAY,EAAE,QAAQ;IAY1B,IAAI;IAIJ,SAAS;IAIT,OAAO;;;;IAID,IAAI,CAAC,OAAO,EAAE,MAAM;IAKpB,GAAG;IAIT,iBAAiB;IASxB;;OAEG;IACH,IAAW,OAAO,gBAEjB;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;CASjC;AAED,wBAAgB,GAAG,CAAC,GAAG,EAAE,WAAW,OAEnC;AAED,qBAAa,WAAW;IAEH,SAAS,CAAC,QAAQ;IAD9B,OAAO,EAAG,MAAM,CAAC;gBACK,QAAQ,KAAA;IAIrC,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;IAC9C,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"}
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"}
@@ -1,13 +1,20 @@
1
- import {copyDirectory,fileExists,copyFile,renameFile,getFile,putFile,getJsonFile,putJsonFile}from'@mongez/fs';import path__default from'path';import {runCommand,executeCommand}from'./exec.js';import {template}from'./paths.js';import {allDone,initializeGitRepository}from'./project-builder-helpers.js';import {getPackageManager}from'./package-manager.js';class App {
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
- allDone(this.name);
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.files[fullPath]) {
74
- this.files[fullPath] = jsonFile(fullPath);
143
+ if (!this.jsonFiles[fullPath]) {
144
+ this.jsonFiles[fullPath] = jsonFile(fullPath);
75
145
  }
76
- return this.files[fullPath];
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sources":["../../src/helpers/app.ts"],"sourcesContent":[null],"names":["path"],"mappings":"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"}
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(): any;
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":"AAIA,wBAAgB,iBAAiB,QAQhC;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
+ {"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';let detectedPackageManager;
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
- const packageManager = detectPackageManager();
7
- return packageManager.name || "npm";
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,startCommand};//# sourceMappingURL=package-manager.js.map
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":"gDAEA,IAAI,sBAA0C,CAAC;SAE/B,iBAAiB,GAAA;AAC/B,IAAA,IAAI,sBAAsB,EAAE;AAC1B,QAAA,OAAO,sBAAsB,CAAC;AAC/B,KAAA;AAED,IAAA,MAAM,cAAc,GAAG,oBAAoB,EAAE,CAAC;AAE9C,IAAA,OAAO,cAAc,CAAC,IAAI,IAAI,KAAK,CAAC;AACtC,CAAC;AAEK,SAAU,iBAAiB,CAAC,cAAsB,EAAA;IACtD,sBAAsB,GAAG,cAAc,CAAC;AAC1C,CAAC;SAMe,YAAY,GAAA;IAC1B,IAAI,iBAAiB,EAAE,KAAK,KAAK;AAAE,QAAA,OAAO,aAAa,CAAC;AAExD,IAAA,OAAO,CAAG,EAAA,iBAAiB,EAAE,CAAA,IAAA,CAAM,CAAC;AACtC,CAAC;AAEK,SAAU,wBAAwB,CAAC,OAAe,EAAA;AACtD,IAAA,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAE3C,IAAI,cAAc,KAAK,KAAK;QAAE,OAAO,CAAA,QAAA,EAAW,OAAO,CAAA,CAAE,CAAC;AAE1D,IAAA,OAAO,CAAG,EAAA,cAAc,CAAI,CAAA,EAAA,OAAO,EAAE,CAAC;AACxC"}
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 {outro}from'@clack/prompts';import {colors}from'@mongez/copper';import'@mongez/fs';import'path';import {executeCommand}from'./exec.js';import {startCommand}from'./package-manager.js';import'./paths.js';async function initializeGitRepository(appPath) {
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":"iNAeO,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,CAAC;AAoDM,eAAe,OAAO,CAAC,OAAe,EAAA;AAC3C,IAAA,KAAK,CACH,6CAA6C;AAC3C,QAAA,iDAAiD,CACpD,CAAC;AAEF,IAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAM,GAAA,EAAA,OAAO,OAAO,YAAY,EAAE,CAAE,CAAA,CAAC,CAAC,CAAC;IAE/D,OAAO,CAAC,GAAG,EAAE,CAAC;AAEd,IAAA,OAAO,CAAC,GAAG,CACT,CAAA,wBAAA,EAA2B,MAAM,CAAC,MAAM,CACtC,aAAa,CACd,CAA8E,4EAAA,CAAA,CAChF,CAAC;AACJ"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,SAAS,SAIhC"}
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 {getJsonFile}from'@mongez/fs';import createNewApp from'./commands/create-new-app/index.js';import {packageRoot}from'./helpers/paths.js';function createApp() {
2
- const packageJson = getJsonFile(packageRoot("package.json"));
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