diff --git a/.eslintignore b/.eslintignore index 65f32d4d..2701f51c 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,4 +1,4 @@ app/ node_modules/ cache/ -.* \ No newline at end of file +.* diff --git a/.eslintrc.json b/.eslintrc.json index a0fa08e9..944bec2d 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -139,6 +139,9 @@ /*** Import plugin rules ***/ "import/no-unused-modules": ["error", { "unusedExports": true + }], + "import/no-unresolved": ["error", { + "ignore": ["^(node:)?original-fs$"] }] } } diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d4fedccf..613060fa 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,7 +32,7 @@ jobs: node-version: latest cache: npm - - name: Install dependencies + - name: Install dependencies (NPM) run: npm ci - name: Update dependencies @@ -60,7 +60,7 @@ jobs: strategy: fail-fast: false matrix: - runner: [ubuntu-20.04, windows-latest, macos-latest] + name: ['Linux', 'Windows', 'macOS-x64', 'macOS-arm64'] build: [latest, locked] include: - runner: ubuntu-20.04 @@ -70,8 +70,11 @@ jobs: name: Windows arch: x64,arm64,ia32 - runner: macos-latest - name: macOS - arch: x64,arm64 #,universal + name: macOS-x64 + arch: x64 #,arm64,universal + - runner: macos-latest + name: macOS-arm64 + arch: arm64 name: '${{ matrix.name }} (${{ matrix.build }})' runs-on: ${{ matrix.runner }} @@ -83,8 +86,8 @@ jobs: node-version: latest cache: npm - - name: Install dependencies - run: npm ci ${{ matrix.name == 'macOS' && '&& npm i -D appdmg' || '' }} + - name: Install dependencies (NPM${{ matrix.name == 'macOS' && '+PIP' || '' }}) + run: ${{ matrix.runner == 'macos-latest' && 'python -m pip install setuptools &&' || '' }} npm ci - name: Update dependencies if: ${{ matrix.build == 'latest' }} diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index c22295b1..dfc1d246 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -20,9 +20,12 @@ jobs: - name: Windows runner: windows-latest arch: x64,arm64,ia32 - - name: macOS + - name: macOS-x64 runner: macos-latest - arch: x64,arm64 #,universal + arch: x64 #,arm64,universal + - name: macOS-arm64 + runner: macos-latest + arch: arm64 name: ${{ matrix.name }} (${{ matrix.arch }}) runs-on: ${{ matrix.runner }} @@ -33,8 +36,8 @@ jobs: node-version: latest cache: npm - - name: Install dependencies - run: npm ci ${{ matrix.name == 'macOS' && '&& npm i -D appdmg' || '' }} + - name: Install dependencies (NPM${{ matrix.name == 'macOS' && '+PIP' || '' }}) + run: ${{ matrix.runner == 'macos-latest' && 'python -m pip install setuptools &&' || '' }} npm ci - name: TSC cache uses: actions/cache@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5bf66a6e..87d3e35d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,9 +20,12 @@ jobs: - name: Windows runner: windows-latest arch: x64,arm64,ia32 - - name: macOS + - name: macOS-x64 runner: macos-latest - arch: x64,arm64 #,universal + arch: x64 #,arm64,universal + - name: macOS-arm64 + runner: macos-latest + arch: arm64 name: ${{ matrix.name }} (${{ matrix.arch }}) runs-on: ${{ matrix.runner }} @@ -33,8 +36,8 @@ jobs: node-version: latest cache: npm - - name: Install dependencies - run: npm ci ${{ matrix.name == 'macOS' && '&& npm i -D appdmg' || '' }} + - name: Install dependencies (NPM${{ matrix.name == 'macOS' && '+PIP' || '' }}) + run: ${{ matrix.runner == 'macos-latest' && 'python -m pip install setuptools &&' || '' }} npm ci - name: TSC cache uses: actions/cache@v3 diff --git a/docs/Features.md b/docs/Features.md index ff6cedbe..d9098bf8 100644 --- a/docs/Features.md +++ b/docs/Features.md @@ -123,6 +123,6 @@ be done in the future in which case Chromium extensions might be deprecated and / or removed. You can load Chromium extensions by extracting them from `.crx` archive to -`{userData}/Extensions/Chromium/{extension name}/` folder. +`{userData}/Extensions/Chrome/{extension name}/` folder. -[chrome-ext]: https://www.electronjs.org/docs/latest/api/extensions "Chrome Extension Support | Electron's online documentation" \ No newline at end of file +[chrome-ext]: https://www.electronjs.org/docs/latest/api/extensions "Chrome Extension Support | Electron's online documentation" diff --git a/package-lock.json b/package-lock.json index f940fa46..4e1a360f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,23 +1,20 @@ { "name": "webcord", - "version": "4.5.2", + "version": "4.6.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "webcord", - "version": "4.5.2", + "version": "4.6.1", "license": "MIT", "dependencies": { - "@fontsource/fira-code": "^5.0.2", - "@fontsource/roboto": "^5.0.2", - "@fontsource/ubuntu": "^5.0.2", "@spacingbat3/disconnection": "^1.0.3", "@spacingbat3/kolor": "^4.0.0", "deepmerge-ts": "^5.1.0", "dompurify": "^3.0.1", "highlight.js": "^11.4.0", - "marked": "^10.0.0", + "marked": "^11.1.0", "marked-gfm-heading-id": "^3.1.0", "marked-highlight": "^2.0.1", "semver": "^7.3.5", @@ -42,12 +39,13 @@ "@tsconfig/strictest": "^2.0.0", "@types/dompurify": "^3.0.1", "@types/node": "^18.6.4", + "@types/node-pipewire": "^1.0.0", "@types/semver": "^7.3.9", "@types/source-map-support": "^0.5.4", "@types/ws": "^8.5.1", "@typescript-eslint/eslint-plugin": "^6.2.0", "@typescript-eslint/parser": "^6.2.0", - "electron": "^27.0.0", + "electron": "^28.0.0", "eslint": "latest", "eslint-import-resolver-typescript": "latest", "eslint-plugin-import": "latest", @@ -57,6 +55,9 @@ "engines": { "node": "^16.10.0 || ^18.10.0 || >=19.0.0", "npm": "^8.0.0 || ^9.0.0 || ^10.0.0" + }, + "optionalDependencies": { + "node-pipewire": "1.0.16" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -77,9 +78,9 @@ "optional": true }, "node_modules/@electron-forge/cli": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@electron-forge/cli/-/cli-7.1.0.tgz", - "integrity": "sha512-+4PEscQxNP9syHA1NFHp2v3KVBrNBbtBEPL+g7/E2yc5yHJr1tb5aHIJvhyfQqxL5sQlUdNjZI6N4r3vRer2KA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@electron-forge/cli/-/cli-7.2.0.tgz", + "integrity": "sha512-FJ8XzT4w6bTC3trvHHWL67W1zp7g2xmCC5riNa1rjk8Gd2C1j8wf0ul4ch9kbcaEAFaXuXwv98QKXxhCn4aLtQ==", "dev": true, "funding": [ { @@ -92,8 +93,8 @@ } ], "dependencies": { - "@electron-forge/core": "7.1.0", - "@electron-forge/shared-types": "7.1.0", + "@electron-forge/core": "7.2.0", + "@electron-forge/shared-types": "7.2.0", "@electron/get": "^3.0.0", "chalk": "^4.0.0", "commander": "^4.1.1", @@ -112,9 +113,9 @@ } }, "node_modules/@electron-forge/core": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@electron-forge/core/-/core-7.1.0.tgz", - "integrity": "sha512-26VOiDNYylrln/pBO4gLbBlgks3iOBMONZmW0u9lkRkAie2hDmDDJr/LJcQIpLvHNJwexYUf3jBY1xR86HjNUA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@electron-forge/core/-/core-7.2.0.tgz", + "integrity": "sha512-7Sh0KW79Z/y9MStU3sWTBbTkM4SvV6rL557/ndlfAbZrxcGMnmWHrzn/odAZW1eyfhKguBb7C1Ijw0YTpsdVsw==", "dev": true, "funding": [ { @@ -127,17 +128,17 @@ } ], "dependencies": { - "@electron-forge/core-utils": "7.1.0", - "@electron-forge/maker-base": "7.1.0", - "@electron-forge/plugin-base": "7.1.0", - "@electron-forge/publisher-base": "7.1.0", - "@electron-forge/shared-types": "7.1.0", - "@electron-forge/template-base": "7.1.0", - "@electron-forge/template-vite": "7.1.0", - "@electron-forge/template-vite-typescript": "7.1.0", - "@electron-forge/template-webpack": "7.1.0", - "@electron-forge/template-webpack-typescript": "7.1.0", - "@electron-forge/tracer": "7.1.0", + "@electron-forge/core-utils": "7.2.0", + "@electron-forge/maker-base": "7.2.0", + "@electron-forge/plugin-base": "7.2.0", + "@electron-forge/publisher-base": "7.2.0", + "@electron-forge/shared-types": "7.2.0", + "@electron-forge/template-base": "7.2.0", + "@electron-forge/template-vite": "7.2.0", + "@electron-forge/template-vite-typescript": "7.2.0", + "@electron-forge/template-webpack": "7.2.0", + "@electron-forge/template-webpack-typescript": "7.2.0", + "@electron-forge/tracer": "7.2.0", "@electron/get": "^3.0.0", "@electron/packager": "^18.0.0", "@electron/rebuild": "^3.2.10", @@ -168,12 +169,12 @@ } }, "node_modules/@electron-forge/core-utils": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@electron-forge/core-utils/-/core-utils-7.1.0.tgz", - "integrity": "sha512-cxUn2nK3Ejdm4+76GmD3+nCnc7zDgKiVihIH96sqhntkWc0qFfCO5kheQmt+v7lCWxvRDR8yYzwxt5nU4Bg6ag==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@electron-forge/core-utils/-/core-utils-7.2.0.tgz", + "integrity": "sha512-PI1wETlF/+Cxm1m/IgURQ9S3LzHU70/S4CHmkw4xJg4wYVRTfiKpH2XRE9VqEJU854hEnsCGynAIn7/Z2h6SIA==", "dev": true, "dependencies": { - "@electron-forge/shared-types": "7.1.0", + "@electron-forge/shared-types": "7.2.0", "@electron/rebuild": "^3.2.10", "@malept/cross-spawn-promise": "^2.0.0", "chalk": "^4.0.0", @@ -189,12 +190,12 @@ } }, "node_modules/@electron-forge/maker-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-7.1.0.tgz", - "integrity": "sha512-W+u8y2D30vhY1xnX3g5cuwsbUV+W5zLR/I8XSfHNofu6+/LOjI2Mu9y0C/pLOMrnVbt1+F9MkxxmLNt0TRlAjg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-7.2.0.tgz", + "integrity": "sha512-5dCFiVo4WhSlLf/T9MP+jnMqP3qfmwvjCSiTRE08USeotNWhycztcFox94NbxMJkRt329tNeG2RRs7RzdCz21w==", "dev": true, "dependencies": { - "@electron-forge/shared-types": "7.1.0", + "@electron-forge/shared-types": "7.2.0", "fs-extra": "^10.0.0", "which": "^2.0.2" }, @@ -203,13 +204,13 @@ } }, "node_modules/@electron-forge/maker-deb": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-deb/-/maker-deb-7.1.0.tgz", - "integrity": "sha512-ztuxwThdwgGebl5VqlaFoT6CnetJgaGlxxxyptN6B5eUW0+7HvumgqnIYEmiOLwvnC8tHpFpQjWNYZe/BDGK9Q==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-deb/-/maker-deb-7.2.0.tgz", + "integrity": "sha512-UYulMZpof+PIcapUFxQ5pVoSqa2FsS8crY8WGbVm1ALuknJUn4C2I37S8AujQH0l7oJRGnH95Y7Bcryyhe08yw==", "dev": true, "dependencies": { - "@electron-forge/maker-base": "7.1.0", - "@electron-forge/shared-types": "7.1.0" + "@electron-forge/maker-base": "7.2.0", + "@electron-forge/shared-types": "7.2.0" }, "engines": { "node": ">= 16.4.0" @@ -219,13 +220,13 @@ } }, "node_modules/@electron-forge/maker-dmg": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-dmg/-/maker-dmg-7.1.0.tgz", - "integrity": "sha512-21DbJPEHvAETqaS7GvhuWKeJ0UVklQ3RNDaZkAjr61d/oUVXjj8JT5h5zfAwOn6SBy5mEMgzEO5zPZ2hzvBlTA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-dmg/-/maker-dmg-7.2.0.tgz", + "integrity": "sha512-hVCDWF2m2SOav0bHZygIwGy3aIWSgWgWiio+Ahoin4qQhtReXYwY2r+idBEBvTo4hnNuUVRHAS0IGVsIS/91AQ==", "dev": true, "dependencies": { - "@electron-forge/maker-base": "7.1.0", - "@electron-forge/shared-types": "7.1.0", + "@electron-forge/maker-base": "7.2.0", + "@electron-forge/shared-types": "7.2.0", "fs-extra": "^10.0.0" }, "engines": { @@ -236,13 +237,13 @@ } }, "node_modules/@electron-forge/maker-flatpak": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-flatpak/-/maker-flatpak-7.1.0.tgz", - "integrity": "sha512-kYS9AatBKfhoW8SpvX3AR/3seFGKmZdbL3tPHxNQRrjide3jp8O8Q64PUSAV/6wahVoOQgu3n8za/O4y3nrJLA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-flatpak/-/maker-flatpak-7.2.0.tgz", + "integrity": "sha512-CMrmvzeSnF+a56JnQRIKU369zc5VzKkDR2hcesiHd/zr6lfCLd32wn3UBiLGF2rhV4QnTPE7oVnykxi+x7UKsQ==", "dev": true, "dependencies": { - "@electron-forge/maker-base": "7.1.0", - "@electron-forge/shared-types": "7.1.0", + "@electron-forge/maker-base": "7.2.0", + "@electron-forge/shared-types": "7.2.0", "fs-extra": "^10.0.0" }, "engines": { @@ -253,13 +254,13 @@ } }, "node_modules/@electron-forge/maker-rpm": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-rpm/-/maker-rpm-7.1.0.tgz", - "integrity": "sha512-H0SWMpUOapDiI7hayDfVqAZZwtn7z35SWJegMyNumlfPMLjTXGCLjvGEXc+cuLn3BUCc87zsQcfhgYBm9rOaUg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-rpm/-/maker-rpm-7.2.0.tgz", + "integrity": "sha512-XKWK8Db44O9L7Njx0jEYLPfkf5eJ/i+XqT1Tejke+t0b74uCqFMKcbWLFp1LZj0hVM3kACy1LqtTCuOlti3INA==", "dev": true, "dependencies": { - "@electron-forge/maker-base": "7.1.0", - "@electron-forge/shared-types": "7.1.0" + "@electron-forge/maker-base": "7.2.0", + "@electron-forge/shared-types": "7.2.0" }, "engines": { "node": ">= 16.4.0" @@ -269,13 +270,13 @@ } }, "node_modules/@electron-forge/maker-snap": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-snap/-/maker-snap-7.1.0.tgz", - "integrity": "sha512-DDfDXL4x5e2uY6cyCWqjQzEYHWEALBBmNDQGNUuf6eIU+DB1jC5FwbwQp3+f3Vgyt3nr8Rj+hXIIfz0atwi/3g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-snap/-/maker-snap-7.2.0.tgz", + "integrity": "sha512-qOq/iUJcsE+8SmaBpnhF7SPMhUsRVoRPvmz16+OG2RDvt5XIwS6S/yHiZjGlFUyz5XDp2OM3Yb85vNF+27O5zg==", "dev": true, "dependencies": { - "@electron-forge/maker-base": "7.1.0", - "@electron-forge/shared-types": "7.1.0" + "@electron-forge/maker-base": "7.2.0", + "@electron-forge/shared-types": "7.2.0" }, "engines": { "node": ">= 16.4.0" @@ -285,13 +286,13 @@ } }, "node_modules/@electron-forge/maker-squirrel": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-squirrel/-/maker-squirrel-7.1.0.tgz", - "integrity": "sha512-Kz/nRRgxuazU3PrG2JrEH3SY0xS/MWR5cZ/XqC3+bvNOIQzAFUrcV+0U5TPwmUZR8ejXukCP+S7qNEIFi3WkXA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-squirrel/-/maker-squirrel-7.2.0.tgz", + "integrity": "sha512-SyPeFgJoMUcOPDM8+1AUPuseOqnl5YqnnjgKX9+YUIrsGKIsSz1cTtSOEu5R/l2yWNWFTmLnOlcuqIe7NayHBg==", "dev": true, "dependencies": { - "@electron-forge/maker-base": "7.1.0", - "@electron-forge/shared-types": "7.1.0", + "@electron-forge/maker-base": "7.2.0", + "@electron-forge/shared-types": "7.2.0", "fs-extra": "^10.0.0" }, "engines": { @@ -302,13 +303,13 @@ } }, "node_modules/@electron-forge/maker-wix": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-wix/-/maker-wix-7.1.0.tgz", - "integrity": "sha512-mwYxDiRoapBkETGE6sAkJjUrlJzSJ6KR1jqTnh837Vc4zJKo9OxUZefa+TCZDkGhhTgvjZySjmre0IIdSqwf8A==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-wix/-/maker-wix-7.2.0.tgz", + "integrity": "sha512-PUFF8n7kkBBamDVHY5n7P8+5Mu5AYwHfHJSnqNb9gWpKiCz4RFSJBeisgojIMeXeuemgsDQf843RlBbnIAoOdg==", "dev": true, "dependencies": { - "@electron-forge/maker-base": "7.1.0", - "@electron-forge/shared-types": "7.1.0", + "@electron-forge/maker-base": "7.2.0", + "@electron-forge/shared-types": "7.2.0", "chalk": "^4.0.0", "electron-wix-msi": "^5.0.0", "log-symbols": "^4.0.0", @@ -319,13 +320,13 @@ } }, "node_modules/@electron-forge/maker-zip": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-zip/-/maker-zip-7.1.0.tgz", - "integrity": "sha512-6tUsILYC/TOIpqT6E7GuZgeFwkCtIvMUZNPEr7GcMKxlHl1EbDnzL5IsIb91dStIVWrPiQ4KgSuG/3klBiE/nw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-zip/-/maker-zip-7.2.0.tgz", + "integrity": "sha512-U6FSSMcHogHDv+7SmF037lJ9m0stwwqyerw7Q6mD3jKQHX9GBxFApEzA5HSURGPAEBhPgPppYOSMGRB6LV5F2g==", "dev": true, "dependencies": { - "@electron-forge/maker-base": "7.1.0", - "@electron-forge/shared-types": "7.1.0", + "@electron-forge/maker-base": "7.2.0", + "@electron-forge/shared-types": "7.2.0", "cross-zip": "^4.0.0", "fs-extra": "^10.0.0", "got": "^11.8.5" @@ -335,25 +336,25 @@ } }, "node_modules/@electron-forge/plugin-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-7.1.0.tgz", - "integrity": "sha512-DhCAWclTwfPZThrMTYOXPTnPn7q0TSNSTcIOfHcRCC0VJGFnp5zPYHIV4IV2RLKt0uLSMxrE+JvVjphTKm6HZQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-7.2.0.tgz", + "integrity": "sha512-c/pQK36BMBMKiemO68g1ZQOCXBA93x/aeX3lIXwK5bKVuaGt16Unfmby5Q7iIvY+/KsBuLYGkAder8HDN+4Nbw==", "dev": true, "dependencies": { - "@electron-forge/shared-types": "7.1.0" + "@electron-forge/shared-types": "7.2.0" }, "engines": { "node": ">= 16.4.0" } }, "node_modules/@electron-forge/plugin-fuses": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@electron-forge/plugin-fuses/-/plugin-fuses-7.1.0.tgz", - "integrity": "sha512-ugtLEqAqO6/CKYLnQtCw4p+k5AQ7sNw0owcE7kCW7Q44HOEmVVSbl2vwnl35rBuRh1tEDxqKk7aQyv/iipkRSw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@electron-forge/plugin-fuses/-/plugin-fuses-7.2.0.tgz", + "integrity": "sha512-cM8uToHWkG9RtYkprSpTjR6OOGjqm38VvWDXxnDIBikQ03FIe4BG4GRwYVe00s7wa6OMjzWDhb/N6Vpe7aNcmA==", "dev": true, "dependencies": { - "@electron-forge/plugin-base": "7.1.0", - "@electron-forge/shared-types": "7.1.0" + "@electron-forge/plugin-base": "7.2.0", + "@electron-forge/shared-types": "7.2.0" }, "engines": { "node": ">= 16.4.0" @@ -363,25 +364,25 @@ } }, "node_modules/@electron-forge/publisher-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-7.1.0.tgz", - "integrity": "sha512-CsYeWGK7Pu+9E44e95AvQa79VI4/ECdK9Ptw+Y9zVTGA+wuuhf65aOLvhpu3mQuMjpFovdrIjls3pSWzxTquOA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-7.2.0.tgz", + "integrity": "sha512-c0pwcQeMZi0S4iLlgA3pqm6ZdW2u7Ea4Ynat04Gw7su5GLtbrKRgYSL36ZRhzz7sgm4372niI0k91KaH5KToHg==", "dev": true, "dependencies": { - "@electron-forge/shared-types": "7.1.0" + "@electron-forge/shared-types": "7.2.0" }, "engines": { "node": ">= 16.4.0" } }, "node_modules/@electron-forge/publisher-github": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@electron-forge/publisher-github/-/publisher-github-7.1.0.tgz", - "integrity": "sha512-rbxVLewcMZkYd7fFAgVAJIda1MLyQmarilhqqTanmx0bQ5r2yBfuXzbMPZd7SDIST1CFSMYLlQkM9walvloSxg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@electron-forge/publisher-github/-/publisher-github-7.2.0.tgz", + "integrity": "sha512-GWoDIxP4h2CuaGnpReJCvxiyWSF6lpbIpNgdtv6l6mdPKLHmSRownJ3aqVl4pD523d00Wuxrdv/wDxZ5RwyedQ==", "dev": true, "dependencies": { - "@electron-forge/publisher-base": "7.1.0", - "@electron-forge/shared-types": "7.1.0", + "@electron-forge/publisher-base": "7.2.0", + "@electron-forge/shared-types": "7.2.0", "@octokit/core": "^3.2.4", "@octokit/plugin-retry": "^3.0.9", "@octokit/rest": "^18.0.11", @@ -395,12 +396,12 @@ } }, "node_modules/@electron-forge/shared-types": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-7.1.0.tgz", - "integrity": "sha512-uKCrWrgNCwwZB1DUBwo4/YyqLQNL55/X9xWhOT1dyw8W1wQ/bxD33F73FYNdmoL6qgIywWGNRLdQ4e1YaSxnvg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-7.2.0.tgz", + "integrity": "sha512-d8i+pwPwBnlmFTRkq7QfaoRS9LywfyjDdHqQZuArFbL6NLAEbZ52irFiAE3NSLf4STew/BA6IK9sTPz3KRmvQw==", "dev": true, "dependencies": { - "@electron-forge/tracer": "7.1.0", + "@electron-forge/tracer": "7.2.0", "@electron/packager": "^18.0.0", "@electron/rebuild": "^3.2.10", "listr2": "^5.0.3" @@ -410,12 +411,12 @@ } }, "node_modules/@electron-forge/template-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-7.1.0.tgz", - "integrity": "sha512-+i17exI14jTkx7G5pCYIkPdBaXogRdDChH7ly5HoM3rVoun3udyhvkYvHohG1eIM/NaxCCIW4CZb6moey+HnlQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-7.2.0.tgz", + "integrity": "sha512-X7JrgQctgN0saFih/kKWVJ3KxiI1BpzdrkW58vs5H0kXXmA6UObE16/dWuKYfB06j0yIsfMbZ32Md1yAkgdCfg==", "dev": true, "dependencies": { - "@electron-forge/shared-types": "7.1.0", + "@electron-forge/shared-types": "7.2.0", "@malept/cross-spawn-promise": "^2.0.0", "debug": "^4.3.1", "fs-extra": "^10.0.0", @@ -426,13 +427,13 @@ } }, "node_modules/@electron-forge/template-vite": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@electron-forge/template-vite/-/template-vite-7.1.0.tgz", - "integrity": "sha512-j9Eyjot+QiTwXHUqXs/XJM0iRzbPNWMGPGMojOgbgkfzwFKSj3meR+vrdsvUFpTh7GCAil8bMMHIbo3DTjGj6Q==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@electron-forge/template-vite/-/template-vite-7.2.0.tgz", + "integrity": "sha512-Q5FSD+NVNMJKuAo/htQXpk3Q/eo116Xhx0zTzhSldAqpsgfxdAIJhl8TFmdVvCJIig1vEcLG2n/PgudxnuDuEQ==", "dev": true, "dependencies": { - "@electron-forge/shared-types": "7.1.0", - "@electron-forge/template-base": "7.1.0", + "@electron-forge/shared-types": "7.2.0", + "@electron-forge/template-base": "7.2.0", "fs-extra": "^10.0.0" }, "engines": { @@ -440,13 +441,13 @@ } }, "node_modules/@electron-forge/template-vite-typescript": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@electron-forge/template-vite-typescript/-/template-vite-typescript-7.1.0.tgz", - "integrity": "sha512-HVNyaSBOxMLk/mozHnRSA8X6BSlYzSmG0sPtULl2gIqvXLwURb8RRUNf4NB21fsgm3jYZbmLQ3vRSQ94ZbUu1Q==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@electron-forge/template-vite-typescript/-/template-vite-typescript-7.2.0.tgz", + "integrity": "sha512-knN3lxJY6UyXa2u5957K4ZyItCoCw22wrUhQARvdHOcgXvMFAcwvfEDT8zOQy6ki6A9W3cMHhSTys7dC8/ChVw==", "dev": true, "dependencies": { - "@electron-forge/shared-types": "7.1.0", - "@electron-forge/template-base": "7.1.0", + "@electron-forge/shared-types": "7.2.0", + "@electron-forge/template-base": "7.2.0", "fs-extra": "^10.0.0" }, "engines": { @@ -454,13 +455,13 @@ } }, "node_modules/@electron-forge/template-webpack": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-7.1.0.tgz", - "integrity": "sha512-vDEV7svgyKvx7szLfDHz0dWkOGFMiGI6xUmp1s5CDdPb55B0Fg+apKxmY4/jp/D+8i+ZncK66SeMV7fYqQv4ew==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-7.2.0.tgz", + "integrity": "sha512-h2LQ3vAzIraRqLUM5fKOLXknp7n5hrQXudRjO/vEEbm1a0jbl4yjp6liKk3yx8MFFO4eAHVDrXwRSsLR3a2Wew==", "dev": true, "dependencies": { - "@electron-forge/shared-types": "7.1.0", - "@electron-forge/template-base": "7.1.0", + "@electron-forge/shared-types": "7.2.0", + "@electron-forge/template-base": "7.2.0", "fs-extra": "^10.0.0" }, "engines": { @@ -468,13 +469,13 @@ } }, "node_modules/@electron-forge/template-webpack-typescript": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@electron-forge/template-webpack-typescript/-/template-webpack-typescript-7.1.0.tgz", - "integrity": "sha512-ut/0YbTsQcpi0UHHm9hMSZDNxsMvnMyWZbkZbwWHL2fsCuqOAi0lopz0v0K9FGLALMsn2atBi8iDHdGGNX1diw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@electron-forge/template-webpack-typescript/-/template-webpack-typescript-7.2.0.tgz", + "integrity": "sha512-eshvPcYXUgmpB+ts9/xRPvQexY46unfe0mGmLDaj8s/5fqCANgyUO5jusvMXlJdf3qwJ/rfi3jS0NuqnjsqskQ==", "dev": true, "dependencies": { - "@electron-forge/shared-types": "7.1.0", - "@electron-forge/template-base": "7.1.0", + "@electron-forge/shared-types": "7.2.0", + "@electron-forge/template-base": "7.2.0", "fs-extra": "^10.0.0" }, "engines": { @@ -482,9 +483,9 @@ } }, "node_modules/@electron-forge/tracer": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@electron-forge/tracer/-/tracer-7.1.0.tgz", - "integrity": "sha512-e3nWweJpWeFS7usi5d9GEEXiw38qreNz46I+yb4klNC/IPt8Xmmh2VsgUvuld8N9HcJ4eCU9CPLGjkeRQr9RiA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@electron-forge/tracer/-/tracer-7.2.0.tgz", + "integrity": "sha512-EoJ07nptEuuY2fcs/bUWzIf11RQRx6Ch/dZ6A9WIRcFYe9cFrslQwvyUf0siY3jcqVvxETCz69JGuBxKGwak7A==", "dev": true, "dependencies": { "chrome-trace-event": "^1.0.3" @@ -520,9 +521,9 @@ } }, "node_modules/@electron/fuses": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@electron/fuses/-/fuses-1.6.2.tgz", - "integrity": "sha512-qInBOs+m21oCLwN2ASHsHqNgI45trsgSiDEYQTw3qsTfwveEUb+WRgh0sYfVXsekqr8X2qvHX9OyVc1w+Lo8NQ==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@electron/fuses/-/fuses-1.7.0.tgz", + "integrity": "sha512-mfhLoZGQdqrSU/SeOFBs6r+D7g1tYiVs2C/hh7t3NFQ0chcXGoWrrad17rCQL1ImNJuCXs4cu23YBj5CAnj5SA==", "dev": true, "dependencies": { "chalk": "^4.1.1", @@ -661,16 +662,17 @@ } }, "node_modules/@electron/packager": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@electron/packager/-/packager-18.0.0.tgz", - "integrity": "sha512-OihHRTSkMiAuiZISN8h6azFRXgWqLWY/S1OpGru3sBB9Q4lQ0gD3WbqP7MSpFKEFcOozDvIB4LZUyAsfJIRQBg==", + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/@electron/packager/-/packager-18.1.3.tgz", + "integrity": "sha512-21T5MxUf7DwV07IIes3jO/571mXCjOGVPdmYJFPCVDTimFiHQSW0Oy+OIGQaKBiNIXfnP29KylsCQbmds6O6Iw==", "dev": true, "dependencies": { "@electron/asar": "^3.2.1", "@electron/get": "^3.0.0", "@electron/notarize": "^2.1.0", "@electron/osx-sign": "^1.0.5", - "@electron/universal": "^1.3.2", + "@electron/universal": "^2.0.1", + "@electron/windows-sign": "^1.0.0", "cross-spawn-windows-exe": "^1.2.0", "debug": "^4.0.1", "extract-zip": "^2.0.0", @@ -690,16 +692,16 @@ "electron-packager": "bin/electron-packager.js" }, "engines": { - "node": ">= 16.4.0" + "node": ">= 16.13.0" }, "funding": { "url": "https://github.com/electron/packager?sponsor=1" } }, "node_modules/@electron/packager/node_modules/fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, "dependencies": { "graceful-fs": "^4.2.0", @@ -711,9 +713,9 @@ } }, "node_modules/@electron/rebuild": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.3.1.tgz", - "integrity": "sha512-bQDWw9rkEGYW+gzPNFCD+ugJ8LIFSu0pORJl5fmrT+H8qETOIPAe99Klzg0wGaZRu9JN+5qLzKG+PehRGOlzmQ==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.4.1.tgz", + "integrity": "sha512-iMKb6KJgKcdURbejs0j2GLEmrY8uY4rg1ESThXx9sFTgdWb8UOfJuTqW6LIEtcoY8FrbFqDmJrkWc4tBpdStXw==", "dev": true, "dependencies": { "@malept/cross-spawn-promise": "^2.0.0", @@ -726,6 +728,7 @@ "node-api-version": "^0.1.4", "node-gyp": "^9.0.0", "ora": "^5.1.0", + "read-binary-file-arch": "^1.0.6", "semver": "^7.3.5", "tar": "^6.0.5", "yargs": "^17.0.1" @@ -738,58 +741,90 @@ } }, "node_modules/@electron/universal": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.5.1.tgz", - "integrity": "sha512-kbgXxyEauPJiQQUNG2VgUeyfQNFk6hBF11ISN2PNI6agUgPl55pv4eQmaqHzTAzchBvqZ2tQuRVaPStGf0mxGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-2.0.1.tgz", + "integrity": "sha512-fKpv9kg4SPmt+hY7SVBnIYULE9QJl8L3sCfcBsnqbJwwBwAeTLokJ9TRt9y7bK0JAzIW2y78TVVjvnQEms/yyA==", "dev": true, "dependencies": { - "@electron/asar": "^3.2.1", - "@malept/cross-spawn-promise": "^1.1.0", + "@electron/asar": "^3.2.7", + "@malept/cross-spawn-promise": "^2.0.0", "debug": "^4.3.1", - "dir-compare": "^3.0.0", - "fs-extra": "^9.0.1", - "minimatch": "^3.0.4", - "plist": "^3.0.4" + "dir-compare": "^4.2.0", + "fs-extra": "^11.1.1", + "minimatch": "^9.0.3", + "plist": "^3.1.0" }, "engines": { - "node": ">=8.6" + "node": ">=16.4" } }, - "node_modules/@electron/universal/node_modules/@malept/cross-spawn-promise": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", - "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", + "node_modules/@electron/universal/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/malept" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" - } - ], "dependencies": { - "cross-spawn": "^7.0.1" + "balanced-match": "^1.0.0" + } + }, + "node_modules/@electron/universal/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">= 10" + "node": ">=14.14" } }, - "node_modules/@electron/universal/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "node_modules/@electron/universal/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@electron/windows-sign": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@electron/windows-sign/-/windows-sign-1.0.0.tgz", + "integrity": "sha512-sdkQYAR/TQCEyYgz2jMbusL/ljdj6qA7vyIm/S9HICMAitXhXROFHUOLLgiORj1uiaf2EOB2U33DatGubUuZaQ==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "fs-extra": "^11.1.1", + "minimist": "^1.2.8" + }, + "bin": { + "electron-windows-sign": "bin/electron-windows-sign.js" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@electron/windows-sign/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, "dependencies": { - "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=14.14" } }, "node_modules/@eslint-community/eslint-utils": { @@ -817,9 +852,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", - "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -858,29 +893,14 @@ } }, "node_modules/@eslint/js": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", - "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@fontsource/fira-code": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/@fontsource/fira-code/-/fira-code-5.0.15.tgz", - "integrity": "sha512-mcQQX2Pwlbt8NwBB+kCyldYy1eLY9hsLZ3EvWf2ciVTk1rmYZ734CU9v70qs7rTXrNLYKz8+Q9b7DLEgwsKW6A==" - }, - "node_modules/@fontsource/roboto": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-5.0.8.tgz", - "integrity": "sha512-XxPltXs5R31D6UZeLIV1td3wTXU3jzd3f2DLsXI8tytMGBkIsGcc9sIyiupRtA8y73HAhuSCeweOoBqf6DbWCA==" - }, - "node_modules/@fontsource/ubuntu": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@fontsource/ubuntu/-/ubuntu-5.0.8.tgz", - "integrity": "sha512-lZY64hVXrnkt/+5jRfm0uMiRv+lmrIdnATAnDj1SPqebmI2UDf3KC9p4rOkIYsBOjOsD6seJ82GIQE067DSvWw==" - }, "node_modules/@gar/promisify": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", @@ -1040,6 +1060,86 @@ "node": ">=10" } }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "optional": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "optional": true, + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "optional": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "optional": true, + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1423,14 +1523,20 @@ "optional": true }, "node_modules/@types/node": { - "version": "18.18.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.13.tgz", - "integrity": "sha512-vXYZGRrSCreZmq1rEjMRLXJhiy8MrIeVasx+PCVlP414N7CJLHnMf+juVvjdprHyH+XRy3zKZLHeNueOpJCn0g==", + "version": "18.19.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.3.tgz", + "integrity": "sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" } }, + "node_modules/@types/node-pipewire": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/node-pipewire/-/node-pipewire-1.0.0.tgz", + "integrity": "sha512-zVS6K9Nq9JJ39ARZjHucSqdfDM58aH4py5x7OEhY0S328Nsnz+C/anio8FnBgOysViNzgkDAny2TwhewEkbPaQ==", + "dev": true + }, "node_modules/@types/responselike": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", @@ -1481,16 +1587,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.12.0.tgz", - "integrity": "sha512-XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.16.0.tgz", + "integrity": "sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.12.0", - "@typescript-eslint/type-utils": "6.12.0", - "@typescript-eslint/utils": "6.12.0", - "@typescript-eslint/visitor-keys": "6.12.0", + "@typescript-eslint/scope-manager": "6.16.0", + "@typescript-eslint/type-utils": "6.16.0", + "@typescript-eslint/utils": "6.16.0", + "@typescript-eslint/visitor-keys": "6.16.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -1516,15 +1622,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.12.0.tgz", - "integrity": "sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.16.0.tgz", + "integrity": "sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.12.0", - "@typescript-eslint/types": "6.12.0", - "@typescript-eslint/typescript-estree": "6.12.0", - "@typescript-eslint/visitor-keys": "6.12.0", + "@typescript-eslint/scope-manager": "6.16.0", + "@typescript-eslint/types": "6.16.0", + "@typescript-eslint/typescript-estree": "6.16.0", + "@typescript-eslint/visitor-keys": "6.16.0", "debug": "^4.3.4" }, "engines": { @@ -1544,13 +1650,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.12.0.tgz", - "integrity": "sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.16.0.tgz", + "integrity": "sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.12.0", - "@typescript-eslint/visitor-keys": "6.12.0" + "@typescript-eslint/types": "6.16.0", + "@typescript-eslint/visitor-keys": "6.16.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1561,13 +1667,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.12.0.tgz", - "integrity": "sha512-WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.16.0.tgz", + "integrity": "sha512-ThmrEOcARmOnoyQfYkHw/DX2SEYBalVECmoldVuH6qagKROp/jMnfXpAU/pAIWub9c4YTxga+XwgAkoA0pxfmg==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.12.0", - "@typescript-eslint/utils": "6.12.0", + "@typescript-eslint/typescript-estree": "6.16.0", + "@typescript-eslint/utils": "6.16.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -1588,9 +1694,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.12.0.tgz", - "integrity": "sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.16.0.tgz", + "integrity": "sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1601,16 +1707,17 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.12.0.tgz", - "integrity": "sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.16.0.tgz", + "integrity": "sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.12.0", - "@typescript-eslint/visitor-keys": "6.12.0", + "@typescript-eslint/types": "6.16.0", + "@typescript-eslint/visitor-keys": "6.16.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", + "minimatch": "9.0.3", "semver": "^7.5.4", "ts-api-utils": "^1.0.1" }, @@ -1627,18 +1734,42 @@ } } }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@typescript-eslint/utils": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.12.0.tgz", - "integrity": "sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.16.0.tgz", + "integrity": "sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.12.0", - "@typescript-eslint/types": "6.12.0", - "@typescript-eslint/typescript-estree": "6.12.0", + "@typescript-eslint/scope-manager": "6.16.0", + "@typescript-eslint/types": "6.16.0", + "@typescript-eslint/typescript-estree": "6.16.0", "semver": "^7.5.4" }, "engines": { @@ -1653,12 +1784,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.12.0.tgz", - "integrity": "sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.16.0.tgz", + "integrity": "sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/types": "6.16.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -1688,7 +1819,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true + "devOptional": true }, "node_modules/acorn": { "version": "8.11.2", @@ -1715,7 +1846,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, + "devOptional": true, "dependencies": { "debug": "4" }, @@ -1795,7 +1926,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, + "devOptional": true, "engines": { "node": ">=8" } @@ -1848,7 +1979,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true + "devOptional": true }, "node_modules/are-we-there-yet": { "version": "3.0.1", @@ -2073,7 +2204,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "devOptional": true }, "node_modules/base32-encode": { "version": "1.2.0", @@ -2155,7 +2286,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, + "devOptional": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2206,18 +2337,6 @@ "node": "*" } }, - "node_modules/buffer-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", - "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", - "dev": true, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -2357,6 +2476,15 @@ "node": ">=6" } }, + "node_modules/cargo-cp-artifact": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/cargo-cp-artifact/-/cargo-cp-artifact-0.1.8.tgz", + "integrity": "sha512-3j4DaoTrsCD1MRkTF2Soacii0Nx7UHCce0EwUf4fHnggwiE4fbmF2AbnfzayR36DF8KGadfh7M/Yfy625kgPlA==", + "optional": true, + "bin": { + "cargo-cp-artifact": "bin/cargo-cp-artifact.js" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -2377,7 +2505,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, + "devOptional": true, "engines": { "node": ">=10" } @@ -2504,7 +2632,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, + "devOptional": true, "bin": { "color-support": "bin.js" } @@ -2537,13 +2665,13 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "devOptional": true }, "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true + "devOptional": true }, "node_modules/cross-spawn": { "version": "7.0.3", @@ -2641,7 +2769,7 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, + "devOptional": true, "dependencies": { "ms": "2.1.2" }, @@ -2751,7 +2879,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true + "devOptional": true }, "node_modules/deprecation": { "version": "2.3.1", @@ -2763,7 +2891,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", - "dev": true, + "devOptional": true, "engines": { "node": ">=8" } @@ -2776,13 +2904,13 @@ "optional": true }, "node_modules/dir-compare": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-3.3.0.tgz", - "integrity": "sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-4.2.0.tgz", + "integrity": "sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ==", "dev": true, "dependencies": { - "buffer-equal": "^1.0.0", - "minimatch": "^3.0.4" + "minimatch": "^3.0.5", + "p-limit": "^3.1.0 " } }, "node_modules/dir-glob": { @@ -2827,9 +2955,9 @@ } }, "node_modules/electron": { - "version": "27.1.2", - "resolved": "https://registry.npmjs.org/electron/-/electron-27.1.2.tgz", - "integrity": "sha512-Dy6BUuGLiIJv+zfsXwr78TV2TNppi24rXF4PIIS+OjDblEKdkI9r1iM8JUd3/x3sbGUy5mdLMSPhvmu//IhkgA==", + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-28.1.0.tgz", + "integrity": "sha512-82Y7o4PSWPn1o/aVwYPsgmBw6Gyf2lVHpaBu3Ef8LrLWXxytg7ZRZr/RtDqEMOzQp3+mcuy3huH84MyjdmP50Q==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -3404,7 +3532,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "devOptional": true }, "node_modules/encode-utf8": { "version": "1.0.3", @@ -3417,7 +3545,6 @@ "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, "optional": true, "dependencies": { "iconv-lite": "^0.6.2" @@ -3591,15 +3718,15 @@ } }, "node_modules/eslint": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", - "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.54.0", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -3717,9 +3844,9 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", - "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", "dev": true, "dependencies": { "array-includes": "^3.1.7", @@ -3738,7 +3865,7 @@ "object.groupby": "^1.0.1", "object.values": "^1.1.7", "semver": "^6.3.1", - "tsconfig-paths": "^3.14.2" + "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" @@ -4081,9 +4208,9 @@ "dev": true }, "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -4269,7 +4396,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, + "devOptional": true, "dependencies": { "minipass": "^3.0.0" }, @@ -4305,7 +4432,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "devOptional": true }, "node_modules/function-bind": { "version": "1.1.2", @@ -4529,7 +4656,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, + "devOptional": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -4618,9 +4745,9 @@ } }, "node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -4789,7 +4916,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true + "devOptional": true }, "node_modules/hasown": { "version": "2.0.0", @@ -4866,7 +4993,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, + "devOptional": true, "dependencies": { "agent-base": "6", "debug": "4" @@ -4903,7 +5030,6 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -5008,7 +5134,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, + "devOptional": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -5018,7 +5144,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "devOptional": true }, "node_modules/ini": { "version": "1.3.8", @@ -5170,7 +5296,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, + "devOptional": true, "engines": { "node": ">=8" } @@ -5748,6 +5874,30 @@ "nan": "^2.4.0" } }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "optional": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "optional": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/make-fetch-happen": { "version": "10.2.1", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", @@ -5788,9 +5938,9 @@ } }, "node_modules/marked": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-10.0.0.tgz", - "integrity": "sha512-YiGcYcWj50YrwBgNzFoYhQ1hT6GmQbFG8SksnYJX1z4BXTHSOrz1GB5/Jm2yQvMg4nN1FHP4M6r03R10KrVUiA==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-11.1.0.tgz", + "integrity": "sha512-fvKJWAPEafVj1dwGwcPI5mBB/0pvViL6NlCbNDG1HOIRwwAU/jeMoFxfbRLuirO1wRH7m4yPvBqD/O1wyWvayw==", "bin": { "marked": "bin/marked.js" }, @@ -5799,22 +5949,22 @@ } }, "node_modules/marked-gfm-heading-id": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/marked-gfm-heading-id/-/marked-gfm-heading-id-3.1.1.tgz", - "integrity": "sha512-PATvg4bpYxYY7SiTkknZWNiuKtfgpIctCHsbCHZiEUB+7eZ6SjGMlpL//X0JzE3/Z9B9aqLgQS9UTMFfYs6CEg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/marked-gfm-heading-id/-/marked-gfm-heading-id-3.1.2.tgz", + "integrity": "sha512-SdIZvhNxDgndFkDa2WRcFP4ahYm6k6hoHdTCN+fD7HRiI/R3Eimcw/Yl7ikQ+0KUuDpi75NnYQiThZnZsNr9Dg==", "dependencies": { "github-slugger": "^2.0.0" }, "peerDependencies": { - "marked": ">=4 <11" + "marked": ">=4 <12" } }, "node_modules/marked-highlight": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/marked-highlight/-/marked-highlight-2.0.7.tgz", - "integrity": "sha512-3IjgV879kEihgjWwVv8HGDkyuKDyR8hssDEjMUAH5LNVhIcZge+u6UKhxPA+daEVMVZeKEHo5gWrLVlLPF1m3g==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/marked-highlight/-/marked-highlight-2.1.0.tgz", + "integrity": "sha512-peBvgGZZqUw074Vy/N8Y7/6JQhSnR54/T0Ozq2/fAIBzcYfVfExFdQJptIhQxreR1elpwvJRrqhp6S/Prk8prA==", "peerDependencies": { - "marked": ">=4 <11" + "marked": ">=4 <12" } }, "node_modules/matcher": { @@ -5909,7 +6059,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, + "devOptional": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -5930,7 +6080,7 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, + "devOptional": true, "dependencies": { "yallist": "^4.0.0" }, @@ -6007,7 +6157,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, + "devOptional": true, "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -6020,7 +6170,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, + "devOptional": true, "bin": { "mkdirp": "bin/cmd.js" }, @@ -6032,7 +6182,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "devOptional": true }, "node_modules/murmur-32": { "version": "0.2.0", @@ -6075,9 +6225,9 @@ "dev": true }, "node_modules/node-abi": { - "version": "3.51.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.51.0.tgz", - "integrity": "sha512-SQkEP4hmNWjlniS5zdnfIXTk1x7Ome85RDzHlTbBtzE97Gfwz/Ipw4v/Ryk20DWIy3yCNVLVlGKApCnmvYoJbA==", + "version": "3.52.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.52.0.tgz", + "integrity": "sha512-JJ98b02z16ILv7859irtXn4oUaFWADtvkzy2c0IAatNVX2Mc9Yoh8z6hZInn3QwvMEYhHuQloYi+TTQy67SIdQ==", "dev": true, "dependencies": { "semver": "^7.3.5" @@ -6118,7 +6268,7 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dev": true, + "devOptional": true, "dependencies": { "whatwg-url": "^5.0.0" }, @@ -6159,6 +6309,31 @@ "node": "^12.13 || ^14.13 || >=16" } }, + "node_modules/node-pipewire": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/node-pipewire/-/node-pipewire-1.0.16.tgz", + "integrity": "sha512-D/YmgC9d/0N8/bicKTNoMEXQYu59MVNHgGrOnfOx+177QNy7pGnHC1H3VC6ZLZZRYCUDSD/4WxzZXC4xo0Vd+g==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.10", + "cargo-cp-artifact": "^0.1", + "typescript": "^4.8.4" + } + }, + "node_modules/node-pipewire/node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "optional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, "node_modules/nopt": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", @@ -6243,6 +6418,15 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-inspect": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", @@ -6262,13 +6446,13 @@ } }, "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -6329,7 +6513,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, + "devOptional": true, "dependencies": { "wrappy": "1" } @@ -6554,7 +6738,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -6805,6 +6989,18 @@ "integrity": "sha512-c2XV2aYgY7x3BscO+/B/nCTtMvnclZ8w5D7R6zgK4sGOQnE0MjlXhOPynno7yp6Iw1RPNSXBwXwB1svZVRfcSw==", "dev": true }, + "node_modules/read-binary-file-arch": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/read-binary-file-arch/-/read-binary-file-arch-1.0.6.tgz", + "integrity": "sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "bin": { + "read-binary-file-arch": "cli.js" + } + }, "node_modules/read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", @@ -6915,7 +7111,7 @@ "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, + "devOptional": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -7094,7 +7290,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, + "devOptional": true, "dependencies": { "glob": "^7.1.3" }, @@ -7184,7 +7380,7 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, + "devOptional": true, "funding": [ { "type": "github", @@ -7218,7 +7414,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, "optional": true }, "node_modules/semver": { @@ -7286,7 +7481,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true + "devOptional": true }, "node_modules/set-function-length": { "version": "1.1.1", @@ -7356,7 +7551,7 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "devOptional": true }, "node_modules/slash": { "version": "3.0.0", @@ -7501,7 +7696,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, + "devOptional": true, "dependencies": { "safe-buffer": "~5.2.0" } @@ -7510,7 +7705,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, + "devOptional": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7569,7 +7764,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, + "devOptional": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -7683,7 +7878,7 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", - "dev": true, + "devOptional": true, "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -7700,7 +7895,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, + "devOptional": true, "engines": { "node": ">=8" } @@ -7823,7 +8018,7 @@ "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true + "devOptional": true }, "node_modules/trim-repeated": { "version": "1.0.0", @@ -7859,9 +8054,9 @@ } }, "node_modules/tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, "dependencies": { "@types/json5": "^0.0.29", @@ -7970,9 +8165,9 @@ } }, "node_modules/typescript": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz", - "integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -8078,7 +8273,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true + "devOptional": true }, "node_modules/uuid": { "version": "8.3.2", @@ -8121,13 +8316,13 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true + "devOptional": true }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, + "devOptional": true, "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -8187,7 +8382,7 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, + "devOptional": true, "dependencies": { "string-width": "^1.0.2 || 2 || 3 || 4" } @@ -8223,12 +8418,12 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "devOptional": true }, "node_modules/ws": { - "version": "8.14.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", - "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", "engines": { "node": ">=10.0.0" }, diff --git a/package.json b/package.json index 3dd4cb09..6964bd36 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "$schema": "./schemas/schemastore/package.json", "name": "webcord", "productName": "WebCord", - "version": "4.5.2", + "version": "4.6.1", "description": "A Discord and Fosscord client made with the Electron API.", "main": "app/code/common/main.js", "scripts": { @@ -50,12 +50,13 @@ "@tsconfig/strictest": "^2.0.0", "@types/dompurify": "^3.0.1", "@types/node": "^18.6.4", + "@types/node-pipewire": "^1.0.0", "@types/semver": "^7.3.9", "@types/source-map-support": "^0.5.4", "@types/ws": "^8.5.1", "@typescript-eslint/eslint-plugin": "^6.2.0", "@typescript-eslint/parser": "^6.2.0", - "electron": "^27.0.0", + "electron": "^28.0.0", "eslint": "latest", "eslint-import-resolver-typescript": "latest", "eslint-plugin-import": "latest", @@ -63,15 +64,12 @@ "typescript": "^5.0.4" }, "dependencies": { - "@fontsource/fira-code": "^5.0.2", - "@fontsource/roboto": "^5.0.2", - "@fontsource/ubuntu": "^5.0.2", "@spacingbat3/disconnection": "^1.0.3", "@spacingbat3/kolor": "^4.0.0", "deepmerge-ts": "^5.1.0", "dompurify": "^3.0.1", "highlight.js": "^11.4.0", - "marked": "^10.0.0", + "marked": "^11.1.0", "marked-gfm-heading-id": "^3.1.0", "marked-highlight": "^2.0.1", "semver": "^7.3.5", @@ -79,6 +77,9 @@ "tslib": "^2.3.1", "twemoji-colr-font": "^14.0.2" }, + "optionalDependencies": { + "node-pipewire": "1.0.16" + }, "config": { "forge": "./app/code/build/forge.js" }, diff --git a/sources/assets/web/css/fonts.css b/sources/assets/web/css/fonts.css index bbd416d5..ade44f01 100644 --- a/sources/assets/web/css/fonts.css +++ b/sources/assets/web/css/fonts.css @@ -1,25 +1,9 @@ -/** Roboto: regular, bold, italic, bold+italic **/ -@import url('../../../../node_modules/@fontsource/roboto/700.css'); -@import url('../../../../node_modules/@fontsource/roboto/700-italic.css'); -@import url('../../../../node_modules/@fontsource/roboto/400.css'); -@import url('../../../../node_modules/@fontsource/roboto/400-italic.css'); - -/** Ubuntu: regular, bold, italic, bold+italic **/ -@import url('../../../../node_modules/@fontsource/ubuntu/700.css'); -@import url('../../../../node_modules/@fontsource/ubuntu/700-italic.css'); -@import url('../../../../node_modules/@fontsource/ubuntu/400.css'); -@import url('../../../../node_modules/@fontsource/ubuntu/400-italic.css'); - -/** Fira Code: regular, bold, italic, bold+italic **/ -@import url('../../../../node_modules/@fontsource/fira-code/700.css'); -@import url('../../../../node_modules/@fontsource/fira-code/400.css'); - /** Twemoji **/ @import url('../../../../node_modules/twemoji-colr-font/twemoji.css'); :root { - --font-primary: 'Roboto',Twemoji, Arial, sans-serif; - --font-display: 'Ubuntu',Twemoji, Arial, sans-serif; - --font-code: 'Fira Code',Twemoji, Courier, monospace; + --font-primary: sans-serif, Twemoji; + --font-display: sans-serif, Twemoji; + --font-code: monospace, Twemoji; --font-headline: var(--font-display); } \ No newline at end of file diff --git a/sources/assets/web/css/pipewire-capturer.css b/sources/assets/web/css/pipewire-capturer.css new file mode 100644 index 00000000..00f03544 --- /dev/null +++ b/sources/assets/web/css/pipewire-capturer.css @@ -0,0 +1,195 @@ +@import "./global.css"; + +html, +body { + background-color: transparent; + font-family: "gg sans", + "Noto Sans", + "Helvetica Neue", + Helvetica, + Arial, + sans-serif; + font-weight: bold; +} + +#capturer-selection { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #000a; + color: var(--color-font-normal); + display: flex; + align-items: center; + justify-content: center; +} + +#capturer-scroller { + max-height: 80vh; + max-width: 80vw; + overflow-y: auto; + background: var(--color-bg-secondary); + border-radius: 10px; + font-size: 1.5vw; +} + +#controls-section { + display: flex; + justify-content: end; + width: 100%; +} + +#audio-video-section { + display: flex; +} + +#capturer-list, #capturer-audio-list { + max-width: 20vw; + max-height: 40vh; + overflow-y: auto; + margin-bottom: 1vw; +} + +.capturer-item { + display: flex; + margin: 1rem; +} + +.capturer-button { + cursor: pointer; + display: flex; + flex-direction: column; + align-items: stretch; + width: 15vw; + border: 0; + border-radius: 3px; + padding: 0.5rem; + background: var(--color-bg-primary); + transition: background-color .15s, box-shadow .15s; + font-weight: bold; + font-size: 55%; +} + +.capturer-button:hover, +.capturer-button:focus { + background: var(--color-bg-secondary); +} + +.capturer-label-container { + display: flex; + justify-content: center; +} + +.capturer-label-icon { + width: 1.2vw; + padding: 0 0.5rem 0 0; +} + +.capturer-label { + color: #dcddde; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + padding-top: 1.5px; /* Align text with icon */ +} + +.capturer-audio-item { + display: flex; + margin: 1rem; +} + +.capturer-audio-button { + cursor: pointer; + display: flex; + flex-direction: column; + align-items: stretch; + width: 15vw; /* 10vw later */ + border: 0; + border-radius: 3px; + padding: 0.5rem; + background: var(--color-bg-primary); + transition: background-color .15s, box-shadow .15s; + font-size: 55%; + font-weight: bold; +} + +.capturer-audio-button:hover { + background: var(--color-bg-secondary); +} + +.capturer-audio-label { + color: #dcddde; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + text-align: center; +} + +.capturer-audio-button-selected { + background: #3BA55D; +} + +.capturer-audio-button-selected:hover { + background: #46C46E; +} + + +#capturer-buttons { + display: flex; + margin: 1vh 1vh 0 0; +} + +#capturer-buttons>* { + display: flex; + cursor: pointer; + justify-content: center; + align-items: center; + background-color: var(--color-bg-secondary); + width: 2rem; + height: 2rem; + transition: background-color .15s; + border: transparent; + border-radius: 30px; +} + +#capturer-buttons>*>img { + width: 1rem; +} + +#capturer-buttons>*:hover { + background-color: var(--color-bg-primary); +} + +#capturer-audio-section { + display: flex; + flex-direction: column; + align-items: center; + margin: 1vh 1vw 2vh 1vw; + background-color: #292B2F; + padding: 2vh 3vw; + border-radius: 10px; +} + +#capturer-video-section { + display: flex; + flex-direction: column; + align-items: center; + background-color: #292B2F; + padding: 2vh 3vw; + margin: 1vh 1vw 2vh 1vw; + border-radius: 10px; +} + +#capturer-hint { + font-size: 45%; + font-weight: 400; + color: hsl(216, calc(var(--saturation-factor, 1) * 3.7%), 73.5%); + margin-top: auto; +} + +.capturer-thumbnail { + object-fit: contain; + max-height: 15vh; + margin-bottom: 1vh; +} \ No newline at end of file diff --git a/sources/assets/web/html/pipewire-capturer.html b/sources/assets/web/html/pipewire-capturer.html new file mode 100644 index 00000000..2bd99368 --- /dev/null +++ b/sources/assets/web/html/pipewire-capturer.html @@ -0,0 +1,38 @@ + + + +
+ + + +