@alwaysmeticulous/remote-replay-launcher 2.235.2 → 2.236.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.
@@ -0,0 +1,20 @@
1
+ import { AssetUploadMetadata } from "@alwaysmeticulous/api";
2
+ import { TestRun } from "@alwaysmeticulous/client";
3
+ export interface UploadAssetsOptions {
4
+ apiToken: string | null | undefined;
5
+ appDirectory: string;
6
+ commitSha: string;
7
+ waitForBase?: boolean;
8
+ rewrites?: AssetUploadMetadata["rewrites"];
9
+ warnIfNoIndexHtml?: boolean;
10
+ createDeployment?: boolean;
11
+ }
12
+ export interface UploadAssetsResult {
13
+ uploadId: string;
14
+ testRun?: TestRun | null;
15
+ message?: string;
16
+ }
17
+ /**
18
+ * Uploads assets from a directory and returns the upload ID and client for further operations
19
+ */
20
+ export declare const uploadAssets: ({ apiToken: apiToken_, appDirectory, commitSha, waitForBase, rewrites, warnIfNoIndexHtml, createDeployment, }: UploadAssetsOptions) => Promise<UploadAssetsResult>;
@@ -0,0 +1,194 @@
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.uploadAssets = void 0;
7
+ const fs_1 = require("fs");
8
+ const promises_1 = require("fs/promises");
9
+ const https_1 = require("https");
10
+ const os_1 = require("os");
11
+ const path_1 = require("path");
12
+ const client_1 = require("@alwaysmeticulous/client");
13
+ const project_deployments_api_1 = require("@alwaysmeticulous/client/dist/api/project-deployments.api");
14
+ const common_1 = require("@alwaysmeticulous/common");
15
+ const archiver_1 = __importDefault(require("archiver"));
16
+ const loglevel_1 = __importDefault(require("loglevel"));
17
+ const POLL_FOR_BASE_TEST_RUN_INTERVAL_MS = 10000;
18
+ const POLL_FOR_BASE_TEST_RUN_MAX_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
19
+ /**
20
+ * Uploads assets from a directory and returns the upload ID and client for further operations
21
+ */
22
+ const uploadAssets = async ({ apiToken: apiToken_, appDirectory, commitSha, waitForBase = false, rewrites = [], warnIfNoIndexHtml = false, createDeployment = true, }) => {
23
+ var _a, _b, _c;
24
+ const logger = loglevel_1.default.getLogger(common_1.METICULOUS_LOGGER_NAME);
25
+ const apiToken = (0, client_1.getApiToken)(apiToken_);
26
+ if (!apiToken) {
27
+ logger.error("You must provide an API token by using the --apiToken parameter");
28
+ process.exit(1);
29
+ }
30
+ const resolvedAppDirectory = (0, path_1.resolve)(appDirectory);
31
+ if (!(0, fs_1.existsSync)(resolvedAppDirectory)) {
32
+ throw new Error(`Directory does not exist: ${resolvedAppDirectory}`);
33
+ }
34
+ if (warnIfNoIndexHtml) {
35
+ const indexHtmlPath = (0, path_1.join)(resolvedAppDirectory, "index.html");
36
+ if (!(0, fs_1.existsSync)(indexHtmlPath)) {
37
+ logger.warn(`Warning: No index.html found in the app directory (${resolvedAppDirectory}). ` +
38
+ `This may indicate that your build output is not properly configured for static hosting, unless you expect that the root url is invalid. ` +
39
+ `If you're using Next.js or another framework that requires server-side rendering, ` +
40
+ `you should use the \`cloud-compute\` GitHub Action or the \`run-all-tests-in-cloud\` command instead.`);
41
+ }
42
+ }
43
+ const client = (0, client_1.createClient)({ apiToken });
44
+ const zipPath = (0, path_1.join)((0, os_1.tmpdir)(), `assets-${Date.now()}.zip`);
45
+ await createZipFromFolder(resolvedAppDirectory, zipPath);
46
+ try {
47
+ const fileStats = await (0, promises_1.stat)(zipPath);
48
+ const fileSize = fileStats.size;
49
+ const { uploadId, uploadUrl } = await (0, client_1.requestAssetUpload)({
50
+ client,
51
+ size: fileSize,
52
+ });
53
+ await uploadFileToSignedUrl(zipPath, uploadUrl, fileSize);
54
+ logger.info(`Deployment assets ${uploadId} uploaded successfully`);
55
+ let testRun = null;
56
+ let message = undefined;
57
+ const completeAssetUploadArgs = {
58
+ client,
59
+ uploadId,
60
+ commitSha,
61
+ mustHaveBase: waitForBase,
62
+ rewrites,
63
+ createDeployment,
64
+ };
65
+ const startTime = Date.now();
66
+ let result = await (0, client_1.completeAssetUpload)(completeAssetUploadArgs);
67
+ testRun = (_a = result === null || result === void 0 ? void 0 : result.testRun) !== null && _a !== void 0 ? _a : null;
68
+ let baseNotFound = result === null || result === void 0 ? void 0 : result.baseNotFound;
69
+ let lastTimeElapsed = 0;
70
+ while (!testRun && baseNotFound) {
71
+ const timeElapsed = Date.now() - startTime;
72
+ if (timeElapsed > POLL_FOR_BASE_TEST_RUN_MAX_TIMEOUT_MS) {
73
+ logger.warn(`Timed out after ${POLL_FOR_BASE_TEST_RUN_MAX_TIMEOUT_MS / 1000} seconds waiting for test run`);
74
+ break;
75
+ }
76
+ if (lastTimeElapsed == 0 || timeElapsed - lastTimeElapsed >= 30000) {
77
+ // Log at most once every 30 seconds
78
+ logger.info(`Waiting for base test run to be created. Time elapsed: ${timeElapsed}ms`);
79
+ lastTimeElapsed = timeElapsed;
80
+ }
81
+ await new Promise((resolve) => setTimeout(resolve, POLL_FOR_BASE_TEST_RUN_INTERVAL_MS));
82
+ result = await (0, project_deployments_api_1.triggerRunOnDeployment)(completeAssetUploadArgs);
83
+ testRun = (_b = result === null || result === void 0 ? void 0 : result.testRun) !== null && _b !== void 0 ? _b : null;
84
+ baseNotFound = result === null || result === void 0 ? void 0 : result.baseNotFound;
85
+ if (baseNotFound) {
86
+ logger.info(`Base test run not found, proceeding without it.`);
87
+ testRun =
88
+ (_c = (await (0, project_deployments_api_1.triggerRunOnDeployment)({
89
+ ...completeAssetUploadArgs,
90
+ mustHaveBase: false,
91
+ })).testRun) !== null && _c !== void 0 ? _c : null;
92
+ }
93
+ message = result === null || result === void 0 ? void 0 : result.message;
94
+ logger.info(`Deployment assets ${uploadId} marked as uploaded`);
95
+ }
96
+ return {
97
+ uploadId,
98
+ testRun,
99
+ ...(message ? { message } : {}),
100
+ };
101
+ }
102
+ finally {
103
+ try {
104
+ await (0, promises_1.unlink)(zipPath);
105
+ }
106
+ catch (error) {
107
+ logger.warn(`Failed to delete temporary file ${zipPath}: ${error}`);
108
+ }
109
+ }
110
+ };
111
+ exports.uploadAssets = uploadAssets;
112
+ const createZipFromFolder = async (folderPath, archivePath) => {
113
+ const fileStream = (0, fs_1.createWriteStream)(archivePath);
114
+ const archive = (0, archiver_1.default)("zip");
115
+ await new Promise((resolve, reject) => {
116
+ archive.on("error", (err) => reject(err));
117
+ let fd = null;
118
+ fileStream.on("open", (descriptor) => {
119
+ fd = descriptor;
120
+ });
121
+ fileStream.on("finish", async () => {
122
+ try {
123
+ await new Promise((fsyncResolve, fsyncReject) => {
124
+ if (fd !== null) {
125
+ (0, fs_1.fsync)(fd, (err) => {
126
+ if (err)
127
+ fsyncReject(err);
128
+ else
129
+ fsyncResolve();
130
+ });
131
+ }
132
+ else {
133
+ fsyncReject(new Error("File descriptor not found"));
134
+ }
135
+ });
136
+ resolve();
137
+ }
138
+ catch (fsyncError) {
139
+ reject(fsyncError);
140
+ }
141
+ });
142
+ archive.pipe(fileStream);
143
+ archive.directory(folderPath, false);
144
+ archive.finalize().catch((error) => {
145
+ throw error;
146
+ });
147
+ });
148
+ };
149
+ const uploadFileToSignedUrl = async (filePath, signedUrl, expectedFileSize) => {
150
+ const fileStream = (0, fs_1.createReadStream)(filePath);
151
+ const logger = loglevel_1.default.getLogger(common_1.METICULOUS_LOGGER_NAME);
152
+ const fileStats = await (0, promises_1.stat)(filePath);
153
+ const fileSize = fileStats.size;
154
+ if (fileSize !== expectedFileSize) {
155
+ throw new Error(`File size mismatch: expected ${expectedFileSize} bytes, got ${fileSize} bytes`);
156
+ }
157
+ logger.info(`Uploading deployment assets (${fileSize} bytes)...`);
158
+ return new Promise((resolve, reject) => {
159
+ const req = (0, https_1.request)(signedUrl, {
160
+ method: "PUT",
161
+ headers: {
162
+ "Content-Length": fileSize,
163
+ "Content-Type": "application/zip",
164
+ },
165
+ }, (response) => {
166
+ let responseData = "";
167
+ response.on("data", (chunk) => {
168
+ responseData += chunk;
169
+ });
170
+ response.on("end", () => {
171
+ if (response.statusCode === 200) {
172
+ logger.info("Successfully uploaded deployment assets");
173
+ resolve();
174
+ }
175
+ else {
176
+ const errorMessage = `Failed to upload assets!\nSigned URL: ${signedUrl}\nStatus ${response.statusCode}.\nResponse:\n${responseData}`;
177
+ logger.error(errorMessage);
178
+ reject(new Error(errorMessage));
179
+ }
180
+ });
181
+ });
182
+ req.on("error", (error) => {
183
+ logger.error(`Upload request error: ${error.message}`);
184
+ reject(error);
185
+ });
186
+ fileStream.on("error", (error) => {
187
+ logger.error(`File stream error: ${error.message}`);
188
+ req.destroy(error);
189
+ reject(error);
190
+ });
191
+ fileStream.pipe(req);
192
+ });
193
+ };
194
+ //# sourceMappingURL=asset-upload-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-upload-utils.js","sourceRoot":"","sources":["../src/asset-upload-utils.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { ExecuteRemoteTestRunOptions, ExecuteRemoteTestRunResult } from "./types";
2
2
  export { TunnelData } from "./types";
