From 99eeae20475a244aa125dd39c2d97e35599be9b0 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Wed, 23 Sep 2026 21:51:11 +0200 Subject: [PATCH] Assert the cultmesh-ts tarball carries its native/ payload The closure smoke already asserted dist/index.js and dist/index.d.ts for every workspace package; extend it for cultmesh-ts to assert the four committed native binaries plus SHA256SUMS, MANIFEST.txt and MSQUIC-LICENSE.txt are in the packed file list, on every host. The tarball carries both platforms; the host only decides which one loads. Cut 6 (packaging), 11.5/11.6. Co-Authored-By: Claude Sonnet 5 --- scripts/test-typescript-package-closure.mjs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/scripts/test-typescript-package-closure.mjs b/scripts/test-typescript-package-closure.mjs index 5f00aa47..02278760 100644 --- a/scripts/test-typescript-package-closure.mjs +++ b/scripts/test-typescript-package-closure.mjs @@ -39,6 +39,25 @@ try { const files = packed[0].files.map(file => file.path); assert.ok(files.includes("dist/index.js"), `${packageName} tarball is missing dist/index.js`); assert.ok(files.includes("dist/index.d.ts"), `${packageName} tarball is missing dist/index.d.ts`); + if (packageName === "cultmesh-ts") { + // The committed native binaries only reach a consumer if `files` (and + // therefore the packed tarball) actually carries them; a fresh clone, + // an `npm pack` tarball and the deploy `git archive` all depend on it. + // Assert on every host: the tarball carries both platforms, and the + // host only decides which one loads. + const requiredNativeFiles = [ + "native/win32-x64/gamecult_mesh_quic_native.dll", + "native/win32-x64/msquic.dll", + "native/linux-x64/libgamecult_mesh_quic_native.so", + "native/linux-x64/libmsquic.so.2", + "native/SHA256SUMS", + "native/MANIFEST.txt", + "native/MSQUIC-LICENSE.txt", + ]; + for (const requiredNativeFile of requiredNativeFiles) { + assert.ok(files.includes(requiredNativeFile), `cultmesh-ts tarball is missing ${requiredNativeFile}`); + } + } tarballs.push(join(tarballRoot, packed[0].filename)); }