@alwaysmeticulous/cli 2.309.0 → 2.312.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.
Files changed (99) hide show
  1. package/dist/command-utils/__tests__/parse-rewrites.spec.d.ts +2 -0
  2. package/dist/command-utils/__tests__/parse-rewrites.spec.d.ts.map +1 -0
  3. package/dist/command-utils/__tests__/parse-rewrites.spec.js +31 -0
  4. package/dist/command-utils/__tests__/parse-rewrites.spec.js.map +1 -0
  5. package/dist/command-utils/__tests__/warn-regex-rewrites.spec.d.ts +2 -0
  6. package/dist/command-utils/__tests__/warn-regex-rewrites.spec.d.ts.map +1 -0
  7. package/dist/command-utils/__tests__/warn-regex-rewrites.spec.js +140 -0
  8. package/dist/command-utils/__tests__/warn-regex-rewrites.spec.js.map +1 -0
  9. package/dist/command-utils/parse-rewrites.d.ts.map +1 -1
  10. package/dist/command-utils/parse-rewrites.js +6 -3
  11. package/dist/command-utils/parse-rewrites.js.map +1 -1
  12. package/dist/command-utils/warn-regex-rewrites.d.ts +3 -0
  13. package/dist/command-utils/warn-regex-rewrites.d.ts.map +1 -0
  14. package/dist/command-utils/warn-regex-rewrites.js +50 -0
  15. package/dist/command-utils/warn-regex-rewrites.js.map +1 -0
  16. package/dist/commands/agent/coverage-columns.util.d.ts +14 -0
  17. package/dist/commands/agent/coverage-columns.util.d.ts.map +1 -0
  18. package/dist/commands/agent/coverage-columns.util.js +85 -0
  19. package/dist/commands/agent/coverage-columns.util.js.map +1 -0
  20. package/dist/commands/agent/index.d.ts.map +1 -1
  21. package/dist/commands/agent/index.js +7 -5
  22. package/dist/commands/agent/index.js.map +1 -1
  23. package/dist/commands/agent/js-coverage-diff.command.d.ts +0 -1
  24. package/dist/commands/agent/js-coverage-diff.command.d.ts.map +1 -1
  25. package/dist/commands/agent/js-coverage-diff.command.js +9 -16
  26. package/dist/commands/agent/js-coverage-diff.command.js.map +1 -1
  27. package/dist/commands/agent/js-coverage.command.d.ts +12 -11
  28. package/dist/commands/agent/js-coverage.command.d.ts.map +1 -1
  29. package/dist/commands/agent/js-coverage.command.js +113 -126
  30. package/dist/commands/agent/js-coverage.command.js.map +1 -1
  31. package/dist/commands/agent/js-coverage.command.spec.js +92 -2
  32. package/dist/commands/agent/js-coverage.command.spec.js.map +1 -1
  33. package/dist/commands/agent/screenshot-dom-diff.command.d.ts +0 -1
  34. package/dist/commands/agent/screenshot-dom-diff.command.d.ts.map +1 -1
  35. package/dist/commands/agent/screenshot-dom-diff.command.js +12 -26
  36. package/dist/commands/agent/screenshot-dom-diff.command.js.map +1 -1
  37. package/dist/commands/agent/screenshot-image-files.command.d.ts.map +1 -1
  38. package/dist/commands/agent/screenshot-image-files.command.js +8 -11
  39. package/dist/commands/agent/screenshot-image-files.command.js.map +1 -1
  40. package/dist/commands/agent/screenshot-image.command.d.ts.map +1 -1
  41. package/dist/commands/agent/screenshot-image.command.js +10 -13
  42. package/dist/commands/agent/screenshot-image.command.js.map +1 -1
  43. package/dist/commands/agent/sessions.command.d.ts +20 -0
  44. package/dist/commands/agent/sessions.command.d.ts.map +1 -0
  45. package/dist/commands/agent/sessions.command.js +173 -0
  46. package/dist/commands/agent/sessions.command.js.map +1 -0
  47. package/dist/commands/agent/sessions.command.spec.d.ts +2 -0
  48. package/dist/commands/agent/sessions.command.spec.d.ts.map +1 -0
  49. package/dist/commands/agent/sessions.command.spec.js +215 -0
  50. package/dist/commands/agent/sessions.command.spec.js.map +1 -0
  51. package/dist/commands/agent/test-run-diffs.command.d.ts.map +1 -1
  52. package/dist/commands/agent/test-run-diffs.command.js +27 -28
  53. package/dist/commands/agent/test-run-diffs.command.js.map +1 -1
  54. package/dist/commands/agent/test-run-diffs.command.spec.js +8 -8
  55. package/dist/commands/agent/test-run-diffs.command.spec.js.map +1 -1
  56. package/dist/commands/agent/test-run-diffs.utils.d.ts +5 -10
  57. package/dist/commands/agent/test-run-diffs.utils.d.ts.map +1 -1
  58. package/dist/commands/agent/test-run-diffs.utils.js +31 -45
  59. package/dist/commands/agent/test-run-diffs.utils.js.map +1 -1
  60. package/dist/commands/agent/test-run-diffs.utils.spec.js +37 -100
  61. package/dist/commands/agent/test-run-diffs.utils.spec.js.map +1 -1
  62. package/dist/commands/agent/test-run-for-commit.command.js +9 -9
  63. package/dist/commands/agent/test-run-for-commit.command.js.map +1 -1
  64. package/dist/commands/agent/timeline.command.d.ts.map +1 -1
  65. package/dist/commands/agent/timeline.command.js +8 -12
  66. package/dist/commands/agent/timeline.command.js.map +1 -1
  67. package/dist/commands/agent/timeline.command.spec.js +9 -9
  68. package/dist/commands/agent/timeline.command.spec.js.map +1 -1
  69. package/dist/commands/agent/trigger-test-run.command.d.ts +20 -0
  70. package/dist/commands/agent/trigger-test-run.command.d.ts.map +1 -1
  71. package/dist/commands/agent/trigger-test-run.command.js +55 -6
  72. package/dist/commands/agent/trigger-test-run.command.js.map +1 -1
  73. package/dist/commands/agent/trigger-test-run.command.spec.js +57 -2
  74. package/dist/commands/agent/trigger-test-run.command.spec.js.map +1 -1
  75. package/dist/commands/auth/__tests__/login.command.spec.js +29 -5
  76. package/dist/commands/auth/__tests__/login.command.spec.js.map +1 -1
  77. package/dist/commands/auth/login.command.d.ts +1 -0
  78. package/dist/commands/auth/login.command.d.ts.map +1 -1
  79. package/dist/commands/auth/login.command.js +31 -18
  80. package/dist/commands/auth/login.command.js.map +1 -1
  81. package/dist/commands/ci/generate-sessions.command.d.ts +16 -0
  82. package/dist/commands/ci/generate-sessions.command.d.ts.map +1 -0
  83. package/dist/commands/ci/generate-sessions.command.js +136 -0
  84. package/dist/commands/ci/generate-sessions.command.js.map +1 -0
  85. package/dist/commands/ci/index.d.ts.map +1 -1
  86. package/dist/commands/ci/index.js +4 -2
  87. package/dist/commands/ci/index.js.map +1 -1
  88. package/dist/commands/ci/run-with-uploaded-asset-chunks.command.d.ts.map +1 -1
  89. package/dist/commands/ci/run-with-uploaded-asset-chunks.command.js +27 -22
  90. package/dist/commands/ci/run-with-uploaded-asset-chunks.command.js.map +1 -1
  91. package/dist/commands/ci/run-with-uploaded-asset-chunks.command.spec.d.ts +2 -0
  92. package/dist/commands/ci/run-with-uploaded-asset-chunks.command.spec.d.ts.map +1 -0
  93. package/dist/commands/ci/run-with-uploaded-asset-chunks.command.spec.js +37 -0
  94. package/dist/commands/ci/run-with-uploaded-asset-chunks.command.spec.js.map +1 -0
  95. package/dist/commands/ci/run-with-uploaded-asset-chunks.utils.d.ts +8 -0
  96. package/dist/commands/ci/run-with-uploaded-asset-chunks.utils.d.ts.map +1 -0
  97. package/dist/commands/ci/run-with-uploaded-asset-chunks.utils.js +57 -0
  98. package/dist/commands/ci/run-with-uploaded-asset-chunks.utils.js.map +1 -0
  99. package/package.json +13 -13
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="0473b0a6-8b2f-58e8-9384-26e7768a1d0a")}catch(e){}}();
3
+
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }) : (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ o[k2] = m[k];
14
+ }));
15
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
17
+ }) : function(o, v) {
18
+ o["default"] = v;
19
+ });
20
+ var __importStar = (this && this.__importStar) || (function () {
21
+ var ownKeys = function(o) {
22
+ ownKeys = Object.getOwnPropertyNames || function (o) {
23
+ var ar = [];
24
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
25
+ return ar;
26
+ };
27
+ return ownKeys(o);
28
+ };
29
+ return function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ })();
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.ciGenerateSessionsCommand = void 0;
39
+ const client_1 = require("@alwaysmeticulous/client");
40
+ const common_1 = require("@alwaysmeticulous/common");
41
+ const remote_replay_launcher_1 = require("@alwaysmeticulous/remote-replay-launcher");
42
+ const Sentry = __importStar(require("@sentry/node"));
43
+ const common_options_1 = require("../../command-utils/common-options");
44
+ const sentry_utils_1 = require("../../command-utils/sentry.utils");
45
+ const out_of_date_client_error_1 = require("../../utils/out-of-date-client-error");
46
+ const resolve_project_identifier_1 = require("../../utils/resolve-project-identifier");
47
+ const resolve_git_options_1 = require("./resolve-git-options");
48
+ const handler = async ({ apiToken, commitSha: commitSha_, repoDirectory, localImageTag, instructionsFile, containerPort, containerEnv, containerHealthCheckEndpoint, dryRun, }) => {
49
+ const logger = (0, common_1.initLogger)();
50
+ const { commitSha } = await (0, resolve_git_options_1.resolveGitOptions)({
51
+ commitSha: commitSha_,
52
+ baseSha: undefined,
53
+ gitDiffOutput: undefined,
54
+ repoDirectory,
55
+ });
56
+ logger.info(`Generating sessions with image ${localImageTag} for commit ${commitSha}`);
57
+ if (dryRun) {
58
+ logger.info(`Dry run: would push container image "${localImageTag}" and launch agentic session generation for commit ${commitSha}`);
59
+ return;
60
+ }
61
+ Sentry.captureMessage("Received generate sessions request", {
62
+ level: "debug",
63
+ extra: { commitSha, localImageTag },
64
+ });
65
+ const apiToken_ = await (0, client_1.resolveApiTokenWithOAuth)({
66
+ apiToken,
67
+ enableOAuthLogin: true,
68
+ });
69
+ const projectIdentifier = await (0, resolve_project_identifier_1.resolveProjectIdentifier)(apiToken_);
70
+ try {
71
+ await (0, remote_replay_launcher_1.generateSessions)({
72
+ apiToken: apiToken_,
73
+ localImageTag,
74
+ commitSha,
75
+ ...(instructionsFile ? { instructionsFile } : {}),
76
+ containerPort,
77
+ containerEnv,
78
+ containerHealthCheckEndpoint,
79
+ ...projectIdentifier,
80
+ });
81
+ }
82
+ catch (error) {
83
+ if ((0, out_of_date_client_error_1.isOutOfDateClientError)(error)) {
84
+ throw new out_of_date_client_error_1.OutOfDateCLIError();
85
+ }
86
+ else {
87
+ throw error;
88
+ }
89
+ }
90
+ };
91
+ exports.ciGenerateSessionsCommand = {
92
+ command: "generate-sessions",
93
+ describe: "Upload a Docker container and an instructions file to Meticulous and " +
94
+ "launch an agent that generates additional sessions to test on the PR",
95
+ builder: {
96
+ apiToken: common_options_1.OPTIONS.apiToken,
97
+ commitSha: common_options_1.OPTIONS.commitSha,
98
+ repoDirectory: {
99
+ string: true,
100
+ description: "The path to a git repository. Automatically infers --commitSha from the repo. " +
101
+ "Cannot be combined with --commitSha.",
102
+ },
103
+ localImageTag: {
104
+ demandOption: true,
105
+ string: true,
106
+ description: "The local Docker image tag of the app under test (e.g., 'myapp:latest' or image SHA)",
107
+ },
108
+ instructionsFile: {
109
+ string: true,
110
+ description: "Path to a markdown file with instructions for the agent (e.g. how to log in, which accounts to use).",
111
+ },
112
+ containerPort: {
113
+ number: true,
114
+ description: "The port to expose the container on.",
115
+ },
116
+ containerEnv: {
117
+ array: true,
118
+ coerce: (value) => value.map((v) => {
119
+ const [name, ...rest] = v.split("=");
120
+ const envValue = rest.join("=");
121
+ if (!name || !envValue) {
122
+ throw new Error(`Invalid environment variable: ${v}`);
123
+ }
124
+ return { name, value: envValue };
125
+ }),
126
+ description: "The environment variables to set in the container.",
127
+ },
128
+ containerHealthCheckEndpoint: {
129
+ string: true,
130
+ description: "The endpoint path to use for health checks on the container (e.g., '/health').",
131
+ },
132
+ },
133
+ handler: (0, sentry_utils_1.wrapHandler)(handler),
134
+ };
135
+ //# sourceMappingURL=generate-sessions.command.js.map
136
+ //# debugId=0473b0a6-8b2f-58e8-9384-26e7768a1d0a
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-sessions.command.js","sources":["../../../src/commands/ci/generate-sessions.command.ts"],"sourceRoot":"","names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,qDAAoE;AACpE,qDAAsD;AACtD,qFAA4E;AAC5E,qDAAuC;AAEvC,uEAA6D;AAC7D,mEAA+D;AAC/D,mFAG8C;AAC9C,uFAAkF;AAClF,+DAA0D;AAc1D,MAAM,OAAO,GAAG,KAAK,EAAE,EACrB,QAAQ,EACR,SAAS,EAAE,UAAU,EACrB,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,4BAA4B,EAC5B,MAAM,GACE,EAAiB,EAAE;IAC3B,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;IAE5B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAA,uCAAiB,EAAC;QAC5C,SAAS,EAAE,UAAU;QACrB,OAAO,EAAE,SAAS;QAClB,aAAa,EAAE,SAAS;QACxB,aAAa;KACd,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CACT,kCAAkC,aAAa,eAAe,SAAS,EAAE,CAC1E,CAAC;IAEF,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CACT,wCAAwC,aAAa,sDAAsD,SAAS,EAAE,CACvH,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,oCAAoC,EAAE;QAC1D,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE;KACpC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,MAAM,IAAA,iCAAwB,EAAC;QAC/C,QAAQ;QACR,gBAAgB,EAAE,IAAI;KACvB,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,MAAM,IAAA,qDAAwB,EAAC,SAAS,CAAC,CAAC;IAEpE,IAAI,CAAC;QACH,MAAM,IAAA,yCAAgB,EAAC;YACrB,QAAQ,EAAE,SAAS;YACnB,aAAa;YACb,SAAS;YACT,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,aAAa;YACb,YAAY;YACZ,4BAA4B;YAC5B,GAAG,iBAAiB;SACrB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,IAAA,iDAAsB,EAAC,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,4CAAiB,EAAE,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,yBAAyB,GAAoC;IACxE,OAAO,EAAE,mBAAmB;IAC5B,QAAQ,EACN,uEAAuE;QACvE,sEAAsE;IACxE,OAAO,EAAE;QACP,QAAQ,EAAE,wBAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,wBAAO,CAAC,SAAS;QAC5B,aAAa,EAAE;YACb,MAAM,EAAE,IAAI;YACZ,WAAW,EACT,gFAAgF;gBAChF,sCAAsC;SACzC;QACD,aAAa,EAAE;YACb,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,IAAI;YACZ,WAAW,EACT,sFAAsF;SACzF;QACD,gBAAgB,EAAE;YAChB,MAAM,EAAE,IAAI;YACZ,WAAW,EACT,sGAAsG;SACzG;QACD,aAAa,EAAE;YACb,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,sCAAsC;SACpD;QACD,YAAY,EAAE;YACZ,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,CAAC,KAAe,EAAE,EAAE,CAC1B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACd,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC;gBACxD,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YACnC,CAAC,CAAC;YACJ,WAAW,EAAE,oDAAoD;SAClE;QACD,4BAA4B,EAAE;YAC5B,MAAM,EAAE,IAAI;YACZ,WAAW,EACT,gFAAgF;SACnF;KACF;IACD,OAAO,EAAE,IAAA,0BAAW,EAAC,OAAO,CAAC;CAC9B,CAAC","debugId":"0473b0a6-8b2f-58e8-9384-26e7768a1d0a"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/ci/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAU3C,eAAO,MAAM,SAAS,EAAE,aAkBvB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/ci/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAW3C,eAAO,MAAM,SAAS,EAAE,aAmBvB,CAAC"}
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="198b11a7-3847-5359-b150-d77b80c86d67")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="5cb4e4ec-5327-58ec-ba43-ce78c99adcb5")}catch(e){}}();
3
3
 
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.ciCommand = void 0;
6
+ const generate_sessions_command_1 = require("./generate-sessions.command");
6
7
  const prepare_command_1 = require("./prepare.command");