3
- export declare const executeRemoteTestRun: ({ apiToken: apiToken_, appUrl, commitSha, secureTunnelHost, onTunnelCreated, onTestRunCreated, onProgressUpdate, onTunnelStillLocked, keepTunnelOpenPromise, environment, isLockable, pullRequestHostingProviderId, allowInvalidCert, proxyAllUrls, rewriteHostnameToAppUrl, enableDnsCache, http2Connections, }: ExecuteRemoteTestRunOptions) => Promise<ExecuteRemoteTestRunResult>;
3
+ export declare const executeRemoteTestRun: ({ apiToken: apiToken_, appUrl, commitSha, secureTunnelHost, onTunnelCreated, onTestRunCreated, onProgressUpdate, onTunnelStillLocked, keepTunnelOpenPromise, environment, isLockable, pullRequestHostingProviderId, companionAssetsInfo, allowInvalidCert, proxyAllUrls, rewriteHostnameToAppUrl, enableDnsCache, http2Connections, }: ExecuteRemoteTestRunOptions) => Promise<ExecuteRemoteTestRunResult>;
@@ -13,7 +13,7 @@ const url_utils_1 = require("./url.utils");
13
13
  const POLL_LOCK_INTERVAL_MS = 5000; // 5 seconds
14
14
  const PROGRESS_UPDATE_INTERVAL_MS = 5000; // 5 seconds
