@ecomweb/cli 1.2.0 → 1.3.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 +13 -0
- package/dist/commands/attributes/create.d.ts +2 -0
- package/dist/commands/attributes/create.js +14 -0
- package/dist/commands/attributes/create.js.map +1 -1
- package/dist/commands/auth/login.js +2 -1
- package/dist/commands/auth/login.js.map +1 -1
- package/dist/commands/bug-reports/create.d.ts +26 -0
- package/dist/commands/bug-reports/create.js +99 -0
- package/dist/commands/bug-reports/create.js.map +1 -0
- package/dist/commands/bug-reports/get.d.ts +21 -0
- package/dist/commands/bug-reports/get.js +40 -0
- package/dist/commands/bug-reports/get.js.map +1 -0
- package/dist/commands/bug-reports/list.d.ts +21 -0
- package/dist/commands/bug-reports/list.js +47 -0
- package/dist/commands/bug-reports/list.js.map +1 -0
- package/dist/lib/api-client.d.ts +6 -0
- package/dist/lib/api-client.js +7 -3
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/bug-reports.d.ts +73 -0
- package/dist/lib/bug-reports.js +111 -0
- package/dist/lib/bug-reports.js.map +1 -0
- package/dist/lib/errors.js +5 -3
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/publishable-key.js +14 -3
- package/dist/lib/publishable-key.js.map +1 -1
- package/dist/lib/screenshot.d.ts +14 -0
- package/dist/lib/screenshot.js +48 -0
- package/dist/lib/screenshot.js.map +1 -0
- package/dist/lib/validators.js +5 -2
- package/dist/lib/validators.js.map +1 -1
- package/oclif.manifest.json +691 -271
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -64,11 +64,24 @@ ecomweb theme settings set 54 --set shop_introduction='Chào mừng!' --set show
|
|
|
64
64
|
ecomweb store-pages create --title "Chính sách bảo hành" --slug warranty-policy --page-type warranty
|
|
65
65
|
ecomweb store-menus add-item customer-support-menu --page warranty-policy
|
|
66
66
|
|
|
67
|
+
# Bug reports (sent as you: needs `ecomweb auth login`, not an API key)
|
|
68
|
+
ecomweb bug-reports create --title "Can't save a product" --description "Save does nothing" --blocking
|
|
69
|
+
ecomweb bug-reports create --title "…" --description "…" --command "products update" --error-code VALIDATION_ERROR
|
|
70
|
+
ecomweb bug-reports create --title "…" --description "…" --screenshot ./shot.png --no-store
|
|
71
|
+
ecomweb bug-reports list --status fixed # yours and your stores' team's, newest first
|
|
72
|
+
ecomweb bug-reports get 1042 # or '#1042', quoted: # starts a comment in a shell
|
|
73
|
+
|
|
67
74
|
# All commands
|
|
68
75
|
ecomweb --help
|
|
69
76
|
ecomweb <topic> --help
|
|
70
77
|
```
|
|
71
78
|
|
|
79
|
+
A bug report is about the current store (`--store-ref`, then the project, then the
|
|
80
|
+
profile) unless you pass `--no-store`. `--screenshot` takes a PNG, JPEG or WebP image
|
|
81
|
+
of at most 5 MB. You can send 10 reports an hour and 30 a day. `get` shows `status_label`
|
|
82
|
+
and `outcome` (for a duplicate, the original's status and the reply); the JSON output (the
|
|
83
|
+
default) is where `outcome` appears, because table and CSV show only top-level fields.
|
|
84
|
+
|
|
72
85
|
## Start with an AI agent
|
|
73
86
|
|
|
74
87
|
Build your store's storefront with Claude Code or Codex. Log in, then create the
|
|
@@ -6,6 +6,8 @@ export default class AttributesCreate extends BaseCommand {
|
|
|
6
6
|
name: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
7
7
|
slug: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
8
8
|
type: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
9
|
+
"taxonomy-code": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
|
+
local: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
9
11
|
"store-ref": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
12
|
"api-key": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
13
|
"api-url": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
@@ -11,6 +11,11 @@ class AttributesCreate extends base_command_1.BaseCommand {
|
|
|
11
11
|
body.slug = this.getFlag("slug");
|
|
12
12
|
if (this.getFlag("type"))
|
|
13
13
|
body.type = this.getFlag("type");
|
|
14
|
+
const code = this.getFlag("taxonomy-code");
|
|
15
|
+
if (code)
|
|
16
|
+
body.taxonomy_attribute_code = code;
|
|
17
|
+
else
|
|
18
|
+
body.is_local = true;
|
|
14
19
|
if (this.isDryRun) {
|
|
15
20
|
this.outputResult((0, output_1.mutationEnvelope)("attributes", "create (dry-run)", storeRef, body));
|
|
16
21
|
return;
|
|
@@ -28,6 +33,7 @@ AttributesCreate.description = "Create a product attribute in the store's librar
|
|
|
28
33
|
AttributesCreate.examples = [
|
|
29
34
|
'ecomweb attributes create --name "Color"',
|
|
30
35
|
'ecomweb attributes create --name "Color" --type visual',
|
|
36
|
+
'ecomweb attributes create --name "Color" --taxonomy-code color',
|
|
31
37
|
];
|
|
32
38
|
AttributesCreate.flags = {
|
|
33
39
|
...base_command_1.BaseCommand.baseFlags,
|
|
@@ -37,6 +43,14 @@ AttributesCreate.flags = {
|
|
|
37
43
|
options: ["select", "text", "visual"],
|
|
38
44
|
description: "visual enables colour/image swatches on its values",
|
|
39
45
|
}),
|
|
46
|
+
"taxonomy-code": core_1.Flags.string({
|
|
47
|
+
description: "Link to a global taxonomy attribute (e.g. color). Without it the attribute is store-only (is_local)",
|
|
48
|
+
exclusive: ["local"],
|
|
49
|
+
}),
|
|
50
|
+
local: core_1.Flags.boolean({
|
|
51
|
+
description: "Store-only attribute, not linked to the taxonomy (the default when --taxonomy-code is not given)",
|
|
52
|
+
exclusive: ["taxonomy-code"],
|
|
53
|
+
}),
|
|
40
54
|
};
|
|
41
55
|
exports.default = AttributesCreate;
|
|
42
56
|
//# sourceMappingURL=create.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/attributes/create.ts"],"names":[],"mappings":";;AAAA,sCAAoC;AACpC,qDAAiD;AACjD,6CAAoD;AAEpD,MAAqB,gBAAiB,SAAQ,0BAAW;
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/attributes/create.ts"],"names":[],"mappings":";;AAAA,sCAAoC;AACpC,qDAAiD;AACjD,6CAAoD;AAEpD,MAAqB,gBAAiB,SAAQ,0BAAW;IAyBvD,KAAK,CAAC,GAAG;QACP,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC,MAAM,IAAI,GAAwB,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACjE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAI3D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAqB,eAAe,CAAC,CAAC;QAC/D,IAAI,IAAI;YAAE,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;;YACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAE1B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,YAAY,CAAC,IAAA,yBAAgB,EAAC,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;YACtF,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAEpE,IAAI,CAAC,YAAY,CAAC;YAChB,QAAQ,EAAE,YAAY;YACtB,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,QAAQ;YACnB,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;IACL,CAAC;;AAjDM,4BAAW,GAAG,mDAAmD,CAAC;AAClE,yBAAQ,GAAG;IAChB,0CAA0C;IAC1C,wDAAwD;IACxD,gEAAgE;CACjE,CAAC;AACK,sBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,IAAI,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;IACjF,IAAI,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,kDAAkD,EAAE,CAAC;IACvF,IAAI,EAAE,YAAK,CAAC,MAAM,CAAC;QACjB,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;QACrC,WAAW,EAAE,oDAAoD;KAClE,CAAC;IACF,eAAe,EAAE,YAAK,CAAC,MAAM,CAAC;QAC5B,WAAW,EAAE,qGAAqG;QAClH,SAAS,EAAE,CAAC,OAAO,CAAC;KACrB,CAAC;IACF,KAAK,EAAE,YAAK,CAAC,OAAO,CAAC;QACnB,WAAW,EAAE,kGAAkG;QAC/G,SAAS,EAAE,CAAC,eAAe,CAAC;KAC7B,CAAC;CACH,CAAC;kBAvBiB,gBAAgB"}
|
|
@@ -94,7 +94,8 @@ class AuthLogin extends base_command_1.BaseCommand {
|
|
|
94
94
|
outputPending(pending) {
|
|
95
95
|
const flag = this.getFlag("profile");
|
|
96
96
|
const apiUrlFlag = this.getFlag("api-url");
|
|
97
|
-
const
|
|
97
|
+
const storeRefFlag = this.getFlag("store-ref");
|
|
98
|
+
const again = `${flag ? ` --profile ${flag}` : ""}${apiUrlFlag ? ` --api-url ${apiUrlFlag}` : ""}${storeRefFlag ? ` --store-ref ${storeRefFlag}` : " [--store-ref <ref>]"}`;
|
|
98
99
|
this.outputJson({
|
|
99
100
|
status: "authorization_pending",
|
|
100
101
|
verification_uri_complete: pending.verification_uri_complete,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { BaseCommand } from "../../base-command";
|
|
2
|
+
export default class BugReportsCreate extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
title: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
7
|
+
description: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
8
|
+
steps: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
9
|
+
blocking: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
screenshot: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
command: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
+
"error-code": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
|
+
"no-store": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
"store-ref": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
15
|
+
"api-key": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
16
|
+
"api-url": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
17
|
+
output: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
18
|
+
quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
19
|
+
"dry-run": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
20
|
+
profile: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
21
|
+
full: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
22
|
+
fields: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
23
|
+
exclude: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
24
|
+
};
|
|
25
|
+
run(): Promise<void>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
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
|
+
const bug_reports_1 = require("../../lib/bug-reports");
|
|
6
|
+
const errors_1 = require("../../lib/errors");
|
|
7
|
+
const screenshot_1 = require("../../lib/screenshot");
|
|
8
|
+
class BugReportsCreate extends base_command_1.BaseCommand {
|
|
9
|
+
async run() {
|
|
10
|
+
(0, bug_reports_1.assertSignedIn)({
|
|
11
|
+
apiKey: this.configManager.resolveApiKey(this.getFlag("api-key")),
|
|
12
|
+
hasSession: this.credentials.get(this.profileName) !== undefined,
|
|
13
|
+
dryRun: this.isDryRun,
|
|
14
|
+
});
|
|
15
|
+
const noStore = this.getFlag("no-store") === true;
|
|
16
|
+
if (noStore && this.argv.some((a) => a === "--store-ref" || a.startsWith("--store-ref="))) {
|
|
17
|
+
throw new errors_1.CliError("CONFLICTING_INPUT", "Pass --store-ref or --no-store, not both.", errors_1.ExitCode.VALIDATION);
|
|
18
|
+
}
|
|
19
|
+
const title = (0, bug_reports_1.reportText)("--title", this.getFlag("title"), bug_reports_1.BUG_REPORT_LIMITS.title, { required: true });
|
|
20
|
+
const description = (0, bug_reports_1.reportText)("--description", this.getFlag("description"), bug_reports_1.BUG_REPORT_LIMITS.description, {
|
|
21
|
+
required: true,
|
|
22
|
+
});
|
|
23
|
+
const steps = (0, bug_reports_1.reportText)("--steps", this.getFlag("steps"), bug_reports_1.BUG_REPORT_LIMITS.steps);
|
|
24
|
+
const tool_name = (0, bug_reports_1.reportText)("--command", this.getFlag("command"), bug_reports_1.BUG_REPORT_LIMITS.tool_name);
|
|
25
|
+
const error_code = (0, bug_reports_1.reportText)("--error-code", this.getFlag("error-code"), bug_reports_1.BUG_REPORT_LIMITS.error_code);
|
|
26
|
+
const store = noStore ? undefined : this.resolveStore();
|
|
27
|
+
const file = this.getFlag("screenshot");
|
|
28
|
+
const shot = file ? (0, screenshot_1.readScreenshot)(file) : undefined;
|
|
29
|
+
const body = {
|
|
30
|
+
title,
|
|
31
|
+
description,
|
|
32
|
+
blocking: this.getFlag("blocking") === true,
|
|
33
|
+
...(steps !== undefined ? { steps } : {}),
|
|
34
|
+
...(store ? { store } : {}),
|
|
35
|
+
...(tool_name !== undefined ? { tool_name } : {}),
|
|
36
|
+
...(error_code !== undefined ? { error_code } : {}),
|
|
37
|
+
};
|
|
38
|
+
if (this.isDryRun) {
|
|
39
|
+
this.outputResult({
|
|
40
|
+
resource: "bug-reports",
|
|
41
|
+
action: "create (dry-run)",
|
|
42
|
+
data: {
|
|
43
|
+
method: "POST",
|
|
44
|
+
path: "/bug-reports",
|
|
45
|
+
encoding: shot ? "multipart" : "json",
|
|
46
|
+
body,
|
|
47
|
+
screenshot: shot ? { file: shot.path, bytes: shot.bytes, type: shot.mime } : null,
|
|
48
|
+
},
|
|
49
|
+
hints: { note: "Nothing was sent." },
|
|
50
|
+
});
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
let created;
|
|
54
|
+
try {
|
|
55
|
+
created = shot
|
|
56
|
+
? await this.apiClient.upload("/bug-reports", (0, bug_reports_1.bugReportForm)(body, shot), { retryRateLimit: false })
|
|
57
|
+
: await this.apiClient.post("/bug-reports", body, { retryRateLimit: false });
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
throw (0, bug_reports_1.bugReportApiError)(error, { store });
|
|
61
|
+
}
|
|
62
|
+
this.outputResult({
|
|
63
|
+
resource: "bug-reports",
|
|
64
|
+
action: "create",
|
|
65
|
+
data: { ...created, store: store ?? null },
|
|
66
|
+
available_actions: ["get", "list"],
|
|
67
|
+
hints: { get: `ecomweb bug-reports get ${created.id}` },
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
BugReportsCreate.description = "Report a bug to ecomweb staff. It is about the current store unless you pass --no-store. You get a number; check on it with ecomweb bug-reports get.";
|
|
72
|
+
BugReportsCreate.examples = [
|
|
73
|
+
'ecomweb bug-reports create --title "Can\'t save a product" --description "Save does nothing"',
|
|
74
|
+
'ecomweb bug-reports create --title "Update fails" --description "It prints an error" --blocking --command "products update" --error-code VALIDATION_ERROR',
|
|
75
|
+
'ecomweb bug-reports create --title "Login page" --description "The button is cut off" --screenshot ./shot.png --no-store',
|
|
76
|
+
];
|
|
77
|
+
BugReportsCreate.flags = {
|
|
78
|
+
...base_command_1.BaseCommand.baseFlags,
|
|
79
|
+
title: core_1.Flags.string({ required: true, description: "Short summary of the problem (at most 200 characters)" }),
|
|
80
|
+
description: core_1.Flags.string({
|
|
81
|
+
required: true,
|
|
82
|
+
description: "What happened, and what you expected (at most 5000 characters)",
|
|
83
|
+
}),
|
|
84
|
+
steps: core_1.Flags.string({ description: "Steps to reproduce (at most 5000 characters)" }),
|
|
85
|
+
blocking: core_1.Flags.boolean({ default: false, description: "The problem stops you selling or running your store" }),
|
|
86
|
+
screenshot: core_1.Flags.string({ description: "A PNG, JPEG or WebP image of at most 5 MB" }),
|
|
87
|
+
command: core_1.Flags.string({
|
|
88
|
+
description: 'The ecomweb command that failed, e.g. "products update" (at most 64 characters)',
|
|
89
|
+
}),
|
|
90
|
+
"error-code": core_1.Flags.string({
|
|
91
|
+
description: "The error code it printed, e.g. VALIDATION_ERROR (at most 64 characters)",
|
|
92
|
+
}),
|
|
93
|
+
"no-store": core_1.Flags.boolean({
|
|
94
|
+
default: false,
|
|
95
|
+
description: "File it as not about a store (by default it is about the current store)",
|
|
96
|
+
}),
|
|
97
|
+
};
|
|
98
|
+
exports.default = BugReportsCreate;
|
|
99
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/bug-reports/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { BaseCommand } from "../../base-command";
|
|
2
|
+
export default class BugReportsGet extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
number: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
};
|
|
8
|
+
static flags: {
|
|
9
|
+
"store-ref": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
|
+
"api-key": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
"api-url": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
+
output: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
|
+
quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
"dry-run": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
15
|
+
profile: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
16
|
+
full: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
17
|
+
fields: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
18
|
+
exclude: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
19
|
+
};
|
|
20
|
+
run(): Promise<void>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
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
|
+
const bug_reports_1 = require("../../lib/bug-reports");
|
|
6
|
+
class BugReportsGet extends base_command_1.BaseCommand {
|
|
7
|
+
async run() {
|
|
8
|
+
(0, bug_reports_1.assertSignedIn)({
|
|
9
|
+
apiKey: this.configManager.resolveApiKey(this.getFlag("api-key")),
|
|
10
|
+
hasSession: this.credentials.get(this.profileName) !== undefined,
|
|
11
|
+
});
|
|
12
|
+
const { args } = await this.parse(BugReportsGet);
|
|
13
|
+
const digits = (0, bug_reports_1.parseReportNumber)(args.number);
|
|
14
|
+
let report;
|
|
15
|
+
try {
|
|
16
|
+
report = await this.apiClient.get(`/bug-reports/${digits}`);
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
throw (0, bug_reports_1.bugReportApiError)(error, { number: digits });
|
|
20
|
+
}
|
|
21
|
+
this.outputResult({
|
|
22
|
+
resource: "bug-reports",
|
|
23
|
+
action: "get",
|
|
24
|
+
data: (0, bug_reports_1.toCliReport)(report),
|
|
25
|
+
available_actions: ["list", "create"],
|
|
26
|
+
hints: { list: "ecomweb bug-reports list" },
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
BugReportsGet.description = "Show one bug report: its status, and for a duplicate the original's status and the reply (outcome).";
|
|
31
|
+
BugReportsGet.examples = ["ecomweb bug-reports get 1042", "ecomweb bug-reports get '#1042'"];
|
|
32
|
+
BugReportsGet.args = {
|
|
33
|
+
number: core_1.Args.string({
|
|
34
|
+
required: true,
|
|
35
|
+
description: "Report number: 1042 or '#1042' (quote it: # starts a comment in a shell)",
|
|
36
|
+
}),
|
|
37
|
+
};
|
|
38
|
+
BugReportsGet.flags = { ...base_command_1.BaseCommand.baseFlags };
|
|
39
|
+
exports.default = BugReportsGet;
|
|
40
|
+
//# sourceMappingURL=get.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/bug-reports/get.ts"],"names":[],"mappings":";;AAAA,sCAAmC;AACnC,qDAAiD;AACjD,uDAAkI;AAElI,MAAqB,aAAc,SAAQ,0BAAW;IAepD,KAAK,CAAC,GAAG;QACP,IAAA,4BAAc,EAAC;YACb,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACjE,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,SAAS;SACjE,CAAC,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAA,+BAAiB,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE9C,IAAI,MAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAoB,gBAAgB,MAAM,EAAE,CAAC,CAAC;QACjF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAA,+BAAiB,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,CAAC,YAAY,CAAC;YAChB,QAAQ,EAAE,aAAa;YACvB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,IAAA,yBAAW,EAAC,MAAM,CAAC;YACzB,iBAAiB,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;YACrC,KAAK,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE;SAC5C,CAAC,CAAC;IACL,CAAC;;AApCM,yBAAW,GAChB,qGAAqG,CAAC;AAEjG,sBAAQ,GAAG,CAAC,8BAA8B,EAAE,iCAAiC,CAAC,CAAC;AAE/E,kBAAI,GAAG;IACZ,MAAM,EAAE,WAAI,CAAC,MAAM,CAAC;QAClB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,0EAA0E;KACxF,CAAC;CACH,CAAC;AAEK,mBAAK,GAAG,EAAE,GAAG,0BAAW,CAAC,SAAS,EAAE,CAAC;kBAbzB,aAAa"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { BaseCommand } from "../../base-command";
|
|
2
|
+
export default class BugReportsList extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
status: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
7
|
+
page: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
8
|
+
limit: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
9
|
+
"store-ref": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
|
+
"api-key": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
"api-url": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
+
output: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
13
|
+
quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
"dry-run": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
15
|
+
profile: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
16
|
+
full: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
17
|
+
fields: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
18
|
+
exclude: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
19
|
+
};
|
|
20
|
+
run(): Promise<void>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
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
|
+
const bug_reports_1 = require("../../lib/bug-reports");
|
|
6
|
+
class BugReportsList extends base_command_1.BaseCommand {
|
|
7
|
+
async run() {
|
|
8
|
+
(0, bug_reports_1.assertSignedIn)({
|
|
9
|
+
apiKey: this.configManager.resolveApiKey(this.getFlag("api-key")),
|
|
10
|
+
hasSession: this.credentials.get(this.profileName) !== undefined,
|
|
11
|
+
});
|
|
12
|
+
const status = this.getFlag("status");
|
|
13
|
+
const page = this.getFlag("page");
|
|
14
|
+
const limit = this.getFlag("limit");
|
|
15
|
+
let res;
|
|
16
|
+
try {
|
|
17
|
+
res = await this.apiClient.get("/bug-reports", { page, limit, ...(status && { status }) });
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
throw (0, bug_reports_1.bugReportApiError)(error);
|
|
21
|
+
}
|
|
22
|
+
const { total } = res.meta;
|
|
23
|
+
const has_next = page * limit < total;
|
|
24
|
+
const hints = { get_detail: "ecomweb bug-reports get <number>" };
|
|
25
|
+
if (has_next) {
|
|
26
|
+
hints.next_page = `ecomweb bug-reports list --page ${page + 1}${status ? ` --status ${status}` : ""}${limit !== 20 ? ` --limit ${limit}` : ""}`;
|
|
27
|
+
}
|
|
28
|
+
this.outputResult({
|
|
29
|
+
resource: "bug-reports",
|
|
30
|
+
action: "list",
|
|
31
|
+
data: res.data.map(bug_reports_1.toCliReport),
|
|
32
|
+
meta: { total, page, limit, has_next },
|
|
33
|
+
available_actions: ["get", "create"],
|
|
34
|
+
hints,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
BugReportsList.description = "List the bug reports you can see: yours, and those of your stores' team, newest first.";
|
|
39
|
+
BugReportsList.examples = ["ecomweb bug-reports list", "ecomweb bug-reports list --status fixed --page 2"];
|
|
40
|
+
BugReportsList.flags = {
|
|
41
|
+
...base_command_1.BaseCommand.baseFlags,
|
|
42
|
+
status: core_1.Flags.string({ options: [...bug_reports_1.BUG_REPORT_STATUSES], description: "Only reports with this status" }),
|
|
43
|
+
page: core_1.Flags.integer({ default: 1, min: 1, description: "Page number" }),
|
|
44
|
+
limit: core_1.Flags.integer({ default: 20, min: 1, max: 100, description: "Reports per page (at most 100)" }),
|
|
45
|
+
};
|
|
46
|
+
exports.default = BugReportsList;
|
|
47
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/bug-reports/list.ts"],"names":[],"mappings":";;AAAA,sCAAoC;AACpC,qDAAiD;AACjD,uDAAoI;AAEpI,MAAqB,cAAe,SAAQ,0BAAW;IAYrD,KAAK,CAAC,GAAG;QACP,IAAA,4BAAc,EAAC;YACb,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACjE,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,SAAS;SACjE,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAW,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAW,CAAC;QAE9C,IAAI,GAAwF,CAAC;QAC7F,IAAI,CAAC;YAEH,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAA,+BAAiB,EAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;QAC3B,MAAM,QAAQ,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;QACtC,MAAM,KAAK,GAA2B,EAAE,UAAU,EAAE,kCAAkC,EAAE,CAAC;QACzF,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,CAAC,SAAS,GAAG,mCAAmC,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAClJ,CAAC;QAED,IAAI,CAAC,YAAY,CAAC;YAChB,QAAQ,EAAE,aAAa;YACvB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,yBAAW,CAAC;YAC/B,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;YACtC,iBAAiB,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;YACpC,KAAK;SACN,CAAC,CAAC;IACL,CAAC;;AA5CM,0BAAW,GAAG,wFAAwF,CAAC;AAEvG,uBAAQ,GAAG,CAAC,0BAA0B,EAAE,kDAAkD,CAAC,CAAC;AAE5F,oBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,MAAM,EAAE,YAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,iCAAmB,CAAC,EAAE,WAAW,EAAE,+BAA+B,EAAE,CAAC;IACzG,IAAI,EAAE,YAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;IACvE,KAAK,EAAE,YAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC;CACvG,CAAC;kBAViB,cAAc"}
|
package/dist/lib/api-client.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { AxiosRequestConfig } from "axios";
|
|
2
2
|
import FormData from "form-data";
|
|
3
3
|
import { SessionProvider } from "./session";
|
|
4
|
+
declare module "axios" {
|
|
5
|
+
interface AxiosRequestConfig {
|
|
6
|
+
retryRateLimit?: boolean;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
4
9
|
export interface ApiClientOptions {
|
|
5
10
|
baseUrl: string;
|
|
6
11
|
apiKey?: string;
|
|
@@ -43,6 +48,7 @@ export declare class ApiClient {
|
|
|
43
48
|
storeEventStream(path: string, opts?: {
|
|
44
49
|
signal?: AbortSignal;
|
|
45
50
|
}): Promise<AsyncIterable<Buffer>>;
|
|
51
|
+
upload<T = any>(path: string, formData: FormData, config?: AxiosRequestConfig): Promise<T>;
|
|
46
52
|
storeUpload<T = any>(path: string, formData: FormData): Promise<T>;
|
|
47
53
|
listPaginated<T = any>(path: string, params?: Record<string, any>): Promise<PaginatedResponse<T>>;
|
|
48
54
|
listAll<T = any>(path: string, params?: Record<string, any>): Promise<T[]>;
|
package/dist/lib/api-client.js
CHANGED
|
@@ -43,7 +43,7 @@ class ApiClient {
|
|
|
43
43
|
this.client.interceptors.response.use(undefined, async (error) => {
|
|
44
44
|
const config = error.config;
|
|
45
45
|
const status = error.response?.status;
|
|
46
|
-
if (config && status === 429 && (config._retryCount ?? 0) < 3) {
|
|
46
|
+
if (config && status === 429 && config.retryRateLimit !== false && (config._retryCount ?? 0) < 3) {
|
|
47
47
|
config._retryCount = (config._retryCount || 0) + 1;
|
|
48
48
|
const delay = Math.pow(2, config._retryCount) * 1000;
|
|
49
49
|
await new Promise((r) => setTimeout(r, delay));
|
|
@@ -130,13 +130,17 @@ class ApiClient {
|
|
|
130
130
|
});
|
|
131
131
|
return data;
|
|
132
132
|
}
|
|
133
|
-
async
|
|
134
|
-
return this.post(
|
|
133
|
+
async upload(path, formData, config) {
|
|
134
|
+
return this.post(path, formData, {
|
|
135
|
+
...config,
|
|
135
136
|
headers: formData.getHeaders(),
|
|
136
137
|
maxContentLength: Infinity,
|
|
137
138
|
maxBodyLength: Infinity,
|
|
138
139
|
});
|
|
139
140
|
}
|
|
141
|
+
async storeUpload(path, formData) {
|
|
142
|
+
return this.upload(this.storePath(path), formData);
|
|
143
|
+
}
|
|
140
144
|
async listPaginated(path, params) {
|
|
141
145
|
return this.storeGet(path, params);
|
|
142
146
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAiE;AACjE,0DAAiC;AACjC,uCAAyD;
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import FormData from "form-data";
|
|
2
|
+
import type { Screenshot } from "./screenshot";
|
|
3
|
+
export declare const BUG_REPORT_STATUSES: readonly ["new", "confirmed", "in_progress", "fixed", "wont_fix", "duplicate"];
|
|
4
|
+
export type BugReportStatus = (typeof BUG_REPORT_STATUSES)[number];
|
|
5
|
+
export declare const BUG_REPORT_LIMITS: {
|
|
6
|
+
readonly title: 200;
|
|
7
|
+
readonly description: 5000;
|
|
8
|
+
readonly steps: 5000;
|
|
9
|
+
readonly tool_name: 64;
|
|
10
|
+
readonly error_code: 64;
|
|
11
|
+
};
|
|
12
|
+
export declare const BUG_REPORT_RATE: {
|
|
13
|
+
readonly perHour: 10;
|
|
14
|
+
readonly perDay: 30;
|
|
15
|
+
};
|
|
16
|
+
export declare const STATUS_LABELS_EN: Record<BugReportStatus, string>;
|
|
17
|
+
export declare function statusLabel(status: string, duplicateOf?: string | null): string;
|
|
18
|
+
export declare function parseReportNumber(raw: string): string;
|
|
19
|
+
export declare function reportText(flag: string, raw: string | undefined, max: number, opts?: {
|
|
20
|
+
required?: boolean;
|
|
21
|
+
}): string | undefined;
|
|
22
|
+
export interface MerchantBugReport {
|
|
23
|
+
id: string;
|
|
24
|
+
number: string;
|
|
25
|
+
title: string;
|
|
26
|
+
description: string;
|
|
27
|
+
steps: string | null;
|
|
28
|
+
store: {
|
|
29
|
+
ref: string;
|
|
30
|
+
name: string;
|
|
31
|
+
} | null;
|
|
32
|
+
source: "dashboard" | "cli" | "mcp";
|
|
33
|
+
reporter: {
|
|
34
|
+
name: string | null;
|
|
35
|
+
is_me: boolean;
|
|
36
|
+
};
|
|
37
|
+
status: BugReportStatus;
|
|
38
|
+
duplicate_of: string | null;
|
|
39
|
+
outcome: {
|
|
40
|
+
status: BugReportStatus;
|
|
41
|
+
reply: string | null;
|
|
42
|
+
};
|
|
43
|
+
status_changed_at: string | null;
|
|
44
|
+
created_at: string;
|
|
45
|
+
}
|
|
46
|
+
export type CliBugReport = MerchantBugReport & {
|
|
47
|
+
status_label: string;
|
|
48
|
+
outcome: {
|
|
49
|
+
status: BugReportStatus;
|
|
50
|
+
status_label: string;
|
|
51
|
+
reply: string | null;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
export declare function toCliReport(report: MerchantBugReport): CliBugReport;
|
|
55
|
+
export interface BugReportBody {
|
|
56
|
+
title: string;
|
|
57
|
+
description: string;
|
|
58
|
+
blocking: boolean;
|
|
59
|
+
steps?: string;
|
|
60
|
+
store?: string;
|
|
61
|
+
tool_name?: string;
|
|
62
|
+
error_code?: string;
|
|
63
|
+
}
|
|
64
|
+
export declare function bugReportForm(body: BugReportBody, shot: Screenshot): FormData;
|
|
65
|
+
export declare function assertSignedIn(opts: {
|
|
66
|
+
apiKey: string | undefined;
|
|
67
|
+
hasSession: boolean;
|
|
68
|
+
dryRun?: boolean;
|
|
69
|
+
}): void;
|
|
70
|
+
export declare function bugReportApiError(error: unknown, ctx?: {
|
|
71
|
+
store?: string;
|
|
72
|
+
number?: string;
|
|
73
|
+
}): unknown;
|