7
8
  const run_local_command_1 = require("./run-local.command");
8
9
  const run_with_uploaded_asset_chunks_command_1 = require("./run-with-uploaded-asset-chunks.command");
@@ -23,6 +24,7 @@ exports.ciCommand = {
23
24
  .command(upload_asset_chunk_command_1.ciUploadAssetChunkCommand)
24
25
  .command(run_with_uploaded_asset_chunks_command_1.ciRunWithUploadedAssetChunksCommand)
25
26
  .command(upload_container_command_1.ciUploadContainerCommand)
27
+ .command(generate_sessions_command_1.ciGenerateSessionsCommand)
26
28
  .demandCommand()
27
29
  .help(),
28
30
  handler: () => {
@@ -30,4 +32,4 @@ exports.ciCommand = {
30
32
  },
31
33
  };
32
34
  //# sourceMappingURL=index.js.map
33
- //# debugId=198b11a7-3847-5359-b150-d77b80c86d67
35
+ //# debugId=5cb4e4ec-5327-58ec-ba43-ce78c99adcb5
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/commands/ci/index.ts"],"sourceRoot":"","names":[],"mappings":";;;;;AACA,uDAAqD;AACrD,2DAAwD;AACxD,qGAA+F;AAC/F,+CAA6C;AAC7C,iEAA8D;AAC9D,6EAAyE;AACzE,mEAAgE;AAChE,yEAAsE;AAEzD,QAAA,SAAS,GAAkB;IACtC,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,gBAAgB;IAC1B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,OAAO,CAAC,0BAAY,CAAC;SACrB,OAAO,CAAC,qCAAiB,CAAC;SAC1B,OAAO,CAAC,kCAAgB,CAAC;SACzB,OAAO,CAAC,2CAAoB,CAAC;SAC7B,OAAO,CAAC,6CAAqB,CAAC;SAC9B,OAAO,CAAC,sDAAyB,CAAC;SAClC,OAAO,CAAC,4EAAmC,CAAC;SAC5C,OAAO,CAAC,mDAAwB,CAAC;SACjC,aAAa,EAAE;SACf,IAAI,EAAE;IACX,OAAO,EAAE,GAAG,EAAE;QACZ,0BAA0B;IAC5B,CAAC;CACF,CAAC","debugId":"198b11a7-3847-5359-b150-d77b80c86d67"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/commands/ci/index.ts"],"sourceRoot":"","names":[],"mappings":";;;;;AACA,2EAAwE;AACxE,uDAAqD;AACrD,2DAAwD;AACxD,qGAA+F;AAC/F,+CAA6C;AAC7C,iEAA8D;AAC9D,6EAAyE;AACzE,mEAAgE;AAChE,yEAAsE;AAEzD,QAAA,SAAS,GAAkB;IACtC,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,gBAAgB;IAC1B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,OAAO,CAAC,0BAAY,CAAC;SACrB,OAAO,CAAC,qCAAiB,CAAC;SAC1B,OAAO,CAAC,kCAAgB,CAAC;SACzB,OAAO,CAAC,2CAAoB,CAAC;SAC7B,OAAO,CAAC,6CAAqB,CAAC;SAC9B,OAAO,CAAC,sDAAyB,CAAC;SAClC,OAAO,CAAC,4EAAmC,CAAC;SAC5C,OAAO,CAAC,mDAAwB,CAAC;SACjC,OAAO,CAAC,qDAAyB,CAAC;SAClC,aAAa,EAAE;SACf,IAAI,EAAE;IACX,OAAO,EAAE,GAAG,EAAE;QACZ,0BAA0B;IAC5B,CAAC;CACF,CAAC","debugId":"5cb4e4ec-5327-58ec-ba43-ce78c99adcb5"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-with-uploaded-asset-chunks.command.d.ts","sourceRoot":"","sources":["../../../src/commands/ci/run-with-uploaded-asset-chunks.command.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAiB3C,UAAU,OAAO;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,uBAAuB,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB,wBAAwB,EAAE,OAAO,CAAC;CACnC;AAiND,eAAO,MAAM,mCAAmC,EAAE,aAAa,CAC7D,OAAO,EACP,OAAO,CAgER,CAAC"}
1
+ {"version":3,"file":"run-with-uploaded-asset-chunks.command.d.ts","sourceRoot":"","sources":["../../../src/commands/ci/run-with-uploaded-asset-chunks.command.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAqB3C,UAAU,OAAO;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,uBAAuB,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB,wBAAwB,EAAE,OAAO,CAAC;CACnC;AAiND,eAAO,MAAM,mCAAmC,EAAE,aAAa,CAC7D,OAAO,EACP,OAAO,CAkER,CAAC"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="d1a52cb6-a8df-5dec-8324-5476aec7b011")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="64b4b454-6890-518d-aa76-8ba9ffdbde2d")}catch(e){}}();
3
3
 
