@alwaysmeticulous/cli 1.2.13 → 1.2.16

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.
@@ -0,0 +1,21 @@
1
+ import { AxiosInstance } from "axios";
2
+ export interface TestRun {
3
+ id: string;
4
+ [key: string]: any;
5
+ }
6
+ export declare const createTestRun: (options: {
7
+ client: AxiosInstance;
8
+ commitSha: string;
9
+ meticulousSha: string;
10
+ configData: {
11
+ [key: string]: any;
12
+ };
13
+ }) => Promise<TestRun>;
14
+ export declare const putTestRunResults: (options: {
15
+ client: AxiosInstance;
16
+ testRunId: string;
17
+ status: "Running" | "Success" | "Failure";
18
+ resultData: {
19
+ [key: string]: any;
20
+ };
21
+ }) => Promise<TestRun>;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.putTestRunResults = exports.createTestRun = void 0;
4
+ const createTestRun = async ({ client, commitSha, meticulousSha, configData, }) => {
5
+ const { data } = await client.post("test-runs", {
6
+ commitSha,
7
+ meticulousSha,
8
+ configData,
9
+ });
10
+ return data;
11
+ };
12
+ exports.createTestRun = createTestRun;
13
+ const putTestRunResults = async ({ client, testRunId, status, resultData }) => {
14
+ const { data } = await client.put(`test-runs/${testRunId}/results`, {
15
+ status,
16
+ resultData,
17
+ });
18
+ return data;
19
+ };
20
+ exports.putTestRunResults = putTestRunResults;
@@ -7,12 +7,13 @@ interface Options {
7
7
  headless?: boolean | null | undefined;
8
8
  devTools?: boolean | null | undefined;
9
9
  screenshot?: boolean | null | undefined;
10
+ screenshotSelector?: string | null | undefined;
10
11
  baseReplayId?: string | null | undefined;
11
12
  diffThreshold?: number | null | undefined;
12
13
  diffPixelThreshold?: number | null | undefined;
13
14
  save?: boolean | null | undefined;
14
15
  exitOnMismatch?: boolean | null | undefined;
15
16
  }
16
- export declare const replayCommandHandler: (options: Options) => Promise<void>;
17
+ export declare const replayCommandHandler: (options: Options) => Promise<any>;
17
18
  export declare const replay: CommandModule<unknown, Options>;
18
19
  export {};
@@ -17,7 +17,7 @@ const sessions_1 = require("../../local-data/sessions");
17
17
  const commit_sha_utils_1 = require("../../utils/commit-sha.utils");
18
18
  const version_utils_1 = require("../../utils/version.utils");
19
19
  const screenshot_diff_command_1 = require("../screenshot-diff/screenshot-diff.command");
