From cecea312c68d766be98958126bfa8c6c6b6638dc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 30 Oct 2024 18:06:03 +0000 Subject: [PATCH] Update electron (major) (#1968) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Michael Telatynski <7t3chguy@gmail.com> --- .eslintrc-hak.js | 22 - .eslintrc-scripts.js | 22 - .eslintrc-test.js | 22 - .eslintrc.cjs | 88 ++++ .eslintrc.js | 37 -- .prettierrc.js => .prettierrc.cjs | 0 babel.config.js => babel.config.cjs | 0 hak/keytar/build.ts | 36 +- hak/keytar/check.ts | 24 +- hak/matrix-seshat/build.ts | 42 +- hak/matrix-seshat/check.ts | 27 +- hak/tsconfig.json | 5 +- package.json | 27 +- playwright/e2e/launch/config-options.spec.ts | 7 +- playwright/e2e/launch/launch.spec.ts | 2 +- playwright/element-desktop-test.ts | 5 +- scripts/copy-res.ts | 6 +- scripts/fetch-package.ts | 12 +- scripts/generate-nightly-version.ts | 2 +- scripts/get-version.ts | 4 +- scripts/hak/build.ts | 4 +- scripts/hak/check.ts | 4 +- scripts/hak/clean.ts | 6 +- scripts/hak/copy.ts | 10 +- scripts/hak/dep.ts | 2 +- scripts/hak/fetch.ts | 24 +- scripts/hak/fetchDeps.ts | 4 +- scripts/hak/hakEnv.ts | 48 +- scripts/hak/index.ts | 36 +- scripts/hak/link.ts | 48 +- scripts/set-version.ts | 28 +- scripts/tsconfig.json | 11 +- src/@types/electron-devtools-installer.d.ts | 18 + src/@types/global.d.ts | 2 +- src/displayMediaCallback.ts | 2 +- src/electron-main.ts | 47 +- src/ipc.ts | 10 +- src/keytar.ts | 3 +- src/language-helper.ts | 6 +- src/macos-titlebar.ts | 2 +- src/media-auth.ts | 2 +- src/{preload.ts => preload.cts} | 2 + src/protocol.ts | 6 +- src/seshat.ts | 11 +- src/settings.ts | 2 +- src/squirrelhooks.ts | 4 +- src/tray.ts | 6 +- src/updater.ts | 2 +- src/utils.ts | 2 +- src/vectormenu.ts | 2 +- src/webcontents-handler.ts | 10 +- tsconfig.json | 7 +- yarn.lock | 509 +++++++++++-------- 53 files changed, 651 insertions(+), 619 deletions(-) delete mode 100644 .eslintrc-hak.js delete mode 100644 .eslintrc-scripts.js delete mode 100644 .eslintrc-test.js create mode 100644 .eslintrc.cjs delete mode 100644 .eslintrc.js rename .prettierrc.js => .prettierrc.cjs (100%) rename babel.config.js => babel.config.cjs (100%) create mode 100644 src/@types/electron-devtools-installer.d.ts rename src/{preload.ts => preload.cts} (92%) diff --git a/.eslintrc-hak.js b/.eslintrc-hak.js deleted file mode 100644 index 28a4224..0000000 --- a/.eslintrc-hak.js +++ /dev/null @@ -1,22 +0,0 @@ -module.exports = { - plugins: ["matrix-org"], - extends: [".eslintrc.js"], - parserOptions: { - project: ["hak/tsconfig.json"], - }, - overrides: [ - { - files: ["hak/**/*.ts"], - extends: ["plugin:matrix-org/typescript"], - rules: { - // Things we do that break the ideal style - "prefer-promise-reject-errors": "off", - "quotes": "off", - - "@typescript-eslint/no-explicit-any": "off", - // We're okay with assertion errors when we ask for them - "@typescript-eslint/no-non-null-assertion": "off", - }, - }, - ], -}; diff --git a/.eslintrc-scripts.js b/.eslintrc-scripts.js deleted file mode 100644 index ee75006..0000000 --- a/.eslintrc-scripts.js +++ /dev/null @@ -1,22 +0,0 @@ -module.exports = { - plugins: ["matrix-org"], - extends: [".eslintrc.js"], - parserOptions: { - project: ["scripts/tsconfig.json"], - }, - overrides: [ - { - files: ["scripts/**/*.ts"], - extends: ["plugin:matrix-org/typescript"], - rules: { - // Things we do that break the ideal style - "prefer-promise-reject-errors": "off", - "quotes": "off", - - "@typescript-eslint/no-explicit-any": "off", - // We're okay with assertion errors when we ask for them - "@typescript-eslint/no-non-null-assertion": "off", - }, - }, - ], -}; diff --git a/.eslintrc-test.js b/.eslintrc-test.js deleted file mode 100644 index 260a2d2..0000000 --- a/.eslintrc-test.js +++ /dev/null @@ -1,22 +0,0 @@ -module.exports = { - plugins: ["matrix-org"], - extends: [".eslintrc.js"], - parserOptions: { - project: ["playwright/tsconfig.json"], - }, - overrides: [ - { - files: ["playwright/**/*.ts"], - extends: ["plugin:matrix-org/typescript"], - rules: { - // Things we do that break the ideal style - "prefer-promise-reject-errors": "off", - "quotes": "off", - - "@typescript-eslint/no-explicit-any": "off", - // We're okay with assertion errors when we ask for them - "@typescript-eslint/no-non-null-assertion": "off", - }, - }, - ], -}; diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..51466a9 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,88 @@ +module.exports = { + plugins: ["matrix-org", "n"], + extends: ["plugin:matrix-org/javascript"], + parserOptions: { + ecmaVersion: 2021, + project: ["tsconfig.json"], + }, + env: { + es6: true, + node: true, + // we also have some browser code (ie. the preload script) + browser: true, + }, + // NOTE: These rules are frozen and new rules should not be added here. + // New changes belong in https://github.com/matrix-org/eslint-plugin-matrix-org/ + rules: { + "quotes": "off", + "indent": "off", + "prefer-promise-reject-errors": "off", + "no-async-promise-executor": "off", + + "n/file-extension-in-import": ["error", "always"], + "unicorn/prefer-node-protocol": ["error"], + }, + overrides: [ + { + files: ["src/**/*.ts"], + extends: ["plugin:matrix-org/typescript"], + rules: { + // Things we do that break the ideal style + "prefer-promise-reject-errors": "off", + "quotes": "off", + + "@typescript-eslint/no-explicit-any": "off", + // We're okay with assertion errors when we ask for them + "@typescript-eslint/no-non-null-assertion": "off", + }, + }, + { + files: ["hak/**/*.ts"], + extends: ["plugin:matrix-org/typescript"], + parserOptions: { + project: ["hak/tsconfig.json"], + }, + rules: { + // Things we do that break the ideal style + "prefer-promise-reject-errors": "off", + "quotes": "off", + + "@typescript-eslint/no-explicit-any": "off", + // We're okay with assertion errors when we ask for them + "@typescript-eslint/no-non-null-assertion": "off", + }, + }, + { + files: ["scripts/**/*.ts"], + extends: ["plugin:matrix-org/typescript"], + parserOptions: { + project: ["scripts/tsconfig.json"], + }, + rules: { + // Things we do that break the ideal style + "prefer-promise-reject-errors": "off", + "quotes": "off", + + "@typescript-eslint/no-explicit-any": "off", + // We're okay with assertion errors when we ask for them + "@typescript-eslint/no-non-null-assertion": "off", + }, + }, + { + files: ["playwright/**/*.ts"], + extends: ["plugin:matrix-org/typescript"], + parserOptions: { + project: ["playwright/tsconfig.json"], + }, + rules: { + // Things we do that break the ideal style + "prefer-promise-reject-errors": "off", + "quotes": "off", + + "@typescript-eslint/no-explicit-any": "off", + // We're okay with assertion errors when we ask for them + "@typescript-eslint/no-non-null-assertion": "off", + }, + }, + ], +}; diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 6e498f6..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1,37 +0,0 @@ -module.exports = { - plugins: ["matrix-org"], - extends: ["plugin:matrix-org/javascript"], - parserOptions: { - ecmaVersion: 2021, - project: ["tsconfig.json"], - }, - env: { - es6: true, - node: true, - // we also have some browser code (ie. the preload script) - browser: true, - }, - // NOTE: These rules are frozen and new rules should not be added here. - // New changes belong in https://github.com/matrix-org/eslint-plugin-matrix-org/ - rules: { - "quotes": "off", - "indent": "off", - "prefer-promise-reject-errors": "off", - "no-async-promise-executor": "off", - }, - overrides: [ - { - files: ["src/**/*.ts"], - extends: ["plugin:matrix-org/typescript"], - rules: { - // Things we do that break the ideal style - "prefer-promise-reject-errors": "off", - "quotes": "off", - - "@typescript-eslint/no-explicit-any": "off", - // We're okay with assertion errors when we ask for them - "@typescript-eslint/no-non-null-assertion": "off", - }, - }, - ], -}; diff --git a/.prettierrc.js b/.prettierrc.cjs similarity index 100% rename from .prettierrc.js rename to .prettierrc.cjs diff --git a/babel.config.js b/babel.config.cjs similarity index 100% rename from babel.config.js rename to babel.config.cjs diff --git a/hak/keytar/build.ts b/hak/keytar/build.ts index 38dc672..39dd92c 100644 --- a/hak/keytar/build.ts +++ b/hak/keytar/build.ts @@ -6,35 +6,21 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ -import path from "path"; -import childProcess from "child_process"; +import path from "node:path"; -import HakEnv from "../../scripts/hak/hakEnv"; -import { DependencyInfo } from "../../scripts/hak/dep"; +import type HakEnv from "../../scripts/hak/hakEnv.js"; +import type { DependencyInfo } from "../../scripts/hak/dep.js"; export default async function buildKeytar(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise { const env = hakEnv.makeGypEnv(); console.log("Running yarn with env", env); - await new Promise((resolve, reject) => { - const proc = childProcess.spawn( - path.join(moduleInfo.nodeModuleBinDir, "node-gyp" + (hakEnv.isWin() ? ".cmd" : "")), - ["rebuild", "--arch", hakEnv.getTargetArch()], - { - cwd: moduleInfo.moduleBuildDir, - env, - stdio: "inherit", - // We need shell mode on Windows to be able to launch `.cmd` executables - // See https://nodejs.org/en/blog/vulnerability/april-2024-security-releases-2 - shell: hakEnv.isWin(), - }, - ); - proc.on("exit", (code) => { - if (code) { - reject(code); - } else { - resolve(); - } - }); - }); + await hakEnv.spawn( + path.join(moduleInfo.nodeModuleBinDir, "node-gyp"), + ["rebuild", "--arch", hakEnv.getTargetArch()], + { + cwd: moduleInfo.moduleBuildDir, + env, + }, + ); } diff --git a/hak/keytar/check.ts b/hak/keytar/check.ts index bada701..3f08c2a 100644 --- a/hak/keytar/check.ts +++ b/hak/keytar/check.ts @@ -6,26 +6,10 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ -import childProcess from "child_process"; - -import HakEnv from "../../scripts/hak/hakEnv"; -import { DependencyInfo } from "../../scripts/hak/dep"; +import type HakEnv from "../../scripts/hak/hakEnv.js"; +import type { DependencyInfo } from "../../scripts/hak/dep.js"; export default async function (hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise { - const tools = [["python", "--version"]]; // node-gyp uses python for reasons beyond comprehension - - for (const tool of tools) { - await new Promise((resolve, reject) => { - const proc = childProcess.spawn(tool[0], tool.slice(1), { - stdio: ["ignore"], - }); - proc.on("exit", (code) => { - if (code !== 0) { - reject("Can't find " + tool); - } else { - resolve(); - } - }); - }); - } + // node-gyp uses python for reasons beyond comprehension + await hakEnv.checkTools([["python", "--version"]]); } diff --git a/hak/matrix-seshat/build.ts b/hak/matrix-seshat/build.ts index f8d8743..5cad609 100644 --- a/hak/matrix-seshat/build.ts +++ b/hak/matrix-seshat/build.ts @@ -6,10 +6,8 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ -import childProcess from "child_process"; - -import HakEnv from "../../scripts/hak/hakEnv"; -import { DependencyInfo } from "../../scripts/hak/dep"; +import type HakEnv from "../../scripts/hak/hakEnv.js"; +import type { DependencyInfo } from "../../scripts/hak/dep.js"; export default async function (hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise { const env = hakEnv.makeGypEnv(); @@ -19,38 +17,18 @@ export default async function (hakEnv: HakEnv, moduleInfo: DependencyInfo): Prom } console.log("Running yarn install"); - await new Promise((resolve, reject) => { - const proc = childProcess.spawn("yarn" + (hakEnv.isWin() ? ".cmd" : ""), ["install"], { - cwd: moduleInfo.moduleBuildDir, - env, - shell: true, - stdio: "inherit", - }); - proc.on("exit", (code) => { - if (code) { - reject(code); - } else { - resolve(); - } - }); + await hakEnv.spawn("yarn", ["install"], { + cwd: moduleInfo.moduleBuildDir, + env, + shell: true, }); const buildTarget = hakEnv.wantsStaticSqlCipher() ? "build-bundled" : "build"; console.log("Running yarn build"); - await new Promise((resolve, reject) => { - const proc = childProcess.spawn("yarn" + (hakEnv.isWin() ? ".cmd" : ""), ["run", buildTarget], { - cwd: moduleInfo.moduleBuildDir, - env, - shell: true, - stdio: "inherit", - }); - proc.on("exit", (code) => { - if (code) { - reject(code); - } else { - resolve(); - } - }); + await hakEnv.spawn("yarn", ["run", buildTarget], { + cwd: moduleInfo.moduleBuildDir, + env, + shell: true, }); } diff --git a/hak/matrix-seshat/check.ts b/hak/matrix-seshat/check.ts index ca09a1f..416239c 100644 --- a/hak/matrix-seshat/check.ts +++ b/hak/matrix-seshat/check.ts @@ -6,14 +6,15 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ -import childProcess from "child_process"; -import fsProm from "fs/promises"; +import childProcess from "node:child_process"; +import fsProm from "node:fs/promises"; -import HakEnv from "../../scripts/hak/hakEnv"; -import { DependencyInfo } from "../../scripts/hak/dep"; +import type HakEnv from "../../scripts/hak/hakEnv.js"; +import type { Tool } from "../../scripts/hak/hakEnv.js"; +import type { DependencyInfo } from "../../scripts/hak/dep.js"; export default async function (hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise { - const tools = [ + const tools: Tool[] = [ ["rustc", "--version"], ["python", "--version"], // node-gyp uses python for reasons beyond comprehension ]; @@ -25,21 +26,7 @@ export default async function (hakEnv: HakEnv, moduleInfo: DependencyInfo): Prom } else { tools.push(["make", "--version"]); } - - for (const tool of tools) { - await new Promise((resolve, reject) => { - const proc = childProcess.spawn(tool[0], tool.slice(1), { - stdio: ["ignore"], - }); - proc.on("exit", (code) => { - if (code !== 0) { - reject("Can't find " + tool); - } else { - resolve(); - } - }); - }); - } + await hakEnv.checkTools(tools); // Ensure Rust target exists (nb. we avoid depending on rustup) await new Promise((resolve, reject) => { diff --git a/hak/tsconfig.json b/hak/tsconfig.json index ea16e96..9c751cc 100644 --- a/hak/tsconfig.json +++ b/hak/tsconfig.json @@ -7,8 +7,5 @@ "strict": true, "lib": ["es2022"] }, - "include": ["../scripts/@types/*.d.ts", "./**/*.ts"], - "ts-node": { - "transpileOnly": true - } + "include": ["../scripts/@types/*.d.ts", "./**/*.ts"] } diff --git a/package.json b/package.json index 84485dc..22e4ec0 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "element-desktop", "productName": "Element", "main": "lib/electron-main.js", + "exports": "./lib/electron-main.js", "version": "1.11.83", "description": "A feature-rich client for Matrix.org", "author": "Element", @@ -11,6 +12,7 @@ "url": "https://github.com/vector-im/element-desktop" }, "license": "AGPL-3.0-only OR GPL-3.0-only", + "type": "module", "files": [], "engines": { "node": ">=18.0.0" @@ -21,20 +23,12 @@ "i18n:lint": "prettier --log-level=silent --write src/i18n/strings/ --ignore-path /dev/null", "i18n:diff": "cp src/i18n/strings/en_EN.json src/i18n/strings/en_EN_orig.json && yarn i18n && matrix-compare-i18n-files src/i18n/strings/en_EN_orig.json src/i18n/strings/en_EN.json", "mkdirs": "mkdirp packages deploys", - "fetch": "yarn run mkdirs && ts-node scripts/fetch-package.ts", + "fetch": "yarn run mkdirs && tsx scripts/fetch-package.ts", "asar-webapp": "asar p webapp webapp.asar", "start": "yarn run build:ts && yarn run build:res && electron .", "lint": "yarn lint:types && yarn lint:js && yarn lint:workflows", - "lint:js": "yarn lint:js:src && yarn lint:js:test && yarn lint:js:scripts && yarn lint:js:hak && prettier --check .", - "lint:js:src": "eslint --max-warnings 0 src", - "lint:js:test": "eslint --max-warnings 0 --config .eslintrc-test.js playwright", - "lint:js:scripts": "eslint --max-warnings 0 --config .eslintrc-scripts.js scripts", - "lint:js:hak": "eslint --max-warnings 0 --config .eslintrc-hak.js hak", - "lint:js-fix": "yarn lint:js-fix:src &&yarn lint:js-fix:test && yarn lint:js-fix:scripts && yarn lint:js-fix:hak && prettier --log-level=warn --write .", - "lint:js-fix:src": "eslint --fix --max-warnings 0 src", - "lint:js-fix:test": "eslint --fix --max-warnings 0 --config .eslintrc-test.js playwright", - "lint:js-fix:scripts": "eslint --fix --max-warnings 0 --config .eslintrc-scripts.js scripts", - "lint:js-fix:hak": "eslint --fix --max-warnings 0 --config .eslintrc-hak.js hak", + "lint:js": "eslint --max-warnings 0 src hak playwright scripts && prettier --check .", + "lint:js-fix": "eslint --fix --max-warnings 0 src hak playwright scripts && prettier --log-level=warn --write .", "lint:types": "yarn lint:types:src && yarn lint:types:test && yarn lint:types:scripts && yarn lint:types:hak", "lint:types:src": "tsc --noEmit", "lint:types:test": "tsc --noEmit -p playwright/tsconfig.json", @@ -49,13 +43,13 @@ "build:universal": "yarn run build:ts && yarn run build:res && electron-builder --universal", "build": "yarn run build:ts && yarn run build:res && electron-builder", "build:ts": "tsc", - "build:res": "ts-node scripts/copy-res.ts", + "build:res": "tsx scripts/copy-res.ts", "docker:setup": "docker build --platform linux/amd64 -t element-desktop-dockerbuild dockerbuild", "docker:build:native": "scripts/in-docker.sh yarn run hak", "docker:build": "scripts/in-docker.sh yarn run build", "docker:install": "scripts/in-docker.sh yarn install", "clean": "rimraf webapp.asar dist packages deploys lib", - "hak": "ts-node scripts/hak/index.ts", + "hak": "tsx scripts/hak/index.ts", "test": "playwright test", "test:open": "yarn test --ui", "test:screenshots:build": "docker build playwright -t element-desktop-playwright --platform linux/amd64", @@ -66,7 +60,7 @@ "auto-launch": "^5.0.5", "counterpart": "^0.18.6", "electron-clear-data": "^1.0.5", - "electron-store": "^8.0.2", + "electron-store": "^10.0.0", "electron-window-state": "^5.0.3", "minimist": "^1.2.6", "node-fetch": "^2", @@ -95,7 +89,7 @@ "app-builder-lib": "25.1.8", "chokidar": "^4.0.0", "detect-libc": "^2.0.0", - "electron": "^32.0.0", + "electron": "^33.0.0", "electron-builder": "25.1.8", "electron-builder-squirrel-windows": "25.1.8", "electron-devtools-installer": "^3.2.0", @@ -104,6 +98,7 @@ "eslint-config-prettier": "^9.0.0", "eslint-plugin-import": "^2.25.4", "eslint-plugin-matrix-org": "^2.0.1", + "eslint-plugin-n": "^17.12.0", "eslint-plugin-unicorn": "^56.0.0", "glob": "^11.0.0", "knip": "^5.0.0", @@ -113,7 +108,7 @@ "prettier": "^3.0.0", "rimraf": "^6.0.0", "tar": "^7.0.0", - "ts-node": "^10.9.1", + "tsx": "^4.19.2", "typescript": "5.5.4" }, "hakDependencies": { diff --git a/playwright/e2e/launch/config-options.spec.ts b/playwright/e2e/launch/config-options.spec.ts index 90afb19..c3c91fc 100644 --- a/playwright/e2e/launch/config-options.spec.ts +++ b/playwright/e2e/launch/config-options.spec.ts @@ -5,9 +5,12 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ -import { resolve } from "node:path"; +import { resolve, dirname } from "node:path"; +import { fileURLToPath } from "node:url"; -import { test, expect } from "../../element-desktop-test"; +import { test, expect } from "../../element-desktop-test.js"; + +const __dirname = dirname(fileURLToPath(import.meta.url)); test.describe("App config options", () => { test.describe("Should load custom config via env", () => { diff --git a/playwright/e2e/launch/launch.spec.ts b/playwright/e2e/launch/launch.spec.ts index 8083d8b..1154ed7 100644 --- a/playwright/e2e/launch/launch.spec.ts +++ b/playwright/e2e/launch/launch.spec.ts @@ -6,7 +6,7 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ -import { test, expect } from "../../element-desktop-test"; +import { test, expect } from "../../element-desktop-test.js"; declare global { interface Window { diff --git a/playwright/element-desktop-test.ts b/playwright/element-desktop-test.ts index 4bdf691..431bac6 100644 --- a/playwright/element-desktop-test.ts +++ b/playwright/element-desktop-test.ts @@ -8,8 +8,9 @@ Please see LICENSE files in the repository root for full details. import { _electron as electron, test as base, expect as baseExpect, type ElectronApplication } from "@playwright/test"; import fs from "node:fs/promises"; -import path from "node:path"; +import path, { dirname } from "node:path"; import os from "node:os"; +import { fileURLToPath } from "node:url"; interface Fixtures { app: ElectronApplication; @@ -18,6 +19,8 @@ interface Fixtures { extraArgs: string[]; } +const __dirname = dirname(fileURLToPath(import.meta.url)); + export const test = base.extend({ extraEnv: {}, extraArgs: [], diff --git a/scripts/copy-res.ts b/scripts/copy-res.ts index 67af7ab..a13436b 100755 --- a/scripts/copy-res.ts +++ b/scripts/copy-res.ts @@ -1,11 +1,11 @@ -#!/usr/bin/env -S npx ts-node +#!/usr/bin/env -S npx tsx // copies resources into the lib directory. import parseArgs from "minimist"; import * as chokidar from "chokidar"; -import * as path from "path"; -import * as fs from "fs"; +import * as path from "node:path"; +import * as fs from "node:fs"; const argv = parseArgs(process.argv.slice(2), {}); diff --git a/scripts/fetch-package.ts b/scripts/fetch-package.ts index 087533d..2ac6eb5 100644 --- a/scripts/fetch-package.ts +++ b/scripts/fetch-package.ts @@ -1,15 +1,15 @@ -#!/usr/bin/env -S npx ts-node --resolveJsonModule +#!/usr/bin/env -S npx tsx --resolveJsonModule -import * as path from "path"; -import { createWriteStream, promises as fs } from "fs"; -import * as childProcess from "child_process"; +import * as path from "node:path"; +import { createWriteStream, promises as fs } from "node:fs"; +import * as childProcess from "node:child_process"; import * as tar from "tar"; import * as asar from "@electron/asar"; import fetch from "node-fetch"; -import { promises as stream } from "stream"; +import { promises as stream } from "node:stream"; import riotDesktopPackageJson from "../package.json"; -import { setPackageVersion } from "./set-version"; +import { setPackageVersion } from "./set-version.js"; const PUB_KEY_URL = "https://packages.riot.im/element-release-key.asc"; const PACKAGE_URL_PREFIX = "https://github.com/element-hq/element-web/releases/download/"; diff --git a/scripts/generate-nightly-version.ts b/scripts/generate-nightly-version.ts index decf40f..9047174 100755 --- a/scripts/generate-nightly-version.ts +++ b/scripts/generate-nightly-version.ts @@ -1,4 +1,4 @@ -#!/usr/bin/env -S npx ts-node +#!/usr/bin/env -S npx tsx /** * Script to generate incremental Nightly build versions, based on the latest Nightly build version of that kind. diff --git a/scripts/get-version.ts b/scripts/get-version.ts index fb6f468..560e821 100755 --- a/scripts/get-version.ts +++ b/scripts/get-version.ts @@ -1,10 +1,10 @@ -#!/usr/bin/env -S npx ts-node +#!/usr/bin/env -S npx tsx /* * Checks for the presence of a webapp, inspects its version and prints it */ -import { versionFromAsar } from "./set-version"; +import { versionFromAsar } from "./set-version.js"; async function main(): Promise { const version = await versionFromAsar(); diff --git a/scripts/hak/build.ts b/scripts/hak/build.ts index 6f60c94..13c68a0 100644 --- a/scripts/hak/build.ts +++ b/scripts/hak/build.ts @@ -6,8 +6,8 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ -import { DependencyInfo } from "./dep"; -import HakEnv from "./hakEnv"; +import type { DependencyInfo } from "./dep.js"; +import type HakEnv from "./hakEnv.js"; export default async function build(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise { await moduleInfo.scripts.build(hakEnv, moduleInfo); diff --git a/scripts/hak/check.ts b/scripts/hak/check.ts index 95ee3c2..5c15ee9 100644 --- a/scripts/hak/check.ts +++ b/scripts/hak/check.ts @@ -6,8 +6,8 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ -import { DependencyInfo } from "./dep"; -import HakEnv from "./hakEnv"; +import type { DependencyInfo } from "./dep.js"; +import type HakEnv from "./hakEnv.js"; export default async function check(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise { if (moduleInfo.scripts.check) { diff --git a/scripts/hak/clean.ts b/scripts/hak/clean.ts index a6fd6f9..d0f01b9 100644 --- a/scripts/hak/clean.ts +++ b/scripts/hak/clean.ts @@ -6,11 +6,11 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ -import path from "path"; +import path from "node:path"; import { rimraf } from "rimraf"; -import { DependencyInfo } from "./dep"; -import HakEnv from "./hakEnv"; +import type { DependencyInfo } from "./dep.js"; +import type HakEnv from "./hakEnv.js"; export default async function clean(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise { await rimraf(moduleInfo.moduleDotHakDir); diff --git a/scripts/hak/copy.ts b/scripts/hak/copy.ts index d09871b..c70be2a 100644 --- a/scripts/hak/copy.ts +++ b/scripts/hak/copy.ts @@ -6,15 +6,15 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ -import path from "path"; -import fsProm from "fs/promises"; -import childProcess from "child_process"; +import path from "node:path"; +import fsProm from "node:fs/promises"; +import childProcess from "node:child_process"; import { rimraf } from "rimraf"; import { glob } from "glob"; import { mkdirp } from "mkdirp"; -import HakEnv from "./hakEnv"; -import { DependencyInfo } from "./dep"; +import type HakEnv from "./hakEnv.js"; +import type { DependencyInfo } from "./dep.js"; export default async function copy(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise { if (moduleInfo.cfg.prune) { diff --git a/scripts/hak/dep.ts b/scripts/hak/dep.ts index a02b425..083e052 100644 --- a/scripts/hak/dep.ts +++ b/scripts/hak/dep.ts @@ -6,7 +6,7 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ -import HakEnv from "./hakEnv"; +import type HakEnv from "./hakEnv.js"; export interface DependencyInfo { name: string; diff --git a/scripts/hak/fetch.ts b/scripts/hak/fetch.ts index 7ba8341..853eda5 100644 --- a/scripts/hak/fetch.ts +++ b/scripts/hak/fetch.ts @@ -6,12 +6,11 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ -import fsProm from "fs/promises"; -import childProcess from "child_process"; +import fsProm from "node:fs/promises"; import pacote from "pacote"; -import HakEnv from "./hakEnv"; -import { DependencyInfo } from "./dep"; +import type HakEnv from "./hakEnv.js"; +import type { DependencyInfo } from "./dep.js"; export default async function fetch(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise { let haveModuleBuildDir; @@ -32,21 +31,8 @@ export default async function fetch(hakEnv: HakEnv, moduleInfo: DependencyInfo): }); console.log("Running yarn install in " + moduleInfo.moduleBuildDir); - await new Promise((resolve, reject) => { - const proc = childProcess.spawn(hakEnv.isWin() ? "yarn.cmd" : "yarn", ["install", "--ignore-scripts"], { - stdio: "inherit", - cwd: moduleInfo.moduleBuildDir, - // We need shell mode on Windows to be able to launch `.cmd` executables - // See https://nodejs.org/en/blog/vulnerability/april-2024-security-releases-2 - shell: hakEnv.isWin(), - }); - proc.on("exit", (code) => { - if (code) { - reject(code); - } else { - resolve(); - } - }); + await hakEnv.spawn("yarn", ["install", "--ignore-scripts"], { + cwd: moduleInfo.moduleBuildDir, }); // also extract another copy to the output directory at this point diff --git a/scripts/hak/fetchDeps.ts b/scripts/hak/fetchDeps.ts index e992aea..109f154 100644 --- a/scripts/hak/fetchDeps.ts +++ b/scripts/hak/fetchDeps.ts @@ -8,8 +8,8 @@ Please see LICENSE files in the repository root for full details. import { mkdirp } from "mkdirp"; -import { DependencyInfo } from "./dep"; -import HakEnv from "./hakEnv"; +import type { DependencyInfo } from "./dep.js"; +import type HakEnv from "./hakEnv.js"; export default async function fetchDeps(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise { await mkdirp(moduleInfo.moduleDotHakDir); diff --git a/scripts/hak/hakEnv.ts b/scripts/hak/hakEnv.ts index d57af3d..c38c914 100644 --- a/scripts/hak/hakEnv.ts +++ b/scripts/hak/hakEnv.ts @@ -6,12 +6,13 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ -import path from "path"; -import os from "os"; +import path from "node:path"; +import os from "node:os"; import nodePreGypVersioning from "@mapbox/node-pre-gyp/lib/util/versioning"; -import { getElectronVersionFromInstalled } from "app-builder-lib/out/electron/electronVersion"; +import { getElectronVersionFromInstalled } from "app-builder-lib/out/electron/electronVersion.js"; +import childProcess, { SpawnOptions } from "node:child_process"; -import { Arch, Target, TARGETS, getHost, isHostId, TargetId } from "./target"; +import { Arch, Target, TARGETS, getHost, isHostId, TargetId } from "./target.js"; async function getRuntime(projectRoot: string): Promise { const electronVersion = await getElectronVersionFromInstalled(projectRoot); @@ -27,6 +28,8 @@ async function getRuntimeVersion(projectRoot: string): Promise { } } +export type Tool = [cmd: string, ...args: string[]]; + export default class HakEnv { public readonly target: Target; public runtime?: string; @@ -104,4 +107,41 @@ export default class HakEnv { public wantsStaticSqlCipher(): boolean { return !(this.isLinux() || this.isFreeBSD()) || process.env.SQLCIPHER_BUNDLED == "1"; } + + public spawn( + cmd: string, + args: string[], + { ignoreWinCmdlet, ...options }: SpawnOptions & { ignoreWinCmdlet?: boolean } = {}, + ): Promise { + return new Promise((resolve, reject) => { + const proc = childProcess.spawn(cmd + (!ignoreWinCmdlet && this.isWin() ? ".cmd" : ""), args, { + stdio: "inherit", + // We need shell mode on Windows to be able to launch `.cmd` executables + // See https://nodejs.org/en/blog/vulnerability/april-2024-security-releases-2 + shell: this.isWin(), + ...options, + }); + proc.on("exit", (code) => { + if (code) { + reject(code); + } else { + resolve(); + } + }); + }); + } + + public async checkTools(tools: Tool[]): Promise { + for (const [tool, ...args] of tools) { + try { + await this.spawn(tool, args, { + ignoreWinCmdlet: true, + stdio: ["ignore"], + shell: false, + }); + } catch { + throw new Error(`Can't find ${tool}`); + } + } + } } diff --git a/scripts/hak/index.ts b/scripts/hak/index.ts index 9a94188..d8277b0 100644 --- a/scripts/hak/index.ts +++ b/scripts/hak/index.ts @@ -6,11 +6,14 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ -import path from "path"; +import path, { dirname } from "node:path"; +import { fileURLToPath } from "node:url"; -import HakEnv from "./hakEnv"; -import { TargetId } from "./target"; -import { DependencyInfo } from "./dep"; +import HakEnv from "./hakEnv.js"; +import type { TargetId } from "./target.js"; +import type { DependencyInfo } from "./dep.js"; +import { loadJsonFile } from "../../src/utils.js"; +import packageJson from "../../package.json"; const GENERALCOMMANDS = ["target"]; @@ -27,21 +30,15 @@ const METACOMMANDS: Record = { // Scripts valid in a hak.json 'scripts' section const HAKSCRIPTS = ["check", "fetch", "build"]; +const __dirname = dirname(fileURLToPath(import.meta.url)); + async function main(): Promise { const prefix = path.join(__dirname, "..", ".."); - let packageJson; - try { - // eslint-disable-next-line @typescript-eslint/no-require-imports - packageJson = require(path.join(prefix, "package.json")); - } catch { - console.error("Can't find a package.json!"); - process.exit(1); - } const targetIds: TargetId[] = []; // Apply `--target ` option if specified // Can be specified multiple times for the copy command to bundle - // multiple archs into a single universal output module) + // multiple arches into a single universal output module) for (;;) { // eslint-disable-line no-constant-condition const targetIndex = process.argv.indexOf("--target"); @@ -66,12 +63,11 @@ async function main(): Promise { const hakDepsCfg = packageJson.hakDependencies || {}; - for (const dep of Object.keys(hakDepsCfg)) { + for (const dep in hakDepsCfg) { const hakJsonPath = path.join(prefix, "hak", dep, "hak.json"); let hakJson: Record; try { - // eslint-disable-next-line @typescript-eslint/no-require-imports - hakJson = await require(hakJsonPath); + hakJson = loadJsonFile(hakJsonPath); } catch { console.error("No hak.json found for " + dep + "."); console.log("Expecting " + hakJsonPath); @@ -79,7 +75,7 @@ async function main(): Promise { } deps[dep] = { name: dep, - version: hakDepsCfg[dep], + version: hakDepsCfg[dep as keyof typeof hakDepsCfg], cfg: hakJson, moduleHakDir: path.join(prefix, "hak", dep), moduleDotHakDir: path.join(hakEnv.dotHakDir, dep), @@ -93,9 +89,9 @@ async function main(): Promise { }; for (const s of HAKSCRIPTS) { - if (hakJson.scripts && hakJson.scripts[s]) { - const scriptModule = await import(path.join(prefix, "hak", dep, hakJson.scripts[s])); - if (scriptModule.__esModule) { + if (hakJson.scripts?.[s]) { + const scriptModule = await import(path.join("file://", prefix, "hak", dep, hakJson.scripts[s])); + if (scriptModule.default) { deps[dep].scripts[s] = scriptModule.default; } else { deps[dep].scripts[s] = scriptModule; diff --git a/scripts/hak/link.ts b/scripts/hak/link.ts index ac0d2c9..87975c3 100644 --- a/scripts/hak/link.ts +++ b/scripts/hak/link.ts @@ -6,13 +6,12 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ -import path from "path"; -import os from "os"; -import fsProm from "fs/promises"; -import childProcess from "child_process"; +import path from "node:path"; +import os from "node:os"; +import fsProm from "node:fs/promises"; -import HakEnv from "./hakEnv"; -import { DependencyInfo } from "./dep"; +import HakEnv from "./hakEnv.js"; +import { DependencyInfo } from "./dep.js"; export default async function link(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise { const yarnrc = path.join(hakEnv.projectRoot, ".yarnrc"); @@ -39,39 +38,10 @@ export default async function link(hakEnv: HakEnv, moduleInfo: DependencyInfo): ); } - const yarnCmd = "yarn" + (hakEnv.isWin() ? ".cmd" : ""); - - await new Promise((resolve, reject) => { - const proc = childProcess.spawn(yarnCmd, ["link"], { - cwd: moduleInfo.moduleOutDir, - stdio: "inherit", - // We need shell mode on Windows to be able to launch `.cmd` executables - // See https://nodejs.org/en/blog/vulnerability/april-2024-security-releases-2 - shell: hakEnv.isWin(), - }); - proc.on("exit", (code) => { - if (code) { - reject(code); - } else { - resolve(); - } - }); + await hakEnv.spawn("yarn", ["link"], { + cwd: moduleInfo.moduleOutDir, }); - - await new Promise((resolve, reject) => { - const proc = childProcess.spawn(yarnCmd, ["link", moduleInfo.name], { - cwd: hakEnv.projectRoot, - stdio: "inherit", - // We need shell mode on Windows to be able to launch `.cmd` executables - // See https://nodejs.org/en/blog/vulnerability/april-2024-security-releases-2 - shell: hakEnv.isWin(), - }); - proc.on("exit", (code) => { - if (code) { - reject(code); - } else { - resolve(); - } - }); + await hakEnv.spawn("yarn", ["link", moduleInfo.name], { + cwd: hakEnv.projectRoot, }); } diff --git a/scripts/set-version.ts b/scripts/set-version.ts index 8539bff..9890f09 100755 --- a/scripts/set-version.ts +++ b/scripts/set-version.ts @@ -1,13 +1,14 @@ -#!/usr/bin/env -S npx ts-node +#!/usr/bin/env -S npx tsx /* * Checks for the presence of a webapp, inspects its version and sets the * version metadata of the package to match. */ -import { promises as fs } from "fs"; +import { promises as fs } from "node:fs"; import * as asar from "@electron/asar"; -import * as childProcess from "child_process"; +import * as childProcess from "node:child_process"; +import * as url from "node:url"; export async function versionFromAsar(): Promise { try { @@ -57,13 +58,16 @@ async function main(args: string[]): Promise { return 0; } -if (require.main === module) { - main(process.argv.slice(2)) - .then((ret) => { - process.exit(ret); - }) - .catch((e) => { - console.error(e); - process.exit(1); - }); +if (import.meta.url.startsWith("file:")) { + const modulePath = url.fileURLToPath(import.meta.url); + if (process.argv[1] === modulePath) { + main(process.argv.slice(2)) + .then((ret) => { + process.exit(ret); + }) + .catch((e) => { + console.error(e); + process.exit(1); + }); + } } diff --git a/scripts/tsconfig.json b/scripts/tsconfig.json index 4e547d9..af9cdf4 100644 --- a/scripts/tsconfig.json +++ b/scripts/tsconfig.json @@ -1,16 +1,13 @@ { "compilerOptions": { "resolveJsonModule": true, - "moduleResolution": "node", + "moduleResolution": "node16", "esModuleInterop": true, - "target": "es2017", - "module": "commonjs", + "target": "es2022", + "module": "node16", "sourceMap": false, "strict": true, "lib": ["es2020", "dom"] }, - "include": ["../src/@types", "./**/*.ts"], - "ts-node": { - "transpileOnly": true - } + "include": ["../src/@types", "./**/*.ts"] } diff --git a/src/@types/electron-devtools-installer.d.ts b/src/@types/electron-devtools-installer.d.ts new file mode 100644 index 0000000..0c72ca3 --- /dev/null +++ b/src/@types/electron-devtools-installer.d.ts @@ -0,0 +1,18 @@ +/* +Copyright 2024 New Vector Ltd. + +SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only +Please see LICENSE files in the repository root for full details. +*/ + +// import "electron-devtools-installer"; + +declare module "electron-devtools-installer" { + interface ExtensionReference { + id: string; + electron: string; + } + + export const REACT_DEVELOPER_TOOLS: ExtensionReference; + export default function install(extension: ExtensionReference): Promise; +} diff --git a/src/@types/global.d.ts b/src/@types/global.d.ts index 4404692..b4a95b0 100644 --- a/src/@types/global.d.ts +++ b/src/@types/global.d.ts @@ -9,7 +9,7 @@ import { BrowserWindow } from "electron"; import Store from "electron-store"; import AutoLaunch from "auto-launch"; -import { AppLocalization } from "../language-helper"; +import { AppLocalization } from "../language-helper.js"; // global type extensions need to use var for whatever reason /* eslint-disable no-var */ diff --git a/src/displayMediaCallback.ts b/src/displayMediaCallback.ts index a0bbeaf..812f575 100644 --- a/src/displayMediaCallback.ts +++ b/src/displayMediaCallback.ts @@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ -import { Streams } from "electron"; +import type { Streams } from "electron"; type DisplayMediaCallback = (streams: Streams) => void; diff --git a/src/electron-main.ts b/src/electron-main.ts index 76547ae..4bc4b1d 100644 --- a/src/electron-main.ts +++ b/src/electron-main.ts @@ -9,31 +9,34 @@ Please see LICENSE files in the repository root for full details. */ // Squirrel on windows starts the app with various flags as hooks to tell us when we've been installed/uninstalled etc. -import "./squirrelhooks"; +import "./squirrelhooks.js"; import { app, BrowserWindow, Menu, autoUpdater, protocol, dialog, Input, Event, session } from "electron"; +// eslint-disable-next-line n/file-extension-in-import import * as Sentry from "@sentry/electron/main"; import AutoLaunch from "auto-launch"; -import path from "path"; +import path, { dirname } from "node:path"; import windowStateKeeper from "electron-window-state"; import Store from "electron-store"; -import fs, { promises as afs } from "fs"; -import { URL } from "url"; +import fs, { promises as afs } from "node:fs"; +import { URL, fileURLToPath } from "node:url"; import minimist from "minimist"; -import "./ipc"; -import "./keytar"; -import "./seshat"; -import "./settings"; -import * as tray from "./tray"; -import { buildMenuTemplate } from "./vectormenu"; -import webContentsHandler from "./webcontents-handler"; -import * as updater from "./updater"; -import { getProfileFromDeeplink, protocolInit } from "./protocol"; -import { _t, AppLocalization } from "./language-helper"; -import { setDisplayMediaCallback } from "./displayMediaCallback"; -import { setupMacosTitleBar } from "./macos-titlebar"; -import { loadJsonFile } from "./utils"; -import { setupMediaAuth } from "./media-auth"; +import "./ipc.js"; +import "./keytar.js"; +import "./seshat.js"; +import "./settings.js"; +import * as tray from "./tray.js"; +import { buildMenuTemplate } from "./vectormenu.js"; +import webContentsHandler from "./webcontents-handler.js"; +import * as updater from "./updater.js"; +import { getProfileFromDeeplink, protocolInit } from "./protocol.js"; +import { _t, AppLocalization } from "./language-helper.js"; +import { setDisplayMediaCallback } from "./displayMediaCallback.js"; +import { setupMacosTitleBar } from "./macos-titlebar.js"; +import { loadJsonFile } from "./utils.js"; +import { setupMediaAuth } from "./media-auth.js"; + +const __dirname = dirname(fileURLToPath(import.meta.url)); const argv = minimist(process.argv, { alias: { help: "h" }, @@ -373,14 +376,10 @@ app.on("ready", async () => { if (argv["devtools"]) { try { - // eslint-disable-next-line @typescript-eslint/no-require-imports - const { default: installExt, REACT_DEVELOPER_TOOLS, REACT_PERF } = require("electron-devtools-installer"); + const { default: installExt, REACT_DEVELOPER_TOOLS } = await import("electron-devtools-installer"); installExt(REACT_DEVELOPER_TOOLS) .then((name: string) => console.log(`Added Extension: ${name}`)) .catch((err: unknown) => console.log("An error occurred: ", err)); - installExt(REACT_PERF) - .then((name: string) => console.log(`Added Extension: ${name}`)) - .catch((err: unknown) => console.log("An error occurred: ", err)); } catch (e) { console.log(e); } @@ -453,7 +452,7 @@ app.on("ready", async () => { defaultHeight: 768, }); - const preloadScript = path.normalize(`${__dirname}/preload.js`); + const preloadScript = path.normalize(`${__dirname}/preload.cjs`); global.mainWindow = new BrowserWindow({ // https://www.electronjs.org/docs/faq#the-font-looks-blurry-what-is-this-and-what-can-i-do backgroundColor: "#fff", diff --git a/src/ipc.ts b/src/ipc.ts index 8a7e330..d7c24a6 100644 --- a/src/ipc.ts +++ b/src/ipc.ts @@ -9,11 +9,11 @@ import { app, autoUpdater, desktopCapturer, ipcMain, powerSaveBlocker, TouchBar, import { relaunchApp } from "electron-clear-data"; import IpcMainEvent = Electron.IpcMainEvent; -import { recordSSOSession } from "./protocol"; -import { randomArray } from "./utils"; -import { Settings } from "./settings"; -import { keytar } from "./keytar"; -import { getDisplayMediaCallback, setDisplayMediaCallback } from "./displayMediaCallback"; +import { recordSSOSession } from "./protocol.js"; +import { randomArray } from "./utils.js"; +import { Settings } from "./settings.js"; +import { keytar } from "./keytar.js"; +import { getDisplayMediaCallback, setDisplayMediaCallback } from "./displayMediaCallback.js"; ipcMain.on("setBadgeCount", function (_ev: IpcMainEvent, count: number): void { if (process.platform !== "win32") { diff --git a/src/keytar.ts b/src/keytar.ts index b7da8ee..9b61fe3 100644 --- a/src/keytar.ts +++ b/src/keytar.ts @@ -9,8 +9,7 @@ import type * as Keytar from "keytar"; // Hak dependency type let keytar: typeof Keytar | undefined; try { - // eslint-disable-next-line @typescript-eslint/no-require-imports - keytar = require("keytar"); + keytar = await import("keytar"); } catch (e) { if ((e).code === "MODULE_NOT_FOUND") { console.log("Keytar isn't installed; secure key storage is disabled."); diff --git a/src/language-helper.ts b/src/language-helper.ts index 88564db..f646f43 100644 --- a/src/language-helper.ts +++ b/src/language-helper.ts @@ -7,10 +7,14 @@ Please see LICENSE files in the repository root for full details. import counterpart from "counterpart"; import { TranslationKey as TKey } from "matrix-web-i18n"; +import { dirname } from "node:path"; +import { fileURLToPath } from "node:url"; import type Store from "electron-store"; import type EN from "./i18n/strings/en_EN.json"; -import { loadJsonFile } from "./utils"; +import { loadJsonFile } from "./utils.js"; + +const __dirname = dirname(fileURLToPath(import.meta.url)); const FALLBACK_LOCALE = "en"; diff --git a/src/macos-titlebar.ts b/src/macos-titlebar.ts index 2e17dc1..f0357f4 100644 --- a/src/macos-titlebar.ts +++ b/src/macos-titlebar.ts @@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ -import { BrowserWindow } from "electron"; +import type { BrowserWindow } from "electron"; export function setupMacosTitleBar(window: BrowserWindow): void { if (process.platform !== "darwin") return; diff --git a/src/media-auth.ts b/src/media-auth.ts index ba25a48..5985d4b 100644 --- a/src/media-auth.ts +++ b/src/media-auth.ts @@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ -import { BrowserWindow, ipcMain, session } from "electron"; +import { type BrowserWindow, ipcMain, session } from "electron"; /** * Check for feature support from the server. diff --git a/src/preload.ts b/src/preload.cts similarity index 92% rename from src/preload.ts rename to src/preload.cts index faa86a4..12c7624 100644 --- a/src/preload.ts +++ b/src/preload.cts @@ -6,6 +6,8 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ +// This file is compiled to CommonJS rather than ESM otherwise the browser chokes on the import statement. + import { ipcRenderer, contextBridge, IpcRendererEvent } from "electron"; // Expose only expected IPC wrapper APIs to the renderer process to avoid diff --git a/src/protocol.ts b/src/protocol.ts index dbc61a7..b04e931 100644 --- a/src/protocol.ts +++ b/src/protocol.ts @@ -7,9 +7,9 @@ Please see LICENSE files in the repository root for full details. */ import { app } from "electron"; -import { URL } from "url"; -import path from "path"; -import fs from "fs"; +import { URL } from "node:url"; +import path from "node:path"; +import fs from "node:fs"; const LEGACY_PROTOCOL = "element"; const PROTOCOL = "io.element.desktop"; diff --git a/src/seshat.ts b/src/seshat.ts index 778c697..0a192c9 100644 --- a/src/seshat.ts +++ b/src/seshat.ts @@ -6,8 +6,8 @@ Please see LICENSE files in the repository root for full details. */ import { app, ipcMain } from "electron"; -import { promises as afs } from "fs"; -import path from "path"; +import { promises as afs } from "node:fs"; +import path from "node:path"; import type { Seshat as SeshatType, @@ -15,8 +15,8 @@ import type { ReindexError as ReindexErrorType, } from "matrix-seshat"; // Hak dependency type import IpcMainEvent = Electron.IpcMainEvent; -import { randomArray } from "./utils"; -import { keytar } from "./keytar"; +import { randomArray } from "./utils.js"; +import { keytar } from "./keytar.js"; let seshatSupported = false; let Seshat: typeof SeshatType; @@ -24,8 +24,7 @@ let SeshatRecovery: typeof SeshatRecoveryType; let ReindexError: typeof ReindexErrorType; try { - // eslint-disable-next-line @typescript-eslint/no-require-imports - const seshatModule = require("matrix-seshat"); + const seshatModule = await import("matrix-seshat"); Seshat = seshatModule.Seshat; SeshatRecovery = seshatModule.SeshatRecovery; ReindexError = seshatModule.ReindexError; diff --git a/src/settings.ts b/src/settings.ts index 50e3a08..f85cd07 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ -import * as tray from "./tray"; +import * as tray from "./tray.js"; interface Setting { read(): Promise; diff --git a/src/squirrelhooks.ts b/src/squirrelhooks.ts index ae84e64..6fb5bde 100644 --- a/src/squirrelhooks.ts +++ b/src/squirrelhooks.ts @@ -6,8 +6,8 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ -import path from "path"; -import { spawn } from "child_process"; +import path from "node:path"; +import { spawn } from "node:child_process"; import { app } from "electron"; export function getSquirrelExecutable(): string { diff --git a/src/tray.ts b/src/tray.ts index 339ca83..a9291fa 100644 --- a/src/tray.ts +++ b/src/tray.ts @@ -9,11 +9,11 @@ Please see LICENSE files in the repository root for full details. import { app, Tray, Menu, nativeImage } from "electron"; import pngToIco from "png-to-ico"; -import path from "path"; -import fs from "fs"; +import path from "node:path"; +import fs from "node:fs"; import { v5 as uuidv5 } from "uuid"; -import { _t } from "./language-helper"; +import { _t } from "./language-helper.js"; let trayIcon: Tray | null = null; diff --git a/src/updater.ts b/src/updater.ts index a731522..447d49c 100644 --- a/src/updater.ts +++ b/src/updater.ts @@ -8,7 +8,7 @@ Please see LICENSE files in the repository root for full details. import { app, autoUpdater, ipcMain } from "electron"; import fs from "node:fs/promises"; -import { getSquirrelExecutable } from "./squirrelhooks"; +import { getSquirrelExecutable } from "./squirrelhooks.js"; const UPDATE_POLL_INTERVAL_MS = 60 * 60 * 1000; const INITIAL_UPDATE_DELAY_MS = 30 * 1000; diff --git a/src/utils.ts b/src/utils.ts index 21fffeb..6a716eb 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ -import crypto from "crypto"; +import crypto from "node:crypto"; import fs from "node:fs"; import path from "node:path"; diff --git a/src/vectormenu.ts b/src/vectormenu.ts index 09ab24f..0a364d7 100644 --- a/src/vectormenu.ts +++ b/src/vectormenu.ts @@ -8,7 +8,7 @@ Please see LICENSE files in the repository root for full details. import { app, shell, Menu, MenuItem, MenuItemConstructorOptions } from "electron"; -import { _t } from "./language-helper"; +import { _t } from "./language-helper.js"; const isMac = process.platform === "darwin"; diff --git a/src/webcontents-handler.ts b/src/webcontents-handler.ts index 43ab14c..024198c 100644 --- a/src/webcontents-handler.ts +++ b/src/webcontents-handler.ts @@ -21,13 +21,13 @@ import { IpcMainEvent, Event, } from "electron"; -import url from "url"; -import fs from "fs"; +import url from "node:url"; +import fs from "node:fs"; import fetch from "node-fetch"; -import { pipeline } from "stream/promises"; -import path from "path"; +import { pipeline } from "node:stream/promises"; +import path from "node:path"; -import { _t } from "./language-helper"; +import { _t } from "./language-helper.js"; const MAILTO_PREFIX = "mailto:"; diff --git a/tsconfig.json b/tsconfig.json index da5521b..04f8093 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,8 +2,9 @@ "compilerOptions": { "resolveJsonModule": true, "esModuleInterop": true, - "module": "commonjs", - "moduleResolution": "node", + "module": "node16", + "moduleResolution": "node16", + "skipLibCheck": true, "target": "es2022", "sourceMap": false, "outDir": "./lib", @@ -14,5 +15,5 @@ "types": ["node"], "strict": true }, - "include": ["./src/**/*.ts"] + "include": ["./src/**/*.ts", "./src/**/*.cts"] } diff --git a/yarn.lock b/yarn.lock index e17da4f..21c8817 100644 --- a/yarn.lock +++ b/yarn.lock @@ -976,13 +976,6 @@ "@babel/helper-string-parser" "^7.25.9" "@babel/helper-validator-identifier" "^7.25.9" -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - "@develar/schema-utils@~2.6.5": version "2.6.5" resolved "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz#3ece22c5838402419a6e0425f85742b961d9b6c6" @@ -1088,6 +1081,133 @@ minimatch "^9.0.3" plist "^3.1.0" +"@esbuild/aix-ppc64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz#51299374de171dbd80bb7d838e1cfce9af36f353" + integrity sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ== + +"@esbuild/android-arm64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz#58565291a1fe548638adb9c584237449e5e14018" + integrity sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw== + +"@esbuild/android-arm@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.23.1.tgz#5eb8c652d4c82a2421e3395b808e6d9c42c862ee" + integrity sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ== + +"@esbuild/android-x64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.23.1.tgz#ae19d665d2f06f0f48a6ac9a224b3f672e65d517" + integrity sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg== + +"@esbuild/darwin-arm64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz#05b17f91a87e557b468a9c75e9d85ab10c121b16" + integrity sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q== + +"@esbuild/darwin-x64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz#c58353b982f4e04f0d022284b8ba2733f5ff0931" + integrity sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw== + +"@esbuild/freebsd-arm64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz#f9220dc65f80f03635e1ef96cfad5da1f446f3bc" + integrity sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA== + +"@esbuild/freebsd-x64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz#69bd8511fa013b59f0226d1609ac43f7ce489730" + integrity sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g== + +"@esbuild/linux-arm64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz#8050af6d51ddb388c75653ef9871f5ccd8f12383" + integrity sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g== + +"@esbuild/linux-arm@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz#ecaabd1c23b701070484990db9a82f382f99e771" + integrity sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ== + +"@esbuild/linux-ia32@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz#3ed2273214178109741c09bd0687098a0243b333" + integrity sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ== + +"@esbuild/linux-loong64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz#a0fdf440b5485c81b0fbb316b08933d217f5d3ac" + integrity sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw== + +"@esbuild/linux-mips64el@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz#e11a2806346db8375b18f5e104c5a9d4e81807f6" + integrity sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q== + +"@esbuild/linux-ppc64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz#06a2744c5eaf562b1a90937855b4d6cf7c75ec96" + integrity sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw== + +"@esbuild/linux-riscv64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz#65b46a2892fc0d1af4ba342af3fe0fa4a8fe08e7" + integrity sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA== + +"@esbuild/linux-s390x@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz#e71ea18c70c3f604e241d16e4e5ab193a9785d6f" + integrity sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw== + +"@esbuild/linux-x64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz#d47f97391e80690d4dfe811a2e7d6927ad9eed24" + integrity sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ== + +"@esbuild/netbsd-x64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz#44e743c9778d57a8ace4b72f3c6b839a3b74a653" + integrity sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA== + +"@esbuild/openbsd-arm64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz#05c5a1faf67b9881834758c69f3e51b7dee015d7" + integrity sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q== + +"@esbuild/openbsd-x64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz#2e58ae511bacf67d19f9f2dcd9e8c5a93f00c273" + integrity sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA== + +"@esbuild/sunos-x64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz#adb022b959d18d3389ac70769cef5a03d3abd403" + integrity sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA== + +"@esbuild/win32-arm64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz#84906f50c212b72ec360f48461d43202f4c8b9a2" + integrity sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A== + +"@esbuild/win32-ia32@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz#5e3eacc515820ff729e90d0cb463183128e82fac" + integrity sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ== + +"@esbuild/win32-x64@0.23.1": + version "0.23.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz#81fd50d11e2c32b2d6241470e3185b70c7b30699" + integrity sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg== + +"@eslint-community/eslint-utils@^4.1.2", "@eslint-community/eslint-utils@^4.4.0": + version "4.4.1" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56" + integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA== + dependencies: + eslint-visitor-keys "^3.4.3" + "@eslint-community/eslint-utils@^4.2.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -1095,14 +1215,7 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/eslint-utils@^4.4.0": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56" - integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA== - dependencies: - eslint-visitor-keys "^3.4.3" - -"@eslint-community/regexpp@^4.10.0": +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.11.0": version "4.12.1" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== @@ -1184,7 +1297,7 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.24" -"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": +"@jridgewell/resolve-uri@^3.1.0": version "3.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== @@ -1199,14 +1312,6 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": version "0.3.25" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" @@ -1956,26 +2061,6 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== -"@tsconfig/node10@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" - integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - "@tufjs/canonical-json@2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz#a52f61a3d7374833fca945b2549bc30a2dd40d0a" @@ -2362,18 +2447,6 @@ acorn-jsx@^5.3.2: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-walk@^8.1.1: - version "8.3.3" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.3.tgz#9caeac29eefaa0c41e3d4c65137de4d6f34df43e" - integrity sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw== - dependencies: - acorn "^8.11.0" - -acorn@^8.11.0, acorn@^8.4.1, acorn@^8.9.0: - version "8.12.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" - integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== - acorn@^8.12.0: version "8.13.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.13.0.tgz#2a30d670818ad16ddd6a35d3842dacec9e5d7ca3" @@ -2384,6 +2457,11 @@ acorn@^8.8.2: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== +acorn@^8.9.0: + version "8.12.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== + agent-base@6, agent-base@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" @@ -2413,10 +2491,10 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" -ajv-formats@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" - integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== +ajv-formats@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-3.0.1.tgz#3d5dc762bca17679c3c2ea7e90ad6b7532309578" + integrity sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ== dependencies: ajv "^8.0.0" @@ -2435,7 +2513,7 @@ ajv@^6.10.0, ajv@^6.12.0, ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.6.3: +ajv@^8.0.0, ajv@^8.16.0: version "8.17.1" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== @@ -2588,11 +2666,6 @@ are-we-there-yet@^3.0.0: delegates "^1.0.0" readable-stream "^3.6.0" -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - argparse@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" @@ -2694,10 +2767,13 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -atomically@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/atomically/-/atomically-1.7.0.tgz#c07a0458432ea6dbc9a3506fffa424b48bccaafe" - integrity sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w== +atomically@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/atomically/-/atomically-2.0.3.tgz#27e47bbe39994d324918491ba7c0edb7783e56cb" + integrity sha512-kU6FmrwZ3Lx7/7y3hPS5QnbJfaohcIul5fGqf7ok+4KklIEk9tJ0C2IQPdacSbVUWv6zVHXEBWoWd6NrVMT7Cw== + dependencies: + stubborn-fs "^1.2.5" + when-exit "^2.1.1" auto-launch@^5.0.5: version "5.0.6" @@ -3139,21 +3215,20 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -conf@^10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/conf/-/conf-10.2.0.tgz#838e757be963f1a2386dfe048a98f8f69f7b55d6" - integrity sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg== +conf@^13.0.0: + version "13.0.1" + resolved "https://registry.yarnpkg.com/conf/-/conf-13.0.1.tgz#a98693789c28507994f06ea0121922dab76591df" + integrity sha512-l9Uwc9eOnz39oADzGO2cSBDi7siv8lwO+31ocQ2nOJijnDiW3pxqm9VV10DPYUO28wW83DjABoUqY1nfHRR2hQ== dependencies: - ajv "^8.6.3" - ajv-formats "^2.1.1" - atomically "^1.7.0" - debounce-fn "^4.0.0" - dot-prop "^6.0.1" - env-paths "^2.2.1" - json-schema-typed "^7.0.3" - onetime "^5.1.2" - pkg-up "^3.1.0" - semver "^7.3.5" + ajv "^8.16.0" + ajv-formats "^3.0.1" + atomically "^2.0.3" + debounce-fn "^6.0.0" + dot-prop "^9.0.0" + env-paths "^3.0.0" + json-schema-typed "^8.0.1" + semver "^7.6.2" + uint8array-extras "^1.1.0" config-file-ts@0.2.8-rc1: version "0.2.8-rc1" @@ -3221,11 +3296,6 @@ crc@^3.8.0: dependencies: buffer "^5.1.0" -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -3267,12 +3337,12 @@ date-names@^0.1.11: resolved "https://registry.yarnpkg.com/date-names/-/date-names-0.1.13.tgz#c4358f6f77c8056e2f5ea68fdbb05f0bf1e53bd0" integrity sha512-IxxoeD9tdx8pXVcmqaRlPvrXIsSrSrIZzfzlOkm9u+hyzKp5Wk/odt9O/gd7Ockzy8n/WHeEpTVJ2bF3mMV4LA== -debounce-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/debounce-fn/-/debounce-fn-4.0.0.tgz#ed76d206d8a50e60de0dd66d494d82835ffe61c7" - integrity sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ== +debounce-fn@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/debounce-fn/-/debounce-fn-6.0.0.tgz#558169aed853eb3cf3a17c0a2438e1a91a7ba44f" + integrity sha512-rBMW+F2TXryBwB54Q0d8drNEI+TfoS9JpNTAoVpukbWEhjXQq4rySFYLaqXMFXwdv61Zb2OHtj5bviSoimqxRQ== dependencies: - mimic-fn "^3.0.0" + mimic-function "^5.0.0" debug@4: version "4.3.5" @@ -3362,11 +3432,6 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - dir-compare@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/dir-compare/-/dir-compare-4.2.0.tgz#d1d4999c14fbf55281071fdae4293b3b9ce86f19" @@ -3417,12 +3482,12 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dot-prop@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" - integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== +dot-prop@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-9.0.0.tgz#bae5982fe6dc6b8fddb92efef4f2ddff26779e92" + integrity sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ== dependencies: - is-obj "^2.0.0" + type-fest "^4.18.2" dotenv-expand@^11.0.6: version "11.0.6" @@ -3511,13 +3576,13 @@ electron-publish@25.1.7: lazy-val "^1.0.5" mime "^2.5.2" -electron-store@^8.0.2: - version "8.2.0" - resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-8.2.0.tgz#114e6e453e8bb746ab4ccb542424d8c881ad2ca1" - integrity sha512-ukLL5Bevdil6oieAOXz3CMy+OgaItMiVBg701MNlG6W5RaC0AHN7rvlqTCmeb6O7jP0Qa1KKYTE0xV0xbhF4Hw== +electron-store@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-10.0.0.tgz#b6ff4d3a51457a26b394b0deffaf3ff804c8ba91" + integrity sha512-BU/QZh+5twHBprRdLu3YZX/rIarmZzhTNpJvAvqG1/yN0mNCrsMh0kl7bM4xaUKDNRiHz1r7wP/7Prjh7cleIw== dependencies: - conf "^10.2.0" - type-fest "^2.17.0" + conf "^13.0.0" + type-fest "^4.20.0" electron-to-chromium@^1.5.41: version "1.5.49" @@ -3532,10 +3597,10 @@ electron-window-state@^5.0.3: jsonfile "^4.0.0" mkdirp "^0.5.1" -electron@^32.0.0: - version "32.2.2" - resolved "https://registry.yarnpkg.com/electron/-/electron-32.2.2.tgz#019fe17329708be2ec677f0d201d785d57123a50" - integrity sha512-c7TRE42JcgEmJ4elJyCdKk/2os0UX7YMkRDeXBkxFEoM34iX1/2x+c5T9PgeroKz8FEG7omRU5TvjulqVtXvdw== +electron@^33.0.0: + version "33.0.2" + resolved "https://registry.yarnpkg.com/electron/-/electron-33.0.2.tgz#db31b105bf0edd7c8600dfb70c2dfc214e3789f1" + integrity sha512-C2WksfP0COsMHbYXSJG68j6S3TjuGDrw/YT42B526yXalIlNQZ2GeAYKryg6AEMkIp3p8TUfDRD0+HyiyCt/nw== dependencies: "@electron/get" "^2.0.0" "@types/node" "^20.9.0" @@ -3573,11 +3638,16 @@ enhanced-resolve@^5.17.1: graceful-fs "^4.2.4" tapable "^2.2.0" -env-paths@^2.2.0, env-paths@^2.2.1: +env-paths@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== +env-paths@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-3.0.0.tgz#2f1e89c2f6dbd3408e1b1711dd82d62e317f58da" + integrity sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A== + err-code@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" @@ -3691,6 +3761,36 @@ es6-error@^4.1.1: resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== +esbuild@~0.23.0: + version "0.23.1" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.23.1.tgz#40fdc3f9265ec0beae6f59824ade1bd3d3d2dab8" + integrity sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg== + optionalDependencies: + "@esbuild/aix-ppc64" "0.23.1" + "@esbuild/android-arm" "0.23.1" + "@esbuild/android-arm64" "0.23.1" + "@esbuild/android-x64" "0.23.1" + "@esbuild/darwin-arm64" "0.23.1" + "@esbuild/darwin-x64" "0.23.1" + "@esbuild/freebsd-arm64" "0.23.1" + "@esbuild/freebsd-x64" "0.23.1" + "@esbuild/linux-arm" "0.23.1" + "@esbuild/linux-arm64" "0.23.1" + "@esbuild/linux-ia32" "0.23.1" + "@esbuild/linux-loong64" "0.23.1" + "@esbuild/linux-mips64el" "0.23.1" + "@esbuild/linux-ppc64" "0.23.1" + "@esbuild/linux-riscv64" "0.23.1" + "@esbuild/linux-s390x" "0.23.1" + "@esbuild/linux-x64" "0.23.1" + "@esbuild/netbsd-x64" "0.23.1" + "@esbuild/openbsd-arm64" "0.23.1" + "@esbuild/openbsd-x64" "0.23.1" + "@esbuild/sunos-x64" "0.23.1" + "@esbuild/win32-arm64" "0.23.1" + "@esbuild/win32-ia32" "0.23.1" + "@esbuild/win32-x64" "0.23.1" + escalade@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" @@ -3711,6 +3811,13 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +eslint-compat-utils@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz#7fc92b776d185a70c4070d03fd26fde3d59652e4" + integrity sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q== + dependencies: + semver "^7.5.4" + eslint-config-google@^0.14.0: version "0.14.0" resolved "https://registry.yarnpkg.com/eslint-config-google/-/eslint-config-google-0.14.0.tgz#4f5f8759ba6e11b424294a219dbfa18c508bcc1a" @@ -3737,6 +3844,15 @@ eslint-module-utils@^2.12.0: dependencies: debug "^3.2.7" +eslint-plugin-es-x@^7.8.0: + version "7.8.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz#a207aa08da37a7923f2a9599e6d3eb73f3f92b74" + integrity sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ== + dependencies: + "@eslint-community/eslint-utils" "^4.1.2" + "@eslint-community/regexpp" "^4.11.0" + eslint-compat-utils "^0.5.1" + eslint-plugin-import@^2.25.4: version "2.31.0" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz#310ce7e720ca1d9c0bb3f69adfd1c6bdd7d9e0e7" @@ -3767,6 +3883,20 @@ eslint-plugin-matrix-org@^2.0.1: resolved "https://registry.yarnpkg.com/eslint-plugin-matrix-org/-/eslint-plugin-matrix-org-2.0.2.tgz#95b86b0f16704ab19740f7c3c62eae69e20365e6" integrity sha512-cQy5Rjeq6uyu1mLXlPZwEJdyM0NmclrnEz68y792FSuuxzMyJNNYLGDQ5CkYW8H+PrD825HUFZ34pNXnjMOzOw== +eslint-plugin-n@^17.12.0: + version "17.12.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-17.12.0.tgz#a6518a2806a21801ac4d532d23c1ac7f8d49ee49" + integrity sha512-zNAtz/erDn0v78bIY3MASSQlyaarV4IOTvP5ldHsqblRFrXriikB6ghkDTkHjUad+nMRrIbOy9euod2azjRfBg== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + enhanced-resolve "^5.17.1" + eslint-plugin-es-x "^7.8.0" + get-tsconfig "^4.8.1" + globals "^15.11.0" + ignore "^5.3.2" + minimatch "^9.0.5" + semver "^7.6.3" + eslint-plugin-unicorn@^56.0.0: version "56.0.0" resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-56.0.0.tgz#9fd3ebe6f478571734541fa745026b743175b59e" @@ -3992,13 +4122,6 @@ fill-range@^7.1.1: dependencies: to-regex-range "^5.0.1" -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -4124,6 +4247,11 @@ fsevents@2.3.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== +fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + function-bind@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" @@ -4210,6 +4338,13 @@ get-symbol-description@^1.0.2: es-errors "^1.3.0" get-intrinsic "^1.2.4" +get-tsconfig@^4.7.5, get-tsconfig@^4.8.1: + version "4.8.1" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.8.1.tgz#8995eb391ae6e1638d251118c7b56de7eb425471" + integrity sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg== + dependencies: + resolve-pkg-maps "^1.0.0" + glob-parent@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -4295,7 +4430,7 @@ globals@^13.19.0: dependencies: type-fest "^0.20.2" -globals@^15.9.0: +globals@^15.11.0, globals@^15.9.0: version "15.11.0" resolved "https://registry.yarnpkg.com/globals/-/globals-15.11.0.tgz#b96ed4c6998540c6fb824b24b5499216d2438d6e" integrity sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw== @@ -4499,7 +4634,7 @@ ignore-walk@^7.0.0: dependencies: minimatch "^9.0.0" -ignore@^5.1.8, ignore@^5.2.0, ignore@^5.3.1: +ignore@^5.1.8, ignore@^5.2.0, ignore@^5.3.1, ignore@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== @@ -4699,11 +4834,6 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - is-path-inside@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" @@ -4882,10 +5012,10 @@ json-schema-traverse@^1.0.0: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== -json-schema-typed@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz#23ff481b8b4eebcd2ca123b4fa0409e66469a2d9" - integrity sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A== +json-schema-typed@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-8.0.1.tgz#826ee39e3b6cef536f85412ff048d3ff6f19dfa0" + integrity sha512-XQmWYj2Sm4kn4WeTYvmpKEbyPsL7nBsb647c7pMe6l02/yx2+Jfc4dT6UZkEXnIUb5LhD55r2HPsJ1milQ4rDg== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" @@ -5001,14 +5131,6 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -5112,11 +5234,6 @@ make-dir@^3.1.0: dependencies: semver "^6.0.0" -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - make-fetch-happen@^10.0.3: version "10.2.1" resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164" @@ -5227,10 +5344,10 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-fn@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" - integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== +mimic-function@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/mimic-function/-/mimic-function-5.0.1.tgz#acbe2b3349f99b9deaca7fb70e48b83e94e67076" + integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== mimic-response@^1.0.0: version "1.0.1" @@ -5728,7 +5845,7 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^5.1.0, onetime@^5.1.2: +onetime@^5.1.0: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== @@ -5767,7 +5884,7 @@ p-cancelable@^2.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== -p-limit@^2.0.0, p-limit@^2.2.0: +p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== @@ -5781,13 +5898,6 @@ p-limit@^3.0.2, "p-limit@^3.1.0 ": dependencies: yocto-queue "^0.1.0" -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -5874,11 +5984,6 @@ parse-ms@^4.0.0: resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-4.0.0.tgz#c0c058edd47c2a590151a718990533fd62803df4" integrity sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw== -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== - path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -5979,13 +6084,6 @@ picomatch@^4.0.1, picomatch@^4.0.2: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== -pkg-up@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" - integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== - dependencies: - find-up "^3.0.0" - playwright-core@1.48.2: version "1.48.2" resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.48.2.tgz#cd76ed8af61690edef5c05c64721c26a8db2f3d7" @@ -6326,6 +6424,11 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve-pkg-maps@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" + integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== + resolve@^1.10.0, resolve@^1.14.2, resolve@^1.22.4, resolve@^1.22.8: version "1.22.8" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" @@ -6462,7 +6565,7 @@ semver@^6.0.0, semver@^6.2.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.1.1, semver@^7.2.1, semver@^7.3.2, semver@^7.3.5, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.6.0, semver@^7.6.3: +semver@^7.1.1, semver@^7.2.1, semver@^7.3.2, semver@^7.3.5, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.2, semver@^7.6.3: version "7.6.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== @@ -6789,6 +6892,11 @@ strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +stubborn-fs@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/stubborn-fs/-/stubborn-fs-1.2.5.tgz#e5e244223166921ddf66ed5e062b6b3bf285bfd2" + integrity sha512-H2N9c26eXjzL/S/K+i/RHHcFanE74dptvvjM8iwzwbVcWY/zjBbgRqF3K0DY4+OD+uTTASTBvDoxPDaPN02D7g== + sumchecker@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" @@ -6914,25 +7022,6 @@ ts-api-utils@^1.3.0: resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== -ts-node@^10.9.1: - version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" - integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - tsconfig-paths@^3.15.0: version "3.15.0" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" @@ -6948,6 +7037,16 @@ tslib@^2.1.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== +tsx@^4.19.2: + version "4.19.2" + resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.19.2.tgz#2d7814783440e0ae42354d0417d9c2989a2ae92c" + integrity sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g== + dependencies: + esbuild "~0.23.0" + get-tsconfig "^4.7.5" + optionalDependencies: + fsevents "~2.3.3" + tuf-js@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-3.0.1.tgz#e3f07ed3d8e87afaa70607bd1ef801d5c1f57177" @@ -6984,10 +7083,10 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -type-fest@^2.17.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" - integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== +type-fest@^4.18.2, type-fest@^4.20.0: + version "4.26.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.26.1.tgz#a4a17fa314f976dd3e6d6675ef6c775c16d7955e" + integrity sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg== typed-array-buffer@^1.0.2: version "1.0.2" @@ -7038,6 +7137,11 @@ typescript@5.5.4, typescript@^5.4.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== +uint8array-extras@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/uint8array-extras/-/uint8array-extras-1.4.0.tgz#e42a678a6dd335ec2d21661333ed42f44ae7cc74" + integrity sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ== + unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" @@ -7172,11 +7276,6 @@ uuid@^11.0.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.0.2.tgz#a8d68ba7347d051e7ea716cc8dcbbab634d66875" integrity sha512-14FfcOJmqdjbBPdDjFQyk/SdT4NySW4eM0zcG+HqbHP5jzuH56xO3J1DGhgs/cEMCfwYi3HQI1gnTO62iaG+tQ== -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -7231,6 +7330,11 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" +when-exit@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/when-exit/-/when-exit-2.1.3.tgz#5831cdbed8ad4984645da98c4a00d4ee3a3757e7" + integrity sha512-uVieSTccFIr/SFQdFWN/fFaQYmV37OKtuaGphMAzi4DmmUlrvRBJW5WSLkHyjNQY/ePJMz3LoiX9R3yy1Su6Hw== + which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -7377,11 +7481,6 @@ yauzl@^2.10.0: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"