@forgecart/cli 1.1.0 → 2.1.0

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 (181) hide show
  1. package/dist/bin/forgecart.d.ts +2 -0
  2. package/dist/bin/forgecart.js +4 -0
  3. package/dist/bin/forgecart.js.map +1 -0
  4. package/dist/src/cli.d.ts +14 -1
  5. package/dist/src/cli.js +30 -15
  6. package/dist/src/cli.js.map +1 -1
  7. package/dist/src/commands/init.d.ts +39 -2
  8. package/dist/src/commands/init.js +173 -301
  9. package/dist/src/commands/init.js.map +1 -1
  10. package/dist/src/commands/placeholders.d.ts +19 -0
  11. package/dist/src/commands/placeholders.js +109 -0
  12. package/dist/src/commands/placeholders.js.map +1 -0
  13. package/dist/src/output.d.ts +11 -0
  14. package/dist/src/output.js +16 -0
  15. package/dist/src/output.js.map +1 -0
  16. package/package.json +21 -11
  17. package/templates/storefront/.env.example +12 -0
  18. package/templates/storefront/.forgecartignore +2 -0
  19. package/templates/storefront/Procfile +1 -0
  20. package/templates/storefront/README.md +87 -0
  21. package/templates/storefront/next.config.js +14 -0
  22. package/templates/storefront/package.json +25 -0
  23. package/templates/storefront/postcss.config.js +6 -0
  24. package/templates/storefront/src/app/cart/page.tsx +88 -0
  25. package/templates/storefront/src/app/globals.css +13 -0
  26. package/templates/storefront/src/app/layout.tsx +32 -0
  27. package/templates/storefront/src/app/page.tsx +49 -0
  28. package/templates/storefront/src/app/products/[slug]/not-found.tsx +20 -0
  29. package/templates/storefront/src/app/products/[slug]/page.tsx +61 -0
  30. package/templates/storefront/src/app/products/page.tsx +27 -0
  31. package/templates/storefront/src/components/Header.tsx +47 -0
  32. package/templates/storefront/src/components/ProductCard.tsx +40 -0
  33. package/templates/storefront/src/components/ProductPurchase.tsx +91 -0
  34. package/templates/storefront/src/lib/cart-actions.ts +148 -0
  35. package/templates/storefront/src/lib/cart-context.tsx +88 -0
  36. package/templates/storefront/src/lib/forgecart.ts +187 -0
  37. package/{dist/templates/storefront-additions → templates/storefront}/tailwind.config.js +1 -1
  38. package/templates/storefront/tsconfig.json +23 -0
  39. package/LICENSE +0 -21
  40. package/README.md +0 -179
  41. package/bin/forgecart.js +0 -3
  42. package/dist/package.json +0 -50
  43. package/dist/src/cli.d.ts.map +0 -1
  44. package/dist/src/commands/delete.d.ts +0 -3
  45. package/dist/src/commands/delete.d.ts.map +0 -1
  46. package/dist/src/commands/delete.js +0 -60
  47. package/dist/src/commands/delete.js.map +0 -1
  48. package/dist/src/commands/deploy.d.ts +0 -3
  49. package/dist/src/commands/deploy.d.ts.map +0 -1
  50. package/dist/src/commands/deploy.js +0 -243
  51. package/dist/src/commands/deploy.js.map +0 -1
  52. package/dist/src/commands/env.d.ts +0 -3
  53. package/dist/src/commands/env.d.ts.map +0 -1
  54. package/dist/src/commands/env.js +0 -158
  55. package/dist/src/commands/env.js.map +0 -1
  56. package/dist/src/commands/init.d.ts.map +0 -1
  57. package/dist/src/commands/list.d.ts +0 -3
  58. package/dist/src/commands/list.d.ts.map +0 -1
  59. package/dist/src/commands/list.js +0 -65
  60. package/dist/src/commands/list.js.map +0 -1
  61. package/dist/src/commands/login.d.ts +0 -3
  62. package/dist/src/commands/login.d.ts.map +0 -1
  63. package/dist/src/commands/login.js +0 -120
  64. package/dist/src/commands/login.js.map +0 -1
  65. package/dist/src/commands/logs.d.ts +0 -3
  66. package/dist/src/commands/logs.d.ts.map +0 -1
  67. package/dist/src/commands/logs.js +0 -88
  68. package/dist/src/commands/logs.js.map +0 -1
  69. package/dist/src/commands/scale.d.ts +0 -3
  70. package/dist/src/commands/scale.d.ts.map +0 -1
  71. package/dist/src/commands/scale.js +0 -49
  72. package/dist/src/commands/scale.js.map +0 -1
  73. package/dist/src/commands/status.d.ts +0 -3
  74. package/dist/src/commands/status.d.ts.map +0 -1
  75. package/dist/src/commands/status.js +0 -90
  76. package/dist/src/commands/status.js.map +0 -1
  77. package/dist/src/commands/whoami.d.ts +0 -3
  78. package/dist/src/commands/whoami.d.ts.map +0 -1
  79. package/dist/src/commands/whoami.js +0 -59
  80. package/dist/src/commands/whoami.js.map +0 -1
  81. package/dist/src/index.d.ts +0 -3
  82. package/dist/src/index.d.ts.map +0 -1
  83. package/dist/src/index.js +0 -5
  84. package/dist/src/index.js.map +0 -1
  85. package/dist/src/lib/api-client.d.ts +0 -34
  86. package/dist/src/lib/api-client.d.ts.map +0 -1
  87. package/dist/src/lib/api-client.js +0 -141
  88. package/dist/src/lib/api-client.js.map +0 -1
  89. package/dist/src/lib/archive.d.ts +0 -9
  90. package/dist/src/lib/archive.d.ts.map +0 -1
  91. package/dist/src/lib/archive.js +0 -118
  92. package/dist/src/lib/archive.js.map +0 -1
  93. package/dist/src/lib/config-updater.d.ts +0 -10
  94. package/dist/src/lib/config-updater.d.ts.map +0 -1
  95. package/dist/src/lib/config-updater.js +0 -34
  96. package/dist/src/lib/config-updater.js.map +0 -1
  97. package/dist/src/lib/config.d.ts +0 -53
  98. package/dist/src/lib/config.d.ts.map +0 -1
  99. package/dist/src/lib/config.js +0 -162
  100. package/dist/src/lib/config.js.map +0 -1
  101. package/dist/src/lib/env-sync.d.ts +0 -44
  102. package/dist/src/lib/env-sync.d.ts.map +0 -1
  103. package/dist/src/lib/env-sync.js +0 -207
  104. package/dist/src/lib/env-sync.js.map +0 -1
  105. package/dist/src/lib/logger.d.ts +0 -15
  106. package/dist/src/lib/logger.d.ts.map +0 -1
  107. package/dist/src/lib/logger.js +0 -54
  108. package/dist/src/lib/logger.js.map +0 -1
  109. package/dist/src/lib/nx-generator.d.ts +0 -22
  110. package/dist/src/lib/nx-generator.d.ts.map +0 -1
  111. package/dist/src/lib/nx-generator.js +0 -345
  112. package/dist/src/lib/nx-generator.js.map +0 -1
  113. package/dist/src/lib/standalone.d.ts +0 -28
  114. package/dist/src/lib/standalone.d.ts.map +0 -1
  115. package/dist/src/lib/standalone.js +0 -107
  116. package/dist/src/lib/standalone.js.map +0 -1
  117. package/dist/src/types/index.d.ts +0 -80
  118. package/dist/src/types/index.d.ts.map +0 -1
  119. package/dist/src/types/index.js +0 -14
  120. package/dist/src/types/index.js.map +0 -1
  121. package/dist/src/utils/spinner.d.ts +0 -16
  122. package/dist/src/utils/spinner.d.ts.map +0 -1
  123. package/dist/src/utils/spinner.js +0 -88
  124. package/dist/src/utils/spinner.js.map +0 -1
  125. package/dist/src/utils/validation.d.ts +0 -12
  126. package/dist/src/utils/validation.d.ts.map +0 -1
  127. package/dist/src/utils/validation.js +0 -82
  128. package/dist/src/utils/validation.js.map +0 -1
  129. package/dist/templates/application-additions/.forgecartignore +0 -37
  130. package/dist/templates/application-additions/Procfile +0 -1
  131. package/dist/templates/application-additions/src/app/app.module.ts +0 -16
  132. package/dist/templates/application-additions/src/services/forgecart.service.ts +0 -62
  133. package/dist/templates/application-additions/src/services/index.ts +0 -2
  134. package/dist/templates/application-additions/src/services/product-event-listener.service.ts +0 -150
  135. package/dist/templates/application-e2e-additions/src/support/global-setup.ts +0 -16
  136. package/dist/templates/application-e2e-additions/src/support/test-setup.ts +0 -9
  137. package/dist/templates/storefront-additions/.forgecartignore +0 -64
  138. package/dist/templates/storefront-additions/Procfile +0 -1
  139. package/dist/templates/storefront-additions/package.json +0 -11
  140. package/dist/templates/storefront-additions/postcss.config.js +0 -5
  141. package/dist/templates/storefront-additions/src/app/cart/page.tsx +0 -77
  142. package/dist/templates/storefront-additions/src/app/global.css +0 -1
  143. package/dist/templates/storefront-additions/src/app/layout.tsx +0 -25
  144. package/dist/templates/storefront-additions/src/app/page.tsx +0 -43
  145. package/dist/templates/storefront-additions/src/components/AddToCartButton.tsx +0 -29
  146. package/dist/templates/storefront-additions/src/components/CartItem.tsx +0 -82
  147. package/dist/templates/storefront-additions/src/components/Header.tsx +0 -42
  148. package/dist/templates/storefront-additions/src/components/ProductCard.tsx +0 -57
  149. package/dist/templates/storefront-additions/src/components/QuantitySelector.tsx +0 -35
  150. package/dist/templates/storefront-additions/src/context/CartContext.tsx +0 -158
  151. package/dist/templates/storefront-additions/src/lib/forgecart.ts +0 -22
  152. package/dist/templates/storefront-e2e-additions/playwright.config.ts +0 -26
  153. package/dist/templates/storefront-e2e-additions/src/example.spec.ts +0 -11
  154. package/dist/templates/workspace/.nxignore +0 -2
  155. package/templates/application-additions/.forgecartignore +0 -37
  156. package/templates/application-additions/Procfile +0 -1
  157. package/templates/application-additions/src/app/app.module.ts +0 -16
  158. package/templates/application-additions/src/services/forgecart.service.ts +0 -62
  159. package/templates/application-additions/src/services/index.ts +0 -2
  160. package/templates/application-additions/src/services/product-event-listener.service.ts +0 -150
  161. package/templates/application-e2e-additions/src/support/global-setup.ts +0 -16
  162. package/templates/application-e2e-additions/src/support/test-setup.ts +0 -9
  163. package/templates/storefront-additions/.forgecartignore +0 -64
  164. package/templates/storefront-additions/Procfile +0 -1
  165. package/templates/storefront-additions/package.json +0 -11
  166. package/templates/storefront-additions/postcss.config.js +0 -5
  167. package/templates/storefront-additions/src/app/cart/page.tsx +0 -77
  168. package/templates/storefront-additions/src/app/global.css +0 -1
  169. package/templates/storefront-additions/src/app/layout.tsx +0 -25
  170. package/templates/storefront-additions/src/app/page.tsx +0 -43
  171. package/templates/storefront-additions/src/components/AddToCartButton.tsx +0 -29
  172. package/templates/storefront-additions/src/components/CartItem.tsx +0 -82
  173. package/templates/storefront-additions/src/components/Header.tsx +0 -42
  174. package/templates/storefront-additions/src/components/ProductCard.tsx +0 -57
  175. package/templates/storefront-additions/src/components/QuantitySelector.tsx +0 -35
  176. package/templates/storefront-additions/src/context/CartContext.tsx +0 -158
  177. package/templates/storefront-additions/src/lib/forgecart.ts +0 -22
  178. package/templates/storefront-additions/tailwind.config.js +0 -8
  179. package/templates/storefront-e2e-additions/playwright.config.ts +0 -26
  180. package/templates/storefront-e2e-additions/src/example.spec.ts +0 -11
  181. package/templates/workspace/.nxignore +0 -2