4
4
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
5
  if (k2 === undefined) k2 = k;
@@ -47,6 +47,7 @@ const sentry_utils_1 = require("../../command-utils/sentry.utils");
47
47
  const out_of_date_client_error_1 = require("../../utils/out-of-date-client-error");
48
48
  const resolve_project_identifier_1 = require("../../utils/resolve-project-identifier");
49
49
  const resolve_git_options_1 = require("./resolve-git-options");
50
+ const run_with_uploaded_asset_chunks_utils_1 = require("./run-with-uploaded-asset-chunks.utils");
50
51
  const session_filter_utils_1 = require("./session-filter.utils");
51
52
  const POLL_INTERVAL_MS = 10_000;
52
53
  const readAssetReferencesManifest = async (manifestPath) => {
@@ -67,25 +68,12 @@ const readAssetReferencesManifest = async (manifestPath) => {
67
68
  logger.error(`--assetReferencesManifest at ${manifestPath} is not valid JSON: ${error instanceof Error ? error.message : String(error)}`);
68
69
  process.exit(1);
69
70
  }
70
- if (!Array.isArray(parsed)) {
71
- logger.error(`--assetReferencesManifest must be a JSON array of { name, versionId } objects.`);
71
+ const result = (0, run_with_uploaded_asset_chunks_utils_1.validateAssetReferencesManifest)(parsed);
72
+ if ("errorMessage" in result) {
73
+ logger.error(result.errorMessage);
72
74
  process.exit(1);
73
75
  }
74
- if (parsed.length === 0) {
75
- logger.error(`--assetReferencesManifest must not be empty.`);
76
- process.exit(1);
77
- }
78
- const isValid = parsed.every((item) => typeof item === "object" &&
79
- item !== null &&
80
- typeof item.name === "string" &&
81
- typeof item.versionId === "string" &&
82
- item.name.length > 0 &&
83
- item.versionId.length > 0);
84
- if (!isValid) {
85
- logger.error(`--assetReferencesManifest entries must each be { name: string, versionId: string } with non-empty values.`);
86
- process.exit(1);
87
- }
88
- return parsed;
76
+ return result.manifest;
89
77
  };
90
78
  const readSessionFilter = async (sessionFilterPath) => {
91
79
  const logger = (0, common_1.initLogger)();
@@ -117,6 +105,18 @@ const handler = async ({ apiToken, commitSha: commitSha_, baseSha: baseSha_, git
117
105
  return;
118
106
  }
119
107
  const manifest = await readAssetReferencesManifest(manifestPath);
108
+ if ((0, run_with_uploaded_asset_chunks_utils_1.manifestHasVersionLookupEntries)(manifest)) {
109
+ if (!baseSha) {
110
+ logger.info("The manifest contains versionLookup entries and no --baseSha was provided; " +
111
+ "the backend will resolve them against the base test run it selects for this run, " +
112
+ "and the run will fail if it cannot determine a base. " +
113
+ "Pass --baseSha (or --repoDirectory, which infers it) to set the base explicitly.");
114
+ }
115
+ if (!waitForBase && !waitForTestRunToComplete) {
116
+ logger.warn("The manifest contains versionLookup entries, which can only be resolved once a base test run exists. " +
117
+ "--waitForBase=false cannot fall back to running without a base for such manifests; the trigger will fail if the base test run never appears.");
118
+ }
119
+ }
120
120
  // Validated ahead of the trigger so a bad regex fails fast in the CLI
121
121
  // rather than after chunk resolution on the server.
122
122
  const sessionFilter = sessionFilterPath
@@ -150,13 +150,16 @@ const handler = async ({ apiToken, commitSha: commitSha_, baseSha: baseSha_, git
150
150
  ...projectIdentifier,
151
151
  });
152
152
  if (result.overlaps && result.overlaps.length > 0) {
153
- logger.warn(`${result.overlaps.length} file path(s) appear in multiple chunks. Later chunks in the manifest override earlier ones.`);
153
+ logger.warn(`WARNING: ${result.overlaps.length} file path(s) appear in multiple chunks (computed over the fully resolved manifest, ` +
154
+ `including any versionLookup entries resolved to concrete versions). ` +
155
+ `Chunks later in the manifest win: the test run serves the later chunk's copy of each colliding path.`);
154
156
  for (const overlap of result.overlaps) {
155
- logger.warn(` - ${overlap.path}: ${overlap.lowerChunk.name}@${overlap.lowerChunk.versionId} ${overlap.upperChunk.name}@${overlap.upperChunk.versionId}`);
157
+ logger.warn(` - ${overlap.path}: served from ${overlap.upperChunk.name}@${overlap.upperChunk.versionId} (overriding ${overlap.lowerChunk.name}@${overlap.lowerChunk.versionId})`);
156
158
  }
157
159
  if (result.overlapsTruncated) {
158
160
  logger.warn(` ... and more overlapping paths (not shown).`);
159
161
  }
162
+ logger.warn(`If this is unintentional, adjust your chunking scheme so no two chunks produce the same final path.`);
160
163
  }
161
164
  if (!result.testRun) {
162
165
  throw new Error(result.message ?? "Asset chunks resolved but test run not created");
@@ -210,7 +213,9 @@ exports.ciRunWithUploadedAssetChunksCommand = {
210
213
  assetReferencesManifest: {
211
214
  string: true,
212
215
  demandOption: true,
213
- description: "Path to a JSON file containing a list of { name, versionId } references to previously uploaded asset chunks (see `ci upload-asset-chunk`). " +
216
+ description: "Path to a JSON file containing a list of references to previously uploaded asset chunks (see `ci upload-asset-chunk`). " +
217
+ 'Each entry is either { name, versionId } (an explicit chunk version) or { name, versionLookup: "latest-in-history" } ' +
218
+ "(resolves the version of an unchanged chunk from the base test run's history; the base is inferred automatically, or pass --baseSha to override it). " +
214
219
  "Chunked analog of --appDirectory / --appZip on `ci upload-assets`.",
215
220
  },
216
221
  rewrites: {
@@ -243,4 +248,4 @@ exports.ciRunWithUploadedAssetChunksCommand = {
243
248
  handler: (0, sentry_utils_1.wrapHandler)(handler),
244
249
  };
245
250
  //# sourceMappingURL=run-with-uploaded-asset-chunks.command.js.map
246
- //# debugId=d1a52cb6-a8df-5dec-8324-5476aec7b011
251
+ //# debugId=64b4b454-6890-518d-aa76-8ba9ffdbde2d
@@ -1 +1 @@
1
- {"version":3,"file":"run-with-uploaded-asset-chunks.command.js","sources":["../../../src/commands/ci/run-with-uploaded-asset-chunks.command.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"d1a52cb6-a8df-5dec-8324-5476aec7b011"}
1
+ {"version":3,"file":"run-with-uploaded-asset-chunks.command.js","sources":["../../../src/commands/ci/run-with-uploaded-asset-chunks.command.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"64b4b454-6890-518d-aa76-8ba9ffdbde2d"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=run-with-uploaded-asset-chunks.command.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-with-uploaded-asset-chunks.command.spec.d.ts","sourceRoot":"","sources":["../../../src/commands/ci/run-with-uploaded-asset-chunks.command.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="e0feb93f-04cf-5e2f-91cf-d875b276ad54")}catch(e){}}();
3
+
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ const vitest_1 = require("vitest");
6
+ const run_with_uploaded_asset_chunks_utils_1 = require("./run-with-uploaded-asset-chunks.utils");
7
+ (0, vitest_1.describe)("validateAssetReferencesManifest", () => {
8
+ (0, vitest_1.it)("accepts versionLookup entries mixed with concrete entries", () => {
9
+ const result = (0, run_with_uploaded_asset_chunks_utils_1.validateAssetReferencesManifest)([
10
+ { name: "app", versionId: "v1" },
11
+ { name: "vendor", versionLookup: "latest-in-history" },
12
+ ]);
13
+ (0, vitest_1.expect)(result).toEqual({
14
+ manifest: [
15
+ { name: "app", versionId: "v1" },
16
+ { name: "vendor", versionLookup: "latest-in-history" },
17
+ ],
18
+ });
19
+ });
20
+ (0, vitest_1.it)("rejects unknown versionLookup values", () => {
21
+ const result = (0, run_with_uploaded_asset_chunks_utils_1.validateAssetReferencesManifest)([
22
+ { name: "vendor", versionLookup: "unknown-strategy" },
23
+ ]);
24
+ (0, vitest_1.expect)(result).toHaveProperty("errorMessage");
25
+ });
26
+ (0, vitest_1.it)("rejects duplicate chunk names", () => {
27
+ const result = (0, run_with_uploaded_asset_chunks_utils_1.validateAssetReferencesManifest)([
28
+ { name: "app", versionId: "v1" },
29
+ { name: "app", versionId: "v2" },
30
+ ]);
31
+ (0, vitest_1.expect)(result).toMatchObject({
32
+ errorMessage: vitest_1.expect.stringContaining("duplicate chunk names"),
33
+ });
34
+ });
35
+ });
36
+ //# sourceMappingURL=run-with-uploaded-asset-chunks.command.spec.js.map
37
+ //# debugId=e0feb93f-04cf-5e2f-91cf-d875b276ad54
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-with-uploaded-asset-chunks.command.spec.js","sources":["../../../src/commands/ci/run-with-uploaded-asset-chunks.command.spec.ts"],"sourceRoot":"","names":[],"mappings":";;;;AAAA,mCAA8C;AAC9C,iGAAyF;AAEzF,IAAA,iBAAQ,EAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,IAAA,WAAE,EAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,MAAM,GAAG,IAAA,sEAA+B,EAAC;YAC7C,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;YAChC,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,mBAAmB,EAAE;SACvD,CAAC,CAAC;QACH,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;gBAChC,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,mBAAmB,EAAE;aACvD;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,MAAM,GAAG,IAAA,sEAA+B,EAAC;YAC7C,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,kBAAkB,EAAE;SACtD,CAAC,CAAC;QACH,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,MAAM,GAAG,IAAA,sEAA+B,EAAC;YAC7C,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;YAChC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;SACjC,CAAC,CAAC;QACH,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YAC3B,YAAY,EAAE,eAAM,CAAC,gBAAgB,CAAC,uBAAuB,CAAC;SAC/D,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","debugId":"e0feb93f-04cf-5e2f-91cf-d875b276ad54"}
@@ -0,0 +1,8 @@
1
+ import type { RequestedProjectAssetChunkReference } from "@alwaysmeticulous/client";
2
+ export declare const validateAssetReferencesManifest: (parsed: unknown) => {
3
+ manifest: RequestedProjectAssetChunkReference[];
4
+ } | {
5
+ errorMessage: string;
6
+ };
7
+ export declare const manifestHasVersionLookupEntries: (manifest: RequestedProjectAssetChunkReference[]) => boolean;
8
+ //# sourceMappingURL=run-with-uploaded-asset-chunks.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-with-uploaded-asset-chunks.utils.d.ts","sourceRoot":"","sources":["../../../src/commands/ci/run-with-uploaded-asset-chunks.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,mCAAmC,EACpC,MAAM,0BAA0B,CAAC;AAwClC,eAAO,MAAM,+BAA+B,WAClC,OAAO,KAEb;IAAE,QAAQ,EAAE,mCAAmC,EAAE,CAAA;CAAE,GACnD;IAAE,YAAY,EAAE,MAAM,CAAA;CAuBzB,CAAC;AAEF,eAAO,MAAM,+BAA+B,aAChC,mCAAmC,EAAE,KAC9C,OAA6D,CAAC"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="d9c06624-6a5b-53ba-83f4-e26f92606911")}catch(e){}}();
3
+
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.manifestHasVersionLookupEntries = exports.validateAssetReferencesManifest = void 0;
6
+ const SUPPORTED_VERSION_LOOKUPS = [
7
+ "latest-in-history",
8
+ ];
9
+ const MANIFEST_ENTRY_SHAPES_MESSAGE = `--assetReferencesManifest entries must each be exactly one of:\n` +
10
+ ` { "name": string, "versionId": string } (non-empty values), or\n` +
11
+ ` { "name": string, "versionLookup": "latest-in-history" } (resolves the version from the base test run's history).`;
12
+ const isValidManifestEntry = (item) => {
13
+ if (typeof item !== "object" || item === null || Array.isArray(item)) {
14
+ return false;
15
+ }
16
+ const name = item.name;
17
+ const versionId = item.versionId;
18
+ const versionLookup = item.versionLookup;
19
+ if (typeof name !== "string" || name.length === 0) {
20
+ return false;
21
+ }
22
+ const hasVersionId = versionId !== undefined;
23
+ const hasVersionLookup = versionLookup !== undefined;
24
+ if (hasVersionId === hasVersionLookup) {
25
+ return false;
26
+ }
27
+ if (hasVersionId) {
28
+ return typeof versionId === "string" && versionId.length > 0;
29
+ }
30
+ return (typeof versionLookup === "string" &&
31
+ SUPPORTED_VERSION_LOOKUPS.includes(versionLookup));
32
+ };
33
+ const validateAssetReferencesManifest = (parsed) => {
34
+ if (!Array.isArray(parsed)) {
35
+ return {
36
+ errorMessage: `--assetReferencesManifest must be a JSON array of chunk references.\n${MANIFEST_ENTRY_SHAPES_MESSAGE}`,
37
+ };
38
+ }
39
+ if (parsed.length === 0) {
40
+ return { errorMessage: `--assetReferencesManifest must not be empty.` };
41
+ }
42
+ if (!parsed.every(isValidManifestEntry)) {
43
+ return { errorMessage: MANIFEST_ENTRY_SHAPES_MESSAGE };
44
+ }
45
+ const names = parsed.map((entry) => entry.name);
46
+ if (new Set(names).size !== names.length) {
47
+ return {
48
+ errorMessage: `--assetReferencesManifest must not contain duplicate chunk names: the manifest is a last-wins precedence list, so a repeated name silently discards the earlier entry.`,
49
+ };
50
+ }
51
+ return { manifest: parsed };
52
+ };
53
+ exports.validateAssetReferencesManifest = validateAssetReferencesManifest;
54
+ const manifestHasVersionLookupEntries = (manifest) => manifest.some((entry) => "versionLookup" in entry);
55
+ exports.manifestHasVersionLookupEntries = manifestHasVersionLookupEntries;
56
+ //# sourceMappingURL=run-with-uploaded-asset-chunks.utils.js.map
57
+ //# debugId=d9c06624-6a5b-53ba-83f4-e26f92606911
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-with-uploaded-asset-chunks.utils.js","sources":["../../../src/commands/ci/run-with-uploaded-asset-chunks.utils.ts"],"sourceRoot":"","names":[],"mappings":";;;;;AAKA,MAAM,yBAAyB,GAA8C;IAC3E,mBAAmB;CACpB,CAAC;AAEF,MAAM,6BAA6B,GACjC,kEAAkE;IAClE,oEAAoE;IACpE,qHAAqH,CAAC;AAExH,MAAM,oBAAoB,GAAG,CAC3B,IAAa,EACgC,EAAE;IAC/C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACrE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAI,IAA2B,CAAC,IAAI,CAAC;IAC/C,MAAM,SAAS,GAAI,IAAgC,CAAC,SAAS,CAAC;IAC9D,MAAM,aAAa,GAAI,IAAoC,CAAC,aAAa,CAAC;IAE1E,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,YAAY,GAAG,SAAS,KAAK,SAAS,CAAC;IAC7C,MAAM,gBAAgB,GAAG,aAAa,KAAK,SAAS,CAAC;IACrD,IAAI,YAAY,KAAK,gBAAgB,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,CACL,OAAO,aAAa,KAAK,QAAQ;QAChC,yBAA+C,CAAC,QAAQ,CAAC,aAAa,CAAC,CACzE,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,+BAA+B,GAAG,CAC7C,MAAe,EAGY,EAAE;IAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO;YACL,YAAY,EAAE,wEAAwE,6BAA6B,EAAE;SACtH,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,YAAY,EAAE,8CAA8C,EAAE,CAAC;IAC1E,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,YAAY,EAAE,6BAA6B,EAAE,CAAC;IACzD,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QACzC,OAAO;YACL,YAAY,EAAE,wKAAwK;SACvL,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC,CAAC;AA3BW,QAAA,+BAA+B,mCA2B1C;AAEK,MAAM,+BAA+B,GAAG,CAC7C,QAA+C,EACtC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,IAAI,KAAK,CAAC,CAAC;AAFpD,QAAA,+BAA+B,mCAEqB","debugId":"d9c06624-6a5b-53ba-83f4-e26f92606911"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alwaysmeticulous/cli",
3
- "version": "2.309.0",
3
+ "version": "2.312.0",
4
4
  "description": "The Meticulous CLI",
5
5
  "license": "ISC",
6
6
  "main": "dist/index.js",
@@ -23,19 +23,19 @@
23
23
  "puppeteer-core": "24.14.0",
24
24
  "tar": "^7.5.8",
25
25
  "yargs": "^17.5.1",
26
- "@alwaysmeticulous/api": "2.307.0",
27
- "@alwaysmeticulous/client": "2.308.0",
28
- "@alwaysmeticulous/debug-workspace": "2.308.0",
29
- "@alwaysmeticulous/downloading-helpers": "2.308.0",
30
- "@alwaysmeticulous/record": "2.307.0",
31
- "@alwaysmeticulous/remote-replay-launcher": "2.308.0",
26
+ "@alwaysmeticulous/api": "2.312.0",
27
+ "@alwaysmeticulous/client": "2.312.0",
28
+ "@alwaysmeticulous/common": "2.310.0",
29
+ "@alwaysmeticulous/debug-workspace": "2.312.0",
30
+ "@alwaysmeticulous/downloading-helpers": "2.312.0",
31
+ "@alwaysmeticulous/record": "2.312.0",
32
32
  "@alwaysmeticulous/replay-debugger-ui": "2.283.1",
33
- "@alwaysmeticulous/replay-orchestrator-launcher": "2.308.0",
34
- "@alwaysmeticulous/common": "2.301.0",
35
- "@alwaysmeticulous/sdk-bundles-api": "2.307.0",
36
- "@alwaysmeticulous/sentry": "2.301.0",
37
- "@alwaysmeticulous/tunnels-client": "2.301.0",
38
- "@alwaysmeticulous/session-filters": "2.309.0"
33
+ "@alwaysmeticulous/remote-replay-launcher": "2.312.0",
34
+ "@alwaysmeticulous/replay-orchestrator-launcher": "2.312.0",
35
+ "@alwaysmeticulous/sdk-bundles-api": "2.312.0",
36
+ "@alwaysmeticulous/sentry": "2.310.0",
37
+ "@alwaysmeticulous/session-filters": "2.312.0",
38
+ "@alwaysmeticulous/tunnels-client": "2.310.0"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/cli-progress": "^3.11.5",