@alwaysmeticulous/remote-replay-launcher 2.295.0 → 2.297.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 @@
1
+ export {};
@@ -0,0 +1,46 @@
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]="b8a436f7-ab35-5fe9-bbaf-247900de378a")}catch(e){}}();
3
+
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ const promises_1 = require("fs/promises");
6
+ const os_1 = require("os");
7
+ const path_1 = require("path");
8
+ const zlib_1 = require("zlib");
9
+ const tar_1 = require("tar");
10
+ const vitest_1 = require("vitest");
11
+ const upload_asset_chunk_1 = require("../upload-asset-chunk");
12
+ (0, vitest_1.describe)("writeCompressedTar", () => {
13
+ let baseDir;
14
+ let sourceDir;
15
+ let extractDir;
16
+ (0, vitest_1.beforeEach)(async () => {
17
+ baseDir = await (0, promises_1.mkdtemp)((0, path_1.join)((0, os_1.tmpdir)(), "upload-asset-chunk-test-"));
18
+ sourceDir = (0, path_1.join)(baseDir, "source");
19
+ extractDir = (0, path_1.join)(baseDir, "extract");
20
+ await (0, promises_1.mkdir)(sourceDir, { recursive: true });
21
+ await (0, promises_1.mkdir)(extractDir, { recursive: true });
22
+ });
23
+ (0, vitest_1.afterEach)(async () => {
24
+ await (0, promises_1.rm)(baseDir, { recursive: true, force: true });
25
+ });
26
+ (0, vitest_1.it)("follows symlinks, storing them as regular files and indexing them", async () => {
27
+ await (0, promises_1.writeFile)((0, path_1.join)(sourceDir, "real.txt"), "Hello World");
28
+ await (0, promises_1.symlink)("real.txt", (0, path_1.join)(sourceDir, "link.txt"));
29
+ const tarballPath = (0, path_1.join)(baseDir, "chunk.tar.d");
30
+ const { filePaths } = await (0, upload_asset_chunk_1.writeCompressedTar)({
31
+ cwd: sourceDir,
32
+ destination: tarballPath,
33
+ });
34
+ const normalizedPaths = filePaths.map((p) => p.replace(/^\.\//, ""));
35
+ (0, vitest_1.expect)(normalizedPaths).toEqual(vitest_1.expect.arrayContaining(["real.txt", "link.txt"]));
36
+ const tarPath = (0, path_1.join)(baseDir, "chunk.tar");
37
+ await (0, promises_1.writeFile)(tarPath, (0, zlib_1.inflateRawSync)(await (0, promises_1.readFile)(tarballPath)));
38
+ await (0, tar_1.x)({ file: tarPath, cwd: extractDir });
39
+ const extractedLinkStat = await (0, promises_1.lstat)((0, path_1.join)(extractDir, "link.txt"));
40
+ (0, vitest_1.expect)(extractedLinkStat.isSymbolicLink()).toBe(false);
41
+ (0, vitest_1.expect)(extractedLinkStat.isFile()).toBe(true);
42
+ (0, vitest_1.expect)(await (0, promises_1.readFile)((0, path_1.join)(extractDir, "link.txt"), "utf8")).toBe("Hello World");
43
+ });
44
+ });
45
+ //# sourceMappingURL=upload-asset-chunk.spec.js.map
46
+ //# debugId=b8a436f7-ab35-5fe9-bbaf-247900de378a
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload-asset-chunk.spec.js","sources":["../../src/__tests__/upload-asset-chunk.spec.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"b8a436f7-ab35-5fe9-bbaf-247900de378a"}
@@ -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]="c4811756-10fd-5c7d-909d-679b7878ee65")}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]="f199d201-4b13-5b53-a483-a53fba90f319")}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;
@@ -38,6 +38,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
38
38
  exports.uploadAssetsFromZip = exports.uploadGitDiffToS3 = exports.uploadAssets = void 0;
39
39
  const fs_1 = require("fs");
40
40
  const promises_1 = require("fs/promises");
41
+ const http_1 = require("http");
41
42
  const https_1 = require("https");
42
43
  const path_1 = require("path");
43
44
  const client_1 = require("@alwaysmeticulous/client");