@@ -1,162 +0,0 @@
1
- import * as fs from 'fs';
2
- import * as os from 'os';
3
- import * as path from 'path';
4
- const CONFIG_DIR = '.forgecart';
5
- const CONFIG_FILE = 'config.json';
6
- const AUTH_FILE = 'auth.json';
7
- const DEFAULT_CONFIG = {
8
- version: '1.0',
9
- channelToken: '',
10
- apiUrl: 'https://api.forgecart.com',
11
- hasApplication: false,
12
- storefrontPath: 'apps/storefront',
13
- };
14
- /**
15
- * Gets the global config directory (~/.forgecart/)
16
- */
17
- export function getGlobalConfigDir() {
18
- return path.join(os.homedir(), CONFIG_DIR);
19
- }
20
- /**
21
- * Gets the global auth file path (~/.forgecart/auth.json)
22
- */
23
- export function getGlobalConfigPath() {
24
- return path.join(getGlobalConfigDir(), AUTH_FILE);
25
- }
26
- /**
27
- * Reads the global auth config from ~/.forgecart/auth.json
28
- */
29
- export function readGlobalConfig() {
30
- const configPath = getGlobalConfigPath();
31
- if (!fs.existsSync(configPath)) {
32
- return null;
33
- }
34
- try {
35
- const content = fs.readFileSync(configPath, 'utf-8');
36
- return JSON.parse(content);
37
- }
38
- catch {
39
- return null;
40
- }
41
- }
42
- /**
43
- * Writes the global auth config to ~/.forgecart/auth.json
44
- */
45
- export function writeGlobalConfig(config) {
46
- const configDir = getGlobalConfigDir();
47
- const configPath = getGlobalConfigPath();
48
- if (!fs.existsSync(configDir)) {
49
- fs.mkdirSync(configDir, { recursive: true });
50
- }
51
- fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
52
- }
53
- /**
54
- * Updates the global auth config
55
- */
56
- export function updateGlobalConfig(updates) {
57
- const existing = readGlobalConfig() || {};
58
- const updated = { ...existing, ...updates };
59
- writeGlobalConfig(updated);
60
- return updated;
61
- }
62
- /**
63
- * Gets the auth token from global config.
64
- * Throws an error if not authenticated.
65
- */
66
- export function getAuthToken() {
67
- const globalConfig = readGlobalConfig();
68
- if (!globalConfig?.authToken) {
69
- throw new Error('Not authenticated. Run "forgecart login" first.');
70
- }
71
- return globalConfig.authToken;
72
- }
73
- /**
74
- * Guard function to check authentication before running a command.
75
- * Exits with a clear error message if not authenticated.
76
- */
77
- export function requireAuth() {
78
- const globalConfig = readGlobalConfig();
79
- if (!globalConfig?.authToken) {
80
- console.error('\x1b[31mError:\x1b[0m Not authenticated.');
81
- console.error('');
82
- console.error('Run \x1b[36mforgecart login\x1b[0m to authenticate first.');
83
- process.exit(1);
84
- }
85
- return globalConfig.authToken;
86
- }
87
- /**
88
- * Gets the API URL from global config, or returns the default.
89
- */
90
- export function getGlobalApiUrl() {
91
- const globalConfig = readGlobalConfig();
92
- return globalConfig?.apiUrl || 'https://api.forgecart.com';
93
- }
94
- export function getConfigDir(projectRoot) {
95
- return path.join(projectRoot, CONFIG_DIR);
96
- }
97
- export function getConfigPath(projectRoot) {
98
- return path.join(getConfigDir(projectRoot), CONFIG_FILE);
99
- }
100
- export function configExists(projectRoot = process.cwd()) {
101
- return fs.existsSync(getConfigPath(projectRoot));
102
- }
103
- export function readConfig(projectRoot = process.cwd()) {
104
- const configPath = getConfigPath(projectRoot);
105
- if (!fs.existsSync(configPath)) {
106
- return null;
107
- }
108
- try {
109
- const content = fs.readFileSync(configPath, 'utf-8');
110
- return JSON.parse(content);
111
- }
112
- catch {
113
- return null;
114
- }
115
- }
116
- export function writeConfig(config, projectRoot = process.cwd()) {
117
- const configDir = getConfigDir(projectRoot);
118
- const configPath = getConfigPath(projectRoot);
119
- if (!fs.existsSync(configDir)) {
120
- fs.mkdirSync(configDir, { recursive: true });
121
- }
122
- fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
123
- }
124
- export function updateConfig(updates, projectRoot = process.cwd()) {
125
- const existing = readConfig(projectRoot) || DEFAULT_CONFIG;
126
- const updated = { ...existing, ...updates };
127
- writeConfig(updated, projectRoot);
128
- return updated;
129
- }
130
- export function getDefaultConfig() {
131
- return { ...DEFAULT_CONFIG };
132
- }
133
- export function findProjectRoot(startDir = process.cwd()) {
134
- let currentDir = startDir;
135
- while (currentDir !== path.parse(currentDir).root) {
136
- const configPath = path.join(currentDir, CONFIG_DIR, CONFIG_FILE);
137
- if (fs.existsSync(configPath)) {
138
- return currentDir;
139
- }
140
- currentDir = path.dirname(currentDir);
141
- }
142
- return null;
143
- }
144
- export function requireConfig() {
145
- const projectRoot = findProjectRoot();
146
- if (!projectRoot) {
147
- throw new Error('Not in a ForgeCart project. Run "forgecart init" to create a new project.');
148
- }
149
- const config = readConfig(projectRoot);
150
- if (!config) {
151
- throw new Error('Invalid ForgeCart configuration. Please reinitialize the project.');
152
- }
153
- return config;
154
- }
155
- export function getProjectRoot() {
156
- const root = findProjectRoot();
157
- if (!root) {
158
- throw new Error('Not in a ForgeCart project. Run "forgecart init" to create a new project.');
159
- }
160
- return root;
161
- }
162
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- import { ForgecartApiClient } from './api-client.js';
2
- import { DeploymentType } from '../types/index.js';
3
- export { DeploymentType };
4
- interface EnvVar {
5
- key: string;
6
- value: string;
7
- }
8
- /**
9
- * Parse a .env file and return key-value pairs
10
- */
11
- export declare function parseEnvFile(filePath: string): EnvVar[];
12
- /**
13
- * Get the .env file path for a deployment type
14
- */
15
- export declare function getEnvFilePath(type: DeploymentType): string | null;
16
- /**
17
- * Sync environment variables from a .env file to the deployment
18
- * Shows diff and asks for confirmation before applying
19
- */
20
- export declare function syncEnvToDeployment(apiClient: ForgecartApiClient, type: DeploymentType, options?: {
21
- skipConfirm?: boolean;
22
- }): Promise<{
23
- synced: number;
24
- removed: number;
25
- skipped: boolean;
26
- }>;
27
- /**
28
- * Sync environment variables for all deployments
29
- */
30
- export declare function syncAllEnvToDeployments(apiClient: ForgecartApiClient, options?: {
31
- skipConfirm?: boolean;
32
- }): Promise<{
33
- storefront: {
34
- synced: number;
35
- removed: number;
36
- skipped: boolean;
37
- };
38
- application: {
39
- synced: number;
40
- removed: number;
41
- skipped: boolean;
42
- };
43
- }>;
44
- //# sourceMappingURL=env-sync.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"env-sync.d.ts","sourceRoot":"","sources":["../../../src/lib/env-sync.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAiB,MAAM,mBAAmB,CAAA;AAIjE,OAAO,EAAE,cAAc,EAAE,CAAA;AAEzB,UAAU,MAAM;IACd,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd;AAQD;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAkCvD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAqBlE;AA+ED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,kBAAkB,EAC7B,IAAI,EAAE,cAAc,EACpB,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACtC,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAqEhE;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,kBAAkB,EAC7B,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACtC,OAAO,CAAC;IACT,UAAU,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAA;IACjE,WAAW,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAA;CACnE,CAAC,CAyBD"}
@@ -1,207 +0,0 @@
1
- import * as fs from 'fs';
2
- import * as path from 'path';
3
- import * as readline from 'readline';
4
- import logger from './logger.js';
5
- import { DeploymentType } from '../types/index.js';
6
- import { readConfig, findProjectRoot } from './config.js';
7
- // Re-export DeploymentType for convenience
8
- export { DeploymentType };
9
- /**
10
- * Parse a .env file and return key-value pairs
11
- */
12
- export function parseEnvFile(filePath) {
13
- if (!fs.existsSync(filePath)) {
14
- return [];
15
- }
16
- const content = fs.readFileSync(filePath, 'utf-8');
17
- const vars = [];
18
- for (const line of content.split('\n')) {
19
- // Skip empty lines and comments
20
- const trimmed = line.trim();
21
- if (!trimmed || trimmed.startsWith('#')) {
22
- continue;
23
- }
24
- // Parse key=value
25
- const match = trimmed.match(/^([A-Za-z_][A-Za-z0-9_]*)=(.*)$/);
26
- if (match) {
27
- const key = match[1];
28
- let value = match[2];
29
- // Remove surrounding quotes if present
30
- if ((value.startsWith('"') && value.endsWith('"')) ||
31
- (value.startsWith("'") && value.endsWith("'"))) {
32
- value = value.slice(1, -1);
33
- }
34
- vars.push({ key, value });
35
- }
36
- }
37
- return vars;
38
- }
39
- /**
40
- * Get the .env file path for a deployment type
41
- */
42
- export function getEnvFilePath(type) {
43
- const projectRoot = findProjectRoot();
44
- if (!projectRoot) {
45
- return null;
46
- }
47
- const config = readConfig();
48
- if (!config) {
49
- return null;
50
- }
51
- let appPath;
52
- if (type === DeploymentType.STOREFRONT) {
53
- appPath = config.storefrontPath || 'apps/storefront';
54
- }
55
- else if (type === DeploymentType.APPLICATION) {
56
- appPath = config.applicationPath || 'apps/application';
57
- }
58
- else {
59
- return null;
60
- }
61
- return path.join(projectRoot, appPath, '.env');
62
- }
63
- /**
64
- * Calculate diff between local .env and remote deployment env
65
- */
66
- function calculateEnvDiff(localVars, remoteVars) {
67
- const localMap = new Map(localVars.map((v) => [v.key, v.value]));
68
- const remoteMap = new Map(remoteVars.map((v) => [v.key, v.value]));
69
- const diff = { added: [], changed: [], removed: [] };
70
- // Find added and changed
71
- for (const [key, value] of localMap) {
72
- const remoteValue = remoteMap.get(key);
73
- if (remoteValue === undefined) {
74
- diff.added.push({ key, value });
75
- }
76
- else if (remoteValue !== value) {
77
- diff.changed.push({ key, oldValue: remoteValue, newValue: value });
78
- }
79
- }
80
- // Find removed
81
- for (const [key, value] of remoteMap) {
82
- if (!localMap.has(key)) {
83
- diff.removed.push({ key, value });
84
- }
85
- }
86
- return diff;
87
- }
88
- /**
89
- * Display diff to user
90
- */
91
- function displayEnvDiff(type, diff) {
92
- console.log(`\nEnvironment variable changes for ${type}:\n`);
93
- if (diff.added.length === 0 &&
94
- diff.changed.length === 0 &&
95
- diff.removed.length === 0) {
96
- console.log(' No changes detected.\n');
97
- return;
98
- }
99
- for (const { key, value } of diff.added) {
100
- console.log(` + ${key}=${value}`);
101
- }
102
- for (const { key, oldValue, newValue } of diff.changed) {
103
- console.log(` ~ ${key}=${newValue}`);
104
- console.log(` (was: ${oldValue})`);
105
- }
106
- for (const { key } of diff.removed) {
107
- console.log(` - ${key} (will be removed)`);
108
- }
109
- console.log();
110
- }
111
- /**
112
- * Prompt user for confirmation
113
- */
114
- async function promptConfirm(message) {
115
- const rl = readline.createInterface({
116
- input: process.stdin,
117
- output: process.stdout,
118
- });
119
- return new Promise((resolve) => {
120
- rl.question(`${message} (y/n): `, (answer) => {
121
- rl.close();
122
- resolve(answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes');
123
- });
124
- });
125
- }
126
- /**
127
- * Sync environment variables from a .env file to the deployment
128
- * Shows diff and asks for confirmation before applying
129
- */
130
- export async function syncEnvToDeployment(apiClient, type, options = {}) {
131
- // 1. Read local .env
132
- const envFilePath = getEnvFilePath(type);
133
- if (!envFilePath) {
134
- logger.warn(`Could not find .env file path for ${type}`);
135
- return { synced: 0, removed: 0, skipped: true };
136
- }
137
- if (!fs.existsSync(envFilePath)) {
138
- logger.debug(`No .env file found at ${envFilePath}`);
139
- return { synced: 0, removed: 0, skipped: true };
140
- }
141
- const localVars = parseEnvFile(envFilePath);
142
- // 2. Fetch remote env vars
143
- let remoteVars;
144
- try {
145
- remoteVars = await apiClient.getDeploymentEnv(type);
146
- }
147
- catch (error) {
148
- logger.warn(`Could not fetch remote env vars: ${error}`);
149
- remoteVars = [];
150
- }
151
- // 3. Calculate diff
152
- const diff = calculateEnvDiff(localVars, remoteVars);
153
- // 4. Display diff
154
- displayEnvDiff(type, diff);
155
- if (diff.added.length === 0 &&
156
- diff.changed.length === 0 &&
157
- diff.removed.length === 0) {
158
- return { synced: 0, removed: 0, skipped: false };
159
- }
160
- // 5. Confirm (unless skipped)
161
- if (!options.skipConfirm) {
162
- const confirmed = await promptConfirm('Apply changes?');
163
- if (!confirmed) {
164
- console.log('Skipped.\n');
165
- return { synced: 0, removed: 0, skipped: true };
166
- }
167
- }
168
- // 6. Apply changes
169
- const toSet = [
170
- ...diff.added,
171
- ...diff.changed.map((c) => ({ key: c.key, value: c.newValue })),
172
- ];
173
- const toRemove = diff.removed.map((r) => r.key);
174
- try {
175
- if (toSet.length > 0) {
176
- await apiClient.setDeploymentEnv(type, toSet);
177
- logger.debug(`Set ${toSet.length} environment variables`);
178
- }
179
- if (toRemove.length > 0) {
180
- await apiClient.unsetDeploymentEnv(type, toRemove);
181
- logger.debug(`Removed ${toRemove.length} environment variables`);
182
- }
183
- }
184
- catch (error) {
185
- logger.warn(`Error applying environment changes: ${error}`);
186
- return { synced: 0, removed: 0, skipped: false };
187
- }
188
- return { synced: toSet.length, removed: toRemove.length, skipped: false };
189
- }
190
- /**
191
- * Sync environment variables for all deployments
192
- */
193
- export async function syncAllEnvToDeployments(apiClient, options = {}) {
194
- const config = readConfig();
195
- const results = {
196
- storefront: { synced: 0, removed: 0, skipped: false },
197
- application: { synced: 0, removed: 0, skipped: false },
198
- };
199
- // Always sync storefront
200
- results.storefront = await syncEnvToDeployment(apiClient, DeploymentType.STOREFRONT, options);
201
- // Only sync application if it exists
202
- if (config?.hasApplication) {
203
- results.application = await syncEnvToDeployment(apiClient, DeploymentType.APPLICATION, options);
204
- }
205
- return results;
206
- }
207
- //# sourceMappingURL=env-sync.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"env-sync.js","sourceRoot":"","sources":["../../../src/lib/env-sync.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- export declare const logger: {
2
- info: (message: string) => void;
3
- success: (message: string) => void;
4
- warn: (message: string) => void;
5
- error: (message: string) => void;
6
- debug: (message: string) => void;
7
- log: (message: string) => void;
8
- newline: () => void;
9
- title: (message: string) => void;
10
- list: (items: string[]) => void;
11
- keyValue: (key: string, value: string) => void;
12
- box: (message: string) => void;
13
- };
14
- export default logger;
15
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/lib/logger.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;oBACD,MAAM;uBAIH,MAAM;oBAIT,MAAM;qBAIL,MAAM;qBAIN,MAAM;mBAMR,MAAM;;qBAQJ,MAAM;kBAMT,MAAM,EAAE;oBAMN,MAAM,SAAS,MAAM;mBAItB,MAAM;CActB,CAAA;AAED,eAAe,MAAM,CAAA"}
@@ -1,54 +0,0 @@
1
- import chalk from 'chalk';
2
- export const logger = {
3
- info: (message) => {
4
- console.log(chalk.blue('ℹ'), message);
5
- },
6
- success: (message) => {
7
- console.log(chalk.green('✔'), message);
8
- },
9
- warn: (message) => {
10
- console.log(chalk.yellow('⚠'), message);
11
- },
12
- error: (message) => {
13
- console.log(chalk.red('✖'), message);
14
- },
15
- debug: (message) => {
16
- if (process.env.DEBUG) {
17
- console.log(chalk.gray('⚙'), chalk.gray(message));
18
- }
19
- },
20
- log: (message) => {
21
- console.log(message);
22
- },
23
- newline: () => {
24
- console.log();
25
- },
26
- title: (message) => {
27
- console.log();
28
- console.log(chalk.bold.cyan(message));
29
- console.log(chalk.cyan('─'.repeat(message.length)));
30
- },
31
- list: (items) => {
32
- items.forEach((item) => {
33
- console.log(chalk.gray(' •'), item);
34
- });
35
- },
36
- keyValue: (key, value) => {
37
- console.log(` ${chalk.gray(key + ':')} ${value}`);
38
- },
39
- box: (message) => {
40
- const lines = message.split('\n');
41
- const maxLength = Math.max(...lines.map((l) => l.length));
42
- const border = '─'.repeat(maxLength + 2);
43
- console.log();
44
- console.log(chalk.cyan(`┌${border}┐`));
45
- lines.forEach((line) => {
46
- const padding = ' '.repeat(maxLength - line.length);
47
- console.log(chalk.cyan('│'), line + padding, chalk.cyan('│'));
48
- });
49
- console.log(chalk.cyan(`└${border}┘`));
50
- console.log();
51
- },
52
- };
53
- export default logger;
54
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/lib/logger.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- export declare const DEFAULT_NX_VERSION = "21.2.0";
2
- export declare function createNxWorkspace(projectName: string, targetDir: string, nxVersion?: string): Promise<boolean>;
3
- export declare function generateNextApp(appName: string, projectRoot: string): Promise<boolean>;
4
- export declare function generateNestApp(appName: string, projectRoot: string): Promise<boolean>;
5
- export declare function installDependency(packageName: string, projectRoot: string, dev?: boolean): Promise<boolean>;
6
- export declare function runNxBuild(appName: string, projectRoot: string): Promise<boolean>;
7
- export declare function runNxBuildMany(appNames: string[], projectRoot: string): Promise<boolean>;
8
- export declare function copyTemplateFiles(templateDir: string, targetDir: string, overwrite?: boolean): void;
9
- export declare function addPackageScripts(projectRoot: string, withApplication: boolean): void;
10
- export declare function getCliTemplatesDir(): string;
11
- /**
12
- * Create .env file with actual values from init config
13
- */
14
- export declare function createEnvFile(targetDir: string, type: 'storefront' | 'application', config: {
15
- channelToken: string;
16
- apiUrl: string;
17
- }): void;
18
- /**
19
- * Append .env patterns to .gitignore if not already present
20
- */
21
- export declare function appendEnvPatternsToGitignore(projectRoot: string): void;
22
- //# sourceMappingURL=nx-generator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nx-generator.d.ts","sourceRoot":"","sources":["../../../src/lib/nx-generator.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,kBAAkB,WAAW,CAAA;AAsE1C,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,MAA2B,GACrC,OAAO,CAAC,OAAO,CAAC,CA2DlB;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAmDlB;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CA+ClB;AAED,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,GAAG,UAAQ,GACV,OAAO,CAAC,OAAO,CAAC,CAgBlB;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAgBlB;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAAE,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAED,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,UAAO,GACf,IAAI,CAqBN;AAoBD,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,OAAO,GACvB,IAAI,CA+BN;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAwB3C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,YAAY,GAAG,aAAa,EAClC,MAAM,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC/C,IAAI,CA2BN;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAyBtE"}