@alwaysmeticulous/cli 2.259.0 → 2.260.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/{utils → command-utils}/sentry.utils.d.ts +1 -1
- package/dist/command-utils/sentry.utils.js.map +1 -0
- package/dist/commands/auth/index.d.ts +2 -0
- package/dist/commands/auth/index.js +14 -0
- package/dist/commands/auth/index.js.map +1 -0
- package/dist/commands/auth/logout.command.d.ts +2 -0
- package/dist/commands/auth/logout.command.js +17 -0
- package/dist/commands/auth/logout.command.js.map +1 -0
- package/dist/commands/auth/whoami.command.d.ts +2 -0
- package/dist/commands/auth/whoami.command.js +41 -0
- package/dist/commands/auth/whoami.command.js.map +1 -0
- package/dist/commands/ci/index.d.ts +2 -0
- package/dist/commands/ci/index.js +26 -0
- package/dist/commands/ci/index.js.map +1 -0
- package/dist/commands/ci/prepare.command.d.ts +15 -0
- package/dist/commands/{prepare-for-meticulous-tests/prepare-for-meticulous-tests.command.js → ci/prepare.command.js} +22 -31
- package/dist/commands/ci/prepare.command.js.map +1 -0
- package/dist/commands/ci/run-local.command.d.ts +23 -0
- package/dist/commands/{run-all-tests/run-all-tests.command.js → ci/run-local.command.js} +64 -63
- package/dist/commands/ci/run-local.command.js.map +1 -0
- package/dist/commands/ci/run.command.d.ts +22 -0
- package/dist/commands/{run-all-tests-in-cloud/run-all-tests-in-cloud.command.js → ci/run.command.js} +97 -111
- package/dist/commands/ci/run.command.js.map +1 -0
- package/dist/commands/ci/start-tunnel.command.d.ts +21 -0
- package/dist/commands/ci/start-tunnel.command.js +142 -0
- package/dist/commands/ci/start-tunnel.command.js.map +1 -0
- package/dist/commands/ci/upload-assets.command.d.ts +14 -0
- package/dist/commands/{upload-assets-and-execute-test-run-in-cloud/upload-assets-and-execute-test-run-in-cloud.command.js → ci/upload-assets.command.js} +46 -54
- package/dist/commands/ci/upload-assets.command.js.map +1 -0
- package/dist/commands/ci/upload-container.command.d.ts +15 -0
- package/dist/commands/{upload-container-and-execute-test-run-in-cloud/upload-container-and-execute-test-run-in-cloud.command.js → ci/upload-container.command.js} +53 -62
- package/dist/commands/ci/upload-container.command.js.map +1 -0
- package/dist/commands/deprecated-aliases.d.ts +2 -0
- package/dist/commands/deprecated-aliases.js +27 -0
- package/dist/commands/deprecated-aliases.js.map +1 -0
- package/dist/commands/download/index.d.ts +2 -0
- package/dist/commands/download/index.js +20 -0
- package/dist/commands/download/index.js.map +1 -0
- package/dist/commands/download/replay.command.d.ts +7 -0
- package/dist/commands/{download-replay/download-replay.command.js → download/replay.command.js} +17 -23
- package/dist/commands/download/replay.command.js.map +1 -0
- package/dist/commands/download/session.command.d.ts +7 -0
- package/dist/commands/download/session.command.js +32 -0
- package/dist/commands/download/session.command.js.map +1 -0
- package/dist/commands/download/test-run.command.d.ts +8 -0
- package/dist/commands/{download-test-run/download-test-run.command.js → download/test-run.command.js} +21 -21
- package/dist/commands/download/test-run.command.js.map +1 -0
- package/dist/commands/project/index.d.ts +2 -0
- package/dist/commands/project/index.js +13 -0
- package/dist/commands/project/index.js.map +1 -0
- package/dist/commands/project/show.command.d.ts +6 -0
- package/dist/commands/project/show.command.js +26 -0
- package/dist/commands/project/show.command.js.map +1 -0
- package/dist/commands/record/index.d.ts +2 -0
- package/dist/commands/record/index.js +18 -0
- package/dist/commands/record/index.js.map +1 -0
- package/dist/commands/record/login.command.d.ts +14 -0
- package/dist/commands/{record-login/record-login.command.js → record/login.command.js} +16 -31
- package/dist/commands/record/login.command.js.map +1 -0
- package/dist/commands/record/session.command.d.ts +17 -0
- package/dist/commands/record/{record.command.js → session.command.js} +16 -37
- package/dist/commands/record/session.command.js.map +1 -0
- package/dist/commands/{replay/utils/replay-debugger.ui.js → replay-debugger.ui.js} +2 -7
- package/dist/commands/replay-debugger.ui.js.map +1 -0
- package/dist/commands/replay.command.d.ts +25 -0
- package/dist/commands/{replay/replay.command.js → replay.command.js} +77 -82
- package/dist/commands/replay.command.js.map +1 -0
- package/dist/index.d.ts +4 -7
- package/dist/index.js +8 -14
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +1 -1
- package/dist/main.js +20 -33
- package/dist/main.js.map +1 -1
- package/package.json +5 -5
- package/dist/command-utils/command-builder.d.ts +0 -10
- package/dist/command-utils/command-builder.js +0 -20
- package/dist/command-utils/command-builder.js.map +0 -1
- package/dist/commands/download-replay/download-replay.command.d.ts +0 -10
- package/dist/commands/download-replay/download-replay.command.js.map +0 -1
- package/dist/commands/download-session/download-session.command.d.ts +0 -10
- package/dist/commands/download-session/download-session.command.js +0 -33
- package/dist/commands/download-session/download-session.command.js.map +0 -1
- package/dist/commands/download-test-run/download-test-run.command.d.ts +0 -17
- package/dist/commands/download-test-run/download-test-run.command.js.map +0 -1
- package/dist/commands/logout/logout.command.d.ts +0 -2
- package/dist/commands/logout/logout.command.js +0 -18
- package/dist/commands/logout/logout.command.js.map +0 -1
- package/dist/commands/prepare-for-meticulous-tests/prepare-for-meticulous-tests.command.d.ts +0 -22
- package/dist/commands/prepare-for-meticulous-tests/prepare-for-meticulous-tests.command.js.map +0 -1
- package/dist/commands/record/record.command.d.ts +0 -67
- package/dist/commands/record/record.command.js.map +0 -1
- package/dist/commands/record-login/record-login.command.d.ts +0 -56
- package/dist/commands/record-login/record-login.command.js.map +0 -1
- package/dist/commands/replay/replay.command.d.ts +0 -161
- package/dist/commands/replay/replay.command.js.map +0 -1
- package/dist/commands/replay/utils/replay-debugger.ui.js.map +0 -1
- package/dist/commands/run-all-tests/run-all-tests.command.d.ts +0 -140
- package/dist/commands/run-all-tests/run-all-tests.command.js.map +0 -1
- package/dist/commands/run-all-tests-in-cloud/run-all-tests-in-cloud.command.d.ts +0 -87
- package/dist/commands/run-all-tests-in-cloud/run-all-tests-in-cloud.command.js.map +0 -1
- package/dist/commands/show-project/show-project.command.d.ts +0 -6
- package/dist/commands/show-project/show-project.command.js +0 -27
- package/dist/commands/show-project/show-project.command.js.map +0 -1
- package/dist/commands/start-local-tunnel/start-local-tunnel.command.d.ts +0 -81
- package/dist/commands/start-local-tunnel/start-local-tunnel.command.js +0 -144
- package/dist/commands/start-local-tunnel/start-local-tunnel.command.js.map +0 -1
- package/dist/commands/upload-assets-and-execute-test-run-in-cloud/upload-assets-and-execute-test-run-in-cloud.command.d.ts +0 -46
- package/dist/commands/upload-assets-and-execute-test-run-in-cloud/upload-assets-and-execute-test-run-in-cloud.command.js.map +0 -1
- package/dist/commands/upload-container-and-execute-test-run-in-cloud/upload-container-and-execute-test-run-in-cloud.command.d.ts +0 -50
- package/dist/commands/upload-container-and-execute-test-run-in-cloud/upload-container-and-execute-test-run-in-cloud.command.js.map +0 -1
- package/dist/commands/whoami/whoami.command.d.ts +0 -2
- package/dist/commands/whoami/whoami.command.js +0 -42
- package/dist/commands/whoami/whoami.command.js.map +0 -1
- package/dist/utils/npm-set-script.utils.d.ts +0 -4
- package/dist/utils/npm-set-script.utils.js +0 -17
- package/dist/utils/npm-set-script.utils.js.map +0 -1
- package/dist/utils/sentry.utils.js.map +0 -1
- /package/dist/{utils → command-utils}/sentry.utils.js +0 -0
- /package/dist/commands/{replay/utils/replay-debugger.ui.d.ts → replay-debugger.ui.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload-assets.command.js","sourceRoot":"","sources":["../../../src/commands/ci/upload-assets.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ContainerEnvVariable } from "@alwaysmeticulous/client";
|
|
2
|
+
import { CommandModule } from "yargs";
|
|
3
|
+
interface Options {
|
|
4
|
+
apiToken?: string | undefined;
|
|
5
|
+
commitSha?: string | undefined;
|
|
6
|
+
baseSha?: string | undefined;
|
|
7
|
+
repoDirectory?: string | undefined;
|
|
8
|
+
localImageTag: string;
|
|
9
|
+
waitForBase: boolean;
|
|
10
|
+
waitForTestRunToComplete: boolean;
|
|
11
|
+
containerPort?: number | undefined;
|
|
12
|
+
containerEnv?: ContainerEnvVariable[] | undefined;
|
|
13
|
+
}
|
|
14
|
+
export declare const ciUploadContainerCommand: CommandModule<unknown, Options>;
|
|
15
|
+
export {};
|
|
@@ -23,13 +23,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
26
|
+
exports.ciUploadContainerCommand = void 0;
|
|
27
27
|
const client_1 = require("@alwaysmeticulous/client");
|
|
28
28
|
const common_1 = require("@alwaysmeticulous/common");
|
|
29
29
|
const remote_replay_launcher_1 = require("@alwaysmeticulous/remote-replay-launcher");
|
|
30
30
|
const Sentry = __importStar(require("@sentry/node"));
|
|
31
|
-
const command_builder_1 = require("../../command-utils/command-builder");
|
|
32
31
|
const common_options_1 = require("../../command-utils/common-options");
|
|
32
|
+
const sentry_utils_1 = require("../../command-utils/sentry.utils");
|
|
33
33
|
const out_of_date_client_error_1 = require("../../utils/out-of-date-client-error");
|
|
34
34
|
const POLL_INTERVAL_MS = 10000;
|
|
35
35
|
const handler = async ({ apiToken, commitSha: commitSha_, baseSha: baseSha_, repoDirectory, localImageTag, waitForBase, waitForTestRunToComplete, containerPort, containerEnv, }) => {
|
|
@@ -41,9 +41,9 @@ const handler = async ({ apiToken, commitSha: commitSha_, baseSha: baseSha_, rep
|
|
|
41
41
|
logger.error("No commit sha found, you must be in a git repository or provide one with --commitSha");
|
|
42
42
|
process.exit(1);
|
|
43
43
|
}
|
|
44
|
-
const baseSha = baseSha_ ||
|
|
45
|
-
? await (0, common_1.getLocalBaseSha)(gitOpts)
|
|
46
|
-
|
|
44
|
+
const baseSha = baseSha_ ||
|
|
45
|
+
(repoDirectory ? await (0, common_1.getLocalBaseSha)(gitOpts) : undefined) ||
|
|
46
|
+
undefined;
|
|
47
47
|
if (baseSha && baseSha === commitSha) {
|
|
48
48
|
logger.info("Base SHA equals head SHA — nothing to test.");
|
|
49
49
|
return;
|
|
@@ -54,10 +54,7 @@ const handler = async ({ apiToken, commitSha: commitSha_, baseSha: baseSha_, rep
|
|
|
54
54
|
}
|
|
55
55
|
Sentry.captureMessage("Received upload container request", {
|
|
56
56
|
level: "debug",
|
|
57
|
-
extra: {
|
|
58
|
-
commitSha,
|
|
59
|
-
localImageTag,
|
|
60
|
-
},
|
|
57
|
+
extra: { commitSha, localImageTag },
|
|
61
58
|
});
|
|
62
59
|
let testRunId = null;
|
|
63
60
|
try {
|
|
@@ -101,58 +98,52 @@ const handler = async ({ apiToken, commitSha: commitSha_, baseSha: baseSha_, rep
|
|
|
101
98
|
}
|
|
102
99
|
logger.info(`Test run ${testRunId} finished with status: ${completedTestRun.status}`);
|
|
103
100
|
};
|
|
104
|
-
exports.
|
|
105
|
-
|
|
101
|
+
exports.ciUploadContainerCommand = {
|
|
102
|
+
command: "upload-container",
|
|
106
103
|
describe: "Upload a Docker container to Meticulous and trigger a test run against it",
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
if (!name || !envValue) {
|
|
150
|
-
throw new Error(`Invalid environment variable: ${v}`);
|
|
151
|
-
}
|
|
152
|
-
return { name, value: envValue };
|
|
153
|
-
}),
|
|
154
|
-
description: "The environment variables to set in the container.",
|
|
104
|
+
builder: {
|
|
105
|
+
apiToken: common_options_1.OPTIONS.apiToken,
|
|
106
|
+
commitSha: common_options_1.OPTIONS.commitSha,
|
|
107
|
+
baseSha: {
|
|
108
|
+
string: true,
|
|
109
|
+
description: "The base commit SHA to compare against. If not provided, inferred from --repoDirectory via merge-base with origin/main.",
|
|
110
|
+
},
|
|
111
|
+
repoDirectory: {
|
|
112
|
+
string: true,
|
|
113
|
+
description: "The path to the git repository to use for auto-detecting --commitSha and the base SHA.",
|
|
114
|
+
},
|
|
115
|
+
localImageTag: {
|
|
116
|
+
demandOption: true,
|
|
117
|
+
string: true,
|
|
118
|
+
description: "The local Docker image tag to upload (e.g., 'myapp:latest' or image SHA)",
|
|
119
|
+
},
|
|
120
|
+
waitForBase: {
|
|
121
|
+
boolean: true,
|
|
122
|
+
default: true,
|
|
123
|
+
description: "If true, the launcher will try to wait for a base test run to be created before triggering a test run.",
|
|
124
|
+
},
|
|
125
|
+
waitForTestRunToComplete: {
|
|
126
|
+
boolean: true,
|
|
127
|
+
default: false,
|
|
128
|
+
description: "If true, block and wait until the triggered test run is complete, then report results. Implies --waitForBase.",
|
|
129
|
+
},
|
|
130
|
+
containerPort: {
|
|
131
|
+
number: true,
|
|
132
|
+
description: "The port to expose the container on.",
|
|
133
|
+
},
|
|
134
|
+
containerEnv: {
|
|
135
|
+
array: true,
|
|
136
|
+
coerce: (value) => value.map((v) => {
|
|
137
|
+
const [name, ...rest] = v.split("=");
|
|
138
|
+
const envValue = rest.join("=");
|
|
139
|
+
if (!name || !envValue) {
|
|
140
|
+
throw new Error(`Invalid environment variable: ${v}`);
|
|
141
|
+
}
|
|
142
|
+
return { name, value: envValue };
|
|
143
|
+
}),
|
|
144
|
+
description: "The environment variables to set in the container.",
|
|
145
|
+
},
|
|
155
146
|
},
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
//# sourceMappingURL=upload-container
|
|
147
|
+
handler: (0, sentry_utils_1.wrapHandler)(handler),
|
|
148
|
+
};
|
|
149
|
+
//# sourceMappingURL=upload-container.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload-container.command.js","sourceRoot":"","sources":["../../../src/commands/ci/upload-container.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deprecatedAliases = void 0;
|
|
4
|
+
const prepare_command_1 = require("./ci/prepare.command");
|
|
5
|
+
const run_command_1 = require("./ci/run.command");
|
|
6
|
+
const upload_assets_command_1 = require("./ci/upload-assets.command");
|
|
7
|
+
const upload_container_command_1 = require("./ci/upload-container.command");
|
|
8
|
+
const createDeprecatedAlias = (oldName, newName, target) => {
|
|
9
|
+
var _a;
|
|
10
|
+
return ({
|
|
11
|
+
command: oldName,
|
|
12
|
+
describe: false,
|
|
13
|
+
builder: (_a = target.builder) !== null && _a !== void 0 ? _a : {},
|
|
14
|
+
handler: (args) => {
|
|
15
|
+
const separator = "=".repeat(72);
|
|
16
|
+
process.stderr.write(`\n${separator}\nDEPRECATION WARNING\n'${oldName}' has been renamed. Use 'meticulous ${newName}' instead.\nThis old name will be removed in a future version.\n${separator}\n\n`);
|
|
17
|
+
return target.handler(args);
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
exports.deprecatedAliases = [
|
|
22
|
+
createDeprecatedAlias("run-all-tests-in-cloud", "ci run-with-tunnel", run_command_1.ciRunCommand),
|
|
23
|
+
createDeprecatedAlias("prepare-for-meticulous-tests", "ci prepare", prepare_command_1.ciPrepareCommand),
|
|
24
|
+
createDeprecatedAlias("upload-assets-and-execute-test-run-in-cloud", "ci upload-assets", upload_assets_command_1.ciUploadAssetsCommand),
|
|
25
|
+
createDeprecatedAlias("upload-container-and-execute-test-run-in-cloud", "ci upload-container", upload_container_command_1.ciUploadContainerCommand),
|
|
26
|
+
];
|
|
27
|
+
//# sourceMappingURL=deprecated-aliases.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deprecated-aliases.js","sourceRoot":"","sources":["../../src/commands/deprecated-aliases.ts"],"names":[],"mappings":";;;AACA,0DAAwD;AACxD,kDAAgD;AAChD,sEAAmE;AACnE,4EAAyE;AAEzE,MAAM,qBAAqB,GAAG,CAC5B,OAAe,EACf,OAAe,EACf,MAA+B,EAChB,EAAE;;IAAC,OAAA,CAAC;QACnB,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE;QAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAChB,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,SAAS,2BAA2B,OAAO,uCAAuC,OAAO,mEAAmE,SAAS,MAAM,CACjL,CAAC;YACF,OAAQ,MAAM,CAAC,OAAmD,CAAC,IAAI,CAAC,CAAC;QAC3E,CAAC;KACF,CAAC,CAAA;CAAA,CAAC;AAEU,QAAA,iBAAiB,GAAoB;IAChD,qBAAqB,CACnB,wBAAwB,EACxB,oBAAoB,EACpB,0BAAY,CACb;IACD,qBAAqB,CACnB,8BAA8B,EAC9B,YAAY,EACZ,kCAAgB,CACjB;IACD,qBAAqB,CACnB,6CAA6C,EAC7C,kBAAkB,EAClB,6CAAqB,CACtB;IACD,qBAAqB,CACnB,gDAAgD,EAChD,qBAAqB,EACrB,mDAAwB,CACzB;CACF,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.downloadCommand = void 0;
|
|
4
|
+
const replay_command_1 = require("./replay.command");
|
|
5
|
+
const session_command_1 = require("./session.command");
|
|
6
|
+
const test_run_command_1 = require("./test-run.command");
|
|
7
|
+
exports.downloadCommand = {
|
|
8
|
+
command: "download",
|
|
9
|
+
describe: "Download commands",
|
|
10
|
+
builder: (yargs) => yargs
|
|
11
|
+
.command(session_command_1.downloadSessionCommand)
|
|
12
|
+
.command(replay_command_1.downloadReplayCommand)
|
|
13
|
+
.command(test_run_command_1.downloadTestRunCommand)
|
|
14
|
+
.demandCommand()
|
|
15
|
+
.help(),
|
|
16
|
+
handler: () => {
|
|
17
|
+
// subcommand handles this
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/download/index.ts"],"names":[],"mappings":";;;AACA,qDAAyD;AACzD,uDAA2D;AAC3D,yDAA4D;AAE/C,QAAA,eAAe,GAAkB;IAC5C,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,mBAAmB;IAC7B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,OAAO,CAAC,wCAAsB,CAAC;SAC/B,OAAO,CAAC,sCAAqB,CAAC;SAC9B,OAAO,CAAC,yCAAsB,CAAC;SAC/B,aAAa,EAAE;SACf,IAAI,EAAE;IACX,OAAO,EAAE,GAAG,EAAE;QACZ,0BAA0B;IAC5B,CAAC;CACF,CAAC"}
|
package/dist/commands/{download-replay/download-replay.command.js → download/replay.command.js}
RENAMED
|
@@ -6,8 +6,8 @@ const path_1 = require("path");
|
|
|
6
6
|
const client_1 = require("@alwaysmeticulous/client");
|
|
7
7
|
const common_1 = require("@alwaysmeticulous/common");
|
|
8
8
|
const downloading_helpers_1 = require("@alwaysmeticulous/downloading-helpers");
|
|
9
|
-
const
|
|
10
|
-
const handler = async ({ apiToken, replayId
|
|
9
|
+
const sentry_utils_1 = require("../../command-utils/sentry.utils");
|
|
10
|
+
const handler = async ({ apiToken, replayId }) => {
|
|
11
11
|
const logger = (0, common_1.initLogger)();
|
|
12
12
|
const client = await (0, client_1.createClientWithOAuth)({
|
|
13
13
|
apiToken,
|
|
@@ -16,7 +16,6 @@ const handler = async ({ apiToken, replayId, }) => {
|
|
|
16
16
|
const { fileName: replayMetadataFileName } = await (0, downloading_helpers_1.getOrFetchReplay)(client, replayId);
|
|
17
17
|
logger.info(`Downloaded replay metadata to: ${replayMetadataFileName}`);
|
|
18
18
|
const { fileName: replayFolderFilePath } = await (0, downloading_helpers_1.getOrFetchReplayArchive)(client, replayId, "everything", true);
|
|
19
|
-
// Generate logs.concise.txt and logs.determinstic.txt files
|
|
20
19
|
const logsFile = (0, path_1.join)(replayFolderFilePath, "logs.ndjson");
|
|
21
20
|
const logsFileExists = await (0, promises_1.access)(logsFile)
|
|
22
21
|
.then(() => true)
|
|
@@ -42,7 +41,6 @@ const handler = async ({ apiToken, replayId, }) => {
|
|
|
42
41
|
}
|
|
43
42
|
});
|
|
44
43
|
await (0, promises_1.writeFile)((0, path_1.join)(replayFolderFilePath, "logs.concise.txt"), conciseLogs.join("\n"));
|
|
45
|
-
// Useful for diffing one set of logs against another (excludes the real timestamps, which are non-deterministic)
|
|
46
44
|
virtualTime = 0;
|
|
47
45
|
const deterministicLogs = logs.flatMap((log) => {
|
|
48
46
|
if (log.type === "virtual-time-change") {
|
|
@@ -52,15 +50,12 @@ const handler = async ({ apiToken, replayId, }) => {
|
|
|
52
50
|
if (log.message.includes("[non-deterministic]")) {
|
|
53
51
|
return [];
|
|
54
52
|
}
|
|
55
|
-
// Event ids are unstable
|
|
56
|
-
// filter them out to minimize noise
|
|
53
|
+
// Event ids are unstable so filter them out to minimize noise
|
|
57
54
|
const message = log.message.startsWith("Executing event")
|
|
58
55
|
? log.message.replace(/"id": ?\d+/g, '"id": "<non-deterministic>"')
|
|
59
56
|
: log.message;
|
|
60
57
|
const commonPostfix = `${log.repetitionCount ? " [x" + log.repetitionCount + "]" : ""} ${message}`;
|
|
61
58
|
if (log.source === "application") {
|
|
62
|
-
// Application logs are not guaranteed to be deterministic since code can get executed e.g. when a script loads,
|
|
63
|
-
// but they are low volume and high signal so we include them anyway
|
|
64
59
|
return [
|
|
65
60
|
`[virtual: ${virtualTime}ms] [application]${commonPostfix}`,
|
|
66
61
|
];
|
|
@@ -77,19 +72,18 @@ const handler = async ({ apiToken, replayId, }) => {
|
|
|
77
72
|
}
|
|
78
73
|
logger.info(`Downloaded replay data to: ${replayFolderFilePath}`);
|
|
79
74
|
};
|
|
80
|
-
exports.downloadReplayCommand =
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
75
|
+
exports.downloadReplayCommand = {
|
|
76
|
+
command: "replay",
|
|
77
|
+
describe: "Download a replay from Meticulous",
|
|
78
|
+
builder: {
|
|
79
|
+
apiToken: {
|
|
80
|
+
string: true,
|
|
81
|
+
},
|
|
82
|
+
replayId: {
|
|
83
|
+
string: true,
|
|
84
|
+
demandOption: true,
|
|
85
|
+
},
|
|
88
86
|
},
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
},
|
|
93
|
-
})
|
|
94
|
-
.handler(handler);
|
|
95
|
-
//# sourceMappingURL=download-replay.command.js.map
|
|
87
|
+
handler: (0, sentry_utils_1.wrapHandler)(handler),
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=replay.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replay.command.js","sourceRoot":"","sources":["../../../src/commands/download/replay.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.downloadSessionCommand = void 0;
|
|
4
|
+
const client_1 = require("@alwaysmeticulous/client");
|
|
5
|
+
const common_1 = require("@alwaysmeticulous/common");
|
|
6
|
+
const downloading_helpers_1 = require("@alwaysmeticulous/downloading-helpers");
|
|
7
|
+
const sentry_utils_1 = require("../../command-utils/sentry.utils");
|
|
8
|
+
exports.downloadSessionCommand = {
|
|
9
|
+
command: "session",
|
|
10
|
+
describe: "Download a recorded session from Meticulous",
|
|
11
|
+
builder: {
|
|
12
|
+
apiToken: {
|
|
13
|
+
string: true,
|
|
14
|
+
},
|
|
15
|
+
sessionId: {
|
|
16
|
+
string: true,
|
|
17
|
+
demandOption: true,
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
handler: (0, sentry_utils_1.wrapHandler)(async ({ apiToken, sessionId }) => {
|
|
21
|
+
const logger = (0, common_1.initLogger)();
|
|
22
|
+
const client = await (0, client_1.createClientWithOAuth)({
|
|
23
|
+
apiToken,
|
|
24
|
+
enableOAuthLogin: true,
|
|
25
|
+
});
|
|
26
|
+
const { fileName: sessionMetadataFileName } = await (0, downloading_helpers_1.getOrFetchRecordedSession)(client, sessionId);
|
|
27
|
+
logger.info(`Downloaded session metadata to: ${sessionMetadataFileName}`);
|
|
28
|
+
const { fileName: sessionFileName } = await (0, downloading_helpers_1.getOrFetchRecordedSessionData)(client, sessionId);
|
|
29
|
+
logger.info(`Downloaded session data to: ${sessionFileName}`);
|
|
30
|
+
}),
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=session.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.command.js","sourceRoot":"","sources":["../../../src/commands/download/session.command.ts"],"names":[],"mappings":";;;AAAA,qDAAiE;AACjE,qDAAsD;AACtD,+EAG+C;AAE/C,mEAA+D;AAOlD,QAAA,sBAAsB,GAAoC;IACrE,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,6CAA6C;IACvD,OAAO,EAAE;QACP,QAAQ,EAAE;YACR,MAAM,EAAE,IAAI;SACb;QACD,SAAS,EAAE;YACT,MAAM,EAAE,IAAI;YACZ,YAAY,EAAE,IAAI;SACnB;KACF;IACD,OAAO,EAAE,IAAA,0BAAW,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;QACrD,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAqB,EAAC;YACzC,QAAQ;YACR,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;QAEH,MAAM,EAAE,QAAQ,EAAE,uBAAuB,EAAE,GACzC,MAAM,IAAA,+CAAyB,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,mCAAmC,uBAAuB,EAAE,CAAC,CAAC;QAC1E,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,MAAM,IAAA,mDAA6B,EACvE,MAAM,EACN,SAAS,CACV,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,+BAA+B,eAAe,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC;CACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CommandModule } from "yargs";
|
|
2
|
+
interface Options {
|
|
3
|
+
apiToken?: string | null | undefined;
|
|
4
|
+
testRunId?: string | null | undefined;
|
|
5
|
+
scope?: string | null | undefined;
|
|
6
|
+
}
|
|
7
|
+
export declare const downloadTestRunCommand: CommandModule<unknown, Options>;
|
|
8
|
+
export {};
|
|
@@ -4,7 +4,7 @@ exports.downloadTestRunCommand = void 0;
|
|
|
4
4
|
const client_1 = require("@alwaysmeticulous/client");
|
|
5
5
|
const common_1 = require("@alwaysmeticulous/common");
|
|
6
6
|
const downloading_helpers_1 = require("@alwaysmeticulous/downloading-helpers");
|
|
7
|
-
const
|
|
7
|
+
const sentry_utils_1 = require("../../command-utils/sentry.utils");
|
|
8
8
|
const ALLOWED_SCOPES = [
|
|
9
9
|
"coverage-only",
|
|
10
10
|
"app-container-logs",
|
|
@@ -24,25 +24,25 @@ const handler = async ({ apiToken, testRunId, scope: _scope, }) => {
|
|
|
24
24
|
const { fileName: testRunDir } = await (0, downloading_helpers_1.getOrFetchTestRunData)(client, testRunId !== null && testRunId !== void 0 ? testRunId : "latest", scope);
|
|
25
25
|
logger.info(`Downloaded test run data to: ${testRunDir}`);
|
|
26
26
|
};
|
|
27
|
-
exports.downloadTestRunCommand =
|
|
28
|
-
|
|
27
|
+
exports.downloadTestRunCommand = {
|
|
28
|
+
command: "test-run",
|
|
29
29
|
describe: "Download a Meticulous test run",
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
builder: {
|
|
31
|
+
apiToken: {
|
|
32
|
+
string: true,
|
|
33
|
+
},
|
|
34
|
+
testRunId: {
|
|
35
|
+
string: true,
|
|
36
|
+
default: "latest",
|
|
37
|
+
},
|
|
38
|
+
scope: {
|
|
39
|
+
string: true,
|
|
40
|
+
demandOption: false,
|
|
41
|
+
choices: [...downloading_helpers_1.TEST_RUN_DOWNLOAD_SCOPES],
|
|
42
|
+
default: "coverage-only",
|
|
43
|
+
hidden: !common_1.IS_METICULOUS_SUPER_USER,
|
|
44
|
+
},
|
|
34
45
|
},
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
},
|
|
39
|
-
scope: {
|
|
40
|
-
string: true,
|
|
41
|
-
demandOption: false,
|
|
42
|
-
choices: [...downloading_helpers_1.TEST_RUN_DOWNLOAD_SCOPES],
|
|
43
|
-
default: "coverage-only",
|
|
44
|
-
hidden: !common_1.IS_METICULOUS_SUPER_USER,
|
|
45
|
-
},
|
|
46
|
-
})
|
|
47
|
-
.handler(handler);
|
|
48
|
-
//# sourceMappingURL=download-test-run.command.js.map
|
|
46
|
+
handler: (0, sentry_utils_1.wrapHandler)(handler),
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=test-run.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-run.command.js","sourceRoot":"","sources":["../../../src/commands/download/test-run.command.ts"],"names":[],"mappings":";;;AAAA,qDAAwD;AACxD,qDAAgF;AAChF,+EAI+C;AAE/C,mEAA+D;AAQ/D,MAAM,cAAc,GAA2B;IAC7C,eAAe;IACf,oBAAoB;CACrB,CAAC;AAEF,MAAM,OAAO,GAAG,KAAK,EAAE,EACrB,QAAQ,EACR,SAAS,EACT,KAAK,EAAE,MAAM,GACL,EAAiB,EAAE;;IAC3B,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE1C,MAAM,KAAK,GAAG,MAAC,MAA+B,mCAAI,eAAe,CAAC;IAElE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QACnC,IAAI,CAAC,iCAAwB,EAAE;YAC7B,MAAM,CAAC,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;QACD,MAAM,CAAC,IAAI,CACT,uFAAuF,CACxF,CAAC;KACH;IAED,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,2CAAqB,EAC1D,MAAM,EACN,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,QAAQ,EACrB,KAAK,CACN,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,gCAAgC,UAAU,EAAE,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEW,QAAA,sBAAsB,GAAoC;IACrE,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,gCAAgC;IAC1C,OAAO,EAAE;QACP,QAAQ,EAAE;YACR,MAAM,EAAE,IAAI;SACb;QACD,SAAS,EAAE;YACT,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,QAAQ;SAClB;QACD,KAAK,EAAE;YACL,MAAM,EAAE,IAAI;YACZ,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,CAAC,GAAG,8CAAwB,CAAC;YACtC,OAAO,EAAE,eAAe;YACxB,MAAM,EAAE,CAAC,iCAAwB;SAClC;KACF;IACD,OAAO,EAAE,IAAA,0BAAW,EAAC,OAAO,CAAC;CAC9B,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.projectCommand = void 0;
|
|
4
|
+
const show_command_1 = require("./show.command");
|
|
5
|
+
exports.projectCommand = {
|
|
6
|
+
command: "project",
|
|
7
|
+
describe: "Project commands",
|
|
8
|
+
builder: (yargs) => yargs.command(show_command_1.showCommand).demandCommand().help(),
|
|
9
|
+
handler: () => {
|
|
10
|
+
// subcommand handles this
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/project/index.ts"],"names":[],"mappings":";;;AACA,iDAA6C;AAEhC,QAAA,cAAc,GAAkB;IAC3C,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,kBAAkB;IAC5B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,0BAAW,CAAC,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE;IACrE,OAAO,EAAE,GAAG,EAAE;QACZ,0BAA0B;IAC5B,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.showCommand = 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
|
+
exports.showCommand = {
|
|
8
|
+
command: "show",
|
|
9
|
+
describe: "Show project linked with current API token",
|
|
10
|
+
builder: {
|
|
11
|
+
apiToken: {
|
|
12
|
+
string: true,
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
handler: (0, sentry_utils_1.wrapHandler)(async ({ apiToken }) => {
|
|
16
|
+
const logger = (0, common_1.initLogger)();
|
|
17
|
+
const client = (0, client_1.createClient)({ apiToken });
|
|
18
|
+
const project = await (0, client_1.getProject)(client);
|
|
19
|
+
if (!project) {
|
|
20
|
+
logger.error("Could not retrieve project data. Is the API token correct?");
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
logger.info(project);
|
|
24
|
+
}),
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=show.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"show.command.js","sourceRoot":"","sources":["../../../src/commands/project/show.command.ts"],"names":[],"mappings":";;;AAAA,qDAAoE;AACpE,qDAAsD;AAEtD,mEAA+D;AAMlD,QAAA,WAAW,GAAoC;IAC1D,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,4CAA4C;IACtD,OAAO,EAAE;QACP,QAAQ,EAAE;YACR,MAAM,EAAE,IAAI;SACb;KACF;IACD,OAAO,EAAE,IAAA,0BAAW,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC1C,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;QACD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC,CAAC;CACH,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.recordCommand = void 0;
|
|
4
|
+
const login_command_1 = require("./login.command");
|
|
5
|
+
const session_command_1 = require("./session.command");
|
|
6
|
+
exports.recordCommand = {
|
|
7
|
+
command: "record",
|
|
8
|
+
describe: "Record commands",
|
|
9
|
+
builder: (yargs) => yargs
|
|
10
|
+
.command(session_command_1.recordSessionCommand)
|
|
11
|
+
.command(login_command_1.recordLoginCommand)
|
|
12
|
+
.demandCommand()
|
|
13
|
+
.help(),
|
|
14
|
+
handler: () => {
|
|
15
|
+
// subcommand handles this
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/record/index.ts"],"names":[],"mappings":";;;AACA,mDAAqD;AACrD,uDAAyD;AAE5C,QAAA,aAAa,GAAkB;IAC1C,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,iBAAiB;IAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,OAAO,CAAC,sCAAoB,CAAC;SAC7B,OAAO,CAAC,kCAAkB,CAAC;SAC3B,aAAa,EAAE;SACf,IAAI,EAAE;IACX,OAAO,EAAE,GAAG,EAAE;QACZ,0BAA0B;IAC5B,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CommandModule } from "yargs";
|
|
2
|
+
interface Options {
|
|
3
|
+
apiToken: string | null | undefined;
|
|
4
|
+
devTools: boolean | null | undefined;
|
|
5
|
+
bypassCSP: boolean | null | undefined;
|
|
6
|
+
width: number | null | undefined;
|
|
7
|
+
height: number | null | undefined;
|
|
8
|
+
uploadIntervalMs: number | null | undefined;
|
|
9
|
+
trace: boolean | null | undefined;
|
|
10
|
+
captureHttpOnlyCookies: boolean;
|
|
11
|
+
appUrl: string | null | undefined;
|
|
12
|
+
}
|
|
13
|
+
export declare const recordLoginCommand: CommandModule<unknown, Options>;
|
|
14
|
+
export {};
|