@forgecart/cli 1.1.0 → 2.0.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.
- package/dist/bin/forgecart.d.ts +2 -0
- package/dist/bin/forgecart.js +4 -0
- package/dist/bin/forgecart.js.map +1 -0
- package/dist/src/cli.d.ts +14 -1
- package/dist/src/cli.js +30 -15
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/init.d.ts +20 -2
- package/dist/src/commands/init.js +88 -307
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/placeholders.d.ts +19 -0
- package/dist/src/commands/placeholders.js +109 -0
- package/dist/src/commands/placeholders.js.map +1 -0
- package/dist/src/output.d.ts +11 -0
- package/dist/src/output.js +16 -0
- package/dist/src/output.js.map +1 -0
- package/package.json +21 -11
- package/templates/storefront/.env.example +12 -0
- package/templates/storefront/.forgecartignore +2 -0
- package/templates/storefront/Procfile +1 -0
- package/templates/storefront/README.md +87 -0
- package/templates/storefront/next.config.js +14 -0
- package/templates/storefront/package.json +25 -0
- package/templates/storefront/postcss.config.js +6 -0
- package/templates/storefront/src/app/cart/page.tsx +110 -0
- package/templates/storefront/src/app/globals.css +13 -0
- package/templates/storefront/src/app/layout.tsx +30 -0
- package/templates/storefront/src/app/page.tsx +49 -0
- package/templates/storefront/src/app/products/[slug]/not-found.tsx +20 -0
- package/templates/storefront/src/app/products/[slug]/page.tsx +96 -0
- package/templates/storefront/src/app/products/page.tsx +27 -0
- package/templates/storefront/src/components/AddToCartButton.tsx +30 -0
- package/templates/storefront/src/components/Header.tsx +36 -0
- package/templates/storefront/src/components/ProductCard.tsx +43 -0
- package/templates/storefront/src/lib/cart-context.tsx +116 -0
- package/templates/storefront/src/lib/forgecart.ts +202 -0
- package/{dist/templates/storefront-additions → templates/storefront}/tailwind.config.js +1 -1
- package/templates/storefront/tsconfig.json +23 -0
- package/LICENSE +0 -21
- package/README.md +0 -179
- package/bin/forgecart.js +0 -3
- package/dist/package.json +0 -50
- package/dist/src/cli.d.ts.map +0 -1
- package/dist/src/commands/delete.d.ts +0 -3
- package/dist/src/commands/delete.d.ts.map +0 -1
- package/dist/src/commands/delete.js +0 -60
- package/dist/src/commands/delete.js.map +0 -1
- package/dist/src/commands/deploy.d.ts +0 -3
- package/dist/src/commands/deploy.d.ts.map +0 -1
- package/dist/src/commands/deploy.js +0 -243
- package/dist/src/commands/deploy.js.map +0 -1
- package/dist/src/commands/env.d.ts +0 -3
- package/dist/src/commands/env.d.ts.map +0 -1
- package/dist/src/commands/env.js +0 -158
- package/dist/src/commands/env.js.map +0 -1
- package/dist/src/commands/init.d.ts.map +0 -1
- package/dist/src/commands/list.d.ts +0 -3
- package/dist/src/commands/list.d.ts.map +0 -1
- package/dist/src/commands/list.js +0 -65
- package/dist/src/commands/list.js.map +0 -1
- package/dist/src/commands/login.d.ts +0 -3
- package/dist/src/commands/login.d.ts.map +0 -1
- package/dist/src/commands/login.js +0 -120
- package/dist/src/commands/login.js.map +0 -1
- package/dist/src/commands/logs.d.ts +0 -3
- package/dist/src/commands/logs.d.ts.map +0 -1
- package/dist/src/commands/logs.js +0 -88
- package/dist/src/commands/logs.js.map +0 -1
- package/dist/src/commands/scale.d.ts +0 -3
- package/dist/src/commands/scale.d.ts.map +0 -1
- package/dist/src/commands/scale.js +0 -49
- package/dist/src/commands/scale.js.map +0 -1
- package/dist/src/commands/status.d.ts +0 -3
- package/dist/src/commands/status.d.ts.map +0 -1
- package/dist/src/commands/status.js +0 -90
- package/dist/src/commands/status.js.map +0 -1
- package/dist/src/commands/whoami.d.ts +0 -3
- package/dist/src/commands/whoami.d.ts.map +0 -1
- package/dist/src/commands/whoami.js +0 -59
- package/dist/src/commands/whoami.js.map +0 -1
- package/dist/src/index.d.ts +0 -3
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -5
- package/dist/src/index.js.map +0 -1
- package/dist/src/lib/api-client.d.ts +0 -34
- package/dist/src/lib/api-client.d.ts.map +0 -1
- package/dist/src/lib/api-client.js +0 -141
- package/dist/src/lib/api-client.js.map +0 -1
- package/dist/src/lib/archive.d.ts +0 -9
- package/dist/src/lib/archive.d.ts.map +0 -1
- package/dist/src/lib/archive.js +0 -118
- package/dist/src/lib/archive.js.map +0 -1
- package/dist/src/lib/config-updater.d.ts +0 -10
- package/dist/src/lib/config-updater.d.ts.map +0 -1
- package/dist/src/lib/config-updater.js +0 -34
- package/dist/src/lib/config-updater.js.map +0 -1
- package/dist/src/lib/config.d.ts +0 -53
- package/dist/src/lib/config.d.ts.map +0 -1
- package/dist/src/lib/config.js +0 -162
- package/dist/src/lib/config.js.map +0 -1
- package/dist/src/lib/env-sync.d.ts +0 -44
- package/dist/src/lib/env-sync.d.ts.map +0 -1
- package/dist/src/lib/env-sync.js +0 -207
- package/dist/src/lib/env-sync.js.map +0 -1
- package/dist/src/lib/logger.d.ts +0 -15
- package/dist/src/lib/logger.d.ts.map +0 -1
- package/dist/src/lib/logger.js +0 -54
- package/dist/src/lib/logger.js.map +0 -1
- package/dist/src/lib/nx-generator.d.ts +0 -22
- package/dist/src/lib/nx-generator.d.ts.map +0 -1
- package/dist/src/lib/nx-generator.js +0 -345
- package/dist/src/lib/nx-generator.js.map +0 -1
- package/dist/src/lib/standalone.d.ts +0 -28
- package/dist/src/lib/standalone.d.ts.map +0 -1
- package/dist/src/lib/standalone.js +0 -107
- package/dist/src/lib/standalone.js.map +0 -1
- package/dist/src/types/index.d.ts +0 -80
- package/dist/src/types/index.d.ts.map +0 -1
- package/dist/src/types/index.js +0 -14
- package/dist/src/types/index.js.map +0 -1
- package/dist/src/utils/spinner.d.ts +0 -16
- package/dist/src/utils/spinner.d.ts.map +0 -1
- package/dist/src/utils/spinner.js +0 -88
- package/dist/src/utils/spinner.js.map +0 -1
- package/dist/src/utils/validation.d.ts +0 -12
- package/dist/src/utils/validation.d.ts.map +0 -1
- package/dist/src/utils/validation.js +0 -82
- package/dist/src/utils/validation.js.map +0 -1
- package/dist/templates/application-additions/.forgecartignore +0 -37
- package/dist/templates/application-additions/Procfile +0 -1
- package/dist/templates/application-additions/src/app/app.module.ts +0 -16
- package/dist/templates/application-additions/src/services/forgecart.service.ts +0 -62
- package/dist/templates/application-additions/src/services/index.ts +0 -2
- package/dist/templates/application-additions/src/services/product-event-listener.service.ts +0 -150
- package/dist/templates/application-e2e-additions/src/support/global-setup.ts +0 -16
- package/dist/templates/application-e2e-additions/src/support/test-setup.ts +0 -9
- package/dist/templates/storefront-additions/.forgecartignore +0 -64
- package/dist/templates/storefront-additions/Procfile +0 -1
- package/dist/templates/storefront-additions/package.json +0 -11
- package/dist/templates/storefront-additions/postcss.config.js +0 -5
- package/dist/templates/storefront-additions/src/app/cart/page.tsx +0 -77
- package/dist/templates/storefront-additions/src/app/global.css +0 -1
- package/dist/templates/storefront-additions/src/app/layout.tsx +0 -25
- package/dist/templates/storefront-additions/src/app/page.tsx +0 -43
- package/dist/templates/storefront-additions/src/components/AddToCartButton.tsx +0 -29
- package/dist/templates/storefront-additions/src/components/CartItem.tsx +0 -82
- package/dist/templates/storefront-additions/src/components/Header.tsx +0 -42
- package/dist/templates/storefront-additions/src/components/ProductCard.tsx +0 -57
- package/dist/templates/storefront-additions/src/components/QuantitySelector.tsx +0 -35
- package/dist/templates/storefront-additions/src/context/CartContext.tsx +0 -158
- package/dist/templates/storefront-additions/src/lib/forgecart.ts +0 -22
- package/dist/templates/storefront-e2e-additions/playwright.config.ts +0 -26
- package/dist/templates/storefront-e2e-additions/src/example.spec.ts +0 -11
- package/dist/templates/workspace/.nxignore +0 -2
- package/templates/application-additions/.forgecartignore +0 -37
- package/templates/application-additions/Procfile +0 -1
- package/templates/application-additions/src/app/app.module.ts +0 -16
- package/templates/application-additions/src/services/forgecart.service.ts +0 -62
- package/templates/application-additions/src/services/index.ts +0 -2
- package/templates/application-additions/src/services/product-event-listener.service.ts +0 -150
- package/templates/application-e2e-additions/src/support/global-setup.ts +0 -16
- package/templates/application-e2e-additions/src/support/test-setup.ts +0 -9
- package/templates/storefront-additions/.forgecartignore +0 -64
- package/templates/storefront-additions/Procfile +0 -1
- package/templates/storefront-additions/package.json +0 -11
- package/templates/storefront-additions/postcss.config.js +0 -5
- package/templates/storefront-additions/src/app/cart/page.tsx +0 -77
- package/templates/storefront-additions/src/app/global.css +0 -1
- package/templates/storefront-additions/src/app/layout.tsx +0 -25
- package/templates/storefront-additions/src/app/page.tsx +0 -43
- package/templates/storefront-additions/src/components/AddToCartButton.tsx +0 -29
- package/templates/storefront-additions/src/components/CartItem.tsx +0 -82
- package/templates/storefront-additions/src/components/Header.tsx +0 -42
- package/templates/storefront-additions/src/components/ProductCard.tsx +0 -57
- package/templates/storefront-additions/src/components/QuantitySelector.tsx +0 -35
- package/templates/storefront-additions/src/context/CartContext.tsx +0 -158
- package/templates/storefront-additions/src/lib/forgecart.ts +0 -22
- package/templates/storefront-additions/tailwind.config.js +0 -8
- package/templates/storefront-e2e-additions/playwright.config.ts +0 -26
- package/templates/storefront-e2e-additions/src/example.spec.ts +0 -11
- 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 +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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"}
|
package/dist/src/index.d.ts
DELETED
package/dist/src/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":""}
|
package/dist/src/index.js
DELETED
package/dist/src/index.js.map
DELETED
|
@@ -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"}
|
package/dist/src/lib/archive.js
DELETED
|
@@ -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"}
|
package/dist/src/lib/config.d.ts
DELETED
|
@@ -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"}
|