@alwaysmeticulous/cli 2.263.0 → 2.264.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/agent/index.js +5 -3
- package/dist/commands/agent/index.js.map +1 -1
- package/dist/commands/agent/jobs.command.d.ts +6 -0
- package/dist/commands/agent/jobs.command.js +36 -0
- package/dist/commands/agent/jobs.command.js.map +1 -0
- package/dist/commands/agent/screenshot-dom-diff.command.d.ts +1 -1
- package/dist/commands/agent/screenshot-dom-diff.command.js +3 -3
- package/dist/commands/agent/screenshot-dom-diff.command.js.map +1 -1
- package/dist/commands/agent/screenshot-image.command.d.ts +1 -1
- package/dist/commands/agent/screenshot-image.command.js +3 -3
- package/dist/commands/agent/screenshot-image.command.js.map +1 -1
- package/dist/commands/agent/test-run-diffs.command.d.ts +1 -0
- package/dist/commands/agent/test-run-diffs.command.js +25 -8
- package/dist/commands/agent/test-run-diffs.command.js.map +1 -1
- package/dist/commands/agent/timeline.command.d.ts +1 -1
- package/dist/commands/agent/timeline.command.js +3 -3
- package/dist/commands/agent/timeline.command.js.map +1 -1
- package/package.json +14 -14
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.agentCommand = void 0;
|
|
4
|
+
const jobs_command_1 = require("./jobs.command");
|
|
4
5
|
const screenshot_dom_diff_command_1 = require("./screenshot-dom-diff.command");
|
|
5
6
|
const screenshot_image_command_1 = require("./screenshot-image.command");
|
|
6
7
|
const test_run_diffs_command_1 = require("./test-run-diffs.command");
|
|
@@ -10,9 +11,10 @@ exports.agentCommand = {
|
|
|
10
11
|
describe: "Agent analysis commands for test run diffs",
|
|
11
12
|
builder: (yargs) => yargs
|
|
12
13
|
.command(test_run_diffs_command_1.testRunDiffsCommand)
|
|
13
|
-
.command(
|
|
14
|
-
.command(
|
|
15
|
-
.command(
|
|
14
|
+
.command(jobs_command_1.testRunDiffsJobsCommand)
|
|
15
|
+
.command(screenshot_dom_diff_command_1.domDiffCommand)
|
|
16
|
+
.command(screenshot_image_command_1.imageUrlsCommand)
|
|
17
|
+
.command(timeline_command_1.timelineDiffCommand)
|
|
16
18
|
.demandCommand()
|
|
17
19
|
.help(),
|
|
18
20
|
handler: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/agent/index.ts"],"names":[],"mappings":";;;AACA,+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/agent/index.ts"],"names":[],"mappings":";;;AACA,iDAAyD;AACzD,+EAA+D;AAC/D,yEAA8D;AAC9D,qEAA+D;AAC/D,yDAAyD;AAE5C,QAAA,YAAY,GAAkB;IACzC,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,4CAA4C;IACtD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,OAAO,CAAC,4CAAmB,CAAC;SAC5B,OAAO,CAAC,sCAAuB,CAAC;SAChC,OAAO,CAAC,4CAAc,CAAC;SACvB,OAAO,CAAC,2CAAgB,CAAC;SACzB,OAAO,CAAC,sCAAmB,CAAC;SAC5B,aAAa,EAAE;SACf,IAAI,EAAE;IACX,OAAO,EAAE,GAAG,EAAE;QACZ,0BAA0B;IAC5B,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.testRunDiffsJobsCommand = void 0;
|
|
4
|
+
const client_1 = require("@alwaysmeticulous/client");
|
|
5
|
+
const common_1 = require("@alwaysmeticulous/common");
|
|
6
|
+
const sentry_utils_1 = require("../../command-utils/sentry.utils");
|
|
7
|
+
const handler = async ({ apiToken }) => {
|
|
8
|
+
var _a, _b;
|
|
9
|
+
(0, common_1.initLogger)();
|
|
10
|
+
const client = (0, client_1.createClient)({ apiToken });
|
|
11
|
+
const { jobs } = await (0, client_1.getDiffsSummaryJobs)(client);
|
|
12
|
+
if (jobs.length === 0) {
|
|
13
|
+
process.stderr.write("No diffs-summary jobs found.\n");
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
console.log(["jobId", "testRunId", "status", "progress", "error", "createdAt"].join("\t"));
|
|
17
|
+
for (const job of jobs) {
|
|
18
|
+
console.log([
|
|
19
|
+
job.jobId,
|
|
20
|
+
job.testRunId,
|
|
21
|
+
job.status,
|
|
22
|
+
(_a = job.progress) !== null && _a !== void 0 ? _a : "",
|
|
23
|
+
(_b = job.error) !== null && _b !== void 0 ? _b : "",
|
|
24
|
+
new Date(job.createdAt).toISOString(),
|
|
25
|
+
].join("\t"));
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
exports.testRunDiffsJobsCommand = {
|
|
29
|
+
command: "test-run-diffs-jobs",
|
|
30
|
+
describe: "List diffs-summary jobs",
|
|
31
|
+
builder: {
|
|
32
|
+
apiToken: { string: true, description: "Meticulous API token" },
|
|
33
|
+
},
|
|
34
|
+
handler: (0, sentry_utils_1.wrapHandler)(handler),
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=jobs.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs.command.js","sourceRoot":"","sources":["../../../src/commands/agent/jobs.command.ts"],"names":[],"mappings":";;;AAAA,qDAA6E;AAC7E,qDAAsD;AAEtD,mEAA+D;AAM/D,MAAM,OAAO,GAAG,KAAK,EAAE,EAAE,QAAQ,EAAW,EAAiB,EAAE;;IAC7D,IAAA,mBAAU,GAAE,CAAC;IACb,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,4BAAmB,EAAC,MAAM,CAAC,CAAC;IAEnD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACvD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE3F,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CACT;YACE,GAAG,CAAC,KAAK;YACT,GAAG,CAAC,SAAS;YACb,GAAG,CAAC,MAAM;YACV,MAAA,GAAG,CAAC,QAAQ,mCAAI,EAAE;YAClB,MAAA,GAAG,CAAC,KAAK,mCAAI,EAAE;YACf,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;SACtC,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,uBAAuB,GAAoC;IACtE,OAAO,EAAE,qBAAqB;IAC9B,QAAQ,EAAE,yBAAyB;IACnC,OAAO,EAAE;QACP,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;KAChE;IACD,OAAO,EAAE,IAAA,0BAAW,EAAC,OAAO,CAAC;CAC9B,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.domDiffCommand = void 0;
|
|
4
4
|
const client_1 = require("@alwaysmeticulous/client");
|
|
5
5
|
const common_1 = require("@alwaysmeticulous/common");
|
|
6
6
|
const sentry_utils_1 = require("../../command-utils/sentry.utils");
|
|
@@ -28,8 +28,8 @@ const handler = async ({ apiToken, replayDiffId, screenshotName, index, }) => {
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
};
|
|
31
|
-
exports.
|
|
32
|
-
command: "
|
|
31
|
+
exports.domDiffCommand = {
|
|
32
|
+
command: "dom-diff",
|
|
33
33
|
describe: "Get screenshot DOM diff for a replay diff screenshot",
|
|
34
34
|
builder: {
|
|
35
35
|
apiToken: { string: true, description: "Meticulous API token" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenshot-dom-diff.command.js","sourceRoot":"","sources":["../../../src/commands/agent/screenshot-dom-diff.command.ts"],"names":[],"mappings":";;;AAAA,qDAA8E;AAC9E,qDAAsD;AAEtD,mEAA+D;AAS/D,MAAM,OAAO,GAAG,KAAK,EAAE,EACrB,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,KAAK,GACG,EAAiB,EAAE;IAC3B,IAAA,mBAAU,GAAE,CAAC;IACb,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE1C,MAAM,MAAM,GAAG,MAAM,IAAA,6BAAoB,EACvC,MAAM,EACN,YAAY,EACZ,cAAc,EACd,KAAK,CACN,CAAC;IAEF,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CACX,SAAS,KAAK,kBAAkB,MAAM,CAAC,UAAU,qBAAqB,CACvE,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,
|
|
1
|
+
{"version":3,"file":"screenshot-dom-diff.command.js","sourceRoot":"","sources":["../../../src/commands/agent/screenshot-dom-diff.command.ts"],"names":[],"mappings":";;;AAAA,qDAA8E;AAC9E,qDAAsD;AAEtD,mEAA+D;AAS/D,MAAM,OAAO,GAAG,KAAK,EAAE,EACrB,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,KAAK,GACG,EAAiB,EAAE;IAC3B,IAAA,mBAAU,GAAE,CAAC;IACb,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE1C,MAAM,MAAM,GAAG,MAAM,IAAA,6BAAoB,EACvC,MAAM,EACN,YAAY,EACZ,cAAc,EACd,KAAK,CACN,CAAC;IAEF,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CACX,SAAS,KAAK,kBAAkB,MAAM,CAAC,UAAU,qBAAqB,CACvE,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,cAAc,GAAoC;IAC7D,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,sDAAsD;IAChE,OAAO,EAAE;QACP,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;QAC/D,YAAY,EAAE;YACZ,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,oBAAoB;YACjC,YAAY,EAAE,IAAI;SACnB;QACD,cAAc,EAAE;YACd,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,uDAAuD;YACpE,YAAY,EAAE,IAAI;SACnB;QACD,KAAK,EAAE;YACL,MAAM,EAAE,IAAI;YACZ,WAAW,EACT,qFAAqF;SACxF;KACF;IACD,OAAO,EAAE,IAAA,0BAAW,EAAC,OAAO,CAAC;CAC9B,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.imageUrlsCommand = void 0;
|
|
4
4
|
const client_1 = require("@alwaysmeticulous/client");
|
|
5
5
|
const common_1 = require("@alwaysmeticulous/common");
|
|
6
6
|
const sentry_utils_1 = require("../../command-utils/sentry.utils");
|
|
@@ -22,8 +22,8 @@ const handler = async ({ apiToken, replayDiffId, screenshotName, }) => {
|
|
|
22
22
|
console.log(`diffImage: ${urls.diffImage}`);
|
|
23
23
|
}
|
|
24
24
|
};
|
|
25
|
-
exports.
|
|
26
|
-
command: "
|
|
25
|
+
exports.imageUrlsCommand = {
|
|
26
|
+
command: "image-urls",
|
|
27
27
|
describe: "Get screenshot image URLs for a replay diff screenshot",
|
|
28
28
|
builder: {
|
|
29
29
|
apiToken: { string: true, description: "Meticulous API token" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenshot-image.command.js","sourceRoot":"","sources":["../../../src/commands/agent/screenshot-image.command.ts"],"names":[],"mappings":";;;AAAA,qDAA2E;AAC3E,qDAAsD;AAEtD,mEAA+D;AAQ/D,MAAM,OAAO,GAAG,KAAK,EAAE,EACrB,QAAQ,EACR,YAAY,EACZ,cAAc,GACN,EAAiB,EAAE;IAC3B,IAAA,mBAAU,GAAE,CAAC;IACb,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE1C,MAAM,IAAI,GAAG,MAAM,IAAA,0BAAiB,EAAC,MAAM,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IAE3E,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACxC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,
|
|
1
|
+
{"version":3,"file":"screenshot-image.command.js","sourceRoot":"","sources":["../../../src/commands/agent/screenshot-image.command.ts"],"names":[],"mappings":";;;AAAA,qDAA2E;AAC3E,qDAAsD;AAEtD,mEAA+D;AAQ/D,MAAM,OAAO,GAAG,KAAK,EAAE,EACrB,QAAQ,EACR,YAAY,EACZ,cAAc,GACN,EAAiB,EAAE;IAC3B,IAAA,mBAAU,GAAE,CAAC;IACb,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE1C,MAAM,IAAI,GAAG,MAAM,IAAA,0BAAiB,EAAC,MAAM,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IAE3E,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACxC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,gBAAgB,GAAoC;IAC/D,OAAO,EAAE,YAAY;IACrB,QAAQ,EAAE,wDAAwD;IAClE,OAAO,EAAE;QACP,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;QAC/D,YAAY,EAAE;YACZ,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,oBAAoB;YACjC,YAAY,EAAE,IAAI;SACnB;QACD,cAAc,EAAE;YACd,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,uDAAuD;YACpE,YAAY,EAAE,IAAI;SACnB;KACF;IACD,OAAO,EAAE,IAAA,0BAAW,EAAC,OAAO,CAAC;CAC9B,CAAC"}
|
|
@@ -7,26 +7,34 @@ const sentry_utils_1 = require("../../command-utils/sentry.utils");
|
|
|
7
7
|
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
8
8
|
const fmtMismatch = (v) => v != null ? v.toFixed(5) : "";
|
|
9
9
|
const log = (...args) => process.stderr.write(args.join(" ") + "\n");
|
|
10
|
-
const handler = async ({ apiToken, testRunId, all: showAll, imageDiffs: computeImageDiffs, jsCoverageGroups: computeJsCoverage, cssCoverageGroups: computeCssCoverage, verbose, }) => {
|
|
11
|
-
var _a, _b, _c, _d;
|
|
10
|
+
const handler = async ({ apiToken, testRunId, all: showAll, imageDiffs: computeImageDiffs, jsCoverageGroups: computeJsCoverage, cssCoverageGroups: computeCssCoverage, includeReplayIds, verbose, }) => {
|
|
11
|
+
var _a, _b, _c, _d, _e, _f;
|
|
12
12
|
(0, common_1.initLogger)();
|
|
13
13
|
const client = (0, client_1.createClient)({ apiToken });
|
|
14
14
|
const t0 = performance.now();
|
|
15
|
+
log(`Fetching diffs summary for test run ${testRunId}...`);
|
|
15
16
|
// Trigger the job
|
|
16
17
|
let response = await (0, client_1.triggerTestRunDiffsSummary)(client, testRunId, {
|
|
17
18
|
includeDomDiffGroups: true,
|
|
18
19
|
includeImageDiffHashes: computeImageDiffs,
|
|
19
20
|
includeJsCoverageGroups: computeJsCoverage,
|
|
20
21
|
includeCssCoverageGroups: computeCssCoverage,
|
|
22
|
+
includeReplayIds,
|
|
21
23
|
showAll,
|
|
22
24
|
});
|
|
25
|
+
log(`Job enqueued: ${response.jobId}`);
|
|
23
26
|
// Poll until complete
|
|
27
|
+
let lastStatus = response.status;
|
|
24
28
|
while (response.status === "pending" || response.status === "processing") {
|
|
29
|
+
if (verbose && response.status !== lastStatus) {
|
|
30
|
+
log(`Job ${response.jobId}: ${lastStatus} -> ${response.status}`);
|
|
31
|
+
lastStatus = response.status;
|
|
32
|
+
}
|
|
25
33
|
if (verbose && response.progress) {
|
|
26
34
|
log(`Processing: ${response.progress}`);
|
|
27
35
|
}
|
|
28
|
-
await sleep(
|
|
29
|
-
response = await (0, client_1.getTestRunDiffsSummaryStatus)(client,
|
|
36
|
+
await sleep(5000);
|
|
37
|
+
response = await (0, client_1.getTestRunDiffsSummaryStatus)(client, response.jobId);
|
|
30
38
|
}
|
|
31
39
|
if (response.status === "error") {
|
|
32
40
|
log(`Error: ${response.error}`);
|
|
@@ -47,6 +55,8 @@ const handler = async ({ apiToken, testRunId, all: showAll, imageDiffs: computeI
|
|
|
47
55
|
"mismatch",
|
|
48
56
|
"domDiffIds",
|
|
49
57
|
];
|
|
58
|
+
if (includeReplayIds)
|
|
59
|
+
headerFields.push("baseReplayId", "headReplayId");
|
|
50
60
|
if (computeImageDiffs)
|
|
51
61
|
headerFields.push("imageDiffId");
|
|
52
62
|
if (computeJsCoverage)
|
|
@@ -69,17 +79,19 @@ const handler = async ({ apiToken, testRunId, all: showAll, imageDiffs: computeI
|
|
|
69
79
|
fmtMismatch(s.mismatchFraction),
|
|
70
80
|
s.domDiffIds,
|
|
71
81
|
];
|
|
82
|
+
if (includeReplayIds)
|
|
83
|
+
fields.push((_b = rd.baseReplayId) !== null && _b !== void 0 ? _b : "", (_c = rd.headReplayId) !== null && _c !== void 0 ? _c : "");
|
|
72
84
|
if (computeImageDiffs)
|
|
73
|
-
fields.push((
|
|
85
|
+
fields.push((_d = s.imageDiffId) !== null && _d !== void 0 ? _d : "");
|
|
74
86
|
if (computeJsCoverage)
|
|
75
|
-
fields.push((
|
|
87
|
+
fields.push((_e = s.jsCoverageGroupId) !== null && _e !== void 0 ? _e : "");
|
|
76
88
|
if (computeCssCoverage)
|
|
77
|
-
fields.push((
|
|
89
|
+
fields.push((_f = s.cssCoverageGroupId) !== null && _f !== void 0 ? _f : "");
|
|
78
90
|
console.log(fields.join("\t"));
|
|
79
91
|
}
|
|
80
92
|
}
|
|
81
93
|
const tEnd = performance.now();
|
|
82
|
-
log(`${totalDiffScreenshots} screenshot diff(s), total ${((tEnd - t0) / 1000).toFixed(1)}s`);
|
|
94
|
+
log(`${data.length} replay diff(s), ${totalDiffScreenshots} screenshot diff(s), total ${((tEnd - t0) / 1000).toFixed(1)}s`);
|
|
83
95
|
};
|
|
84
96
|
exports.testRunDiffsCommand = {
|
|
85
97
|
command: "test-run-diffs",
|
|
@@ -111,6 +123,11 @@ exports.testRunDiffsCommand = {
|
|
|
111
123
|
description: "Compute CSS coverage-based group IDs (slower)",
|
|
112
124
|
default: false,
|
|
113
125
|
},
|
|
126
|
+
includeReplayIds: {
|
|
127
|
+
boolean: true,
|
|
128
|
+
description: "Include base and head replay IDs per replay diff",
|
|
129
|
+
default: false,
|
|
130
|
+
},
|
|
114
131
|
verbose: {
|
|
115
132
|
boolean: true,
|
|
116
133
|
description: "Show processing progress logs",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-run-diffs.command.js","sourceRoot":"","sources":["../../../src/commands/agent/test-run-diffs.command.ts"],"names":[],"mappings":";;;AAAA,qDAIkC;AAClC,qDAAsD;AAEtD,mEAA+D;
|
|
1
|
+
{"version":3,"file":"test-run-diffs.command.js","sourceRoot":"","sources":["../../../src/commands/agent/test-run-diffs.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.timelineDiffCommand = void 0;
|
|
4
4
|
const client_1 = require("@alwaysmeticulous/client");
|
|
5
5
|
const common_1 = require("@alwaysmeticulous/common");
|
|
6
6
|
const sentry_utils_1 = require("../../command-utils/sentry.utils");
|
|
@@ -27,8 +27,8 @@ const handler = async ({ apiToken, replayDiffId }) => {
|
|
|
27
27
|
].join("\t"));
|
|
28
28
|
}
|
|
29
29
|
};
|
|
30
|
-
exports.
|
|
31
|
-
command: "timeline",
|
|
30
|
+
exports.timelineDiffCommand = {
|
|
31
|
+
command: "timeline-diff",
|
|
32
32
|
describe: "Get timeline diff for a replay diff",
|
|
33
33
|
builder: {
|
|
34
34
|
apiToken: { string: true, description: "Meticulous API token" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.command.js","sourceRoot":"","sources":["../../../src/commands/agent/timeline.command.ts"],"names":[],"mappings":";;;AAAA,qDAAyE;AACzE,qDAAsD;AAEtD,mEAA+D;AAO/D,MAAM,aAAa,GAA2B;IAC5C,SAAS,EAAE,GAAG;IACd,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,GAAG;CACb,CAAC;AAEF,MAAM,OAAO,GAAG,KAAK,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAW,EAAiB,EAAE;;IAC3E,IAAA,mBAAU,GAAE,CAAC;IACb,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE1C,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,wBAAe,EACnE,MAAM,EACN,YAAY,CACb,CAAC;IAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,YAAY,IAAI,CAAC,CAAC;IAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,YAAY,IAAI,CAAC,CAAC;IAEhD,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEnE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CACT;YACE,MAAA,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,mCAAI,GAAG;YAClC,KAAK,CAAC,MAAM;YACZ,KAAK,CAAC,SAAS;YACf,KAAK,CAAC,WAAW;SAClB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,
|
|
1
|
+
{"version":3,"file":"timeline.command.js","sourceRoot":"","sources":["../../../src/commands/agent/timeline.command.ts"],"names":[],"mappings":";;;AAAA,qDAAyE;AACzE,qDAAsD;AAEtD,mEAA+D;AAO/D,MAAM,aAAa,GAA2B;IAC5C,SAAS,EAAE,GAAG;IACd,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,GAAG;CACb,CAAC;AAEF,MAAM,OAAO,GAAG,KAAK,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAW,EAAiB,EAAE;;IAC3E,IAAA,mBAAU,GAAE,CAAC;IACb,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE1C,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,wBAAe,EACnE,MAAM,EACN,YAAY,CACb,CAAC;IAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,YAAY,IAAI,CAAC,CAAC;IAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,YAAY,IAAI,CAAC,CAAC;IAEhD,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEnE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CACT;YACE,MAAA,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,mCAAI,GAAG;YAClC,KAAK,CAAC,MAAM;YACZ,KAAK,CAAC,SAAS;YACf,KAAK,CAAC,WAAW;SAClB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,mBAAmB,GAAoC;IAClE,OAAO,EAAE,eAAe;IACxB,QAAQ,EAAE,qCAAqC;IAC/C,OAAO,EAAE;QACP,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;QAC/D,YAAY,EAAE;YACZ,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,oBAAoB;YACjC,YAAY,EAAE,IAAI;SACnB;KACF;IACD,OAAO,EAAE,IAAA,0BAAW,EAAC,OAAO,CAAC;CAC9B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alwaysmeticulous/cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.264.1",
|
|
4
4
|
"description": "The Meticulous CLI",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -29,18 +29,18 @@
|
|
|
29
29
|
"depcheck": "depcheck --ignore-patterns=dist"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@alwaysmeticulous/api": "2.
|
|
33
|
-
"@alwaysmeticulous/client": "2.
|
|
34
|
-
"@alwaysmeticulous/common": "2.
|
|
35
|
-
"@alwaysmeticulous/debug-workspace": "2.
|
|
36
|
-
"@alwaysmeticulous/downloading-helpers": "2.
|
|
37
|
-
"@alwaysmeticulous/record": "2.
|
|
38
|
-
"@alwaysmeticulous/remote-replay-launcher": "2.
|
|
39
|
-
"@alwaysmeticulous/replay-debugger-ui": "2.
|
|
40
|
-
"@alwaysmeticulous/replay-orchestrator-launcher": "2.
|
|
41
|
-
"@alwaysmeticulous/sdk-bundles-api": "2.
|
|
42
|
-
"@alwaysmeticulous/sentry": "2.
|
|
43
|
-
"@alwaysmeticulous/tunnels-client": "2.
|
|
32
|
+
"@alwaysmeticulous/api": "2.264.0",
|
|
33
|
+
"@alwaysmeticulous/client": "2.264.1",
|
|
34
|
+
"@alwaysmeticulous/common": "2.264.0",
|
|
35
|
+
"@alwaysmeticulous/debug-workspace": "2.264.1",
|
|
36
|
+
"@alwaysmeticulous/downloading-helpers": "2.264.1",
|
|
37
|
+
"@alwaysmeticulous/record": "2.264.0",
|
|
38
|
+
"@alwaysmeticulous/remote-replay-launcher": "2.264.1",
|
|
39
|
+
"@alwaysmeticulous/replay-debugger-ui": "2.264.0",
|
|
40
|
+
"@alwaysmeticulous/replay-orchestrator-launcher": "2.264.1",
|
|
41
|
+
"@alwaysmeticulous/sdk-bundles-api": "2.264.0",
|
|
42
|
+
"@alwaysmeticulous/sentry": "2.264.0",
|
|
43
|
+
"@alwaysmeticulous/tunnels-client": "2.264.0",
|
|
44
44
|
"@sentry/node": "^10.3.0",
|
|
45
45
|
"chalk": "^4.1.2",
|
|
46
46
|
"ci-info": "^4.0.0",
|
|
@@ -75,5 +75,5 @@
|
|
|
75
75
|
"bugs": {
|
|
76
76
|
"url": "https://github.com/alwaysmeticulous/meticulous-sdk/issues"
|
|
77
77
|
},
|
|
78
|
-
"gitHead": "
|
|
78
|
+
"gitHead": "90b491b91254cc779bcfc966efe28a5e547e6264"
|
|
79
79
|
}
|