20
- const replayCommandHandler = async ({ apiToken, commitSha: commitSha_, sessionId, appUrl, headless, devTools, screenshot, baseReplayId: baseReplayId_, diffThreshold, diffPixelThreshold, save, exitOnMismatch, }) => {
20
+ const replayCommandHandler = async ({ apiToken, commitSha: commitSha_, sessionId, appUrl, headless, devTools, screenshot, screenshotSelector, baseReplayId: baseReplayId_, diffThreshold, diffPixelThreshold, save, exitOnMismatch, }) => {
21
21
  const client = (0, client_1.createClient)({ apiToken });
22
22
  // 1. Check session files
23
23
  const session = await (0, sessions_1.getOrFetchRecordedSession)(client, sessionId);
@@ -80,6 +80,7 @@ const replayCommandHandler = async ({ apiToken, commitSha: commitSha_, sessionId
80
80
  },
81
81
  },
82
82
  screenshot: screenshot || false,
83
+ screenshotSelector: screenshotSelector || "",
83
84
  };
84
85
  await (0, promises_1.writeFile)((0, path_1.join)(tempDir, "replayEventsParams.json"), JSON.stringify(replayEventsParams));
85
86
  // 7. Perform replay
@@ -152,6 +153,7 @@ const replayCommandHandler = async ({ apiToken, commitSha: commitSha_, sessionId
152
153
  testCases: [
153
154
  ...(meticulousConfig.testCases || []),
154
155
  {
156
+ title: `${sessionId} | ${replay.id}`,
155
157
  sessionId,
156
158
  baseReplayId: replay.id,
157
159
  },
@@ -160,6 +162,7 @@ const replayCommandHandler = async ({ apiToken, commitSha: commitSha_, sessionId
160
162
  await (0, config_1.saveConfig)(newConfig);
161
163
  }
162
164
  await (0, archive_1.deleteArchive)(archivePath);
165
+ return replay;
163
166
  };
164
167
  exports.replayCommandHandler = replayCommandHandler;
165
168
  exports.replay = {
@@ -192,6 +195,10 @@ exports.replay = {
192
195
  boolean: true,
193
196
  description: "Take a screenshot at the end of replay",
194
197
  },
198
+ screenshotSelector: {
199
+ string: true,
200
+ description: "Query selector to screenshot a specific DOM element instead of the whole page",
201
+ },
195
202
  baseReplayId: {
196
203
  string: true,
197
204
  description: "Base replay id to diff the final state screenshot against",
@@ -7,6 +7,7 @@ interface Options {
7
7
  devTools?: boolean | null | undefined;
8
8
  diffThreshold?: number | null | undefined;
9
9
  diffPixelThreshold?: number | null | undefined;
10
+ githubSummary?: boolean | null | undefined;
10
11
  }
11
12
  export declare const runAllTests: CommandModule<unknown, Options>;
12
13
  export {};
@@ -1,18 +1,38 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.runAllTests = void 0;
4
+ const client_1 = require("../../api/client");
5
+ const test_run_api_1 = require("../../api/test-run.api");
4
6
  const config_1 = require("../../config/config");
7
+ const commit_sha_utils_1 = require("../../utils/commit-sha.utils");
8
+ const github_summary_utils_1 = require("../../utils/github-summary.utils");
9
+ const version_utils_1 = require("../../utils/version.utils");
5
10
  const replay_command_1 = require("../replay/replay.command");
6
- const handler = async ({ apiToken, commitSha, appUrl, headless, devTools, diffThreshold, diffPixelThreshold, }) => {
11
+ const screenshot_diff_command_1 = require("../screenshot-diff/screenshot-diff.command");
12
+ const handler = async ({ apiToken, commitSha: commitSha_, appUrl, headless, devTools, diffThreshold, diffPixelThreshold, githubSummary, }) => {
13
+ const client = (0, client_1.createClient)({ apiToken });
7
14
  const config = await (0, config_1.readConfig)();
8
15
  const testCases = config.testCases || [];
9
16
  if (!testCases.length) {
10
17
  console.error("Error! No test case defined");
11
18
  process.exit(1);
12
19
  }
20
+ const commitSha = (await (0, commit_sha_utils_1.getCommitSha)(commitSha_)) || "unknown";
21
+ const meticulousSha = await (0, version_utils_1.getMeticulousVersion)();
22
+ const testRun = await (0, test_run_api_1.createTestRun)({
23
+ client,
24
+ commitSha,
25
+ meticulousSha,
26
+ configData: config,
27
+ });
28
+ const { project } = testRun;
29
+ const testRunUrl = `https://app.meticulous.ai/projects/${project.organization.name}/${project.name}/test-runs/${testRun.id}`;
30
+ console.log("");
31
+ console.log(`Test run URL: ${testRunUrl}`);
32
+ console.log("");
13
33
  const results = [];
14
34
  for (const testCase of testCases) {
15
- const { sessionId, baseReplayId } = testCase;
35
+ const { sessionId, baseReplayId, options } = testCase;
16
36
  const replayPromise = (0, replay_command_1.replayCommandHandler)({
17
37
  apiToken,
18
38
  commitSha,
@@ -26,19 +46,51 @@ const handler = async ({ apiToken, commitSha, appUrl, headless, devTools, diffTh
26
46
  diffPixelThreshold,
27
47
  save: false,
28
48
  exitOnMismatch: false,
49
+ ...options,
29
50
  });
30
51
  const result = await replayPromise
31
- .then(() => ({ ...testCase, result: "pass" }))
32
- .catch(() => ({ ...testCase, result: "fail" }));
52
+ .then((replay) => ({
53
+ ...testCase,
54
+ headReplayId: replay.id,
55
+ result: "pass",
56
+ }))
57
+ .catch((error) => {
58
+ if (error instanceof screenshot_diff_command_1.DiffError && error.extras) {
59
+ return {
60
+ ...testCase,
61
+ headReplayId: error.extras.headReplayId,
62
+ result: "fail",
63
+ };
64
+ }
65
+ return { ...testCase, headReplayId: "", result: "fail" };
66
+ });
33
67
  results.push(result);
68
+ await (0, test_run_api_1.putTestRunResults)({
69
+ client,
70
+ testRunId: testRun.id,
71
+ status: "Running",
72
+ resultData: { results },
73
+ });
34
74
  }
75
+ const runAllFailure = results.find(({ result }) => result === "fail");
76
+ await (0, test_run_api_1.putTestRunResults)({
77
+ client,
78
+ testRunId: testRun.id,
79
+ status: runAllFailure ? "Failure" : "Success",
80
+ resultData: { results },
81
+ });
35
82
  console.log("");
36
83
  console.log("Results");
37
84
  console.log("=======");
38
- results.forEach(({ sessionId, baseReplayId, result }) => {
39
- console.log(`${sessionId} | ${baseReplayId} => ${result}`);
85
+ console.log(`URL: ${testRunUrl}`);
86
+ console.log("=======");
87
+ results.forEach(({ title, result }) => {
88
+ console.log(`${title} => ${result}`);
40
89
  });
41
- if (results.find(({ result }) => result === "fail")) {
90
+ if (githubSummary) {
91
+ await (0, github_summary_utils_1.writeGitHubSummary)({ testRun, results });
92
+ }
93
+ if (runAllFailure) {
42
94
  process.exit(1);
43
95
  }
44
96
  };
@@ -70,6 +122,10 @@ exports.runAllTests = {
70
122
  diffPixelThreshold: {
71
123
  number: true,
72
124
  },
125
+ githubSummary: {
126
+ boolean: true,
127
+ description: "Outputs a summary page for GitHub actions",
128
+ },
73
129
  },
74
130
  handler,
75
131
  };
@@ -1,6 +1,20 @@
1
1
  import { AxiosInstance } from "axios";
2
2
  import { PNG } from "pngjs";
3
3
  import { CommandModule } from "yargs";
4
+ export declare class DiffError extends Error {
5
+ readonly extras?: {
6
+ baseReplayId: string;
7
+ headReplayId: string;
8
+ threshold: number;
9
+ value: number;
10
+ } | undefined;
11
+ constructor(message: string, extras?: {
12
+ baseReplayId: string;
13
+ headReplayId: string;
14
+ threshold: number;
15
+ value: number;
16
+ } | undefined);
17
+ }
4
18
  export declare const diffScreenshots: (options: {
5
19
  client: AxiosInstance;
6
20
  baseReplayId: string;
@@ -1,40 +1,66 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.screenshotDiff = exports.diffScreenshots = void 0;
3
+ exports.screenshotDiff = exports.diffScreenshots = exports.DiffError = void 0;
4
4
  const client_1 = require("../../api/client");
5
5
  const replay_api_1 = require("../../api/replay.api");
6
6
  const diff_utils_1 = require("../../image/diff.utils");
7
7
  const replays_1 = require("../../local-data/replays");
8
8
  const screenshot_diffs_1 = require("../../local-data/screenshot-diffs");
9
9
  const DEFAULT_MISMATCH_THRESHOLD = 0.01;
10
+ class DiffError extends Error {
11
+ constructor(message, extras) {
12
+ super(message);
13
+ this.extras = extras;
14
+ }
15
+ }
16
+ exports.DiffError = DiffError;
10
17
  const diffScreenshots = async ({ client, baseReplayId, headReplayId, baseScreenshot, headScreenshot, threshold: threshold_, pixelThreshold, exitOnMismatch, }) => {
11
18
  const threshold = threshold_ || DEFAULT_MISMATCH_THRESHOLD;
12
19
  const pixelmatchOptions = pixelThreshold ? { threshold: pixelThreshold } : null;
13
- const { mismatchPixels, mismatchFraction, diff } = (0, diff_utils_1.compareImages)({
14
- base: baseScreenshot,
15
- head: headScreenshot,
16
- ...(pixelmatchOptions ? pixelmatchOptions : {}),
17
- });
18
- console.log({ mismatchPixels, mismatchFraction });
19
- console.log(`${Math.round(mismatchFraction * 100)}% pixel mismatch (threshold is ${Math.round(threshold * 100)}%) => ${mismatchFraction > threshold ? "FAIL!" : "PASS"}`);
20
- await (0, screenshot_diffs_1.writeScreenshotDiff)({ baseReplayId, headReplayId, diff });
21
- const diffUrl = await (0, replay_api_1.getDiffUrl)(client, baseReplayId, headReplayId);
22
- console.log(`View screenshot diff at ${diffUrl}`);
23
- await (0, replay_api_1.postScreenshotDiffStats)(client, {
24
- baseReplayId,
25
- headReplayId,
26
- stats: {
27
- width: baseScreenshot.width,
28
- height: baseScreenshot.height,
29
- mismatchPixels,
30
- },
31
- });
32
- if (mismatchFraction > threshold) {
33
- console.log("Screenshots do not match!");
20
+ try {
21
+ const { mismatchPixels, mismatchFraction, diff } = (0, diff_utils_1.compareImages)({
22
+ base: baseScreenshot,
23
+ head: headScreenshot,
24
+ ...(pixelmatchOptions ? pixelmatchOptions : {}),
25
+ });
26
+ console.log({ mismatchPixels, mismatchFraction });
27
+ console.log(`${Math.round(mismatchFraction * 100)}% pixel mismatch (threshold is ${Math.round(threshold * 100)}%) => ${mismatchFraction > threshold ? "FAIL!" : "PASS"}`);
28
+ await (0, screenshot_diffs_1.writeScreenshotDiff)({ baseReplayId, headReplayId, diff });
29
+ const diffUrl = await (0, replay_api_1.getDiffUrl)(client, baseReplayId, headReplayId);
30
+ console.log(`View screenshot diff at ${diffUrl}`);
31
+ await (0, replay_api_1.postScreenshotDiffStats)(client, {
32
+ baseReplayId,
33
+ headReplayId,
34
+ stats: {
35
+ width: baseScreenshot.width,
36
+ height: baseScreenshot.height,
37
+ mismatchPixels,
38
+ },
39
+ });
40
+ if (mismatchFraction > threshold) {
41
+ console.log("Screenshots do not match!");
42
+ if (exitOnMismatch) {
43
+ process.exit(1);
44
+ }
45
+ throw new DiffError("Screenshots do not match!", {
46
+ baseReplayId,
47
+ headReplayId,
48
+ threshold,
49
+ value: mismatchFraction,
50
+ });
51
+ }
52
+ }
53
+ catch (error) {
54
+ console.log(error);
34
55
  if (exitOnMismatch) {
35
56
  process.exit(1);
36
57
  }
37
- throw new Error("Screenshots do not match!");
58
+ throw new DiffError(`Error while diffing: ${error}`, {
59
+ baseReplayId,
60
+ headReplayId,
61
+ threshold,
62
+ value: 1,
63
+ });
38
64
  }
39
65
  };
40
66
  exports.diffScreenshots = diffScreenshots;
@@ -21,6 +21,32 @@ const getConfigFilePath = async () => {
21
21
  configFilePath = (await findConfig()) || (0, path_1.join)((0, process_1.cwd)(), METICULOUS_CONFIG_FILE);
22
22
  return configFilePath;
23
23
  };
24
+ const validateReplayOptions = (prevOptions) => {
25
+ const { screenshotSelector, diffThreshold, diffPixelThreshold } = prevOptions;
26
+ return {
27
+ ...(screenshotSelector ? { screenshotSelector } : {}),
28
+ ...(diffThreshold ? { diffThreshold } : {}),
29
+ ...(diffPixelThreshold ? { diffPixelThreshold } : {}),
30
+ };
31
+ };
32
+ const validateConfig = (prevConfig) => {
33
+ const { testCases, ...rest } = prevConfig;
34
+ const nextTestCases = (testCases || [])
35
+ .map(({ title, sessionId, baseReplayId, options }) => ({
36
+ title: typeof title === "string" ? title : "",
37
+ sessionId: typeof sessionId === "string" ? sessionId : "",
38
+ baseReplayId: typeof baseReplayId === "string" ? baseReplayId : "",
39
+ ...(options ? { options: validateReplayOptions(options) } : {}),
40
+ }))
41
+ .map(({ title, sessionId, baseReplayId, ...rest }) => ({
42
+ title: title || `${sessionId} | ${baseReplayId}`,
43
+ sessionId,
44
+ baseReplayId,
45
+ ...rest,
46
+ }))
47
+ .filter(({ sessionId, baseReplayId }) => sessionId && baseReplayId);
48
+ return { ...rest, testCases: nextTestCases };
49
+ };
24
50
  const readConfig = async () => {
25
51
  const filePath = await getConfigFilePath();
26
52
  const configStr = await (0, promises_1.readFile)(filePath, "utf-8").catch((error) => {
@@ -31,7 +57,7 @@ const readConfig = async () => {
31
57
  throw error;
32
58
  });
33
59
  const config = JSON.parse(configStr);
34
- return config;
60
+ return validateConfig(config);
35
61
  };
36
62
  exports.readConfig = readConfig;
37
63
  const saveConfig = async (config) => {
@@ -1,7 +1,18 @@
1
+ export interface ReplayOptions {
2
+ screenshotSelector?: string;
3
+ diffThreshold?: number;
4
+ diffPixelThreshold?: number;
5
+ }
1
6
  export interface TestCase {
7
+ title: string;
2
8
  sessionId: string;
3
9
  baseReplayId: string;
10
+ options?: ReplayOptions;
4
11
  }
5
12
  export interface MeticulousCliConfig {
6
13
  testCases?: TestCase[];
7
14
  }
15
+ export interface TestCaseResult extends TestCase {
16
+ headReplayId: string;
17
+ result: "pass" | "fail";
18
+ }
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.es2019.full.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts","../../../node_modules/axios/index.d.ts","../src/utils/api-token.utils.ts","../src/api/client.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/adm-zip/util.d.ts","../../../node_modules/@types/adm-zip/index.d.ts","../../../node_modules/@types/pngjs/index.d.ts","../src/api/download.ts","../src/api/project.api.ts","../src/api/replay.api.ts","../src/image/io.utils.ts","../src/local-data/local-data.ts","../src/local-data/replays.ts","../src/commands/download-replay/download-replay.command.ts","../src/api/session.api.ts","../src/local-data/local-data.utils.ts","../src/local-data/sessions.ts","../src/commands/download-session/download-session.command.ts","../../record/dist/record/record.d.ts","../../record/dist/index.d.ts","../src/local-data/replay-assets.ts","../src/utils/commit-sha.utils.ts","../src/commands/record/record.command.ts","../../replayer/dist/session/session.types.d.ts","../../../node_modules/devtools-protocol/types/protocol.d.ts","../../../node_modules/devtools-protocol/types/protocol-mapping.d.ts","../../../node_modules/puppeteer/lib/types.d.ts","../../../node_modules/rrweb-snapshot/typings/types.d.ts","../../../node_modules/rrweb-snapshot/typings/snapshot.d.ts","../../../node_modules/rrweb-snapshot/typings/rebuild.d.ts","../../../node_modules/rrweb-snapshot/typings/index.d.ts","../../../node_modules/rrweb/typings/types.d.ts","../../replayer/dist/replayer/replay.utils.d.ts","../../replayer/dist/replayer/replay-events.d.ts","../../replayer/dist/index.d.ts","../../../node_modules/@types/luxon/src/zone.d.ts","../../../node_modules/@types/luxon/src/misc.d.ts","../../../node_modules/@types/luxon/src/duration.d.ts","../../../node_modules/@types/luxon/src/interval.d.ts","../../../node_modules/@types/luxon/src/datetime.d.ts","../../../node_modules/@types/luxon/src/info.d.ts","../../../node_modules/@types/luxon/src/settings.d.ts","../../../node_modules/@types/luxon/src/luxon.d.ts","../../../node_modules/@types/luxon/index.d.ts","../src/api/upload.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/glob/index.d.ts","../../../node_modules/@types/archiver/index.d.ts","../src/archive/archive.ts","../../../node_modules/cosmiconfig/dist/types.d.ts","../../../node_modules/cosmiconfig/dist/index.d.ts","../src/config/config.types.ts","../src/config/config.ts","../src/utils/version.utils.ts","../../../node_modules/@types/pixelmatch/index.d.ts","../src/image/diff.utils.ts","../src/local-data/screenshot-diffs.ts","../src/commands/screenshot-diff/screenshot-diff.command.ts","../src/commands/replay/replay.command.ts","../src/commands/run-all-tests/run-all-tests.command.ts","../src/commands/show-project/show-project.command.ts","../src/api/project-build.api.ts","../src/commands/upload-build/upload-build.command.ts","../src/index.ts","../src/main.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/minimist/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/parse-json/index.d.ts","../../../node_modules/@types/smoothscroll-polyfill/index.d.ts","../../../node_modules/@types/yauzl/index.d.ts"],"fileInfos":[{"version":"3ac1b83264055b28c0165688fda6dfcc39001e9e7828f649299101c23ad0a0c3","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940",{"version":"72704b10d97777e15f1a581b73f88273037ef752d2e50b72287bd0a90af64fe6","affectsGlobalScope":true},{"version":"dbb73d4d99be496175cb432c74c2615f78c76f4272f1d83cba11ee0ed6dbddf0","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"5075b36ab861c8c0c45377cb8c96270d7c65f0eeaf105d53fac6850da61f1027","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"1f03b495671c3a1bd24510f38b8947f0991dfd6bf0278c68eca14af15b306e1f","f7e133b20ee2669b6c0e5d7f0cd510868c57cd64b283e68c7f598e30ce9d76d2","45627c7d24633686b0274d9402652930ba2e4fe74df04f114393ae121d1e8afe","2808645b990069e5f8b5ff14c9f1e6077eb642583c3f7854012d60757f23c70e","504748354caa6b804491bc919fdeba0cb0891bfab827584af3e1909680984733","385c8d0cc48ea3c9d6a4448090bd8fc42077e72cdc0c456a1cfb7818d296a4f2","0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"c2ab70bbc7a24c42a790890739dd8a0ba9d2e15038b40dff8163a97a5d148c00","affectsGlobalScope":true},"422dbb183fdced59425ca072c8bd09efaa77ce4e2ab928ec0d8a1ce062d2a45a",{"version":"712ba0d43b44d144dfd01593f61af6e2e21cfae83e834d297643e7973e55ed61","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","98a3ebfa494b46265634a73459050befba5da8fdc6ca0ef9b7269421780f4ff3","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","cc0b61316c4f37393f1f9595e93b673f4184e9d07f4c127165a490ec4a928668","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"bfea28e6162ed21a0aeed181b623dcf250aa79abf49e24a6b7e012655af36d81","affectsGlobalScope":true},"7a5459efa09ea82088234e6533a203d528c594b01787fb90fba148885a36e8b6","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","ad41bb744149e92adb06eb953da195115620a3f2ad48e7d3ae04d10762dae197","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"5d0a9ea09d990b5788f867f1c79d4878f86f7384cb7dab38eecbf22f9efd063d","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"4cd4cff679c9b3d9239fd7bf70293ca4594583767526916af8e5d5a47d0219c7","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"3345c276cab0e76dda86c0fb79104ff915a4580ba0f3e440870e183b1baec476","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","e383ff72aabf294913f8c346f5da1445ae6ad525836d28efd52cbadc01a361a6","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7",{"version":"3a2da34079a2567161c1359316a32e712404b56566c45332ac9dcee015ecce9f","affectsGlobalScope":true},"28a2e7383fd898c386ffdcacedf0ec0845e5d1a86b5a43f25b86bc315f556b79","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"9cafe917bf667f1027b2bb62e2de454ecd2119c80873ad76fc41d941089753b8","0e0b0baaf6e3845418c2741c9b47478cf6fc086ef8dd5ad4b9ab91499e51de28","ca6e8a62a3e4f5cc3fea6ab45c2e5e128db4d90d81d70547a65047e3f13996f1","0b6a0b628776a3e3a4aeeba090438a26e7ffa15373ce658452c78c1f2254665d","c5272cde17f2e0a2fc3a4c6a900017facf0f175d0a4fc9ed839b53a48e61d144","1bb8c0dd0981e05a4dbbb2cae6d63395a2de76d8f2286a706bb559637a1e4d80","db368e828058ab12f2959dbcaceadaff2c6527442d8c5a9615ddc8deebdc770e","f0d3be81961de0047d3545b3df5d7cf97089a322dd4563159af540b81485c286","61dfc414a33e05fbb678e02e3155aa52dc0defc2e8a6154b8f0636a9e9db10b3","01f0e2b4b0c2e83ad048af28b38998b03012c6d7bf966cfcc5ece896835fd0ef","d4332df935ff6a980c062aab91a3a3bbfa689105ac60bfcb5c1d5c7520b1b947","76e9d714acaae86bd48a2fcb213f90e883da23f9bb51b482b27c2dabfeb046c1","2a08f33188a237c661302ac21686f27a07a61ba08c75f4e08c0fbce4ee74d8c9","09dc01117d665ef23f14a97ad5c3667404e8864c77c1244f147a8e852ebdade1","14868bd4edc2084d09214d1a41033d35486131597f1b4680f3b31cd8a25694d2","c091e0c54ccd505e8e86611c3cbbfaac460c77cf1d50cf852230d6d6b6299194","c300a087af272d75421e2d3b4b2252d8011109b96ff870c6b5dc131aeb87b543","e1c4dbc8e86098998d6a7457acbed85e24957dc47ecc558eeaf241119659af1d","f971cf15188513b2b25ec3c94b27ed4a159a912ad3aa821be02224bd9ebe63b7",{"version":"400b1ba90714a8109d09efc0825370584c5ddc3f728f19e334d459d4d14ae861","signature":"8b3eee591ca55cec9456de533b003aa805ae4005345e7be1d7df0e02765e4750"},"188565fbbadbaf42f3feccaafb11b48c5d2de58e1608c08e9df42a3b8215f906","82aabbc958906ce976ae72f2984d850b8e266d2f409b3e5b25d9cd392f40b0ed","0a884662690a3a6ba9e706684b16af2d79136893632a52569f68e3febbab356a","cecd310fc3d2df87569e82f9d824e27a5f0afb6e9b017987b54545bcecd2cedb","00a99694b9e5a9dc8a3817817a55eef4f43657f47d70826b843fb8686e93ee4b","504cf61e06f9160f74227321cad90e3066a1ab79d13a3482ff943c3c6ea4b8d4","e9e45cd9deaa11c034988f1b1cc9d282e9c4219715681f6014dfc926cad6f06b","1e19cfa78e51780c766049252825b796c6b94eb80e068906a956fd985a6a4f9e","88d1cb1b22796118d94b30e9aab99ccb27566eb0cf226ca25ff46fbedc50f904","2e3a430148531ca17d9e2b8e6a01be07096d54adf3ca90839fd8cdba5aa01c7d","a0a517bb8819fe29152ec7d87e7fe46d539d6f1aa46e5e9658aaa01546b520c9","19ec34e1a88d9e429c6a3716e281b30c0b934d5f51480132607ff55bdfa9005c","ec6d1ffbb1455fdf7c75715ce5390172f3c4783b94defaf897e6036c7282d04c","52ed17fe2c0a4bb27a4f13e99234b3d1f364dc27f9bd7964946d5ec62792a0cc","e9aefcaf89c87dae14a381765b9d889568bfd86472650aea8444234278172371","9f3fd115e0f6969c552fbf60fba7af3f66c070718809e8fba06c963abb59b028","cfb5e5369bd802fc2c216a06d3c4b92de8c428bdb7879c685e230809ef4eaee4","ed4be5a31cd8dbb8e31ccde91e7b8c1552eb191c4787d19ed028763577674772","d40e7cb322841e538e686b8a39f05e8b3e0b6d5b7c6687efa69f0cbf9124c4ec","c5641bb951da5d5252e7d8a806ec3c84f42555b5bd6a0879dbf1c7df1b8bd850","3147fec8a70e38c6ad051232697c89c5e5ec259eff00a184344ac018308b7cbf","79af33ba55da7d35bc3389dacde5cd3699ec4fd4675a98cb7667f7e2d1533c33","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33","51440322bec180cf452ce474b4f69b993b4eb491fecf47abd958d3342747d6b0","f975872106ca4b5462634794605c8d09fb11aca94be3ed76e6b7a1ed111f130f","b791ba05bd7a70824c6e49af9b13eeee2e0f9f8da9ebc2e05afc67b6932b5b6a","1cb4c98919fb1e6be645d0bbf744b9fa29b6bde06befb19c2e33960758f4bad4","973da16cc15996b89e7ebfc5306830b10c594b8cf467c860e85227787a4e0b55","8a0b47f7122b89a7bd059fa37cdae60027645413e69ccfbd31d9d28c1e3431c6","103c616e802670dd3f6e4de2ea6188197fbb6f231ab8526bf6c87db342ef163c","f30350dd37c3f3c11f47adb7ce4e7a4928f578f4ae8a3197e0c8a0811da46b92","4d29d7b134f280d733a3deb03e88e192e6306684ac3a651f0fbaa5fb346f9183","46ef704c3831c2064a71104691db0d694d385e8b2dfe4ceb877dbd5f169ee3a6","94bb090a75fbfdaf94dd5759838a2601c51e9f5d37a8bf49ac7f0fe4820d15dc",{"version":"d3991c792c9ffd7e079ea0c37e5830ff89b90742644aa879f10590a1d6492097","signature":"8fb4f66a2ada559b88d4b5a76d4de0c1c522a8de652c81c67056b916065e0942"},{"version":"3cb2273d53a18a4c44f7e1d61246919fd89a88a3e26f0f40a8748017e9733dd7","signature":"551f326e681c799b192a262e2431fcc719d491d9b924d83f39ac00d16cb46a4a"},"ff96e9c6c815e1dac89e2c7323af332d9d60db35396084a59e971bd5af6d62de","926929ee7d8b8af2e0767c7df35a6ce16dd01745cc31881672c703368662a35d","e1a79b3f95a24da98743307570c0a438d171cd8ac82ea05990bc74f740b2d33b","0a4971884c6ace709d0ce5d4c2a4edb2a4a572d2c607843b6da6eecf78f6c8ca",{"version":"b9d33c04205b8feec53a3c553bcfed84b670e394f5224adc4827048e126cde2b","signature":"da06c2a8dc3608bc685a211ccd839ca335f466e6aa22cfeef085e219ed82149d"},"f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","209e814e8e71aec74f69686a9506dd7610b97ab59dcee9446266446f72a76d05","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","657ecc0d1f08d35e69533185aca1cf400667261e29fb5a41021a8eee0df697c0","b2d70a269840a9528db473ac7565442434333a05c1f66801a7a672e82beb903e"],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"exactOptionalPropertyTypes":true,"experimentalDecorators":true,"module":1,"newLine":1,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"outDir":"./","preserveConstEnums":true,"rootDir":"../src","skipLibCheck":true,"strict":true,"target":6,"tsBuildInfoFile":"./tsconfig.tsbuildinfo"},"fileIdsList":[[65,92,99,100],[92],[65,81,92,97,142],[64,65,92,99,141],[92,138],[92,131,133,134,139],[92,132,135],[92,131,132],[92,133,135],[92,131,132,133,134,135,136,137],[92,131],[49,92],[52,92],[53,58,92],[54,64,65,72,81,91,92],[54,55,64,72,92],[56,92],[57,58,65,73,92],[58,81,88,92],[59,61,64,72,92],[60,92],[61,62,92],[63,64,92],[64,92],[64,65,66,81,91,92],[64,65,66,81,92],[67,72,81,91,92],[64,65,67,68,72,81,88,91,92],[67,69,81,88,91,92],[49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98],[64,70,92],[71,91,92],[61,64,72,81,92],[73,92],[74,92],[52,75,92],[76,90,92,96],[77,92],[78,92],[64,79,92],[79,80,92,94],[64,81,82,83,92],[81,83,92],[81,82,92],[84,92],[85,92],[64,86,87,92],[86,87,92],[58,72,81,88,92],[89,92],[72,90,92],[53,67,78,91,92],[58,92],[81,92,93],[92,94],[92,95],[53,58,64,66,75,81,91,92,94,96],[81,92,97],[92,99],[81,92,97,99],[44,92],[64,81,92,99],[92,145],[92,146],[92,120],[54,81,92,99,120,121],[92,123,124,125],[92,123],[92,126],[46,47,92],[46,65,81,92],[46,92],[46,92,104],[46,66,92],[65,66,73,74,92,143],[45,48,92,108],[45,48,92,112],[45,48,74,92,104,107,110,115,116,117],[45,48,66,74,92,105,107,108,111,112,116,117,130,139,140,144,147,148,149,153],[45,92,147,148,154],[45,46,48,92,102,105,108,151,152],[45,48,92,104],[45,48,92,104,117,140,144,157],[66,74,76,92,146,147],[92,102,150],[65,92,102],[92,109,113,118,153,154,155,156,158],[46,66,74,92,107],[46,66,74,92,101,102,103,105,106,107],[66,74,92,102,106,107],[46,66,74,92,107,110,111],[45,92,107,109,113,118,153,154,155,156,158],[54,92],[66,74,92],[92,114],[92,129],[92,119,128],[92,119,122,127],[45]],"referencedMap":[[101,1],[100,2],[143,3],[142,4],[161,2],[139,5],[135,6],[133,7],[136,8],[134,9],[138,10],[132,2],[137,11],[131,2],[141,2],[162,2],[49,12],[50,12],[52,13],[53,14],[54,15],[55,16],[56,17],[57,18],[58,19],[59,20],[60,21],[61,22],[62,22],[63,23],[64,24],[65,25],[66,26],[51,2],[98,2],[67,27],[68,28],[69,29],[99,30],[70,31],[71,32],[72,33],[73,34],[74,35],[75,36],[76,37],[77,38],[78,39],[79,40],[80,41],[81,42],[83,43],[82,44],[84,45],[85,46],[86,47],[87,48],[88,49],[89,50],[90,51],[91,52],[92,53],[93,54],[94,55],[95,56],[96,57],[97,58],[163,2],[164,2],[150,59],[102,60],[165,2],[44,2],[45,61],[166,62],[46,2],[146,63],[145,64],[121,65],[120,2],[122,66],[126,67],[125,68],[124,68],[123,2],[127,69],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[43,2],[33,2],[34,2],[35,2],[36,2],[7,2],[41,2],[37,2],[38,2],[39,2],[40,2],[1,2],[42,2],[11,2],[10,2],[48,70],[103,71],[157,72],[104,72],[105,73],[110,72],[140,74],[144,75],[109,76],[113,77],[118,78],[154,79],[155,80],[153,81],[156,82],[158,83],[148,84],[147,2],[151,85],[106,86],[159,87],[107,35],[111,2],[116,88],[108,89],[152,90],[112,91],[160,92],[47,2],[117,93],[149,94],[115,95],[114,2],[130,96],[129,97],[128,98],[119,2]],"exportedModulesMap":[[101,1],[100,2],[143,3],[142,4],[161,2],[139,5],[135,6],[133,7],[136,8],[134,9],[138,10],[132,2],[137,11],[131,2],[141,2],[162,2],[49,12],[50,12],[52,13],[53,14],[54,15],[55,16],[56,17],[57,18],[58,19],[59,20],[60,21],[61,22],[62,22],[63,23],[64,24],[65,25],[66,26],[51,2],[98,2],[67,27],[68,28],[69,29],[99,30],[70,31],[71,32],[72,33],[73,34],[74,35],[75,36],[76,37],[77,38],[78,39],[79,40],[80,41],[81,42],[83,43],[82,44],[84,45],[85,46],[86,47],[87,48],[88,49],[89,50],[90,51],[91,52],[92,53],[93,54],[94,55],[95,56],[96,57],[97,58],[163,2],[164,2],[150,59],[102,60],[165,2],[44,2],[45,61],[166,62],[46,2],[146,63],[145,64],[121,65],[120,2],[122,66],[126,67],[125,68],[124,68],[123,2],[127,69],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[43,2],[33,2],[34,2],[35,2],[36,2],[7,2],[41,2],[37,2],[38,2],[39,2],[40,2],[1,2],[42,2],[11,2],[10,2],[48,70],[103,71],[157,72],[104,72],[105,73],[110,72],[140,74],[144,75],[109,76],[113,77],[118,99],[154,99],[155,99],[153,81],[156,82],[158,83],[148,84],[147,2],[151,85],[106,86],[159,87],[107,35],[111,2],[116,88],[108,89],[152,90],[112,91],[47,2],[117,93],[149,94],[115,95],[114,2],[130,96],[129,97],[128,98],[119,2]],"semanticDiagnosticsPerFile":[101,100,143,142,161,139,135,133,136,134,138,132,137,131,141,162,49,50,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,51,98,67,68,69,99,70,71,72,73,74,75,76,77,78,79,80,81,83,82,84,85,86,87,88,89,90,91,92,93,94,95,96,97,163,164,150,102,165,44,45,166,46,146,145,121,120,122,126,125,124,123,127,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,43,33,34,35,36,7,41,37,38,39,40,1,42,11,10,48,103,157,104,105,110,140,144,109,113,118,154,155,153,156,158,148,147,151,106,159,107,111,116,108,152,112,160,47,117,149,115,114,130,129,128,119]},"version":"4.6.3"}
1
+ {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.es2019.full.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts","../../../node_modules/axios/index.d.ts","../src/utils/api-token.utils.ts","../src/api/client.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/adm-zip/util.d.ts","../../../node_modules/@types/adm-zip/index.d.ts","../../../node_modules/@types/pngjs/index.d.ts","../src/api/download.ts","../src/api/project.api.ts","../src/api/replay.api.ts","../src/image/io.utils.ts","../src/local-data/local-data.ts","../src/local-data/replays.ts","../src/commands/download-replay/download-replay.command.ts","../src/api/session.api.ts","../src/local-data/local-data.utils.ts","../src/local-data/sessions.ts","../src/commands/download-session/download-session.command.ts","../../record/dist/record/record.d.ts","../../record/dist/index.d.ts","../src/local-data/replay-assets.ts","../src/utils/commit-sha.utils.ts","../src/commands/record/record.command.ts","../../replayer/dist/session/session.types.d.ts","../../../node_modules/devtools-protocol/types/protocol.d.ts","../../../node_modules/devtools-protocol/types/protocol-mapping.d.ts","../../../node_modules/puppeteer/lib/types.d.ts","../../../node_modules/rrweb-snapshot/typings/types.d.ts","../../../node_modules/rrweb-snapshot/typings/snapshot.d.ts","../../../node_modules/rrweb-snapshot/typings/rebuild.d.ts","../../../node_modules/rrweb-snapshot/typings/index.d.ts","../../../node_modules/rrweb/typings/types.d.ts","../../replayer/dist/replayer/replay.utils.d.ts","../../replayer/dist/replayer/replay-events.d.ts","../../replayer/dist/index.d.ts","../../../node_modules/@types/luxon/src/zone.d.ts","../../../node_modules/@types/luxon/src/misc.d.ts","../../../node_modules/@types/luxon/src/duration.d.ts","../../../node_modules/@types/luxon/src/interval.d.ts","../../../node_modules/@types/luxon/src/datetime.d.ts","../../../node_modules/@types/luxon/src/info.d.ts","../../../node_modules/@types/luxon/src/settings.d.ts","../../../node_modules/@types/luxon/src/luxon.d.ts","../../../node_modules/@types/luxon/index.d.ts","../src/api/upload.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/glob/index.d.ts","../../../node_modules/@types/archiver/index.d.ts","../src/archive/archive.ts","../../../node_modules/cosmiconfig/dist/types.d.ts","../../../node_modules/cosmiconfig/dist/index.d.ts","../src/config/config.types.ts","../src/config/config.ts","../src/utils/version.utils.ts","../../../node_modules/@types/pixelmatch/index.d.ts","../src/image/diff.utils.ts","../src/local-data/screenshot-diffs.ts","../src/commands/screenshot-diff/screenshot-diff.command.ts","../src/commands/replay/replay.command.ts","../src/api/test-run.api.ts","../src/utils/github-summary.utils.ts","../src/commands/run-all-tests/run-all-tests.command.ts","../src/commands/show-project/show-project.command.ts","../src/api/project-build.api.ts","../src/commands/upload-build/upload-build.command.ts","../src/index.ts","../src/main.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/minimist/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/parse-json/index.d.ts","../../../node_modules/@types/smoothscroll-polyfill/index.d.ts","../../../node_modules/@types/yauzl/index.d.ts"],"fileInfos":[{"version":"3ac1b83264055b28c0165688fda6dfcc39001e9e7828f649299101c23ad0a0c3","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940",{"version":"72704b10d97777e15f1a581b73f88273037ef752d2e50b72287bd0a90af64fe6","affectsGlobalScope":true},{"version":"dbb73d4d99be496175cb432c74c2615f78c76f4272f1d83cba11ee0ed6dbddf0","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"5075b36ab861c8c0c45377cb8c96270d7c65f0eeaf105d53fac6850da61f1027","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"1f03b495671c3a1bd24510f38b8947f0991dfd6bf0278c68eca14af15b306e1f","f7e133b20ee2669b6c0e5d7f0cd510868c57cd64b283e68c7f598e30ce9d76d2","45627c7d24633686b0274d9402652930ba2e4fe74df04f114393ae121d1e8afe","2808645b990069e5f8b5ff14c9f1e6077eb642583c3f7854012d60757f23c70e","504748354caa6b804491bc919fdeba0cb0891bfab827584af3e1909680984733","385c8d0cc48ea3c9d6a4448090bd8fc42077e72cdc0c456a1cfb7818d296a4f2","0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"c2ab70bbc7a24c42a790890739dd8a0ba9d2e15038b40dff8163a97a5d148c00","affectsGlobalScope":true},"422dbb183fdced59425ca072c8bd09efaa77ce4e2ab928ec0d8a1ce062d2a45a",{"version":"712ba0d43b44d144dfd01593f61af6e2e21cfae83e834d297643e7973e55ed61","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","98a3ebfa494b46265634a73459050befba5da8fdc6ca0ef9b7269421780f4ff3","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","cc0b61316c4f37393f1f9595e93b673f4184e9d07f4c127165a490ec4a928668","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"bfea28e6162ed21a0aeed181b623dcf250aa79abf49e24a6b7e012655af36d81","affectsGlobalScope":true},"7a5459efa09ea82088234e6533a203d528c594b01787fb90fba148885a36e8b6","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","ad41bb744149e92adb06eb953da195115620a3f2ad48e7d3ae04d10762dae197","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"5d0a9ea09d990b5788f867f1c79d4878f86f7384cb7dab38eecbf22f9efd063d","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"4cd4cff679c9b3d9239fd7bf70293ca4594583767526916af8e5d5a47d0219c7","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"3345c276cab0e76dda86c0fb79104ff915a4580ba0f3e440870e183b1baec476","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","e383ff72aabf294913f8c346f5da1445ae6ad525836d28efd52cbadc01a361a6","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7",{"version":"3a2da34079a2567161c1359316a32e712404b56566c45332ac9dcee015ecce9f","affectsGlobalScope":true},"28a2e7383fd898c386ffdcacedf0ec0845e5d1a86b5a43f25b86bc315f556b79","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"9cafe917bf667f1027b2bb62e2de454ecd2119c80873ad76fc41d941089753b8","0e0b0baaf6e3845418c2741c9b47478cf6fc086ef8dd5ad4b9ab91499e51de28","ca6e8a62a3e4f5cc3fea6ab45c2e5e128db4d90d81d70547a65047e3f13996f1","0b6a0b628776a3e3a4aeeba090438a26e7ffa15373ce658452c78c1f2254665d","c5272cde17f2e0a2fc3a4c6a900017facf0f175d0a4fc9ed839b53a48e61d144","1bb8c0dd0981e05a4dbbb2cae6d63395a2de76d8f2286a706bb559637a1e4d80","db368e828058ab12f2959dbcaceadaff2c6527442d8c5a9615ddc8deebdc770e","f0d3be81961de0047d3545b3df5d7cf97089a322dd4563159af540b81485c286","61dfc414a33e05fbb678e02e3155aa52dc0defc2e8a6154b8f0636a9e9db10b3","01f0e2b4b0c2e83ad048af28b38998b03012c6d7bf966cfcc5ece896835fd0ef","d4332df935ff6a980c062aab91a3a3bbfa689105ac60bfcb5c1d5c7520b1b947","76e9d714acaae86bd48a2fcb213f90e883da23f9bb51b482b27c2dabfeb046c1","2a08f33188a237c661302ac21686f27a07a61ba08c75f4e08c0fbce4ee74d8c9","09dc01117d665ef23f14a97ad5c3667404e8864c77c1244f147a8e852ebdade1","14868bd4edc2084d09214d1a41033d35486131597f1b4680f3b31cd8a25694d2","c091e0c54ccd505e8e86611c3cbbfaac460c77cf1d50cf852230d6d6b6299194","c300a087af272d75421e2d3b4b2252d8011109b96ff870c6b5dc131aeb87b543","e1c4dbc8e86098998d6a7457acbed85e24957dc47ecc558eeaf241119659af1d","f971cf15188513b2b25ec3c94b27ed4a159a912ad3aa821be02224bd9ebe63b7",{"version":"400b1ba90714a8109d09efc0825370584c5ddc3f728f19e334d459d4d14ae861","signature":"8b3eee591ca55cec9456de533b003aa805ae4005345e7be1d7df0e02765e4750"},"188565fbbadbaf42f3feccaafb11b48c5d2de58e1608c08e9df42a3b8215f906","82aabbc958906ce976ae72f2984d850b8e266d2f409b3e5b25d9cd392f40b0ed","0a884662690a3a6ba9e706684b16af2d79136893632a52569f68e3febbab356a","cecd310fc3d2df87569e82f9d824e27a5f0afb6e9b017987b54545bcecd2cedb","00a99694b9e5a9dc8a3817817a55eef4f43657f47d70826b843fb8686e93ee4b","504cf61e06f9160f74227321cad90e3066a1ab79d13a3482ff943c3c6ea4b8d4","e9e45cd9deaa11c034988f1b1cc9d282e9c4219715681f6014dfc926cad6f06b","1e19cfa78e51780c766049252825b796c6b94eb80e068906a956fd985a6a4f9e","88d1cb1b22796118d94b30e9aab99ccb27566eb0cf226ca25ff46fbedc50f904","2e3a430148531ca17d9e2b8e6a01be07096d54adf3ca90839fd8cdba5aa01c7d","0de1cec7c1b24ada29a619442544cd2b8103fea7411a95948e109fef31acef3b","19ec34e1a88d9e429c6a3716e281b30c0b934d5f51480132607ff55bdfa9005c","ec6d1ffbb1455fdf7c75715ce5390172f3c4783b94defaf897e6036c7282d04c","52ed17fe2c0a4bb27a4f13e99234b3d1f364dc27f9bd7964946d5ec62792a0cc","e9aefcaf89c87dae14a381765b9d889568bfd86472650aea8444234278172371","9f3fd115e0f6969c552fbf60fba7af3f66c070718809e8fba06c963abb59b028","cfb5e5369bd802fc2c216a06d3c4b92de8c428bdb7879c685e230809ef4eaee4","ed4be5a31cd8dbb8e31ccde91e7b8c1552eb191c4787d19ed028763577674772","d40e7cb322841e538e686b8a39f05e8b3e0b6d5b7c6687efa69f0cbf9124c4ec","c5641bb951da5d5252e7d8a806ec3c84f42555b5bd6a0879dbf1c7df1b8bd850","3147fec8a70e38c6ad051232697c89c5e5ec259eff00a184344ac018308b7cbf","79af33ba55da7d35bc3389dacde5cd3699ec4fd4675a98cb7667f7e2d1533c33","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33","51440322bec180cf452ce474b4f69b993b4eb491fecf47abd958d3342747d6b0","f975872106ca4b5462634794605c8d09fb11aca94be3ed76e6b7a1ed111f130f","b791ba05bd7a70824c6e49af9b13eeee2e0f9f8da9ebc2e05afc67b6932b5b6a","1cb4c98919fb1e6be645d0bbf744b9fa29b6bde06befb19c2e33960758f4bad4","00873522476f35dbfecab377b1ff1b9915edf7723bfc271e29ecb7ca504dee8b","95330e8c48719808cbd9eaa6c053907c60fb755a0c1d8a32f908fb2840e55eb3","103c616e802670dd3f6e4de2ea6188197fbb6f231ab8526bf6c87db342ef163c","f30350dd37c3f3c11f47adb7ce4e7a4928f578f4ae8a3197e0c8a0811da46b92","4d29d7b134f280d733a3deb03e88e192e6306684ac3a651f0fbaa5fb346f9183","46ef704c3831c2064a71104691db0d694d385e8b2dfe4ceb877dbd5f169ee3a6","933d5cdb335ccf5c535b2af6a20f12973003b9daeb08c2d6f6d40773fca9f26d",{"version":"96df731e1bc30b9c53db45da24bfd1d24d663be572b1774a70d8d8e5218f1f33","signature":"c9d22dcc5c1783df2f0c555f4de8c0a0af5daec868b14f3ef33137db9b3e34d5"},"c726ce9b529f21f0e0e27c4866c6f2e5fd4d3e12df8aa3f64a9f520b591c2994","e09236c68a37332b5253690cee8ceaf137b82bd37e93f612967cfbd30db4a87e",{"version":"ce13a5307ca45e9eea8568bad4ac5f8c5ff65517a83e4620b653a94a64b37639","signature":"3e11199144be95d7dfe56c7b290e068f4ba71c7e34738995e825f7cafe29fe29"},"ff96e9c6c815e1dac89e2c7323af332d9d60db35396084a59e971bd5af6d62de","926929ee7d8b8af2e0767c7df35a6ce16dd01745cc31881672c703368662a35d","e1a79b3f95a24da98743307570c0a438d171cd8ac82ea05990bc74f740b2d33b","0a4971884c6ace709d0ce5d4c2a4edb2a4a572d2c607843b6da6eecf78f6c8ca",{"version":"b9d33c04205b8feec53a3c553bcfed84b670e394f5224adc4827048e126cde2b","signature":"da06c2a8dc3608bc685a211ccd839ca335f466e6aa22cfeef085e219ed82149d"},"f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","209e814e8e71aec74f69686a9506dd7610b97ab59dcee9446266446f72a76d05","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","657ecc0d1f08d35e69533185aca1cf400667261e29fb5a41021a8eee0df697c0","b2d70a269840a9528db473ac7565442434333a05c1f66801a7a672e82beb903e"],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"exactOptionalPropertyTypes":true,"experimentalDecorators":true,"module":1,"newLine":1,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"outDir":"./","preserveConstEnums":true,"rootDir":"../src","skipLibCheck":true,"strict":true,"target":6,"tsBuildInfoFile":"./tsconfig.tsbuildinfo"},"fileIdsList":[[65,92,99,100],[92],[65,81,92,97,142],[64,65,92,99,141],[92,138],[92,131,133,134,139],[92,132,135],[92,131,132],[92,133,135],[92,131,132,133,134,135,136,137],[92,131],[49,92],[52,92],[53,58,92],[54,64,65,72,81,91,92],[54,55,64,72,92],[56,92],[57,58,65,73,92],[58,81,88,92],[59,61,64,72,92],[60,92],[61,62,92],[63,64,92],[64,92],[64,65,66,81,91,92],[64,65,66,81,92],[67,72,81,91,92],[64,65,67,68,72,81,88,91,92],[67,69,81,88,91,92],[49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98],[64,70,92],[71,91,92],[61,64,72,81,92],[73,92],[74,92],[52,75,92],[76,90,92,96],[77,92],[78,92],[64,79,92],[79,80,92,94],[64,81,82,83,92],[81,83,92],[81,82,92],[84,92],[85,92],[64,86,87,92],[86,87,92],[58,72,81,88,92],[89,92],[72,90,92],[53,67,78,91,92],[58,92],[81,92,93],[92,94],[92,95],[53,58,64,66,75,81,91,92,94,96],[81,92,97],[92,99],[81,92,97,99],[44,92],[64,81,92,99],[92,145],[92,146],[92,120],[54,81,92,99,120,121],[92,123,124,125],[92,123],[92,126],[46,47,92],[46,65,81,92],[46,92],[46,92,104],[46,66,92],[65,66,73,74,92,143],[45,48,92,108],[45,48,92,112],[45,48,74,92,104,107,110,115,116,117],[45,48,66,74,92,105,107,108,111,112,116,117,130,139,140,144,147,148,149,153],[45,48,92,117,147,148,149,153,154,155,156],[45,46,48,92,102,105,108,151,152],[45,48,92,104],[45,48,92,104,117,140,144,159],[66,74,76,92,146,147],[92,102,150],[65,92,102],[92,109,113,118,153,154,157,158,160],[46,66,74,92,107],[46,66,74,92,101,102,103,105,106,107],[66,74,92,102,106,107],[46,66,74,92,107,110,111],[45,92,107,109,113,118,153,154,157,158,160],[54,92],[66,92,147,155],[66,74,92],[92,114],[92,129],[92,119,128],[92,119,122,127],[45]],"referencedMap":[[101,1],[100,2],[143,3],[142,4],[163,2],[139,5],[135,6],[133,7],[136,8],[134,9],[138,10],[132,2],[137,11],[131,2],[141,2],[164,2],[49,12],[50,12],[52,13],[53,14],[54,15],[55,16],[56,17],[57,18],[58,19],[59,20],[60,21],[61,22],[62,22],[63,23],[64,24],[65,25],[66,26],[51,2],[98,2],[67,27],[68,28],[69,29],[99,30],[70,31],[71,32],[72,33],[73,34],[74,35],[75,36],[76,37],[77,38],[78,39],[79,40],[80,41],[81,42],[83,43],[82,44],[84,45],[85,46],[86,47],[87,48],[88,49],[89,50],[90,51],[91,52],[92,53],[93,54],[94,55],[95,56],[96,57],[97,58],[165,2],[166,2],[150,59],[102,60],[167,2],[44,2],[45,61],[168,62],[46,2],[146,63],[145,64],[121,65],[120,2],[122,66],[126,67],[125,68],[124,68],[123,2],[127,69],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[43,2],[33,2],[34,2],[35,2],[36,2],[7,2],[41,2],[37,2],[38,2],[39,2],[40,2],[1,2],[42,2],[11,2],[10,2],[48,70],[103,71],[159,72],[104,72],[105,73],[110,72],[155,72],[140,74],[144,75],[109,76],[113,77],[118,78],[154,79],[157,80],[153,81],[158,82],[160,83],[148,84],[147,2],[151,85],[106,86],[161,87],[107,35],[111,2],[116,88],[108,89],[152,90],[112,91],[162,92],[47,2],[117,93],[156,94],[149,95],[115,96],[114,2],[130,97],[129,98],[128,99],[119,2]],"exportedModulesMap":[[101,1],[100,2],[143,3],[142,4],[163,2],[139,5],[135,6],[133,7],[136,8],[134,9],[138,10],[132,2],[137,11],[131,2],[141,2],[164,2],[49,12],[50,12],[52,13],[53,14],[54,15],[55,16],[56,17],[57,18],[58,19],[59,20],[60,21],[61,22],[62,22],[63,23],[64,24],[65,25],[66,26],[51,2],[98,2],[67,27],[68,28],[69,29],[99,30],[70,31],[71,32],[72,33],[73,34],[74,35],[75,36],[76,37],[77,38],[78,39],[79,40],[80,41],[81,42],[83,43],[82,44],[84,45],[85,46],[86,47],[87,48],[88,49],[89,50],[90,51],[91,52],[92,53],[93,54],[94,55],[95,56],[96,57],[97,58],[165,2],[166,2],[150,59],[102,60],[167,2],[44,2],[45,61],[168,62],[46,2],[146,63],[145,64],[121,65],[120,2],[122,66],[126,67],[125,68],[124,68],[123,2],[127,69],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[43,2],[33,2],[34,2],[35,2],[36,2],[7,2],[41,2],[37,2],[38,2],[39,2],[40,2],[1,2],[42,2],[11,2],[10,2],[48,70],[103,71],[159,72],[104,72],[105,73],[110,72],[155,72],[140,74],[144,75],[109,76],[113,77],[118,100],[154,100],[157,100],[153,81],[158,82],[160,83],[148,84],[147,2],[151,85],[106,86],[161,87],[107,35],[111,2],[116,88],[108,89],[152,90],[112,91],[47,2],[117,93],[156,94],[149,95],[115,96],[114,2],[130,97],[129,98],[128,99],[119,2]],"semanticDiagnosticsPerFile":[101,100,143,142,163,139,135,133,136,134,138,132,137,131,141,164,49,50,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,51,98,67,68,69,99,70,71,72,73,74,75,76,77,78,79,80,81,83,82,84,85,86,87,88,89,90,91,92,93,94,95,96,97,165,166,150,102,167,44,45,168,46,146,145,121,120,122,126,125,124,123,127,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,43,33,34,35,36,7,41,37,38,39,40,1,42,11,10,48,103,159,104,105,110,155,140,144,109,113,118,154,157,153,158,160,148,147,151,106,161,107,111,116,108,152,112,162,47,117,156,149,115,114,130,129,128,119]},"version":"4.6.3"}
@@ -0,0 +1,6 @@
1
+ import { TestRun } from "../api/test-run.api";
2
+ import { TestCaseResult } from "../config/config.types";
3
+ export declare const writeGitHubSummary: (options: {
4
+ testRun: TestRun;
5
+ results: TestCaseResult[];
6
+ }) => Promise<void>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.writeGitHubSummary = void 0;
4
+ const promises_1 = require("fs/promises");
5
+ const GITHUB_SUMMARY_FILE = "github-summary.md";
6
+ const writeGitHubSummary = async ({ testRun, results }) => {
7
+ const { project } = testRun;
8
+ const testRunUrl = `https://app.meticulous.ai/projects/${project.organization.name}/${project.name}/test-runs/${testRun.id}`;
9
+ const summary = `# Test Results
10
+
11
+ [View on Meticulous](${testRunUrl})
12
+
13
+ <table>
14
+ <thead>
15
+ <th>Result</th>
16
+ <th>Test Case</th>
17
+ </thead>
18
+ <tbody>
19
+ ${results
20
+ .map(({ title, result }) => `<tr>
21
+ <td>${result === "pass" ? "✅️" : "❌️"}</td>
22
+ <td>${title}</td>
23
+ </tr>`)
24
+ .join("\n")}
25
+ </tbody>
26
+ </table>
27
+ `;
28
+ await (0, promises_1.writeFile)(GITHUB_SUMMARY_FILE, summary, "utf-8");
29
+ };
30
+ exports.writeGitHubSummary = writeGitHubSummary;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alwaysmeticulous/cli",
3
- "version": "1.2.13",
3
+ "version": "1.2.16",
4
4
  "description": "The Meticulous CLI",
5
5
  "license": "ISC",
6
6
  "main": "dist/index.js",