diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index bacca69b..f936ee45 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -65,10 +65,10 @@ jobs:
include:
- runner: ubuntu-latest
name: Linux
- arch: x64,arm64,armv7l
+ arch: x64,arm64
- runner: windows-latest
name: Windows
- arch: x64,arm64,ia32
+ arch: x64,arm64
- runner: macos-latest
name: macOS
arch: x64,arm64 #,universal
diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml
deleted file mode 100644
index dc3b2d8e..00000000
--- a/.github/workflows/prerelease.yml
+++ /dev/null
@@ -1,55 +0,0 @@
-name: Publish pre-release
-on:
- push:
- tags: ['*beta*']
-
-env:
- WEBCORD_BUILD: DEVEL
-
-permissions:
- contents: write
-
-jobs:
- publish:
- strategy:
- matrix:
- include:
- - name: Linux
- runner: ubuntu-latest
- arch: x64,arm64,armv7l
- - name: Windows
- runner: windows-latest
- arch: x64,arm64,ia32
- - name: macOS
- runner: macos-latest
- arch: x64,arm64 #,universal
-
- name: ${{ matrix.name }} (${{ matrix.arch }})
- runs-on: ${{ matrix.runner }}
- steps:
- - uses: actions/checkout@v7
- - uses: actions/setup-node@v6
- with:
- node-version: ${{ matrix.name == 'Windows' && '24.x' || 'latest' }}
- cache: npm
-
- - name: Install dependencies (NPM)
- run: npm ci
-
- - name: TSC cache
- uses: actions/cache@v6
- with:
- key: tsc-release
- path: |
- app
- cache/tsc.json
-
- - name: Publish distributables (${{ matrix.arch}})
- uses: nick-fields/retry@v4
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- retry_on: error
- max_attempts: ${{ matrix.name == 'Windows' && 6 || 3 }}
- timeout_minutes: ${{ matrix.name == 'Windows' && 15 || 10 }}
- command: npm run publish -- -a ${{ matrix.arch }}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 28a38750..dbb04c71 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -1,10 +1,8 @@
name: Publish release
on:
push:
- tags-ignore: ['*beta*']
-
-env:
- WEBCORD_BUILD: RELEASE
+ tags:
+ - 'v*'
permissions:
contents: write
@@ -16,16 +14,18 @@ jobs:
include:
- name: Linux
runner: ubuntu-latest
- arch: x64,arm64,armv7l
+ arch: x64,arm64
- name: Windows
runner: windows-latest
- arch: x64,arm64,ia32
+ arch: x64,arm64
- name: macOS
runner: macos-latest
arch: x64,arm64 #,universal
name: ${{ matrix.name }} (${{ matrix.arch }})
runs-on: ${{ matrix.runner }}
+ env:
+ WEBCORD_BUILD: ${{ contains(github.ref_name, '-') && 'RELEASE' || 'DEVEL' }}
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v6
@@ -39,7 +39,7 @@ jobs:
- name: TSC cache
uses: actions/cache@v6
with:
- key: tsc-prerelease
+ key: tsc
path: |
app
cache/tsc.json
diff --git a/docs/FAQ.md b/docs/FAQ.md
index cac95c87..b5b636c8 100644
--- a/docs/FAQ.md
+++ b/docs/FAQ.md
@@ -1,4 +1,5 @@
# Frequently asked questions
+
Because many people that are Linux novices or Windows/MacOS users has many
issues even installing my app, I decided to write a short FAQ answering many
questions that I saw on Discord or issues.
@@ -6,8 +7,10 @@ questions that I saw on Discord or issues.
## 1. Which file I should download?
If you have a trouble identifying which file you should install on your
-platform, here's the full list of platforms and recommended distributable names,
-grouped in tables by platforms:
+platform, here's below the full list of platforms and recommended distributable names,
+grouped in tables by platforms. Note if you have older CPUs that are built upon
+32-bit architecture (very unlikely), you might not be able to use recent WebCord
+prebuilt releases (since Electron v44 and WebCord v5).
@@ -15,92 +18,72 @@ grouped in tables by platforms:
|
Architecture
|
Archive name
|
| :------------------------------------- | :------------------------------------- |
-| 64-bit (Intel/AMD) | `webcord-win32-x64-{version}.zip` |
-| 32-bit (Intel/AMD) | `webcord-win32-ia32-{version}.zip` |
-| 64-bit ARM | `webcord-win32-arm64-{version}.zip` |
+| Intel/AMD | `webcord-win32-x64-{version}.zip` |
+| ARM (Snapdragon X etc.) | `webcord-win32-arm64-{version}.zip` |
### macOS
|
Architecture
|
Archive name
|
| :------------------------------------- | :------------------------------------- |
-| 64-bit X86 (Regular Mac computers) | `WebCord-{version}-x64.dmg` |
-| 64-bit ARM (Apple M1 computers) | `WebCord-{version}-arm64.dmg` |
+| Intel/AMD | `WebCord-{version}-x64.dmg` |
+| ARM (Apple sillicon) | `WebCord-{version}-arm64.dmg` |
### Linux
|
Distributions
|
Recommended package
|
| :------------------------------------------ | :-------------------------------------------------- |
-| Debian / Ubuntu 64-bit (AMD or Intel) | `webcord_{version}_amd64.deb` |
-| Debian / Ubuntu 32-bit (AMD or Intel)* | `webcord_{version}_i386.deb` |
-| Debian / Ubuntu ARM 64-bit | `webcord_{version}_arm64.deb` |
-| Debian / Ubuntu ARM 32-bit | `webcord_{version}_armhf.deb` |
+| Debian / Ubuntu Intel/AMD | `webcord_{version}_amd64.deb` |
+| Debian / Ubuntu ARM | `webcord_{version}_arm64.deb` |
| Arch Linux / Manjaro (any architecture) | [Arch User Repository (Official)](https://aur.archlinux.org/packages/webcord-git/) |
-| Fedora / Red Hat Linux 64-bit (Intel / AMD) | `webcord-{version}.x86_64.rpm` |
-| Fedora / Red Hat Linux 32-bit (Intel / AMD)*| `webcord-{version}.i386.rpm` |
-| Fedora / Red Hat Linux ARM 64-bit | `webcord-{version}.arm64.rpm` |
-| Fedora / Red Hat Linux ARM 32-bit | `webcord-{version}.armv7hl.rpm` |
-| Linux 64-bit (Intel / AMD) distributions | `webcord-{version}-x64.AppImage` |
-| Linux 32-bit (Intel / AMD) distributions* | `webcord-{version}-ia32.AppImage` |
-| Linux ARM 64-bit distributions | `webcord-{version}-arm64.AppImage` |
-| Linux ARM 32-bit distributions | `webcord-{version}-armv7l.AppImage` |
-
-
* Platforms deprecated by Electron.
+| Fedora / Red Hat Linux Intel/AMD | `webcord-{version}.x86_64.rpm` |
+| Fedora / Red Hat Linux ARM | `webcord-{version}.arm64.rpm` |
+| Linux Intel/AMD distributions | `webcord-{version}-x64.AppImage` |
+| Linux ARM distributions | `webcord-{version}-arm64.AppImage` |
There's also a list of community-maintained WebCord packages in [`Repos.md`].
## 2. Image/video/content does not load properly, is there anything I can do about it?
-Yes, this is probably an issue due to Content Security Policy header not
-including all URLs that are allowed to load. You can disable it in WebCord
+
+What you are encountering is most likely an issue due to Content Security Policy
+header not including all URLs that are allowed to load. You can disable it in WebCord
settings as a workaround.
-## 3. How to get a microphone permission for WebCord?
-If you granted it via the application settings, this warning may indicate a
-wrong configuration in your system audio settings – for some reason, Electron
-doesn't seems to get access to microphone when there's no default / fallback
-device set. To fix it, set your microphone as default/fallback in your system's
-audio settings and restart the application – make sure it's properly closed and
-there's no icon in tray nor Electron/WebCord process running in the background!
+## 3. How to get a microphone/camera/?? working in WebCord?
+
+WebCord externally manages permissions to various Discord elements – and blocks
+permissions that are not explicitly enabled. This means if something like
+camera or microphone is not detected and Discord tells you that it needs
+permissions, it is very likely it is blocked by WebCord.
-Currently, this bug could be encountered on Linux, it's state is unknown for the
-other platforms.
+For some permissions, WebCord should gently prompt you for access to the given
+resources – but if for some reason you did not encounter the prompt dialog,
+you might grant (or deny) permissions via settings, found in menu bar.
## 4. Why Electron?
-I've seen a long discussion about Electron being criticized and even though
-I don't find it a perfect software, I think it is the best for me currently as
-for the web-based software development – it is designed to be secure while
-connecting to the internet sites, unlike some other solutions. It is also the
-only solution that I've found to support the ARM devices. Electron is an easy
-solution for the beginners that just can't develop each app for each platform
-and maintain it, it is just more time-consuming to maintain the application for
-multiple platforms because of different libraries used for an GUI interface.
-For instance, if I would like to rewrite WebCord for the GTK3/4 WebView with
-`node-gtk`, I would have to use different API for Windows since `node-gtk` does
-not work currently on Windows platforms. For people thinking that QT could be a
-solution for native implementation, I don't think that QT always integrates
-well with every theme (i.e. *it is damn ugly!*) or can be easily themed.
-
-As of the alternatives that are close to the Electron, the only software that
-seemed to be promising as of the switching was NW.js, yet it is more designed
-for rendering the local sites and does not take the security approach the same
-way as Electron, making me to care more about developing the code which wouldn't
-leak too much access to the system files to the sites.
-
-Please also take note that my philosophy to design WebCord was to make no use
-of the Discord API, to make it safe from being easily detected as unofficial
-Discord client and/or taking at risks the users, which could be treated as
-self-bots when using some parts of the API reserved only for bots purpose.
-And even today, I discourage making the requests, maybe the safest approach
-would be to make the client analyse the requests made by site first to make the
-list of safe API endpoints or to actually catch the requests made by the Discord
-website and expose them to the client to some functionalities.
-
-Also, you can actually reuse the Electron binaries across different applications
-– in fact, some Linux distributions like Arch Linux does that for most of the
-Electron-based applications that does not depend on any specific Electron
-version/binary. This practise will save the disk space and other resources,
-since there's no need to run simultaneously multiple Electron binaries with
-different Chromium engine versions.
+Electron, unlike rummours, isn't exactly the worst development platform for
+cross-platform applications – and with how it evolves, it still remains one
+of the most api-rich sollutions for developing a desktop applications that
+can nicely integrate with your OS. Additionally, Electron is what Discord uses
+by themselves, which helps considerably with feature parity and stability of
+web apis that Discord might use. Unified browser engine ecosystem is also
+beneficial, to offer better platform-independent ecosystem and support the
+same complex APIs that WebCord utilizes – not all browser engines are capable
+of as much as Chromium in Electron (this is especially to consider for
+Webkit).
+
+While TypeScript/JavaScript might feel like a bottleneck for desktop
+applications, it offers a rich api to work with, is relatively friendly to
+anyone interested in messing with WebCord's codebase and integrates well with
+Web APIs. Additionally, asynchronous code execution can be expressed in quite
+straightforward way and offer quite benefits to performance. And unlike to
+rumours, JS is far from being a single-threaded, especially in context of
+Electron software.
+
+In general, it feels like Electron is the most straightforward framework not
+just for me but anyone who wants to work with, build, package and distribute
+WebCord, although I still keep my eyes on alternative technology and consider
+to work with something else.
## 5. Is this project violating Discord's Terms of Service?
diff --git a/package-lock.json b/package-lock.json
index d7cb1071..ddfaa4bf 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,7 +11,7 @@
"dependencies": {
"@spacingbat3/disconnection": "^1.0.3",
"@spacingbat3/kolor": "^4.0.0",
- "deepmerge-ts": "^7.0.3",
+ "deepmerge-ts": "^8.0.2",
"dompurify": "^3.0.1",
"marked": "^18.0.2",
"marked-alert": "^2.1.2",
@@ -36,11 +36,11 @@
"@electron/fuses": "^1.5.0",
"@reforged/maker-appimage": "^5.0.0",
"@tsconfig/strictest": "^2.0.0",
- "@types/node": "^20.16.1",
+ "@types/node": "^22.20.3",
"@types/semver": "^7.3.9",
"@types/source-map-support": "^0.5.4",
"@types/ws": "^8.5.1",
- "electron": ">=43.1.0 < 43.3.0",
+ "electron": "^44.3.0",
"oxlint": "^1.73.0",
"oxlint-tsgolint": "^7.0.2001",
"typescript": "^7.0.2"
@@ -801,9 +801,9 @@
}
},
"node_modules/@electron/universal/node_modules/brace-expansion": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.4.tgz",
- "integrity": "sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg==",
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.7.tgz",
+ "integrity": "sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -931,16 +931,6 @@
"node": ">=18"
}
},
- "node_modules/@inquirer/core/node_modules/@types/node": {
- "version": "22.20.1",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.20.1.tgz",
- "integrity": "sha512-EANqOCF9QFyra+4pfxUcX9STKJpCLjMbObVzljIJomAWSnuSIEAvyzEU53GaajbXJEgdh0iEcPL+DGvpUd4k1Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "undici-types": "~6.21.0"
- }
- },
"node_modules/@inquirer/editor": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-3.0.1.tgz",
@@ -1153,9 +1143,9 @@
}
},
"node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
- "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz",
+ "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==",
"dev": true,
"license": "MIT"
},
@@ -1726,9 +1716,9 @@
]
},
"node_modules/@oxlint/binding-android-arm-eabi": {
- "version": "1.78.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm-eabi/-/binding-android-arm-eabi-1.78.0.tgz",
- "integrity": "sha512-Bu819lmAfZMUHErrpe0cEWj3iaefuUODHSU8+UbXy67V/r7/7f4K3FL0NmbD85E+wiFLDYuhP8Zlv0XnVeXshw==",
+ "version": "1.83.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm-eabi/-/binding-android-arm-eabi-1.83.0.tgz",
+ "integrity": "sha512-0yGY24EwsLk5YDe6F+VkmZyRHSwJDALa3nIrPpq7FXmp2lV2d0TzvBCGeZk+wgiULRGr5blhyr4QMp5KCXJUqA==",
"cpu": [
"arm"
],
@@ -1743,9 +1733,9 @@
}
},
"node_modules/@oxlint/binding-android-arm64": {
- "version": "1.78.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm64/-/binding-android-arm64-1.78.0.tgz",
- "integrity": "sha512-CDfxZgB61B7buRdY2FJoAYYPPXCZ1EoC1LKscnC5dg3kjobdxiconvAvvN1BmHyW4PyFT3jRLDag/BY/roSNBQ==",
+ "version": "1.83.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm64/-/binding-android-arm64-1.83.0.tgz",
+ "integrity": "sha512-hHfJ0vc17A4iUjH5p9BsTUPYbYRNxGpvD2lbu1aBRk54bzNIx9o5TtYF39QPZcV95DagZd+4DEAw2RH3G2ZsMg==",
"cpu": [
"arm64"
],
@@ -1760,9 +1750,9 @@
}
},
"node_modules/@oxlint/binding-darwin-arm64": {
- "version": "1.78.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-arm64/-/binding-darwin-arm64-1.78.0.tgz",
- "integrity": "sha512-2Y2U9Ahrz+OO0Ej88f9SJYq51/jUBp1Mc7iZu0ukrbeeZ3gpRGfzIFnoqfHDY96xr0GEfNrPUBFEy0nN5aD7HA==",
+ "version": "1.83.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-arm64/-/binding-darwin-arm64-1.83.0.tgz",
+ "integrity": "sha512-hsOjYjszLb/3zym/TkzUMPAoQlTJcuzSyEPOAyA+skXJIX9M0o+4JfOtqopX/Vf4hSLrJ98j0nvFo23gzk8auQ==",
"cpu": [
"arm64"
],
@@ -1777,9 +1767,9 @@
}
},
"node_modules/@oxlint/binding-darwin-x64": {
- "version": "1.78.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-x64/-/binding-darwin-x64-1.78.0.tgz",
- "integrity": "sha512-rpych6eJq6m9jDRypTEaPD1xysaEW5h9+xuxhGK/QhOg+/xaqPZrCrTNoIl/f3nEjuJeCEmstNDlrE9rJi/3/g==",
+ "version": "1.83.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-x64/-/binding-darwin-x64-1.83.0.tgz",
+ "integrity": "sha512-mjh5oH2EA+wl5yRJYT9K9G61O2zFlpuv+yf2JwZOi0+dq2FnTUtm1h8i+5Ik0fXPWIu/k84I1psZR9aQsLAnyA==",
"cpu": [
"x64"
],
@@ -1794,9 +1784,9 @@
}
},
"node_modules/@oxlint/binding-freebsd-x64": {
- "version": "1.78.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-freebsd-x64/-/binding-freebsd-x64-1.78.0.tgz",
- "integrity": "sha512-IcMGrQT3QizkOESUJd5et+rOhVqSkNDfNik1cvrKDqIbzqx9KMtRswpFgkCuNTSwylCFLKhGUu8KmqY1ZnC0Dg==",
+ "version": "1.83.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-freebsd-x64/-/binding-freebsd-x64-1.83.0.tgz",
+ "integrity": "sha512-fNHr64/YaO8YssuoDVC8+F4Uk5enR86q5uxfHkQrjAPs1dbAILOrD2uaud+J7MO8Fx774g44ERLD0IGIvZE48w==",
"cpu": [
"x64"
],
@@ -1811,9 +1801,9 @@
}
},
"node_modules/@oxlint/binding-linux-arm-gnueabihf": {
- "version": "1.78.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.78.0.tgz",
- "integrity": "sha512-/uLdoJ0IXE6vo/0f0LKjinQAp+re+VMaCWaNT8ENIv2EOCkSsc8SGaflXAuW0Jua2dq5+GLVWm1NQK7P3UFSNQ==",
+ "version": "1.83.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.83.0.tgz",
+ "integrity": "sha512-Qpwy3zzAwMj+8/lyYItHmkSMwbkprFNWTK7jPYDOxSyxEhaSLOWYUTCMkjF334J8/WD0nznCCsoBbIH6hpsuIw==",
"cpu": [
"arm"
],
@@ -1828,9 +1818,9 @@
}
},
"node_modules/@oxlint/binding-linux-arm-musleabihf": {
- "version": "1.78.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-1.78.0.tgz",
- "integrity": "sha512-7xi4Wb/O8NRJhLoUXmDJMUVpNYvB5kefdhFU1Jb8rtae4QoXlTiLwI14X4YvAXVZLNZChP8m5qO9SQAlWQTbkQ==",
+ "version": "1.83.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-1.83.0.tgz",
+ "integrity": "sha512-s+BirYLFq7JL2k9sP0XI3ZXJ9dYvJ8sX3jLCLoag7tt+zrSHpZxP0jqznfL+Gdgwu7ay0dYgGYJXrQvq3iWloA==",
"cpu": [
"arm"
],
@@ -1845,9 +1835,9 @@
}
},
"node_modules/@oxlint/binding-linux-arm64-gnu": {
- "version": "1.78.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.78.0.tgz",
- "integrity": "sha512-4hFW0+fVXa3OIh1Y4A5SPkmvI4wuuBSrCVKzOyE7PTjhc7yEqZ1pmvEEeS5Lj/MaqvegFxXyF33N+6jkehxdyg==",
+ "version": "1.83.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.83.0.tgz",
+ "integrity": "sha512-7lihXt3vKr+GIyapNbHrnFHm/biiW30le6Zv/DExbAFPF6YwCQXVFlONPFehxs0CpGO4CBfYPM9rdDT+XMoIlg==",
"cpu": [
"arm64"
],
@@ -1865,9 +1855,9 @@
}
},
"node_modules/@oxlint/binding-linux-arm64-musl": {
- "version": "1.78.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.78.0.tgz",
- "integrity": "sha512-oC0mvsgBJjlMijSDEhx9KuvR9zYeHXceA9MjbuXB1F8NSR78Yj2unOBrstEvTVaq+pko+kuue6DajC00eqvTdg==",
+ "version": "1.83.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.83.0.tgz",
+ "integrity": "sha512-q63JalLYVkZiZvls1z3PPUnpmQluOMXp0khqQMznCeAPLGydfNY8JhvuA4WlK57JfrvikU8wB5lPVveqpIXvew==",
"cpu": [
"arm64"
],
@@ -1885,9 +1875,9 @@
}
},
"node_modules/@oxlint/binding-linux-ppc64-gnu": {
- "version": "1.78.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.78.0.tgz",
- "integrity": "sha512-XAllT5SUZS+ohjuZ3/5S0cwe0r7eboiuigeStCZ5DXRYx/2KVM2UvQXvAfyzXEimtQjAB7cDQ2YxDe2Zl2WNQQ==",
+ "version": "1.83.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.83.0.tgz",
+ "integrity": "sha512-krQmDF+dRbxvdqVPV88ZuOoPPu8X5BuqDA8Hd+qcS4YMRQCb+nexA57DazgGsc/rGdKBe3QmV0mnv0bdpW/p5g==",
"cpu": [
"ppc64"
],
@@ -1905,9 +1895,9 @@
}
},
"node_modules/@oxlint/binding-linux-riscv64-gnu": {
- "version": "1.78.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-1.78.0.tgz",
- "integrity": "sha512-trucMER/0QtecoXvc1y/UVqE3kwJipDwrx4oHfj+nNm3dq2zjP44WT0CfHNDPM3G1DXIkx/gY6lAD21NSCZVhA==",
+ "version": "1.83.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-1.83.0.tgz",
+ "integrity": "sha512-MmOl8Y6txEAXZU1RG8Rr264jQ6D7VPmqFsU/45x/FeWsGe32hklTqGrLE6UxHzp5Rjt0wP+20tY8YXKgSFB3mw==",
"cpu": [
"riscv64"
],
@@ -1925,9 +1915,9 @@
}
},
"node_modules/@oxlint/binding-linux-riscv64-musl": {
- "version": "1.78.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-1.78.0.tgz",
- "integrity": "sha512-cm3O4F/HQbdzOUX5mKHqG5KDL6E5w0pnlZ+fbBy2rmLryPOowkuLagFHTopQsEIpjcaZoPOrL+BmmAytAG9HFg==",
+ "version": "1.83.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-1.83.0.tgz",
+ "integrity": "sha512-u1rMymh0W3JZkq370kzQsYPULGWqhE09pZRqnZvUSoYaI9pVO5yVX+iYIslmWuEgwuzH9YAaOsScJiobWCHoOw==",
"cpu": [
"riscv64"
],
@@ -1945,9 +1935,9 @@
}
},
"node_modules/@oxlint/binding-linux-s390x-gnu": {
- "version": "1.78.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.78.0.tgz",
- "integrity": "sha512-33wRf6HqGNsybJ3qX4cGaQN2ODPxNmc1rMa0mrTmx3eFq1VzOnvQooi9bIGVYakW8a/wmqVx1mgsUm8R2xfTiw==",
+ "version": "1.83.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.83.0.tgz",
+ "integrity": "sha512-y0zK3HNwGysu7rqtE+BQG/d0bx5gh/KwlOtghN8oWeK1KcWzeaLqtZrbm8owqdma1lFyrce/hTO5ismuNu+INQ==",
"cpu": [
"s390x"
],
@@ -1965,9 +1955,9 @@
}
},
"node_modules/@oxlint/binding-linux-x64-gnu": {
- "version": "1.78.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.78.0.tgz",
- "integrity": "sha512-rRdISSYegj6VganMZ9tjRjijowfHJ09IZU01i0toBAqr6n5LEtwHq2IeS4FjW2RoskOHlb6efB26H5izYb3GEQ==",
+ "version": "1.83.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.83.0.tgz",
+ "integrity": "sha512-rS5gM0NgD7ngmuJmbIehsidtrOwKkLFwCQbKEeb9KuyQrrWNq5Zkn0uV6AYdXOMJ0grrWEiLwBuvMxt8w5vsNw==",
"cpu": [
"x64"
],
@@ -1985,9 +1975,9 @@
}
},
"node_modules/@oxlint/binding-linux-x64-musl": {
- "version": "1.78.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-musl/-/binding-linux-x64-musl-1.78.0.tgz",
- "integrity": "sha512-GmsP4rW0xTL6u5CVdcDsaN5Fbc7hBc382Wmar1kttbnwSEviM+rSINKOMQ+UQ6iH+AGwC+8gaAiwu134Tgh6Lg==",
+ "version": "1.83.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-musl/-/binding-linux-x64-musl-1.83.0.tgz",
+ "integrity": "sha512-W2IH4EtpcPaWcvNGCA95YoDg4vxqE/ZiPCi3arrxEEpsK7+JQN9WYwrlYFx9pcdP6KPXqRqkv3zdQPHcx7b6YQ==",
"cpu": [
"x64"
],
@@ -2005,9 +1995,9 @@
}
},
"node_modules/@oxlint/binding-openharmony-arm64": {
- "version": "1.78.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-openharmony-arm64/-/binding-openharmony-arm64-1.78.0.tgz",
- "integrity": "sha512-sy9yeYuADc8a+n4TLBayzMCZiHPW78DcIFVpOXTmdKHWQeM9xe5uzkqIIZmi326D5hY9XVwacipEB1p7tQjPAg==",
+ "version": "1.83.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-openharmony-arm64/-/binding-openharmony-arm64-1.83.0.tgz",
+ "integrity": "sha512-6LyKkUyoajssTPLlZmDbZIbu4IZ5B4bGuRUnBgCGpEvHP3FQMaYITncHA/unPUo7q+Z+pIu2HhdkQ+8d1SG7iA==",
"cpu": [
"arm64"
],
@@ -2022,9 +2012,9 @@
}
},
"node_modules/@oxlint/binding-win32-arm64-msvc": {
- "version": "1.78.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.78.0.tgz",
- "integrity": "sha512-rjc2hF1KfMi8fZj1X/m3AmnHbdsF3rL0v6KQg0Uc880Yb2khjz+3U14sfdZ7jWTpRnN1m1NQa/TT7uU9lJWPrA==",
+ "version": "1.83.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.83.0.tgz",
+ "integrity": "sha512-Uz/fObEtF0jmNJQJ8CGRBKfefYstS0/wjD3s6IGzP8nUwsJykHQJBiN3npHwKiGRGn/vvBEgNr4B3cCzmmatvg==",
"cpu": [
"arm64"
],
@@ -2039,9 +2029,9 @@
}
},
"node_modules/@oxlint/binding-win32-ia32-msvc": {
- "version": "1.78.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.78.0.tgz",
- "integrity": "sha512-zcuXFVrEFHIafRfkCQT8w/Xe41o07ozl/vwHq7p94vB29xVzsB0sZGYORU1jhcYKv3Lr0J3HbJ2T4fHH5rWmvA==",
+ "version": "1.83.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.83.0.tgz",
+ "integrity": "sha512-u7XcvPW6Bk58tY5iWs2ESb0vJjoE/kuSpHxopbwp/p3ZtWVQXZ6wor5w3ssVTHOqd/v8b+QdhSFWQ4grEUNWpA==",
"cpu": [
"ia32"
],
@@ -2056,9 +2046,9 @@
}
},
"node_modules/@oxlint/binding-win32-x64-msvc": {
- "version": "1.78.0",
- "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.78.0.tgz",
- "integrity": "sha512-Sb5ocmLSuYeOuXd+CFOToGKp/gjXUEWDnvIGwhnh8aq8wY4TMmEnKnvbogSW7RdMZv77JSARduS7/gv+khYEjA==",
+ "version": "1.83.0",
+ "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.83.0.tgz",
+ "integrity": "sha512-LZRubd7ph13QmAg4fFecTYVZkiYbROR2Htaxh/ufWRkDhPOm2wrwaEYR89e0YpPFD3dqBrPoxS7myBw5hmYA7Q==",
"cpu": [
"x64"
],
@@ -2241,9 +2231,9 @@
}
},
"node_modules/@types/node": {
- "version": "20.19.43",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.43.tgz",
- "integrity": "sha512-6oYBAi5ikg4Pl+kGsoYtawUMBT2zZMCvPNF7pVLnHZfd1zf38DRiWn/gT01RYCdUqkv7Fhr+C9ot4/tb+2sVvA==",
+ "version": "22.20.3",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.20.3.tgz",
+ "integrity": "sha512-DZmzkmwHzXrLPAXPyKNDzlIwMMUZCVacoD25ywdy5YTKGbOx/2ld+Q38Im2zJ0vBuZP5Prd3VZutKZyXwkOS8A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2810,9 +2800,9 @@
}
},
"node_modules/@xmldom/xmldom": {
- "version": "0.9.11",
- "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.11.tgz",
- "integrity": "sha512-tW8bcK3hsG0/uqSnNz6TK4BkcuZSezoU7DlnYssILmZDktPnSHHuDJJFM0AJv+13gz2r0iGdrj6qqKeUnxXEDg==",
+ "version": "0.9.12",
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.12.tgz",
+ "integrity": "sha512-5AXjrcMClTryPe9LgZrygpB1lj7s0S9E0+W+AHaVKAVyHanafK86iPSvG5xHVSp/jC+VH1UXu0TAEmY279xH7A==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2874,9 +2864,9 @@
}
},
"node_modules/ajv-formats": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
- "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz",
+ "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3055,9 +3045,9 @@
"license": "MIT"
},
"node_modules/baseline-browser-mapping": {
- "version": "2.11.13",
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.13.tgz",
- "integrity": "sha512-k9HNuUVMlqVjQ9UHzfPjIqiDbWw7WqT1AoT7GL8VwvF3r0ZfArtgiSPAlmupyNquNgOJHTuH4CKYf8ttMTWBTQ==",
+ "version": "2.11.24",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.24.tgz",
+ "integrity": "sha512-hYrgxie335U08WqICoGqKRzV1HFXv6zdxwJE4ekCb80CM9a0SVVsN4QPwT67RraRo+9h8IATk6uxHJw7QSkdOg==",
"dev": true,
"license": "Apache-2.0",
"bin": {
@@ -3109,9 +3099,9 @@
}
},
"node_modules/brace-expansion": {
- "version": "1.1.18",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz",
- "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==",
+ "version": "1.1.21",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.21.tgz",
+ "integrity": "sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3133,9 +3123,9 @@
}
},
"node_modules/browserslist": {
- "version": "4.28.8",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.8.tgz",
- "integrity": "sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA==",
+ "version": "4.29.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.29.0.tgz",
+ "integrity": "sha512-3GSvyjvDI4Dur1Meg2BekJquu5uF+9R9a1+5M1Mde192eZoXbeXjzgOsgqPS2V8D5wrrip0gR5Hf/GhWQ9ZzaA==",
"dev": true,
"funding": [
{
@@ -3153,11 +3143,11 @@
],
"license": "MIT",
"dependencies": {
- "baseline-browser-mapping": "^2.11.12",
- "caniuse-lite": "^1.0.30001809",
- "electron-to-chromium": "^1.5.402",
- "node-releases": "^2.0.53",
- "update-browserslist-db": "^1.3.0"
+ "baseline-browser-mapping": "^2.11.23",
+ "caniuse-lite": "^1.0.30001810",
+ "electron-to-chromium": "^1.5.427",
+ "node-releases": "^2.0.55",
+ "update-browserslist-db": "^1.3.3"
},
"bin": {
"browserslist": "cli.js"
@@ -3218,9 +3208,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001809",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001809.tgz",
- "integrity": "sha512-xxWVywk6a6Arlk+hymeycyn/VgqEfLDxupvhH/xiY5SJ/18kmi9o6MiO320DCUzypORHLtvh0I4i04tUhCNHNQ==",
+ "version": "1.0.30001810",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001810.tgz",
+ "integrity": "sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==",
"dev": true,
"funding": [
{
@@ -3601,9 +3591,9 @@
}
},
"node_modules/deepmerge-ts": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/deepmerge-ts/-/deepmerge-ts-7.1.6.tgz",
- "integrity": "sha512-gQhL1ksGBLQbHeAo47YU6cs2ahd3Pv+8PFYoWogNZbQnNwQyOh9Ad5kbeHFiWwbKdeWQJ5Z7Y7mwb9ew2hXBLw==",
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/deepmerge-ts/-/deepmerge-ts-8.0.2.tgz",
+ "integrity": "sha512-uqbvqLUMrc6p0MO+WBRtTxY55hmyh94WRwI5a++PZe54X+bfVh59FSN7uWCBCW1CCVjzjnrwzfI8zidE2obMMw==",
"funding": [
{
"type": "ko-fi",
@@ -3616,7 +3606,7 @@
],
"license": "BSD-3-Clause",
"engines": {
- "node": ">=16.0.0"
+ "node": ">=16.9.0"
}
},
"node_modules/defer-to-connect": {
@@ -3694,9 +3684,9 @@
}
},
"node_modules/dompurify": {
- "version": "3.4.13",
- "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.13.tgz",
- "integrity": "sha512-2vmYIoqjze2d+kakP8S/nS5shfsl587kzwEjcGlTdiksUVgFHnFCsLYDVj/JNqJVOQZGSYBTmuycv0PodwmnMQ==",
+ "version": "3.4.15",
+ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.15.tgz",
+ "integrity": "sha512-EUBjM+B+lkDE41iE82DDSCfkoPGfXx8IxFxPMjNzm/Uk4xDet77rTN9wqlxlVg71kK7XGuUMv6wUxJUwwv+Xyw==",
"license": "(MPL-2.0 OR Apache-2.0)",
"optionalDependencies": {
"@types/trusted-types": "^2.0.7"
@@ -3723,9 +3713,9 @@
"license": "MIT"
},
"node_modules/electron": {
- "version": "43.2.0",
- "resolved": "https://registry.npmjs.org/electron/-/electron-43.2.0.tgz",
- "integrity": "sha512-80zvrgG7ZRXD+tD0IyLvrnN9n+veSxadMRsMaC9wKKP3iUbtC7rGM8+dVuCmOb0Rrwwv8ESW4awnUZh9Hbp1fA==",
+ "version": "44.4.1",
+ "resolved": "https://registry.npmjs.org/electron/-/electron-44.4.1.tgz",
+ "integrity": "sha512-gXJarQ2Utfn8G6bp/IqLXvckOSCtrxPWjFqQaqm02Gf4zYn1aP+RN9PKimoLH/DMqjKLfBrNC4C4CviPv0cXnQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4040,9 +4030,9 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.5.405",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.405.tgz",
- "integrity": "sha512-bNglH7lPH5l+yHOes7Zr4VqxhOy4BQ9ZBUX4VdoFgxMpzJk7W1ZoO3Vgd9Pxa9PyjQ76sfm2aKH/nzEcCNRlew==",
+ "version": "1.5.430",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.430.tgz",
+ "integrity": "sha512-e1QEj72Y4zd8RlNZVmoTg+iCOSVwpk05IOiiQwdrkwCSVlZfPthevErhE+nckGd2YbsXfp1SkisznhGVIXP2NQ==",
"dev": true,
"license": "ISC"
},
@@ -4152,9 +4142,9 @@
}
},
"node_modules/electron/node_modules/@types/node": {
- "version": "24.13.3",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.3.tgz",
- "integrity": "sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q==",
+ "version": "24.13.5",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.5.tgz",
+ "integrity": "sha512-TXyindR+lBr22aJIdMQzCFHPHR6cR4js838mRDCSz5hOKWZvZwsXSSiXDmjRj4iJmgl+sR9O+1mkoVBSMadNug==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4175,9 +4165,9 @@
}
},
"node_modules/electron/node_modules/undici": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.0.tgz",
- "integrity": "sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==",
+ "version": "7.29.1",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.1.tgz",
+ "integrity": "sha512-RYONW2MeafgYlkVOKYKkA/Ag7BmXqgIWCa8t1m0JcxrQg9pI9lEqRhAOruOBCbAohOa/gkCF+iPi9hrgvTzu6Q==",
"dev": true,
"license": "MIT",
"optional": true,
@@ -4218,9 +4208,9 @@
}
},
"node_modules/enhanced-resolve": {
- "version": "5.24.5",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.5.tgz",
- "integrity": "sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A==",
+ "version": "5.25.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.25.1.tgz",
+ "integrity": "sha512-nGXts5znJzmWPu+mIE9izCOzdg63oJca2mDzGWWTth7sr4aCToKcoyFVBQwN75Ij5Pf6p510EwkTqViTRzDV+w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4280,9 +4270,9 @@
}
},
"node_modules/es-module-lexer": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.1.tgz",
- "integrity": "sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.2.tgz",
+ "integrity": "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==",
"dev": true,
"license": "MIT"
},
@@ -4318,20 +4308,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/eslint-scope": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
- "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^4.1.1"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
"node_modules/esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
@@ -4347,39 +4323,6 @@
"node": ">=4"
}
},
- "node_modules/esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/esrecurse/node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=4.0"
- }
- },
"node_modules/eta": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/eta/-/eta-3.5.0.tgz",
@@ -4567,9 +4510,9 @@
}
},
"node_modules/fast-uri": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.5.tgz",
- "integrity": "sha512-gHwA1O9LDIcKunMKhObS/HimwtehO1nPUECKAu5TpKgaO19fcWEl4bliWe1jWxVFvIXztJjjQ4L8XQ1EU9f7Jw==",
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.8.tgz",
+ "integrity": "sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg==",
"dev": true,
"funding": [
{
@@ -4584,9 +4527,9 @@
"license": "BSD-3-Clause"
},
"node_modules/fastq": {
- "version": "1.20.1",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz",
- "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==",
+ "version": "1.20.3",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.3.tgz",
+ "integrity": "sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -5349,9 +5292,9 @@
}
},
"node_modules/js-yaml": {
- "version": "3.15.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.1.tgz",
- "integrity": "sha512-S99WuO3HlhO3XN41EtYUNl9zzXjoJx7QvmipxsJVxtCBT0YHEFy+iOJhjSvrmV12nYhWpZaM8lPHkJm0yUMbag==",
+ "version": "3.15.2",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.2.tgz",
+ "integrity": "sha512-6EuL879VkRA+1Cz578mKMiKvjPNEuk6+r1JaFzoSWejZmtf7xWbIyw1e3KkxlkzTIt9Taw6JBhEppG7utc1P+w==",
"dev": true,
"license": "MIT",
"optional": true,
@@ -5729,9 +5672,9 @@
}
},
"node_modules/marked": {
- "version": "18.0.9",
- "resolved": "https://registry.npmjs.org/marked/-/marked-18.0.9.tgz",
- "integrity": "sha512-/Sa4qiiHZxf0/FQdBBowr9q4r10krCwMvpK48FUBdXdUXScDxiQGR9zCPrFgRVR5LU3iySOiIjy09ZQvADir1w==",
+ "version": "18.0.13",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-18.0.13.tgz",
+ "integrity": "sha512-xTxVzZsBFwunP6HDmtBkabUQEYArnP7/rMDGmPj9SlrKlQ4i8MdYVow+nJL0eOqwpUqhzBoTBRADGN6uYwPyOw==",
"license": "MIT",
"bin": {
"marked": "bin/marked.js"
@@ -5888,16 +5831,16 @@
}
},
"node_modules/minimizer-webpack-plugin": {
- "version": "5.6.1",
- "resolved": "https://registry.npmjs.org/minimizer-webpack-plugin/-/minimizer-webpack-plugin-5.6.1.tgz",
- "integrity": "sha512-DoeAZz8Q1C1znwsUzej1fdoi4jCf7/+Em27ouLqfK/+3m8G+D7yDhUwrc3CNhjSzGUN1kn7Iv4sWmjflQHenpw==",
+ "version": "5.10.1",
+ "resolved": "https://registry.npmjs.org/minimizer-webpack-plugin/-/minimizer-webpack-plugin-5.10.1.tgz",
+ "integrity": "sha512-+dsZEyTcy1lkq41lxdiOqvb26gXbYGgwY+30w37f9PqUVkuEBejBLDotsHOTjuga9xJyGLW2DqzKDUyJ4W/PMQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jridgewell/trace-mapping": "^0.3.25",
+ "@jridgewell/trace-mapping": "^0.3.31",
"jest-worker": "^27.4.5",
- "schema-utils": "^4.3.0",
- "terser": "^5.31.1"
+ "schema-utils": "^4.3.3",
+ "terser": "^5.51.0"
},
"engines": {
"node": ">= 10.13.0"
@@ -5913,6 +5856,9 @@
"@minify-html/node": {
"optional": true
},
+ "@napi-rs/image": {
+ "optional": true
+ },
"@swc/core": {
"optional": true
},
@@ -5937,12 +5883,21 @@
"html-minifier-terser": {
"optional": true
},
+ "imagemin": {
+ "optional": true
+ },
"lightningcss": {
"optional": true
},
"postcss": {
"optional": true
},
+ "sharp": {
+ "optional": true
+ },
+ "svgo": {
+ "optional": true
+ },
"uglify-js": {
"optional": true
}
@@ -6016,20 +5971,13 @@
}
},
"node_modules/nan": {
- "version": "2.28.0",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.28.0.tgz",
- "integrity": "sha512-fTsDz99OTq2sVePhGdp4qQhggZFtKr64ZNVyVajRKtMOkJxYekplBh577PiJB12v/D3s2E5cGtOI45LWp6rnLQ==",
+ "version": "2.29.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.29.0.tgz",
+ "integrity": "sha512-GlGk3HIvitbvs+LT3g6XUP1kpirKNvmDFwF/bmo6XNWSb/eYEs/O4bfgIEIXCZ+lIOTS5xNwDvSGMw6FJdAhtA==",
"dev": true,
"license": "MIT",
"optional": true
},
- "node_modules/neo-async": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/nice-try": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
@@ -6038,9 +5986,9 @@
"license": "MIT"
},
"node_modules/node-abi": {
- "version": "4.33.0",
- "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-4.33.0.tgz",
- "integrity": "sha512-vLBWCKb+7LWsX+TbfzWOkw0W81m377tyx3hOweBTjO43CXZnRGS1/JPWs20fr0PgZyDXk6ROYrylsEycK8raDA==",
+ "version": "4.35.0",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-4.35.0.tgz",
+ "integrity": "sha512-ymk4aIzxdPopw2giv8Fs1Ec6vybGkjmyxUwVqhkI4MCy2tVfXdkOGGWieWVjL0THgH+7a8lRdevyupoYj3Js/Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6133,9 +6081,9 @@
}
},
"node_modules/node-releases": {
- "version": "2.0.53",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.53.tgz",
- "integrity": "sha512-D9UOmYG3UH1V+ENW56t5QXBwJw1YEY18ruVeus89Rw+SyIgjPkCO84bRzO3uNIYosJbNwiabWVn48o3uJLjxFQ==",
+ "version": "2.0.55",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.55.tgz",
+ "integrity": "sha512-mIrE/Cw9y+9Au6dS5vDKDhQza9YvG6w+ZrS6X+ZzA7yFW/soAeaups4Qzn1bL6g5FVy8WtP79+0j82oPIbqRjQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6265,9 +6213,9 @@
}
},
"node_modules/oxlint": {
- "version": "1.78.0",
- "resolved": "https://registry.npmjs.org/oxlint/-/oxlint-1.78.0.tgz",
- "integrity": "sha512-QgQePuxIqKOzo1KSjG2EnITEeWvWnKAm77eq8nrMtf6AGoA+zyGc4PFYtDNJSD25g/ibOwfQ851hZ4/SPkMVoA==",
+ "version": "1.83.0",
+ "resolved": "https://registry.npmjs.org/oxlint/-/oxlint-1.83.0.tgz",
+ "integrity": "sha512-cyDzSzaw3uzP0TeCeq3lLRPPoaUxkbB4ZOXj+kn+5r+BX9V+4bNVGk9lxer+WrgcpebH4JxLlJ3KQjveVztOLQ==",
"dev": true,
"license": "MIT",
"bin": {
@@ -6277,28 +6225,28 @@
"node": "^20.19.0 || >=22.12.0"
},
"funding": {
- "url": "https://github.com/sponsors/Boshen"
+ "url": "https://github.com/sponsors/oxc-project"
},
"optionalDependencies": {
- "@oxlint/binding-android-arm-eabi": "1.78.0",
- "@oxlint/binding-android-arm64": "1.78.0",
- "@oxlint/binding-darwin-arm64": "1.78.0",
- "@oxlint/binding-darwin-x64": "1.78.0",
- "@oxlint/binding-freebsd-x64": "1.78.0",
- "@oxlint/binding-linux-arm-gnueabihf": "1.78.0",
- "@oxlint/binding-linux-arm-musleabihf": "1.78.0",
- "@oxlint/binding-linux-arm64-gnu": "1.78.0",
- "@oxlint/binding-linux-arm64-musl": "1.78.0",
- "@oxlint/binding-linux-ppc64-gnu": "1.78.0",
- "@oxlint/binding-linux-riscv64-gnu": "1.78.0",
- "@oxlint/binding-linux-riscv64-musl": "1.78.0",
- "@oxlint/binding-linux-s390x-gnu": "1.78.0",
- "@oxlint/binding-linux-x64-gnu": "1.78.0",
- "@oxlint/binding-linux-x64-musl": "1.78.0",
- "@oxlint/binding-openharmony-arm64": "1.78.0",
- "@oxlint/binding-win32-arm64-msvc": "1.78.0",
- "@oxlint/binding-win32-ia32-msvc": "1.78.0",
- "@oxlint/binding-win32-x64-msvc": "1.78.0"
+ "@oxlint/binding-android-arm-eabi": "1.83.0",
+ "@oxlint/binding-android-arm64": "1.83.0",
+ "@oxlint/binding-darwin-arm64": "1.83.0",
+ "@oxlint/binding-darwin-x64": "1.83.0",
+ "@oxlint/binding-freebsd-x64": "1.83.0",
+ "@oxlint/binding-linux-arm-gnueabihf": "1.83.0",
+ "@oxlint/binding-linux-arm-musleabihf": "1.83.0",
+ "@oxlint/binding-linux-arm64-gnu": "1.83.0",
+ "@oxlint/binding-linux-arm64-musl": "1.83.0",
+ "@oxlint/binding-linux-ppc64-gnu": "1.83.0",
+ "@oxlint/binding-linux-riscv64-gnu": "1.83.0",
+ "@oxlint/binding-linux-riscv64-musl": "1.83.0",
+ "@oxlint/binding-linux-s390x-gnu": "1.83.0",
+ "@oxlint/binding-linux-x64-gnu": "1.83.0",
+ "@oxlint/binding-linux-x64-musl": "1.83.0",
+ "@oxlint/binding-openharmony-arm64": "1.83.0",
+ "@oxlint/binding-win32-arm64-msvc": "1.83.0",
+ "@oxlint/binding-win32-ia32-msvc": "1.83.0",
+ "@oxlint/binding-win32-x64-msvc": "1.83.0"
},
"peerDependencies": {
"oxlint-tsgolint": ">=7.0.2001",
@@ -7057,15 +7005,15 @@
"license": "MIT"
},
"node_modules/schema-utils": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz",
- "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.5.0.tgz",
+ "integrity": "sha512-zJlMCZ0cAR5p/Y4oVpRoqioDMJcGxaXRrQ/4rP4WyR84vc5z/DolXdbvXeDpTwbtocDFr2rhPqHPErDCUtz2kA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.9.0",
- "ajv-formats": "^2.1.1",
+ "@types/json-schema": "^7.0.15",
+ "ajv": "^8.20.0",
+ "ajv-formats": "^3.0.1",
"ajv-keywords": "^5.1.0"
},
"engines": {
@@ -7456,9 +7404,9 @@
}
},
"node_modules/terser": {
- "version": "5.50.0",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.50.0.tgz",
- "integrity": "sha512-CN9BVxWhgS/hRxtUMjtC2uRWSTcSfQFHMDWma6sKKfIivCD91sM+FOPfvwoaRMqCSrUpe1nv3jDamd9eEQ4y+w==",
+ "version": "5.51.2",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.51.2.tgz",
+ "integrity": "sha512-bWnjSNscmuI+GJze6ZupnHP8G/cTcsJF+bXCeQknk2SHQsgbNJnLrqiH9jZ2W4STPVXH2mDKKRX3iwPhc9Cn/Q==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
@@ -7525,9 +7473,9 @@
}
},
"node_modules/tinyglobby/node_modules/picomatch": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz",
- "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==",
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz",
+ "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7699,9 +7647,9 @@
}
},
"node_modules/undici": {
- "version": "6.28.0",
- "resolved": "https://registry.npmjs.org/undici/-/undici-6.28.0.tgz",
- "integrity": "sha512-LIY910g9TI13YS95lrMFrs8Rm/u/irgHeTWoKCoteeJ04CUJ92eEfj0rVn+7VKMPBpUPiUoBKfhNyLI23EE/KA==",
+ "version": "6.28.1",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.28.1.tgz",
+ "integrity": "sha512-zWpdTVD54H48CIybL0rWQ3ukpb9d23wM7eH5RtfdmeP70cWHNjtfo7P4vZX+5CoDcO53J4Pu5uXp7lNfjc6DRA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7744,9 +7692,9 @@
}
},
"node_modules/update-browserslist-db": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.1.tgz",
- "integrity": "sha512-ZZ61DsRsOnakl74HAmp3oSN4aXUmEWXf+i/yv0h7tIBfICc3VdrFErQKUUKPgu3AMsTUMbcongALEN4l6GSUrQ==",
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.3.tgz",
+ "integrity": "sha512-pJ2sYawQS0R/WI928Gj5GlPhTGzbMelq0+4INtSYNDV9ErKJcX6xjGWkoG/VnB3dpUm00zALaqkrUD77pO5TDQ==",
"dev": true,
"funding": [
{
@@ -7820,9 +7768,9 @@
"license": "BSD-2-Clause"
},
"node_modules/webpack": {
- "version": "5.109.2",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.109.2.tgz",
- "integrity": "sha512-U9/cvLzxObKNEZ9+TtdqrHM5/9z3lgl2c+c4BzbqGxFQvQvBAq87yql5A8pQ+rrMbS496MZJeF5enVBndIy2hw==",
+ "version": "5.111.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.111.0.tgz",
+ "integrity": "sha512-A2R74kfE6b3eLKS91iZiol03Ebx7avmJJBOyiP+4LePW9NNeNJGQkKeSQos4dk6R4H0YAMYlv+aOrs1CyWT3eA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7831,18 +7779,15 @@
"@webassemblyjs/ast": "^1.14.1",
"@webassemblyjs/wasm-edit": "^1.14.1",
"@webassemblyjs/wasm-parser": "^1.14.1",
- "acorn": "^8.16.0",
"browserslist": "^4.28.1",
"chrome-trace-event": "^1.0.2",
- "enhanced-resolve": "^5.24.4",
+ "enhanced-resolve": "^5.25.0",
"es-module-lexer": "^2.1.0",
- "eslint-scope": "5.1.1",
"events": "^3.2.0",
"graceful-fs": "^4.2.11",
"mime-db": "^1.54.0",
- "minimizer-webpack-plugin": "^5.6.1",
- "neo-async": "^2.6.2",
- "schema-utils": "^4.3.3",
+ "minimizer-webpack-plugin": "^5.7.0",
+ "schema-utils": "^4.5.0",
"tapable": "^2.3.0",
"watchpack": "^2.5.2",
"webpack-sources": "^3.5.1"
diff --git a/package.json b/package.json
index abf36e04..5285af3b 100644
--- a/package.json
+++ b/package.json
@@ -48,11 +48,11 @@
"@electron/fuses": "^1.5.0",
"@reforged/maker-appimage": "^5.0.0",
"@tsconfig/strictest": "^2.0.0",
- "@types/node": "^20.16.1",
+ "@types/node": "^22.20.3",
"@types/semver": "^7.3.9",
"@types/source-map-support": "^0.5.4",
"@types/ws": "^8.5.1",
- "electron": ">=43.1.0 < 43.3.0",
+ "electron": "^44.3.0",
"oxlint": "^1.73.0",
"oxlint-tsgolint": "^7.0.2001",
"typescript": "^7.0.2"
@@ -60,7 +60,7 @@
"dependencies": {
"@spacingbat3/disconnection": "^1.0.3",
"@spacingbat3/kolor": "^4.0.0",
- "deepmerge-ts": "^7.0.3",
+ "deepmerge-ts": "^8.0.2",
"dompurify": "^3.0.1",
"marked": "^18.0.2",
"marked-alert": "^2.1.2",
diff --git a/sources/code/common/main.ts b/sources/code/common/main.ts
index 2e499d0e..3781fb2a 100644
--- a/sources/code/common/main.ts
+++ b/sources/code/common/main.ts
@@ -17,8 +17,8 @@ install();
import crash, {commonCatches} from "../main/modules/error";
crash();
-import { app, BrowserWindow, dialog, session, screen } from "electron/main";
-import { clipboard, shell } from "electron/common";
+import { app, BrowserWindow, dialog, session, screen, clipboard } from "electron/main";
+import { shell } from "electron/common";
import { promises as fs } from "fs";
import { protocols, knownInstancesList, wordWrap } from "./global";
import { checkVersion } from "../main/modules/update";
@@ -465,7 +465,7 @@ app.on("web-contents-created", (_, webContents) => {
else
result = dialog.showMessageBoxSync(options);
if (result === 1)
- clipboard.writeText(details.url);
+ void clipboard.writeText(details.url);
if (result < (options.buttons?.length??0)-1)
return { action: "deny" };
}
diff --git a/sources/code/main/modules/menu.ts b/sources/code/main/modules/menu.ts
index 69ed4e44..d456b51d 100644
--- a/sources/code/main/modules/menu.ts
+++ b/sources/code/main/modules/menu.ts
@@ -1,8 +1,8 @@
/*
* menus – OS native menus (tray menu, context menu, menu bar etc.)
*/
-import { app, Menu, Tray } from "electron/main";
-import { shell, clipboard } from "electron/common";
+import { app, Menu, Tray, clipboard } from "electron/main";
+import { shell } from "electron/common";
import {
getBuildInfo,
@@ -59,14 +59,10 @@ export function context(parent: Electron.BrowserWindow): void {
{ type: "separator" }
] satisfies Electron.MenuItemConstructorOptions[] : []),
// Copy / Cut / Delete
- ...(params.editFlags.canCopy || params.editFlags.canCut || params.editFlags.canDelete ? [
+ ...(params.editFlags.canCopy || params.editFlags.canCut || params.editFlags.canPaste ? [
{ label: menu.cut, role: "cut", enabled: params.editFlags.canCut },
{ label: menu.copy, role: "copy", enabled: params.editFlags.canCopy },
- {
- label: menu.paste,
- enabled: clipboard.availableFormats().length !== 0 && params.editFlags.canPaste,
- role: "paste"
- },
+ { label: menu.paste, role: "paste", enabled: params.editFlags.canPaste },
{ type: "separator" }
] satisfies Electron.MenuItemConstructorOptions[] : []),
// Copy link text / copy link url
diff --git a/sources/code/renderer/preload/main.ts b/sources/code/renderer/preload/main.ts
index 966f00f4..b0d85c28 100644
--- a/sources/code/renderer/preload/main.ts
+++ b/sources/code/renderer/preload/main.ts
@@ -1,5 +1,4 @@
import { contextBridge, ipcRenderer as ipc } from "electron/renderer";
-import { clipboard } from "electron/common";
import { generateSafeKey, navigate } from "../modules/api";
import { wLog } from "../../common/global";
import { appInfo } from "../../common/modules/client";
@@ -34,32 +33,6 @@ if (window.location.protocol === "file:") {
*/
window.addEventListener("load", () => window.localStorage.setItem("hideNag", "true"));
- /*
- * Workaround for clipboard content.
- */
- {
- let lock = true;
- document.addEventListener("paste", (event) => {
- const contentTypes = clipboard.availableFormats();
- if(contentTypes.length === 2 && contentTypes[0]?.startsWith("image/") &&
- contentTypes[1] === "text/html" && lock) {
- console.debug("[WebCord] Applying clipboard workaround to the image…");
- lock = false;
- // Electron will somehow sort the clipboard to parse it correctly.
- clipboard.write({
- image: clipboard.readImage(),
- html: clipboard.readHTML()
- });
- // Retry event, cancel other events.
- event.stopImmediatePropagation();
- ipc.send("paste-workaround", contextBridgeApiKey);
- return;
- }
- lock = true;
- return;
- }, true);
- }
-
/*
* Handle WebSocket Server IPC communication
*/