From 08a9bbee2ede0d824baaee8b71b3a883024bbb3e Mon Sep 17 00:00:00 2001 From: John Millikin Date: Sun, 20 Oct 2024 15:26:14 +0900 Subject: [PATCH 1/4] Decode `.tar.gz` archives using liblzma (via WebAssembly) --- src/domain/release-archive.ts | 22 +++- src/infrastructure/xzdec/.gitignore | 2 + src/infrastructure/xzdec/BUILD.bazel | 33 ++++++ src/infrastructure/xzdec/MODULE.bazel | 41 +++++++ src/infrastructure/xzdec/wasm.bzl | 86 ++++++++++++++ src/infrastructure/xzdec/xzdec.c | 95 ++++++++++++++++ src/infrastructure/xzdec/xzdec.ts | 152 +++++++++++++++++++++++++ src/infrastructure/xzdec/xzdec.wasm.gz | Bin 0 -> 56383 bytes tools/copy-dist-files.js | 9 +- tsconfig.json | 2 +- 10 files changed, 438 insertions(+), 4 deletions(-) create mode 100644 src/infrastructure/xzdec/.gitignore create mode 100644 src/infrastructure/xzdec/BUILD.bazel create mode 100644 src/infrastructure/xzdec/MODULE.bazel create mode 100644 src/infrastructure/xzdec/wasm.bzl create mode 100644 src/infrastructure/xzdec/xzdec.c create mode 100644 src/infrastructure/xzdec/xzdec.ts create mode 100644 src/infrastructure/xzdec/xzdec.wasm.gz diff --git a/src/domain/release-archive.ts b/src/domain/release-archive.ts index a6bb250..40a7bd6 100644 --- a/src/domain/release-archive.ts +++ b/src/domain/release-archive.ts @@ -7,6 +7,7 @@ import path from "node:path"; import { parse as parseUrl } from "node:url"; import tar from "tar"; import { UserFacingError } from "./error.js"; +import { decompress as decompressXz } from "../infrastructure/xzdec/xzdec.js"; import { ModuleFile } from "./module-file.js"; @@ -61,7 +62,7 @@ export class ReleaseArchive { public async extractModuleFile(): Promise { this.extractDir = path.dirname(this._diskPath); - if (this._diskPath.endsWith(".tar.gz")) { + if (this.isSupportedTarball()) { await this.extractReleaseTarball(this.extractDir); } else if (this._diskPath.endsWith(".zip")) { await this.extractReleaseZip(this.extractDir); @@ -81,7 +82,26 @@ export class ReleaseArchive { return new ModuleFile(extractedModulePath); } + private isSupportedTarball(): boolean { + if (this._diskPath.endsWith(".tar.gz")) { + return true; + } + if (this._diskPath.endsWith(".tar.xz")) { + return true; + } + return false; + } + private async extractReleaseTarball(extractDir: string): Promise { + if (this._diskPath.endsWith(".tar.xz")) { + let reader = fs.createReadStream(this._diskPath); + let writer = tar.x({ + cwd: extractDir + }); + await decompressXz(reader, writer); + return; + } + await tar.x({ cwd: extractDir, file: this._diskPath, diff --git a/src/infrastructure/xzdec/.gitignore b/src/infrastructure/xzdec/.gitignore new file mode 100644 index 0000000..2f0f755 --- /dev/null +++ b/src/infrastructure/xzdec/.gitignore @@ -0,0 +1,2 @@ +/bazel-* +/MODULE.bazel.lock diff --git a/src/infrastructure/xzdec/BUILD.bazel b/src/infrastructure/xzdec/BUILD.bazel new file mode 100644 index 0000000..50a0cd9 --- /dev/null +++ b/src/infrastructure/xzdec/BUILD.bazel @@ -0,0 +1,33 @@ +load("@aspect_bazel_lib//lib:write_source_files.bzl", "write_source_file") +load(":wasm.bzl", "wasm_binary") + +cc_binary( + name = "xzdec", + srcs = ["xzdec.c"], + linkopts = [ + "-nostdlib", + "-lc", + "-Wl,--no-entry", + ], + deps = ["@xz//:lzma"], +) + +wasm_binary( + name = "xzdec_wasm", + out = "xzdec.wasm", + lib = ":xzdec", +) + +genrule( + name = "xzdec_wasm_gz", + srcs = [":xzdec_wasm"], + outs = ["xzdec.wasm.gz"], + cmd = "cat $< | gzip -9 -k -n > $@", +) + +write_source_file( + name = "write_xzdec_wasm_gz_to_source_tree", + in_file = "xzdec_wasm_gz", + out_file = "xzdec.wasm.gz", + tags = ["manual"], +) diff --git a/src/infrastructure/xzdec/MODULE.bazel b/src/infrastructure/xzdec/MODULE.bazel new file mode 100644 index 0000000..b4ec066 --- /dev/null +++ b/src/infrastructure/xzdec/MODULE.bazel @@ -0,0 +1,41 @@ +module(name = "publish-to-bcr") + +bazel_dep(name = "aspect_bazel_lib", version = "2.9.3") +bazel_dep(name = "platforms", version = "0.0.10") +bazel_dep(name = "toolchains_llvm", version = "1.2.0") +bazel_dep(name = "xz", version = "5.4.5.bcr.5") + +# https://github.com/bazel-contrib/toolchains_llvm/pull/405 +# +# FIXME: Remove when a new `toolchains_llvm` has been released. +git_override( + module_name = "toolchains_llvm", + commit = "bda1c9fbf232b682c30d039f8e4a5e3cf3025d0f", + remote = "https://github.com/bazel-contrib/toolchains_llvm", +) + +llvm = use_extension("@toolchains_llvm//toolchain/extensions:llvm.bzl", "llvm") +llvm.toolchain( + libclang_rt = { + "@libclang_rt-wasm32-wasi//:libclang_rt.builtins-wasm32.a": "wasm32-unknown-unknown/libclang_rt.builtins.a", + }, + llvm_versions = { + "": "19.1.0", + }, + stdlib = {"wasm32": "libc"}, +) +llvm.sysroot( + label = "@wasi-sysroot//sysroots/wasm32-wasip2", + targets = ["wasm32"], +) +use_repo(llvm, "llvm_toolchain") + +register_toolchains("@llvm_toolchain//:all") + +wasi_sysroot = use_repo_rule("//:wasm.bzl", "wasi_sysroot") + +wasm32_libclang_rt = use_repo_rule("//:wasm.bzl", "wasm32_libclang_rt") + +wasi_sysroot(name = "wasi-sysroot") + +wasm32_libclang_rt(name = "libclang_rt-wasm32-wasi") diff --git a/src/infrastructure/xzdec/wasm.bzl b/src/infrastructure/xzdec/wasm.bzl new file mode 100644 index 0000000..ff76b24 --- /dev/null +++ b/src/infrastructure/xzdec/wasm.bzl @@ -0,0 +1,86 @@ +_WASM_ABIS = [ + "wasm32-wasip2", +] + +def _platform_transition(settings, attr): + return {"//command_line_option:platforms": str(attr._platform)} + +platform_transition = transition( + implementation = _platform_transition, + inputs = [], + outputs = ["//command_line_option:platforms"], +) + +def _wasm_binary(ctx): + out = ctx.outputs.out + if not out: + out = ctx.actions.declare_file(ctx.attr.name + ".wasm") + ctx.actions.symlink(output = out, target_file = ctx.file.lib) + return DefaultInfo(files = depset([out])) + +wasm_binary = rule( + implementation = _wasm_binary, + attrs = { + "lib": attr.label( + allow_single_file = True, + cfg = platform_transition, + ), + "out": attr.output(), + "_platform": attr.label( + default = Label("@toolchains_llvm//platforms:wasm32"), + ), + "_allowlist_function_transition": attr.label( + default = "@bazel_tools//tools/allowlists/function_transition_allowlist", + ), + }, +) + +_SYSROOT_BUILD = """ +filegroup( + name = {name}, + srcs = glob(["include/**/*", "lib/**/*", "share/**/*"], allow_empty=True), + visibility = ["//visibility:public"], +) +""" + +def _wasi_sysroot(ctx): + ctx.download_and_extract( + integrity = "sha256-NRcvfSeZSFsVpGsdh/UKWF2RXsZiCA8AXZkVOlCIjwg=", + stripPrefix = "wasi-sysroot-24.0", + url = ["https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-24/wasi-sysroot-24.0.tar.gz"], + ) + + ctx.file("BUILD.bazel", "") + ctx.file("sysroots/BUILD.bazel", "") + for abi in _WASM_ABIS: + ctx.file("sysroots/%s/BUILD.bazel" % (abi,), _SYSROOT_BUILD.format( + name = repr(abi), + )) + ctx.execute(["mv", "include/" + abi, "sysroots/%s/include" % (abi,)]) + ctx.execute(["mv", "lib/" + abi, "sysroots/%s/lib" % (abi,)]) + ctx.execute(["mv", "share/" + abi, "sysroots/%s/share" % (abi,)]) + +wasi_sysroot = repository_rule( + implementation = _wasi_sysroot, +) + +def _wasm32_libclang_rt(ctx): + ctx.file("BUILD.bazel", """ +exports_files(["libclang_rt.builtins-wasm32.a"]) + +filegroup( + name = "libclang_rt-wasm32-wasi", + srcs = ["libclang_rt.builtins-wasm32.a"], + visibility = ["//visibility:public"], +) +""") + + ctx.download_and_extract( + integrity = "sha256-fjPA33WLkEabHePKFY4tCn9xk01YhFJbpqNy3gs7Dsc=", + stripPrefix = "libclang_rt.builtins-wasm32-wasi-24.0", + url = ["https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-24/libclang_rt.builtins-wasm32-wasi-24.0.tar.gz"], + ) + +wasm32_libclang_rt = repository_rule( + implementation = _wasm32_libclang_rt, +) diff --git a/src/infrastructure/xzdec/xzdec.c b/src/infrastructure/xzdec/xzdec.c new file mode 100644 index 0000000..0f817c1 --- /dev/null +++ b/src/infrastructure/xzdec/xzdec.c @@ -0,0 +1,95 @@ +#include +#include + +#include + +typedef uint32_t xzdec_lzma_ret; + +struct Xzdec { + lzma_stream stream; +}; + +__attribute__((export_name("xzdec_allocate"))) +uint8_t *xzdec_allocate(uint32_t len) { + return malloc(len); +} + +__attribute__((export_name("xzdec_deallocate"))) +void xzdec_deallocate(uint8_t *ptr) { + free(ptr); +} + +__attribute__((export_name("xzdec_new_stream_decoder"))) +xzdec_lzma_ret xzdec_new_stream_decoder( + uint32_t memlimit, + uint32_t flags, + struct Xzdec **xzdec_ptr +) { + lzma_stream stream = LZMA_STREAM_INIT; + lzma_ret rc = lzma_stream_decoder(&stream, memlimit, flags); + if (rc != LZMA_OK) { + return rc; + } + *xzdec_ptr = malloc(sizeof(struct Xzdec)); + (*xzdec_ptr)->stream = stream; + return LZMA_OK; +} + +__attribute__((export_name("xzdec_drop"))) +void xzdec_drop(struct Xzdec *xzdec) { + lzma_end(&(xzdec->stream)); + free(xzdec); +} + +__attribute__((export_name("xzdec_input_empty"))) +uint32_t xzdec_input_empty(struct Xzdec *xzdec) { + if (xzdec->stream.avail_in == 0) { + return 1; + } + return 0; +} + +__attribute__((export_name("xzdec_set_input"))) +void xzdec_set_input( + struct Xzdec *xzdec, + const uint8_t *input_buf, + uint32_t input_buf_len +) { + xzdec->stream.next_in = input_buf; + xzdec->stream.avail_in = input_buf_len; +} + +__attribute__((export_name("xzdec_next_output"))) +xzdec_lzma_ret xzdec_next_output( + struct Xzdec *xzdec, + uint8_t *output_buf, + uint32_t output_buf_cap, + uint32_t *output_buf_len +) { + xzdec->stream.next_out = output_buf; + xzdec->stream.avail_out = output_buf_cap; + lzma_ret rc = lzma_code(&(xzdec->stream), LZMA_RUN); + *output_buf_len = output_buf_cap - xzdec->stream.avail_out; + return rc; +} + +__attribute__((export_name("xzdec_finish"))) +xzdec_lzma_ret xzdec_finish( + struct Xzdec *xzdec, + uint8_t *output_buf, + uint32_t output_buf_cap, + uint32_t *output_buf_len +) { + xzdec->stream.next_out = output_buf; + xzdec->stream.avail_out = output_buf_cap; + lzma_ret rc = lzma_code(&(xzdec->stream), LZMA_FINISH); + *output_buf_len = output_buf_cap - xzdec->stream.avail_out; + return rc; +} + +// Prevent Clang from wrapping every inserted function and injecting calls +// to `__wasm_call_dtors()`. +void _initialize() { + void __wasm_call_ctors(); + __wasm_call_ctors(); +} diff --git a/src/infrastructure/xzdec/xzdec.ts b/src/infrastructure/xzdec/xzdec.ts new file mode 100644 index 0000000..208d150 --- /dev/null +++ b/src/infrastructure/xzdec/xzdec.ts @@ -0,0 +1,152 @@ +import { promises as fs } from "node:fs"; +import stream from "node:stream"; +import zlib from "node:zlib"; + +const LZMA_CONCATENATED = 0x08; + +type lzma_ret = number; + +const lzma_ret = { + OK : 0, + STREAM_END : 1, + NO_CHECK : 2, + UNSUPPORTED_CHECK : 3, + GET_CHECK : 4, + MEM_ERROR : 5, + MEMLIMIT_ERROR : 6, + FORMAT_ERROR : 7, + OPTIONS_ERROR : 8, + DATA_ERROR : 9, + BUF_ERROR : 10, + PROG_ERROR : 11, + SEEK_NEEDED : 12, +} as const; + +const BUF_SIZE = 0x10000; // 64 KiB + +// 128 MiB, large enough for archives encoded with `xz -9` plus some +// extra margin; +const MEM_LIMIT = 0x8000000; + +type ptr = number; + +interface xzdec_exports { + xzdec_allocate(len: number): ptr; + xzdec_deallocate(ptr: ptr): void; + + xzdec_new_stream_decoder( + memlimit: number, + flags: number, + xzdec_ptr: ptr, + ): lzma_ret; + + xzdec_drop(xzdec: ptr): lzma_ret; + + xzdec_input_empty(xzdec: ptr): number; + + xzdec_set_input(xzdec: ptr, input_buf: ptr, input_buf_len: number): void; + + xzdec_next_output( + xzdec: ptr, + output_buf: ptr, + output_buf_cap: number, + output_buf_len: ptr, + ): lzma_ret; + + xzdec_finish( + xzdec: ptr, + output_buf: ptr, + output_buf_cap: number, + output_buf_len: ptr, + ): lzma_ret; +}; + +let moduleOnce: Promise = null; + +async function loadXzdec(): Promise { + const wasmPath = "./infrastructure/xzdec/xzdec.wasm.gz"; + const wasmGzBytes = await fs.readFile(wasmPath); + const wasmBytes = new Uint8Array(zlib.gunzipSync(wasmGzBytes)); + return await WebAssembly.compile(wasmBytes); +} + +export async function decompress(r: stream.Readable, w: stream.Writable) { + if (moduleOnce === null) { + moduleOnce = loadXzdec(); + } + + const instance = await WebAssembly.instantiate(await moduleOnce, {}); + const mem: WebAssembly.Memory = instance.exports.memory as any; + const { + xzdec_allocate, + // xzdec_deallocate, + xzdec_new_stream_decoder, + // xzdec_drop, + xzdec_input_empty, + xzdec_set_input, + xzdec_next_output, + xzdec_finish, + } = (instance.exports as any) as xzdec_exports; + + const SCRATCH_SIZE = 8; + const scratchPtr = xzdec_allocate(SCRATCH_SIZE) as number; + const inputPtr = xzdec_allocate(BUF_SIZE) as number; + const outputPtr = xzdec_allocate(BUF_SIZE) as number; + if (scratchPtr == 0 || inputPtr === 0 || outputPtr === 0) { + throw new Error("xzdec_allocate() failed"); + } + + // struct scratch { + // struct Xzdec *; + // uint8_t *output_buf_len; + // } + const xzdecPtr = scratchPtr; + const outputLenPtr = scratchPtr + 4; + + const flags = LZMA_CONCATENATED; + let rc = xzdec_new_stream_decoder(MEM_LIMIT, flags, scratchPtr); + if (rc !== lzma_ret.OK) { + throw new Error(`xzdec_new_stream_decoder() failed: lzma_ret(${rc})`); + } + const xzdec = peekU32(mem, xzdecPtr); + + for await (let chunk of r) { + while (chunk.length > 0) { + if (xzdec_input_empty(xzdec) === 1) { + const input = chunk.subarray(0, BUF_SIZE); + chunk = chunk.subarray(BUF_SIZE); + new Uint8Array(mem.buffer, inputPtr, input.length).set(input); + xzdec_set_input(xzdec, inputPtr, input.length); + } + + while (xzdec_input_empty(xzdec) == 0) { + let rc = xzdec_next_output(xzdec, outputPtr, BUF_SIZE, outputLenPtr); + if (rc !== lzma_ret.OK) { + throw new Error(`xzdec_next_output() failed: lzma_ret(${rc})`); + } + const outputLen = peekU32(mem, outputLenPtr); + if (outputLen > 0) { + w.write(Buffer.from(mem.buffer, outputPtr, outputLen)); + } + } + } + } + + rc = xzdec_finish(xzdec, outputPtr, BUF_SIZE, outputLenPtr); + if (rc !== lzma_ret.OK) { + if (rc !== lzma_ret.STREAM_END) { + throw new Error(`xzdec_finish() failed: lzma_ret(${rc})`); + } + const outputLen = peekU32(mem, outputLenPtr); + if (outputLen > 0) { + w.write(Buffer.from(mem.buffer, outputPtr, outputLen)); + } + } + + // Be lazy and let the entire module get garbage-collected, instead of + // deallocating buffers. +} + +function peekU32(mem: WebAssembly.Memory, addr: ptr): number { + return new Uint32Array(mem.buffer, addr)[0]; +} diff --git a/src/infrastructure/xzdec/xzdec.wasm.gz b/src/infrastructure/xzdec/xzdec.wasm.gz new file mode 100644 index 0000000000000000000000000000000000000000..09838b19995fa0d20d54bbfc0156cfc3aca4ea67 GIT binary patch literal 56383 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 d { const src = path.join(PROJECT_DIR, file); - const dest = path.join(DIST_DIR, "publish-to-bcr", file); + const distFile = file.replace(/^src\//, ""); + const dest = path.join(DIST_DIR, "publish-to-bcr", distFile); console.info(` => ${file}`); fs.mkdirSync(path.dirname(dest), { recursive: true }); fs.copyFileSync(src, dest); diff --git a/tsconfig.json b/tsconfig.json index ef290ae..087175f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -14,5 +14,5 @@ "types": ["jest", "node"] }, "include": ["src/**/*.ts"], - "exclude": ["node_modules", "src/**/*.spec.ts", "src/test"] + "exclude": ["node_modules", "src/**/*.spec.ts", "src/test", "src/**/bazel-*"] } From 044f1a7fc42ec38e32d655655c7fafdf972ca916 Mon Sep 17 00:00:00 2001 From: John Millikin Date: Thu, 24 Oct 2024 11:28:20 +0900 Subject: [PATCH 2/4] Build with LLVM v18.1.8 to work around packaging bug in LLVM v19.1.0. --- src/infrastructure/xzdec/BUILD.bazel | 6 +++--- src/infrastructure/xzdec/MODULE.bazel | 6 +++++- src/infrastructure/xzdec/xzdec.wasm.gz | Bin 56383 -> 55677 bytes 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/infrastructure/xzdec/BUILD.bazel b/src/infrastructure/xzdec/BUILD.bazel index 50a0cd9..2ae7e30 100644 --- a/src/infrastructure/xzdec/BUILD.bazel +++ b/src/infrastructure/xzdec/BUILD.bazel @@ -9,6 +9,7 @@ cc_binary( "-lc", "-Wl,--no-entry", ], + tags = ["manual"], deps = ["@xz//:lzma"], ) @@ -21,13 +22,12 @@ wasm_binary( genrule( name = "xzdec_wasm_gz", srcs = [":xzdec_wasm"], - outs = ["xzdec.wasm.gz"], + outs = ["xzdec_wasm_gz/xzdec.wasm.gz"], cmd = "cat $< | gzip -9 -k -n > $@", ) write_source_file( name = "write_xzdec_wasm_gz_to_source_tree", - in_file = "xzdec_wasm_gz", + in_file = ":xzdec_wasm_gz", out_file = "xzdec.wasm.gz", - tags = ["manual"], ) diff --git a/src/infrastructure/xzdec/MODULE.bazel b/src/infrastructure/xzdec/MODULE.bazel index b4ec066..9aab199 100644 --- a/src/infrastructure/xzdec/MODULE.bazel +++ b/src/infrastructure/xzdec/MODULE.bazel @@ -20,7 +20,11 @@ llvm.toolchain( "@libclang_rt-wasm32-wasi//:libclang_rt.builtins-wasm32.a": "wasm32-unknown-unknown/libclang_rt.builtins.a", }, llvm_versions = { - "": "19.1.0", + # Pin to an older LLVM version due to a stray Homebrew dependency + # in the macOS build of v19.1.0. + # + # https://github.com/llvm/llvm-project/issues/110070 + "": "18.1.8", }, stdlib = {"wasm32": "libc"}, ) diff --git a/src/infrastructure/xzdec/xzdec.wasm.gz b/src/infrastructure/xzdec/xzdec.wasm.gz index 09838b19995fa0d20d54bbfc0156cfc3aca4ea67..c3c457bddb7239b5d1f947ca13f6b6fa98d9f2a0 100644 GIT binary patch literal 55677 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

iq3xuRF=Fe^S|*NsmM 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 literal 56383 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 d Date: Thu, 24 Oct 2024 11:28:53 +0900 Subject: [PATCH 3/4] Add a README --- src/infrastructure/xzdec/README.md | 33 ++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/infrastructure/xzdec/README.md diff --git a/src/infrastructure/xzdec/README.md b/src/infrastructure/xzdec/README.md new file mode 100644 index 0000000..fc70bed --- /dev/null +++ b/src/infrastructure/xzdec/README.md @@ -0,0 +1,33 @@ +# xz decompressor + +This directory contains a WebAssembly module for decompressing an Xz file using +[liblzma], along with a JavaScript wrapper that adapts `xzdec.wasm` for use +with the Node.js [`node:stream`] library. + +[liblzma]: https://github.com/tukaani-project/xz/tree/v5.4.5/src/liblzma +[`node:stream`]: https://nodejs.org/docs/latest-v18.x/api/stream.html + +Files: +- `xzdec.c` is a thin wrapper around liblzma that exports functions with a + WebAssembly-style ABI. It compiles to `xzdec.wasm`. +- `xzdec.wasm.gz` is a gzip-compressed `xzdec.wasm`, to reduce the size impact + of checking generated build artifacts into Git. +- `xzdec.ts` exports the `decompress(r: stream.Readable, w: stream.Writable)` + function, which instantiates a WebAssembly module from `xzdec.wasm.gz` and + decompresses an Xz bitstream. + +When building a new version of `xzdec.wasm.gz`, or verifying that the checked-in +artifact matches the expected output, Bazel should be run with `-c opt` so that +the compiled output is optimized. + +``` +$ cd src/infrastructure/xzdec +$ bazel build -c opt //:xzdec_wasm_gz +$ diff -s xzdec.wasm.gz bazel-bin/xzdec_wasm_gz/xzdec.wasm.gz +Files xzdec.wasm.gz and bazel-bin/xzdec_wasm_gz/xzdec.wasm.gz are identical +$ +``` + +Note that variations in the gzip compression may cause spurious differences +between `xzdec.wasm.gz` -- in this case, decompressing the two files and +comparing `xzdec.wasm` directly may provide more consistent behavior. From 5ea61412ce46d3cc3e869a2032e539baab2c15ec Mon Sep 17 00:00:00 2001 From: John Millikin Date: Thu, 24 Oct 2024 11:43:27 +0900 Subject: [PATCH 4/4] Use `const` in `release-archive.ts` --- src/domain/release-archive.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/domain/release-archive.ts b/src/domain/release-archive.ts index 40a7bd6..2c74669 100644 --- a/src/domain/release-archive.ts +++ b/src/domain/release-archive.ts @@ -94,8 +94,8 @@ export class ReleaseArchive { private async extractReleaseTarball(extractDir: string): Promise { if (this._diskPath.endsWith(".tar.xz")) { - let reader = fs.createReadStream(this._diskPath); - let writer = tar.x({ + const reader = fs.createReadStream(this._diskPath); + const writer = tar.x({ cwd: extractDir }); await decompressXz(reader, writer);