diff --git a/package.json b/package.json index f41a0cf..4bec7d9 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "@babel/core": "^7.18.10", "@babel/preset-env": "^7.18.10", "@babel/preset-typescript": "^7.18.6", - "@electron/asar": "^3.2.0", + "@electron/asar": "^3.2.3", "@electron/notarize": "^1.2.3", "@types/auto-launch": "^5.0.1", "@types/counterpart": "^0.18.1", @@ -80,13 +80,11 @@ "@types/mkdirp": "^1.0.2", "@types/node": "16.18.23", "@types/pacote": "^11.1.1", - "@types/rimraf": "^3.0.2", "@types/tar": "^6.1.3", "@typescript-eslint/eslint-plugin": "^5.42.0", "@typescript-eslint/parser": "^5.42.0", "allchange": "^1.0.6", "app-builder-lib": "24.0.0", - "asar": "^3.2.0", "babel-jest": "^29.0.0", "chokidar": "^3.5.2", "detect-libc": "^1.0.3", @@ -103,7 +101,7 @@ "expect-playwright": "^0.8.0", "find-npm-prefix": "^1.0.2", "fs-extra": "^11.0.0", - "glob": "^8.0.0", + "glob": "^9.0.0", "jest": "^29.0.0", "matrix-web-i18n": "^1.3.0", "mkdirp": "^2.0.0", @@ -111,7 +109,7 @@ "pacote": "^15.0.0", "playwright": "^1.25.0", "prettier": "^2.8.1", - "rimraf": "^3.0.2", + "rimraf": "^4.4.1", "tar": "^6.1.2", "ts-jest": "^29.0.0", "ts-node": "^10.9.1", diff --git a/scripts/fetch-package.ts b/scripts/fetch-package.ts index 059ecdf..fc671c8 100644 --- a/scripts/fetch-package.ts +++ b/scripts/fetch-package.ts @@ -4,7 +4,7 @@ import * as path from "path"; import { createWriteStream, promises as fs } from "fs"; import * as childProcess from "child_process"; import tar from "tar"; -import * as asar from "asar"; +import * as asar from "@electron/asar"; import fetch from "node-fetch"; import { promises as stream } from "stream"; diff --git a/scripts/hak/clean.ts b/scripts/hak/clean.ts index f96411f..db4307d 100644 --- a/scripts/hak/clean.ts +++ b/scripts/hak/clean.ts @@ -21,33 +21,7 @@ import { DependencyInfo } from "./dep"; import HakEnv from "./hakEnv"; export default async function clean(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise { - await new Promise((resolve, reject) => { - rimraf(moduleInfo.moduleDotHakDir, (err?: Error | null) => { - if (err) { - reject(err); - } else { - resolve(); - } - }); - }); - - await new Promise((resolve, reject) => { - rimraf(path.join(hakEnv.dotHakDir, "links", moduleInfo.name), (err?: Error | null) => { - if (err) { - reject(err); - } else { - resolve(); - } - }); - }); - - await new Promise((resolve, reject) => { - rimraf(path.join(hakEnv.projectRoot, "node_modules", moduleInfo.name), (err?: Error | null) => { - if (err) { - reject(err); - } else { - resolve(); - } - }); - }); + await rimraf(moduleInfo.moduleDotHakDir); + await rimraf(path.join(hakEnv.dotHakDir, "links", moduleInfo.name)); + await rimraf(path.join(hakEnv.projectRoot, "node_modules", moduleInfo.name)); } diff --git a/scripts/hak/copy.ts b/scripts/hak/copy.ts index 66aaaa7..024c10a 100644 --- a/scripts/hak/copy.ts +++ b/scripts/hak/copy.ts @@ -18,7 +18,7 @@ import path from "path"; import fsProm from "fs/promises"; import childProcess from "child_process"; import rimraf from "rimraf"; -import glob from "glob"; +import { glob } from "glob"; import mkdirp from "mkdirp"; import HakEnv from "./hakEnv"; @@ -33,11 +33,7 @@ export default async function copy(hakEnv: HakEnv, moduleInfo: DependencyInfo): try { await mkdirp(moduleInfo.moduleOutDir); process.chdir(moduleInfo.moduleOutDir); - await new Promise((resolve, reject) => { - rimraf(moduleInfo.cfg.prune, {}, (err) => { - err ? reject(err) : resolve(); - }); - }); + await rimraf(moduleInfo.cfg.prune); } finally { process.chdir(oldCwd); } @@ -47,18 +43,8 @@ export default async function copy(hakEnv: HakEnv, moduleInfo: DependencyInfo): // If there are multiple moduleBuildDirs, singular moduleBuildDir // is the same as moduleBuildDirs[0], so we're just listing the contents // of the first one. - const files = await new Promise((resolve, reject) => { - glob( - moduleInfo.cfg.copy, - { - nosort: true, - silent: true, - cwd: moduleInfo.moduleBuildDir, - }, - (err, files) => { - err ? reject(err) : resolve(files); - }, - ); + const files = await glob(moduleInfo.cfg.copy, { + cwd: moduleInfo.moduleBuildDir, }); if (moduleInfo.moduleBuildDirs.length > 1) { diff --git a/scripts/set-version.ts b/scripts/set-version.ts index 2ae6ec7..3108395 100755 --- a/scripts/set-version.ts +++ b/scripts/set-version.ts @@ -6,7 +6,7 @@ */ import { promises as fs } from "fs"; -import * as asar from "asar"; +import * as asar from "@electron/asar"; import * as childProcess from "child_process"; export async function versionFromAsar(): Promise { diff --git a/scripts/tsconfig.json b/scripts/tsconfig.json index f032c77..96a7b4e 100644 --- a/scripts/tsconfig.json +++ b/scripts/tsconfig.json @@ -9,7 +9,7 @@ "strict": true, "lib": ["es2019", "dom"] }, - "include": ["./**/*.ts"], + "include": ["../src/@types", "./**/*.ts"], "ts-node": { "transpileOnly": true } diff --git a/src/@types/glob.d.ts b/src/@types/glob.d.ts new file mode 100644 index 0000000..2bfa5a5 --- /dev/null +++ b/src/@types/glob.d.ts @@ -0,0 +1,6 @@ +import { GlobOptions } from "glob"; + +declare module "glob" { + // Workaround for @electron/asar importing IOptions instead of GlobOptions + export type IOptions = GlobOptions; +} diff --git a/yarn.lock b/yarn.lock index d3ccd0a..57e5328 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1966,7 +1966,7 @@ ajv "^6.12.0" ajv-keywords "^3.4.1" -"@electron/asar@^3.2.0", "@electron/asar@^3.2.1": +"@electron/asar@^3.2.1", "@electron/asar@^3.2.3": version "3.2.3" resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.2.3.tgz#f598db50061ae5f90ad651f0255366b4e818000e" integrity sha512-wmOfE6szYyqZhRIiLH+eyZEp+bGcJI0OD/SCvSUrfBE0jvauyGYO2ZhpWxmNCcDojKu5DYrsVqT5BOCZZ01XIg== @@ -2783,14 +2783,6 @@ dependencies: "@types/node" "*" -"@types/glob@*": - version "8.0.1" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-8.0.1.tgz#6e3041640148b7764adf21ce5c7138ad454725b0" - integrity sha512-8bVUjXZvJacUFkJXHdyZ9iH1Eaj5V7I8c4NdH5sQJsdXkqT4CA5Dhb4yb4VE/3asyx4L9ayZr1NIhTsWHczmMw== - dependencies: - "@types/minimatch" "^5.1.2" - "@types/node" "*" - "@types/glob@^7.1.1": version "7.2.0" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" @@ -2855,7 +2847,7 @@ dependencies: "@types/node" "*" -"@types/minimatch@*", "@types/minimatch@^5.1.2": +"@types/minimatch@*": version "5.1.2" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== @@ -2946,14 +2938,6 @@ dependencies: "@types/node" "*" -"@types/rimraf@^3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-3.0.2.tgz#a63d175b331748e5220ad48c901d7bbf1f44eef8" - integrity sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ== - dependencies: - "@types/glob" "*" - "@types/node" "*" - "@types/semver@^7.3.12": version "7.3.13" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" @@ -3414,18 +3398,6 @@ array.prototype.flatmap@^1.3.1: es-abstract "^1.20.4" es-shim-unscopables "^1.0.0" -asar@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/asar/-/asar-3.2.0.tgz#e6edb5edd6f627ebef04db62f771c61bea9c1221" - integrity sha512-COdw2ZQvKdFGFxXwX3oYh2/sOsJWJegrdJCGxnN4MZ7IULgRBp9P6665aqj9z1v9VwP4oP1hRBojRDQ//IGgAg== - dependencies: - chromium-pickle-js "^0.2.0" - commander "^5.0.0" - glob "^7.1.6" - minimatch "^3.0.4" - optionalDependencies: - "@types/glob" "^7.1.1" - assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" @@ -5232,7 +5204,7 @@ glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^8.0.0, glob@^8.0.1: +glob@^8.0.1: version "8.1.0" resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== @@ -5243,6 +5215,26 @@ glob@^8.0.0, glob@^8.0.1: minimatch "^5.0.1" once "^1.3.0" +glob@^9.0.0: + version "9.3.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.2.tgz#8528522e003819e63d11c979b30896e0eaf52eda" + integrity sha512-BTv/JhKXFEHsErMte/AnfiSv8yYOLLiyH2lTg8vn02O21zWFgHPTfxtgn1QRe7NRgggUhC8hacR2Re94svHqeA== + dependencies: + fs.realpath "^1.0.0" + minimatch "^7.4.1" + minipass "^4.2.4" + path-scurry "^1.6.1" + +glob@^9.2.0: + version "9.3.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.4.tgz#e75dee24891a80c25cc7ee1dd327e126b98679af" + integrity sha512-qaSc49hojMOv1EPM4EuyITjDSgSKI0rthoHnvE81tcOi1SCVndHko7auqxdQ14eiQG2NDBJBE86+2xIrbIvrbA== + dependencies: + fs.realpath "^1.0.0" + minimatch "^8.0.2" + minipass "^4.2.4" + path-scurry "^1.6.1" + global-agent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz#ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6" @@ -6467,7 +6459,7 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: +lru-cache@^7.14.1, lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: version "7.18.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== @@ -6666,6 +6658,20 @@ minimatch@^6.1.0, minimatch@^6.1.6: dependencies: brace-expansion "^2.0.1" +minimatch@^7.4.1: + version "7.4.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.3.tgz#012cbf110a65134bb354ae9773b55256cdb045a2" + integrity sha512-5UB4yYusDtkRPbRiy1cqZ1IpGNcJCGlEMG17RKzPddpyiPKoCdwohbED8g4QXT0ewCt8LTkQXuljsUfQ3FKM4A== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^8.0.2: + version "8.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-8.0.3.tgz#0415cb9bb0c1d8ac758c8a673eb1d288e13f5e75" + integrity sha512-tEEvU9TkZgnFDCtpnrEYnPsjT7iUx42aXfs4bzmQ5sMA09/6hZY0jeZcGkXyDagiBOvkUjNo8Viom+Me6+2x7g== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.0, minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" @@ -6744,7 +6750,7 @@ minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6: dependencies: yallist "^4.0.0" -minipass@^4.0.0: +minipass@^4.0.0, minipass@^4.0.2, minipass@^4.2.4: version "4.2.5" resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.5.tgz#9e0e5256f1e3513f8c34691dd68549e85b2c8ceb" integrity sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q== @@ -7271,6 +7277,14 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-scurry@^1.6.1: + version "1.6.3" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.6.3.tgz#4eba7183d64ef88b63c7d330bddc3ba279dc6c40" + integrity sha512-RAmB+n30SlN+HnNx6EbcpoDy9nwdpcGPnEKrJnu6GZoDWBdIjo1UQMVtW2ybtC7LC2oKLcMq8y5g8WnKLiod9g== + dependencies: + lru-cache "^7.14.1" + minipass "^4.0.2" + path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -7697,6 +7711,13 @@ rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" +rimraf@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.4.1.tgz#bd33364f67021c5b79e93d7f4fa0568c7c21b755" + integrity sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og== + dependencies: + glob "^9.2.0" + roarr@^2.15.3: version "2.15.4" resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd"