@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.
- 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 +39 -2
- package/dist/src/commands/init.js +173 -301
- 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 +88 -0
- package/templates/storefront/src/app/globals.css +13 -0
- package/templates/storefront/src/app/layout.tsx +32 -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 +61 -0
- package/templates/storefront/src/app/products/page.tsx +27 -0
- package/templates/storefront/src/components/Header.tsx +47 -0
- package/templates/storefront/src/components/ProductCard.tsx +40 -0
- package/templates/storefront/src/components/ProductPurchase.tsx +91 -0
- package/templates/storefront/src/lib/cart-actions.ts +148 -0
- package/templates/storefront/src/lib/cart-context.tsx +88 -0
- package/templates/storefront/src/lib/forgecart.ts +187 -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,319 +1,191 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import { mkdir, cp, readFile, rm, writeFile, stat } from 'node:fs/promises';
|
|
2
|
+
import { dirname, join, resolve } from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
4
|
import { Command } from 'commander';
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
5
|
+
import { print } from '../output.js';
|
|
6
|
+
/** Default shop API base. Overridable via `--api-url`. */
|
|
7
|
+
export const DEFAULT_SHOP_API_URL = 'https://api.forgecart.com';
|
|
8
|
+
/**
|
|
9
|
+
* Environment variable naming a dependency-warmed storefront template — a copy
|
|
10
|
+
* of the bundled template with `node_modules` (and the generated
|
|
11
|
+
* `package-lock.json`) already installed. The workspace-pod image bakes one at
|
|
12
|
+
* build time (`docker/workspace-pod/Dockerfile`) and exports this variable so a
|
|
13
|
+
* pod scaffold copies warm dependencies instead of paying a cold `npm install`.
|
|
14
|
+
*/
|
|
15
|
+
export const WORKSPACE_TEMPLATE_DIR_ENV = 'WORKSPACE_TEMPLATE_DIR';
|
|
16
|
+
/**
|
|
17
|
+
* Marker file, relative to the scaffolded storefront root, recording that
|
|
18
|
+
* `node_modules` was copied fully installed from a warmed template whose
|
|
19
|
+
* manifest matches this CLI's bundled template. Orchestrators (the agent's
|
|
20
|
+
* `ChannelWorkspaceService`) skip their `npm install` step when the marker is
|
|
21
|
+
* present right after a fresh scaffold; its absence always falls back to a
|
|
22
|
+
* regular install, so older images and cold scaffolds keep working unchanged.
|
|
23
|
+
*/
|
|
24
|
+
export const DEPS_READY_MARKER_PATH = '.forgecart/deps-ready.json';
|
|
25
|
+
/**
|
|
26
|
+
* Absolute path to the bundled storefront scaffold.
|
|
27
|
+
*
|
|
28
|
+
* At runtime this file lives at `<pkg>/dist/src/commands/init.js`, so the
|
|
29
|
+
* `templates/` directory shipped alongside `dist/` is three levels up.
|
|
30
|
+
*/
|
|
31
|
+
function getStorefrontTemplateDir() {
|
|
32
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
33
|
+
return resolve(here, '..', '..', '..', 'templates', 'storefront');
|
|
32
34
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
let projectName = name;
|
|
39
|
-
if (!projectName) {
|
|
40
|
-
const answers = await inquirer.prompt([
|
|
41
|
-
{
|
|
42
|
-
type: 'input',
|
|
43
|
-
name: 'projectName',
|
|
44
|
-
message: 'Project name:',
|
|
45
|
-
validate: (input) => {
|
|
46
|
-
if (!input)
|
|
47
|
-
return 'Project name is required';
|
|
48
|
-
if (!isValidProjectName(input)) {
|
|
49
|
-
return 'Project name must start with a letter and contain only lowercase letters, numbers, and hyphens';
|
|
50
|
-
}
|
|
51
|
-
return true;
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
]);
|
|
55
|
-
projectName = answers.projectName;
|
|
35
|
+
/** True if the path exists and is a directory. */
|
|
36
|
+
async function isDirectory(path) {
|
|
37
|
+
try {
|
|
38
|
+
const info = await stat(path);
|
|
39
|
+
return info.isDirectory();
|
|
56
40
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
logger.error('Invalid project name. Must start with a letter and contain only lowercase letters, numbers, and hyphens.');
|
|
60
|
-
process.exit(1);
|
|
41
|
+
catch {
|
|
42
|
+
return false;
|
|
61
43
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Read a `package.json` and normalize it for content comparison. Returns null
|
|
47
|
+
* when the file is missing or not valid JSON — callers treat that as "manifests
|
|
48
|
+
* do not provably match", which always falls back to an install.
|
|
49
|
+
*/
|
|
50
|
+
async function readNormalizedManifest(manifestPath) {
|
|
51
|
+
try {
|
|
52
|
+
return JSON.stringify(JSON.parse(await readFile(manifestPath, 'utf8')));
|
|
67
53
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
if (!channelToken) {
|
|
71
|
-
const answers = await inquirer.prompt([
|
|
72
|
-
{
|
|
73
|
-
type: 'input',
|
|
74
|
-
name: 'channelToken',
|
|
75
|
-
message: 'ForgeCart channel token:',
|
|
76
|
-
validate: (input) => {
|
|
77
|
-
if (!input)
|
|
78
|
-
return 'Channel token is required';
|
|
79
|
-
return true;
|
|
80
|
-
},
|
|
81
|
-
},
|
|
82
|
-
]);
|
|
83
|
-
channelToken = answers.channelToken;
|
|
54
|
+
catch {
|
|
55
|
+
return null;
|
|
84
56
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Decide how to source the scaffold. The warmed template is used only when
|
|
60
|
+
* {@link WORKSPACE_TEMPLATE_DIR_ENV} points at a directory that actually
|
|
61
|
+
* contains an installed `node_modules`; full reuse (skipping the install)
|
|
62
|
+
* additionally requires its manifest to match the bundled template's, byte for
|
|
63
|
+
* semantic byte. Every failure mode degrades to the cold bundled path, so
|
|
64
|
+
* images without a warmed template — and machines where the variable is unset —
|
|
65
|
+
* behave exactly as before.
|
|
66
|
+
*/
|
|
67
|
+
async function resolveScaffoldPlan(bundledTemplateDir) {
|
|
68
|
+
const bundled = { source: 'bundled', templateDir: bundledTemplateDir };
|
|
69
|
+
const warmedDir = process.env[WORKSPACE_TEMPLATE_DIR_ENV];
|
|
70
|
+
if (!warmedDir)
|
|
71
|
+
return bundled;
|
|
72
|
+
if (!(await isDirectory(warmedDir)))
|
|
73
|
+
return bundled;
|
|
74
|
+
const warmedNodeModulesDir = join(warmedDir, 'node_modules');
|
|
75
|
+
if (!(await isDirectory(warmedNodeModulesDir)))
|
|
76
|
+
return bundled;
|
|
77
|
+
const warmedManifest = await readNormalizedManifest(join(warmedDir, 'package.json'));
|
|
78
|
+
const bundledManifest = await readNormalizedManifest(join(bundledTemplateDir, 'package.json'));
|
|
79
|
+
if (!warmedManifest || !bundledManifest || warmedManifest !== bundledManifest) {
|
|
80
|
+
return {
|
|
81
|
+
source: 'bundled-with-warmed-modules',
|
|
82
|
+
templateDir: bundledTemplateDir,
|
|
83
|
+
warmedNodeModulesDir,
|
|
84
|
+
};
|
|
89
85
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
if (
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
type: 'confirm',
|
|
104
|
-
name: 'withApplication',
|
|
105
|
-
message: 'Include NestJS backend application?',
|
|
106
|
-
default: false,
|
|
107
|
-
},
|
|
108
|
-
]);
|
|
109
|
-
withApplication = answers.withApplication;
|
|
86
|
+
return { source: 'warmed', templateDir: warmedDir };
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Record — or clear — the dependencies-ready marker. It is written only for a
|
|
90
|
+
* full warmed scaffold; any other plan removes a marker a previous scaffold may
|
|
91
|
+
* have left in the same directory, so an orchestrator never skips its install
|
|
92
|
+
* based on stale state.
|
|
93
|
+
*/
|
|
94
|
+
async function writeDepsReadyMarker(targetDir, plan) {
|
|
95
|
+
const markerPath = join(targetDir, DEPS_READY_MARKER_PATH);
|
|
96
|
+
if (plan.source !== 'warmed') {
|
|
97
|
+
await rm(markerPath, { force: true });
|
|
98
|
+
return;
|
|
110
99
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
if (!success) {
|
|
122
|
-
throw new Error('Failed to generate storefront');
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
// Install @forgecart/sdk
|
|
126
|
-
await withSpinner('Installing @forgecart/sdk...', '@forgecart/sdk installed', 'Failed to install SDK', async () => {
|
|
127
|
-
const success = await installDependency('@forgecart/sdk@^1.2.0', targetDir);
|
|
128
|
-
if (!success) {
|
|
129
|
-
throw new Error('Failed to install SDK');
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
// Install Tailwind CSS
|
|
133
|
-
await withSpinner('Installing Tailwind CSS...', 'Tailwind CSS installed', 'Failed to install Tailwind CSS', async () => {
|
|
134
|
-
const success = await installDependency('tailwindcss @tailwindcss/postcss postcss autoprefixer -D', targetDir);
|
|
135
|
-
if (!success) {
|
|
136
|
-
throw new Error('Failed to install Tailwind CSS');
|
|
137
|
-
}
|
|
138
|
-
});
|
|
139
|
-
// Copy storefront template additions
|
|
140
|
-
logger.info('Applying storefront customizations...');
|
|
141
|
-
const templatesDir = getCliTemplatesDir();
|
|
142
|
-
const storefrontAdditionsDir = path.join(templatesDir, 'storefront-additions');
|
|
143
|
-
const storefrontDir = path.join(targetDir, 'apps', 'storefront');
|
|
144
|
-
copyTemplateFiles(storefrontAdditionsDir, storefrontDir);
|
|
145
|
-
createEnvFile(storefrontDir, 'storefront', {
|
|
100
|
+
const marker = {
|
|
101
|
+
warmedFrom: plan.templateDir,
|
|
102
|
+
warmedAt: new Date().toISOString(),
|
|
103
|
+
};
|
|
104
|
+
await writeFile(markerPath, `${JSON.stringify(marker, null, 2)}\n`, 'utf8');
|
|
105
|
+
}
|
|
106
|
+
/** Build the `.forgecart/config.json` payload. */
|
|
107
|
+
function buildConfig(channelToken, options) {
|
|
108
|
+
return {
|
|
109
|
+
version: '2.0',
|
|
146
110
|
channelToken,
|
|
147
|
-
apiUrl,
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
logger.success('E2E test customizations applied');
|
|
172
|
-
// Add .env patterns to .gitignore
|
|
173
|
-
appendEnvPatternsToGitignore(targetDir);
|
|
174
|
-
// Configure standalone output for deployment
|
|
175
|
-
logger.info('Configuring standalone output...');
|
|
176
|
-
const standaloneConfigured = ensureStandaloneOutput(storefrontDir);
|
|
177
|
-
if (standaloneConfigured) {
|
|
178
|
-
logger.success('Standalone output configured in next.config.js');
|
|
179
|
-
}
|
|
180
|
-
else {
|
|
181
|
-
logger.warn('Could not auto-configure standalone output. Please add output: "standalone" to next.config.js manually.');
|
|
182
|
-
}
|
|
183
|
-
// Generate NestJS application if requested
|
|
184
|
-
if (withApplication) {
|
|
185
|
-
await withSpinner('Generating NestJS application...', 'Application generated', 'Failed to generate application', async () => {
|
|
186
|
-
const success = await generateNestApp('application', targetDir);
|
|
187
|
-
if (!success) {
|
|
188
|
-
throw new Error('Failed to generate application');
|
|
189
|
-
}
|
|
190
|
-
});
|
|
191
|
-
// Install @nestjs/config for environment variable management
|
|
192
|
-
await withSpinner('Installing @nestjs/config...', '@nestjs/config installed', 'Failed to install @nestjs/config', async () => {
|
|
193
|
-
const success = await installDependency('@nestjs/config', targetDir);
|
|
194
|
-
if (!success) {
|
|
195
|
-
throw new Error('Failed to install @nestjs/config');
|
|
196
|
-
}
|
|
197
|
-
});
|
|
198
|
-
// Copy application template additions
|
|
199
|
-
logger.info('Applying application customizations...');
|
|
200
|
-
const applicationAdditionsDir = path.join(templatesDir, 'application-additions');
|
|
201
|
-
const applicationDir = path.join(targetDir, 'apps', 'application');
|
|
202
|
-
copyTemplateFiles(applicationAdditionsDir, applicationDir);
|
|
203
|
-
createEnvFile(applicationDir, 'application', {
|
|
204
|
-
channelToken,
|
|
205
|
-
apiUrl,
|
|
206
|
-
});
|
|
207
|
-
logger.success('Application customizations applied');
|
|
208
|
-
// Copy application E2E template additions
|
|
209
|
-
const applicationE2eAdditionsDir = path.join(templatesDir, 'application-e2e-additions');
|
|
210
|
-
const applicationE2eDir = path.join(targetDir, 'apps', 'application-e2e');
|
|
211
|
-
copyTemplateFiles(applicationE2eAdditionsDir, applicationE2eDir);
|
|
212
|
-
logger.success('Application E2E customizations applied');
|
|
111
|
+
apiUrl: options.apiUrl,
|
|
112
|
+
hasApplication: options.application ?? false,
|
|
113
|
+
storefrontPath: '.',
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/** Build the `.env.local` contents for the storefront SDK client. */
|
|
117
|
+
function buildEnvLocal(channelToken, apiUrl) {
|
|
118
|
+
return [
|
|
119
|
+
`FORGECART_CHANNEL_TOKEN=${channelToken}`,
|
|
120
|
+
`FORGECART_SHOP_API_URL=${apiUrl}`,
|
|
121
|
+
'',
|
|
122
|
+
].join('\n');
|
|
123
|
+
}
|
|
124
|
+
/** Print the post-scaffold next steps. */
|
|
125
|
+
function printNextSteps(targetDir, application, depsInstalled) {
|
|
126
|
+
print('');
|
|
127
|
+
print(depsInstalled
|
|
128
|
+
? 'Storefront scaffolded successfully (dependencies pre-installed from the warmed template).'
|
|
129
|
+
: 'Storefront scaffolded successfully.');
|
|
130
|
+
print('');
|
|
131
|
+
print('Next steps:');
|
|
132
|
+
print(` cd ${targetDir}`);
|
|
133
|
+
if (!depsInstalled) {
|
|
134
|
+
print(' npm install');
|
|
213
135
|
}
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
config.hasApplication = withApplication || false;
|
|
221
|
-
config.storefrontPath = 'apps/storefront';
|
|
222
|
-
if (withApplication) {
|
|
223
|
-
config.applicationPath = 'apps/application';
|
|
136
|
+
print(' npm run dev');
|
|
137
|
+
print('');
|
|
138
|
+
if (application) {
|
|
139
|
+
print('Note: --application was requested. A NestJS application scaffold arrives ' +
|
|
140
|
+
'in a later phase (TODO).');
|
|
141
|
+
print('');
|
|
224
142
|
}
|
|
225
|
-
writeConfig(config, targetDir);
|
|
226
|
-
logger.success('ForgeCart configuration created');
|
|
227
|
-
// Success message
|
|
228
|
-
logger.newline();
|
|
229
|
-
logger.box(`Project "${projectName}" created successfully!
|
|
230
|
-
|
|
231
|
-
Next steps:
|
|
232
|
-
cd ${projectName}
|
|
233
|
-
forgecart deploy
|
|
234
|
-
|
|
235
|
-
Your storefront will be available at:
|
|
236
|
-
apps/storefront/` +
|
|
237
|
-
(withApplication
|
|
238
|
-
? `
|
|
239
|
-
|
|
240
|
-
Your application will be available at:
|
|
241
|
-
apps/application/`
|
|
242
|
-
: ''));
|
|
243
|
-
// Cleanup and exit
|
|
244
|
-
apiClient.dispose();
|
|
245
|
-
process.exit(0);
|
|
246
143
|
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
144
|
+
/**
|
|
145
|
+
* Run `forgecart init`.
|
|
146
|
+
*
|
|
147
|
+
* Resolves the target directory, scaffolds the storefront from the warmed
|
|
148
|
+
* template when one is available (see {@link resolveScaffoldPlan}) or the
|
|
149
|
+
* bundled template otherwise, writes the ForgeCart config and `.env.local`, and
|
|
150
|
+
* prints next steps. Throws a clear Error on any failure (missing token,
|
|
151
|
+
* missing template, copy failure).
|
|
152
|
+
*/
|
|
153
|
+
export async function runInit(name, options) {
|
|
154
|
+
const channelToken = options.token?.trim();
|
|
155
|
+
if (!channelToken) {
|
|
156
|
+
throw new Error('A channel token is required. Pass it with --token <token> (or -t <token>).');
|
|
253
157
|
}
|
|
254
|
-
const
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
158
|
+
const targetDir = name ? resolve(process.cwd(), name) : process.cwd();
|
|
159
|
+
const templateDir = getStorefrontTemplateDir();
|
|
160
|
+
if (!(await isDirectory(templateDir))) {
|
|
161
|
+
throw new Error(`Storefront template not found at ${templateDir}.`);
|
|
258
162
|
}
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
163
|
+
const plan = await resolveScaffoldPlan(templateDir);
|
|
164
|
+
await mkdir(targetDir, { recursive: true });
|
|
165
|
+
await cp(plan.templateDir, targetDir, { recursive: true });
|
|
166
|
+
if (plan.source === 'bundled-with-warmed-modules') {
|
|
167
|
+
await cp(plan.warmedNodeModulesDir, join(targetDir, 'node_modules'), {
|
|
168
|
+
recursive: true,
|
|
169
|
+
});
|
|
263
170
|
}
|
|
264
|
-
const
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
if (!success) {
|
|
283
|
-
throw new Error('Failed to install @nestjs/config');
|
|
284
|
-
}
|
|
285
|
-
});
|
|
286
|
-
// Copy application template additions
|
|
287
|
-
logger.info('Applying application customizations...');
|
|
288
|
-
const templatesDir = getCliTemplatesDir();
|
|
289
|
-
const applicationAdditionsDir = path.join(templatesDir, 'application-additions');
|
|
290
|
-
const applicationDir = path.join(projectRoot, 'apps', 'application');
|
|
291
|
-
copyTemplateFiles(applicationAdditionsDir, applicationDir);
|
|
292
|
-
createEnvFile(applicationDir, 'application', {
|
|
293
|
-
channelToken: config.channelToken,
|
|
294
|
-
apiUrl: config.apiUrl,
|
|
295
|
-
});
|
|
296
|
-
logger.success('Application customizations applied');
|
|
297
|
-
// Copy application E2E template additions
|
|
298
|
-
const applicationE2eAdditionsDir = path.join(templatesDir, 'application-e2e-additions');
|
|
299
|
-
const applicationE2eDir = path.join(projectRoot, 'apps', 'application-e2e');
|
|
300
|
-
copyTemplateFiles(applicationE2eAdditionsDir, applicationE2eDir);
|
|
301
|
-
logger.success('Application E2E customizations applied');
|
|
302
|
-
// Update config
|
|
303
|
-
updateConfig({
|
|
304
|
-
hasApplication: true,
|
|
305
|
-
applicationPath: 'apps/application',
|
|
171
|
+
const configDir = join(targetDir, '.forgecart');
|
|
172
|
+
await mkdir(configDir, { recursive: true });
|
|
173
|
+
const config = buildConfig(channelToken, options);
|
|
174
|
+
await writeFile(join(configDir, 'config.json'), `${JSON.stringify(config, null, 2)}\n`, 'utf8');
|
|
175
|
+
await writeFile(join(targetDir, '.env.local'), buildEnvLocal(channelToken, options.apiUrl), 'utf8');
|
|
176
|
+
await writeDepsReadyMarker(targetDir, plan);
|
|
177
|
+
printNextSteps(name ?? '.', config.hasApplication, plan.source === 'warmed');
|
|
178
|
+
}
|
|
179
|
+
/** Build the `init [name]` command. */
|
|
180
|
+
export function createInitCommand() {
|
|
181
|
+
return new Command('init')
|
|
182
|
+
.description('Scaffold a ForgeCart storefront in the target directory')
|
|
183
|
+
.argument('[name]', 'Target directory name (defaults to the current directory)')
|
|
184
|
+
.option('-t, --token <token>', 'ForgeCart channel token (required)')
|
|
185
|
+
.option('--api-url <url>', 'Shop API base URL written to the storefront environment', DEFAULT_SHOP_API_URL)
|
|
186
|
+
.option('-a, --application', 'Also scaffold a NestJS application (TODO: next phase)')
|
|
187
|
+
.action(async (name, options) => {
|
|
188
|
+
await runInit(name, options);
|
|
306
189
|
});
|
|
307
|
-
logger.success('Configuration updated');
|
|
308
|
-
logger.newline();
|
|
309
|
-
logger.box(`NestJS application added successfully!
|
|
310
|
-
|
|
311
|
-
Your application is available at:
|
|
312
|
-
apps/application/
|
|
313
|
-
|
|
314
|
-
To deploy:
|
|
315
|
-
cd apps/application
|
|
316
|
-
forgecart deploy`);
|
|
317
|
-
process.exit(0);
|
|
318
190
|
}
|
|
319
191
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
/** `init:application` — add a NestJS application to an existing project. */
|
|
3
|
+
export declare function createInitApplicationCommand(): Command;
|
|
4
|
+
/** `deploy` — deploy the current project. */
|
|
5
|
+
export declare function createDeployCommand(): Command;
|
|
6
|
+
/** `list` — list deployments for the channel. */
|
|
7
|
+
export declare function createListCommand(): Command;
|
|
8
|
+
/** `status [type]` — show deployment status. */
|
|
9
|
+
export declare function createStatusCommand(): Command;
|
|
10
|
+
/** `logs [type]` — view deployment logs. */
|
|
11
|
+
export declare function createLogsCommand(): Command;
|
|
12
|
+
/** `delete <type>` — delete a deployment. */
|
|
13
|
+
export declare function createDeleteCommand(): Command;
|
|
14
|
+
/** `scale <type> <instances>` — scale a deployment. */
|
|
15
|
+
export declare function createScaleCommand(): Command;
|
|
16
|
+
/** `env` — manage environment variables (get/set/unset). */
|
|
17
|
+
export declare function createEnvCommand(): Command;
|
|
18
|
+
/** `whoami` — show current channel information. */
|
|
19
|
+
export declare function createWhoamiCommand(): Command;
|