@alwaysmeticulous/cli 2.94.0 → 2.95.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -84,6 +84,25 @@ export declare const OPTIONS: {
84
84
  readonly default: boolean;
85
85
  readonly hidden: true;
86
86
  };
87
+ readonly width: {
88
+ readonly number: true;
89
+ };
90
+ readonly height: {
91
+ readonly number: true;
92
+ };
93
+ readonly uploadIntervalMs: {
94
+ readonly number: true;
95
+ readonly description: "Meticulous recording upload interval (in milliseconds)";
96
+ };
97
+ readonly trace: {
98
+ readonly boolean: true;
99
+ readonly description: "Enable verbose logging";
100
+ };
101
+ readonly captureHttpOnlyCookies: {
102
+ readonly boolean: true;
103
+ readonly default: true;
104
+ readonly description: "Capture http-only cookies in addition to regular cookies";
105
+ };
87
106
  };
88
107
  export declare const SCREENSHOT_DIFF_OPTIONS: {
89
108
  diffThreshold: {
@@ -166,3 +185,40 @@ export declare const COMMON_REPLAY_OPTIONS: {
166
185
  readonly hidden: true;
167
186
  };
168
187
  };
188
+ /**
189
+ * Options shared between the `record` and `record-login` commands.
190
+ */
191
+ export declare const COMMON_RECORD_OPTIONS: {
192
+ apiToken: {
193
+ readonly string: true;
194
+ };
195
+ devTools: {
196
+ readonly boolean: true;
197
+ readonly description: "Open Chrome Dev Tools";
198
+ readonly default: boolean;
199
+ };
200
+ bypassCSP: {
201
+ readonly boolean: true;
202
+ readonly description: "Enables bypass CSP in the browser (danger: this could mean you tests hit your production backend)";
203
+ readonly default: boolean;
204
+ };
205
+ width: {
206
+ readonly number: true;
207
+ };
208
+ height: {
209
+ readonly number: true;
210
+ };
211
+ uploadIntervalMs: {
212
+ readonly number: true;
213
+ readonly description: "Meticulous recording upload interval (in milliseconds)";
214
+ };
215
+ trace: {
216
+ readonly boolean: true;
217
+ readonly description: "Enable verbose logging";
218
+ };
219
+ captureHttpOnlyCookies: {
220
+ readonly boolean: true;
221
+ readonly default: true;
222
+ readonly description: "Capture http-only cookies in addition to regular cookies";
223
+ };
224
+ };
@@ -10,7 +10,7 @@
10
10
  //
11
11
  // This then makes the difference in behaviour explicit
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.COMMON_REPLAY_OPTIONS = exports.SCREENSHOT_DIFF_OPTIONS = exports.OPTIONS = void 0;
13
+ exports.COMMON_RECORD_OPTIONS = exports.COMMON_REPLAY_OPTIONS = exports.SCREENSHOT_DIFF_OPTIONS = exports.OPTIONS = void 0;
14
14
  const common_1 = require("@alwaysmeticulous/common");
15
15
  exports.OPTIONS = {
16
16
  apiToken: {
@@ -100,6 +100,25 @@ exports.OPTIONS = {
100
100
  default: common_1.DEFAULT_EXECUTION_OPTIONS.logPossibleNonDeterminism,
101
101
  hidden: true,
102
102
  },
103
+ width: {
104
+ number: true,
105
+ },
106
+ height: {
107
+ number: true,
108
+ },
109
+ uploadIntervalMs: {
110
+ number: true,
111
+ description: "Meticulous recording upload interval (in milliseconds)",
112
+ },
113
+ trace: {
114
+ boolean: true,
115
+ description: "Enable verbose logging",
116
+ },
117
+ captureHttpOnlyCookies: {
118
+ boolean: true,
119
+ default: true,
120
+ description: "Capture http-only cookies in addition to regular cookies",
121
+ },
103
122
  };
104
123
  exports.SCREENSHOT_DIFF_OPTIONS = {
105
124
  diffThreshold: exports.OPTIONS.diffThreshold,
@@ -123,4 +142,17 @@ exports.COMMON_REPLAY_OPTIONS = {
123
142
  essentialFeaturesOnly: exports.OPTIONS.essentialFeaturesOnly,
124
143
  logPossibleNonDeterminism: exports.OPTIONS.logPossibleNonDeterminism,
125
144
  };
145
+ /**
146
+ * Options shared between the `record` and `record-login` commands.
147
+ */
148
+ exports.COMMON_RECORD_OPTIONS = {
149
+ apiToken: exports.OPTIONS.apiToken,
150
+ devTools: exports.OPTIONS.devTools,
151
+ bypassCSP: exports.OPTIONS.bypassCSP,
152
+ width: exports.OPTIONS.width,
153
+ height: exports.OPTIONS.height,
154
+ uploadIntervalMs: exports.OPTIONS.uploadIntervalMs,
155
+ trace: exports.OPTIONS.trace,
156
+ captureHttpOnlyCookies: exports.OPTIONS.captureHttpOnlyCookies,
157
+ };
126
158
  //# sourceMappingURL=common-options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common-options.js","sourceRoot":"","sources":["../../src/command-utils/common-options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common-options.js","sourceRoot":"","sources":["../../src/command-utils/common-options.ts"],"names":[],"mappings":"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"}
@@ -10,47 +10,47 @@ export interface RecordCommandHandlerOptions {
10
10
  incognito: boolean | null | undefined;
11
11
  trace: boolean | null | undefined;
12
12
  captureHttpOnlyCookies: boolean;
13
- onDetectedSession?: (sessionId: string) => void;
14
13
  }
15
14
  export declare const recordCommandHandler: (options: RecordCommandHandlerOptions) => Promise<void>;
16
15
  export declare const recordCommand: import("yargs").CommandModule<unknown, import("yargs").InferredOptionTypes<{
17
- apiToken: {
18
- string: true;
19
- demandOption: false;
20
- };
21
16
  commitSha: {
22
- string: true;
17
+ readonly string: true;
23
18
  };
24
- devTools: {
19
+ incognito: {
25
20
  boolean: true;
26
21
  description: string;
22
+ default: boolean;
23
+ };
24
+ apiToken: {
25
+ readonly string: true;
26
+ };
27
+ devTools: {
28
+ readonly boolean: true;
29
+ readonly description: "Open Chrome Dev Tools";
30
+ readonly default: boolean;
27
31
  };
28
32
  bypassCSP: {
29
- boolean: true;
30
- description: string;
33
+ readonly boolean: true;
34
+ readonly description: "Enables bypass CSP in the browser (danger: this could mean you tests hit your production backend)";
35
+ readonly default: boolean;
31
36
  };
32
37
  width: {
33
- number: true;
38
+ readonly number: true;
34
39
  };
35
40
  height: {
36
- number: true;
41
+ readonly number: true;
37
42
  };
38
43
  uploadIntervalMs: {
39
- number: true;
40
- description: string;
41
- };
42
- incognito: {
43
- boolean: true;
44
- description: string;
45
- default: boolean;
44
+ readonly number: true;
45
+ readonly description: "Meticulous recording upload interval (in milliseconds)";
46
46
  };
47
47
  trace: {
48
- boolean: true;
49
- description: string;
48
+ readonly boolean: true;
49
+ readonly description: "Enable verbose logging";
50
50
  };
51
51
  captureHttpOnlyCookies: {
52
- boolean: true;
53
- default: boolean;
54
- description: string;
52
+ readonly boolean: true;
53
+ readonly default: true;
54
+ readonly description: "Capture http-only cookies in addition to regular cookies";
55
55
  };
56
56
  }>>;
@@ -8,9 +8,11 @@ const path_1 = require("path");
8
8
  const client_1 = require("@alwaysmeticulous/client");
9
9
  const common_1 = require("@alwaysmeticulous/common");
10
10
  const downloading_helpers_1 = require("@alwaysmeticulous/downloading-helpers");
11
+ const record_1 = require("@alwaysmeticulous/record");
11
12
  const loglevel_1 = __importDefault(require("loglevel"));
12
13
  const command_builder_1 = require("../../command-utils/command-builder");
13
- const recordCommandHandler = async ({ apiToken, commitSha: commitSha_, devTools, bypassCSP, width, height, uploadIntervalMs, incognito, trace, onDetectedSession: onDetectedSession_, captureHttpOnlyCookies, }) => {
14
+ const common_options_1 = require("../../command-utils/common-options");
15
+ const recordCommandHandler = async ({ apiToken, commitSha: commitSha_, devTools, bypassCSP, width, height, uploadIntervalMs, incognito, trace, captureHttpOnlyCookies, }) => {
14
16
  const logger = loglevel_1.default.getLogger(common_1.METICULOUS_LOGGER_NAME);
15
17
  const debugLogger = trace ? await common_1.DebugLogger.create() : null;
16
18
  debugLogger === null || debugLogger === void 0 ? void 0 : debugLogger.log("Record options:");
@@ -46,27 +48,15 @@ const recordCommandHandler = async ({ apiToken, commitSha: commitSha_, devTools,
46
48
  // 3. Load recording snippets
47
49
  const recordingSnippet = await (0, downloading_helpers_1.fetchAsset)("v1/meticulous.js");
48
50
  const earlyNetworkRecorderSnippet = await (0, downloading_helpers_1.fetchAsset)("record/v1/network-recorder.bundle.js");
49
- // 4. Load recording package
50
- let recordSession;
51
- try {
52
- const record = await require("@alwaysmeticulous/record");
53
- recordSession = record.recordSession;
54
- }
55
- catch (error) {
56
- logger.error("Error: could not import @alwaysmeticulous/record");
57
- logger.error(error);
58
- debugLogger === null || debugLogger === void 0 ? void 0 : debugLogger.log("Error: could not import @alwaysmeticulous/record");
59
- debugLogger === null || debugLogger === void 0 ? void 0 : debugLogger.log(`${error}`);
60
- process.exit(1);
61
- }
62
51
  const cookieDir = (0, path_1.join)((0, common_1.getMeticulousLocalDataDir)(), "cookies");
63
52
  // Report recording start
64
53
  const recordingCommandId = await (0, client_1.getRecordingCommandId)(client);
65
54
  // 5. Start recording
66
55
  const onDetectedSession = (sessionId) => {
67
- if (onDetectedSession_) {
68
- onDetectedSession_(sessionId);
69
- }
56
+ const organizationName = encodeURIComponent(project.organization.name);
57
+ const projectName = encodeURIComponent(project.name);
58
+ const sessionUrl = `https://app.meticulous.ai/projects/${organizationName}/${projectName}/sessions/${sessionId}`;
59
+ logger.info(`Recording session: ${sessionUrl}`);
70
60
  (0, client_1.postSessionIdNotification)(client, sessionId, recordingCommandId).catch((error) => {
71
61
  logger.error(`Warning: error while notifying session recording ${sessionId}`);
72
62
  logger.error(error);
@@ -74,9 +64,7 @@ const recordCommandHandler = async ({ apiToken, commitSha: commitSha_, devTools,
74
64
  debugLogger === null || debugLogger === void 0 ? void 0 : debugLogger.log(`${error}`);
75
65
  });
76
66
  };
77
- await recordSession({
78
- browser: null,
79
- project,
67
+ await (0, record_1.recordSession)({
80
68
  recordingToken,
81
69
  appCommitHash: commitSha,
82
70
  devTools,
@@ -102,45 +90,13 @@ exports.recordCommand = (0, command_builder_1.buildCommand)("record")
102
90
  describe: "Record a session",
103
91
  })
104
92
  .options({
105
- apiToken: {
106
- string: true,
107
- demandOption: false,
108
- },
109
- commitSha: {
110
- string: true,
111
- },
112
- devTools: {
113
- boolean: true,
114
- description: "Open Chrome Dev Tools",
115
- },
116
- bypassCSP: {
117
- boolean: true,
118
- description: "Enables bypass CSP in the browser",
119
- },
120
- width: {
121
- number: true,
122
- },
123
- height: {
124
- number: true,
125
- },
126
- uploadIntervalMs: {
127
- number: true,
128
- description: "Meticulous recording upload interval (in milliseconds)",
129
- },
93
+ ...common_options_1.COMMON_RECORD_OPTIONS,
94
+ commitSha: common_options_1.OPTIONS.commitSha,
130
95
  incognito: {
131
96
  boolean: true,
132
97
  description: "Use an incognito browsing context",
133
98
  default: true,
134
99
  },
135
- trace: {
136
- boolean: true,
137
- description: "Enable verbose logging",
138
- },
139
- captureHttpOnlyCookies: {
140
- boolean: true,
141
- default: true,
142
- description: "Capture http-only cookies in addition to regular cookies",
143
- },
144
100
  })
145
101
  .handler(exports.recordCommandHandler);
146
102
  //# sourceMappingURL=record.command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"record.command.js","sourceRoot":"","sources":["../../../src/commands/record/record.command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record.command.js","sourceRoot":"","sources":["../../../src/commands/record/record.command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /// <reference types="yargs" />
2
+ export interface RecordCommandHandlerOptions {
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
+ }
12
+ export declare const recordLoginFlowCommandHandler: (options: RecordCommandHandlerOptions) => Promise<void>;
13
+ export declare const recordLoginFlowCommand: import("yargs").CommandModule<unknown, import("yargs").InferredOptionTypes<{
14
+ apiToken: {
15
+ readonly string: true;
16
+ };
17
+ devTools: {
18
+ readonly boolean: true;
19
+ readonly description: "Open Chrome Dev Tools";
20
+ readonly default: boolean;
21
+ };
22
+ bypassCSP: {
23
+ readonly boolean: true;
24
+ readonly description: "Enables bypass CSP in the browser (danger: this could mean you tests hit your production backend)";
25
+ readonly default: boolean;
26
+ };
27
+ width: {
28
+ readonly number: true;
29
+ };
30
+ height: {
31
+ readonly number: true;
32
+ };
33
+ uploadIntervalMs: {
34
+ readonly number: true;
35
+ readonly description: "Meticulous recording upload interval (in milliseconds)";
36
+ };
37
+ trace: {
38
+ readonly boolean: true;
39
+ readonly description: "Enable verbose logging";
40
+ };
41
+ captureHttpOnlyCookies: {
42
+ readonly boolean: true;
43
+ readonly default: true;
44
+ readonly description: "Capture http-only cookies in addition to regular cookies";
45
+ };
46
+ }>>;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.recordLoginFlowCommand = exports.recordLoginFlowCommandHandler = void 0;
7
+ const client_1 = require("@alwaysmeticulous/client");
8
+ const common_1 = require("@alwaysmeticulous/common");
9
+ const downloading_helpers_1 = require("@alwaysmeticulous/downloading-helpers");
10
+ const record_1 = require("@alwaysmeticulous/record");
11
+ const loglevel_1 = __importDefault(require("loglevel"));
12
+ const command_builder_1 = require("../../command-utils/command-builder");
13
+ const common_options_1 = require("../../command-utils/common-options");
14
+ const recordLoginFlowCommandHandler = async ({ apiToken, devTools, bypassCSP, width, height, uploadIntervalMs, trace, captureHttpOnlyCookies, }) => {
15
+ const logger = loglevel_1.default.getLogger(common_1.METICULOUS_LOGGER_NAME);
16
+ const debugLogger = trace ? await common_1.DebugLogger.create() : null;
17
+ debugLogger === null || debugLogger === void 0 ? void 0 : debugLogger.log("Record options:");
18
+ debugLogger === null || debugLogger === void 0 ? void 0 : debugLogger.logObject({
19
+ apiToken,
20
+ devTools,
21
+ width,
22
+ height,
23
+ uploadIntervalMs,
24
+ trace,
25
+ });
26
+ // 1. Fetch the recording token
27
+ const client = (0, client_1.createClient)({ apiToken });
28
+ const project = await (0, client_1.getProject)(client);
29
+ if (!project) {
30
+ logger.error("Could not retrieve project data. Is the API token correct?");
31
+ debugLogger === null || debugLogger === void 0 ? void 0 : debugLogger.log("Could not retrieve project data. Is the API token correct?");
32
+ process.exit(1);
33
+ }
34
+ const recordingToken = project.recordingToken;
35
+ if (!recordingToken) {
36
+ logger.error("Could not retrieve recording token.");
37
+ debugLogger === null || debugLogger === void 0 ? void 0 : debugLogger.log("Could not retrieve recording token.");
38
+ process.exit(1);
39
+ }
40
+ logger.debug(`Recording token: ${recordingToken}`);
41
+ // 3. Load recording snippets
42
+ const recordingSnippet = await (0, downloading_helpers_1.fetchAsset)("v1/meticulous.js");
43
+ const earlyNetworkRecorderSnippet = await (0, downloading_helpers_1.fetchAsset)("record/v1/network-recorder.bundle.js");
44
+ // 4. Start recording
45
+ await (0, record_1.recordLoginFlowSession)({
46
+ recordingToken,
47
+ devTools,
48
+ bypassCSP,
49
+ recordingSnippet,
50
+ earlyNetworkRecorderSnippet,
51
+ width,
52
+ height,
53
+ uploadIntervalMs,
54
+ captureHttpOnlyCookies,
55
+ }).catch((error) => {
56
+ throw error;
57
+ });
58
+ };
59
+ exports.recordLoginFlowCommandHandler = recordLoginFlowCommandHandler;
60
+ exports.recordLoginFlowCommand = (0, command_builder_1.buildCommand)("record-login")
61
+ .details({
62
+ describe: "Record a login flow session",
63
+ })
64
+ .options(common_options_1.COMMON_RECORD_OPTIONS)
65
+ .handler(exports.recordLoginFlowCommandHandler);
66
+ //# sourceMappingURL=record-login-flow.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-login-flow.command.js","sourceRoot":"","sources":["../../../src/commands/record-login-flow/record-login-flow.command.ts"],"names":[],"mappings":";;;;;;AAAA,qDAAoE;AACpE,qDAA+E;AAC/E,+EAAmE;AACnE,qDAAkE;AAClE,wDAA2B;AAC3B,yEAAmE;AACnE,uEAA2E;AAapE,MAAM,6BAA6B,GAErB,KAAK,EAAE,EAC1B,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,KAAK,EACL,MAAM,EACN,gBAAgB,EAChB,KAAK,EACL,sBAAsB,GACvB,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,kBAAG,CAAC,SAAS,CAAC,+BAAsB,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,oBAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACpC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,SAAS,CAAC;QACrB,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,MAAM;QACN,gBAAgB;QAChB,KAAK;KACN,CAAC,CAAC;IAEH,+BAA+B;IAC/B,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC;IACzC,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC3E,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,GAAG,CACd,4DAA4D,CAC7D,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAC9C,IAAI,CAAC,cAAc,EAAE;QACnB,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACpD,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IACD,MAAM,CAAC,KAAK,CAAC,oBAAoB,cAAc,EAAE,CAAC,CAAC;IAEnD,6BAA6B;IAC7B,MAAM,gBAAgB,GAAG,MAAM,IAAA,gCAAU,EAAC,kBAAkB,CAAC,CAAC;IAC9D,MAAM,2BAA2B,GAAG,MAAM,IAAA,gCAAU,EAClD,sCAAsC,CACvC,CAAC;IAEF,qBAAqB;IACrB,MAAM,IAAA,+BAAsB,EAAC;QAC3B,cAAc;QACd,QAAQ;QACR,SAAS;QACT,gBAAgB;QAChB,2BAA2B;QAC3B,KAAK;QACL,MAAM;QACN,gBAAgB;QAChB,sBAAsB;KACvB,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACjB,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AA/DW,QAAA,6BAA6B,iCA+DxC;AAEW,QAAA,sBAAsB,GAAG,IAAA,8BAAY,EAAC,cAAc,CAAC;KAC/D,OAAO,CAAC;IACP,QAAQ,EAAE,6BAA6B;CACxC,CAAC;KACD,OAAO,CAAC,sCAAqB,CAAC;KAC9B,OAAO,CAAC,qCAA6B,CAAC,CAAC"}
package/dist/main.js CHANGED
@@ -11,6 +11,7 @@ const yargs_1 = __importDefault(require("yargs"));
11
11
  const download_replay_command_1 = require("./commands/download-replay/download-replay.command");
12
12
  const download_session_command_1 = require("./commands/download-session/download-session.command");
13
13
  const record_command_1 = require("./commands/record/record.command");
14
+ const record_login_flow_command_1 = require("./commands/record-login-flow/record-login-flow.command");
14
15
  const replay_command_1 = require("./commands/replay/replay.command");
15
16
  const run_all_tests_command_1 = require("./commands/run-all-tests/run-all-tests.command");
16
17
  const show_project_command_1 = require("./commands/show-project/show-project.command");
@@ -32,6 +33,7 @@ const main = async () => {
32
33
  .command(download_replay_command_1.downloadReplayCommand)
33
34
  .command(download_session_command_1.downloadSessionCommand)
34
35
  .command(record_command_1.recordCommand)
36
+ .command(record_login_flow_command_1.recordLoginFlowCommand)
35
37
  .command(replay_command_1.replayCommand)
36
38
  .command(run_all_tests_command_1.runAllTestsCommand)
37
39
  .command(show_project_command_1.showProjectCommand)
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;;;;AAAA,+BAAuC;AACvC,qDAGkC;AAClC,qDAAsD;AACtD,kDAA0B;AAC1B,gGAA2F;AAC3F,mGAA8F;AAC9F,qEAAiE;AACjE,qEAAiE;AACjE,0FAAoF;AACpF,uFAAkF;AAClF,uDAA+D;AAC/D,uDAAkD;AAElD,MAAM,aAAa,GAAiD,CAClE,OAAO,EACP,EAAE;IACF,IAAA,kCAAyB,EAAC,OAAO,CAAC,CAAC;AACrC,CAAC,CAAC;AAEK,MAAM,IAAI,GAAe,KAAK,IAAI,EAAE;IACzC,IAAA,yBAAU,GAAE,CAAC;IACb,MAAM,eAAe,GAAG,IAAA,gBAAS,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACtE,MAAM,iBAAiB,GAAG,MAAM,IAAA,6BAAoB,EAAC,eAAe,CAAC,CAAC;IACtE,MAAM,IAAA,mBAAU,EAAC,iBAAiB,CAAC,CAAC;IAEpC,eAAK;SACF,UAAU,CAAC,YAAY,CAAC;SACxB,KAAK,CACJ;;qBAEe,CAChB;SACA,OAAO,CAAC,+CAAqB,CAAC;SAC9B,OAAO,CAAC,iDAAsB,CAAC;SAC/B,OAAO,CAAC,8BAAa,CAAC;SACtB,OAAO,CAAC,8BAAa,CAAC;SACtB,OAAO,CAAC,0CAAkB,CAAC;SAC3B,OAAO,CAAC,yCAAkB,CAAC;SAC3B,IAAI,EAAE;SACN,MAAM,EAAE;SACR,aAAa,EAAE;SACf,MAAM,CAAC;QACN,QAAQ,EAAE;YACR,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;YAC9D,WAAW,EAAE,WAAW;SACzB;QACD,OAAO,EAAE;YACP,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,wDAAwD;SACtE;KACF,CAAC;SACD,UAAU,CAAC;QACV,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,0BAAW,EAAC,IAAI,CAAC,QAAQ,CAAC;QACpC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;QACrC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,yBAAU,EAAC,IAAI,CAAC;KAC3B,CAAC,CAAC,IAAI,CAAC;AACZ,CAAC,CAAC;AArCW,QAAA,IAAI,QAqCf;AAEF,IAAA,YAAI,GAAE,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;;;;AAAA,+BAAuC;AACvC,qDAGkC;AAClC,qDAAsD;AACtD,kDAA0B;AAC1B,gGAA2F;AAC3F,mGAA8F;AAC9F,qEAAiE;AACjE,sGAAgG;AAChG,qEAAiE;AACjE,0FAAoF;AACpF,uFAAkF;AAClF,uDAA+D;AAC/D,uDAAkD;AAElD,MAAM,aAAa,GAAiD,CAClE,OAAO,EACP,EAAE;IACF,IAAA,kCAAyB,EAAC,OAAO,CAAC,CAAC;AACrC,CAAC,CAAC;AAEK,MAAM,IAAI,GAAe,KAAK,IAAI,EAAE;IACzC,IAAA,yBAAU,GAAE,CAAC;IACb,MAAM,eAAe,GAAG,IAAA,gBAAS,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACtE,MAAM,iBAAiB,GAAG,MAAM,IAAA,6BAAoB,EAAC,eAAe,CAAC,CAAC;IACtE,MAAM,IAAA,mBAAU,EAAC,iBAAiB,CAAC,CAAC;IAEpC,eAAK;SACF,UAAU,CAAC,YAAY,CAAC;SACxB,KAAK,CACJ;;qBAEe,CAChB;SACA,OAAO,CAAC,+CAAqB,CAAC;SAC9B,OAAO,CAAC,iDAAsB,CAAC;SAC/B,OAAO,CAAC,8BAAa,CAAC;SACtB,OAAO,CAAC,kDAAsB,CAAC;SAC/B,OAAO,CAAC,8BAAa,CAAC;SACtB,OAAO,CAAC,0CAAkB,CAAC;SAC3B,OAAO,CAAC,yCAAkB,CAAC;SAC3B,IAAI,EAAE;SACN,MAAM,EAAE;SACR,aAAa,EAAE;SACf,MAAM,CAAC;QACN,QAAQ,EAAE;YACR,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;YAC9D,WAAW,EAAE,WAAW;SACzB;QACD,OAAO,EAAE;YACP,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,wDAAwD;SACtE;KACF,CAAC;SACD,UAAU,CAAC;QACV,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,0BAAW,EAAC,IAAI,CAAC,QAAQ,CAAC;QACpC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;QACrC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,yBAAU,EAAC,IAAI,CAAC;KAC3B,CAAC,CAAC,IAAI,CAAC;AACZ,CAAC,CAAC;AAtCW,QAAA,IAAI,QAsCf;AAEF,IAAA,YAAI,GAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alwaysmeticulous/cli",
3
- "version": "2.94.0",
3
+ "version": "2.95.0",
4
4
  "description": "The Meticulous CLI",
5
5
  "license": "ISC",
6
6
  "main": "dist/index.js",
@@ -30,12 +30,12 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@alwaysmeticulous/api": "^2.92.0",
33
- "@alwaysmeticulous/client": "^2.92.0",
34
- "@alwaysmeticulous/common": "^2.92.0",
35
- "@alwaysmeticulous/downloading-helpers": "^2.92.0",
36
- "@alwaysmeticulous/record": "^2.94.0",
33
+ "@alwaysmeticulous/client": "^2.95.0",
34
+ "@alwaysmeticulous/common": "^2.95.0",
35
+ "@alwaysmeticulous/downloading-helpers": "^2.95.0",
36
+ "@alwaysmeticulous/record": "^2.95.0",
37
37
  "@alwaysmeticulous/replay-debugger-ui": "^2.46.0",
38
- "@alwaysmeticulous/replay-orchestrator-launcher": "^2.92.0",
38
+ "@alwaysmeticulous/replay-orchestrator-launcher": "^2.95.0",
39
39
  "@alwaysmeticulous/sdk-bundles-api": "^2.92.0",
40
40
  "@alwaysmeticulous/sentry": "^2.72.0",
41
41
  "@sentry/node": "^7.36.0",
@@ -80,5 +80,5 @@
80
80
  "coverageDirectory": "../coverage",
81
81
  "testEnvironment": "node"
82
82
  },
83
- "gitHead": "4533909b62055176163b30bf29c5f81195593fa7"
83
+ "gitHead": "3f3b227e5c9ba524d06b75719d65150728db558a"
84
84
  }