@ecomweb/cli 1.2.1 → 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/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/screenshot.d.ts +14 -0
- package/dist/lib/screenshot.js +48 -0
- package/dist/lib/screenshot.js.map +1 -0
- package/oclif.manifest.json +855 -455
- package/package.json +1 -1
package/dist/lib/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":";;;AA0DA,kCAcC;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const SCREENSHOT_MAX_BYTES: number;
|
|
2
|
+
export type ScreenshotType = {
|
|
3
|
+
mime: "image/png" | "image/jpeg" | "image/webp";
|
|
4
|
+
ext: "png" | "jpg" | "webp";
|
|
5
|
+
};
|
|
6
|
+
export interface Screenshot {
|
|
7
|
+
path: string;
|
|
8
|
+
filename: string;
|
|
9
|
+
bytes: number;
|
|
10
|
+
mime: ScreenshotType["mime"];
|
|
11
|
+
buffer: Buffer;
|
|
12
|
+
}
|
|
13
|
+
export declare function sniffScreenshot(buf: Buffer): ScreenshotType | null;
|
|
14
|
+
export declare function readScreenshot(file: string): Screenshot;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SCREENSHOT_MAX_BYTES = void 0;
|
|
7
|
+
exports.sniffScreenshot = sniffScreenshot;
|
|
8
|
+
exports.readScreenshot = readScreenshot;
|
|
9
|
+
const node_fs_1 = require("node:fs");
|
|
10
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
11
|
+
const errors_1 = require("./errors");
|
|
12
|
+
exports.SCREENSHOT_MAX_BYTES = 5 * 1024 * 1024;
|
|
13
|
+
const PNG_MAGIC = Buffer.from([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);
|
|
14
|
+
const JPEG_MAGIC = Buffer.from([0xff, 0xd8, 0xff]);
|
|
15
|
+
function sniffScreenshot(buf) {
|
|
16
|
+
if (buf.length >= PNG_MAGIC.length && buf.subarray(0, PNG_MAGIC.length).equals(PNG_MAGIC)) {
|
|
17
|
+
return { mime: "image/png", ext: "png" };
|
|
18
|
+
}
|
|
19
|
+
if (buf.length >= JPEG_MAGIC.length && buf.subarray(0, JPEG_MAGIC.length).equals(JPEG_MAGIC)) {
|
|
20
|
+
return { mime: "image/jpeg", ext: "jpg" };
|
|
21
|
+
}
|
|
22
|
+
if (buf.length >= 12 && buf.toString("latin1", 0, 4) === "RIFF" && buf.toString("latin1", 8, 12) === "WEBP") {
|
|
23
|
+
return { mime: "image/webp", ext: "webp" };
|
|
24
|
+
}
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
const HINT = "Use a PNG, JPEG or WebP image of at most 5 MB, or leave out --screenshot.";
|
|
28
|
+
function invalid(message) {
|
|
29
|
+
return new errors_1.CliError("BUG_REPORT_SCREENSHOT_INVALID", message, errors_1.ExitCode.VALIDATION, { hint: HINT });
|
|
30
|
+
}
|
|
31
|
+
function readScreenshot(file) {
|
|
32
|
+
const abs = node_path_1.default.resolve(file);
|
|
33
|
+
if (!(0, node_fs_1.existsSync)(abs))
|
|
34
|
+
throw invalid(`Screenshot not found: ${abs}`);
|
|
35
|
+
const stat = (0, node_fs_1.statSync)(abs);
|
|
36
|
+
if (!stat.isFile())
|
|
37
|
+
throw invalid(`Screenshot is not a file: ${abs}`);
|
|
38
|
+
if (stat.size === 0 || stat.size > exports.SCREENSHOT_MAX_BYTES) {
|
|
39
|
+
throw invalid(`The screenshot is ${stat.size} bytes; it must be 1 to ${exports.SCREENSHOT_MAX_BYTES} bytes (5 MB).`);
|
|
40
|
+
}
|
|
41
|
+
const buffer = (0, node_fs_1.readFileSync)(abs);
|
|
42
|
+
const type = sniffScreenshot(buffer);
|
|
43
|
+
if (!type) {
|
|
44
|
+
throw invalid("The screenshot must be a PNG, JPEG or WebP image (checked by its content, not its name).");
|
|
45
|
+
}
|
|
46
|
+
return { path: abs, filename: node_path_1.default.basename(abs), bytes: buffer.length, mime: type.mime, buffer };
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=screenshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/lib/screenshot.ts"],"names":[],"mappings":"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"}
|