@ecomweb/cli 0.8.0 → 1.2.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/README.md +97 -13
- package/dist/commands/assets/get-by-entity.js +1 -1
- package/dist/commands/assets/get-by-entity.js.map +1 -1
- package/dist/commands/assets/link.js +1 -1
- package/dist/commands/assets/link.js.map +1 -1
- package/dist/commands/assets/list.js +21 -3
- package/dist/commands/assets/list.js.map +1 -1
- package/dist/commands/assets/update.js +1 -1
- package/dist/commands/assets/update.js.map +1 -1
- package/dist/commands/assets/upload.js +4 -3
- package/dist/commands/assets/upload.js.map +1 -1
- package/dist/commands/attributes/create.js +5 -0
- package/dist/commands/attributes/create.js.map +1 -1
- package/dist/commands/attributes/delete.js +5 -0
- package/dist/commands/attributes/delete.js.map +1 -1
- package/dist/commands/attributes/update.js +5 -0
- package/dist/commands/attributes/update.js.map +1 -1
- package/dist/commands/attributes/values/create.js +5 -0
- package/dist/commands/attributes/values/create.js.map +1 -1
- package/dist/commands/attributes/values/delete.js +9 -0
- package/dist/commands/attributes/values/delete.js.map +1 -1
- package/dist/commands/attributes/values/update.js +9 -0
- package/dist/commands/attributes/values/update.js.map +1 -1
- package/dist/commands/auth/login.js +7 -1
- package/dist/commands/auth/login.js.map +1 -1
- package/dist/commands/auth/logout.js +4 -0
- package/dist/commands/auth/logout.js.map +1 -1
- package/dist/commands/auth/profiles/delete.js +9 -0
- package/dist/commands/auth/profiles/delete.js.map +1 -1
- package/dist/commands/auth/profiles/use.js +4 -0
- package/dist/commands/auth/profiles/use.js.map +1 -1
- package/dist/commands/blog-posts/batch-update.js +7 -4
- package/dist/commands/blog-posts/batch-update.js.map +1 -1
- package/dist/commands/deploy.d.ts +3 -0
- package/dist/commands/deploy.js +36 -1
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/orders/batch-update.js +7 -4
- package/dist/commands/orders/batch-update.js.map +1 -1
- package/dist/commands/products/batch-update.js +14 -5
- package/dist/commands/products/batch-update.js.map +1 -1
- package/dist/commands/products/get.d.ts +2 -0
- package/dist/commands/products/get.js +11 -0
- package/dist/commands/products/get.js.map +1 -1
- package/dist/commands/{banners/get.d.ts → products/index-status.d.ts} +1 -7
- package/dist/commands/products/index-status.js +34 -0
- package/dist/commands/products/index-status.js.map +1 -0
- package/dist/commands/{banners/delete.d.ts → products/variants/list.d.ts} +4 -4
- package/dist/commands/products/variants/list.js +33 -0
- package/dist/commands/products/variants/list.js.map +1 -0
- package/dist/commands/{banners → products/variants}/update.d.ts +13 -10
- package/dist/commands/products/variants/update.js +82 -0
- package/dist/commands/products/variants/update.js.map +1 -0
- package/dist/commands/{banners/list.d.ts → store-menus/add-item.d.ts} +9 -7
- package/dist/commands/store-menus/add-item.js +110 -0
- package/dist/commands/store-menus/add-item.js.map +1 -0
- package/dist/commands/store-menus/update.js +1 -1
- package/dist/commands/store-menus/update.js.map +1 -1
- package/dist/commands/store-pages/create.js +1 -1
- package/dist/commands/store-pages/create.js.map +1 -1
- package/dist/commands/store-pages/list.js +1 -1
- package/dist/commands/store-pages/list.js.map +1 -1
- package/dist/commands/store-pages/update.js +1 -1
- package/dist/commands/store-pages/update.js.map +1 -1
- package/dist/commands/store-settings/update.d.ts +1 -1
- package/dist/commands/store-settings/update.js +39 -4
- package/dist/commands/store-settings/update.js.map +1 -1
- package/dist/commands/storefront/init.d.ts +2 -1
- package/dist/commands/storefront/init.js +26 -5
- package/dist/commands/storefront/init.js.map +1 -1
- package/dist/commands/storefront/key.js +9 -1
- package/dist/commands/storefront/key.js.map +1 -1
- package/dist/commands/stores/create.js +23 -2
- package/dist/commands/stores/create.js.map +1 -1
- package/dist/commands/stores/switch.js +13 -0
- package/dist/commands/stores/switch.js.map +1 -1
- package/dist/commands/theme/publish.js +10 -2
- package/dist/commands/theme/publish.js.map +1 -1
- package/dist/commands/theme/settings/get.d.ts +21 -0
- package/dist/commands/theme/settings/get.js +35 -0
- package/dist/commands/theme/settings/get.js.map +1 -0
- package/dist/commands/{banners/create.d.ts → theme/settings/set.d.ts} +8 -10
- package/dist/commands/theme/settings/set.js +91 -0
- package/dist/commands/theme/settings/set.js.map +1 -0
- package/dist/lib/api-client.d.ts +2 -0
- package/dist/lib/api-client.js +22 -1
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/batch-filter.d.ts +6 -0
- package/dist/lib/batch-filter.js +60 -0
- package/dist/lib/batch-filter.js.map +1 -0
- package/dist/lib/codex-skill.d.ts +1 -1
- package/dist/lib/codex-skill.js +1 -1
- package/dist/lib/deploy-checks.d.ts +33 -0
- package/dist/lib/deploy-checks.js +50 -0
- package/dist/lib/deploy-checks.js.map +1 -0
- package/dist/lib/deployments.d.ts +1 -0
- package/dist/lib/deployments.js +4 -3
- package/dist/lib/deployments.js.map +1 -1
- package/dist/lib/describe-metafields.js +6 -5
- package/dist/lib/describe-metafields.js.map +1 -1
- package/dist/lib/device-login.js +1 -1
- package/dist/lib/device-login.js.map +1 -1
- package/dist/lib/errors.d.ts +2 -1
- package/dist/lib/errors.js +60 -0
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/index-status.d.ts +9 -0
- package/dist/lib/index-status.js +17 -0
- package/dist/lib/index-status.js.map +1 -0
- package/dist/lib/project-setup.d.ts +1 -0
- package/dist/lib/project-setup.js +12 -0
- package/dist/lib/project-setup.js.map +1 -1
- package/dist/lib/themes.d.ts +14 -0
- package/dist/lib/themes.js +42 -0
- package/dist/lib/themes.js.map +1 -1
- package/dist/lib/validators.d.ts +1 -0
- package/dist/lib/validators.js +293 -47
- package/dist/lib/validators.js.map +1 -1
- package/oclif.manifest.json +5841 -5744
- package/package.json +1 -1
- package/dist/commands/banners/create.js +0 -75
- package/dist/commands/banners/create.js.map +0 -1
- package/dist/commands/banners/delete.js +0 -35
- package/dist/commands/banners/delete.js.map +0 -1
- package/dist/commands/banners/get.js +0 -31
- package/dist/commands/banners/get.js.map +0 -1
- package/dist/commands/banners/list.js +0 -65
- package/dist/commands/banners/list.js.map +0 -1
- package/dist/commands/banners/update.js +0 -81
- package/dist/commands/banners/update.js.map +0 -1
|
@@ -7,6 +7,10 @@ const pending_login_1 = require("../../lib/pending-login");
|
|
|
7
7
|
class AuthLogout extends base_command_1.BaseCommand {
|
|
8
8
|
async run() {
|
|
9
9
|
const profile = this.profileName;
|
|
10
|
+
if (this.isDryRun) {
|
|
11
|
+
this.outputJson({ action: "logout (dry-run)", profile, message: "Would revoke and forget this profile's session; nothing was changed." });
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
10
14
|
const { session, failure } = await (0, file_lock_1.withFileLock)(this.lockPathFor(profile), async () => {
|
|
11
15
|
const session = this.credentials.get(profile);
|
|
12
16
|
const failure = session ? await this.revokeSession(session) : undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../../src/commands/auth/logout.ts"],"names":[],"mappings":";;AAAA,qDAAiD;AACjD,6CAAmD;AACnD,mDAAmD;AACnD,2DAAwD;AAExD,MAAqB,UAAW,SAAQ,0BAAW;IASjD,KAAK,CAAC,GAAG;QACP,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../../src/commands/auth/logout.ts"],"names":[],"mappings":";;AAAA,qDAAiD;AACjD,6CAAmD;AACnD,mDAAmD;AACnD,2DAAwD;AAExD,MAAqB,UAAW,SAAQ,0BAAW;IASjD,KAAK,CAAC,GAAG;QACP,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;QACjC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE,sEAAsE,EAAE,CAAC,CAAC;YAC1I,OAAO;QACT,CAAC;QAGD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,wBAAY,EAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,EAAE;YACpF,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACjC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7C,MAAM,OAAO,GAAG,OAAO;YACrB,CAAC,CAAC,+CAA+C,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK;gBAChH,wHAAwH;YAC1H,CAAC,CAAC,SAAS,CAAC;QACd,IAAA,6BAAa,EAAC,wBAAe,EAAE,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAEpD,MAAM,WAAW,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,SAAS,CAAC;QACxG,IAAI,CAAC,UAAU,CAAC;YACd,OAAO,EAAE,OAAO;gBACd,CAAC,CAAC,aAAa;gBACf,CAAC,CAAC,WAAW;oBACX,CAAC,CAAC,+FAA+F;oBACjG,CAAC,CAAC,gBAAgB;YACtB,OAAO;YACP,sBAAsB,EAAE,OAAO;YAC/B,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;;AAzCM,sBAAW,GAAG,kDAAkD,CAAC;AAEjE,mBAAQ,GAAG,CAAC,qBAAqB,EAAE,uCAAuC,CAAC,CAAC;AAE5E,gBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;CACzB,CAAC;kBAPiB,UAAU"}
|
|
@@ -18,6 +18,15 @@ class AuthProfilesDelete extends base_command_1.BaseCommand {
|
|
|
18
18
|
throw new errors_1.CliError("PROFILE_NOT_FOUND", `Profile "${name}" does not exist.`, errors_1.ExitCode.NOT_FOUND, { hint: `Available profiles: ${profileNames.join(", ")}` });
|
|
19
19
|
}
|
|
20
20
|
const wasActive = this.configManager.getActiveProfileName() === name;
|
|
21
|
+
if (this.isDryRun) {
|
|
22
|
+
this.outputJson({
|
|
23
|
+
action: "delete (dry-run)",
|
|
24
|
+
profile: name,
|
|
25
|
+
message: `Would revoke the session of profile "${name}" and delete the profile. Nothing was changed.`,
|
|
26
|
+
...(wasActive && { note: 'Active profile would reset to "default".' }),
|
|
27
|
+
});
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
21
30
|
const revoked = await (0, file_lock_1.withFileLock)(this.lockPathFor(name), async () => {
|
|
22
31
|
const session = this.credentials.get(name);
|
|
23
32
|
const failure = session ? await this.revokeSession(session, name) : undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../../src/commands/auth/profiles/delete.ts"],"names":[],"mappings":";;AAAA,sCAAmC;AACnC,wDAAoD;AACpD,gDAAsD;AACtD,sDAAsD;AACtD,8DAA2D;AAC3D,gDAAyD;AAEzD,MAAqB,kBAAmB,SAAQ,0BAAW;IAkBzD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAEtB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,iBAAQ,CAChB,uBAAuB,EACvB,oCAAoC,EACpC,iBAAQ,CAAC,UAAU,CACpB,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QAC1D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,iBAAQ,CAChB,mBAAmB,EACnB,YAAY,IAAI,mBAAmB,EACnC,iBAAQ,CAAC,SAAS,EAClB,EAAE,IAAI,EAAE,uBAAuB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAC3D,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../../src/commands/auth/profiles/delete.ts"],"names":[],"mappings":";;AAAA,sCAAmC;AACnC,wDAAoD;AACpD,gDAAsD;AACtD,sDAAsD;AACtD,8DAA2D;AAC3D,gDAAyD;AAEzD,MAAqB,kBAAmB,SAAQ,0BAAW;IAkBzD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAEtB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,iBAAQ,CAChB,uBAAuB,EACvB,oCAAoC,EACpC,iBAAQ,CAAC,UAAU,CACpB,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QAC1D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,iBAAQ,CAChB,mBAAmB,EACnB,YAAY,IAAI,mBAAmB,EACnC,iBAAQ,CAAC,SAAS,EAClB,EAAE,IAAI,EAAE,uBAAuB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAC3D,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,KAAK,IAAI,CAAC;QACrE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,CAAC;gBACd,MAAM,EAAE,kBAAkB;gBAC1B,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,wCAAwC,IAAI,gDAAgD;gBACrG,GAAG,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,0CAA0C,EAAE,CAAC;aACvE,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAA,wBAAY,EAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9E,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACvC,IAAA,6BAAa,EAAC,wBAAe,EAAE,IAAI,CAAC,CAAC;QAErC,IAAI,CAAC,UAAU,CAAC;YACd,OAAO,EAAE,YAAY,IAAI,YAAY;YACrC,sBAAsB,EAAE,OAAO;YAC/B,GAAG,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,oCAAoC,EAAE,CAAC;SACjE,CAAC,CAAC;IACL,CAAC;;AAhEM,8BAAW,GAAG,sCAAsC,CAAC;AAErD,2BAAQ,GAAG;IAChB,sCAAsC;CACvC,CAAC;AAEK,uBAAI,GAAG;IACZ,IAAI,EAAE,WAAI,CAAC,MAAM,CAAC;QAChB,WAAW,EAAE,wBAAwB;QACrC,QAAQ,EAAE,IAAI;KACf,CAAC;CACH,CAAC;AAEK,wBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;CACzB,CAAC;kBAhBiB,kBAAkB"}
|
|
@@ -11,6 +11,10 @@ class AuthProfilesUse extends base_command_1.BaseCommand {
|
|
|
11
11
|
if (!profileNames.includes(name)) {
|
|
12
12
|
throw new errors_1.CliError("PROFILE_NOT_FOUND", `Profile "${name}" does not exist.`, errors_1.ExitCode.NOT_FOUND, { hint: `Available profiles: ${profileNames.join(", ")}` });
|
|
13
13
|
}
|
|
14
|
+
if (this.isDryRun) {
|
|
15
|
+
this.outputJson({ action: "use (dry-run)", active_profile: this.configManager.getActiveProfileName(), would_activate: name });
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
14
18
|
this.configManager.setActiveProfile(name);
|
|
15
19
|
this.outputJson({
|
|
16
20
|
message: `Switched to profile "${name}".`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use.js","sourceRoot":"","sources":["../../../../src/commands/auth/profiles/use.ts"],"names":[],"mappings":";;AAAA,sCAAmC;AACnC,wDAAoD;AACpD,gDAAyD;AAEzD,MAAqB,eAAgB,SAAQ,0BAAW;IAmBtD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACnD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAEtB,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QAC1D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,iBAAQ,CAChB,mBAAmB,EACnB,YAAY,IAAI,mBAAmB,EACnC,iBAAQ,CAAC,SAAS,EAClB,EAAE,IAAI,EAAE,uBAAuB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAC3D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAI,CAAC,UAAU,CAAC;YACd,OAAO,EAAE,wBAAwB,IAAI,IAAI;YACzC,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;IACL,CAAC;;
|
|
1
|
+
{"version":3,"file":"use.js","sourceRoot":"","sources":["../../../../src/commands/auth/profiles/use.ts"],"names":[],"mappings":";;AAAA,sCAAmC;AACnC,wDAAoD;AACpD,gDAAyD;AAEzD,MAAqB,eAAgB,SAAQ,0BAAW;IAmBtD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACnD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAEtB,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;QAC1D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,iBAAQ,CAChB,mBAAmB,EACnB,YAAY,IAAI,mBAAmB,EACnC,iBAAQ,CAAC,SAAS,EAClB,EAAE,IAAI,EAAE,uBAAuB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAC3D,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9H,OAAO;QACT,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAI,CAAC,UAAU,CAAC;YACd,OAAO,EAAE,wBAAwB,IAAI,IAAI;YACzC,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;IACL,CAAC;;AA3CM,2BAAW,GAAG,2BAA2B,CAAC;AAE1C,wBAAQ,GAAG;IAChB,sCAAsC;IACtC,mCAAmC;CACpC,CAAC;AAEK,oBAAI,GAAG;IACZ,IAAI,EAAE,WAAI,CAAC,MAAM,CAAC;QAChB,WAAW,EAAE,0BAA0B;QACvC,QAAQ,EAAE,IAAI;KACf,CAAC;CACH,CAAC;AAEK,qBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;CACzB,CAAC;kBAjBiB,eAAe"}
|
|
@@ -4,13 +4,15 @@ const core_1 = require("@oclif/core");
|
|
|
4
4
|
const base_command_1 = require("../../base-command");
|
|
5
5
|
const stdin_1 = require("../../lib/stdin");
|
|
6
6
|
const batch_1 = require("../../lib/batch");
|
|
7
|
+
const batch_filter_1 = require("../../lib/batch-filter");
|
|
7
8
|
class BlogPostsBatchUpdate extends base_command_1.BaseCommand {
|
|
8
9
|
async run() {
|
|
9
10
|
const storeRef = this.requireStore();
|
|
10
11
|
let items;
|
|
12
|
+
(0, batch_filter_1.checkFilterAndSet)(this.getFlag("filter"), this.getFlag("set"));
|
|
11
13
|
if (this.getFlag("filter") && this.getFlag("set")) {
|
|
12
|
-
const filterParams =
|
|
13
|
-
const setFields =
|
|
14
|
+
const filterParams = (0, batch_filter_1.parseFilter)(this.getFlag("filter"));
|
|
15
|
+
const setFields = (0, batch_filter_1.parseSetFields)(this.getFlag("set"));
|
|
14
16
|
const posts = await this.apiClient.listAll("/blog/posts", filterParams);
|
|
15
17
|
items = posts.map((p) => ({ id: p.id, ...setFields }));
|
|
16
18
|
}
|
|
@@ -62,13 +64,14 @@ BlogPostsBatchUpdate.examples = [
|
|
|
62
64
|
`echo '[{"id":1,"status":"published"},{"id":2,"status":"published"}]' | ecomweb blog-posts batch-update --stdin`,
|
|
63
65
|
"ecomweb blog-posts batch-update --file updates.json --dry-run",
|
|
64
66
|
`ecomweb blog-posts batch-update --filter '{"status":"draft"}' --set '{"status":"published"}'`,
|
|
67
|
+
"ecomweb blog-posts batch-update --filter status=draft --set status=published",
|
|
65
68
|
];
|
|
66
69
|
BlogPostsBatchUpdate.flags = {
|
|
67
70
|
...base_command_1.BaseCommand.baseFlags,
|
|
68
71
|
stdin: core_1.Flags.boolean({ description: "Read JSON array from stdin (each item must have id)" }),
|
|
69
72
|
file: core_1.Flags.string({ description: "Read JSON array from file" }),
|
|
70
|
-
filter: core_1.Flags.string({ description:
|
|
71
|
-
set: core_1.Flags.string({ description: "
|
|
73
|
+
filter: core_1.Flags.string({ description: `Which posts to update (used with --set): ${batch_filter_1.FILTER_HELP}` }),
|
|
74
|
+
set: core_1.Flags.string({ description: "Fields to set on each (used with --filter): key=value[,key=value] (values are JSON when they parse) or a JSON object" }),
|
|
72
75
|
concurrency: core_1.Flags.integer({ description: "Max concurrent requests", default: 5 }),
|
|
73
76
|
"continue-on-error": core_1.Flags.boolean({ description: "Continue if individual items fail", default: true }),
|
|
74
77
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-update.js","sourceRoot":"","sources":["../../../src/commands/blog-posts/batch-update.ts"],"names":[],"mappings":";;AAAA,sCAAoC;AACpC,qDAAiD;AACjD,2CAA+C;AAC/C,2CAA+C;
|
|
1
|
+
{"version":3,"file":"batch-update.js","sourceRoot":"","sources":["../../../src/commands/blog-posts/batch-update.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { BaseCommand } from "../base-command";
|
|
2
|
+
import { type FetchedPage } from "../lib/deploy-checks";
|
|
2
3
|
export default class Deploy extends BaseCommand {
|
|
3
4
|
static description: string;
|
|
4
5
|
static examples: string[];
|
|
@@ -11,6 +12,7 @@ export default class Deploy extends BaseCommand {
|
|
|
11
12
|
"allow-live": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
12
13
|
draft: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
13
14
|
prod: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
15
|
+
"render-check": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
14
16
|
"store-ref": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
15
17
|
"api-key": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
16
18
|
"api-url": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
@@ -23,4 +25,5 @@ export default class Deploy extends BaseCommand {
|
|
|
23
25
|
exclude: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
24
26
|
};
|
|
25
27
|
run(): Promise<void>;
|
|
28
|
+
protected fetchPage(url: string): Promise<FetchedPage>;
|
|
26
29
|
}
|
package/dist/commands/deploy.js
CHANGED
|
@@ -16,6 +16,8 @@ const project_setup_1 = require("../lib/project-setup");
|
|
|
16
16
|
const deploy_flags_1 = require("../lib/deploy-flags");
|
|
17
17
|
const theme_schema_export_1 = require("../lib/theme-schema-export");
|
|
18
18
|
const themes_1 = require("../lib/themes");
|
|
19
|
+
const axios_1 = __importDefault(require("axios"));
|
|
20
|
+
const deploy_checks_1 = require("../lib/deploy-checks");
|
|
19
21
|
class Deploy extends base_command_1.BaseCommand {
|
|
20
22
|
async run() {
|
|
21
23
|
const dir = node_path_1.default.resolve(this.getFlag("dir"));
|
|
@@ -76,7 +78,35 @@ class Deploy extends base_command_1.BaseCommand {
|
|
|
76
78
|
process.stderr.write("Stopped following the deployment before it finished. It carries on: check it with ecomweb deployments, follow its log with ecomweb logs <id>.\n");
|
|
77
79
|
process.exitCode = errors_1.ExitCode.ERROR;
|
|
78
80
|
});
|
|
79
|
-
|
|
81
|
+
const themeId = result.store_theme_id ?? storeThemeId;
|
|
82
|
+
const state = result.status === "running" ? await (0, deploy_checks_1.themeLiveState)(this.apiClient, themeId) : undefined;
|
|
83
|
+
if (state && !quiet) {
|
|
84
|
+
const t = state.theme;
|
|
85
|
+
const live = state.live_theme ? `${state.live_theme.id} (${state.live_theme.name})` : "none";
|
|
86
|
+
if (t)
|
|
87
|
+
process.stderr.write(t.live ? `Theme ${t.id} (${t.name}) is live.\n` : `Theme ${t.id} (${t.name}) is not live; the live theme is ${live}.\n`);
|
|
88
|
+
}
|
|
89
|
+
const url = result.preview_url ?? result.production_urls?.[0];
|
|
90
|
+
let renderCheck;
|
|
91
|
+
if (url && this.getFlag("render-check") !== false) {
|
|
92
|
+
renderCheck = await (0, deploy_checks_1.checkRender)(url, (u) => this.fetchPage(u));
|
|
93
|
+
if (renderCheck.status === "error")
|
|
94
|
+
throw (0, deploy_checks_1.renderError)(url, result.id, renderCheck, { ...state });
|
|
95
|
+
if (renderCheck.status === "unchecked" && !quiet) {
|
|
96
|
+
process.stderr.write(`Couldn't check the home page (${renderCheck.reason}); open ${url} to check it.\n`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
this.outputJson({ ...result, ...(renderCheck && { render_check: renderCheck }), ...state });
|
|
100
|
+
}
|
|
101
|
+
async fetchPage(url) {
|
|
102
|
+
const res = await axios_1.default.get(url, {
|
|
103
|
+
timeout: 30_000,
|
|
104
|
+
responseType: "text",
|
|
105
|
+
maxRedirects: 5,
|
|
106
|
+
validateStatus: () => true,
|
|
107
|
+
headers: { Accept: "text/html" },
|
|
108
|
+
});
|
|
109
|
+
return { status: res.status, body: typeof res.data === "string" ? res.data : String(res.data ?? "") };
|
|
80
110
|
}
|
|
81
111
|
}
|
|
82
112
|
Deploy.description = "Build your code on ecomweb as a new version of a theme (any theme; storefront hosting). A theme that isn't live gets a 24-hour preview; the live theme needs --allow-live, and goes live once built. A theme that uses a link keeps the build in its versions, unused";
|
|
@@ -123,6 +153,11 @@ Deploy.flags = {
|
|
|
123
153
|
description: "Deprecated: deploy, then publish the theme. Use --allow-live for the live theme",
|
|
124
154
|
default: false,
|
|
125
155
|
}),
|
|
156
|
+
"render-check": core_1.Flags.boolean({
|
|
157
|
+
description: "Once the preview (or the live store) is up, GET its home page and fail with RENDER_ERROR (exit 7) if it renders the error page",
|
|
158
|
+
default: true,
|
|
159
|
+
allowNo: true,
|
|
160
|
+
}),
|
|
126
161
|
};
|
|
127
162
|
exports.default = Deploy;
|
|
128
163
|
//# sourceMappingURL=deploy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":";;;;;AAAA,0DAA6B;AAC7B,sCAAoC;AACpC,+CAAoD;AACpD,kDAA8C;AAC9C,oDAA0D;AAC1D,0CAAyC;AACzC,kDAAiD;AACjD,oDAAgD;AAChD,wDAAqE;AACrE,wDAAsG;AACtG,sDAAuD;AACvD,oEAA+D;AAC/D,0CAA+C;
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,13 +4,15 @@ const core_1 = require("@oclif/core");
|
|
|
4
4
|
const base_command_1 = require("../../base-command");
|
|
5
5
|
const stdin_1 = require("../../lib/stdin");
|
|
6
6
|
const batch_1 = require("../../lib/batch");
|
|
7
|
+
const batch_filter_1 = require("../../lib/batch-filter");
|
|
7
8
|
class OrdersBatchUpdate extends base_command_1.BaseCommand {
|
|
8
9
|
async run() {
|
|
9
10
|
const storeRef = this.requireStore();
|
|
10
11
|
let items;
|
|
12
|
+
(0, batch_filter_1.checkFilterAndSet)(this.getFlag("filter"), this.getFlag("set"));
|
|
11
13
|
if (this.getFlag("filter") && this.getFlag("set")) {
|
|
12
|
-
const filterParams =
|
|
13
|
-
const setFields =
|
|
14
|
+
const filterParams = (0, batch_filter_1.parseFilter)(this.getFlag("filter"));
|
|
15
|
+
const setFields = (0, batch_filter_1.parseSetFields)(this.getFlag("set"));
|
|
14
16
|
const response = await this.apiClient.listPaginated("/orders", { ...filterParams, limit: 100 });
|
|
15
17
|
const orders = response.data || [];
|
|
16
18
|
items = orders.map((o) => ({ id: o.id, ...setFields }));
|
|
@@ -63,13 +65,14 @@ OrdersBatchUpdate.examples = [
|
|
|
63
65
|
`echo '[{"id":1,"order_status":"CONFIRMED"},{"id":2,"order_status":"CONFIRMED"}]' | ecomweb orders batch-update --stdin`,
|
|
64
66
|
"ecomweb orders batch-update --file updates.json --dry-run",
|
|
65
67
|
`ecomweb orders batch-update --filter '{"order_status":"PENDING","payment_status":"PAID"}' --set '{"order_status":"CONFIRMED"}'`,
|
|
68
|
+
"ecomweb orders batch-update --filter order_status=pending,payment_status=paid --set order_status=confirmed",
|
|
66
69
|
];
|
|
67
70
|
OrdersBatchUpdate.flags = {
|
|
68
71
|
...base_command_1.BaseCommand.baseFlags,
|
|
69
72
|
stdin: core_1.Flags.boolean({ description: "Read JSON array from stdin (each item must have id)" }),
|
|
70
73
|
file: core_1.Flags.string({ description: "Read JSON array from file" }),
|
|
71
|
-
filter: core_1.Flags.string({ description:
|
|
72
|
-
set: core_1.Flags.string({ description: "
|
|
74
|
+
filter: core_1.Flags.string({ description: `Which orders to update (used with --set): ${batch_filter_1.FILTER_HELP}` }),
|
|
75
|
+
set: core_1.Flags.string({ description: "Fields to set on each (used with --filter): key=value[,key=value] (values are JSON when they parse) or a JSON object" }),
|
|
73
76
|
concurrency: core_1.Flags.integer({ description: "Max concurrent requests", default: 5 }),
|
|
74
77
|
"continue-on-error": core_1.Flags.boolean({ description: "Continue if individual items fail", default: true }),
|
|
75
78
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-update.js","sourceRoot":"","sources":["../../../src/commands/orders/batch-update.ts"],"names":[],"mappings":";;AAAA,sCAAoC;AACpC,qDAAiD;AACjD,2CAA+C;AAC/C,2CAA+C;
|
|
1
|
+
{"version":3,"file":"batch-update.js","sourceRoot":"","sources":["../../../src/commands/orders/batch-update.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,13 +4,16 @@ const core_1 = require("@oclif/core");
|
|
|
4
4
|
const base_command_1 = require("../../base-command");
|
|
5
5
|
const stdin_1 = require("../../lib/stdin");
|
|
6
6
|
const batch_1 = require("../../lib/batch");
|
|
7
|
+
const index_status_1 = require("../../lib/index-status");
|
|
8
|
+
const batch_filter_1 = require("../../lib/batch-filter");
|
|
7
9
|
class ProductsBatchUpdate extends base_command_1.BaseCommand {
|
|
8
10
|
async run() {
|
|
9
11
|
const storeRef = this.requireStore();
|
|
10
12
|
let items;
|
|
13
|
+
(0, batch_filter_1.checkFilterAndSet)(this.getFlag("filter"), this.getFlag("set"));
|
|
11
14
|
if (this.getFlag("filter") && this.getFlag("set")) {
|
|
12
|
-
const filterParams =
|
|
13
|
-
const setFields =
|
|
15
|
+
const filterParams = (0, batch_filter_1.parseFilter)(this.getFlag("filter"));
|
|
16
|
+
const setFields = (0, batch_filter_1.parseSetFields)(this.getFlag("set"));
|
|
14
17
|
const products = await this.apiClient.listAll("/products", filterParams);
|
|
15
18
|
items = products.map((p) => ({ id: p.id, ...setFields }));
|
|
16
19
|
}
|
|
@@ -49,11 +52,16 @@ class ProductsBatchUpdate extends base_command_1.BaseCommand {
|
|
|
49
52
|
dryRun: this.isDryRun,
|
|
50
53
|
continueOnError: this.getFlag("continue-on-error"),
|
|
51
54
|
});
|
|
55
|
+
const pending = this.isDryRun ? undefined : await (0, index_status_1.indexPending)(this.apiClient);
|
|
52
56
|
this.outputResult({
|
|
53
57
|
resource: "products",
|
|
54
58
|
action: this.isDryRun ? "batch-update (dry-run)" : "batch-update",
|
|
55
59
|
store_ref: storeRef,
|
|
56
|
-
data: result,
|
|
60
|
+
data: pending === undefined ? result : { ...result, index_pending: pending },
|
|
61
|
+
...(pending !== undefined &&
|
|
62
|
+
pending > 0 && {
|
|
63
|
+
hints: { index: "Search shows these changes once indexed: ecomweb products index-status (pending 0 = up to date)" },
|
|
64
|
+
}),
|
|
57
65
|
});
|
|
58
66
|
}
|
|
59
67
|
}
|
|
@@ -62,13 +70,14 @@ ProductsBatchUpdate.examples = [
|
|
|
62
70
|
`echo '[{"id":1,"status":"active"},{"id":2,"status":"active"}]' | ecomweb products batch-update --stdin`,
|
|
63
71
|
"ecomweb products batch-update --file updates.json --dry-run",
|
|
64
72
|
`ecomweb products batch-update --filter '{"status":"draft"}' --set '{"status":"active"}'`,
|
|
73
|
+
"ecomweb products batch-update --filter status=draft --set status=active",
|
|
65
74
|
];
|
|
66
75
|
ProductsBatchUpdate.flags = {
|
|
67
76
|
...base_command_1.BaseCommand.baseFlags,
|
|
68
77
|
stdin: core_1.Flags.boolean({ description: "Read JSON array from stdin (each item must have id)" }),
|
|
69
78
|
file: core_1.Flags.string({ description: "Read JSON array from file" }),
|
|
70
|
-
filter: core_1.Flags.string({ description:
|
|
71
|
-
set: core_1.Flags.string({ description: "
|
|
79
|
+
filter: core_1.Flags.string({ description: `Which products to update (used with --set): ${batch_filter_1.FILTER_HELP}` }),
|
|
80
|
+
set: core_1.Flags.string({ description: "Fields to set on each (used with --filter): key=value[,key=value] (values are JSON when they parse) or a JSON object" }),
|
|
72
81
|
concurrency: core_1.Flags.integer({ description: "Max concurrent requests", default: 5 }),
|
|
73
82
|
"continue-on-error": core_1.Flags.boolean({ description: "Continue if individual items fail", default: true }),
|
|
74
83
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-update.js","sourceRoot":"","sources":["../../../src/commands/products/batch-update.ts"],"names":[],"mappings":";;AAAA,sCAAoC;AACpC,qDAAiD;AACjD,2CAA+C;AAC/C,2CAA+C;
|
|
1
|
+
{"version":3,"file":"batch-update.js","sourceRoot":"","sources":["../../../src/commands/products/batch-update.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,8 @@ export default class ProductsGet extends BaseCommand {
|
|
|
13
13
|
"include-combinations": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
14
14
|
"include-promotion": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
15
15
|
"include-seo-metadata": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
16
|
+
"include-tags": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
17
|
+
"include-channels": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
16
18
|
"store-ref": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
17
19
|
"api-key": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
18
20
|
"api-url": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
@@ -13,12 +13,18 @@ class ProductsGet extends base_command_1.BaseCommand {
|
|
|
13
13
|
"include-combinations": "include_combinations",
|
|
14
14
|
"include-promotion": "include_promotion",
|
|
15
15
|
"include-seo-metadata": "include_seo_metadata",
|
|
16
|
+
"include-tags": "include_tags",
|
|
17
|
+
"include-channels": "include_channels",
|
|
16
18
|
};
|
|
17
19
|
for (const [flag, param] of Object.entries(flagMap)) {
|
|
18
20
|
const value = this.getFlag(flag);
|
|
19
21
|
if (value !== undefined)
|
|
20
22
|
params[param] = value;
|
|
21
23
|
}
|
|
24
|
+
if (this.getFlag("full")) {
|
|
25
|
+
params.include_tags ??= true;
|
|
26
|
+
params.include_channels ??= true;
|
|
27
|
+
}
|
|
22
28
|
const product = await this.apiClient.storeGet(`/products/${args.id}`, params);
|
|
23
29
|
this.outputResult((0, output_1.getEnvelope)("products", storeRef, product));
|
|
24
30
|
}
|
|
@@ -27,6 +33,7 @@ ProductsGet.description = "Get a product by ID";
|
|
|
27
33
|
ProductsGet.examples = [
|
|
28
34
|
"ecomweb products get 42",
|
|
29
35
|
"ecomweb products get 42 --include-variants",
|
|
36
|
+
"ecomweb products get 42 --full",
|
|
30
37
|
];
|
|
31
38
|
ProductsGet.args = {
|
|
32
39
|
id: core_1.Args.integer({ description: "Product ID", required: true }),
|
|
@@ -37,6 +44,10 @@ ProductsGet.flags = {
|
|
|
37
44
|
"include-combinations": core_1.Flags.boolean({ description: "Include variant combinations" }),
|
|
38
45
|
"include-promotion": core_1.Flags.boolean({ description: "Include promotion details" }),
|
|
39
46
|
"include-seo-metadata": core_1.Flags.boolean({ description: "Include SEO metadata" }),
|
|
47
|
+
"include-tags": core_1.Flags.boolean({ description: "Include the product's tags (also with --full)" }),
|
|
48
|
+
"include-channels": core_1.Flags.boolean({
|
|
49
|
+
description: "Include its sales channels, e.g. whether it is on online_store (also with --full; API 3.24.1+)",
|
|
50
|
+
}),
|
|
40
51
|
};
|
|
41
52
|
exports.default = ProductsGet;
|
|
42
53
|
//# sourceMappingURL=get.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/products/get.ts"],"names":[],"mappings":";;AAAA,sCAA0C;AAC1C,qDAAiD;AACjD,6CAA+C;AAE/C,MAAqB,WAAY,SAAQ,0BAAW;
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/products/get.ts"],"names":[],"mappings":";;AAAA,sCAA0C;AAC1C,qDAAiD;AACjD,6CAA+C;AAE/C,MAAqB,WAAY,SAAQ,0BAAW;IAyBlD,KAAK,CAAC,GAAG;QACP,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE/C,MAAM,MAAM,GAAwB,EAAE,CAAC;QACvC,MAAM,OAAO,GAA2B;YACtC,kBAAkB,EAAE,kBAAkB;YACtC,sBAAsB,EAAE,sBAAsB;YAC9C,mBAAmB,EAAE,mBAAmB;YACxC,sBAAsB,EAAE,sBAAsB;YAC9C,cAAc,EAAE,cAAc;YAC9B,kBAAkB,EAAE,kBAAkB;SACvC,CAAC;QAEF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,KAAK,KAAK,SAAS;gBAAE,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QACjD,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAU,MAAM,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,YAAY,KAAK,IAAI,CAAC;YAC7B,MAAM,CAAC,gBAAgB,KAAK,IAAI,CAAC;QACnC,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAE9E,IAAI,CAAC,YAAY,CAAC,IAAA,oBAAW,EAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAChE,CAAC;;AAnDM,uBAAW,GAAG,qBAAqB,CAAC;AAEpC,oBAAQ,GAAG;IAChB,yBAAyB;IACzB,4CAA4C;IAC5C,gCAAgC;CACjC,CAAC;AAEK,gBAAI,GAAG;IACZ,EAAE,EAAE,WAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CAChE,CAAC;AAEK,iBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,kBAAkB,EAAE,YAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;IAC9E,sBAAsB,EAAE,YAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC;IACtF,mBAAmB,EAAE,YAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;IAChF,sBAAsB,EAAE,YAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;IAC9E,cAAc,EAAE,YAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,+CAA+C,EAAE,CAAC;IAC/F,kBAAkB,EAAE,YAAK,CAAC,OAAO,CAAC;QAChC,WAAW,EAAE,gGAAgG;KAC9G,CAAC;CACH,CAAC;kBAvBiB,WAAW"}
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
import { BaseCommand } from "../../base-command";
|
|
2
|
-
export default class
|
|
2
|
+
export default class ProductsIndexStatus extends BaseCommand {
|
|
3
3
|
static description: string;
|
|
4
4
|
static examples: string[];
|
|
5
|
-
static args: {
|
|
6
|
-
id: import("@oclif/core/lib/interfaces").Arg<number, {
|
|
7
|
-
max?: number;
|
|
8
|
-
min?: number;
|
|
9
|
-
}>;
|
|
10
|
-
};
|
|
11
5
|
static flags: {
|
|
12
6
|
"store-ref": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
7
|
"api-key": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const base_command_1 = require("../../base-command");
|
|
4
|
+
const errors_1 = require("../../lib/errors");
|
|
5
|
+
const index_status_1 = require("../../lib/index-status");
|
|
6
|
+
class ProductsIndexStatus extends base_command_1.BaseCommand {
|
|
7
|
+
async run() {
|
|
8
|
+
const storeRef = this.requireStore();
|
|
9
|
+
let pending;
|
|
10
|
+
try {
|
|
11
|
+
({ pending } = await (0, index_status_1.getIndexStatus)(this.apiClient));
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
if (error.response?.status === 404) {
|
|
15
|
+
throw new errors_1.CliError("INDEX_STATUS_UNAVAILABLE", "This ecomweb API doesn't report search indexing (it needs API 3.24.1 or later).", errors_1.ExitCode.NOT_FOUND);
|
|
16
|
+
}
|
|
17
|
+
throw error;
|
|
18
|
+
}
|
|
19
|
+
this.outputResult({
|
|
20
|
+
resource: "products",
|
|
21
|
+
action: "index-status",
|
|
22
|
+
store_ref: storeRef,
|
|
23
|
+
data: { pending, up_to_date: pending === 0 },
|
|
24
|
+
...(pending > 0 && { hints: { note: "Indexing usually catches up within a few minutes; run this again to check." } }),
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
ProductsIndexStatus.description = "How many product changes the storefront search hasn't caught up with yet. Search, collection pages and the storefront's lists read the index, so they lag behind until pending is 0";
|
|
29
|
+
ProductsIndexStatus.examples = ["ecomweb products index-status"];
|
|
30
|
+
ProductsIndexStatus.flags = {
|
|
31
|
+
...base_command_1.BaseCommand.baseFlags,
|
|
32
|
+
};
|
|
33
|
+
exports.default = ProductsIndexStatus;
|
|
34
|
+
//# sourceMappingURL=index-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-status.js","sourceRoot":"","sources":["../../../src/commands/products/index-status.ts"],"names":[],"mappings":";;AAAA,qDAAiD;AACjD,6CAAsD;AACtD,yDAAwD;AAExD,MAAqB,mBAAoB,SAAQ,0BAAW;IAU1D,KAAK,CAAC,GAAG;QACP,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,CAAC,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,6BAAc,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA4C,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC3E,MAAM,IAAI,iBAAQ,CAAC,0BAA0B,EAAE,iFAAiF,EAAE,iBAAQ,CAAC,SAAS,CAAC,CAAC;YACxJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QACD,IAAI,CAAC,YAAY,CAAC;YAChB,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,cAAc;YACtB,SAAS,EAAE,QAAQ;YACnB,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,KAAK,CAAC,EAAE;YAC5C,GAAG,CAAC,OAAO,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,4EAA4E,EAAE,EAAE,CAAC;SACtH,CAAC,CAAC;IACL,CAAC;;AA3BM,+BAAW,GAChB,qLAAqL,CAAC;AAEjL,4BAAQ,GAAG,CAAC,+BAA+B,CAAC,CAAC;AAE7C,yBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;CACzB,CAAC;kBARiB,mBAAmB"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { BaseCommand } from "
|
|
2
|
-
export default class
|
|
1
|
+
import { BaseCommand } from "../../../base-command";
|
|
2
|
+
export default class ProductsVariantsList extends BaseCommand {
|
|
3
3
|
static description: string;
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static args: {
|
|
6
|
-
id: import("@oclif/core/lib/interfaces").Arg<number, {
|
|
6
|
+
"product-id": import("@oclif/core/lib/interfaces").Arg<number, {
|
|
7
7
|
max?: number;
|
|
8
8
|
min?: number;
|
|
9
9
|
}>;
|
|
10
10
|
};
|
|
11
11
|
static flags: {
|
|
12
|
-
"
|
|
12
|
+
search: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
13
|
"store-ref": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
14
14
|
"api-key": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
15
15
|
"api-url": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_command_1 = require("../../../base-command");
|
|
5
|
+
class ProductsVariantsList extends base_command_1.BaseCommand {
|
|
6
|
+
async run() {
|
|
7
|
+
const storeRef = this.requireStore();
|
|
8
|
+
const { args } = await this.parse(ProductsVariantsList);
|
|
9
|
+
const params = {};
|
|
10
|
+
if (this.getFlag("search") !== undefined)
|
|
11
|
+
params.search = this.getFlag("search");
|
|
12
|
+
const res = await this.apiClient.storeGet(`/products/${args["product-id"]}/variants`, params);
|
|
13
|
+
const data = Array.isArray(res) ? res : res.data || [];
|
|
14
|
+
this.outputResult({
|
|
15
|
+
resource: "product-variants",
|
|
16
|
+
action: "list",
|
|
17
|
+
store_ref: storeRef,
|
|
18
|
+
total_count: data.length,
|
|
19
|
+
data,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
ProductsVariantsList.description = "List one product's variants (ids, SKU, price, stock, tracking)";
|
|
24
|
+
ProductsVariantsList.examples = ["ecomweb products variants list 42", "ecomweb products variants list 42 --search 65"];
|
|
25
|
+
ProductsVariantsList.args = {
|
|
26
|
+
"product-id": core_1.Args.integer({ required: true, description: "Product ID" }),
|
|
27
|
+
};
|
|
28
|
+
ProductsVariantsList.flags = {
|
|
29
|
+
...base_command_1.BaseCommand.baseFlags,
|
|
30
|
+
search: core_1.Flags.string({ description: "Filter by SKU or option value" }),
|
|
31
|
+
};
|
|
32
|
+
exports.default = ProductsVariantsList;
|
|
33
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/products/variants/list.ts"],"names":[],"mappings":";;AAAA,sCAA0C;AAC1C,wDAAoD;AAEpD,MAAqB,oBAAqB,SAAQ,0BAAW;IAW3D,KAAK,CAAC,GAAG;QACP,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAExD,MAAM,MAAM,GAAwB,EAAE,CAAC;QACvC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,SAAS;YAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC9F,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAEvD,IAAI,CAAC,YAAY,CAAC;YAChB,QAAQ,EAAE,kBAAkB;YAC5B,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,QAAQ;YACnB,WAAW,EAAE,IAAI,CAAC,MAAM;YACxB,IAAI;SACL,CAAC,CAAC;IACL,CAAC;;AA1BM,gCAAW,GAAG,gEAAgE,CAAC;AAC/E,6BAAQ,GAAG,CAAC,mCAAmC,EAAE,+CAA+C,CAAC,CAAC;AAClG,yBAAI,GAAG;IACZ,YAAY,EAAE,WAAI,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;CAC1E,CAAC;AACK,0BAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,MAAM,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,+BAA+B,EAAE,CAAC;CACvE,CAAC;kBATiB,oBAAoB"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import { BaseCommand } from "
|
|
2
|
-
export default class
|
|
1
|
+
import { BaseCommand } from "../../../base-command";
|
|
2
|
+
export default class ProductsVariantsUpdate extends BaseCommand {
|
|
3
3
|
static description: string;
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static args: {
|
|
6
|
-
id: import("@oclif/core/lib/interfaces").Arg<number, {
|
|
6
|
+
"product-id": import("@oclif/core/lib/interfaces").Arg<number, {
|
|
7
|
+
max?: number;
|
|
8
|
+
min?: number;
|
|
9
|
+
}>;
|
|
10
|
+
"variant-id": import("@oclif/core/lib/interfaces").Arg<number, {
|
|
7
11
|
max?: number;
|
|
8
12
|
min?: number;
|
|
9
13
|
}>;
|
|
@@ -11,13 +15,12 @@ export default class BannersUpdate extends BaseCommand {
|
|
|
11
15
|
static flags: {
|
|
12
16
|
stdin: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
13
17
|
file: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
"
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
"is-active": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
18
|
+
price: import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
19
|
+
inventory: import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
20
|
+
"track-inventory": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
21
|
+
"inventory-policy": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
22
|
+
sku: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
23
|
+
status: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
21
24
|
"store-ref": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
22
25
|
"api-key": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
23
26
|
"api-url": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|