@@ -189,7 +190,8 @@ const putBufferToSignedUrl = async (signedUrl, buffer, options) => {
189
190
  if (options?.contentType) {
190
191
  headers["Content-Type"] = options.contentType;
191
192
  }
192
- const req = (0, https_1.request)(signedUrl, {
193
+ const requestFn = signedUrl.startsWith("https:") ? https_1.request : http_1.request;
194
+ const req = requestFn(signedUrl, {
193
195
  agent: (0, client_1.getProxyAgent)(),
194
196
  method: "PUT",
195
197
  headers,
@@ -304,4 +306,4 @@ const uploadFileToSignedUrl = async (filePath, signedUrl, expectedFileSize) => {
304
306
  logger.info("Successfully uploaded deployment assets");
305
307
  };
306
308
  //# sourceMappingURL=asset-upload-utils.js.map
307
- //# debugId=c4811756-10fd-5c7d-909d-679b7878ee65
309
+ //# debugId=f199d201-4b13-5b53-a483-a53fba90f319
@@ -1 +1 @@
1
- {"version":3,"file":"asset-upload-utils.js","sources":["../src/asset-upload-utils.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"c4811756-10fd-5c7d-909d-679b7878ee65"}
1
+ {"version":3,"file":"asset-upload-utils.js","sources":["../src/asset-upload-utils.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"f199d201-4b13-5b53-a483-a53fba90f319"}
package/dist/index.d.ts CHANGED
@@ -3,4 +3,6 @@ export { uploadAssetsAndTriggerTestRun } from "./upload-assets-and-trigger-test-
3
3
  export { uploadAssets, uploadAssetsFromZip } from "./asset-upload-utils";
4
4
  export { uploadContainerAndTriggerTestRun } from "./upload-container-and-trigger-test-run";
5
5
  export { uploadContainer } from "./upload-container";
6
+ export { uploadAssetChunk, UploadAssetChunkOptions } from "./upload-asset-chunk";
7
+ export { runWithUploadedAssetChunks, RunWithUploadedAssetChunksOptions, RunWithUploadedAssetChunksResult, } from "./run-with-uploaded-asset-chunks";
6
8
  export { TunnelData } from "./types";
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
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]="17eac0bf-6532-59b4-a4a3-2ea66dec47e5")}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]="f03bb35e-984d-50e7-8b01-64ba402ee008")}catch(e){}}();
3
3
 
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.uploadContainer = exports.uploadContainerAndTriggerTestRun = exports.uploadAssetsFromZip = exports.uploadAssets = exports.uploadAssetsAndTriggerTestRun = exports.executeRemoteTestRun = void 0;
5
+ exports.runWithUploadedAssetChunks = exports.uploadAssetChunk = exports.uploadContainer = exports.uploadContainerAndTriggerTestRun = exports.uploadAssetsFromZip = exports.uploadAssets = exports.uploadAssetsAndTriggerTestRun = exports.executeRemoteTestRun = void 0;
6
6
  var execute_remote_test_run_1 = require("./execute-remote-test-run");
7
7
  Object.defineProperty(exports, "executeRemoteTestRun", { enumerable: true, get: function () { return execute_remote_test_run_1.executeRemoteTestRun; } });
8
8
  var upload_assets_and_trigger_test_run_1 = require("./upload-assets-and-trigger-test-run");
@@ -14,5 +14,9 @@ var upload_container_and_trigger_test_run_1 = require("./upload-container-and-tr
14
14
  Object.defineProperty(exports, "uploadContainerAndTriggerTestRun", { enumerable: true, get: function () { return upload_container_and_trigger_test_run_1.uploadContainerAndTriggerTestRun; } });
15
15
  var upload_container_1 = require("./upload-container");
16
16
  Object.defineProperty(exports, "uploadContainer", { enumerable: true, get: function () { return upload_container_1.uploadContainer; } });
17
+ var upload_asset_chunk_1 = require("./upload-asset-chunk");
18
+ Object.defineProperty(exports, "uploadAssetChunk", { enumerable: true, get: function () { return upload_asset_chunk_1.uploadAssetChunk; } });
19
+ var run_with_uploaded_asset_chunks_1 = require("./run-with-uploaded-asset-chunks");
20
+ Object.defineProperty(exports, "runWithUploadedAssetChunks", { enumerable: true, get: function () { return run_with_uploaded_asset_chunks_1.runWithUploadedAssetChunks; } });
17
21
  //# sourceMappingURL=index.js.map
18
- //# debugId=17eac0bf-6532-59b4-a4a3-2ea66dec47e5
22
+ //# debugId=f03bb35e-984d-50e7-8b01-64ba402ee008
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourceRoot":"","names":[],"mappings":";;;;;AAAA,qEAAiE;AAAxD,+HAAA,oBAAoB,OAAA;AAC7B,2FAAqF;AAA5E,mJAAA,6BAA6B,OAAA;AACtC,2DAAyE;AAAhE,kHAAA,YAAY,OAAA;AAAE,yHAAA,mBAAmB,OAAA;AAC1C,iGAA2F;AAAlF,yJAAA,gCAAgC,OAAA;AACzC,uDAAqD;AAA5C,mHAAA,eAAe,OAAA","debugId":"17eac0bf-6532-59b4-a4a3-2ea66dec47e5"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourceRoot":"","names":[],"mappings":";;;;;AAAA,qEAAiE;AAAxD,+HAAA,oBAAoB,OAAA;AAC7B,2FAAqF;AAA5E,mJAAA,6BAA6B,OAAA;AACtC,2DAAyE;AAAhE,kHAAA,YAAY,OAAA;AAAE,yHAAA,mBAAmB,OAAA;AAC1C,iGAA2F;AAAlF,yJAAA,gCAAgC,OAAA;AACzC,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,2DAAiF;AAAxE,sHAAA,gBAAgB,OAAA;AACzB,mFAI0C;AAHxC,4IAAA,0BAA0B,OAAA","debugId":"f03bb35e-984d-50e7-8b01-64ba402ee008"}
@@ -0,0 +1,26 @@
1
+ import { AssetUploadMetadata, TestRun } from "@alwaysmeticulous/api";
2
+ import { ChunkPathOverlap, createClient, ProjectAssetChunkReference, ProjectIdentifier } from "@alwaysmeticulous/client";
3
+ export interface RunWithUploadedAssetChunksOptions extends ProjectIdentifier {
4
+ client: ReturnType<typeof createClient>;
5
+ commitSha: string;
6
+ baseSha?: string | undefined;
7
+ gitDiffOutput?: string | undefined;
8
+ withUncommittedChanges?: boolean | undefined;
9
+ waitForBase: boolean;
10
+ rewrites: AssetUploadMetadata["rewrites"];
11
+ createDeployment?: boolean;
12
+ assetReferencesManifest: ProjectAssetChunkReference[];
13
+ }
14
+ export interface RunWithUploadedAssetChunksResult {
15
+ testRun: TestRun | null;
16
+ message?: string;
17
+ overlaps?: ChunkPathOverlap[];
18
+ overlapsTruncated?: boolean;
19
+ }
20
+ /**
21
+ * Two-phase chunked-asset-upload run: (1) create the deployment row and obtain
22
+ * the server-generated id, (2) upload the git diff to S3 keyed by that id, then
23
+ * trigger the run, polling for the base test run with the same retry/fallback
24
+ * shape as `completeUploadAndWaitForBase` in `asset-upload-utils`.
25
+ */
26
+ export declare const runWithUploadedAssetChunks: ({ client, commitSha, baseSha, gitDiffOutput, withUncommittedChanges, waitForBase, rewrites, createDeployment, assetReferencesManifest, projectId, }: RunWithUploadedAssetChunksOptions) => Promise<RunWithUploadedAssetChunksResult>;
@@ -0,0 +1,123 @@
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]="0e89a3af-3f2c-5083-ac6c-7d95df1709b9")}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.runWithUploadedAssetChunks = void 0;
39
+ const client_1 = require("@alwaysmeticulous/client");
40
+ const common_1 = require("@alwaysmeticulous/common");
41
+ const Sentry = __importStar(require("@sentry/node"));
42
+ const asset_upload_utils_1 = require("./asset-upload-utils");
43
+ const poll_for_base_test_run_1 = require("./poll-for-base-test-run");
44
+ /**
45
+ * Two-phase chunked-asset-upload run: (1) create the deployment row and obtain
46
+ * the server-generated id, (2) upload the git diff to S3 keyed by that id, then
47
+ * trigger the run, polling for the base test run with the same retry/fallback
48
+ * shape as `completeUploadAndWaitForBase` in `asset-upload-utils`.
49
+ */
50
+ const runWithUploadedAssetChunks = async ({ client, commitSha, baseSha, gitDiffOutput, withUncommittedChanges, waitForBase, rewrites, createDeployment = true, assetReferencesManifest, projectId, }) => {
51
+ const logger = (0, common_1.initLogger)();
52
+ // Phase 1: create the deployment row and get back the server-generated id.
53
+ // No replay is triggered yet — that happens in phase 2, after the git diff
54
+ // (if any) has been uploaded to S3 keyed by this id.
55
+ const { sourceDeploymentId, overlaps, overlapsTruncated } = await (0, client_1.createRunWithUploadedAssetChunks)({
56
+ client,
57
+ commitSha,
58
+ createDeployment,
59
+ assetReferencesManifest,
60
+ rewrites,
61
+ ...(projectId ? { projectId } : {}),
62
+ });
63
+ // Overlaps are computed on the phase-1 response only; they describe the
64
+ // manifest itself, which doesn't change when triggering the run.
65
+ const overlapsResult = overlaps && overlaps.length > 0
66
+ ? { overlaps, ...(overlapsTruncated ? { overlapsTruncated: true } : {}) }
67
+ : {};
68
+ // Dry run (createDeployment: false) creates no deployment, so there is no
69
+ // diff to upload and no run to trigger — just surface the overlaps.
70
+ if (createDeployment === false || !sourceDeploymentId) {
71
+ return { testRun: null, ...overlapsResult };
72
+ }
73
+ // Upload the git diff to S3, keyed by the deployment id, so the replay can
74
+ // read it. Mirrors uploadAssetsStreaming / uploadContainerAndTriggerTestRun.
75
+ if (gitDiffOutput) {
76
+ await (0, asset_upload_utils_1.uploadGitDiffToS3)({
77
+ client,
78
+ uploadId: sourceDeploymentId,
79
+ gitDiffOutput,
80
+ ...(projectId ? { projectId } : {}),
81
+ });
82
+ }
83
+ // Phase 2: trigger the run against the created deployment, polling for the
84
+ // base test run with the same retry/fallback shape as the asset upload flow.
85
+ const args = {
86
+ client,
87
+ sourceDeploymentId,
88
+ commitSha,
89
+ ...(baseSha ? { baseSha } : {}),
90
+ ...(gitDiffOutput ? { hasGitDiff: true } : {}),
91
+ ...(withUncommittedChanges ? { withUncommittedChanges } : {}),
92
+ mustHaveBase: waitForBase,
93
+ ...(projectId ? { projectId } : {}),
94
+ };
95
+ const initialResult = await (0, client_1.triggerRunWithUploadedAssetChunks)(args);
96
+ const { testRun, baseNotFound, message } = await (0, poll_for_base_test_run_1.pollWhileBaseNotFound)({
97
+ initialResult: {
98
+ testRun: initialResult?.testRun ?? null,
99
+ baseNotFound: initialResult?.baseNotFound,
100
+ message: initialResult?.message,
101
+ },
102
+ retryFn: () => (0, client_1.triggerRunWithUploadedAssetChunks)(args),
103
+ fallbackFn: () => (0, client_1.triggerRunWithUploadedAssetChunks)({ ...args, mustHaveBase: false }),
104
+ });
105
+ Sentry.captureMessage("Test run triggered against uploaded asset chunks", {
106
+ level: "debug",
107
+ extra: {
108
+ commitSha,
109
+ testRunId: testRun?.id,
110
+ baseNotFound,
111
+ chunkCount: assetReferencesManifest.length,
112
+ },
113
+ });
114
+ logger.info(`Test run triggered against ${assetReferencesManifest.length} uploaded asset chunk(s)`);
115
+ return {
116
+ testRun: testRun ?? null,
117
+ ...(message ? { message } : {}),
118
+ ...overlapsResult,
119
+ };
120
+ };
121
+ exports.runWithUploadedAssetChunks = runWithUploadedAssetChunks;
122
+ //# sourceMappingURL=run-with-uploaded-asset-chunks.js.map
123
+ //# debugId=0e89a3af-3f2c-5083-ac6c-7d95df1709b9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-with-uploaded-asset-chunks.js","sources":["../src/run-with-uploaded-asset-chunks.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"0e89a3af-3f2c-5083-ac6c-7d95df1709b9"}
@@ -0,0 +1,40 @@
1
+ import { ProjectIdentifier } from "@alwaysmeticulous/client";
2
+ export interface UploadAssetChunkOptions extends ProjectIdentifier {
3
+ apiToken: string | null | undefined;
4
+ chunkName: string;
5
+ chunkVersionId: string;
6
+ chunkAssetsDirectory: string;
7
+ chunkAssetsDirectoryPrefix?: string | undefined;
8
+ commitSha?: string | undefined;
9
+ /**
10
+ * When true, the server re-issues a presigned URL even if the chunk is
11
+ * already `uploaded`. Use for recovery from corrupted S3 objects.
12
+ */
13
+ force?: boolean;
14
+ }
15
+ /**
16
+ * Tars `chunkAssetsDirectory` (prepending `chunkAssetsDirectoryPrefix` to
17
+ * each entry's path inside the tar), compresses it with raw deflate (the
18
+ * same encoding the non-chunked tar.d path uses), uploads to S3 via a
19
+ * presigned URL, then marks the chunk as uploaded. The asset server
20
+ * inflates each chunk on demand and serves files through a tar-aware
21
+ * facade. A `files.json` index listing the paths inside the tar is uploaded
22
+ * alongside the tarball so the server can serve individual files by name.
23
+ */
24
+ export declare const uploadAssetChunk: ({ apiToken: apiToken_, chunkName, chunkVersionId, chunkAssetsDirectory, chunkAssetsDirectoryPrefix, commitSha, force, projectId, }: UploadAssetChunkOptions) => Promise<void>;
25
+ /**
26
+ * Streams a tar of `cwd` through `DeflateRaw` and writes the compressed
27
+ * bytes to `destination`. Produces the same on-disk format as the
28
+ * non-chunked `tar.d` archives (raw deflate, no zlib header) so the asset
29
+ * server can decompress chunks with the existing
30
+ * `streamDownloadAndInflateTar` helper.
31
+ *
32
+ * Exported for tests.
33
+ */
34
+ export declare const writeCompressedTar: ({ cwd, destination, prefix, }: {
35
+ cwd: string;
36
+ destination: string;
37
+ prefix?: string;
38
+ }) => Promise<{
39
+ filePaths: string[];
40
+ }>;
@@ -0,0 +1,176 @@
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]="78d197d5-eb3a-590a-9062-9924a73ea63e")}catch(e){}}();
3
+
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.writeCompressedTar = exports.uploadAssetChunk = void 0;
6
+ const fs_1 = require("fs");
7
+ const promises_1 = require("fs/promises");
8
+ const os_1 = require("os");
9
+ const path_1 = require("path");
10
+ const zlib_1 = require("zlib");
11
+ const client_1 = require("@alwaysmeticulous/client");
12
+ const common_1 = require("@alwaysmeticulous/common");
13
+ const fast_zlib_1 = require("fast-zlib");
14
+ const tar_1 = require("tar");
15
+ /**
16
+ * Matches the deflate level used by the non-chunked tar.d uploader so the
17
+ * two encoding paths produce comparable artifacts (see
18
+ * `MultipartCompressingUploader`).
19
+ */
20
+ const COMPRESSION_LEVEL = 3;
21
+ /**
22
+ * Tars `chunkAssetsDirectory` (prepending `chunkAssetsDirectoryPrefix` to
23
+ * each entry's path inside the tar), compresses it with raw deflate (the
24
+ * same encoding the non-chunked tar.d path uses), uploads to S3 via a
25
+ * presigned URL, then marks the chunk as uploaded. The asset server
26
+ * inflates each chunk on demand and serves files through a tar-aware
27
+ * facade. A `files.json` index listing the paths inside the tar is uploaded
28
+ * alongside the tarball so the server can serve individual files by name.
29
+ */
30
+ const uploadAssetChunk = async ({ apiToken: apiToken_, chunkName, chunkVersionId, chunkAssetsDirectory, chunkAssetsDirectoryPrefix, commitSha, force, projectId, }) => {
31
+ const logger = (0, common_1.initLogger)();
32
+ const resolvedDir = (0, path_1.resolve)(chunkAssetsDirectory);
33
+ const dirStat = await (0, promises_1.stat)(resolvedDir).catch(() => null);
34
+ if (!dirStat?.isDirectory()) {
35
+ throw new Error(`chunkAssetsDirectory does not exist or is not a directory: ${resolvedDir}`);
36
+ }
37
+ const apiToken = (0, client_1.getApiToken)(apiToken_);
38
+ if (!apiToken) {
39
+ throw new Error("You must provide an API token by using the --apiToken parameter");
40
+ }
41
+ const client = (0, client_1.createClient)({ apiToken });
42
+ const tempDir = await (0, promises_1.mkdtemp)((0, path_1.join)((0, os_1.tmpdir)(), "asset-chunk-"));
43
+ const tarballPath = (0, path_1.join)(tempDir, "chunk.tar.d");
44
+ try {
45
+ logger.info(`Building asset chunk tarball for ${chunkName}@${chunkVersionId}...`);
46
+ const { filePaths } = await (0, exports.writeCompressedTar)({
47
+ cwd: resolvedDir,
48
+ destination: tarballPath,
49
+ ...(chunkAssetsDirectoryPrefix
50
+ ? { prefix: chunkAssetsDirectoryPrefix }
51
+ : {}),
52
+ });
53
+ const { size: tarballSize } = await (0, promises_1.stat)(tarballPath);
54
+ logger.info(`Tarball built (${tarballSize} bytes). Requesting upload URL...`);
55
+ const response = await (0, client_1.requestAssetChunkUpload)({
56
+ client,
57
+ chunkName,
58
+ chunkVersionId,
59
+ tarballSize,
60
+ ...(commitSha ? { commitSha } : {}),
61
+ ...(force ? { force: true } : {}),
62
+ ...(projectId ? { projectId } : {}),
63
+ });
64
+ if (response.alreadyUploaded) {
65
+ logger.info(`Asset chunk ${chunkName}@${chunkVersionId} already uploaded; skipping upload.`);
66
+ return;
67
+ }
68
+ const { tarballUploadUrl, filesIndexUploadUrl, previousStatus } = response;
69
+ switch (previousStatus) {
70
+ case null:
71
+ break;
72
+ case "deleted":
73
+ logger.info(`Asset chunk ${chunkName}@${chunkVersionId} was previously deleted by retention policy; re-uploading.`);
74
+ break;
75
+ case "failed_uploading":
76
+ logger.info(`Asset chunk ${chunkName}@${chunkVersionId} had a prior failed upload attempt; re-uploading.`);
77
+ break;
78
+ case "pending_upload":
79
+ logger.warn(`Asset chunk ${chunkName}@${chunkVersionId} appears to have a concurrent upload in progress; this upload will race.`);
80
+ break;
81
+ case "uploaded":
82
+ logger.warn(`Force-overwriting existing asset chunk ${chunkName}@${chunkVersionId}.`);
83
+ break;
84
+ }
85
+ const filesIndexPath = (0, path_1.join)(tempDir, "files.json");
86
+ await (0, promises_1.writeFile)(filesIndexPath, JSON.stringify(filePaths));
87
+ const { size: filesIndexSize } = await (0, promises_1.stat)(filesIndexPath);
88
+ logger.info(`Uploading tarball and files index (${filePaths.length} files)...`);
89
+ const onRetry = (attempt, error) => {
90
+ const reason = error instanceof client_1.UploadError
91
+ ? `HTTP ${error.statusCode}`
92
+ : error instanceof Error
93
+ ? error.message
94
+ : String(error);
95
+ logger.warn(`Transient upload error on attempt ${attempt} (${reason}); will retry...`);
96
+ };
97
+ await Promise.all([
98
+ (0, client_1.retryTransientUploadErrors)(() => (0, client_1.putFileToSignedUrl)({
99
+ filePath: tarballPath,
100
+ signedUrl: tarballUploadUrl,
101
+ size: tarballSize,
102
+ contentType: "application/octet-stream",
103
+ }), { onRetry }),
104
+ (0, client_1.retryTransientUploadErrors)(() => (0, client_1.putFileToSignedUrl)({
105
+ filePath: filesIndexPath,
106
+ signedUrl: filesIndexUploadUrl,
107
+ size: filesIndexSize,
108
+ contentType: "application/json",
109
+ }), { onRetry }),
110
+ ]);
111
+ logger.info("Finalizing chunk upload...");
112
+ await (0, client_1.completeAssetChunkUpload)({
113
+ client,
114
+ chunkName,
115
+ chunkVersionId,
116
+ ...(commitSha ? { commitSha } : {}),
117
+ ...(projectId ? { projectId } : {}),
118
+ });
119
+ logger.info(`Asset chunk ${chunkName}@${chunkVersionId} uploaded.`);
120
+ }
121
+ finally {
122
+ await (0, promises_1.rm)(tempDir, { recursive: true, force: true });
123
+ }
124
+ };
125
+ exports.uploadAssetChunk = uploadAssetChunk;
126
+ /**
127
+ * Streams a tar of `cwd` through `DeflateRaw` and writes the compressed
128
+ * bytes to `destination`. Produces the same on-disk format as the
129
+ * non-chunked `tar.d` archives (raw deflate, no zlib header) so the asset
130
+ * server can decompress chunks with the existing
131
+ * `streamDownloadAndInflateTar` helper.
132
+ *
133
+ * Exported for tests.
134
+ */
135
+ const writeCompressedTar = ({ cwd, destination, prefix, }) => {
136
+ return new Promise((resolvePromise, reject) => {
137
+ const deflate = new fast_zlib_1.DeflateRaw({ level: COMPRESSION_LEVEL });
138
+ const outStream = (0, fs_1.createWriteStream)(destination);
139
+ const filePaths = [];
140
+ const tarStream = (0, tar_1.c)({
141
+ cwd,
142
+ follow: true,
143
+ portable: true,
144
+ ...(prefix ? { prefix } : {}),
145
+ onWriteEntry(entry) {
146
+ if (entry.type === "File") {
147
+ filePaths.push(entry.path);
148
+ }
149
+ },
150
+ }, ["."]);
151
+ const onError = (err) => {
152
+ tarStream.removeAllListeners();
153
+ outStream.removeAllListeners();
154
+ outStream.destroy();
155
+ reject(err);
156
+ };
157
+ tarStream.on("data", (chunk) => {
158
+ const compressed = deflate.process(chunk);
159
+ if (compressed.length > 0) {
160
+ outStream.write(compressed);
161
+ }
162
+ });
163
+ tarStream.on("error", onError);
164
+ outStream.on("error", onError);
165
+ tarStream.on("end", () => {
166
+ const finalChunk = deflate.process(Buffer.alloc(0), zlib_1.constants.Z_FINISH);
167
+ if (finalChunk.length > 0) {
168
+ outStream.write(finalChunk);
169
+ }
170
+ outStream.end(() => resolvePromise({ filePaths }));
171
+ });
172
+ });
173
+ };
174
+ exports.writeCompressedTar = writeCompressedTar;
175
+ //# sourceMappingURL=upload-asset-chunk.js.map
176
+ //# debugId=78d197d5-eb3a-590a-9062-9924a73ea63e
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload-asset-chunk.js","sources":["../src/upload-asset-chunk.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"78d197d5-eb3a-590a-9062-9924a73ea63e"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alwaysmeticulous/remote-replay-launcher",
3
- "version": "2.295.0",
3
+ "version": "2.297.0",
4
4
  "description": "Executes a remote replay on Meticulous' infrastructure",
5
5
  "license": "ISC",
6
6
  "main": "dist/index.js",
@@ -16,8 +16,8 @@
16
16
  "p-limit": "^3.1.0",
17
17
  "systeminformation": "^5.25.11",
18
18
  "tar": "^7.5.8",
19
- "@alwaysmeticulous/api": "2.295.0",
20
- "@alwaysmeticulous/client": "2.295.0",
19
+ "@alwaysmeticulous/api": "2.297.0",
20
+ "@alwaysmeticulous/client": "2.297.0",
21
21
  "@alwaysmeticulous/common": "2.293.0",
22
22
  "@alwaysmeticulous/tunnels-client": "2.293.0"
23
23
  },