@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,90 +0,0 @@
1
- import { Command } from 'commander';
2
- import chalk from 'chalk';
3
- import logger from '../lib/logger.js';
4
- import { requireConfig, requireAuth } from '../lib/config.js';
5
- import { ForgecartApiClient } from '../lib/api-client.js';
6
- import { DeploymentStatus } from '../types/index.js';
7
- import { withSpinner } from '../utils/spinner.js';
8
- export function createStatusCommand() {
9
- const cmd = new Command('status')
10
- .description('Show detailed deployment status')
11
- .argument('[type]', 'Deployment type (storefront or application)')
12
- .action(async (type) => {
13
- await showStatus(type);
14
- });
15
- return cmd;
16
- }
17
- function getStatusColor(status) {
18
- switch (status) {
19
- case DeploymentStatus.RUNNING:
20
- return chalk.green(status);
21
- case DeploymentStatus.STAGING:
22
- return chalk.yellow(status);
23
- case DeploymentStatus.PENDING:
24
- return chalk.blue(status);
25
- case DeploymentStatus.ERROR:
26
- return chalk.red(status);
27
- case DeploymentStatus.STOPPED:
28
- return chalk.gray(status);
29
- default:
30
- return status;
31
- }
32
- }
33
- async function showStatus(type) {
34
- // Check authentication first
35
- const authToken = requireAuth();
36
- const config = requireConfig();
37
- const apiClient = new ForgecartApiClient(config.apiUrl, config.channelToken, authToken);
38
- if (type) {
39
- // Show status for specific deployment
40
- const deployment = await withSpinner('Fetching deployment status...', 'Status retrieved', 'Failed to fetch status', async () => {
41
- return apiClient.refreshDeploymentStatus(type);
42
- });
43
- if (!deployment) {
44
- logger.error(`No ${type} deployment found`);
45
- apiClient.dispose();
46
- return;
47
- }
48
- logger.newline();
49
- logger.title(`${type} Deployment`);
50
- logger.keyValue('ID', deployment.id);
51
- logger.keyValue('Status', getStatusColor(deployment.status));
52
- logger.keyValue('URL', deployment.url || 'Not available');
53
- logger.keyValue('Instances', deployment.instances.toString());
54
- logger.keyValue('Last Deployed', deployment.lastDeployedAt
55
- ? new Date(deployment.lastDeployedAt).toLocaleString()
56
- : 'Never');
57
- if (deployment.errorMessage) {
58
- logger.newline();
59
- logger.error(`Error: ${deployment.errorMessage}`);
60
- }
61
- }
62
- else {
63
- // Show status for all deployments
64
- const deployments = await withSpinner('Fetching deployment status...', 'Status retrieved', 'Failed to fetch status', async () => {
65
- return apiClient.getDeployments();
66
- });
67
- if (deployments.length === 0) {
68
- logger.info('No deployments found');
69
- apiClient.dispose();
70
- return;
71
- }
72
- for (const deployment of deployments) {
73
- logger.newline();
74
- logger.title(`${deployment.type} Deployment`);
75
- logger.keyValue('ID', deployment.id);
76
- logger.keyValue('Status', getStatusColor(deployment.status));
77
- logger.keyValue('URL', deployment.url || 'Not available');
78
- logger.keyValue('Instances', deployment.instances.toString());
79
- logger.keyValue('Last Deployed', deployment.lastDeployedAt
80
- ? new Date(deployment.lastDeployedAt).toLocaleString()
81
- : 'Never');
82
- if (deployment.errorMessage) {
83
- logger.newline();
84
- logger.error(`Error: ${deployment.errorMessage}`);
85
- }
86
- }
87
- }
88
- apiClient.dispose();
89
- }
90
- //# sourceMappingURL=status.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare function createWhoamiCommand(): Command;
3
- //# sourceMappingURL=whoami.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../../src/commands/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAMnC,wBAAgB,mBAAmB,IAAI,OAAO,CAQ7C"}
@@ -1,59 +0,0 @@
1
- import { Command } from 'commander';
2
- import logger from '../lib/logger.js';
3
- import { readConfig, findProjectRoot, requireAuth } from '../lib/config.js';
4
- import { ForgecartApiClient } from '../lib/api-client.js';
5
- import { withSpinner } from '../utils/spinner.js';
6
- export function createWhoamiCommand() {
7
- const cmd = new Command('whoami')
8
- .description('Show current channel information')
9
- .action(async () => {
10
- await showWhoami();
11
- });
12
- return cmd;
13
- }
14
- async function showWhoami() {
15
- const projectRoot = findProjectRoot();
16
- if (!projectRoot) {
17
- logger.error('Not in a ForgeCart project');
18
- process.exit(1);
19
- }
20
- const config = readConfig(projectRoot);
21
- if (!config) {
22
- logger.error('Invalid ForgeCart configuration');
23
- process.exit(1);
24
- }
25
- // Check authentication first
26
- const authToken = requireAuth();
27
- const apiClient = new ForgecartApiClient(config.apiUrl, config.channelToken, authToken);
28
- const channelInfo = await withSpinner('Fetching channel information...', 'Channel information retrieved', 'Failed to fetch channel information', async () => {
29
- return apiClient.getChannelInfo();
30
- });
31
- if (!channelInfo) {
32
- logger.error('Unable to fetch channel information. Your token may be invalid.');
33
- apiClient.dispose();
34
- process.exit(1);
35
- }
36
- logger.newline();
37
- logger.title('Channel Information');
38
- logger.keyValue('Name', channelInfo.name);
39
- logger.keyValue('Domain', channelInfo.domain);
40
- logger.keyValue('Channel ID', channelInfo.id);
41
- logger.keyValue('API URL', config.apiUrl);
42
- logger.newline();
43
- logger.title('Application');
44
- if (channelInfo.hasApplication && channelInfo.applicationName) {
45
- logger.keyValue('Name', channelInfo.applicationName);
46
- }
47
- else {
48
- logger.info('No application deployed');
49
- }
50
- logger.newline();
51
- logger.title('Project');
52
- logger.keyValue('Root', projectRoot);
53
- logger.keyValue('Storefront Path', config.storefrontPath);
54
- if (config.applicationPath) {
55
- logger.keyValue('Application Path', config.applicationPath);
56
- }
57
- apiClient.dispose();
58
- }
59
- //# sourceMappingURL=whoami.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../../src/commands/whoami.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":""}
package/dist/src/index.js DELETED
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env node
2
- import { createProgram } from './cli.js';
3
- const program = createProgram();
4
- program.parse(process.argv);
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAA;AAE/B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA"}
@@ -1,34 +0,0 @@
1
- import { Deployment, DeploymentType, DeploymentEnv, ChannelInfo, DeploymentLogEntry } from '../types/index.js';
2
- interface DeploymentLogsResult {
3
- deploymentLogs: DeploymentLogEntry;
4
- }
5
- export declare class ForgecartApiClient {
6
- private sdk;
7
- private baseUrl;
8
- private channelToken;
9
- private authToken?;
10
- constructor(apiUrl: string, channelToken: string, authToken?: string);
11
- validateChannelToken(): Promise<boolean>;
12
- getChannelInfo(): Promise<ChannelInfo | null>;
13
- getDeployments(): Promise<Deployment[]>;
14
- getDeployment(type: DeploymentType): Promise<Deployment | null>;
15
- createDeployment(type: DeploymentType, envVars?: Array<{
16
- key: string;
17
- value: string;
18
- }>): Promise<Deployment>;
19
- deleteDeployment(type: DeploymentType): Promise<boolean>;
20
- scaleDeployment(type: DeploymentType, instances: number): Promise<Deployment>;
21
- getDeploymentEnv(type: DeploymentType): Promise<DeploymentEnv[]>;
22
- setDeploymentEnv(type: DeploymentType, envVars: Array<{
23
- key: string;
24
- value: string;
25
- }>): Promise<boolean>;
26
- unsetDeploymentEnv(type: DeploymentType, keys: string[]): Promise<boolean>;
27
- refreshDeploymentStatus(type: DeploymentType): Promise<Deployment | null>;
28
- private toSdkType;
29
- uploadAndDeploy(type: DeploymentType, zipBuffer: Buffer, envVars?: Record<string, string>): Promise<Deployment>;
30
- subscribeToDeploymentLogs(type: DeploymentType): AsyncIterableIterator<DeploymentLogsResult>;
31
- dispose(): void;
32
- }
33
- export {};
34
- //# sourceMappingURL=api-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../../src/lib/api-client.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,UAAU,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACX,kBAAkB,EACnB,MAAM,mBAAmB,CAAA;AAE1B,UAAU,oBAAoB;IAC5B,cAAc,EAAE,kBAAkB,CAAA;CACnC;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,SAAS,CAAC,CAAQ;gBAEd,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAkB9D,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;IASxC,cAAc,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAU7C,cAAc,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAKvC,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAO/D,gBAAgB,CACpB,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAC9C,OAAO,CAAC,UAAU,CAAC;IAOhB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAOxD,eAAe,CACnB,IAAI,EAAE,cAAc,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,CAAC;IAOhB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAOhE,gBAAgB,CACpB,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAC7C,OAAO,CAAC,OAAO,CAAC;IAOb,kBAAkB,CACtB,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,OAAO,CAAC;IAOb,uBAAuB,CAC3B,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAQ7B,OAAO,CAAC,SAAS;IAKX,eAAe,CACnB,IAAI,EAAE,cAAc,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,UAAU,CAAC;IA0CtB,yBAAyB,CACvB,IAAI,EAAE,cAAc,GACnB,qBAAqB,CAAC,oBAAoB,CAAC;IAM9C,OAAO,IAAI,IAAI;CAGhB"}
@@ -1,141 +0,0 @@
1
- import { ForgeCartSDK } from '@forgecart/sdk';
2
- import FormData from 'form-data';
3
- import WebSocket from 'ws';
4
- export class ForgecartApiClient {
5
- sdk;
6
- baseUrl;
7
- channelToken;
8
- authToken;
9
- constructor(apiUrl, channelToken, authToken) {
10
- this.baseUrl = apiUrl;
11
- this.channelToken = channelToken;
12
- this.authToken = authToken;
13
- // Initialize SDK with WebSocket support for Node.js
14
- this.sdk = new ForgeCartSDK({
15
- endpoint: apiUrl,
16
- token: channelToken,
17
- webSocketImpl: WebSocket,
18
- });
19
- // Set auth token if provided
20
- if (authToken) {
21
- this.sdk.setAdminAuthToken(authToken);
22
- }
23
- }
24
- async validateChannelToken() {
25
- try {
26
- const result = await this.sdk.admin.deployment.validateChannelToken();
27
- return result.validateChannelToken;
28
- }
29
- catch {
30
- return false;
31
- }
32
- }
33
- async getChannelInfo() {
34
- try {
35
- const result = await this.sdk.admin.deployment.channelInfo();
36
- return result.channelInfo;
37
- }
38
- catch (error) {
39
- console.error('Error fetching channel info:', error);
40
- return null;
41
- }
42
- }
43
- async getDeployments() {
44
- const result = await this.sdk.admin.deployment.deployments();
45
- return result.deployments;
46
- }
47
- async getDeployment(type) {
48
- const result = await this.sdk.admin.deployment.deployment({
49
- type: this.toSdkType(type),
50
- });
51
- return result.deployment;
52
- }
53
- async createDeployment(type, envVars) {
54
- const result = await this.sdk.admin.deployment.createDeployment({
55
- input: { type: this.toSdkType(type), envVars },
56
- });
57
- return result.createDeployment;
58
- }
59
- async deleteDeployment(type) {
60
- const result = await this.sdk.admin.deployment.deleteDeployment({
61
- type: this.toSdkType(type),
62
- });
63
- return result.deleteDeployment;
64
- }
65
- async scaleDeployment(type, instances) {
66
- const result = await this.sdk.admin.deployment.scaleDeployment({
67
- input: { type: this.toSdkType(type), instances },
68
- });
69
- return result.scaleDeployment;
70
- }
71
- async getDeploymentEnv(type) {
72
- const result = await this.sdk.admin.deployment.deploymentEnv({
73
- type: this.toSdkType(type),
74
- });
75
- return result.deploymentEnv;
76
- }
77
- async setDeploymentEnv(type, envVars) {
78
- const result = await this.sdk.admin.deployment.setDeploymentEnv({
79
- input: { type: this.toSdkType(type), envVars },
80
- });
81
- return result.setDeploymentEnv;
82
- }
83
- async unsetDeploymentEnv(type, keys) {
84
- const result = await this.sdk.admin.deployment.unsetDeploymentEnv({
85
- input: { type: this.toSdkType(type), keys },
86
- });
87
- return result.unsetDeploymentEnv;
88
- }
89
- async refreshDeploymentStatus(type) {
90
- const result = await this.sdk.admin.deployment.refreshDeploymentStatus({
91
- type: this.toSdkType(type),
92
- });
93
- return result.refreshDeploymentStatus;
94
- }
95
- // Helper to convert CLI enum to SDK type (both use same string values)
96
- toSdkType(type) {
97
- return type;
98
- }
99
- // File upload uses REST endpoint, not GraphQL
100
- async uploadAndDeploy(type, zipBuffer, envVars) {
101
- const formData = new FormData();
102
- formData.append('file', zipBuffer, {
103
- filename: 'app.zip',
104
- contentType: 'application/zip',
105
- });
106
- // Add env vars as JSON string if provided
107
- if (envVars && Object.keys(envVars).length > 0) {
108
- formData.append('envVars', JSON.stringify(envVars));
109
- }
110
- // Build headers - form-data package requires its own headers for multipart boundary
111
- const headers = {
112
- 'forge-token': this.channelToken,
113
- ...formData.getHeaders(),
114
- };
115
- if (this.authToken) {
116
- headers['Authorization'] = `Bearer ${this.authToken}`;
117
- }
118
- // Get the complete form data buffer
119
- const body = formData.getBuffer();
120
- const response = await fetch(`${this.baseUrl}/deployments/${type}/upload`, {
121
- method: 'POST',
122
- headers,
123
- body: body,
124
- });
125
- if (!response.ok) {
126
- const errorText = await response.text();
127
- throw new Error(`Deployment failed: ${response.status} - ${errorText}`);
128
- }
129
- const result = (await response.json());
130
- return result.deployment;
131
- }
132
- subscribeToDeploymentLogs(type) {
133
- return this.sdk.admin.deployment.deploymentLogs({
134
- type: this.toSdkType(type),
135
- });
136
- }
137
- dispose() {
138
- this.sdk.dispose();
139
- }
140
- }
141
- //# sourceMappingURL=api-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- interface ArchiveOptions {
2
- sourceDir: string;
3
- ignoreFile?: string;
4
- includeEnvFile?: boolean;
5
- }
6
- export declare function createArchive(options: ArchiveOptions): Promise<Buffer>;
7
- export declare function getIgnoreFileForType(): string;
8
- export {};
9
- //# sourceMappingURL=archive.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../../src/lib/archive.ts"],"names":[],"mappings":"AAIA,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAyGD,wBAAsB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAmC5E;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C"}
@@ -1,118 +0,0 @@
1
- import * as fs from 'fs';
2
- import * as path from 'path';
3
- import archiver from 'archiver';
4
- function parseIgnoreFile(ignoreFilePath) {
5
- if (!fs.existsSync(ignoreFilePath)) {
6
- return [];
7
- }
8
- const content = fs.readFileSync(ignoreFilePath, 'utf-8');
9
- return content
10
- .split('\n')
11
- .map((line) => line.trim())
12
- .filter((line) => line && !line.startsWith('#'));
13
- }
14
- function shouldIgnore(filePath, patterns) {
15
- const relativePath = filePath.replace(/\\/g, '/');
16
- for (const pattern of patterns) {
17
- // Handle root-level patterns (starting with /)
18
- // These only match at the root of the archive, not nested paths
19
- if (pattern.startsWith('/')) {
20
- const rootPattern = pattern.slice(1); // Remove leading /
21
- if (rootPattern.endsWith('/')) {
22
- // Root-level directory pattern
23
- const dirPattern = rootPattern.slice(0, -1);
24
- if (relativePath.startsWith(dirPattern + '/') ||
25
- relativePath === dirPattern) {
26
- return true;
27
- }
28
- }
29
- else if (relativePath === rootPattern) {
30
- // Root-level exact file match
31
- return true;
32
- }
33
- continue;
34
- }
35
- // Handle directory patterns (ending with /)
36
- if (pattern.endsWith('/')) {
37
- const dirPattern = pattern.slice(0, -1);
38
- if (relativePath.startsWith(dirPattern + '/') ||
39
- relativePath === dirPattern ||
40
- relativePath.includes('/' + dirPattern + '/') ||
41
- relativePath.endsWith('/' + dirPattern)) {
42
- return true;
43
- }
44
- }
45
- // Handle exact matches
46
- else if (relativePath === pattern || relativePath.endsWith('/' + pattern)) {
47
- return true;
48
- }
49
- // Handle glob patterns with *
50
- else if (pattern.includes('*')) {
51
- const regex = new RegExp('^' +
52
- pattern
53
- .replace(/\./g, '\\.')
54
- .replace(/\*\*/g, '.*')
55
- .replace(/\*/g, '[^/]*') +
56
- '$');
57
- if (regex.test(relativePath)) {
58
- return true;
59
- }
60
- }
61
- // Handle patterns that match any file with that name
62
- else if (relativePath.includes('/' + pattern) || relativePath === pattern) {
63
- return true;
64
- }
65
- }
66
- return false;
67
- }
68
- function getAllFiles(dir, baseDir, ignorePatterns) {
69
- const files = [];
70
- const items = fs.readdirSync(dir, { withFileTypes: true });
71
- for (const item of items) {
72
- const fullPath = path.join(dir, item.name);
73
- const relativePath = path.relative(baseDir, fullPath).replace(/\\/g, '/');
74
- if (shouldIgnore(relativePath, ignorePatterns)) {
75
- continue;
76
- }
77
- if (item.isDirectory()) {
78
- files.push(...getAllFiles(fullPath, baseDir, ignorePatterns));
79
- }
80
- else {
81
- files.push(fullPath);
82
- }
83
- }
84
- return files;
85
- }
86
- export async function createArchive(options) {
87
- const { sourceDir, ignoreFile, includeEnvFile } = options;
88
- // Parse ignore patterns
89
- // Use leading slash for root-level only patterns (e.g., /node_modules/ won't match .next/standalone/node_modules/)
90
- const defaultIgnorePatterns = includeEnvFile
91
- ? ['/node_modules/', '.git/', '.deploy/']
92
- : ['/node_modules/', '.git/', '.env', '.env.local', '.deploy/'];
93
- let ignorePatterns = [...defaultIgnorePatterns];
94
- if (ignoreFile) {
95
- const customPatterns = parseIgnoreFile(path.join(sourceDir, ignoreFile));
96
- ignorePatterns = [...ignorePatterns, ...customPatterns];
97
- }
98
- // Get all files to include
99
- const files = getAllFiles(sourceDir, sourceDir, ignorePatterns);
100
- // Create archive
101
- return new Promise((resolve, reject) => {
102
- const chunks = [];
103
- const archive = archiver('zip', { zlib: { level: 9 } });
104
- archive.on('data', (chunk) => chunks.push(chunk));
105
- archive.on('end', () => resolve(Buffer.concat(chunks)));
106
- archive.on('error', reject);
107
- for (const file of files) {
108
- const relativePath = path.relative(sourceDir, file);
109
- // Use mode 0644 for files to ensure buildpack can read them
110
- archive.file(file, { name: relativePath, mode: 0o644 });
111
- }
112
- archive.finalize();
113
- });
114
- }
115
- export function getIgnoreFileForType() {
116
- return '.forgecartignore';
117
- }
118
- //# sourceMappingURL=archive.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/lib/archive.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Ensures that the Next.js config has standalone output enabled.
3
- * This is required for ForgeCart deployment because Turbopack (Next.js 16 default)
4
- * doesn't work with Paketo buildpack's symlinked node_modules.
5
- *
6
- * @param storefrontDir - Path to the storefront app directory
7
- * @returns true if standalone output is configured (either already or newly added), false if config couldn't be updated
8
- */
9
- export declare function ensureStandaloneOutput(storefrontDir: string): boolean;
10
- //# sourceMappingURL=config-updater.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-updater.d.ts","sourceRoot":"","sources":["../../../src/lib/config-updater.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAiCrE"}
@@ -1,34 +0,0 @@
1
- import * as fs from 'fs';
2
- import * as path from 'path';
3
- /**
4
- * Ensures that the Next.js config has standalone output enabled.
5
- * This is required for ForgeCart deployment because Turbopack (Next.js 16 default)
6
- * doesn't work with Paketo buildpack's symlinked node_modules.
7
- *
8
- * @param storefrontDir - Path to the storefront app directory
9
- * @returns true if standalone output is configured (either already or newly added), false if config couldn't be updated
10
- */
11
- export function ensureStandaloneOutput(storefrontDir) {
12
- const configPath = path.join(storefrontDir, 'next.config.js');
13
- if (!fs.existsSync(configPath)) {
14
- return false;
15
- }
16
- let content = fs.readFileSync(configPath, 'utf-8');
17
- // Check if standalone output is already configured
18
- if (content.includes("output: 'standalone'") ||
19
- content.includes('output: "standalone"')) {
20
- return true; // Already configured
21
- }
22
- // Find the nextConfig object and add output: 'standalone'
23
- // Look for patterns like "const nextConfig = {" or "const nextConfig: ... = {"
24
- const configPattern = /(const\s+nextConfig[^=]*=\s*\{)/;
25
- const match = content.match(configPattern);
26
- if (match) {
27
- // Insert after the opening brace
28
- content = content.replace(configPattern, `$1\n // Standalone output for deployment - creates self-contained build\n output: 'standalone',\n`);
29
- fs.writeFileSync(configPath, content);
30
- return true;
31
- }
32
- return false;
33
- }
34
- //# sourceMappingURL=config-updater.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-updater.js","sourceRoot":"","sources":["../../../src/lib/config-updater.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,aAAqB;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAA;IAE7D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAElD,mDAAmD;IACnD,IACE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACxC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EACxC,CAAC;QACD,OAAO,IAAI,CAAA,CAAC,qBAAqB;IACnC,CAAC;IAED,0DAA0D;IAC1D,+EAA+E;IAC/E,MAAM,aAAa,GAAG,iCAAiC,CAAA;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAE1C,IAAI,KAAK,EAAE,CAAC;QACV,iCAAiC;QACjC,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,aAAa,EACb,qGAAqG,CACtG,CAAA;QACD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACrC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -1,53 +0,0 @@
1
- import { ForgecartConfig } from '../types/index.js';
2
- /**
3
- * Global auth config stored in ~/.forgecart/
4
- */
5
- export interface GlobalAuthConfig {
6
- authToken?: string;
7
- apiUrl?: string;
8
- }
9
- /**
10
- * Gets the global config directory (~/.forgecart/)
11
- */
12
- export declare function getGlobalConfigDir(): string;
13
- /**
14
- * Gets the global auth file path (~/.forgecart/auth.json)
15
- */
16
- export declare function getGlobalConfigPath(): string;
17
- /**
18
- * Reads the global auth config from ~/.forgecart/auth.json
19
- */
20
- export declare function readGlobalConfig(): GlobalAuthConfig | null;
21
- /**
22
- * Writes the global auth config to ~/.forgecart/auth.json
23
- */
24
- export declare function writeGlobalConfig(config: GlobalAuthConfig): void;
25
- /**
26
- * Updates the global auth config
27
- */
28
- export declare function updateGlobalConfig(updates: Partial<GlobalAuthConfig>): GlobalAuthConfig;
29
- /**
30
- * Gets the auth token from global config.
31
- * Throws an error if not authenticated.
32
- */
33
- export declare function getAuthToken(): string;
34
- /**
35
- * Guard function to check authentication before running a command.
36
- * Exits with a clear error message if not authenticated.
37
- */
38
- export declare function requireAuth(): string;
39
- /**
40
- * Gets the API URL from global config, or returns the default.
41
- */
42
- export declare function getGlobalApiUrl(): string;
43
- export declare function getConfigDir(projectRoot: string): string;
44
- export declare function getConfigPath(projectRoot: string): string;
45
- export declare function configExists(projectRoot?: string): boolean;
46
- export declare function readConfig(projectRoot?: string): ForgecartConfig | null;
47
- export declare function writeConfig(config: ForgecartConfig, projectRoot?: string): void;
48
- export declare function updateConfig(updates: Partial<ForgecartConfig>, projectRoot?: string): ForgecartConfig;
49
- export declare function getDefaultConfig(): ForgecartConfig;
50
- export declare function findProjectRoot(startDir?: string): string | null;
51
- export declare function requireConfig(): ForgecartConfig;
52
- export declare function getProjectRoot(): string;
53
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/lib/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAanD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,GAAG,IAAI,CAa1D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAShE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACjC,gBAAgB,CAKlB;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAMrC;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,CASpC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAGxC;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,YAAY,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAEzE;AAED,wBAAgB,UAAU,CACxB,WAAW,GAAE,MAAsB,GAClC,eAAe,GAAG,IAAI,CAaxB;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,eAAe,EACvB,WAAW,GAAE,MAAsB,GAClC,IAAI,CASN;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,EACjC,WAAW,GAAE,MAAsB,GAClC,eAAe,CAKjB;AAED,wBAAgB,gBAAgB,IAAI,eAAe,CAElD;AAED,wBAAgB,eAAe,CAC7B,QAAQ,GAAE,MAAsB,GAC/B,MAAM,GAAG,IAAI,CAYf;AAED,wBAAgB,aAAa,IAAI,eAAe,CAgB/C;AAED,wBAAgB,cAAc,IAAI,MAAM,CAQvC"}