@adobe/aio-commerce-lib-app 0.3.0 → 0.3.2
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/CHANGELOG.md +12 -0
- package/dist/cjs/commands/index.cjs +35 -16
- package/dist/es/commands/index.mjs +35 -16
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @adobe/aio-commerce-lib-app
|
|
2
2
|
|
|
3
|
+
## 0.3.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#262](https://github.com/adobe/aio-commerce-sdk/pull/262) [`7cb9252`](https://github.com/adobe/aio-commerce-sdk/commit/7cb9252736acd34f5490e2dc940b74a7ec40f17c) Thanks [@iivvaannxx](https://github.com/iivvaannxx)! - Dependencies should be installed early in the init process.
|
|
8
|
+
|
|
9
|
+
## 0.3.1
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [#260](https://github.com/adobe/aio-commerce-sdk/pull/260) [`dbfb82f`](https://github.com/adobe/aio-commerce-sdk/commit/dbfb82fe4af72fe760df005506bec9f9927bbafc) Thanks [@iivvaannxx](https://github.com/iivvaannxx)! - Fix package json detection/creation on `init` script
|
|
14
|
+
|
|
3
15
|
## 0.3.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
|
@@ -895,8 +895,7 @@ async function ensureCommerceAppConfig(cwd = process.cwd()) {
|
|
|
895
895
|
}
|
|
896
896
|
}
|
|
897
897
|
/** Ensure package.json has the postinstall script */
|
|
898
|
-
async function ensurePackageJson(
|
|
899
|
-
const postinstallScript = `${execCommand} aio-commerce-lib-app hooks postinstall`;
|
|
898
|
+
async function ensurePackageJson(cwd = process.cwd()) {
|
|
900
899
|
const packageJson = await require_config.readPackageJson(cwd);
|
|
901
900
|
if (!packageJson) {
|
|
902
901
|
consola.consola.warn("package.json not found. Creating one...");
|
|
@@ -904,16 +903,27 @@ async function ensurePackageJson(execCommand, cwd = process.cwd()) {
|
|
|
904
903
|
name: "my-commerce-app",
|
|
905
904
|
version: "1.0.0",
|
|
906
905
|
private: true,
|
|
907
|
-
scripts: { postinstall:
|
|
906
|
+
scripts: { postinstall: "npx aio-commerce-lib-app hooks postinstall" }
|
|
908
907
|
};
|
|
909
908
|
await (0, fs_promises.writeFile)((0, path.join)((0, path.resolve)(cwd), PACKAGE_JSON_FILE), JSON.stringify(packageJsonContent, null, 2), "utf-8");
|
|
910
909
|
consola.consola.success("Wrote package.json");
|
|
911
|
-
return
|
|
910
|
+
return {
|
|
911
|
+
packageJson: packageJsonContent,
|
|
912
|
+
packageManager: "npm",
|
|
913
|
+
execCommand: "npx"
|
|
914
|
+
};
|
|
912
915
|
}
|
|
916
|
+
const packageManager = await require_config.detectPackageManager();
|
|
917
|
+
const execCommand = require_config.getExecCommand(packageManager);
|
|
918
|
+
const postinstallScript = `${execCommand} aio-commerce-lib-app hooks postinstall`;
|
|
913
919
|
packageJson.scripts ??= {};
|
|
914
920
|
if (packageJson.scripts.postinstall === postinstallScript || packageJson.scripts.postinstall?.includes(postinstallScript)) {
|
|
915
921
|
consola.consola.success(`postinstall script already configured in ${PACKAGE_JSON_FILE}`);
|
|
916
|
-
return
|
|
922
|
+
return {
|
|
923
|
+
packageJson,
|
|
924
|
+
packageManager,
|
|
925
|
+
execCommand
|
|
926
|
+
};
|
|
917
927
|
}
|
|
918
928
|
if (packageJson.scripts.postinstall) {
|
|
919
929
|
consola.consola.warn(`${PACKAGE_JSON_FILE} already has a postinstall script. Adding a new one...`);
|
|
@@ -923,7 +933,11 @@ async function ensurePackageJson(execCommand, cwd = process.cwd()) {
|
|
|
923
933
|
(0, child_process.execSync)(`npm pkg set scripts.postinstall="${postinstallScript}"`);
|
|
924
934
|
}
|
|
925
935
|
consola.consola.success(`Added postinstall script to ${PACKAGE_JSON_FILE}`);
|
|
926
|
-
return
|
|
936
|
+
return {
|
|
937
|
+
packageJson,
|
|
938
|
+
packageManager,
|
|
939
|
+
execCommand
|
|
940
|
+
};
|
|
927
941
|
}
|
|
928
942
|
/** Ensure app.config.yaml has the extension reference */
|
|
929
943
|
async function ensureAppConfig(domains, cwd = process.cwd()) {
|
|
@@ -931,12 +945,11 @@ async function ensureAppConfig(domains, cwd = process.cwd()) {
|
|
|
931
945
|
if (domains.has("businessConfig.schema")) await addExtensionPointToAppConfig(CONFIGURATION_EXTENSION_POINT_ID, rootDirectory, " This extension is required for business configuration. Do not remove.");
|
|
932
946
|
await addExtensionPointToAppConfig(EXTENSIBILITY_EXTENSION_POINT_ID, rootDirectory, " This extension is required for app management. Do not remove.");
|
|
933
947
|
}
|
|
934
|
-
/** Install
|
|
935
|
-
function
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
const packagesToInstall = packages.join(" ");
|
|
948
|
+
/** Install the given dependencies */
|
|
949
|
+
function runInstall(packageManager, dependencies, cwd = process.cwd()) {
|
|
950
|
+
const dependencyListString = dependencies.map((dependency) => ` - ${dependency}`).join("\n");
|
|
951
|
+
consola.consola.info(`Installing the following dependencies with ${packageManager}:\n${dependencyListString}`);
|
|
952
|
+
const packagesToInstall = dependencies.join(" ");
|
|
940
953
|
const installCommand = {
|
|
941
954
|
pnpm: `pnpm add ${packagesToInstall}`,
|
|
942
955
|
yarn: `yarn add ${packagesToInstall}`,
|
|
@@ -953,6 +966,12 @@ function installDependencies(packageManager, domains, cwd = process.cwd()) {
|
|
|
953
966
|
throw new Error(`Failed to install dependencies automatically. Please install manually: ${installCommand}`, { cause: error });
|
|
954
967
|
}
|
|
955
968
|
}
|
|
969
|
+
/** Install required dependencies */
|
|
970
|
+
function installDependencies(packageManager, domains, cwd = process.cwd()) {
|
|
971
|
+
const packages = [];
|
|
972
|
+
if (domains.has("businessConfig.schema")) packages.push("@adobe/aio-commerce-lib-config");
|
|
973
|
+
runInstall(packageManager, packages, cwd);
|
|
974
|
+
}
|
|
956
975
|
/** Run the generation command */
|
|
957
976
|
async function runGeneration(appConfig, execCommand) {
|
|
958
977
|
try {
|
|
@@ -971,21 +990,21 @@ async function ensureInstallYaml(domains, cwd = process.cwd()) {
|
|
|
971
990
|
|
|
972
991
|
//#endregion
|
|
973
992
|
//#region source/commands/init/main.ts
|
|
993
|
+
const REQUIRED_DEPENDENCIES = ["@adobe/aio-commerce-lib-app", "@adobe/aio-commerce-sdk"];
|
|
974
994
|
/** Initialize the project with @adobe/aio-commerce-lib-config */
|
|
975
995
|
async function exec() {
|
|
976
996
|
try {
|
|
977
997
|
consola.consola.start("Initializing app...");
|
|
978
|
-
const packageManager = await
|
|
979
|
-
|
|
980
|
-
await ensurePackageJson(execCommand);
|
|
998
|
+
const { execCommand, packageManager } = await ensurePackageJson();
|
|
999
|
+
runInstall(packageManager, REQUIRED_DEPENDENCIES);
|
|
981
1000
|
const { config: config$1, domains } = await ensureCommerceAppConfig();
|
|
1001
|
+
installDependencies(packageManager, domains);
|
|
982
1002
|
(0, child_process.execSync)(`npm pkg set name="${config$1.metadata.id}"`);
|
|
983
1003
|
(0, child_process.execSync)(`npm pkg set version="${config$1.metadata.version}"`);
|
|
984
1004
|
(0, child_process.execSync)(`npm pkg set description="${config$1.metadata.description}"`);
|
|
985
1005
|
await runGeneration(config$1, execCommand);
|
|
986
1006
|
await ensureAppConfig(domains);
|
|
987
1007
|
await ensureInstallYaml(domains);
|
|
988
|
-
installDependencies(packageManager, domains);
|
|
989
1008
|
consola.consola.success("Initialization complete!");
|
|
990
1009
|
consola.consola.box([
|
|
991
1010
|
"Next steps:",
|
|
@@ -889,8 +889,7 @@ async function ensureCommerceAppConfig(cwd = process.cwd()) {
|
|
|
889
889
|
}
|
|
890
890
|
}
|
|
891
891
|
/** Ensure package.json has the postinstall script */
|
|
892
|
-
async function ensurePackageJson(
|
|
893
|
-
const postinstallScript = `${execCommand} aio-commerce-lib-app hooks postinstall`;
|
|
892
|
+
async function ensurePackageJson(cwd = process.cwd()) {
|
|
894
893
|
const packageJson = await readPackageJson(cwd);
|
|
895
894
|
if (!packageJson) {
|
|
896
895
|
consola$1.warn("package.json not found. Creating one...");
|
|
@@ -898,16 +897,27 @@ async function ensurePackageJson(execCommand, cwd = process.cwd()) {
|
|
|
898
897
|
name: "my-commerce-app",
|
|
899
898
|
version: "1.0.0",
|
|
900
899
|
private: true,
|
|
901
|
-
scripts: { postinstall:
|
|
900
|
+
scripts: { postinstall: "npx aio-commerce-lib-app hooks postinstall" }
|
|
902
901
|
};
|
|
903
902
|
await writeFile(join(resolve(cwd), PACKAGE_JSON_FILE), JSON.stringify(packageJsonContent, null, 2), "utf-8");
|
|
904
903
|
consola$1.success("Wrote package.json");
|
|
905
|
-
return
|
|
904
|
+
return {
|
|
905
|
+
packageJson: packageJsonContent,
|
|
906
|
+
packageManager: "npm",
|
|
907
|
+
execCommand: "npx"
|
|
908
|
+
};
|
|
906
909
|
}
|
|
910
|
+
const packageManager = await detectPackageManager();
|
|
911
|
+
const execCommand = getExecCommand(packageManager);
|
|
912
|
+
const postinstallScript = `${execCommand} aio-commerce-lib-app hooks postinstall`;
|
|
907
913
|
packageJson.scripts ??= {};
|
|
908
914
|
if (packageJson.scripts.postinstall === postinstallScript || packageJson.scripts.postinstall?.includes(postinstallScript)) {
|
|
909
915
|
consola$1.success(`postinstall script already configured in ${PACKAGE_JSON_FILE}`);
|
|
910
|
-
return
|
|
916
|
+
return {
|
|
917
|
+
packageJson,
|
|
918
|
+
packageManager,
|
|
919
|
+
execCommand
|
|
920
|
+
};
|
|
911
921
|
}
|
|
912
922
|
if (packageJson.scripts.postinstall) {
|
|
913
923
|
consola$1.warn(`${PACKAGE_JSON_FILE} already has a postinstall script. Adding a new one...`);
|
|
@@ -917,7 +927,11 @@ async function ensurePackageJson(execCommand, cwd = process.cwd()) {
|
|
|
917
927
|
execSync(`npm pkg set scripts.postinstall="${postinstallScript}"`);
|
|
918
928
|
}
|
|
919
929
|
consola$1.success(`Added postinstall script to ${PACKAGE_JSON_FILE}`);
|
|
920
|
-
return
|
|
930
|
+
return {
|
|
931
|
+
packageJson,
|
|
932
|
+
packageManager,
|
|
933
|
+
execCommand
|
|
934
|
+
};
|
|
921
935
|
}
|
|
922
936
|
/** Ensure app.config.yaml has the extension reference */
|
|
923
937
|
async function ensureAppConfig(domains, cwd = process.cwd()) {
|
|
@@ -925,12 +939,11 @@ async function ensureAppConfig(domains, cwd = process.cwd()) {
|
|
|
925
939
|
if (domains.has("businessConfig.schema")) await addExtensionPointToAppConfig(CONFIGURATION_EXTENSION_POINT_ID, rootDirectory, " This extension is required for business configuration. Do not remove.");
|
|
926
940
|
await addExtensionPointToAppConfig(EXTENSIBILITY_EXTENSION_POINT_ID, rootDirectory, " This extension is required for app management. Do not remove.");
|
|
927
941
|
}
|
|
928
|
-
/** Install
|
|
929
|
-
function
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
const packagesToInstall = packages.join(" ");
|
|
942
|
+
/** Install the given dependencies */
|
|
943
|
+
function runInstall(packageManager, dependencies, cwd = process.cwd()) {
|
|
944
|
+
const dependencyListString = dependencies.map((dependency) => ` - ${dependency}`).join("\n");
|
|
945
|
+
consola$1.info(`Installing the following dependencies with ${packageManager}:\n${dependencyListString}`);
|
|
946
|
+
const packagesToInstall = dependencies.join(" ");
|
|
934
947
|
const installCommand = {
|
|
935
948
|
pnpm: `pnpm add ${packagesToInstall}`,
|
|
936
949
|
yarn: `yarn add ${packagesToInstall}`,
|
|
@@ -947,6 +960,12 @@ function installDependencies(packageManager, domains, cwd = process.cwd()) {
|
|
|
947
960
|
throw new Error(`Failed to install dependencies automatically. Please install manually: ${installCommand}`, { cause: error });
|
|
948
961
|
}
|
|
949
962
|
}
|
|
963
|
+
/** Install required dependencies */
|
|
964
|
+
function installDependencies(packageManager, domains, cwd = process.cwd()) {
|
|
965
|
+
const packages = [];
|
|
966
|
+
if (domains.has("businessConfig.schema")) packages.push("@adobe/aio-commerce-lib-config");
|
|
967
|
+
runInstall(packageManager, packages, cwd);
|
|
968
|
+
}
|
|
950
969
|
/** Run the generation command */
|
|
951
970
|
async function runGeneration(appConfig, execCommand) {
|
|
952
971
|
try {
|
|
@@ -965,21 +984,21 @@ async function ensureInstallYaml(domains, cwd = process.cwd()) {
|
|
|
965
984
|
|
|
966
985
|
//#endregion
|
|
967
986
|
//#region source/commands/init/main.ts
|
|
987
|
+
const REQUIRED_DEPENDENCIES = ["@adobe/aio-commerce-lib-app", "@adobe/aio-commerce-sdk"];
|
|
968
988
|
/** Initialize the project with @adobe/aio-commerce-lib-config */
|
|
969
989
|
async function exec() {
|
|
970
990
|
try {
|
|
971
991
|
consola$1.start("Initializing app...");
|
|
972
|
-
const packageManager = await
|
|
973
|
-
|
|
974
|
-
await ensurePackageJson(execCommand);
|
|
992
|
+
const { execCommand, packageManager } = await ensurePackageJson();
|
|
993
|
+
runInstall(packageManager, REQUIRED_DEPENDENCIES);
|
|
975
994
|
const { config: config$1, domains } = await ensureCommerceAppConfig();
|
|
995
|
+
installDependencies(packageManager, domains);
|
|
976
996
|
execSync(`npm pkg set name="${config$1.metadata.id}"`);
|
|
977
997
|
execSync(`npm pkg set version="${config$1.metadata.version}"`);
|
|
978
998
|
execSync(`npm pkg set description="${config$1.metadata.description}"`);
|
|
979
999
|
await runGeneration(config$1, execCommand);
|
|
980
1000
|
await ensureAppConfig(domains);
|
|
981
1001
|
await ensureInstallYaml(domains);
|
|
982
|
-
installDependencies(packageManager, domains);
|
|
983
1002
|
consola$1.success("Initialization complete!");
|
|
984
1003
|
consola$1.box([
|
|
985
1004
|
"Next steps:",
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@adobe/aio-commerce-lib-app",
|
|
3
3
|
"type": "module",
|
|
4
4
|
"author": "Adobe Inc.",
|
|
5
|
-
"version": "0.3.
|
|
5
|
+
"version": "0.3.2",
|
|
6
6
|
"private": false,
|
|
7
7
|
"engines": {
|
|
8
8
|
"node": ">=20 <=24"
|
|
@@ -81,19 +81,19 @@
|
|
|
81
81
|
"@adobe/aio-lib-state": "^5.3.1",
|
|
82
82
|
"@standard-schema/spec": "^1.1.0",
|
|
83
83
|
"yaml": "^2.8.2",
|
|
84
|
-
"@adobe/aio-commerce-lib-
|
|
85
|
-
"@adobe/aio-commerce-lib-events": "0.6.0",
|
|
84
|
+
"@adobe/aio-commerce-lib-api": "0.6.1",
|
|
86
85
|
"@adobe/aio-commerce-lib-auth": "0.8.1",
|
|
87
|
-
"@adobe/aio-commerce-lib-
|
|
86
|
+
"@adobe/aio-commerce-lib-core": "0.6.1",
|
|
87
|
+
"@adobe/aio-commerce-lib-events": "0.6.0"
|
|
88
88
|
},
|
|
89
89
|
"devDependencies": {
|
|
90
90
|
"@adobe/aio-lib-core-logging": "^3.0.2",
|
|
91
91
|
"@aio-commerce-sdk/common-utils": "0.2.1",
|
|
92
|
+
"@aio-commerce-sdk/config-tsdown": "1.0.0",
|
|
92
93
|
"@aio-commerce-sdk/config-typedoc": "1.0.0",
|
|
94
|
+
"@aio-commerce-sdk/config-typescript": "1.0.0",
|
|
93
95
|
"@aio-commerce-sdk/config-vitest": "1.0.0",
|
|
94
|
-
"@aio-commerce-sdk/scripting-utils": "0.2.1"
|
|
95
|
-
"@aio-commerce-sdk/config-tsdown": "1.0.0",
|
|
96
|
-
"@aio-commerce-sdk/config-typescript": "1.0.0"
|
|
96
|
+
"@aio-commerce-sdk/scripting-utils": "0.2.1"
|
|
97
97
|
},
|
|
98
98
|
"sideEffects": false,
|
|
99
99
|
"scripts": {
|