15
15
  const MS_TO_WAIT_FOR_RETRY = 5 * 60 * 1000; // 5 minutes
16
- const executeRemoteTestRun = async ({ apiToken: apiToken_, appUrl, commitSha, secureTunnelHost, onTunnelCreated, onTestRunCreated, onProgressUpdate, onTunnelStillLocked, keepTunnelOpenPromise, environment, isLockable, pullRequestHostingProviderId, allowInvalidCert = false, proxyAllUrls = false, rewriteHostnameToAppUrl = false, enableDnsCache = false, http2Connections, }) => {
16
+ const executeRemoteTestRun = async ({ apiToken: apiToken_, appUrl, commitSha, secureTunnelHost, onTunnelCreated, onTestRunCreated, onProgressUpdate, onTunnelStillLocked, keepTunnelOpenPromise, environment, isLockable, pullRequestHostingProviderId, companionAssetsInfo, allowInvalidCert = false, proxyAllUrls = false, rewriteHostnameToAppUrl = false, enableDnsCache = false, http2Connections, }) => {
17
17
  var _a;
18
18
  const logger = loglevel_1.default.getLogger(common_1.METICULOUS_LOGGER_NAME);
19
19
  const apiToken = (0, client_1.getApiToken)(apiToken_);
@@ -64,6 +64,7 @@ const executeRemoteTestRun = async ({ apiToken: apiToken_, appUrl, commitSha, se
64
64
  basicAuthPassword: tunnel.basicAuthPassword,
65
65
  environment,
66
66
  isLockable,
67
+ ...(companionAssetsInfo ? { companionAssetsInfo } : {}),
67
68
  ...(pullRequestHostingProviderId ? { pullRequestHostingProviderId } : {}),
68
69
  });
69
70
  if (!response.testRun) {
@@ -1 +1 @@
1
- {"version":3,"file":"execute-remote-test-run.js","sourceRoot":"","sources":["../src/execute-remote-test-run.ts"],"names":[],"mappings":";;;;;;AAAA,qDAQkC;AAClC,qDAAyE;AACzE,qEAA+D;AAC/D,wDAA2B;AAC3B,yDAAqD;AAKrD,2CAAsC;AAItC,MAAM,qBAAqB,GAAG,IAAK,CAAC,CAAC,YAAY;AACjD,MAAM,2BAA2B,GAAG,IAAK,CAAC,CAAC,YAAY;AACvD,MAAM,oBAAoB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAK,CAAC,CAAC,YAAY;AAElD,MAAM,oBAAoB,GAAG,KAAK,EAAE,EACzC,QAAQ,EAAE,SAAS,EACnB,MAAM,EACN,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,EACX,UAAU,EACV,4BAA4B,EAC5B,gBAAgB,GAAG,KAAK,EACxB,YAAY,GAAG,KAAK,EACpB,uBAAuB,GAAG,KAAK,EAC/B,cAAc,GAAG,KAAK,EACtB,gBAAgB,GACY,EAAuC,EAAE;;IACrE,MAAM,MAAM,GAAG,kBAAG,CAAC,SAAS,CAAC,+BAAsB,CAAC,CAAC;IAErD,MAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,SAAS,CAAC,CAAC;IACxC,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,CAAC,KAAK,CACV,iEAAiE,CAClE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE1C,IAAI,GAAQ,CAAC;IACb,IAAI;QACF,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,6DAA6D;KAC9D;IAAC,OAAO,MAAM,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC;KAC/C;IAED,MAAM,IAAI,GAAG,IAAA,mBAAO,EAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;KACpD;IAED,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAW,EAAC;QAC/B,MAAM;QACN,QAAQ;QACR,SAAS,EAAE,GAAG,CAAC,QAAQ;QACvB,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,IAAI;QACJ,UAAU,EAAE,GAAG,CAAC,QAAQ,KAAK,QAAQ;QACrC,gBAAgB;QAChB,YAAY;QACZ,uBAAuB;QACvB,cAAc;QACd,gBAAgB;KACjB,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAElC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;QACrE,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;KACH;IAED,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAG;QAChB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;KAC5C,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,IAAA,mCAA0B,EAAC;QAChD,MAAM;QACN,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,MAAM,CAAC,GAAG;QACrB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,WAAW;QACX,UAAU;QACV,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC,EAAE,4BAA4B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,GAAG,MAAA,QAAQ,CAAC,OAAO,mCAAI,0BAA0B,EAAE,CAAC,CAAC;KACtE;IAED,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;IAC3C,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAG,OAAO,CAAC,CAAC;IAE5B,MAAM,gBAAgB,GAAG,IAAA,cAAK,GAAW,CAAC;IAE1C,IAAI,sBAAsB,GAA+B,SAAS,CAAC;IACnE,IAAI,wBAAwB,GAAuB,SAAS,CAAC;IAE7D,MAAM,kBAAkB,GAAG,CAAC,gBAAyB,EAAE,EAAE;QACvD,IACE,gBAAgB,CAAC,MAAM,KAAK,gBAAgB;YAC5C,CAAC,wBAAwB,KAAK,SAAS;gBACrC,IAAI,CAAC,GAAG,EAAE,GAAG,wBAAwB,GAAG,oBAAoB,CAAC,EAC/D;YACA,wFAAwF;YACxF,6FAA6F;YAC7F,oEAAoE;YACpE,IAAI,wBAAwB,KAAK,SAAS,EAAE;gBAC1C,wBAAwB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,CACT,qDACE,oBAAoB,GAAG,IACzB,qDAAqD,CACtD,CAAC;aACH;YACD,OAAO;SACR;QAED,IAAI,sBAAsB,EAAE;YAC1B,aAAa,CAAC,sBAAsB,CAAC,CAAC;SACvC;QAED,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEF,sFAAsF;IACtF,MAAM,eAAe,GAAG,IAAI,kCAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7D,sBAAsB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC9C,MAAM,cAAc,GAAG,MAAM,IAAA,mBAAU,EAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3E,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAG,cAAc,CAAC,CAAC;QAEnC,IAAI,CAAC,oCAA2B,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;YAChE,kBAAkB,CAAC,cAAc,CAAC,CAAC;YAEnC,OAAO;SACR;aAAM,IAAI,wBAAwB,KAAK,SAAS,EAAE;YACjD,MAAM,CAAC,IAAI,CACT,uCAAuC,cAAc,CAAC,MAAM,GAAG,CAChE,CAAC;YACF,wBAAwB,GAAG,SAAS,CAAC;SACtC;QACD,MAAM,eAAe,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC,EAAE,2BAA2B,CAAC,CAAC;IAEhC,MAAM,gBAAgB,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC;IAExD,MAAM,cAAc,GAAG,IAAA,cAAK,GAAQ,CAAC;IACrC,IAAI,mBAAmB,GAA+B,SAAS,CAAC;IAChE,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;QAC/B,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAW,EAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;QAC7D,IAAI,QAAQ,EAAE;YACZ,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,EAAI,CAAC;YACxB,MAAM,eAAe,CAAC,UAAU,EAAE,CAAC;YACnC,OAAO,KAAK,CAAC;SACd;QACD,cAAc,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,MAAM,eAAe,GAAG,MAAM,aAAa,EAAE,CAAC;IAC9C,IAAI,CAAC,eAAe,EAAE;QACpB,mBAAmB,GAAG,WAAW,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC;QACxE,MAAM,cAAc,CAAC,OAAO,CAAC;KAC9B;IACD,IAAI,mBAAmB,EAAE;QACvB,aAAa,CAAC,mBAAmB,CAAC,CAAC;KACpC;IAED,IAAI,qBAAqB,EAAE;QACzB,MAAM,qBAAqB,CAAC;KAC7B;IACD,MAAM,CAAC,KAAK,EAAE,CAAC;IAEf,OAAO;QACL,OAAO,EAAE,gBAAgB;KAC1B,CAAC;AACJ,CAAC,CAAC;AA3KW,QAAA,oBAAoB,wBA2K/B"}
1
+ {"version":3,"file":"execute-remote-test-run.js","sourceRoot":"","sources":["../src/execute-remote-test-run.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export { executeRemoteTestRun } from "./execute-remote-test-run";
2
2
  export { uploadAssetsAndTriggerTestRun } from "./upload-assets-and-trigger-test-run";
3
+ export { uploadAssets } from "./asset-upload-utils";
3
4
  export { TunnelData } from "./types";
package/dist/index.js CHANGED
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.uploadAssetsAndTriggerTestRun = exports.executeRemoteTestRun = void 0;
3
+ exports.uploadAssets = exports.uploadAssetsAndTriggerTestRun = exports.executeRemoteTestRun = void 0;
4
4
  var execute_remote_test_run_1 = require("./execute-remote-test-run");
5
5
  Object.defineProperty(exports, "executeRemoteTestRun", { enumerable: true, get: function () { return execute_remote_test_run_1.executeRemoteTestRun; } });
6
6
  var upload_assets_and_trigger_test_run_1 = require("./upload-assets-and-trigger-test-run");
7
7
  Object.defineProperty(exports, "uploadAssetsAndTriggerTestRun", { enumerable: true, get: function () { return upload_assets_and_trigger_test_run_1.uploadAssetsAndTriggerTestRun; } });
8
+ var asset_upload_utils_1 = require("./asset-upload-utils");
9
+ Object.defineProperty(exports, "uploadAssets", { enumerable: true, get: function () { return asset_upload_utils_1.uploadAssets; } });
8
10
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qEAAiE;AAAxD,+HAAA,oBAAoB,OAAA;AAC7B,2FAAqF;AAA5E,mJAAA,6BAA6B,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qEAAiE;AAAxD,+HAAA,oBAAoB,OAAA;AAC7B,2FAAqF;AAA5E,mJAAA,6BAA6B,OAAA;AACtC,2DAAoD;AAA3C,kHAAA,YAAY,OAAA"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { AssetUploadMetadata } from "@alwaysmeticulous/api";
1
+ import { AssetUploadMetadata, CompanionAssetsInfo } from "@alwaysmeticulous/api";
2
2
  import { TestRun } from "@alwaysmeticulous/client";
3
3
  export interface TunnelData {
4
4
  url: string;
@@ -35,6 +35,7 @@ export interface ExecuteRemoteTestRunOptions {
35
35
  rewriteHostnameToAppUrl?: boolean;
36
36
  enableDnsCache?: boolean;
37
37
  http2Connections?: number | undefined;
38
+ companionAssetsInfo?: CompanionAssetsInfo;
38
39
  }
39
40
  export interface ExecuteRemoteTestRunResult {
40
41
  testRun: TestRun | null;
@@ -49,4 +50,5 @@ export interface UploadAssetsAndTriggerTestRunOptions {
49
50
  */
50
51
  waitForBase: boolean;
51
52
  rewrites?: AssetUploadMetadata["rewrites"];
53
+ createDeployment?: boolean;
52
54
  }
@@ -1,10 +1,2 @@
1
- import { completeAssetUpload, TestRun } from "@alwaysmeticulous/client";
2
1
  import { UploadAssetsAndTriggerTestRunOptions, ExecuteRemoteTestRunResult } from "./types";
3
- /**
4
- * Polls completeAssetUpload every 10 seconds until result.testRun exists or timeout is reached.
5
- */
6
- export declare const tryCompleteAssetUpload: (completeAssetUploadArgs: Parameters<typeof completeAssetUpload>[0]) => Promise<{
7
- testRun: TestRun | null;
8
- message?: string;
9
- }>;
10
2
  export declare const uploadAssetsAndTriggerTestRun: ({ apiToken: apiToken_, appDirectory, commitSha, rewrites, waitForBase, }: UploadAssetsAndTriggerTestRunOptions) => Promise<ExecuteRemoteTestRunResult>;
@@ -3,202 +3,34 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.uploadAssetsAndTriggerTestRun = exports.tryCompleteAssetUpload = void 0;
7
- const fs_1 = require("fs");
8
- const promises_1 = require("fs/promises");
9
- const https_1 = require("https");
10
- const os_1 = require("os");
11
- const path_1 = require("path");
12
- const client_1 = require("@alwaysmeticulous/client");
13
- const project_deployments_api_1 = require("@alwaysmeticulous/client/dist/api/project-deployments.api");
6
+ exports.uploadAssetsAndTriggerTestRun = void 0;
14
7
  const common_1 = require("@alwaysmeticulous/common");
15
- const archiver_1 = __importDefault(require("archiver"));
16
8
  const loglevel_1 = __importDefault(require("loglevel"));
17
- const POLL_FOR_BASE_TEST_RUN_INTERVAL_MS = 10000;
18
- const POLL_FOR_BASE_TEST_RUN_MAX_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
19
- /**
20
- * Polls completeAssetUpload every 10 seconds until result.testRun exists or timeout is reached.
21
- */
22
- const tryCompleteAssetUpload = async (completeAssetUploadArgs) => {
23
- const logger = loglevel_1.default.getLogger(common_1.METICULOUS_LOGGER_NAME);
24
- const startTime = Date.now();
25
- let result = await (0, client_1.completeAssetUpload)(completeAssetUploadArgs);
26
- let testRun = result === null || result === void 0 ? void 0 : result.testRun;
27
- let baseNotFound = result === null || result === void 0 ? void 0 : result.baseNotFound;
28
- let lastTimeElapsed = 0;
29
- while (!testRun && baseNotFound) {
30
- const timeElapsed = Date.now() - startTime;
31
- if (timeElapsed > POLL_FOR_BASE_TEST_RUN_MAX_TIMEOUT_MS) {
32
- logger.warn(`Timed out after ${POLL_FOR_BASE_TEST_RUN_MAX_TIMEOUT_MS / 1000} seconds waiting for test run`);
33
- break;
34
- }
35
- if (lastTimeElapsed == 0 || timeElapsed - lastTimeElapsed >= 30000) {
36
- // Log at most once every 30 seconds
37
- logger.info(`Waiting for base test run to be created. Time elapsed: ${timeElapsed}ms`);
38
- lastTimeElapsed = timeElapsed;
39
- }
40
- await new Promise((resolve) => setTimeout(resolve, POLL_FOR_BASE_TEST_RUN_INTERVAL_MS));
41
- result = await (0, project_deployments_api_1.triggerRunOnDeployment)(completeAssetUploadArgs);
42
- testRun = result === null || result === void 0 ? void 0 : result.testRun;
43
- baseNotFound = result === null || result === void 0 ? void 0 : result.baseNotFound;
44
- }
45
- if (baseNotFound) {
46
- logger.info(`Base test run not found, proceeding without it.`);
47
- testRun = (await (0, project_deployments_api_1.triggerRunOnDeployment)({
48
- ...completeAssetUploadArgs,
49
- mustHaveBase: false,
50
- })).testRun;
51
- }
52
- return {
53
- testRun: testRun !== null && testRun !== void 0 ? testRun : null,
54
- ...((result === null || result === void 0 ? void 0 : result.message) ? { message: result.message } : {}),
55
- };
56
- };
57
- exports.tryCompleteAssetUpload = tryCompleteAssetUpload;
9
+ const asset_upload_utils_1 = require("./asset-upload-utils");
58
10
  const uploadAssetsAndTriggerTestRun = async ({ apiToken: apiToken_, appDirectory, commitSha, rewrites, waitForBase, }) => {
59
11
  var _a, _b;
60
12
  const logger = loglevel_1.default.getLogger(common_1.METICULOUS_LOGGER_NAME);
61
- const apiToken = (0, client_1.getApiToken)(apiToken_);
62
- if (!apiToken) {
63
- logger.error("You must provide an API token by using the --apiToken parameter");
64
- process.exit(1);
65
- }
66
- const resolvedAppDirectory = (0, path_1.resolve)(appDirectory);
67
- if (!(0, fs_1.existsSync)(resolvedAppDirectory)) {
68
- throw new Error(`Directory does not exist: ${resolvedAppDirectory}`);
69
- }
70
- // If there are no rewrites, check for an index.html in the root directory
71
- if (!rewrites || rewrites.length === 0) {
72
- const indexHtmlPath = (0, path_1.join)(resolvedAppDirectory, "index.html");
73
- if (!(0, fs_1.existsSync)(indexHtmlPath)) {
74
- logger.warn(`Warning: No index.html found in the app directory (${resolvedAppDirectory}). ` +
75
- `This may indicate that your build output is not properly configured for static hosting, unless you expect that the root url is invalid. ` +
76
- `If you're using Next.js or another framework that requires server-side rendering, ` +
77
- `you should use the \`cloud-compute\` GitHub Action or the \`run-all-tests-in-cloud\` command instead.`);
78
- }
79
- }
80
- const client = (0, client_1.createClient)({ apiToken });
81
- const zipPath = (0, path_1.join)((0, os_1.tmpdir)(), `assets-${Date.now()}.zip`);
82
- await createZipFromFolder(resolvedAppDirectory, zipPath);
83
- try {
84
- const fileStats = await (0, promises_1.stat)(zipPath);
85
- const fileSize = fileStats.size;
86
- const { uploadId, uploadUrl } = await (0, client_1.requestAssetUpload)({
87
- client,
88
- size: fileSize,
89
- });
90
- await uploadFileToSignedUrl(zipPath, uploadUrl, fileSize);
91
- const result = await (0, exports.tryCompleteAssetUpload)({
92
- client,
93
- uploadId,
94
- commitSha,
95
- mustHaveBase: waitForBase,
96
- rewrites: rewrites !== null && rewrites !== void 0 ? rewrites : [],
97
- });
98
- logger.info(`Deployment assets ${uploadId} marked as uploaded`);
99
- if (result.testRun) {
100
- const organizationName = encodeURIComponent(result.testRun.project.organization.name);
101
- const projectName = encodeURIComponent(result.testRun.project.name);
102
- const testRunUrl = `https://app.meticulous.ai/projects/${organizationName}/${projectName}/test-runs/${result.testRun.id}`;
103
- logger.info(`Test run triggered: ${testRunUrl}`);
104
- }
105
- else {
106
- throw new Error(`${(_a = result.message) !== null && _a !== void 0 ? _a : "Test run was not created"}`);
107
- }
108
- return {
109
- testRun: (_b = result.testRun) !== null && _b !== void 0 ? _b : null,
110
- };
13
+ const result = await (0, asset_upload_utils_1.uploadAssets)({
14
+ apiToken: apiToken_,
15
+ appDirectory,
16
+ warnIfNoIndexHtml: !rewrites || rewrites.length === 0,
17
+ commitSha,
18
+ waitForBase,
19
+ rewrites: rewrites !== null && rewrites !== void 0 ? rewrites : [],
20
+ createDeployment: true,
21
+ });
22
+ if (result.testRun) {
23
+ const organizationName = encodeURIComponent(result.testRun.project.organization.name);
24
+ const projectName = encodeURIComponent(result.testRun.project.name);
25
+ const testRunUrl = `https://app.meticulous.ai/projects/${organizationName}/${projectName}/test-runs/${result.testRun.id}`;
26
+ logger.info(`Test run triggered: ${testRunUrl}`);
111
27
  }
112
- finally {
113
- try {
114
- await (0, promises_1.unlink)(zipPath);
115
- }
116
- catch (error) {
117
- logger.warn(`Failed to delete temporary file ${zipPath}: ${error}`);
118
- }
28
+ else {
29
+ throw new Error(`${(_a = result.message) !== null && _a !== void 0 ? _a : "Test run was not created"}`);
119
30
  }
31
+ return {
32
+ testRun: (_b = result.testRun) !== null && _b !== void 0 ? _b : null,
33
+ };
120
34
  };
121
35
  exports.uploadAssetsAndTriggerTestRun = uploadAssetsAndTriggerTestRun;
122
- const createZipFromFolder = async (folderPath, archivePath) => {
123
- const fileStream = (0, fs_1.createWriteStream)(archivePath);
124
- const archive = (0, archiver_1.default)("zip");
125
- await new Promise((resolve, reject) => {
126
- archive.on("error", (err) => reject(err));
127
- let fd = null;
128
- fileStream.on("open", (descriptor) => {
129
- fd = descriptor;
130
- });
131
- fileStream.on("finish", async () => {
132
- try {
133
- await new Promise((fsyncResolve, fsyncReject) => {
134
- if (fd !== null) {
135
- (0, fs_1.fsync)(fd, (err) => {
136
- if (err)
137
- fsyncReject(err);
138
- else
139
- fsyncResolve();
140
- });
141
- }
142
- else {
143
- fsyncReject(new Error("File descriptor not found"));
144
- }
145
- });
146
- resolve();
147
- }
148
- catch (fsyncError) {
149
- reject(fsyncError);
150
- }
151
- });
152
- archive.pipe(fileStream);
153
- archive.directory(folderPath, false);
154
- archive.finalize().catch((error) => {
155
- throw error;
156
- });
157
- });
158
- };
159
- const uploadFileToSignedUrl = async (filePath, signedUrl, expectedFileSize) => {
160
- const fileStream = (0, fs_1.createReadStream)(filePath);
161
- const logger = loglevel_1.default.getLogger(common_1.METICULOUS_LOGGER_NAME);
162
- const fileStats = await (0, promises_1.stat)(filePath);
163
- const fileSize = fileStats.size;
164
- if (fileSize !== expectedFileSize) {
165
- throw new Error(`File size mismatch: expected ${expectedFileSize} bytes, got ${fileSize} bytes`);
166
- }
167
- logger.info(`Uploading deployment assets (${fileSize} bytes)...`);
168
- return new Promise((resolve, reject) => {
169
- const req = (0, https_1.request)(signedUrl, {
170
- method: "PUT",
171
- headers: {
172
- "Content-Length": fileSize,
173
- "Content-Type": "application/zip",
174
- },
175
- }, (response) => {
176
- let responseData = "";
177
- response.on("data", (chunk) => {
178
- responseData += chunk;
179
- });
180
- response.on("end", () => {
181
- if (response.statusCode === 200) {
182
- logger.info("Successfully uploaded deployment assets");
183
- resolve();
184
- }
185
- else {
186
- const errorMessage = `Failed to upload assets!\nSigned URL: ${signedUrl}\nStatus ${response.statusCode}.\nResponse:\n${responseData}`;
187
- logger.error(errorMessage);
188
- reject(new Error(errorMessage));
189
- }
190
- });
191
- });
192
- req.on("error", (error) => {
193
- logger.error(`Upload request error: ${error.message}`);
194
- reject(error);
195
- });
196
- fileStream.on("error", (error) => {
197
- logger.error(`File stream error: ${error.message}`);
198
- req.destroy(error);
199
- reject(error);
200
- });
201
- fileStream.pipe(req);
202
- });
203
- };
204
36
  //# sourceMappingURL=upload-assets-and-trigger-test-run.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"upload-assets-and-trigger-test-run.js","sourceRoot":"","sources":["../src/upload-assets-and-trigger-test-run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload-assets-and-trigger-test-run.js","sourceRoot":"","sources":["../src/upload-assets-and-trigger-test-run.ts"],"names":[],"mappings":";;;;;;AAAA,qDAAkE;AAClE,wDAA2B;AAC3B,6DAAoD;AAM7C,MAAM,6BAA6B,GAAG,KAAK,EAAE,EAClD,QAAQ,EAAE,SAAS,EACnB,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,WAAW,GAC0B,EAAuC,EAAE;;IAC9E,MAAM,MAAM,GAAG,kBAAG,CAAC,SAAS,CAAC,+BAAsB,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,MAAM,IAAA,iCAAY,EAAC;QAChC,QAAQ,EAAE,SAAS;QACnB,YAAY;QACZ,iBAAiB,EAAE,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QACrD,SAAS;QACT,WAAW;QACX,QAAQ,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE;QACxB,gBAAgB,EAAE,IAAI;KACvB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,OAAO,EAAE;QAClB,MAAM,gBAAgB,GAAG,kBAAkB,CACzC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CACzC,CAAC;QACF,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,UAAU,GAAG,sCAAsC,gBAAgB,IAAI,WAAW,cAAc,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAC1H,MAAM,CAAC,IAAI,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC;KAClD;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,GAAG,MAAA,MAAM,CAAC,OAAO,mCAAI,0BAA0B,EAAE,CAAC,CAAC;KACpE;IAED,OAAO;QACL,OAAO,EAAE,MAAA,MAAM,CAAC,OAAO,mCAAI,IAAI;KAChC,CAAC;AACJ,CAAC,CAAC;AAjCW,QAAA,6BAA6B,iCAiCxC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alwaysmeticulous/remote-replay-launcher",
3
- "version": "2.235.2",
3
+ "version": "2.236.0",
4
4
  "description": "Executes a remote replay on Meticulous' infrastructure",
5
5
  "license": "ISC",
6
6
  "main": "dist/index.js",
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "@alwaysmeticulous/api": "^2.235.2",
24
- "@alwaysmeticulous/client": "^2.235.2",
24
+ "@alwaysmeticulous/client": "^2.236.0",
25
25
  "@alwaysmeticulous/common": "^2.235.2",
26
26
  "@alwaysmeticulous/tunnels-client": "^2.235.2",
27
27
  "@sentry/node": "^10.3.0",
@@ -52,5 +52,5 @@
52
52
  "jest": {
53
53
  "preset": "../../jest.config.js"
54
54
  },
55
- "gitHead": "63237ced1ec66d0c985032baefd0b1464711e867"
55
+ "gitHead": "06e2f7012e2e9bacd4c7cdc1c17b8d0331c43c76"
56
56
  }