From c45b61a326c98246a4ec86f086e159d50d30d5fa Mon Sep 17 00:00:00 2001 From: LongYinan Date: Fri, 17 Sep 2021 19:42:10 +0800 Subject: [PATCH] chore: use @napi-rs/lzma to replace lzma-native --- package.json | 7 +- src/sysroot-fetcher.ts | 3 +- yarn.lock | 152 +++++++++++++++++++++++++---------------- 3 files changed, 98 insertions(+), 64 deletions(-) diff --git a/package.json b/package.json index e91213659..3978f92fa 100644 --- a/package.json +++ b/package.json @@ -39,12 +39,12 @@ }, "dependencies": { "@malept/cross-spawn-promise": "^2.0.0", + "@napi-rs/lzma": "^1.0.0", "colors": "^1.3.3", "debug": "^4.1.1", "detect-libc": "^1.0.3", "fs-extra": "^10.0.0", "got": "^11.7.0", - "lzma-native": "^8.0.1", "node-abi": "^3.0.0", "node-api-version": "^0.1.4", "node-gyp": "^8.1.0", @@ -60,7 +60,6 @@ "@types/debug": "^4.1.5", "@types/detect-libc": "^1.0.0", "@types/fs-extra": "^9.0.1", - "@types/lzma-native": "^4.0.0", "@types/mocha": "^9.0.0", "@types/node": "^16.0.1", "@types/node-abi": "^3.0.0", @@ -119,7 +118,9 @@ "node_modules" ], "mocha": { - "extensions": ["ts"], + "extensions": [ + "ts" + ], "require": "ts-node/register" }, "nyc": { diff --git a/src/sysroot-fetcher.ts b/src/sysroot-fetcher.ts index 8c7c905a9..b3551aed5 100644 --- a/src/sysroot-fetcher.ts +++ b/src/sysroot-fetcher.ts @@ -3,6 +3,7 @@ import debug from 'debug'; import * as fs from 'fs-extra'; import * as path from 'path'; import * as tar from 'tar'; +import { decompress } from '@napi-rs/lzma/xz' import { ELECTRON_GYP_DIR } from './constants'; import { fetch } from './fetcher'; @@ -35,7 +36,7 @@ export async function downloadLinuxSysroot(electronVersion: string, targetArch: if (sha !== actualSha) throw new Error(`Attempted to download the linux sysroot for ${electronVersion} but the SHA checksum did not match`); d('decompressing sysroot'); - sysrootBuffer = await new Promise(resolve => require('lzma-native').decompress(sysrootBuffer, undefined, (result: Buffer) => resolve(result))); // eslint-disable-line + sysrootBuffer = await decompress(sysrootBuffer) const tmpTarFile = path.resolve(ELECTRON_GYP_DIR, `${electronVersion}-${fileName}`); if (await fs.pathExists(tmpTarFile)) await fs.remove(tmpTarFile); diff --git a/yarn.lock b/yarn.lock index 8fdf0b789..ab9c1e617 100644 --- a/yarn.lock +++ b/yarn.lock @@ -329,6 +329,98 @@ dependencies: cross-spawn "^7.0.1" +"@napi-rs/lzma-android-arm64@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@napi-rs/lzma-android-arm64/-/lzma-android-arm64-1.0.0.tgz#a7c4cac27d4e19aee6667e4dd38ff9751ff9ea88" + integrity sha512-9hNF+rnAxOTdUje1fuYqkQvDXMcOryNTc2xWWizOsUYSuGJV+KVKznk/FZZGaSN3roKtGPf7LdqX7kKOmOVN9g== + +"@napi-rs/lzma-darwin-arm64@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@napi-rs/lzma-darwin-arm64/-/lzma-darwin-arm64-1.0.0.tgz#53ad894121035d0734950b2b4c66e0d56e10da50" + integrity sha512-Uiv4DLqNE55ljA6RB4PGdQPcg/rKLZ2jG6VuwCCxU/m/x14/ROWCnOgaLafV4/rnofe3FPAgD5D32hAdAKBI0Q== + +"@napi-rs/lzma-darwin-x64@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@napi-rs/lzma-darwin-x64/-/lzma-darwin-x64-1.0.0.tgz#3a9bffb9f51f18779a8b1ac154595d7a59745e40" + integrity sha512-9uskZsP6+6MyvS6+cxU/G15lMCW/VY6lApntmEJzCzoK0afY0XbJFAHgsaCh9D3LeeUyEnnWKzbbXJmcXwiRyA== + +"@napi-rs/lzma-freebsd-x64@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@napi-rs/lzma-freebsd-x64/-/lzma-freebsd-x64-1.0.0.tgz#c16dd5b8a8b1b6cf3ee5c424764f174a114a09ba" + integrity sha512-LJpZIfbuKTuOk6/Mg6YQl2f+yf2Ms2Ll0qisCbdFQRJhy/vJ90T8yP2PyDNNO/TNg45MHBO5rd8JwyA8ozJisw== + +"@napi-rs/lzma-linux-arm-gnueabihf@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@napi-rs/lzma-linux-arm-gnueabihf/-/lzma-linux-arm-gnueabihf-1.0.0.tgz#4042cc5e1c19acb1dfadc2caccd408eb06c505ea" + integrity sha512-3dIiGt4+Lo0icBBYd9kckgLjiAFkpZZBuTnqZRUm8UlqlsrHJrta0yJRzS2V7n3hAsQUoYEdc/eUMeuXR0JauQ== + +"@napi-rs/lzma-linux-arm64-gnu@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@napi-rs/lzma-linux-arm64-gnu/-/lzma-linux-arm64-gnu-1.0.0.tgz#a07458265593c4b8bf146c6fc5656f181efd2b88" + integrity sha512-OGf342BtrwwtjO2O9M708UehkpYJzTQ3J7rDQIi8jkSw8hwxzpZ47RUlO4v1Dy4ujXxIFg7P7hS4rSnPgMWezA== + +"@napi-rs/lzma-linux-arm64-musl@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@napi-rs/lzma-linux-arm64-musl/-/lzma-linux-arm64-musl-1.0.0.tgz#b0579eb8f43db98a9071470fe94f96624245578e" + integrity sha512-CIbOsjmf2GdBZhVo6QjPhIbIXwKMdkUw51pzAFS9VgtwSU7vmT8y8eS221sZewCXuv7bZTcFXbQPhe0F92Tffg== + +"@napi-rs/lzma-linux-x64-gnu@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.0.0.tgz#c25fd1685ccefc1ec9327908537a626cdb3bcb4f" + integrity sha512-37EtSHjtFTFeZL6xec5vIhQrZRpQdaCBNvqHHDpaInJRjueGw+WCa/Xcp3cVmp0a64Lp4ewXcYMj5wxpKurkmw== + +"@napi-rs/lzma-linux-x64-musl@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@napi-rs/lzma-linux-x64-musl/-/lzma-linux-x64-musl-1.0.0.tgz#6b52ca712adbc0a3a7c17f4a3362b2431e72765a" + integrity sha512-kWQARiTndtOOW6DUTzv9LuDnSVtZgxUkdD8zQp4LuDcJQB6RNPZnfgDcE75Of+T5W6hJsz7oVUzsV+F7dNABEg== + +"@napi-rs/lzma-win32-arm64-msvc@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@napi-rs/lzma-win32-arm64-msvc/-/lzma-win32-arm64-msvc-1.0.0.tgz#04a7884bf5b004fcb87107f5fad859a1b911fa85" + integrity sha512-riX5KBJSZYWA+rnfRLJR/B0xO+l051PrR0URdIbCDWW8oL4xELGjZfyrP5hNOk6XeXoeyQaGNLdFRERGHxSABQ== + +"@napi-rs/lzma-win32-ia32-msvc@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@napi-rs/lzma-win32-ia32-msvc/-/lzma-win32-ia32-msvc-1.0.0.tgz#180f56834e7f834b6958466b1c1038dc82a0827e" + integrity sha512-d6sYRjtTPGTW5jhmgxaLWlU9Ln5gpHjx8GxlM7kaWF04bjQz7x/M26CH9pfKXDUyNAHOG9K/NS46ymfpgfOI8w== + +"@napi-rs/lzma-win32-x64-msvc@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@napi-rs/lzma-win32-x64-msvc/-/lzma-win32-x64-msvc-1.0.0.tgz#e79f8ffa8dadd1156314dcc1f06eddb49b67f0af" + integrity sha512-a3TEGal8RCSTAiK8xwNUUyuHktiXsw0vAE695vjprxx7F8PsgVcPAJg1QndFX3uvlR1K8QJIJ6gg/HKMw5F4pg== + +"@napi-rs/lzma@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@napi-rs/lzma/-/lzma-1.0.0.tgz#a375901be1db36aa3760570a78bfb9da5d6442f5" + integrity sha512-lZ1JAO77VnRpq4a5L6kjXYo1BjfPH83CFx4MscMjvW8U/qL5OaP0uXoEP2SpM1IUAQz4E8TNBBi9QcRKjShWKg== + dependencies: + "@node-rs/helper" "^1.2.1" + optionalDependencies: + "@napi-rs/lzma-android-arm64" "^1.0.0" + "@napi-rs/lzma-darwin-arm64" "^1.0.0" + "@napi-rs/lzma-darwin-x64" "^1.0.0" + "@napi-rs/lzma-freebsd-x64" "^1.0.0" + "@napi-rs/lzma-linux-arm-gnueabihf" "^1.0.0" + "@napi-rs/lzma-linux-arm64-gnu" "^1.0.0" + "@napi-rs/lzma-linux-arm64-musl" "^1.0.0" + "@napi-rs/lzma-linux-x64-gnu" "^1.0.0" + "@napi-rs/lzma-linux-x64-musl" "^1.0.0" + "@napi-rs/lzma-win32-arm64-msvc" "^1.0.0" + "@napi-rs/lzma-win32-ia32-msvc" "^1.0.0" + "@napi-rs/lzma-win32-x64-msvc" "^1.0.0" + +"@napi-rs/triples@^1.0.3": + version "1.0.3" + resolved "https://registry.npmjs.org/@napi-rs/triples/-/triples-1.0.3.tgz#76d6d0c3f4d16013c61e45dfca5ff1e6c31ae53c" + integrity sha512-jDJTpta+P4p1NZTFVLHJ/TLFVYVcOqv6l8xwOeBKNPMgY/zDYH/YH7SJbvrr/h1RcS9GzbPcLKGzpuK9cV56UA== + +"@node-rs/helper@^1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@node-rs/helper/-/helper-1.2.1.tgz#e079b05f21ff4329d82c4e1f71c0290e4ecdc70c" + integrity sha512-R5wEmm8nbuQU0YGGmYVjEc0OHtYsuXdpRG+Ut/3wZ9XAvQWyThN08bTh2cBJgoZxHQUPtvRfeQuxcAgLuiBISg== + dependencies: + "@napi-rs/triples" "^1.0.3" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -778,13 +870,6 @@ dependencies: "@types/node" "*" -"@types/lzma-native@^4.0.0": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/lzma-native/-/lzma-native-4.0.1.tgz#29732d9a2cfcfa0f409eafa57059d47820993af0" - integrity sha512-JtD+glazM3mYYjTvCa72AblFg3VuGn8neRy3lviEkTDZUQJheqZZIaIxEGNq4Faln1aSeeL1H+7X3WH1xOUHKQ== - dependencies: - "@types/node" "*" - "@types/minimist@^1.2.0": version "1.2.2" resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" @@ -899,14 +984,6 @@ "@typescript-eslint/typescript-estree" "4.31.1" debug "^4.3.1" -"@typescript-eslint/scope-manager@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.31.0.tgz#9be33aed4e9901db753803ba233b70d79a87fc3e" - integrity sha512-LJ+xtl34W76JMRLjbaQorhR0hfRAlp3Lscdiz9NeI/8i+q0hdBZ7BsiYieLoYWqy+AnRigaD3hUwPFugSzdocg== - dependencies: - "@typescript-eslint/types" "4.31.0" - "@typescript-eslint/visitor-keys" "4.31.0" - "@typescript-eslint/scope-manager@4.31.1": version "4.31.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.31.1.tgz#0c21e8501f608d6a25c842fcf59541ef4f1ab561" @@ -915,29 +992,11 @@ "@typescript-eslint/types" "4.31.1" "@typescript-eslint/visitor-keys" "4.31.1" -"@typescript-eslint/types@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.31.0.tgz#9a7c86fcc1620189567dc4e46cad7efa07ee8dce" - integrity sha512-9XR5q9mk7DCXgXLS7REIVs+BaAswfdHhx91XqlJklmqWpTALGjygWVIb/UnLh4NWhfwhR5wNe1yTyCInxVhLqQ== - "@typescript-eslint/types@4.31.1": version "4.31.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.31.1.tgz#5f255b695627a13401d2fdba5f7138bc79450d66" integrity sha512-kixltt51ZJGKENNW88IY5MYqTBA8FR0Md8QdGbJD2pKZ+D5IvxjTYDNtJPDxFBiXmka2aJsITdB1BtO1fsgmsQ== -"@typescript-eslint/typescript-estree@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.0.tgz#4da4cb6274a7ef3b21d53f9e7147cc76f278a078" - integrity sha512-QHl2014t3ptg+xpmOSSPn5hm4mY8D4s97ftzyk9BZ8RxYQ3j73XcwuijnJ9cMa6DO4aLXeo8XS3z1omT9LA/Eg== - dependencies: - "@typescript-eslint/types" "4.31.0" - "@typescript-eslint/visitor-keys" "4.31.0" - debug "^4.3.1" - globby "^11.0.3" - is-glob "^4.0.1" - semver "^7.3.5" - tsutils "^3.21.0" - "@typescript-eslint/typescript-estree@4.31.1": version "4.31.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.1.tgz#4a04d5232cf1031232b7124a9c0310b577a62d17" @@ -951,14 +1010,6 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.0.tgz#4e87b7761cb4e0e627dc2047021aa693fc76ea2b" - integrity sha512-HUcRp2a9I+P21+O21yu3ezv3GEPGjyGiXoEUQwZXjR8UxRApGeLyWH4ZIIUSalE28aG4YsV6GjtaAVB3QKOu0w== - dependencies: - "@typescript-eslint/types" "4.31.0" - eslint-visitor-keys "^2.0.0" - "@typescript-eslint/visitor-keys@4.31.1": version "4.31.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.1.tgz#f2e7a14c7f20c4ae07d7fc3c5878c4441a1da9cc" @@ -4585,15 +4636,6 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lzma-native@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/lzma-native/-/lzma-native-8.0.1.tgz#8569e2f88de461a9a2469ac9d8183637c387d682" - integrity sha512-Ryr9X3yDVZhRYOxR8QhUBCNe6GdEfy9BvFDIFtUvEkocvSvnrYt9lRm6FR1z0eQn0QSMenrgrDIJRMgUf9zsKQ== - dependencies: - node-addon-api "^3.1.0" - node-gyp-build "^4.2.1" - readable-stream "^3.6.0" - make-dir@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" @@ -5036,11 +5078,6 @@ node-abi@^3.0.0: dependencies: semver "^7.3.5" -node-addon-api@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" - integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== - node-api-version@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/node-api-version/-/node-api-version-0.1.4.tgz#1ed46a485e462d55d66b5aa1fe2821720dedf080" @@ -5069,11 +5106,6 @@ node-fetch@^2.6.1: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== -node-gyp-build@^4.2.1: - version "4.2.3" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz#ce6277f853835f718829efb47db20f3e4d9c4739" - integrity sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg== - node-gyp@^5.0.2, node-gyp@^5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.1.tgz#eb915f7b631c937d282e33aed44cb7a025f62a3e"