diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 598820ebcb23..54b87d3ef117 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -26,6 +26,7 @@ pnpm-lock.yaml @discordjs/core
/packages/proxy/ @discordjs/proxy
/packages/proxy-container/ @discordjs/proxy
/packages/rest/ @discordjs/rest
+/packages/rpc/ @discordjs/rpc
/packages/scripts/ @discordjs/scripts
/packages/structures/ @discordjs/structures
/packages/ui/ @discordjs/ui
diff --git a/.github/ISSUE_TEMPLATE/01-package_bug_report.yml b/.github/ISSUE_TEMPLATE/01-package_bug_report.yml
index 085586ef17fd..8640961587e3 100644
--- a/.github/ISSUE_TEMPLATE/01-package_bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/01-package_bug_report.yml
@@ -24,6 +24,7 @@ body:
- proxy
- proxy-container
- rest
+ - rpc
- structures
- ui
- util
diff --git a/.github/ISSUE_TEMPLATE/03-feature_request.yml b/.github/ISSUE_TEMPLATE/03-feature_request.yml
index d6ffc4074333..718170ee0026 100644
--- a/.github/ISSUE_TEMPLATE/03-feature_request.yml
+++ b/.github/ISSUE_TEMPLATE/03-feature_request.yml
@@ -26,6 +26,7 @@ body:
- proxy
- proxy-container
- rest
+ - rpc
- structures
- ui
- util
diff --git a/.github/issue-labeler.yml b/.github/issue-labeler.yml
index 3e6a8c38477c..01c918db97de 100644
--- a/.github/issue-labeler.yml
+++ b/.github/issue-labeler.yml
@@ -37,6 +37,9 @@ packages:proxy-container:
packages:rest:
- "### Which (application|package|application or package) is this (bug
report|feature request) for\\?\\n\\nrest\\n"
+packages:rpc:
+ - "### Which (application|package|application or package) is this (bug
+ report|feature request) for\\?\\n\\nrpc\\n"
packages:structures:
- "### Which (application|package|application or package) is this (bug
report|feature request) for\\?\\n\\nstructures\\n"
diff --git a/.github/labeler.yml b/.github/labeler.yml
index d4214ce85103..c17610ecdd4e 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -78,6 +78,11 @@ packages:rest:
- any-glob-to-any-file:
- packages/rest/*
- packages/rest/**/*
+packages:rpc:
+ - changed-files:
+ - any-glob-to-any-file:
+ - packages/rpc/*
+ - packages/rpc/**/*
packages:structures:
- changed-files:
- any-glob-to-any-file:
diff --git a/.github/labels.yml b/.github/labels.yml
index 62ecd2f4ef45..8fd8036b1db1 100644
--- a/.github/labels.yml
+++ b/.github/labels.yml
@@ -80,6 +80,8 @@
color: fbca04
- name: packages:rest
color: fbca04
+- name: packages:rpc
+ color: fbca04
- name: packages:structures
color: fbca04
- name: packages:ui
diff --git a/.github/workflows/deprecate-version.yml b/.github/workflows/deprecate-version.yml
index 7ae3340f356a..ef6125d8e3ae 100644
--- a/.github/workflows/deprecate-version.yml
+++ b/.github/workflows/deprecate-version.yml
@@ -17,6 +17,7 @@ on:
- '@discordjs/next'
- '@discordjs/proxy'
- '@discordjs/rest'
+ - '@discordjs/rpc'
- '@discordjs/structures'
- '@discordjs/util'
- '@discordjs/voice'
diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml
index d112993a2c2a..e0dcd705802f 100644
--- a/.github/workflows/documentation.yml
+++ b/.github/workflows/documentation.yml
@@ -86,7 +86,7 @@ jobs:
- name: Build docs with main api-extractor
if: ${{ inputs.ref && inputs.ref != 'main' }}
run: |
- declare -a PACKAGES=("brokers" "builders" "collection" "core" "discord.js" "formatters" "next" "proxy" "rest" "structures" "util" "voice" "ws")
+ declare -a PACKAGES=("brokers" "builders" "collection" "core" "discord.js" "formatters" "next" "proxy" "rest" "rpc" "structures" "util" "voice" "ws")
for PACKAGE in "${PACKAGES[@]}"; do
cd "packages/${PACKAGE}"
sed -i 's!https://github.com/discordjs/discord.js/tree/main!https://github.com/discordjs/discord.js/tree/${{ inputs.ref }}!' api-extractor.json
@@ -219,7 +219,7 @@ jobs:
- name: Move docs to correct directory
if: ${{ env.REF_TYPE == 'branch' }}
run: |
- declare -a PACKAGES=("brokers" "builders" "collection" "core" "discord.js" "formatters" "next" "proxy" "rest" "structures" "util" "voice" "ws")
+ declare -a PACKAGES=("brokers" "builders" "collection" "core" "discord.js" "formatters" "next" "proxy" "rest" "rpc" "structures" "util" "voice" "ws")
for PACKAGE in "${PACKAGES[@]}"; do
if [[ "${PACKAGE}" == "discord.js" ]]; then
mkdir -p "out/${PACKAGE}"
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 57b3d69cbe62..f678beef5195 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -23,6 +23,7 @@ on:
- '@discordjs/next'
- '@discordjs/proxy'
- '@discordjs/rest'
+ - '@discordjs/rpc'
- '@discordjs/structures'
- '@discordjs/util'
- '@discordjs/voice'
diff --git a/README.md b/README.md
index be212d205de2..3b0657a26b54 100644
--- a/README.md
+++ b/README.md
@@ -33,6 +33,7 @@ This repository contains multiple packages with separate [releases][github-relea
- `@discordjs/formatters` ([source][formatters-source]) - A collection of functions for formatting strings
- `@discordjs/proxy` ([source][proxy-source]) - A wrapper around `@discordjs/rest` for running an HTTP proxy
- `@discordjs/rest` ([source][rest-source]) - A module for interacting with the Discord REST API
+- `@discordjs/rpc` ([source][rpc-source]) - A simple RPC client for Discord
- `@discordjs/structures` ([source][structures-source]) - A wrapper around Discord's structures
- `@discordjs/voice` ([source][voice-source]) - A module for interacting with the Discord Voice API
- `@discordjs/util` ([source][util-source]) - A collection of utility functions
@@ -50,10 +51,6 @@ This repository contains multiple packages with separate [releases][github-relea
- [npm][npm]
- [Related libraries][related-libs]
-### Extensions
-
-- [RPC][rpc] ([source][rpc-source])
-
## Contributing
Please read through our [contribution guidelines][contributing] before starting a pull request. We welcome contributions of all kinds, not just code! If you're stuck for ideas, look for the [good first issue][good-first-issue] label on issues in the repository. If you have any questions about the project, feel free to ask them on [Discord][discord]. Before creating your own issue or pull request, always check to see if one already exists! Don't rush contributions, take your time and ensure you're doing it correctly.
@@ -73,8 +70,6 @@ If you don't understand something in the documentation, you are experiencing pro
[source]: https://github.com/discordjs/discord.js/tree/main/packages/discord.js
[npm]: https://www.npmjs.com/package/discord.js
[related-libs]: https://discord.com/developers/docs/topics/community-resources#libraries
-[rpc]: https://www.npmjs.com/package/discord-rpc
-[rpc-source]: https://github.com/discordjs/RPC
[contributing]: https://github.com/discordjs/discord.js/blob/main/.github/CONTRIBUTING.md
[github-releases]: https://github.com/discordjs/discord.js/releases
[brokers-source]: https://github.com/discordjs/discord.js/tree/main/packages/brokers
@@ -84,6 +79,7 @@ If you don't understand something in the documentation, you are experiencing pro
[formatters-source]: https://github.com/discordjs/discord.js/tree/main/packages/formatters
[proxy-source]: https://github.com/discordjs/discord.js/tree/main/packages/proxy
[rest-source]: https://github.com/discordjs/discord.js/tree/main/packages/rest
+[rpc-source]: https://github.com/discordjs/discord.js/tree/main/packages/rpc
[structures-source]: https://github.com/discordjs/discord.js/tree/main/packages/structures
[voice-source]: https://github.com/discordjs/discord.js/tree/main/packages/voice
[util-source]: https://github.com/discordjs/discord.js/tree/main/packages/util
diff --git a/apps/website/package.json b/apps/website/package.json
index f2de8a60036d..6f3a2edf2bb1 100644
--- a/apps/website/package.json
+++ b/apps/website/package.json
@@ -5,7 +5,7 @@
"description": "Imagine a bot... the most popular way to build discord bots",
"private": true,
"scripts": {
- "build:copy_readme": "cpy \"../../packages/(discord.js|brokers|builders|collection|core|formatters|next|proxy|rest|structures|util|voice|ws)/README.md\" \"src/assets/readme\" --rename='home-{{basename}}'",
+ "build:copy_readme": "cpy \"../../packages/(discord.js|brokers|builders|collection|core|formatters|next|proxy|rest|rpc|structures|util|voice|ws)/README.md\" \"src/assets/readme\" --rename='home-{{basename}}'",
"build:check": "tsc --noEmit",
"build:local": "cross-env NEXT_PUBLIC_LOCAL_DEV=true pnpm run build:prod",
"build:prod": "pnpm run build:copy_readme && pnpm run build:next",
diff --git a/apps/website/src/util/constants.ts b/apps/website/src/util/constants.ts
index 36619c05ed5a..dad9970dd391 100644
--- a/apps/website/src/util/constants.ts
+++ b/apps/website/src/util/constants.ts
@@ -9,6 +9,7 @@ export const PACKAGES = [
{ name: 'next' },
{ name: 'proxy' },
{ name: 'rest' },
+ { name: 'rpc' },
{ name: 'structures' },
{ name: 'util' },
{ name: 'voice' },
diff --git a/packages/actions/src/uploadCoverage/action.yml b/packages/actions/src/uploadCoverage/action.yml
index 1434d8fc938a..41c80ca23b6a 100644
--- a/packages/actions/src/uploadCoverage/action.yml
+++ b/packages/actions/src/uploadCoverage/action.yml
@@ -88,6 +88,15 @@ runs:
flags: rest
token: ${{ inputs.CODECOV_TOKEN }}
+ - name: Upload RPC Coverage
+ if: ${{ hashFiles('packages/rpc/coverage/cobertura-coverage.xml') != '' }}
+ uses: codecov/codecov-action@v4
+ with:
+ files: ./packages/rpc/coverage/cobertura-coverage.xml
+ disable_search: true
+ flags: rpc
+ token: ${{ inputs.CODECOV_TOKEN }}
+
- name: Upload Structures Coverage
if: ${{ hashFiles('packages/structures/coverage/cobertura-coverage.xml') != '' }}
uses: codecov/codecov-action@v4
diff --git a/packages/discord.js/README.md b/packages/discord.js/README.md
index 99967a4f31fa..841d25e54209 100644
--- a/packages/discord.js/README.md
+++ b/packages/discord.js/README.md
@@ -142,6 +142,6 @@ If you don't understand something in the documentation, you are experiencing pro
[source]: https://github.com/discordjs/discord.js/tree/main/packages/discord.js
[npm]: https://www.npmjs.com/package/discord.js
[related-libs]: https://discord.com/developers/docs/topics/community-resources#libraries
-[rpc]: https://www.npmjs.com/package/discord-rpc
-[rpc-source]: https://github.com/discordjs/RPC
+[rpc]: https://www.npmjs.com/package/@discordjs/rpc
+[rpc-source]: https://github.com/discordjs/discord.js/tree/main/packages/rpc
[contributing]: https://github.com/discordjs/discord.js/blob/main/.github/CONTRIBUTING.md
diff --git a/packages/rpc/.cliff-jumperrc.json b/packages/rpc/.cliff-jumperrc.json
new file mode 100644
index 000000000000..6029a27d2762
--- /dev/null
+++ b/packages/rpc/.cliff-jumperrc.json
@@ -0,0 +1,6 @@
+{
+ "name": "rpc",
+ "org": "discordjs",
+ "packagePath": "packages/rpc",
+ "identifierBase": false
+}
diff --git a/packages/rpc/.gitignore b/packages/rpc/.gitignore
new file mode 100644
index 000000000000..90500960f32b
--- /dev/null
+++ b/packages/rpc/.gitignore
@@ -0,0 +1,28 @@
+# Packages
+node_modules
+
+# Log files
+logs
+*.log
+npm-debug.log*
+
+# Runtime data
+pids
+*.pid
+*.seed
+
+# Env
+.env
+
+# Dist
+dist
+dist-docs
+
+# Docs
+docs/**/*
+!docs/README.md
+
+# Miscellaneous
+.turbo
+.tmp
+coverage
diff --git a/packages/rpc/.lintstagedrc.js b/packages/rpc/.lintstagedrc.js
new file mode 100644
index 000000000000..c46f610c8b77
--- /dev/null
+++ b/packages/rpc/.lintstagedrc.js
@@ -0,0 +1,2 @@
+/** @type {import('lint-staged').Config} */
+module.exports = require('../../.lintstagedrc.json');
diff --git a/packages/rpc/.prettierignore b/packages/rpc/.prettierignore
new file mode 100644
index 000000000000..9aef7953ddf8
--- /dev/null
+++ b/packages/rpc/.prettierignore
@@ -0,0 +1,7 @@
+.turbo
+coverage
+dist
+dist-docs
+docs/docs.api.json
+CHANGELOG.md
+tsup.config.bundled*
diff --git a/packages/rpc/.prettierrc.js b/packages/rpc/.prettierrc.js
new file mode 100644
index 000000000000..f723230a05d4
--- /dev/null
+++ b/packages/rpc/.prettierrc.js
@@ -0,0 +1,2 @@
+/** @type {import('prettier').Config} */
+module.exports = require('../../.prettierrc.json');
diff --git a/packages/rpc/LICENSE b/packages/rpc/LICENSE
new file mode 100644
index 000000000000..fedc9bc83693
--- /dev/null
+++ b/packages/rpc/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2022 devsnek
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/packages/rpc/api-extractor.json b/packages/rpc/api-extractor.json
new file mode 100644
index 000000000000..18804ce44fea
--- /dev/null
+++ b/packages/rpc/api-extractor.json
@@ -0,0 +1,6 @@
+{
+ "extends": "../../api-extractor.json",
+ "docModel": {
+ "projectFolderUrl": "https://github.com/discordjs/discord.js/tree/main/packages/rpc"
+ }
+}
diff --git a/packages/rpc/cliff.toml b/packages/rpc/cliff.toml
new file mode 100644
index 000000000000..540b67f7c46e
--- /dev/null
+++ b/packages/rpc/cliff.toml
@@ -0,0 +1,79 @@
+[changelog]
+header = """
+# Changelog
+
+All notable changes to this project will be documented in this file.\n
+"""
+body = """
+{%- macro remote_url() -%}
+ https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}
+{%- endmacro -%}
+{% if version %}\
+ # [{{ version | trim_start_matches(pat="v") }}]\
+ {% if previous %}\
+ {% if previous.version %}\
+ ({{ self::remote_url() }}/compare/{{ previous.version }}...{{ version }})\
+ {% else %}\
+ ({{ self::remote_url() }}/tree/{{ version }})\
+ {% endif %}\
+ {% endif %} \
+ - ({{ timestamp | date(format="%Y-%m-%d") }})
+{% else %}\
+ # [unreleased]
+{% endif %}\
+{% for group, commits in commits | group_by(attribute="group") %}
+ ## {{ group | upper_first }}
+ {% for commit in commits %}
+ - {% if commit.scope %}\
+ **{{commit.scope}}:** \
+ {% endif %}\
+ {{ commit.message | upper_first }} ([{{ commit.id | truncate(length=7, end="") }}]({{ self::remote_url() }}/commit/{{ commit.id }}))\
+ {% if commit.github.username %} by @{{ commit.github.username }}{%- endif %}\
+ {% if commit.breaking %}\
+ {% for footer in commit.footers %}\
+ {% if footer.breaking %}\
+ \n{% raw %} {% endraw %}- **{{ footer.token }}{{ footer.separator }}** {{ footer.value }}\
+ {% endif %}\
+ {% endfor %}\
+ {% endif %}\
+ {% endfor %}
+{% endfor %}\
+{% if github.contributors | filter(attribute="is_first_time", value=true) | length %}\
+ \n### New Contributors\n
+ {% for contributor in github.contributors | filter(attribute="is_first_time", value=true) %}\
+ * @{{ contributor.username }} made their first contribution in #{{ contributor.pr_number }}
+ {% endfor %}\
+{% endif %}\n
+"""
+trim = true
+footer = ""
+
+[git]
+conventional_commits = true
+filter_unconventional = true
+commit_parsers = [
+ { message = "^feat", group = "Features"},
+ { message = "^fix", group = "Bug Fixes"},
+ { message = "^docs", group = "Documentation"},
+ { message = "^perf", group = "Performance"},
+ { message = "^refactor", group = "Refactor"},
+ { message = "^types", group = "Typings"},
+ { message = ".*deprecated", body = ".*deprecated", group = "Deprecation"},
+ { message = "^revert", skip = true},
+ { message = "^style", group = "Styling"},
+ { message = "^test", group = "Testing"},
+ { message = "^chore", skip = true},
+ { message = "^ci", skip = true},
+ { message = "^build", skip = true},
+ { body = ".*security", group = "Security"},
+]
+filter_commits = true
+protect_breaking_commits = true
+tag_pattern = "@discordjs/rpc@[0-9]*"
+ignore_tags = ""
+topo_order = false
+sort_commits = "newest"
+
+[remote.github]
+owner = "discordjs"
+repo = "discord.js"
diff --git a/packages/rpc/docs/README.md b/packages/rpc/docs/README.md
new file mode 100644
index 000000000000..497ed75ded4c
--- /dev/null
+++ b/packages/rpc/docs/README.md
@@ -0,0 +1 @@
+## [View the documentation here.](https://discord.js.org/docs/packages/rpc/main)
diff --git a/packages/rpc/examples/boops-javascript/.editorconfig b/packages/rpc/examples/boops-javascript/.editorconfig
new file mode 100644
index 000000000000..9d08a1a828a3
--- /dev/null
+++ b/packages/rpc/examples/boops-javascript/.editorconfig
@@ -0,0 +1,9 @@
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
diff --git a/packages/rpc/examples/boops-javascript/.eslintignore b/packages/rpc/examples/boops-javascript/.eslintignore
new file mode 100644
index 000000000000..a6f34fea7618
--- /dev/null
+++ b/packages/rpc/examples/boops-javascript/.eslintignore
@@ -0,0 +1,4 @@
+node_modules
+dist
+out
+.gitignore
diff --git a/packages/rpc/examples/boops-javascript/.eslintrc.cjs b/packages/rpc/examples/boops-javascript/.eslintrc.cjs
new file mode 100644
index 000000000000..d1e1ab62cd0b
--- /dev/null
+++ b/packages/rpc/examples/boops-javascript/.eslintrc.cjs
@@ -0,0 +1,3 @@
+module.exports = {
+ extends: ['eslint:recommended', '@electron-toolkit', '@electron-toolkit/eslint-config-prettier']
+}
diff --git a/packages/rpc/examples/boops-javascript/.gitignore b/packages/rpc/examples/boops-javascript/.gitignore
new file mode 100644
index 000000000000..42bd71b39aa9
--- /dev/null
+++ b/packages/rpc/examples/boops-javascript/.gitignore
@@ -0,0 +1,5 @@
+node_modules
+dist
+out
+.DS_Store
+*.log*
diff --git a/packages/rpc/examples/boops-javascript/.npmrc b/packages/rpc/examples/boops-javascript/.npmrc
new file mode 100644
index 000000000000..bf2e7648b076
--- /dev/null
+++ b/packages/rpc/examples/boops-javascript/.npmrc
@@ -0,0 +1 @@
+shamefully-hoist=true
diff --git a/packages/rpc/examples/boops-javascript/.prettierignore b/packages/rpc/examples/boops-javascript/.prettierignore
new file mode 100644
index 000000000000..9c6b791d5344
--- /dev/null
+++ b/packages/rpc/examples/boops-javascript/.prettierignore
@@ -0,0 +1,6 @@
+out
+dist
+pnpm-lock.yaml
+LICENSE.md
+tsconfig.json
+tsconfig.*.json
diff --git a/packages/rpc/examples/boops-javascript/.prettierrc.yaml b/packages/rpc/examples/boops-javascript/.prettierrc.yaml
new file mode 100644
index 000000000000..35893b3be337
--- /dev/null
+++ b/packages/rpc/examples/boops-javascript/.prettierrc.yaml
@@ -0,0 +1,4 @@
+singleQuote: true
+semi: false
+printWidth: 100
+trailingComma: none
diff --git a/packages/rpc/examples/boops-javascript/README.md b/packages/rpc/examples/boops-javascript/README.md
new file mode 100644
index 000000000000..598ae8b54c2d
--- /dev/null
+++ b/packages/rpc/examples/boops-javascript/README.md
@@ -0,0 +1,34 @@
+# boops-javascript
+
+A minimal Electron application using @discordjs/rpc with JavaScript.
+
+## Recommended IDE Setup
+
+- [VSCode](https://code.visualstudio.com/) + [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) + [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)
+
+## Project Setup
+
+### Install
+
+```bash
+$ pnpm install
+```
+
+### Development
+
+```bash
+$ pnpm dev
+```
+
+### Build
+
+```bash
+# For windows
+$ pnpm build:win
+
+# For macOS
+$ pnpm build:mac
+
+# For Linux
+$ pnpm build:linux
+```
diff --git a/packages/rpc/examples/boops-javascript/electron-builder.yml b/packages/rpc/examples/boops-javascript/electron-builder.yml
new file mode 100644
index 000000000000..35f10ee11288
--- /dev/null
+++ b/packages/rpc/examples/boops-javascript/electron-builder.yml
@@ -0,0 +1,42 @@
+appId: com.electron.app
+productName: boops-javascript
+directories:
+ buildResources: build
+files:
+ - '!**/.vscode/*'
+ - '!src/*'
+ - '!electron.vite.config.{js,ts,mjs,cjs}'
+ - '!{.eslintignore,.eslintrc.cjs,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}'
+ - '!{.env,.env.*,.npmrc,pnpm-lock.yaml}'
+asarUnpack:
+ - resources/**
+win:
+ executableName: boops-javascript
+nsis:
+ artifactName: ${name}-${version}-setup.${ext}
+ shortcutName: ${productName}
+ uninstallDisplayName: ${productName}
+ createDesktopShortcut: always
+mac:
+ entitlementsInherit: build/entitlements.mac.plist
+ extendInfo:
+ - NSCameraUsageDescription: Application requests access to the device's camera.
+ - NSMicrophoneUsageDescription: Application requests access to the device's microphone.
+ - NSDocumentsFolderUsageDescription: Application requests access to the user's Documents folder.
+ - NSDownloadsFolderUsageDescription: Application requests access to the user's Downloads folder.
+ notarize: false
+dmg:
+ artifactName: ${name}-${version}.${ext}
+linux:
+ target:
+ - AppImage
+ - snap
+ - deb
+ maintainer: electronjs.org
+ category: Utility
+appImage:
+ artifactName: ${name}-${version}.${ext}
+npmRebuild: false
+publish:
+ provider: generic
+ url: https://example.com/auto-updates
diff --git a/packages/rpc/examples/boops-javascript/electron.vite.config.mjs b/packages/rpc/examples/boops-javascript/electron.vite.config.mjs
new file mode 100644
index 000000000000..3acc2e8e0ed9
--- /dev/null
+++ b/packages/rpc/examples/boops-javascript/electron.vite.config.mjs
@@ -0,0 +1,11 @@
+import { defineConfig, externalizeDepsPlugin } from 'electron-vite'
+
+export default defineConfig({
+ main: {
+ plugins: [externalizeDepsPlugin()]
+ },
+ preload: {
+ plugins: [externalizeDepsPlugin()]
+ },
+ renderer: {}
+})
diff --git a/packages/rpc/examples/boops-javascript/package.json b/packages/rpc/examples/boops-javascript/package.json
new file mode 100644
index 000000000000..dd425d350972
--- /dev/null
+++ b/packages/rpc/examples/boops-javascript/package.json
@@ -0,0 +1,32 @@
+{
+ "name": "boops-javascript",
+ "version": "1.0.0",
+ "description": "A minimal Electron application using @discordjs/rpc with JavaScript",
+ "main": "./out/main/index.js",
+ "scripts": {
+ "format": "prettier --write .",
+ "lint": "eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix",
+ "start": "electron-vite preview",
+ "dev": "electron-vite dev",
+ "build": "electron-vite build",
+ "postinstall": "electron-builder install-app-deps",
+ "build:unpack": "npm run build && electron-builder --dir",
+ "build:win": "npm run build && electron-builder --win",
+ "build:mac": "npm run build && electron-builder --mac",
+ "build:linux": "npm run build && electron-builder --linux"
+ },
+ "dependencies": {
+ "@electron-toolkit/preload": "^3.0.1",
+ "@electron-toolkit/utils": "^3.0.0"
+ },
+ "devDependencies": {
+ "@electron-toolkit/eslint-config": "^1.0.2",
+ "@electron-toolkit/eslint-config-prettier": "^2.0.0",
+ "electron": "^31.0.2",
+ "electron-builder": "^24.13.3",
+ "electron-vite": "^2.3.0",
+ "eslint": "^8.57.0",
+ "prettier": "^3.3.2",
+ "vite": "^5.3.1"
+ }
+}
diff --git a/packages/rpc/examples/boops-javascript/pnpm-lock.yaml b/packages/rpc/examples/boops-javascript/pnpm-lock.yaml
new file mode 100644
index 000000000000..30b3da4239ee
--- /dev/null
+++ b/packages/rpc/examples/boops-javascript/pnpm-lock.yaml
@@ -0,0 +1,4948 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+ .:
+ dependencies:
+ '@electron-toolkit/preload':
+ specifier: ^3.0.1
+ version: 3.0.1(electron@31.7.7)
+ '@electron-toolkit/utils':
+ specifier: ^3.0.0
+ version: 3.0.0(electron@31.7.7)
+ devDependencies:
+ '@electron-toolkit/eslint-config':
+ specifier: ^1.0.2
+ version: 1.0.2(eslint@8.57.1)
+ '@electron-toolkit/eslint-config-prettier':
+ specifier: ^2.0.0
+ version: 2.0.0(eslint@8.57.1)(prettier@3.5.0)
+ electron:
+ specifier: ^31.0.2
+ version: 31.7.7
+ electron-builder:
+ specifier: ^24.13.3
+ version: 24.13.3(electron-builder-squirrel-windows@24.13.3)
+ electron-vite:
+ specifier: ^2.3.0
+ version: 2.3.0(vite@5.4.14(@types/node@22.13.1))
+ eslint:
+ specifier: ^8.57.0
+ version: 8.57.1
+ prettier:
+ specifier: ^3.3.2
+ version: 3.5.0
+ vite:
+ specifier: ^5.3.1
+ version: 5.4.14(@types/node@22.13.1)
+
+packages:
+ 7zip-bin@5.2.0:
+ resolution:
+ {
+ integrity: sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==
+ }
+
+ '@ampproject/remapping@2.3.0':
+ resolution:
+ {
+ integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==
+ }
+ engines: { node: '>=6.0.0' }
+
+ '@babel/code-frame@7.26.2':
+ resolution:
+ {
+ integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/compat-data@7.26.8':
+ resolution:
+ {
+ integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/core@7.26.8':
+ resolution:
+ {
+ integrity: sha512-l+lkXCHS6tQEc5oUpK28xBOZ6+HwaH7YwoYQbLFiYb4nS2/l1tKnZEtEWkD0GuiYdvArf9qBS0XlQGXzPMsNqQ==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/generator@7.26.8':
+ resolution:
+ {
+ integrity: sha512-ef383X5++iZHWAXX0SXQR6ZyQhw/0KtTkrTz61WXRhFM6dhpHulO/RJz79L8S6ugZHJkOOkUrUdxgdF2YiPFnA==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helper-compilation-targets@7.26.5':
+ resolution:
+ {
+ integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helper-module-imports@7.25.9':
+ resolution:
+ {
+ integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helper-module-transforms@7.26.0':
+ resolution:
+ {
+ integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==
+ }
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-plugin-utils@7.26.5':
+ resolution:
+ {
+ integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helper-string-parser@7.25.9':
+ resolution:
+ {
+ integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helper-validator-identifier@7.25.9':
+ resolution:
+ {
+ integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helper-validator-option@7.25.9':
+ resolution:
+ {
+ integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helpers@7.26.7':
+ resolution:
+ {
+ integrity: sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/parser@7.26.8':
+ resolution:
+ {
+ integrity: sha512-TZIQ25pkSoaKEYYaHbbxkfL36GNsQ6iFiBbeuzAkLnXayKR1yP1zFe+NxuZWWsUyvt8icPU9CCq0sgWGXR1GEw==
+ }
+ engines: { node: '>=6.0.0' }
+ hasBin: true
+
+ '@babel/plugin-transform-arrow-functions@7.25.9':
+ resolution:
+ {
+ integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==
+ }
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/template@7.26.8':
+ resolution:
+ {
+ integrity: sha512-iNKaX3ZebKIsCvJ+0jd6embf+Aulaa3vNBqZ41kM7iTWjx5qzWKXGHiJUW3+nTpQ18SG11hdF8OAzKrpXkb96Q==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/traverse@7.26.8':
+ resolution:
+ {
+ integrity: sha512-nic9tRkjYH0oB2dzr/JoGIm+4Q6SuYeLEiIiZDwBscRMYFJ+tMAz98fuel9ZnbXViA2I0HVSSRRK8DW5fjXStA==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/types@7.26.8':
+ resolution:
+ {
+ integrity: sha512-eUuWapzEGWFEpHFxgEaBG8e3n6S8L3MSu0oda755rOfabWPnh0Our1AozNFVUxGFIhbKgd1ksprsoDGMinTOTA==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@develar/schema-utils@2.6.5':
+ resolution:
+ {
+ integrity: sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==
+ }
+ engines: { node: '>= 8.9.0' }
+
+ '@electron-toolkit/eslint-config-prettier@2.0.0':
+ resolution:
+ {
+ integrity: sha512-L+uG1FvJcAZkPZpSi6B1pmdpyJFyOxWDTjr1Vs47vSryxv/EX1Ch6o4HVsachlDq3fMEkDgojuP2F3ZvVZMoLw==
+ }
+ peerDependencies:
+ eslint: '>= 8.0.0'
+ prettier: '>= 3.0.0'
+
+ '@electron-toolkit/eslint-config@1.0.2':
+ resolution:
+ {
+ integrity: sha512-GJVuMsxBHfVARfmUoSTCHT0e/QfWlVbXcGk3tgoku0ad6tLjydbv2LpvKi02+Sy2WiEz9L9SkGSw090ukT/F0A==
+ }
+ peerDependencies:
+ eslint: '>= 8.0.0'
+
+ '@electron-toolkit/preload@3.0.1':
+ resolution:
+ {
+ integrity: sha512-EzoQmpK8jqqU8YnM5jRe0GJjGVJPke2KtANqz8QtN2JPT96ViOvProBdK5C6riCm0j1T8jjAGVQCZLQy9OVoIA==
+ }
+ peerDependencies:
+ electron: '>=13.0.0'
+
+ '@electron-toolkit/utils@3.0.0':
+ resolution:
+ {
+ integrity: sha512-GaXHDhiT7KCvMJjXdp/QqpYinq69T/Pdl49Z1XLf8mKGf63dnsODMWyrmIjEQ0z/vG7dO8qF3fvmI6Eb2lUNZA==
+ }
+ peerDependencies:
+ electron: '>=13.0.0'
+
+ '@electron/asar@3.2.18':
+ resolution:
+ {
+ integrity: sha512-2XyvMe3N3Nrs8cV39IKELRHTYUWFKrmqqSY1U+GMlc0jvqjIVnoxhNd2H4JolWQncbJi1DCvb5TNxZuI2fEjWg==
+ }
+ engines: { node: '>=10.12.0' }
+ hasBin: true
+
+ '@electron/get@2.0.3':
+ resolution:
+ {
+ integrity: sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==
+ }
+ engines: { node: '>=12' }
+
+ '@electron/notarize@2.2.1':
+ resolution:
+ {
+ integrity: sha512-aL+bFMIkpR0cmmj5Zgy0LMKEpgy43/hw5zadEArgmAMWWlKc5buwFvFT9G/o/YJkvXAJm5q3iuTuLaiaXW39sg==
+ }
+ engines: { node: '>= 10.0.0' }
+
+ '@electron/osx-sign@1.0.5':
+ resolution:
+ {
+ integrity: sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==
+ }
+ engines: { node: '>=12.0.0' }
+ hasBin: true
+
+ '@electron/universal@1.5.1':
+ resolution:
+ {
+ integrity: sha512-kbgXxyEauPJiQQUNG2VgUeyfQNFk6hBF11ISN2PNI6agUgPl55pv4eQmaqHzTAzchBvqZ2tQuRVaPStGf0mxGw==
+ }
+ engines: { node: '>=8.6' }
+
+ '@esbuild/aix-ppc64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==
+ }
+ engines: { node: '>=12' }
+ cpu: [ppc64]
+ os: [aix]
+
+ '@esbuild/android-arm64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==
+ }
+ engines: { node: '>=12' }
+ cpu: [arm64]
+ os: [android]
+
+ '@esbuild/android-arm@0.21.5':
+ resolution:
+ {
+ integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==
+ }
+ engines: { node: '>=12' }
+ cpu: [arm]
+ os: [android]
+
+ '@esbuild/android-x64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==
+ }
+ engines: { node: '>=12' }
+ cpu: [x64]
+ os: [android]
+
+ '@esbuild/darwin-arm64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==
+ }
+ engines: { node: '>=12' }
+ cpu: [arm64]
+ os: [darwin]
+
+ '@esbuild/darwin-x64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==
+ }
+ engines: { node: '>=12' }
+ cpu: [x64]
+ os: [darwin]
+
+ '@esbuild/freebsd-arm64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==
+ }
+ engines: { node: '>=12' }
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-x64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==
+ }
+ engines: { node: '>=12' }
+ cpu: [x64]
+ os: [freebsd]
+
+ '@esbuild/linux-arm64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==
+ }
+ engines: { node: '>=12' }
+ cpu: [arm64]
+ os: [linux]
+
+ '@esbuild/linux-arm@0.21.5':
+ resolution:
+ {
+ integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==
+ }
+ engines: { node: '>=12' }
+ cpu: [arm]
+ os: [linux]
+
+ '@esbuild/linux-ia32@0.21.5':
+ resolution:
+ {
+ integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==
+ }
+ engines: { node: '>=12' }
+ cpu: [ia32]
+ os: [linux]
+
+ '@esbuild/linux-loong64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==
+ }
+ engines: { node: '>=12' }
+ cpu: [loong64]
+ os: [linux]
+
+ '@esbuild/linux-mips64el@0.21.5':
+ resolution:
+ {
+ integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==
+ }
+ engines: { node: '>=12' }
+ cpu: [mips64el]
+ os: [linux]
+
+ '@esbuild/linux-ppc64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==
+ }
+ engines: { node: '>=12' }
+ cpu: [ppc64]
+ os: [linux]
+
+ '@esbuild/linux-riscv64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==
+ }
+ engines: { node: '>=12' }
+ cpu: [riscv64]
+ os: [linux]
+
+ '@esbuild/linux-s390x@0.21.5':
+ resolution:
+ {
+ integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==
+ }
+ engines: { node: '>=12' }
+ cpu: [s390x]
+ os: [linux]
+
+ '@esbuild/linux-x64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==
+ }
+ engines: { node: '>=12' }
+ cpu: [x64]
+ os: [linux]
+
+ '@esbuild/netbsd-x64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==
+ }
+ engines: { node: '>=12' }
+ cpu: [x64]
+ os: [netbsd]
+
+ '@esbuild/openbsd-x64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==
+ }
+ engines: { node: '>=12' }
+ cpu: [x64]
+ os: [openbsd]
+
+ '@esbuild/sunos-x64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==
+ }
+ engines: { node: '>=12' }
+ cpu: [x64]
+ os: [sunos]
+
+ '@esbuild/win32-arm64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==
+ }
+ engines: { node: '>=12' }
+ cpu: [arm64]
+ os: [win32]
+
+ '@esbuild/win32-ia32@0.21.5':
+ resolution:
+ {
+ integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==
+ }
+ engines: { node: '>=12' }
+ cpu: [ia32]
+ os: [win32]
+
+ '@esbuild/win32-x64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==
+ }
+ engines: { node: '>=12' }
+ cpu: [x64]
+ os: [win32]
+
+ '@eslint-community/eslint-utils@4.4.1':
+ resolution:
+ {
+ integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==
+ }
+ engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+
+ '@eslint-community/regexpp@4.12.1':
+ resolution:
+ {
+ integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==
+ }
+ engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 }
+
+ '@eslint/eslintrc@2.1.4':
+ resolution:
+ {
+ integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==
+ }
+ engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
+
+ '@eslint/js@8.57.1':
+ resolution:
+ {
+ integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==
+ }
+ engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
+
+ '@humanwhocodes/config-array@0.13.0':
+ resolution:
+ {
+ integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==
+ }
+ engines: { node: '>=10.10.0' }
+ deprecated: Use @eslint/config-array instead
+
+ '@humanwhocodes/module-importer@1.0.1':
+ resolution:
+ {
+ integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
+ }
+ engines: { node: '>=12.22' }
+
+ '@humanwhocodes/object-schema@2.0.3':
+ resolution:
+ {
+ integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==
+ }
+ deprecated: Use @eslint/object-schema instead
+
+ '@isaacs/cliui@8.0.2':
+ resolution:
+ {
+ integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==
+ }
+ engines: { node: '>=12' }
+
+ '@jridgewell/gen-mapping@0.3.8':
+ resolution:
+ {
+ integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==
+ }
+ engines: { node: '>=6.0.0' }
+
+ '@jridgewell/resolve-uri@3.1.2':
+ resolution:
+ {
+ integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
+ }
+ engines: { node: '>=6.0.0' }
+
+ '@jridgewell/set-array@1.2.1':
+ resolution:
+ {
+ integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
+ }
+ engines: { node: '>=6.0.0' }
+
+ '@jridgewell/sourcemap-codec@1.5.0':
+ resolution:
+ {
+ integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==
+ }
+
+ '@jridgewell/trace-mapping@0.3.25':
+ resolution:
+ {
+ integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
+ }
+
+ '@malept/cross-spawn-promise@1.1.1':
+ resolution:
+ {
+ integrity: sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==
+ }
+ engines: { node: '>= 10' }
+
+ '@malept/flatpak-bundler@0.4.0':
+ resolution:
+ {
+ integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==
+ }
+ engines: { node: '>= 10.0.0' }
+
+ '@nodelib/fs.scandir@2.1.5':
+ resolution:
+ {
+ integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
+ }
+ engines: { node: '>= 8' }
+
+ '@nodelib/fs.stat@2.0.5':
+ resolution:
+ {
+ integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
+ }
+ engines: { node: '>= 8' }
+
+ '@nodelib/fs.walk@1.2.8':
+ resolution:
+ {
+ integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
+ }
+ engines: { node: '>= 8' }
+
+ '@pkgjs/parseargs@0.11.0':
+ resolution:
+ {
+ integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
+ }
+ engines: { node: '>=14' }
+
+ '@pkgr/core@0.1.1':
+ resolution:
+ {
+ integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==
+ }
+ engines: { node: ^12.20.0 || ^14.18.0 || >=16.0.0 }
+
+ '@rollup/rollup-android-arm-eabi@4.34.6':
+ resolution:
+ {
+ integrity: sha512-+GcCXtOQoWuC7hhX1P00LqjjIiS/iOouHXhMdiDSnq/1DGTox4SpUvO52Xm+div6+106r+TcvOeo/cxvyEyTgg==
+ }
+ cpu: [arm]
+ os: [android]
+
+ '@rollup/rollup-android-arm64@4.34.6':
+ resolution:
+ {
+ integrity: sha512-E8+2qCIjciYUnCa1AiVF1BkRgqIGW9KzJeesQqVfyRITGQN+dFuoivO0hnro1DjT74wXLRZ7QF8MIbz+luGaJA==
+ }
+ cpu: [arm64]
+ os: [android]
+
+ '@rollup/rollup-darwin-arm64@4.34.6':
+ resolution:
+ {
+ integrity: sha512-z9Ib+OzqN3DZEjX7PDQMHEhtF+t6Mi2z/ueChQPLS/qUMKY7Ybn5A2ggFoKRNRh1q1T03YTQfBTQCJZiepESAg==
+ }
+ cpu: [arm64]
+ os: [darwin]
+
+ '@rollup/rollup-darwin-x64@4.34.6':
+ resolution:
+ {
+ integrity: sha512-PShKVY4u0FDAR7jskyFIYVyHEPCPnIQY8s5OcXkdU8mz3Y7eXDJPdyM/ZWjkYdR2m0izD9HHWA8sGcXn+Qrsyg==
+ }
+ cpu: [x64]
+ os: [darwin]
+
+ '@rollup/rollup-freebsd-arm64@4.34.6':
+ resolution:
+ {
+ integrity: sha512-YSwyOqlDAdKqs0iKuqvRHLN4SrD2TiswfoLfvYXseKbL47ht1grQpq46MSiQAx6rQEN8o8URtpXARCpqabqxGQ==
+ }
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@rollup/rollup-freebsd-x64@4.34.6':
+ resolution:
+ {
+ integrity: sha512-HEP4CgPAY1RxXwwL5sPFv6BBM3tVeLnshF03HMhJYCNc6kvSqBgTMmsEjb72RkZBAWIqiPUyF1JpEBv5XT9wKQ==
+ }
+ cpu: [x64]
+ os: [freebsd]
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.34.6':
+ resolution:
+ {
+ integrity: sha512-88fSzjC5xeH9S2Vg3rPgXJULkHcLYMkh8faix8DX4h4TIAL65ekwuQMA/g2CXq8W+NJC43V6fUpYZNjaX3+IIg==
+ }
+ cpu: [arm]
+ os: [linux]
+
+ '@rollup/rollup-linux-arm-musleabihf@4.34.6':
+ resolution:
+ {
+ integrity: sha512-wM4ztnutBqYFyvNeR7Av+reWI/enK9tDOTKNF+6Kk2Q96k9bwhDDOlnCUNRPvromlVXo04riSliMBs/Z7RteEg==
+ }
+ cpu: [arm]
+ os: [linux]
+
+ '@rollup/rollup-linux-arm64-gnu@4.34.6':
+ resolution:
+ {
+ integrity: sha512-9RyprECbRa9zEjXLtvvshhw4CMrRa3K+0wcp3KME0zmBe1ILmvcVHnypZ/aIDXpRyfhSYSuN4EPdCCj5Du8FIA==
+ }
+ cpu: [arm64]
+ os: [linux]
+
+ '@rollup/rollup-linux-arm64-musl@4.34.6':
+ resolution:
+ {
+ integrity: sha512-qTmklhCTyaJSB05S+iSovfo++EwnIEZxHkzv5dep4qoszUMX5Ca4WM4zAVUMbfdviLgCSQOu5oU8YoGk1s6M9Q==
+ }
+ cpu: [arm64]
+ os: [linux]
+
+ '@rollup/rollup-linux-loongarch64-gnu@4.34.6':
+ resolution:
+ {
+ integrity: sha512-4Qmkaps9yqmpjY5pvpkfOerYgKNUGzQpFxV6rnS7c/JfYbDSU0y6WpbbredB5cCpLFGJEqYX40WUmxMkwhWCjw==
+ }
+ cpu: [loong64]
+ os: [linux]
+
+ '@rollup/rollup-linux-powerpc64le-gnu@4.34.6':
+ resolution:
+ {
+ integrity: sha512-Zsrtux3PuaxuBTX/zHdLaFmcofWGzaWW1scwLU3ZbW/X+hSsFbz9wDIp6XvnT7pzYRl9MezWqEqKy7ssmDEnuQ==
+ }
+ cpu: [ppc64]
+ os: [linux]
+
+ '@rollup/rollup-linux-riscv64-gnu@4.34.6':
+ resolution:
+ {
+ integrity: sha512-aK+Zp+CRM55iPrlyKiU3/zyhgzWBxLVrw2mwiQSYJRobCURb781+XstzvA8Gkjg/hbdQFuDw44aUOxVQFycrAg==
+ }
+ cpu: [riscv64]
+ os: [linux]
+
+ '@rollup/rollup-linux-s390x-gnu@4.34.6':
+ resolution:
+ {
+ integrity: sha512-WoKLVrY9ogmaYPXwTH326+ErlCIgMmsoRSx6bO+l68YgJnlOXhygDYSZe/qbUJCSiCiZAQ+tKm88NcWuUXqOzw==
+ }
+ cpu: [s390x]
+ os: [linux]
+
+ '@rollup/rollup-linux-x64-gnu@4.34.6':
+ resolution:
+ {
+ integrity: sha512-Sht4aFvmA4ToHd2vFzwMFaQCiYm2lDFho5rPcvPBT5pCdC+GwHG6CMch4GQfmWTQ1SwRKS0dhDYb54khSrjDWw==
+ }
+ cpu: [x64]
+ os: [linux]
+
+ '@rollup/rollup-linux-x64-musl@4.34.6':
+ resolution:
+ {
+ integrity: sha512-zmmpOQh8vXc2QITsnCiODCDGXFC8LMi64+/oPpPx5qz3pqv0s6x46ps4xoycfUiVZps5PFn1gksZzo4RGTKT+A==
+ }
+ cpu: [x64]
+ os: [linux]
+
+ '@rollup/rollup-win32-arm64-msvc@4.34.6':
+ resolution:
+ {
+ integrity: sha512-3/q1qUsO/tLqGBaD4uXsB6coVGB3usxw3qyeVb59aArCgedSF66MPdgRStUd7vbZOsko/CgVaY5fo2vkvPLWiA==
+ }
+ cpu: [arm64]
+ os: [win32]
+
+ '@rollup/rollup-win32-ia32-msvc@4.34.6':
+ resolution:
+ {
+ integrity: sha512-oLHxuyywc6efdKVTxvc0135zPrRdtYVjtVD5GUm55I3ODxhU/PwkQFD97z16Xzxa1Fz0AEe4W/2hzRtd+IfpOA==
+ }
+ cpu: [ia32]
+ os: [win32]
+
+ '@rollup/rollup-win32-x64-msvc@4.34.6':
+ resolution:
+ {
+ integrity: sha512-0PVwmgzZ8+TZ9oGBmdZoQVXflbvuwzN/HRclujpl4N/q3i+y0lqLw8n1bXA8ru3sApDjlmONaNAuYr38y1Kr9w==
+ }
+ cpu: [x64]
+ os: [win32]
+
+ '@sindresorhus/is@4.6.0':
+ resolution:
+ {
+ integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==
+ }
+ engines: { node: '>=10' }
+
+ '@szmarczak/http-timer@4.0.6':
+ resolution:
+ {
+ integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==
+ }
+ engines: { node: '>=10' }
+
+ '@tootallnate/once@2.0.0':
+ resolution:
+ {
+ integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
+ }
+ engines: { node: '>= 10' }
+
+ '@types/cacheable-request@6.0.3':
+ resolution:
+ {
+ integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==
+ }
+
+ '@types/debug@4.1.12':
+ resolution:
+ {
+ integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==
+ }
+
+ '@types/estree@1.0.6':
+ resolution:
+ {
+ integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==
+ }
+
+ '@types/fs-extra@9.0.13':
+ resolution:
+ {
+ integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==
+ }
+
+ '@types/gensync@1.0.4':
+ resolution:
+ {
+ integrity: sha512-C3YYeRQWp2fmq9OryX+FoDy8nXS6scQ7dPptD8LnFDAUNcKWJjXQKDNJD3HVm+kOUsXhTOkpi69vI4EuAr95bA==
+ }
+
+ '@types/http-cache-semantics@4.0.4':
+ resolution:
+ {
+ integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==
+ }
+
+ '@types/keyv@3.1.4':
+ resolution:
+ {
+ integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==
+ }
+
+ '@types/ms@2.1.0':
+ resolution:
+ {
+ integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==
+ }
+
+ '@types/node@20.17.17':
+ resolution:
+ {
+ integrity: sha512-/WndGO4kIfMicEQLTi/mDANUu/iVUhT7KboZPdEqqHQ4aTS+3qT3U5gIqWDFV+XouorjfgGqvKILJeHhuQgFYg==
+ }
+
+ '@types/node@22.13.1':
+ resolution:
+ {
+ integrity: sha512-jK8uzQlrvXqEU91UxiK5J7pKHyzgnI1Qnl0QDHIgVGuolJhRb9EEl28Cj9b3rGR8B2lhFCtvIm5os8lFnO/1Ew==
+ }
+
+ '@types/plist@3.0.5':
+ resolution:
+ {
+ integrity: sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==
+ }
+
+ '@types/responselike@1.0.3':
+ resolution:
+ {
+ integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==
+ }
+
+ '@types/verror@1.10.10':
+ resolution:
+ {
+ integrity: sha512-l4MM0Jppn18hb9xmM6wwD1uTdShpf9Pn80aXTStnK1C94gtPvJcV2FrDmbOQUAQfJ1cKZHktkQUDwEqaAKXMMg==
+ }
+
+ '@types/yauzl@2.10.3':
+ resolution:
+ {
+ integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==
+ }
+
+ '@ungap/structured-clone@1.3.0':
+ resolution:
+ {
+ integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==
+ }
+
+ '@xmldom/xmldom@0.8.10':
+ resolution:
+ {
+ integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==
+ }
+ engines: { node: '>=10.0.0' }
+
+ acorn-jsx@5.3.2:
+ resolution:
+ {
+ integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
+ }
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+
+ acorn@8.14.0:
+ resolution:
+ {
+ integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==
+ }
+ engines: { node: '>=0.4.0' }
+ hasBin: true
+
+ agent-base@6.0.2:
+ resolution:
+ {
+ integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
+ }
+ engines: { node: '>= 6.0.0' }
+
+ ajv-keywords@3.5.2:
+ resolution:
+ {
+ integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
+ }
+ peerDependencies:
+ ajv: ^6.9.1
+
+ ajv@6.12.6:
+ resolution:
+ {
+ integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+ }
+
+ ansi-regex@5.0.1:
+ resolution:
+ {
+ integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
+ }
+ engines: { node: '>=8' }
+
+ ansi-regex@6.1.0:
+ resolution:
+ {
+ integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==
+ }
+ engines: { node: '>=12' }
+
+ ansi-styles@4.3.0:
+ resolution:
+ {
+ integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+ }
+ engines: { node: '>=8' }
+
+ ansi-styles@6.2.1:
+ resolution:
+ {
+ integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
+ }
+ engines: { node: '>=12' }
+
+ app-builder-bin@4.0.0:
+ resolution:
+ {
+ integrity: sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==
+ }
+
+ app-builder-lib@24.13.3:
+ resolution:
+ {
+ integrity: sha512-FAzX6IBit2POXYGnTCT8YHFO/lr5AapAII6zzhQO3Rw4cEDOgK+t1xhLc5tNcKlicTHlo9zxIwnYCX9X2DLkig==
+ }
+ engines: { node: '>=14.0.0' }
+ peerDependencies:
+ dmg-builder: 24.13.3
+ electron-builder-squirrel-windows: 24.13.3
+
+ archiver-utils@2.1.0:
+ resolution:
+ {
+ integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==
+ }
+ engines: { node: '>= 6' }
+
+ archiver-utils@3.0.4:
+ resolution:
+ {
+ integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==
+ }
+ engines: { node: '>= 10' }
+
+ archiver@5.3.2:
+ resolution:
+ {
+ integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==
+ }
+ engines: { node: '>= 10' }
+
+ argparse@2.0.1:
+ resolution:
+ {
+ integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+ }
+
+ assert-plus@1.0.0:
+ resolution:
+ {
+ integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==
+ }
+ engines: { node: '>=0.8' }
+
+ astral-regex@2.0.0:
+ resolution:
+ {
+ integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
+ }
+ engines: { node: '>=8' }
+
+ async-exit-hook@2.0.1:
+ resolution:
+ {
+ integrity: sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==
+ }
+ engines: { node: '>=0.12.0' }
+
+ async@3.2.6:
+ resolution:
+ {
+ integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==
+ }
+
+ asynckit@0.4.0:
+ resolution:
+ {
+ integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
+ }
+
+ at-least-node@1.0.0:
+ resolution:
+ {
+ integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
+ }
+ engines: { node: '>= 4.0.0' }
+
+ balanced-match@1.0.2:
+ resolution:
+ {
+ integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+ }
+
+ base64-js@1.5.1:
+ resolution:
+ {
+ integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+ }
+
+ bl@4.1.0:
+ resolution:
+ {
+ integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
+ }
+
+ bluebird-lst@1.0.9:
+ resolution:
+ {
+ integrity: sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==
+ }
+
+ bluebird@3.7.2:
+ resolution:
+ {
+ integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
+ }
+
+ boolean@3.2.0:
+ resolution:
+ {
+ integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==
+ }
+ deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
+
+ brace-expansion@1.1.11:
+ resolution:
+ {
+ integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+ }
+
+ brace-expansion@2.0.1:
+ resolution:
+ {
+ integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
+ }
+
+ browserslist@4.24.4:
+ resolution:
+ {
+ integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==
+ }
+ engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 }
+ hasBin: true
+
+ buffer-crc32@0.2.13:
+ resolution:
+ {
+ integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==
+ }
+
+ buffer-equal@1.0.1:
+ resolution:
+ {
+ integrity: sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==
+ }
+ engines: { node: '>=0.4' }
+
+ buffer-from@1.1.2:
+ resolution:
+ {
+ integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
+ }
+
+ buffer@5.7.1:
+ resolution:
+ {
+ integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
+ }
+
+ builder-util-runtime@9.2.4:
+ resolution:
+ {
+ integrity: sha512-upp+biKpN/XZMLim7aguUyW8s0FUpDvOtK6sbanMFDAMBzpHDqdhgVYm6zc9HJ6nWo7u2Lxk60i2M6Jd3aiNrA==
+ }
+ engines: { node: '>=12.0.0' }
+
+ builder-util@24.13.1:
+ resolution:
+ {
+ integrity: sha512-NhbCSIntruNDTOVI9fdXz0dihaqX2YuE1D6zZMrwiErzH4ELZHE6mdiB40wEgZNprDia+FghRFgKoAqMZRRjSA==
+ }
+
+ cac@6.7.14:
+ resolution:
+ {
+ integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==
+ }
+ engines: { node: '>=8' }
+
+ cacheable-lookup@5.0.4:
+ resolution:
+ {
+ integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==
+ }
+ engines: { node: '>=10.6.0' }
+
+ cacheable-request@7.0.4:
+ resolution:
+ {
+ integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==
+ }
+ engines: { node: '>=8' }
+
+ callsites@3.1.0:
+ resolution:
+ {
+ integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+ }
+ engines: { node: '>=6' }
+
+ caniuse-lite@1.0.30001699:
+ resolution:
+ {
+ integrity: sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w==
+ }
+
+ chalk@4.1.2:
+ resolution:
+ {
+ integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
+ }
+ engines: { node: '>=10' }
+
+ chownr@2.0.0:
+ resolution:
+ {
+ integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
+ }
+ engines: { node: '>=10' }
+
+ chromium-pickle-js@0.2.0:
+ resolution:
+ {
+ integrity: sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==
+ }
+
+ ci-info@3.9.0:
+ resolution:
+ {
+ integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
+ }
+ engines: { node: '>=8' }
+
+ cli-truncate@2.1.0:
+ resolution:
+ {
+ integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==
+ }
+ engines: { node: '>=8' }
+
+ cliui@8.0.1:
+ resolution:
+ {
+ integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
+ }
+ engines: { node: '>=12' }
+
+ clone-response@1.0.3:
+ resolution:
+ {
+ integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==
+ }
+
+ color-convert@2.0.1:
+ resolution:
+ {
+ integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+ }
+ engines: { node: '>=7.0.0' }
+
+ color-name@1.1.4:
+ resolution:
+ {
+ integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+ }
+
+ combined-stream@1.0.8:
+ resolution:
+ {
+ integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+ }
+ engines: { node: '>= 0.8' }
+
+ commander@5.1.0:
+ resolution:
+ {
+ integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
+ }
+ engines: { node: '>= 6' }
+
+ compare-version@0.1.2:
+ resolution:
+ {
+ integrity: sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==
+ }
+ engines: { node: '>=0.10.0' }
+
+ compress-commons@4.1.2:
+ resolution:
+ {
+ integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==
+ }
+ engines: { node: '>= 10' }
+
+ concat-map@0.0.1:
+ resolution:
+ {
+ integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
+ }
+
+ config-file-ts@0.2.6:
+ resolution:
+ {
+ integrity: sha512-6boGVaglwblBgJqGyxm4+xCmEGcWgnWHSWHY5jad58awQhB6gftq0G8HbzU39YqCIYHMLAiL1yjwiZ36m/CL8w==
+ }
+
+ convert-source-map@2.0.0:
+ resolution:
+ {
+ integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
+ }
+
+ core-util-is@1.0.2:
+ resolution:
+ {
+ integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==
+ }
+
+ core-util-is@1.0.3:
+ resolution:
+ {
+ integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
+ }
+
+ crc-32@1.2.2:
+ resolution:
+ {
+ integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==
+ }
+ engines: { node: '>=0.8' }
+ hasBin: true
+
+ crc32-stream@4.0.3:
+ resolution:
+ {
+ integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==
+ }
+ engines: { node: '>= 10' }
+
+ crc@3.8.0:
+ resolution:
+ {
+ integrity: sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==
+ }
+
+ cross-spawn@7.0.6:
+ resolution:
+ {
+ integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
+ }
+ engines: { node: '>= 8' }
+
+ debug@4.4.0:
+ resolution:
+ {
+ integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==
+ }
+ engines: { node: '>=6.0' }
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ decompress-response@6.0.0:
+ resolution:
+ {
+ integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==
+ }
+ engines: { node: '>=10' }
+
+ deep-is@0.1.4:
+ resolution:
+ {
+ integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
+ }
+
+ defer-to-connect@2.0.1:
+ resolution:
+ {
+ integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==
+ }
+ engines: { node: '>=10' }
+
+ define-data-property@1.1.4:
+ resolution:
+ {
+ integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==
+ }
+ engines: { node: '>= 0.4' }
+
+ define-properties@1.2.1:
+ resolution:
+ {
+ integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
+ }
+ engines: { node: '>= 0.4' }
+
+ delayed-stream@1.0.0:
+ resolution:
+ {
+ integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
+ }
+ engines: { node: '>=0.4.0' }
+
+ detect-node@2.1.0:
+ resolution:
+ {
+ integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==
+ }
+
+ dir-compare@3.3.0:
+ resolution:
+ {
+ integrity: sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==
+ }
+
+ dmg-builder@24.13.3:
+ resolution:
+ {
+ integrity: sha512-rcJUkMfnJpfCboZoOOPf4L29TRtEieHNOeAbYPWPxlaBw/Z1RKrRA86dOI9rwaI4tQSc/RD82zTNHprfUHXsoQ==
+ }
+
+ dmg-license@1.0.11:
+ resolution:
+ {
+ integrity: sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==
+ }
+ engines: { node: '>=8' }
+ os: [darwin]
+ hasBin: true
+
+ doctrine@3.0.0:
+ resolution:
+ {
+ integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
+ }
+ engines: { node: '>=6.0.0' }
+
+ dotenv-expand@5.1.0:
+ resolution:
+ {
+ integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==
+ }
+
+ dotenv@9.0.2:
+ resolution:
+ {
+ integrity: sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==
+ }
+ engines: { node: '>=10' }
+
+ eastasianwidth@0.2.0:
+ resolution:
+ {
+ integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
+ }
+
+ ejs@3.1.10:
+ resolution:
+ {
+ integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==
+ }
+ engines: { node: '>=0.10.0' }
+ hasBin: true
+
+ electron-builder-squirrel-windows@24.13.3:
+ resolution:
+ {
+ integrity: sha512-oHkV0iogWfyK+ah9ZIvMDpei1m9ZRpdXcvde1wTpra2U8AFDNNpqJdnin5z+PM1GbQ5BoaKCWas2HSjtR0HwMg==
+ }
+
+ electron-builder@24.13.3:
+ resolution:
+ {
+ integrity: sha512-yZSgVHft5dNVlo31qmJAe4BVKQfFdwpRw7sFp1iQglDRCDD6r22zfRJuZlhtB5gp9FHUxCMEoWGq10SkCnMAIg==
+ }
+ engines: { node: '>=14.0.0' }
+ hasBin: true
+
+ electron-publish@24.13.1:
+ resolution:
+ {
+ integrity: sha512-2ZgdEqJ8e9D17Hwp5LEq5mLQPjqU3lv/IALvgp+4W8VeNhryfGhYEQC/PgDPMrnWUp+l60Ou5SJLsu+k4mhQ8A==
+ }
+
+ electron-to-chromium@1.5.96:
+ resolution:
+ {
+ integrity: sha512-8AJUW6dh75Fm/ny8+kZKJzI1pgoE8bKLZlzDU2W1ENd+DXKJrx7I7l9hb8UWR4ojlnb5OlixMt00QWiYJoVw1w==
+ }
+
+ electron-vite@2.3.0:
+ resolution:
+ {
+ integrity: sha512-lsN2FymgJlp4k6MrcsphGqZQ9fKRdJKasoaiwIrAewN1tapYI/KINLdfEL7n10LuF0pPSNf/IqjzZbB5VINctg==
+ }
+ engines: { node: ^18.0.0 || >=20.0.0 }
+ hasBin: true
+ peerDependencies:
+ '@swc/core': ^1.0.0
+ vite: ^4.0.0 || ^5.0.0
+ peerDependenciesMeta:
+ '@swc/core':
+ optional: true
+
+ electron@31.7.7:
+ resolution:
+ {
+ integrity: sha512-HZtZg8EHsDGnswFt0QeV8If8B+et63uD6RJ7I4/xhcXqmTIbI08GoubX/wm+HdY0DwcuPe1/xsgqpmYvjdjRoA==
+ }
+ engines: { node: '>= 12.20.55' }
+ hasBin: true
+
+ emoji-regex@8.0.0:
+ resolution:
+ {
+ integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+ }
+
+ emoji-regex@9.2.2:
+ resolution:
+ {
+ integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
+ }
+
+ end-of-stream@1.4.4:
+ resolution:
+ {
+ integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
+ }
+
+ env-paths@2.2.1:
+ resolution:
+ {
+ integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==
+ }
+ engines: { node: '>=6' }
+
+ err-code@2.0.3:
+ resolution:
+ {
+ integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==
+ }
+
+ es-define-property@1.0.1:
+ resolution:
+ {
+ integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==
+ }
+ engines: { node: '>= 0.4' }
+
+ es-errors@1.3.0:
+ resolution:
+ {
+ integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
+ }
+ engines: { node: '>= 0.4' }
+
+ es6-error@4.1.1:
+ resolution:
+ {
+ integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==
+ }
+
+ esbuild@0.21.5:
+ resolution:
+ {
+ integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==
+ }
+ engines: { node: '>=12' }
+ hasBin: true
+
+ escalade@3.2.0:
+ resolution:
+ {
+ integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
+ }
+ engines: { node: '>=6' }
+
+ escape-string-regexp@4.0.0:
+ resolution:
+ {
+ integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+ }
+ engines: { node: '>=10' }
+
+ eslint-config-prettier@9.1.0:
+ resolution:
+ {
+ integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==
+ }
+ hasBin: true
+ peerDependencies:
+ eslint: '>=7.0.0'
+
+ eslint-plugin-prettier@5.2.3:
+ resolution:
+ {
+ integrity: sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==
+ }
+ engines: { node: ^14.18.0 || >=16.0.0 }
+ peerDependencies:
+ '@types/eslint': '>=8.0.0'
+ eslint: '>=8.0.0'
+ eslint-config-prettier: '*'
+ prettier: '>=3.0.0'
+ peerDependenciesMeta:
+ '@types/eslint':
+ optional: true
+ eslint-config-prettier:
+ optional: true
+
+ eslint-scope@7.2.2:
+ resolution:
+ {
+ integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==
+ }
+ engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
+
+ eslint-visitor-keys@3.4.3:
+ resolution:
+ {
+ integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
+ }
+ engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
+
+ eslint@8.57.1:
+ resolution:
+ {
+ integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==
+ }
+ engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
+ deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
+ hasBin: true
+
+ espree@9.6.1:
+ resolution:
+ {
+ integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
+ }
+ engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
+
+ esquery@1.6.0:
+ resolution:
+ {
+ integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==
+ }
+ engines: { node: '>=0.10' }
+
+ esrecurse@4.3.0:
+ resolution:
+ {
+ integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
+ }
+ engines: { node: '>=4.0' }
+
+ estraverse@5.3.0:
+ resolution:
+ {
+ integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
+ }
+ engines: { node: '>=4.0' }
+
+ esutils@2.0.3:
+ resolution:
+ {
+ integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+ }
+ engines: { node: '>=0.10.0' }
+
+ extract-zip@2.0.1:
+ resolution:
+ {
+ integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==
+ }
+ engines: { node: '>= 10.17.0' }
+ hasBin: true
+
+ extsprintf@1.4.1:
+ resolution:
+ {
+ integrity: sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==
+ }
+ engines: { '0': node >=0.6.0 }
+
+ fast-deep-equal@3.1.3:
+ resolution:
+ {
+ integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+ }
+
+ fast-diff@1.3.0:
+ resolution:
+ {
+ integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==
+ }
+
+ fast-json-stable-stringify@2.1.0:
+ resolution:
+ {
+ integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+ }
+
+ fast-levenshtein@2.0.6:
+ resolution:
+ {
+ integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
+ }
+
+ fastq@1.19.0:
+ resolution:
+ {
+ integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==
+ }
+
+ fd-slicer@1.1.0:
+ resolution:
+ {
+ integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==
+ }
+
+ file-entry-cache@6.0.1:
+ resolution:
+ {
+ integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
+ }
+ engines: { node: ^10.12.0 || >=12.0.0 }
+
+ filelist@1.0.4:
+ resolution:
+ {
+ integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==
+ }
+
+ find-up@5.0.0:
+ resolution:
+ {
+ integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
+ }
+ engines: { node: '>=10' }
+
+ flat-cache@3.2.0:
+ resolution:
+ {
+ integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==
+ }
+ engines: { node: ^10.12.0 || >=12.0.0 }
+
+ flatted@3.3.2:
+ resolution:
+ {
+ integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==
+ }
+
+ foreground-child@3.3.0:
+ resolution:
+ {
+ integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==
+ }
+ engines: { node: '>=14' }
+
+ form-data@4.0.1:
+ resolution:
+ {
+ integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==
+ }
+ engines: { node: '>= 6' }
+
+ fs-constants@1.0.0:
+ resolution:
+ {
+ integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
+ }
+
+ fs-extra@10.1.0:
+ resolution:
+ {
+ integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==
+ }
+ engines: { node: '>=12' }
+
+ fs-extra@8.1.0:
+ resolution:
+ {
+ integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
+ }
+ engines: { node: '>=6 <7 || >=8' }
+
+ fs-extra@9.1.0:
+ resolution:
+ {
+ integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
+ }
+ engines: { node: '>=10' }
+
+ fs-minipass@2.1.0:
+ resolution:
+ {
+ integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==
+ }
+ engines: { node: '>= 8' }
+
+ fs.realpath@1.0.0:
+ resolution:
+ {
+ integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
+ }
+
+ fsevents@2.3.3:
+ resolution:
+ {
+ integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
+ }
+ engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 }
+ os: [darwin]
+
+ gensync@1.0.0-beta.2:
+ resolution:
+ {
+ integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
+ }
+ engines: { node: '>=6.9.0' }
+
+ get-caller-file@2.0.5:
+ resolution:
+ {
+ integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+ }
+ engines: { node: 6.* || 8.* || >= 10.* }
+
+ get-stream@5.2.0:
+ resolution:
+ {
+ integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
+ }
+ engines: { node: '>=8' }
+
+ glob-parent@6.0.2:
+ resolution:
+ {
+ integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
+ }
+ engines: { node: '>=10.13.0' }
+
+ glob@10.4.5:
+ resolution:
+ {
+ integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==
+ }
+ hasBin: true
+
+ glob@7.2.3:
+ resolution:
+ {
+ integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
+ }
+ deprecated: Glob versions prior to v9 are no longer supported
+
+ global-agent@3.0.0:
+ resolution:
+ {
+ integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==
+ }
+ engines: { node: '>=10.0' }
+
+ globals@11.12.0:
+ resolution:
+ {
+ integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
+ }
+ engines: { node: '>=4' }
+
+ globals@13.24.0:
+ resolution:
+ {
+ integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==
+ }
+ engines: { node: '>=8' }
+
+ globalthis@1.0.4:
+ resolution:
+ {
+ integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==
+ }
+ engines: { node: '>= 0.4' }
+
+ gopd@1.2.0:
+ resolution:
+ {
+ integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
+ }
+ engines: { node: '>= 0.4' }
+
+ got@11.8.6:
+ resolution:
+ {
+ integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==
+ }
+ engines: { node: '>=10.19.0' }
+
+ graceful-fs@4.2.11:
+ resolution:
+ {
+ integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
+ }
+
+ graphemer@1.4.0:
+ resolution:
+ {
+ integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
+ }
+
+ has-flag@4.0.0:
+ resolution:
+ {
+ integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+ }
+ engines: { node: '>=8' }
+
+ has-property-descriptors@1.0.2:
+ resolution:
+ {
+ integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==
+ }
+
+ hosted-git-info@4.1.0:
+ resolution:
+ {
+ integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==
+ }
+ engines: { node: '>=10' }
+
+ http-cache-semantics@4.1.1:
+ resolution:
+ {
+ integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
+ }
+
+ http-proxy-agent@5.0.0:
+ resolution:
+ {
+ integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==
+ }
+ engines: { node: '>= 6' }
+
+ http2-wrapper@1.0.3:
+ resolution:
+ {
+ integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==
+ }
+ engines: { node: '>=10.19.0' }
+
+ https-proxy-agent@5.0.1:
+ resolution:
+ {
+ integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==
+ }
+ engines: { node: '>= 6' }
+
+ iconv-corefoundation@1.1.7:
+ resolution:
+ {
+ integrity: sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==
+ }
+ engines: { node: ^8.11.2 || >=10 }
+ os: [darwin]
+
+ iconv-lite@0.6.3:
+ resolution:
+ {
+ integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
+ }
+ engines: { node: '>=0.10.0' }
+
+ ieee754@1.2.1:
+ resolution:
+ {
+ integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
+ }
+
+ ignore@5.3.2:
+ resolution:
+ {
+ integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
+ }
+ engines: { node: '>= 4' }
+
+ import-fresh@3.3.1:
+ resolution:
+ {
+ integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==
+ }
+ engines: { node: '>=6' }
+
+ imurmurhash@0.1.4:
+ resolution:
+ {
+ integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
+ }
+ engines: { node: '>=0.8.19' }
+
+ inflight@1.0.6:
+ resolution:
+ {
+ integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
+ }
+ deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
+
+ inherits@2.0.4:
+ resolution:
+ {
+ integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+ }
+
+ is-ci@3.0.1:
+ resolution:
+ {
+ integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==
+ }
+ hasBin: true
+
+ is-extglob@2.1.1:
+ resolution:
+ {
+ integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
+ }
+ engines: { node: '>=0.10.0' }
+
+ is-fullwidth-code-point@3.0.0:
+ resolution:
+ {
+ integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+ }
+ engines: { node: '>=8' }
+
+ is-glob@4.0.3:
+ resolution:
+ {
+ integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
+ }
+ engines: { node: '>=0.10.0' }
+
+ is-path-inside@3.0.3:
+ resolution:
+ {
+ integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
+ }
+ engines: { node: '>=8' }
+
+ isarray@1.0.0:
+ resolution:
+ {
+ integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
+ }
+
+ isbinaryfile@4.0.10:
+ resolution:
+ {
+ integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==
+ }
+ engines: { node: '>= 8.0.0' }
+
+ isbinaryfile@5.0.4:
+ resolution:
+ {
+ integrity: sha512-YKBKVkKhty7s8rxddb40oOkuP0NbaeXrQvLin6QMHL7Ypiy2RW9LwOVrVgZRyOrhQlayMd9t+D8yDy8MKFTSDQ==
+ }
+ engines: { node: '>= 18.0.0' }
+
+ isexe@2.0.0:
+ resolution:
+ {
+ integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
+ }
+
+ jackspeak@3.4.3:
+ resolution:
+ {
+ integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==
+ }
+
+ jake@10.9.2:
+ resolution:
+ {
+ integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==
+ }
+ engines: { node: '>=10' }
+ hasBin: true
+
+ js-tokens@4.0.0:
+ resolution:
+ {
+ integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+ }
+
+ js-yaml@4.1.0:
+ resolution:
+ {
+ integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
+ }
+ hasBin: true
+
+ jsesc@3.1.0:
+ resolution:
+ {
+ integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==
+ }
+ engines: { node: '>=6' }
+ hasBin: true
+
+ json-buffer@3.0.1:
+ resolution:
+ {
+ integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
+ }
+
+ json-schema-traverse@0.4.1:
+ resolution:
+ {
+ integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+ }
+
+ json-stable-stringify-without-jsonify@1.0.1:
+ resolution:
+ {
+ integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
+ }
+
+ json-stringify-safe@5.0.1:
+ resolution:
+ {
+ integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==
+ }
+
+ json5@2.2.3:
+ resolution:
+ {
+ integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
+ }
+ engines: { node: '>=6' }
+ hasBin: true
+
+ jsonfile@4.0.0:
+ resolution:
+ {
+ integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==
+ }
+
+ jsonfile@6.1.0:
+ resolution:
+ {
+ integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
+ }
+
+ keyv@4.5.4:
+ resolution:
+ {
+ integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
+ }
+
+ lazy-val@1.0.5:
+ resolution:
+ {
+ integrity: sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==
+ }
+
+ lazystream@1.0.1:
+ resolution:
+ {
+ integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==
+ }
+ engines: { node: '>= 0.6.3' }
+
+ levn@0.4.1:
+ resolution:
+ {
+ integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
+ }
+ engines: { node: '>= 0.8.0' }
+
+ locate-path@6.0.0:
+ resolution:
+ {
+ integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
+ }
+ engines: { node: '>=10' }
+
+ lodash.defaults@4.2.0:
+ resolution:
+ {
+ integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==
+ }
+
+ lodash.difference@4.5.0:
+ resolution:
+ {
+ integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==
+ }
+
+ lodash.flatten@4.4.0:
+ resolution:
+ {
+ integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==
+ }
+
+ lodash.isplainobject@4.0.6:
+ resolution:
+ {
+ integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==
+ }
+
+ lodash.merge@4.6.2:
+ resolution:
+ {
+ integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
+ }
+
+ lodash.union@4.6.0:
+ resolution:
+ {
+ integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==
+ }
+
+ lodash@4.17.21:
+ resolution:
+ {
+ integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+ }
+
+ lowercase-keys@2.0.0:
+ resolution:
+ {
+ integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==
+ }
+ engines: { node: '>=8' }
+
+ lru-cache@10.4.3:
+ resolution:
+ {
+ integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==
+ }
+
+ lru-cache@5.1.1:
+ resolution:
+ {
+ integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
+ }
+
+ lru-cache@6.0.0:
+ resolution:
+ {
+ integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
+ }
+ engines: { node: '>=10' }
+
+ magic-string@0.30.17:
+ resolution:
+ {
+ integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==
+ }
+
+ matcher@3.0.0:
+ resolution:
+ {
+ integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==
+ }
+ engines: { node: '>=10' }
+
+ mime-db@1.52.0:
+ resolution:
+ {
+ integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+ }
+ engines: { node: '>= 0.6' }
+
+ mime-types@2.1.35:
+ resolution:
+ {
+ integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
+ }
+ engines: { node: '>= 0.6' }
+
+ mime@2.6.0:
+ resolution:
+ {
+ integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
+ }
+ engines: { node: '>=4.0.0' }
+ hasBin: true
+
+ mimic-response@1.0.1:
+ resolution:
+ {
+ integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
+ }
+ engines: { node: '>=4' }
+
+ mimic-response@3.1.0:
+ resolution:
+ {
+ integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==
+ }
+ engines: { node: '>=10' }
+
+ minimatch@3.1.2:
+ resolution:
+ {
+ integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
+ }
+
+ minimatch@5.1.6:
+ resolution:
+ {
+ integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==
+ }
+ engines: { node: '>=10' }
+
+ minimatch@9.0.5:
+ resolution:
+ {
+ integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
+ }
+ engines: { node: '>=16 || 14 >=14.17' }
+
+ minimist@1.2.8:
+ resolution:
+ {
+ integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
+ }
+
+ minipass@3.3.6:
+ resolution:
+ {
+ integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==
+ }
+ engines: { node: '>=8' }
+
+ minipass@5.0.0:
+ resolution:
+ {
+ integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==
+ }
+ engines: { node: '>=8' }
+
+ minipass@7.1.2:
+ resolution:
+ {
+ integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
+ }
+ engines: { node: '>=16 || 14 >=14.17' }
+
+ minizlib@2.1.2:
+ resolution:
+ {
+ integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==
+ }
+ engines: { node: '>= 8' }
+
+ mkdirp@1.0.4:
+ resolution:
+ {
+ integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
+ }
+ engines: { node: '>=10' }
+ hasBin: true
+
+ ms@2.1.3:
+ resolution:
+ {
+ integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+ }
+
+ nanoid@3.3.8:
+ resolution:
+ {
+ integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==
+ }
+ engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 }
+ hasBin: true
+
+ natural-compare@1.4.0:
+ resolution:
+ {
+ integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
+ }
+
+ node-addon-api@1.7.2:
+ resolution:
+ {
+ integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==
+ }
+
+ node-releases@2.0.19:
+ resolution:
+ {
+ integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==
+ }
+
+ normalize-path@3.0.0:
+ resolution:
+ {
+ integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+ }
+ engines: { node: '>=0.10.0' }
+
+ normalize-url@6.1.0:
+ resolution:
+ {
+ integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==
+ }
+ engines: { node: '>=10' }
+
+ object-keys@1.1.1:
+ resolution:
+ {
+ integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+ }
+ engines: { node: '>= 0.4' }
+
+ once@1.4.0:
+ resolution:
+ {
+ integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
+ }
+
+ optionator@0.9.4:
+ resolution:
+ {
+ integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==
+ }
+ engines: { node: '>= 0.8.0' }
+
+ p-cancelable@2.1.1:
+ resolution:
+ {
+ integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==
+ }
+ engines: { node: '>=8' }
+
+ p-limit@3.1.0:
+ resolution:
+ {
+ integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
+ }
+ engines: { node: '>=10' }
+
+ p-locate@5.0.0:
+ resolution:
+ {
+ integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
+ }
+ engines: { node: '>=10' }
+
+ package-json-from-dist@1.0.1:
+ resolution:
+ {
+ integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==
+ }
+
+ parent-module@1.0.1:
+ resolution:
+ {
+ integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
+ }
+ engines: { node: '>=6' }
+
+ path-exists@4.0.0:
+ resolution:
+ {
+ integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+ }
+ engines: { node: '>=8' }
+
+ path-is-absolute@1.0.1:
+ resolution:
+ {
+ integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
+ }
+ engines: { node: '>=0.10.0' }
+
+ path-key@3.1.1:
+ resolution:
+ {
+ integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+ }
+ engines: { node: '>=8' }
+
+ path-scurry@1.11.1:
+ resolution:
+ {
+ integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==
+ }
+ engines: { node: '>=16 || 14 >=14.18' }
+
+ pend@1.2.0:
+ resolution:
+ {
+ integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==
+ }
+
+ picocolors@1.1.1:
+ resolution:
+ {
+ integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
+ }
+
+ plist@3.1.0:
+ resolution:
+ {
+ integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==
+ }
+ engines: { node: '>=10.4.0' }
+
+ postcss@8.5.1:
+ resolution:
+ {
+ integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==
+ }
+ engines: { node: ^10 || ^12 || >=14 }
+
+ prelude-ls@1.2.1:
+ resolution:
+ {
+ integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
+ }
+ engines: { node: '>= 0.8.0' }
+
+ prettier-linter-helpers@1.0.0:
+ resolution:
+ {
+ integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
+ }
+ engines: { node: '>=6.0.0' }
+
+ prettier@3.5.0:
+ resolution:
+ {
+ integrity: sha512-quyMrVt6svPS7CjQ9gKb3GLEX/rl3BCL2oa/QkNcXv4YNVBC9olt3s+H7ukto06q7B1Qz46PbrKLO34PR6vXcA==
+ }
+ engines: { node: '>=14' }
+ hasBin: true
+
+ process-nextick-args@2.0.1:
+ resolution:
+ {
+ integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+ }
+
+ progress@2.0.3:
+ resolution:
+ {
+ integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
+ }
+ engines: { node: '>=0.4.0' }
+
+ promise-retry@2.0.1:
+ resolution:
+ {
+ integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==
+ }
+ engines: { node: '>=10' }
+
+ pump@3.0.2:
+ resolution:
+ {
+ integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==
+ }
+
+ punycode@2.3.1:
+ resolution:
+ {
+ integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
+ }
+ engines: { node: '>=6' }
+
+ queue-microtask@1.2.3:
+ resolution:
+ {
+ integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
+ }
+
+ quick-lru@5.1.1:
+ resolution:
+ {
+ integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
+ }
+ engines: { node: '>=10' }
+
+ read-config-file@6.3.2:
+ resolution:
+ {
+ integrity: sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q==
+ }
+ engines: { node: '>=12.0.0' }
+
+ readable-stream@2.3.8:
+ resolution:
+ {
+ integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
+ }
+
+ readable-stream@3.6.2:
+ resolution:
+ {
+ integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
+ }
+ engines: { node: '>= 6' }
+
+ readdir-glob@1.1.3:
+ resolution:
+ {
+ integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==
+ }
+
+ require-directory@2.1.1:
+ resolution:
+ {
+ integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
+ }
+ engines: { node: '>=0.10.0' }
+
+ resolve-alpn@1.2.1:
+ resolution:
+ {
+ integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==
+ }
+
+ resolve-from@4.0.0:
+ resolution:
+ {
+ integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+ }
+ engines: { node: '>=4' }
+
+ responselike@2.0.1:
+ resolution:
+ {
+ integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==
+ }
+
+ retry@0.12.0:
+ resolution:
+ {
+ integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==
+ }
+ engines: { node: '>= 4' }
+
+ reusify@1.0.4:
+ resolution:
+ {
+ integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
+ }
+ engines: { iojs: '>=1.0.0', node: '>=0.10.0' }
+
+ rimraf@3.0.2:
+ resolution:
+ {
+ integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+ }
+ deprecated: Rimraf versions prior to v4 are no longer supported
+ hasBin: true
+
+ roarr@2.15.4:
+ resolution:
+ {
+ integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==
+ }
+ engines: { node: '>=8.0' }
+
+ rollup@4.34.6:
+ resolution:
+ {
+ integrity: sha512-wc2cBWqJgkU3Iz5oztRkQbfVkbxoz5EhnCGOrnJvnLnQ7O0WhQUYyv18qQI79O8L7DdHrrlJNeCHd4VGpnaXKQ==
+ }
+ engines: { node: '>=18.0.0', npm: '>=8.0.0' }
+ hasBin: true
+
+ run-parallel@1.2.0:
+ resolution:
+ {
+ integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
+ }
+
+ safe-buffer@5.1.2:
+ resolution:
+ {
+ integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+ }
+
+ safe-buffer@5.2.1:
+ resolution:
+ {
+ integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+ }
+
+ safer-buffer@2.1.2:
+ resolution:
+ {
+ integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+ }
+
+ sanitize-filename@1.6.3:
+ resolution:
+ {
+ integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==
+ }
+
+ sax@1.4.1:
+ resolution:
+ {
+ integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==
+ }
+
+ semver-compare@1.0.0:
+ resolution:
+ {
+ integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==
+ }
+
+ semver@6.3.1:
+ resolution:
+ {
+ integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
+ }
+ hasBin: true
+
+ semver@7.7.1:
+ resolution:
+ {
+ integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==
+ }
+ engines: { node: '>=10' }
+ hasBin: true
+
+ serialize-error@7.0.1:
+ resolution:
+ {
+ integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==
+ }
+ engines: { node: '>=10' }
+
+ shebang-command@2.0.0:
+ resolution:
+ {
+ integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
+ }
+ engines: { node: '>=8' }
+
+ shebang-regex@3.0.0:
+ resolution:
+ {
+ integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+ }
+ engines: { node: '>=8' }
+
+ signal-exit@4.1.0:
+ resolution:
+ {
+ integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
+ }
+ engines: { node: '>=14' }
+
+ simple-update-notifier@2.0.0:
+ resolution:
+ {
+ integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==
+ }
+ engines: { node: '>=10' }
+
+ slice-ansi@3.0.0:
+ resolution:
+ {
+ integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==
+ }
+ engines: { node: '>=8' }
+
+ smart-buffer@4.2.0:
+ resolution:
+ {
+ integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==
+ }
+ engines: { node: '>= 6.0.0', npm: '>= 3.0.0' }
+
+ source-map-js@1.2.1:
+ resolution:
+ {
+ integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
+ }
+ engines: { node: '>=0.10.0' }
+
+ source-map-support@0.5.21:
+ resolution:
+ {
+ integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
+ }
+
+ source-map@0.6.1:
+ resolution:
+ {
+ integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+ }
+ engines: { node: '>=0.10.0' }
+
+ sprintf-js@1.1.3:
+ resolution:
+ {
+ integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==
+ }
+
+ stat-mode@1.0.0:
+ resolution:
+ {
+ integrity: sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==
+ }
+ engines: { node: '>= 6' }
+
+ string-width@4.2.3:
+ resolution:
+ {
+ integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+ }
+ engines: { node: '>=8' }
+
+ string-width@5.1.2:
+ resolution:
+ {
+ integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==
+ }
+ engines: { node: '>=12' }
+
+ string_decoder@1.1.1:
+ resolution:
+ {
+ integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+ }
+
+ string_decoder@1.3.0:
+ resolution:
+ {
+ integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
+ }
+
+ strip-ansi@6.0.1:
+ resolution:
+ {
+ integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+ }
+ engines: { node: '>=8' }
+
+ strip-ansi@7.1.0:
+ resolution:
+ {
+ integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==
+ }
+ engines: { node: '>=12' }
+
+ strip-json-comments@3.1.1:
+ resolution:
+ {
+ integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+ }
+ engines: { node: '>=8' }
+
+ sumchecker@3.0.1:
+ resolution:
+ {
+ integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==
+ }
+ engines: { node: '>= 8.0' }
+
+ supports-color@7.2.0:
+ resolution:
+ {
+ integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
+ }
+ engines: { node: '>=8' }
+
+ synckit@0.9.2:
+ resolution:
+ {
+ integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==
+ }
+ engines: { node: ^14.18.0 || >=16.0.0 }
+
+ tar-stream@2.2.0:
+ resolution:
+ {
+ integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==
+ }
+ engines: { node: '>=6' }
+
+ tar@6.2.1:
+ resolution:
+ {
+ integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==
+ }
+ engines: { node: '>=10' }
+
+ temp-file@3.4.0:
+ resolution:
+ {
+ integrity: sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==
+ }
+
+ text-table@0.2.0:
+ resolution:
+ {
+ integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
+ }
+
+ tmp-promise@3.0.3:
+ resolution:
+ {
+ integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==
+ }
+
+ tmp@0.2.3:
+ resolution:
+ {
+ integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==
+ }
+ engines: { node: '>=14.14' }
+
+ truncate-utf8-bytes@1.0.2:
+ resolution:
+ {
+ integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==
+ }
+
+ tslib@2.8.1:
+ resolution:
+ {
+ integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
+ }
+
+ type-check@0.4.0:
+ resolution:
+ {
+ integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
+ }
+ engines: { node: '>= 0.8.0' }
+
+ type-fest@0.13.1:
+ resolution:
+ {
+ integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==
+ }
+ engines: { node: '>=10' }
+
+ type-fest@0.20.2:
+ resolution:
+ {
+ integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
+ }
+ engines: { node: '>=10' }
+
+ typescript@5.7.3:
+ resolution:
+ {
+ integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==
+ }
+ engines: { node: '>=14.17' }
+ hasBin: true
+
+ undici-types@6.19.8:
+ resolution:
+ {
+ integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==
+ }
+
+ undici-types@6.20.0:
+ resolution:
+ {
+ integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==
+ }
+
+ universalify@0.1.2:
+ resolution:
+ {
+ integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
+ }
+ engines: { node: '>= 4.0.0' }
+
+ universalify@2.0.1:
+ resolution:
+ {
+ integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==
+ }
+ engines: { node: '>= 10.0.0' }
+
+ update-browserslist-db@1.1.2:
+ resolution:
+ {
+ integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==
+ }
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+
+ uri-js@4.4.1:
+ resolution:
+ {
+ integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+ }
+
+ utf8-byte-length@1.0.5:
+ resolution:
+ {
+ integrity: sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==
+ }
+
+ util-deprecate@1.0.2:
+ resolution:
+ {
+ integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
+ }
+
+ verror@1.10.1:
+ resolution:
+ {
+ integrity: sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==
+ }
+ engines: { node: '>=0.6.0' }
+
+ vite@5.4.14:
+ resolution:
+ {
+ integrity: sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==
+ }
+ engines: { node: ^18.0.0 || >=20.0.0 }
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^18.0.0 || >=20.0.0
+ less: '*'
+ lightningcss: ^1.21.0
+ sass: '*'
+ sass-embedded: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.4.0
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+
+ which@2.0.2:
+ resolution:
+ {
+ integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+ }
+ engines: { node: '>= 8' }
+ hasBin: true
+
+ word-wrap@1.2.5:
+ resolution:
+ {
+ integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
+ }
+ engines: { node: '>=0.10.0' }
+
+ wrap-ansi@7.0.0:
+ resolution:
+ {
+ integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+ }
+ engines: { node: '>=10' }
+
+ wrap-ansi@8.1.0:
+ resolution:
+ {
+ integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==
+ }
+ engines: { node: '>=12' }
+
+ wrappy@1.0.2:
+ resolution:
+ {
+ integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
+ }
+
+ xmlbuilder@15.1.1:
+ resolution:
+ {
+ integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==
+ }
+ engines: { node: '>=8.0' }
+
+ y18n@5.0.8:
+ resolution:
+ {
+ integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
+ }
+ engines: { node: '>=10' }
+
+ yallist@3.1.1:
+ resolution:
+ {
+ integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
+ }
+
+ yallist@4.0.0:
+ resolution:
+ {
+ integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+ }
+
+ yargs-parser@21.1.1:
+ resolution:
+ {
+ integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
+ }
+ engines: { node: '>=12' }
+
+ yargs@17.7.2:
+ resolution:
+ {
+ integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
+ }
+ engines: { node: '>=12' }
+
+ yauzl@2.10.0:
+ resolution:
+ {
+ integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==
+ }
+
+ yocto-queue@0.1.0:
+ resolution:
+ {
+ integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+ }
+ engines: { node: '>=10' }
+
+ zip-stream@4.1.1:
+ resolution:
+ {
+ integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==
+ }
+ engines: { node: '>= 10' }
+
+snapshots:
+ 7zip-bin@5.2.0: {}
+
+ '@ampproject/remapping@2.3.0':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.8
+ '@jridgewell/trace-mapping': 0.3.25
+
+ '@babel/code-frame@7.26.2':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.25.9
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+
+ '@babel/compat-data@7.26.8': {}
+
+ '@babel/core@7.26.8':
+ dependencies:
+ '@ampproject/remapping': 2.3.0
+ '@babel/code-frame': 7.26.2
+ '@babel/generator': 7.26.8
+ '@babel/helper-compilation-targets': 7.26.5
+ '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.8)
+ '@babel/helpers': 7.26.7
+ '@babel/parser': 7.26.8
+ '@babel/template': 7.26.8
+ '@babel/traverse': 7.26.8
+ '@babel/types': 7.26.8
+ '@types/gensync': 1.0.4
+ convert-source-map: 2.0.0
+ debug: 4.4.0
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/generator@7.26.8':
+ dependencies:
+ '@babel/parser': 7.26.8
+ '@babel/types': 7.26.8
+ '@jridgewell/gen-mapping': 0.3.8
+ '@jridgewell/trace-mapping': 0.3.25
+ jsesc: 3.1.0
+
+ '@babel/helper-compilation-targets@7.26.5':
+ dependencies:
+ '@babel/compat-data': 7.26.8
+ '@babel/helper-validator-option': 7.25.9
+ browserslist: 4.24.4
+ lru-cache: 5.1.1
+ semver: 6.3.1
+
+ '@babel/helper-module-imports@7.25.9':
+ dependencies:
+ '@babel/traverse': 7.26.8
+ '@babel/types': 7.26.8
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.8)':
+ dependencies:
+ '@babel/core': 7.26.8
+ '@babel/helper-module-imports': 7.25.9
+ '@babel/helper-validator-identifier': 7.25.9
+ '@babel/traverse': 7.26.8
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-plugin-utils@7.26.5': {}
+
+ '@babel/helper-string-parser@7.25.9': {}
+
+ '@babel/helper-validator-identifier@7.25.9': {}
+
+ '@babel/helper-validator-option@7.25.9': {}
+
+ '@babel/helpers@7.26.7':
+ dependencies:
+ '@babel/template': 7.26.8
+ '@babel/types': 7.26.8
+
+ '@babel/parser@7.26.8':
+ dependencies:
+ '@babel/types': 7.26.8
+
+ '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.8)':
+ dependencies:
+ '@babel/core': 7.26.8
+ '@babel/helper-plugin-utils': 7.26.5
+
+ '@babel/template@7.26.8':
+ dependencies:
+ '@babel/code-frame': 7.26.2
+ '@babel/parser': 7.26.8
+ '@babel/types': 7.26.8
+
+ '@babel/traverse@7.26.8':
+ dependencies:
+ '@babel/code-frame': 7.26.2
+ '@babel/generator': 7.26.8
+ '@babel/parser': 7.26.8
+ '@babel/template': 7.26.8
+ '@babel/types': 7.26.8
+ debug: 4.4.0
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/types@7.26.8':
+ dependencies:
+ '@babel/helper-string-parser': 7.25.9
+ '@babel/helper-validator-identifier': 7.25.9
+
+ '@develar/schema-utils@2.6.5':
+ dependencies:
+ ajv: 6.12.6
+ ajv-keywords: 3.5.2(ajv@6.12.6)
+
+ '@electron-toolkit/eslint-config-prettier@2.0.0(eslint@8.57.1)(prettier@3.5.0)':
+ dependencies:
+ eslint: 8.57.1
+ eslint-config-prettier: 9.1.0(eslint@8.57.1)
+ eslint-plugin-prettier: 5.2.3(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.5.0)
+ prettier: 3.5.0
+ transitivePeerDependencies:
+ - '@types/eslint'
+
+ '@electron-toolkit/eslint-config@1.0.2(eslint@8.57.1)':
+ dependencies:
+ eslint: 8.57.1
+
+ '@electron-toolkit/preload@3.0.1(electron@31.7.7)':
+ dependencies:
+ electron: 31.7.7
+
+ '@electron-toolkit/utils@3.0.0(electron@31.7.7)':
+ dependencies:
+ electron: 31.7.7
+
+ '@electron/asar@3.2.18':
+ dependencies:
+ commander: 5.1.0
+ glob: 7.2.3
+ minimatch: 3.1.2
+
+ '@electron/get@2.0.3':
+ dependencies:
+ debug: 4.4.0
+ env-paths: 2.2.1
+ fs-extra: 8.1.0
+ got: 11.8.6
+ progress: 2.0.3
+ semver: 6.3.1
+ sumchecker: 3.0.1
+ optionalDependencies:
+ global-agent: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@electron/notarize@2.2.1':
+ dependencies:
+ debug: 4.4.0
+ fs-extra: 9.1.0
+ promise-retry: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@electron/osx-sign@1.0.5':
+ dependencies:
+ compare-version: 0.1.2
+ debug: 4.4.0
+ fs-extra: 10.1.0
+ isbinaryfile: 4.0.10
+ minimist: 1.2.8
+ plist: 3.1.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@electron/universal@1.5.1':
+ dependencies:
+ '@electron/asar': 3.2.18
+ '@malept/cross-spawn-promise': 1.1.1
+ debug: 4.4.0
+ dir-compare: 3.3.0
+ fs-extra: 9.1.0
+ minimatch: 3.1.2
+ plist: 3.1.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@esbuild/aix-ppc64@0.21.5':
+ optional: true
+
+ '@esbuild/android-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/android-arm@0.21.5':
+ optional: true
+
+ '@esbuild/android-x64@0.21.5':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/darwin-x64@0.21.5':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-arm@0.21.5':
+ optional: true
+
+ '@esbuild/linux-ia32@0.21.5':
+ optional: true
+
+ '@esbuild/linux-loong64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.21.5':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-s390x@0.21.5':
+ optional: true
+
+ '@esbuild/linux-x64@0.21.5':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/sunos-x64@0.21.5':
+ optional: true
+
+ '@esbuild/win32-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/win32-ia32@0.21.5':
+ optional: true
+
+ '@esbuild/win32-x64@0.21.5':
+ optional: true
+
+ '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)':
+ dependencies:
+ eslint: 8.57.1
+ eslint-visitor-keys: 3.4.3
+
+ '@eslint-community/regexpp@4.12.1': {}
+
+ '@eslint/eslintrc@2.1.4':
+ dependencies:
+ ajv: 6.12.6
+ debug: 4.4.0
+ espree: 9.6.1
+ globals: 13.24.0
+ ignore: 5.3.2
+ import-fresh: 3.3.1
+ js-yaml: 4.1.0
+ minimatch: 3.1.2
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/js@8.57.1': {}
+
+ '@humanwhocodes/config-array@0.13.0':
+ dependencies:
+ '@humanwhocodes/object-schema': 2.0.3
+ debug: 4.4.0
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@humanwhocodes/module-importer@1.0.1': {}
+
+ '@humanwhocodes/object-schema@2.0.3': {}
+
+ '@isaacs/cliui@8.0.2':
+ dependencies:
+ string-width: 5.1.2
+ string-width-cjs: string-width@4.2.3
+ strip-ansi: 7.1.0
+ strip-ansi-cjs: strip-ansi@6.0.1
+ wrap-ansi: 8.1.0
+ wrap-ansi-cjs: wrap-ansi@7.0.0
+
+ '@jridgewell/gen-mapping@0.3.8':
+ dependencies:
+ '@jridgewell/set-array': 1.2.1
+ '@jridgewell/sourcemap-codec': 1.5.0
+ '@jridgewell/trace-mapping': 0.3.25
+
+ '@jridgewell/resolve-uri@3.1.2': {}
+
+ '@jridgewell/set-array@1.2.1': {}
+
+ '@jridgewell/sourcemap-codec@1.5.0': {}
+
+ '@jridgewell/trace-mapping@0.3.25':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.0
+
+ '@malept/cross-spawn-promise@1.1.1':
+ dependencies:
+ cross-spawn: 7.0.6
+
+ '@malept/flatpak-bundler@0.4.0':
+ dependencies:
+ debug: 4.4.0
+ fs-extra: 9.1.0
+ lodash: 4.17.21
+ tmp-promise: 3.0.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@nodelib/fs.scandir@2.1.5':
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+
+ '@nodelib/fs.stat@2.0.5': {}
+
+ '@nodelib/fs.walk@1.2.8':
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.19.0
+
+ '@pkgjs/parseargs@0.11.0':
+ optional: true
+
+ '@pkgr/core@0.1.1': {}
+
+ '@rollup/rollup-android-arm-eabi@4.34.6':
+ optional: true
+
+ '@rollup/rollup-android-arm64@4.34.6':
+ optional: true
+
+ '@rollup/rollup-darwin-arm64@4.34.6':
+ optional: true
+
+ '@rollup/rollup-darwin-x64@4.34.6':
+ optional: true
+
+ '@rollup/rollup-freebsd-arm64@4.34.6':
+ optional: true
+
+ '@rollup/rollup-freebsd-x64@4.34.6':
+ optional: true
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.34.6':
+ optional: true
+
+ '@rollup/rollup-linux-arm-musleabihf@4.34.6':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-gnu@4.34.6':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-musl@4.34.6':
+ optional: true
+
+ '@rollup/rollup-linux-loongarch64-gnu@4.34.6':
+ optional: true
+
+ '@rollup/rollup-linux-powerpc64le-gnu@4.34.6':
+ optional: true
+
+ '@rollup/rollup-linux-riscv64-gnu@4.34.6':
+ optional: true
+
+ '@rollup/rollup-linux-s390x-gnu@4.34.6':
+ optional: true
+
+ '@rollup/rollup-linux-x64-gnu@4.34.6':
+ optional: true
+
+ '@rollup/rollup-linux-x64-musl@4.34.6':
+ optional: true
+
+ '@rollup/rollup-win32-arm64-msvc@4.34.6':
+ optional: true
+
+ '@rollup/rollup-win32-ia32-msvc@4.34.6':
+ optional: true
+
+ '@rollup/rollup-win32-x64-msvc@4.34.6':
+ optional: true
+
+ '@sindresorhus/is@4.6.0': {}
+
+ '@szmarczak/http-timer@4.0.6':
+ dependencies:
+ defer-to-connect: 2.0.1
+
+ '@tootallnate/once@2.0.0': {}
+
+ '@types/cacheable-request@6.0.3':
+ dependencies:
+ '@types/http-cache-semantics': 4.0.4
+ '@types/keyv': 3.1.4
+ '@types/node': 20.17.17
+ '@types/responselike': 1.0.3
+
+ '@types/debug@4.1.12':
+ dependencies:
+ '@types/ms': 2.1.0
+
+ '@types/estree@1.0.6': {}
+
+ '@types/fs-extra@9.0.13':
+ dependencies:
+ '@types/node': 22.13.1
+
+ '@types/gensync@1.0.4': {}
+
+ '@types/http-cache-semantics@4.0.4': {}
+
+ '@types/keyv@3.1.4':
+ dependencies:
+ '@types/node': 20.17.17
+
+ '@types/ms@2.1.0': {}
+
+ '@types/node@20.17.17':
+ dependencies:
+ undici-types: 6.19.8
+
+ '@types/node@22.13.1':
+ dependencies:
+ undici-types: 6.20.0
+
+ '@types/plist@3.0.5':
+ dependencies:
+ '@types/node': 22.13.1
+ xmlbuilder: 15.1.1
+ optional: true
+
+ '@types/responselike@1.0.3':
+ dependencies:
+ '@types/node': 20.17.17
+
+ '@types/verror@1.10.10':
+ optional: true
+
+ '@types/yauzl@2.10.3':
+ dependencies:
+ '@types/node': 20.17.17
+ optional: true
+
+ '@ungap/structured-clone@1.3.0': {}
+
+ '@xmldom/xmldom@0.8.10': {}
+
+ acorn-jsx@5.3.2(acorn@8.14.0):
+ dependencies:
+ acorn: 8.14.0
+
+ acorn@8.14.0: {}
+
+ agent-base@6.0.2:
+ dependencies:
+ debug: 4.4.0
+ transitivePeerDependencies:
+ - supports-color
+
+ ajv-keywords@3.5.2(ajv@6.12.6):
+ dependencies:
+ ajv: 6.12.6
+
+ ajv@6.12.6:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+
+ ansi-regex@5.0.1: {}
+
+ ansi-regex@6.1.0: {}
+
+ ansi-styles@4.3.0:
+ dependencies:
+ color-convert: 2.0.1
+
+ ansi-styles@6.2.1: {}
+
+ app-builder-bin@4.0.0: {}
+
+ app-builder-lib@24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3):
+ dependencies:
+ '@develar/schema-utils': 2.6.5
+ '@electron/notarize': 2.2.1
+ '@electron/osx-sign': 1.0.5
+ '@electron/universal': 1.5.1
+ '@malept/flatpak-bundler': 0.4.0
+ '@types/fs-extra': 9.0.13
+ async-exit-hook: 2.0.1
+ bluebird-lst: 1.0.9
+ builder-util: 24.13.1
+ builder-util-runtime: 9.2.4
+ chromium-pickle-js: 0.2.0
+ debug: 4.4.0
+ dmg-builder: 24.13.3(electron-builder-squirrel-windows@24.13.3)
+ ejs: 3.1.10
+ electron-builder-squirrel-windows: 24.13.3(dmg-builder@24.13.3)
+ electron-publish: 24.13.1
+ form-data: 4.0.1
+ fs-extra: 10.1.0
+ hosted-git-info: 4.1.0
+ is-ci: 3.0.1
+ isbinaryfile: 5.0.4
+ js-yaml: 4.1.0
+ lazy-val: 1.0.5
+ minimatch: 5.1.6
+ read-config-file: 6.3.2
+ sanitize-filename: 1.6.3
+ semver: 7.7.1
+ tar: 6.2.1
+ temp-file: 3.4.0
+ transitivePeerDependencies:
+ - supports-color
+
+ archiver-utils@2.1.0:
+ dependencies:
+ glob: 7.2.3
+ graceful-fs: 4.2.11
+ lazystream: 1.0.1
+ lodash.defaults: 4.2.0
+ lodash.difference: 4.5.0
+ lodash.flatten: 4.4.0
+ lodash.isplainobject: 4.0.6
+ lodash.union: 4.6.0
+ normalize-path: 3.0.0
+ readable-stream: 2.3.8
+
+ archiver-utils@3.0.4:
+ dependencies:
+ glob: 7.2.3
+ graceful-fs: 4.2.11
+ lazystream: 1.0.1
+ lodash.defaults: 4.2.0
+ lodash.difference: 4.5.0
+ lodash.flatten: 4.4.0
+ lodash.isplainobject: 4.0.6
+ lodash.union: 4.6.0
+ normalize-path: 3.0.0
+ readable-stream: 3.6.2
+
+ archiver@5.3.2:
+ dependencies:
+ archiver-utils: 2.1.0
+ async: 3.2.6
+ buffer-crc32: 0.2.13
+ readable-stream: 3.6.2
+ readdir-glob: 1.1.3
+ tar-stream: 2.2.0
+ zip-stream: 4.1.1
+
+ argparse@2.0.1: {}
+
+ assert-plus@1.0.0:
+ optional: true
+
+ astral-regex@2.0.0:
+ optional: true
+
+ async-exit-hook@2.0.1: {}
+
+ async@3.2.6: {}
+
+ asynckit@0.4.0: {}
+
+ at-least-node@1.0.0: {}
+
+ balanced-match@1.0.2: {}
+
+ base64-js@1.5.1: {}
+
+ bl@4.1.0:
+ dependencies:
+ buffer: 5.7.1
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+
+ bluebird-lst@1.0.9:
+ dependencies:
+ bluebird: 3.7.2
+
+ bluebird@3.7.2: {}
+
+ boolean@3.2.0:
+ optional: true
+
+ brace-expansion@1.1.11:
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+
+ brace-expansion@2.0.1:
+ dependencies:
+ balanced-match: 1.0.2
+
+ browserslist@4.24.4:
+ dependencies:
+ caniuse-lite: 1.0.30001699
+ electron-to-chromium: 1.5.96
+ node-releases: 2.0.19
+ update-browserslist-db: 1.1.2(browserslist@4.24.4)
+
+ buffer-crc32@0.2.13: {}
+
+ buffer-equal@1.0.1: {}
+
+ buffer-from@1.1.2: {}
+
+ buffer@5.7.1:
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+
+ builder-util-runtime@9.2.4:
+ dependencies:
+ debug: 4.4.0
+ sax: 1.4.1
+ transitivePeerDependencies:
+ - supports-color
+
+ builder-util@24.13.1:
+ dependencies:
+ 7zip-bin: 5.2.0
+ '@types/debug': 4.1.12
+ app-builder-bin: 4.0.0
+ bluebird-lst: 1.0.9
+ builder-util-runtime: 9.2.4
+ chalk: 4.1.2
+ cross-spawn: 7.0.6
+ debug: 4.4.0
+ fs-extra: 10.1.0
+ http-proxy-agent: 5.0.0
+ https-proxy-agent: 5.0.1
+ is-ci: 3.0.1
+ js-yaml: 4.1.0
+ source-map-support: 0.5.21
+ stat-mode: 1.0.0
+ temp-file: 3.4.0
+ transitivePeerDependencies:
+ - supports-color
+
+ cac@6.7.14: {}
+
+ cacheable-lookup@5.0.4: {}
+
+ cacheable-request@7.0.4:
+ dependencies:
+ clone-response: 1.0.3
+ get-stream: 5.2.0
+ http-cache-semantics: 4.1.1
+ keyv: 4.5.4
+ lowercase-keys: 2.0.0
+ normalize-url: 6.1.0
+ responselike: 2.0.1
+
+ callsites@3.1.0: {}
+
+ caniuse-lite@1.0.30001699: {}
+
+ chalk@4.1.2:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ chownr@2.0.0: {}
+
+ chromium-pickle-js@0.2.0: {}
+
+ ci-info@3.9.0: {}
+
+ cli-truncate@2.1.0:
+ dependencies:
+ slice-ansi: 3.0.0
+ string-width: 4.2.3
+ optional: true
+
+ cliui@8.0.1:
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+
+ clone-response@1.0.3:
+ dependencies:
+ mimic-response: 1.0.1
+
+ color-convert@2.0.1:
+ dependencies:
+ color-name: 1.1.4
+
+ color-name@1.1.4: {}
+
+ combined-stream@1.0.8:
+ dependencies:
+ delayed-stream: 1.0.0
+
+ commander@5.1.0: {}
+
+ compare-version@0.1.2: {}
+
+ compress-commons@4.1.2:
+ dependencies:
+ buffer-crc32: 0.2.13
+ crc32-stream: 4.0.3
+ normalize-path: 3.0.0
+ readable-stream: 3.6.2
+
+ concat-map@0.0.1: {}
+
+ config-file-ts@0.2.6:
+ dependencies:
+ glob: 10.4.5
+ typescript: 5.7.3
+
+ convert-source-map@2.0.0: {}
+
+ core-util-is@1.0.2:
+ optional: true
+
+ core-util-is@1.0.3: {}
+
+ crc-32@1.2.2: {}
+
+ crc32-stream@4.0.3:
+ dependencies:
+ crc-32: 1.2.2
+ readable-stream: 3.6.2
+
+ crc@3.8.0:
+ dependencies:
+ buffer: 5.7.1
+ optional: true
+
+ cross-spawn@7.0.6:
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+
+ debug@4.4.0:
+ dependencies:
+ ms: 2.1.3
+
+ decompress-response@6.0.0:
+ dependencies:
+ mimic-response: 3.1.0
+
+ deep-is@0.1.4: {}
+
+ defer-to-connect@2.0.1: {}
+
+ define-data-property@1.1.4:
+ dependencies:
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ gopd: 1.2.0
+ optional: true
+
+ define-properties@1.2.1:
+ dependencies:
+ define-data-property: 1.1.4
+ has-property-descriptors: 1.0.2
+ object-keys: 1.1.1
+ optional: true
+
+ delayed-stream@1.0.0: {}
+
+ detect-node@2.1.0:
+ optional: true
+
+ dir-compare@3.3.0:
+ dependencies:
+ buffer-equal: 1.0.1
+ minimatch: 3.1.2
+
+ dmg-builder@24.13.3(electron-builder-squirrel-windows@24.13.3):
+ dependencies:
+ app-builder-lib: 24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3)
+ builder-util: 24.13.1
+ builder-util-runtime: 9.2.4
+ fs-extra: 10.1.0
+ iconv-lite: 0.6.3
+ js-yaml: 4.1.0
+ optionalDependencies:
+ dmg-license: 1.0.11
+ transitivePeerDependencies:
+ - electron-builder-squirrel-windows
+ - supports-color
+
+ dmg-license@1.0.11:
+ dependencies:
+ '@types/plist': 3.0.5
+ '@types/verror': 1.10.10
+ ajv: 6.12.6
+ crc: 3.8.0
+ iconv-corefoundation: 1.1.7
+ plist: 3.1.0
+ smart-buffer: 4.2.0
+ verror: 1.10.1
+ optional: true
+
+ doctrine@3.0.0:
+ dependencies:
+ esutils: 2.0.3
+
+ dotenv-expand@5.1.0: {}
+
+ dotenv@9.0.2: {}
+
+ eastasianwidth@0.2.0: {}
+
+ ejs@3.1.10:
+ dependencies:
+ jake: 10.9.2
+
+ electron-builder-squirrel-windows@24.13.3(dmg-builder@24.13.3):
+ dependencies:
+ app-builder-lib: 24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3)
+ archiver: 5.3.2
+ builder-util: 24.13.1
+ fs-extra: 10.1.0
+ transitivePeerDependencies:
+ - dmg-builder
+ - supports-color
+
+ electron-builder@24.13.3(electron-builder-squirrel-windows@24.13.3):
+ dependencies:
+ app-builder-lib: 24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3)
+ builder-util: 24.13.1
+ builder-util-runtime: 9.2.4
+ chalk: 4.1.2
+ dmg-builder: 24.13.3(electron-builder-squirrel-windows@24.13.3)
+ fs-extra: 10.1.0
+ is-ci: 3.0.1
+ lazy-val: 1.0.5
+ read-config-file: 6.3.2
+ simple-update-notifier: 2.0.0
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - electron-builder-squirrel-windows
+ - supports-color
+
+ electron-publish@24.13.1:
+ dependencies:
+ '@types/fs-extra': 9.0.13
+ builder-util: 24.13.1
+ builder-util-runtime: 9.2.4
+ chalk: 4.1.2
+ fs-extra: 10.1.0
+ lazy-val: 1.0.5
+ mime: 2.6.0
+ transitivePeerDependencies:
+ - supports-color
+
+ electron-to-chromium@1.5.96: {}
+
+ electron-vite@2.3.0(vite@5.4.14(@types/node@22.13.1)):
+ dependencies:
+ '@babel/core': 7.26.8
+ '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.8)
+ cac: 6.7.14
+ esbuild: 0.21.5
+ magic-string: 0.30.17
+ picocolors: 1.1.1
+ vite: 5.4.14(@types/node@22.13.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ electron@31.7.7:
+ dependencies:
+ '@electron/get': 2.0.3
+ '@types/node': 20.17.17
+ extract-zip: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ emoji-regex@8.0.0: {}
+
+ emoji-regex@9.2.2: {}
+
+ end-of-stream@1.4.4:
+ dependencies:
+ once: 1.4.0
+
+ env-paths@2.2.1: {}
+
+ err-code@2.0.3: {}
+
+ es-define-property@1.0.1:
+ optional: true
+
+ es-errors@1.3.0:
+ optional: true
+
+ es6-error@4.1.1:
+ optional: true
+
+ esbuild@0.21.5:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.21.5
+ '@esbuild/android-arm': 0.21.5
+ '@esbuild/android-arm64': 0.21.5
+ '@esbuild/android-x64': 0.21.5
+ '@esbuild/darwin-arm64': 0.21.5
+ '@esbuild/darwin-x64': 0.21.5
+ '@esbuild/freebsd-arm64': 0.21.5
+ '@esbuild/freebsd-x64': 0.21.5
+ '@esbuild/linux-arm': 0.21.5
+ '@esbuild/linux-arm64': 0.21.5
+ '@esbuild/linux-ia32': 0.21.5
+ '@esbuild/linux-loong64': 0.21.5
+ '@esbuild/linux-mips64el': 0.21.5
+ '@esbuild/linux-ppc64': 0.21.5
+ '@esbuild/linux-riscv64': 0.21.5
+ '@esbuild/linux-s390x': 0.21.5
+ '@esbuild/linux-x64': 0.21.5
+ '@esbuild/netbsd-x64': 0.21.5
+ '@esbuild/openbsd-x64': 0.21.5
+ '@esbuild/sunos-x64': 0.21.5
+ '@esbuild/win32-arm64': 0.21.5
+ '@esbuild/win32-ia32': 0.21.5
+ '@esbuild/win32-x64': 0.21.5
+
+ escalade@3.2.0: {}
+
+ escape-string-regexp@4.0.0: {}
+
+ eslint-config-prettier@9.1.0(eslint@8.57.1):
+ dependencies:
+ eslint: 8.57.1
+
+ eslint-plugin-prettier@5.2.3(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.5.0):
+ dependencies:
+ eslint: 8.57.1
+ prettier: 3.5.0
+ prettier-linter-helpers: 1.0.0
+ synckit: 0.9.2
+ optionalDependencies:
+ eslint-config-prettier: 9.1.0(eslint@8.57.1)
+
+ eslint-scope@7.2.2:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
+ eslint-visitor-keys@3.4.3: {}
+
+ eslint@8.57.1:
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1)
+ '@eslint-community/regexpp': 4.12.1
+ '@eslint/eslintrc': 2.1.4
+ '@eslint/js': 8.57.1
+ '@humanwhocodes/config-array': 0.13.0
+ '@humanwhocodes/module-importer': 1.0.1
+ '@nodelib/fs.walk': 1.2.8
+ '@ungap/structured-clone': 1.3.0
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.6
+ debug: 4.4.0
+ doctrine: 3.0.0
+ escape-string-regexp: 4.0.0
+ eslint-scope: 7.2.2
+ eslint-visitor-keys: 3.4.3
+ espree: 9.6.1
+ esquery: 1.6.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 6.0.1
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ globals: 13.24.0
+ graphemer: 1.4.0
+ ignore: 5.3.2
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ is-path-inside: 3.0.3
+ js-yaml: 4.1.0
+ json-stable-stringify-without-jsonify: 1.0.1
+ levn: 0.4.1
+ lodash.merge: 4.6.2
+ minimatch: 3.1.2
+ natural-compare: 1.4.0
+ optionator: 0.9.4
+ strip-ansi: 6.0.1
+ text-table: 0.2.0
+ transitivePeerDependencies:
+ - supports-color
+
+ espree@9.6.1:
+ dependencies:
+ acorn: 8.14.0
+ acorn-jsx: 5.3.2(acorn@8.14.0)
+ eslint-visitor-keys: 3.4.3
+
+ esquery@1.6.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ esrecurse@4.3.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ estraverse@5.3.0: {}
+
+ esutils@2.0.3: {}
+
+ extract-zip@2.0.1:
+ dependencies:
+ debug: 4.4.0
+ get-stream: 5.2.0
+ yauzl: 2.10.0
+ optionalDependencies:
+ '@types/yauzl': 2.10.3
+ transitivePeerDependencies:
+ - supports-color
+
+ extsprintf@1.4.1:
+ optional: true
+
+ fast-deep-equal@3.1.3: {}
+
+ fast-diff@1.3.0: {}
+
+ fast-json-stable-stringify@2.1.0: {}
+
+ fast-levenshtein@2.0.6: {}
+
+ fastq@1.19.0:
+ dependencies:
+ reusify: 1.0.4
+
+ fd-slicer@1.1.0:
+ dependencies:
+ pend: 1.2.0
+
+ file-entry-cache@6.0.1:
+ dependencies:
+ flat-cache: 3.2.0
+
+ filelist@1.0.4:
+ dependencies:
+ minimatch: 5.1.6
+
+ find-up@5.0.0:
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+
+ flat-cache@3.2.0:
+ dependencies:
+ flatted: 3.3.2
+ keyv: 4.5.4
+ rimraf: 3.0.2
+
+ flatted@3.3.2: {}
+
+ foreground-child@3.3.0:
+ dependencies:
+ cross-spawn: 7.0.6
+ signal-exit: 4.1.0
+
+ form-data@4.0.1:
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ mime-types: 2.1.35
+
+ fs-constants@1.0.0: {}
+
+ fs-extra@10.1.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 2.0.1
+
+ fs-extra@8.1.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 4.0.0
+ universalify: 0.1.2
+
+ fs-extra@9.1.0:
+ dependencies:
+ at-least-node: 1.0.0
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 2.0.1
+
+ fs-minipass@2.1.0:
+ dependencies:
+ minipass: 3.3.6
+
+ fs.realpath@1.0.0: {}
+
+ fsevents@2.3.3:
+ optional: true
+
+ gensync@1.0.0-beta.2: {}
+
+ get-caller-file@2.0.5: {}
+
+ get-stream@5.2.0:
+ dependencies:
+ pump: 3.0.2
+
+ glob-parent@6.0.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob@10.4.5:
+ dependencies:
+ foreground-child: 3.3.0
+ jackspeak: 3.4.3
+ minimatch: 9.0.5
+ minipass: 7.1.2
+ package-json-from-dist: 1.0.1
+ path-scurry: 1.11.1
+
+ glob@7.2.3:
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+
+ global-agent@3.0.0:
+ dependencies:
+ boolean: 3.2.0
+ es6-error: 4.1.1
+ matcher: 3.0.0
+ roarr: 2.15.4
+ semver: 7.7.1
+ serialize-error: 7.0.1
+ optional: true
+
+ globals@11.12.0: {}
+
+ globals@13.24.0:
+ dependencies:
+ type-fest: 0.20.2
+
+ globalthis@1.0.4:
+ dependencies:
+ define-properties: 1.2.1
+ gopd: 1.2.0
+ optional: true
+
+ gopd@1.2.0:
+ optional: true
+
+ got@11.8.6:
+ dependencies:
+ '@sindresorhus/is': 4.6.0
+ '@szmarczak/http-timer': 4.0.6
+ '@types/cacheable-request': 6.0.3
+ '@types/responselike': 1.0.3
+ cacheable-lookup: 5.0.4
+ cacheable-request: 7.0.4
+ decompress-response: 6.0.0
+ http2-wrapper: 1.0.3
+ lowercase-keys: 2.0.0
+ p-cancelable: 2.1.1
+ responselike: 2.0.1
+
+ graceful-fs@4.2.11: {}
+
+ graphemer@1.4.0: {}
+
+ has-flag@4.0.0: {}
+
+ has-property-descriptors@1.0.2:
+ dependencies:
+ es-define-property: 1.0.1
+ optional: true
+
+ hosted-git-info@4.1.0:
+ dependencies:
+ lru-cache: 6.0.0
+
+ http-cache-semantics@4.1.1: {}
+
+ http-proxy-agent@5.0.0:
+ dependencies:
+ '@tootallnate/once': 2.0.0
+ agent-base: 6.0.2
+ debug: 4.4.0
+ transitivePeerDependencies:
+ - supports-color
+
+ http2-wrapper@1.0.3:
+ dependencies:
+ quick-lru: 5.1.1
+ resolve-alpn: 1.2.1
+
+ https-proxy-agent@5.0.1:
+ dependencies:
+ agent-base: 6.0.2
+ debug: 4.4.0
+ transitivePeerDependencies:
+ - supports-color
+
+ iconv-corefoundation@1.1.7:
+ dependencies:
+ cli-truncate: 2.1.0
+ node-addon-api: 1.7.2
+ optional: true
+
+ iconv-lite@0.6.3:
+ dependencies:
+ safer-buffer: 2.1.2
+
+ ieee754@1.2.1: {}
+
+ ignore@5.3.2: {}
+
+ import-fresh@3.3.1:
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+
+ imurmurhash@0.1.4: {}
+
+ inflight@1.0.6:
+ dependencies:
+ once: 1.4.0
+ wrappy: 1.0.2
+
+ inherits@2.0.4: {}
+
+ is-ci@3.0.1:
+ dependencies:
+ ci-info: 3.9.0
+
+ is-extglob@2.1.1: {}
+
+ is-fullwidth-code-point@3.0.0: {}
+
+ is-glob@4.0.3:
+ dependencies:
+ is-extglob: 2.1.1
+
+ is-path-inside@3.0.3: {}
+
+ isarray@1.0.0: {}
+
+ isbinaryfile@4.0.10: {}
+
+ isbinaryfile@5.0.4: {}
+
+ isexe@2.0.0: {}
+
+ jackspeak@3.4.3:
+ dependencies:
+ '@isaacs/cliui': 8.0.2
+ optionalDependencies:
+ '@pkgjs/parseargs': 0.11.0
+
+ jake@10.9.2:
+ dependencies:
+ async: 3.2.6
+ chalk: 4.1.2
+ filelist: 1.0.4
+ minimatch: 3.1.2
+
+ js-tokens@4.0.0: {}
+
+ js-yaml@4.1.0:
+ dependencies:
+ argparse: 2.0.1
+
+ jsesc@3.1.0: {}
+
+ json-buffer@3.0.1: {}
+
+ json-schema-traverse@0.4.1: {}
+
+ json-stable-stringify-without-jsonify@1.0.1: {}
+
+ json-stringify-safe@5.0.1:
+ optional: true
+
+ json5@2.2.3: {}
+
+ jsonfile@4.0.0:
+ optionalDependencies:
+ graceful-fs: 4.2.11
+
+ jsonfile@6.1.0:
+ dependencies:
+ universalify: 2.0.1
+ optionalDependencies:
+ graceful-fs: 4.2.11
+
+ keyv@4.5.4:
+ dependencies:
+ json-buffer: 3.0.1
+
+ lazy-val@1.0.5: {}
+
+ lazystream@1.0.1:
+ dependencies:
+ readable-stream: 2.3.8
+
+ levn@0.4.1:
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+
+ locate-path@6.0.0:
+ dependencies:
+ p-locate: 5.0.0
+
+ lodash.defaults@4.2.0: {}
+
+ lodash.difference@4.5.0: {}
+
+ lodash.flatten@4.4.0: {}
+
+ lodash.isplainobject@4.0.6: {}
+
+ lodash.merge@4.6.2: {}
+
+ lodash.union@4.6.0: {}
+
+ lodash@4.17.21: {}
+
+ lowercase-keys@2.0.0: {}
+
+ lru-cache@10.4.3: {}
+
+ lru-cache@5.1.1:
+ dependencies:
+ yallist: 3.1.1
+
+ lru-cache@6.0.0:
+ dependencies:
+ yallist: 4.0.0
+
+ magic-string@0.30.17:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.0
+
+ matcher@3.0.0:
+ dependencies:
+ escape-string-regexp: 4.0.0
+ optional: true
+
+ mime-db@1.52.0: {}
+
+ mime-types@2.1.35:
+ dependencies:
+ mime-db: 1.52.0
+
+ mime@2.6.0: {}
+
+ mimic-response@1.0.1: {}
+
+ mimic-response@3.1.0: {}
+
+ minimatch@3.1.2:
+ dependencies:
+ brace-expansion: 1.1.11
+
+ minimatch@5.1.6:
+ dependencies:
+ brace-expansion: 2.0.1
+
+ minimatch@9.0.5:
+ dependencies:
+ brace-expansion: 2.0.1
+
+ minimist@1.2.8: {}
+
+ minipass@3.3.6:
+ dependencies:
+ yallist: 4.0.0
+
+ minipass@5.0.0: {}
+
+ minipass@7.1.2: {}
+
+ minizlib@2.1.2:
+ dependencies:
+ minipass: 3.3.6
+ yallist: 4.0.0
+
+ mkdirp@1.0.4: {}
+
+ ms@2.1.3: {}
+
+ nanoid@3.3.8: {}
+
+ natural-compare@1.4.0: {}
+
+ node-addon-api@1.7.2:
+ optional: true
+
+ node-releases@2.0.19: {}
+
+ normalize-path@3.0.0: {}
+
+ normalize-url@6.1.0: {}
+
+ object-keys@1.1.1:
+ optional: true
+
+ once@1.4.0:
+ dependencies:
+ wrappy: 1.0.2
+
+ optionator@0.9.4:
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.4.1
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ word-wrap: 1.2.5
+
+ p-cancelable@2.1.1: {}
+
+ p-limit@3.1.0:
+ dependencies:
+ yocto-queue: 0.1.0
+
+ p-locate@5.0.0:
+ dependencies:
+ p-limit: 3.1.0
+
+ package-json-from-dist@1.0.1: {}
+
+ parent-module@1.0.1:
+ dependencies:
+ callsites: 3.1.0
+
+ path-exists@4.0.0: {}
+
+ path-is-absolute@1.0.1: {}
+
+ path-key@3.1.1: {}
+
+ path-scurry@1.11.1:
+ dependencies:
+ lru-cache: 10.4.3
+ minipass: 7.1.2
+
+ pend@1.2.0: {}
+
+ picocolors@1.1.1: {}
+
+ plist@3.1.0:
+ dependencies:
+ '@xmldom/xmldom': 0.8.10
+ base64-js: 1.5.1
+ xmlbuilder: 15.1.1
+
+ postcss@8.5.1:
+ dependencies:
+ nanoid: 3.3.8
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ prelude-ls@1.2.1: {}
+
+ prettier-linter-helpers@1.0.0:
+ dependencies:
+ fast-diff: 1.3.0
+
+ prettier@3.5.0: {}
+
+ process-nextick-args@2.0.1: {}
+
+ progress@2.0.3: {}
+
+ promise-retry@2.0.1:
+ dependencies:
+ err-code: 2.0.3
+ retry: 0.12.0
+
+ pump@3.0.2:
+ dependencies:
+ end-of-stream: 1.4.4
+ once: 1.4.0
+
+ punycode@2.3.1: {}
+
+ queue-microtask@1.2.3: {}
+
+ quick-lru@5.1.1: {}
+
+ read-config-file@6.3.2:
+ dependencies:
+ config-file-ts: 0.2.6
+ dotenv: 9.0.2
+ dotenv-expand: 5.1.0
+ js-yaml: 4.1.0
+ json5: 2.2.3
+ lazy-val: 1.0.5
+
+ readable-stream@2.3.8:
+ dependencies:
+ core-util-is: 1.0.3
+ inherits: 2.0.4
+ isarray: 1.0.0
+ process-nextick-args: 2.0.1
+ safe-buffer: 5.1.2
+ string_decoder: 1.1.1
+ util-deprecate: 1.0.2
+
+ readable-stream@3.6.2:
+ dependencies:
+ inherits: 2.0.4
+ string_decoder: 1.3.0
+ util-deprecate: 1.0.2
+
+ readdir-glob@1.1.3:
+ dependencies:
+ minimatch: 5.1.6
+
+ require-directory@2.1.1: {}
+
+ resolve-alpn@1.2.1: {}
+
+ resolve-from@4.0.0: {}
+
+ responselike@2.0.1:
+ dependencies:
+ lowercase-keys: 2.0.0
+
+ retry@0.12.0: {}
+
+ reusify@1.0.4: {}
+
+ rimraf@3.0.2:
+ dependencies:
+ glob: 7.2.3
+
+ roarr@2.15.4:
+ dependencies:
+ boolean: 3.2.0
+ detect-node: 2.1.0
+ globalthis: 1.0.4
+ json-stringify-safe: 5.0.1
+ semver-compare: 1.0.0
+ sprintf-js: 1.1.3
+ optional: true
+
+ rollup@4.34.6:
+ dependencies:
+ '@types/estree': 1.0.6
+ optionalDependencies:
+ '@rollup/rollup-android-arm-eabi': 4.34.6
+ '@rollup/rollup-android-arm64': 4.34.6
+ '@rollup/rollup-darwin-arm64': 4.34.6
+ '@rollup/rollup-darwin-x64': 4.34.6
+ '@rollup/rollup-freebsd-arm64': 4.34.6
+ '@rollup/rollup-freebsd-x64': 4.34.6
+ '@rollup/rollup-linux-arm-gnueabihf': 4.34.6
+ '@rollup/rollup-linux-arm-musleabihf': 4.34.6
+ '@rollup/rollup-linux-arm64-gnu': 4.34.6
+ '@rollup/rollup-linux-arm64-musl': 4.34.6
+ '@rollup/rollup-linux-loongarch64-gnu': 4.34.6
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.34.6
+ '@rollup/rollup-linux-riscv64-gnu': 4.34.6
+ '@rollup/rollup-linux-s390x-gnu': 4.34.6
+ '@rollup/rollup-linux-x64-gnu': 4.34.6
+ '@rollup/rollup-linux-x64-musl': 4.34.6
+ '@rollup/rollup-win32-arm64-msvc': 4.34.6
+ '@rollup/rollup-win32-ia32-msvc': 4.34.6
+ '@rollup/rollup-win32-x64-msvc': 4.34.6
+ fsevents: 2.3.3
+
+ run-parallel@1.2.0:
+ dependencies:
+ queue-microtask: 1.2.3
+
+ safe-buffer@5.1.2: {}
+
+ safe-buffer@5.2.1: {}
+
+ safer-buffer@2.1.2: {}
+
+ sanitize-filename@1.6.3:
+ dependencies:
+ truncate-utf8-bytes: 1.0.2
+
+ sax@1.4.1: {}
+
+ semver-compare@1.0.0:
+ optional: true
+
+ semver@6.3.1: {}
+
+ semver@7.7.1: {}
+
+ serialize-error@7.0.1:
+ dependencies:
+ type-fest: 0.13.1
+ optional: true
+
+ shebang-command@2.0.0:
+ dependencies:
+ shebang-regex: 3.0.0
+
+ shebang-regex@3.0.0: {}
+
+ signal-exit@4.1.0: {}
+
+ simple-update-notifier@2.0.0:
+ dependencies:
+ semver: 7.7.1
+
+ slice-ansi@3.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ astral-regex: 2.0.0
+ is-fullwidth-code-point: 3.0.0
+ optional: true
+
+ smart-buffer@4.2.0:
+ optional: true
+
+ source-map-js@1.2.1: {}
+
+ source-map-support@0.5.21:
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+
+ source-map@0.6.1: {}
+
+ sprintf-js@1.1.3:
+ optional: true
+
+ stat-mode@1.0.0: {}
+
+ string-width@4.2.3:
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+
+ string-width@5.1.2:
+ dependencies:
+ eastasianwidth: 0.2.0
+ emoji-regex: 9.2.2
+ strip-ansi: 7.1.0
+
+ string_decoder@1.1.1:
+ dependencies:
+ safe-buffer: 5.1.2
+
+ string_decoder@1.3.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ strip-ansi@6.0.1:
+ dependencies:
+ ansi-regex: 5.0.1
+
+ strip-ansi@7.1.0:
+ dependencies:
+ ansi-regex: 6.1.0
+
+ strip-json-comments@3.1.1: {}
+
+ sumchecker@3.0.1:
+ dependencies:
+ debug: 4.4.0
+ transitivePeerDependencies:
+ - supports-color
+
+ supports-color@7.2.0:
+ dependencies:
+ has-flag: 4.0.0
+
+ synckit@0.9.2:
+ dependencies:
+ '@pkgr/core': 0.1.1
+ tslib: 2.8.1
+
+ tar-stream@2.2.0:
+ dependencies:
+ bl: 4.1.0
+ end-of-stream: 1.4.4
+ fs-constants: 1.0.0
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+
+ tar@6.2.1:
+ dependencies:
+ chownr: 2.0.0
+ fs-minipass: 2.1.0
+ minipass: 5.0.0
+ minizlib: 2.1.2
+ mkdirp: 1.0.4
+ yallist: 4.0.0
+
+ temp-file@3.4.0:
+ dependencies:
+ async-exit-hook: 2.0.1
+ fs-extra: 10.1.0
+
+ text-table@0.2.0: {}
+
+ tmp-promise@3.0.3:
+ dependencies:
+ tmp: 0.2.3
+
+ tmp@0.2.3: {}
+
+ truncate-utf8-bytes@1.0.2:
+ dependencies:
+ utf8-byte-length: 1.0.5
+
+ tslib@2.8.1: {}
+
+ type-check@0.4.0:
+ dependencies:
+ prelude-ls: 1.2.1
+
+ type-fest@0.13.1:
+ optional: true
+
+ type-fest@0.20.2: {}
+
+ typescript@5.7.3: {}
+
+ undici-types@6.19.8: {}
+
+ undici-types@6.20.0: {}
+
+ universalify@0.1.2: {}
+
+ universalify@2.0.1: {}
+
+ update-browserslist-db@1.1.2(browserslist@4.24.4):
+ dependencies:
+ browserslist: 4.24.4
+ escalade: 3.2.0
+ picocolors: 1.1.1
+
+ uri-js@4.4.1:
+ dependencies:
+ punycode: 2.3.1
+
+ utf8-byte-length@1.0.5: {}
+
+ util-deprecate@1.0.2: {}
+
+ verror@1.10.1:
+ dependencies:
+ assert-plus: 1.0.0
+ core-util-is: 1.0.2
+ extsprintf: 1.4.1
+ optional: true
+
+ vite@5.4.14(@types/node@22.13.1):
+ dependencies:
+ esbuild: 0.21.5
+ postcss: 8.5.1
+ rollup: 4.34.6
+ optionalDependencies:
+ '@types/node': 22.13.1
+ fsevents: 2.3.3
+
+ which@2.0.2:
+ dependencies:
+ isexe: 2.0.0
+
+ word-wrap@1.2.5: {}
+
+ wrap-ansi@7.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
+ wrap-ansi@8.1.0:
+ dependencies:
+ ansi-styles: 6.2.1
+ string-width: 5.1.2
+ strip-ansi: 7.1.0
+
+ wrappy@1.0.2: {}
+
+ xmlbuilder@15.1.1: {}
+
+ y18n@5.0.8: {}
+
+ yallist@3.1.1: {}
+
+ yallist@4.0.0: {}
+
+ yargs-parser@21.1.1: {}
+
+ yargs@17.7.2:
+ dependencies:
+ cliui: 8.0.1
+ escalade: 3.2.0
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ string-width: 4.2.3
+ y18n: 5.0.8
+ yargs-parser: 21.1.1
+
+ yauzl@2.10.0:
+ dependencies:
+ buffer-crc32: 0.2.13
+ fd-slicer: 1.1.0
+
+ yocto-queue@0.1.0: {}
+
+ zip-stream@4.1.1:
+ dependencies:
+ archiver-utils: 3.0.4
+ compress-commons: 4.1.2
+ readable-stream: 3.6.2
diff --git a/packages/rpc/examples/boops-javascript/src/main/index.js b/packages/rpc/examples/boops-javascript/src/main/index.js
new file mode 100644
index 000000000000..e4e7139d4732
--- /dev/null
+++ b/packages/rpc/examples/boops-javascript/src/main/index.js
@@ -0,0 +1,114 @@
+//@ts-check
+import { app, shell, BrowserWindow, ipcMain } from 'electron'
+import { join } from 'path'
+import { electronApp, optimizer, is } from '@electron-toolkit/utils'
+import { Events, register, RPCClient } from '../../../../dist'
+
+/** @type {BrowserWindow} */
+let mainWindow
+
+function createWindow() {
+ // Create the browser window.
+ mainWindow = new BrowserWindow({
+ width: 900,
+ height: 670,
+ show: false,
+ autoHideMenuBar: true,
+ webPreferences: {
+ preload: join(__dirname, '../preload/index.js'),
+ sandbox: false
+ }
+ })
+
+ mainWindow.on('ready-to-show', () => {
+ mainWindow.show()
+ })
+
+ mainWindow.webContents.setWindowOpenHandler((details) => {
+ shell.openExternal(details.url)
+ return { action: 'deny' }
+ })
+
+ // HMR for renderer base on electron-vite cli.
+ // Load the remote URL for development or the local html file for production.
+ if (is.dev && process.env['ELECTRON_RENDERER_URL']) {
+ mainWindow.loadURL(process.env['ELECTRON_RENDERER_URL'])
+ } else {
+ mainWindow.loadFile(join(__dirname, '../renderer/index.html'))
+ }
+}
+
+// This method will be called when Electron has finished
+// initialization and is ready to create browser windows.
+// Some APIs can only be used after this event occurs.
+app.whenReady().then(() => {
+ // Set app user model id for windows
+ electronApp.setAppUserModelId('com.electron')
+
+ // Default open or close DevTools by F12 in development
+ // and ignore CommandOrControl + R in production.
+ // see https://github.com/alex8088/electron-toolkit/tree/master/packages/utils
+ app.on('browser-window-created', (_, window) => {
+ optimizer.watchWindowShortcuts(window)
+ })
+
+ // IPC test
+ ipcMain.on('ping', () => console.log('pong'))
+
+ createWindow()
+
+ app.on('activate', function () {
+ // On macOS it's common to re-create a window in the app when the
+ // dock icon is clicked and there are no other windows open.
+ if (BrowserWindow.getAllWindows().length === 0) createWindow()
+ })
+})
+
+// Quit when all windows are closed, except on macOS. There, it's common
+// for applications and their menu bar to stay active until the user quits
+// explicitly with Cmd + Q.
+app.on('window-all-closed', () => {
+ if (process.platform !== 'darwin') {
+ app.quit()
+ }
+})
+
+// In this file you can include the rest of your app"s specific main process
+// code. You can also put them in separate files and require them here.
+
+// Set this to your Client ID.
+const clientId = '280984871685062656'
+
+// Only needed if you want to use spectate, join, or ask to join
+register(clientId)
+
+const client = new RPCClient()
+const startTimestamp = new Date().getTime()
+
+async function setActivity() {
+ if (!client || !mainWindow) {
+ return
+ }
+
+ const boops = await mainWindow.webContents.executeJavaScript(
+ 'document.querySelector("#boops").innerText'
+ )
+
+ await client.setActivity({
+ details: `booped ${boops} times`,
+ state: 'in slither party',
+ timestamps: { start: startTimestamp },
+ instance: false
+ })
+}
+
+client.once(Events.Ready, async () => {
+ await setActivity()
+
+ // Activity can only be set every 15 seconds
+ setInterval(async () => {
+ await setActivity()
+ }, 15e3)
+})
+
+client.login({ clientId }).catch(console.error)
diff --git a/packages/rpc/examples/boops-javascript/src/preload/index.js b/packages/rpc/examples/boops-javascript/src/preload/index.js
new file mode 100644
index 000000000000..8d62cb9d4f37
--- /dev/null
+++ b/packages/rpc/examples/boops-javascript/src/preload/index.js
@@ -0,0 +1,20 @@
+import { contextBridge } from 'electron'
+import { electronAPI } from '@electron-toolkit/preload'
+
+// Custom APIs for renderer
+const api = {}
+
+// Use `contextBridge` APIs to expose Electron APIs to
+// renderer only if context isolation is enabled, otherwise
+// just add to the DOM global.
+if (process.contextIsolated) {
+ try {
+ contextBridge.exposeInMainWorld('electron', electronAPI)
+ contextBridge.exposeInMainWorld('api', api)
+ } catch (error) {
+ console.error(error)
+ }
+} else {
+ window.electron = electronAPI
+ window.api = api
+}
diff --git a/packages/rpc/examples/boops-javascript/src/renderer/index.html b/packages/rpc/examples/boops-javascript/src/renderer/index.html
new file mode 100644
index 000000000000..700f006322a4
--- /dev/null
+++ b/packages/rpc/examples/boops-javascript/src/renderer/index.html
@@ -0,0 +1,22 @@
+
+
+
+
+ BOOP TEH SNEK (RPC JavaScript Example)
+
+
+
+
+
+
+
+ BOOP TEH SNEK
+
+ 0 BOOPS
+
+
+
+
diff --git a/packages/rpc/examples/boops-javascript/src/renderer/src/renderer.js b/packages/rpc/examples/boops-javascript/src/renderer/src/renderer.js
new file mode 100644
index 000000000000..7238af9d0ab7
--- /dev/null
+++ b/packages/rpc/examples/boops-javascript/src/renderer/src/renderer.js
@@ -0,0 +1,24 @@
+function init() {
+ window.addEventListener('DOMContentLoaded', () => {
+ const snek = document.querySelector('#snek')
+ const counter = document.querySelector('#boops')
+
+ let boops = 0
+
+ function boop() {
+ boops += 1
+ counter.innerHTML = `${boops} BOOPS`
+ }
+
+ snek.onmousedown = () => {
+ snek.style['font-size'] = '550%'
+ boop()
+ }
+
+ snek.onmouseup = () => {
+ snek.style['font-size'] = '500%'
+ }
+ })
+}
+
+init()
diff --git a/packages/rpc/examples/boops-javascript/src/renderer/styles.css b/packages/rpc/examples/boops-javascript/src/renderer/styles.css
new file mode 100644
index 000000000000..ad087087317c
--- /dev/null
+++ b/packages/rpc/examples/boops-javascript/src/renderer/styles.css
@@ -0,0 +1,46 @@
+body,
+html {
+ margin: 0px;
+ height: 100%;
+ cursor: default;
+ font-family: sans-serif;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-app-region: drag;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+@media (prefers-color-scheme: dark) {
+ html {
+ background-color: black;
+ color: white;
+ }
+}
+
+h1 {
+ text-align: center;
+ margin: auto;
+ padding-top: 1em;
+}
+
+#game {
+ height: 60%;
+ display: grid;
+ -webkit-app-region: no-drag;
+}
+
+#snek {
+ cursor: pointer;
+ font-size: 500%;
+ margin: auto;
+}
+
+#boops {
+ text-align: center;
+ -webkit-app-region: no-drag;
+}
diff --git a/packages/rpc/examples/boops-typescript/.editorconfig b/packages/rpc/examples/boops-typescript/.editorconfig
new file mode 100644
index 000000000000..9d08a1a828a3
--- /dev/null
+++ b/packages/rpc/examples/boops-typescript/.editorconfig
@@ -0,0 +1,9 @@
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
diff --git a/packages/rpc/examples/boops-typescript/.eslintignore b/packages/rpc/examples/boops-typescript/.eslintignore
new file mode 100644
index 000000000000..a6f34fea7618
--- /dev/null
+++ b/packages/rpc/examples/boops-typescript/.eslintignore
@@ -0,0 +1,4 @@
+node_modules
+dist
+out
+.gitignore
diff --git a/packages/rpc/examples/boops-typescript/.eslintrc.js b/packages/rpc/examples/boops-typescript/.eslintrc.js
new file mode 100644
index 000000000000..510e9051450c
--- /dev/null
+++ b/packages/rpc/examples/boops-typescript/.eslintrc.js
@@ -0,0 +1,7 @@
+module.exports = {
+ extends: [
+ 'eslint:recommended',
+ '@electron-toolkit/eslint-config-ts/recommended',
+ '@electron-toolkit/eslint-config-prettier'
+ ]
+}
diff --git a/packages/rpc/examples/boops-typescript/.gitignore b/packages/rpc/examples/boops-typescript/.gitignore
new file mode 100644
index 000000000000..42bd71b39aa9
--- /dev/null
+++ b/packages/rpc/examples/boops-typescript/.gitignore
@@ -0,0 +1,5 @@
+node_modules
+dist
+out
+.DS_Store
+*.log*
diff --git a/packages/rpc/examples/boops-typescript/.npmrc b/packages/rpc/examples/boops-typescript/.npmrc
new file mode 100644
index 000000000000..bf2e7648b076
--- /dev/null
+++ b/packages/rpc/examples/boops-typescript/.npmrc
@@ -0,0 +1 @@
+shamefully-hoist=true
diff --git a/packages/rpc/examples/boops-typescript/.prettierignore b/packages/rpc/examples/boops-typescript/.prettierignore
new file mode 100644
index 000000000000..9c6b791d5344
--- /dev/null
+++ b/packages/rpc/examples/boops-typescript/.prettierignore
@@ -0,0 +1,6 @@
+out
+dist
+pnpm-lock.yaml
+LICENSE.md
+tsconfig.json
+tsconfig.*.json
diff --git a/packages/rpc/examples/boops-typescript/.prettierrc.yaml b/packages/rpc/examples/boops-typescript/.prettierrc.yaml
new file mode 100644
index 000000000000..35893b3be337
--- /dev/null
+++ b/packages/rpc/examples/boops-typescript/.prettierrc.yaml
@@ -0,0 +1,4 @@
+singleQuote: true
+semi: false
+printWidth: 100
+trailingComma: none
diff --git a/packages/rpc/examples/boops-typescript/README.md b/packages/rpc/examples/boops-typescript/README.md
new file mode 100644
index 000000000000..b966aef1264c
--- /dev/null
+++ b/packages/rpc/examples/boops-typescript/README.md
@@ -0,0 +1,34 @@
+# boops-typescript
+
+A minimal Electron application using @discordjs/rpc with TypeScript.
+
+## Recommended IDE Setup
+
+- [VSCode](https://code.visualstudio.com/) + [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) + [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)
+
+## Project Setup
+
+### Install
+
+```bash
+$ pnpm install
+```
+
+### Development
+
+```bash
+$ pnpm dev
+```
+
+### Build
+
+```bash
+# For windows
+$ pnpm build:win
+
+# For macOS
+$ pnpm build:mac
+
+# For Linux
+$ pnpm build:linux
+```
diff --git a/packages/rpc/examples/boops-typescript/electron-builder.yml b/packages/rpc/examples/boops-typescript/electron-builder.yml
new file mode 100644
index 000000000000..763c0ade3722
--- /dev/null
+++ b/packages/rpc/examples/boops-typescript/electron-builder.yml
@@ -0,0 +1,43 @@
+appId: com.electron.app
+productName: boops-typescript
+directories:
+ buildResources: build
+files:
+ - '!**/.vscode/*'
+ - '!src/*'
+ - '!electron.vite.config.{js,ts,mjs,cjs}'
+ - '!{.eslintignore,.eslintrc.js,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}'
+ - '!{.env,.env.*,.npmrc,pnpm-lock.yaml}'
+ - '!{tsconfig.json,tsconfig.node.json,tsconfig.web.json}'
+asarUnpack:
+ - resources/**
+win:
+ executableName: boops-typescript
+nsis:
+ artifactName: ${name}-${version}-setup.${ext}
+ shortcutName: ${productName}
+ uninstallDisplayName: ${productName}
+ createDesktopShortcut: always
+mac:
+ entitlementsInherit: build/entitlements.mac.plist
+ extendInfo:
+ - NSCameraUsageDescription: Application requests access to the device's camera.
+ - NSMicrophoneUsageDescription: Application requests access to the device's microphone.
+ - NSDocumentsFolderUsageDescription: Application requests access to the user's Documents folder.
+ - NSDownloadsFolderUsageDescription: Application requests access to the user's Downloads folder.
+ notarize: false
+dmg:
+ artifactName: ${name}-${version}.${ext}
+linux:
+ target:
+ - AppImage
+ - snap
+ - deb
+ maintainer: electronjs.org
+ category: Utility
+appImage:
+ artifactName: ${name}-${version}.${ext}
+npmRebuild: false
+publish:
+ provider: generic
+ url: https://example.com/auto-updates
diff --git a/packages/rpc/examples/boops-typescript/electron.vite.config.ts b/packages/rpc/examples/boops-typescript/electron.vite.config.ts
new file mode 100644
index 000000000000..3acc2e8e0ed9
--- /dev/null
+++ b/packages/rpc/examples/boops-typescript/electron.vite.config.ts
@@ -0,0 +1,11 @@
+import { defineConfig, externalizeDepsPlugin } from 'electron-vite'
+
+export default defineConfig({
+ main: {
+ plugins: [externalizeDepsPlugin()]
+ },
+ preload: {
+ plugins: [externalizeDepsPlugin()]
+ },
+ renderer: {}
+})
diff --git a/packages/rpc/examples/boops-typescript/package.json b/packages/rpc/examples/boops-typescript/package.json
new file mode 100644
index 000000000000..32c225293899
--- /dev/null
+++ b/packages/rpc/examples/boops-typescript/package.json
@@ -0,0 +1,38 @@
+{
+ "name": "boops-typescript",
+ "version": "1.0.0",
+ "description": "A minimal Electron application using @discordjs/rpc with TypeScript",
+ "main": "./out/main/index.js",
+ "scripts": {
+ "format": "prettier --write .",
+ "lint": "eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix",
+ "typecheck:node": "tsc --noEmit -p tsconfig.node.json --composite false",
+ "typecheck:web": "tsc --noEmit -p tsconfig.web.json --composite false",
+ "typecheck": "npm run typecheck:node && npm run typecheck:web",
+ "start": "electron-vite preview",
+ "dev": "electron-vite dev",
+ "build": "npm run typecheck && electron-vite build",
+ "postinstall": "electron-builder install-app-deps",
+ "build:unpack": "npm run build && electron-builder --dir",
+ "build:win": "npm run build && electron-builder --win",
+ "build:mac": "npm run build && electron-builder --mac",
+ "build:linux": "npm run build && electron-builder --linux"
+ },
+ "dependencies": {
+ "@electron-toolkit/preload": "^3.0.1",
+ "@electron-toolkit/utils": "^3.0.0"
+ },
+ "devDependencies": {
+ "@electron-toolkit/eslint-config-prettier": "^2.0.0",
+ "@electron-toolkit/eslint-config-ts": "^2.0.0",
+ "@electron-toolkit/tsconfig": "^1.0.1",
+ "@types/node": "^20.14.8",
+ "electron": "^31.0.2",
+ "electron-builder": "^24.13.3",
+ "electron-vite": "^2.3.0",
+ "eslint": "^8.57.0",
+ "prettier": "^3.3.2",
+ "typescript": "^5.5.2",
+ "vite": "^5.3.1"
+ }
+}
diff --git a/packages/rpc/examples/boops-typescript/pnpm-lock.yaml b/packages/rpc/examples/boops-typescript/pnpm-lock.yaml
new file mode 100644
index 000000000000..258fffc595f9
--- /dev/null
+++ b/packages/rpc/examples/boops-typescript/pnpm-lock.yaml
@@ -0,0 +1,5289 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+ .:
+ dependencies:
+ '@electron-toolkit/preload':
+ specifier: ^3.0.1
+ version: 3.0.1(electron@31.7.7)
+ '@electron-toolkit/utils':
+ specifier: ^3.0.0
+ version: 3.0.0(electron@31.7.7)
+ devDependencies:
+ '@electron-toolkit/eslint-config-prettier':
+ specifier: ^2.0.0
+ version: 2.0.0(eslint@8.57.1)(prettier@3.5.0)
+ '@electron-toolkit/eslint-config-ts':
+ specifier: ^2.0.0
+ version: 2.0.0(eslint@8.57.1)(typescript@5.7.3)
+ '@electron-toolkit/tsconfig':
+ specifier: ^1.0.1
+ version: 1.0.1(@types/node@20.17.17)
+ '@types/node':
+ specifier: ^20.14.8
+ version: 20.17.17
+ electron:
+ specifier: ^31.0.2
+ version: 31.7.7
+ electron-builder:
+ specifier: ^24.13.3
+ version: 24.13.3(electron-builder-squirrel-windows@24.13.3)
+ electron-vite:
+ specifier: ^2.3.0
+ version: 2.3.0(vite@5.4.14(@types/node@20.17.17))
+ eslint:
+ specifier: ^8.57.0
+ version: 8.57.1
+ prettier:
+ specifier: ^3.3.2
+ version: 3.5.0
+ typescript:
+ specifier: ^5.5.2
+ version: 5.7.3
+ vite:
+ specifier: ^5.3.1
+ version: 5.4.14(@types/node@20.17.17)
+
+packages:
+ 7zip-bin@5.2.0:
+ resolution:
+ {
+ integrity: sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==
+ }
+
+ '@ampproject/remapping@2.3.0':
+ resolution:
+ {
+ integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==
+ }
+ engines: { node: '>=6.0.0' }
+
+ '@babel/code-frame@7.26.2':
+ resolution:
+ {
+ integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/compat-data@7.26.8':
+ resolution:
+ {
+ integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/core@7.26.8':
+ resolution:
+ {
+ integrity: sha512-l+lkXCHS6tQEc5oUpK28xBOZ6+HwaH7YwoYQbLFiYb4nS2/l1tKnZEtEWkD0GuiYdvArf9qBS0XlQGXzPMsNqQ==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/generator@7.26.8':
+ resolution:
+ {
+ integrity: sha512-ef383X5++iZHWAXX0SXQR6ZyQhw/0KtTkrTz61WXRhFM6dhpHulO/RJz79L8S6ugZHJkOOkUrUdxgdF2YiPFnA==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helper-compilation-targets@7.26.5':
+ resolution:
+ {
+ integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helper-module-imports@7.25.9':
+ resolution:
+ {
+ integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helper-module-transforms@7.26.0':
+ resolution:
+ {
+ integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==
+ }
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-plugin-utils@7.26.5':
+ resolution:
+ {
+ integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helper-string-parser@7.25.9':
+ resolution:
+ {
+ integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helper-validator-identifier@7.25.9':
+ resolution:
+ {
+ integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helper-validator-option@7.25.9':
+ resolution:
+ {
+ integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/helpers@7.26.7':
+ resolution:
+ {
+ integrity: sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/parser@7.26.8':
+ resolution:
+ {
+ integrity: sha512-TZIQ25pkSoaKEYYaHbbxkfL36GNsQ6iFiBbeuzAkLnXayKR1yP1zFe+NxuZWWsUyvt8icPU9CCq0sgWGXR1GEw==
+ }
+ engines: { node: '>=6.0.0' }
+ hasBin: true
+
+ '@babel/plugin-transform-arrow-functions@7.25.9':
+ resolution:
+ {
+ integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==
+ }
+ engines: { node: '>=6.9.0' }
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/template@7.26.8':
+ resolution:
+ {
+ integrity: sha512-iNKaX3ZebKIsCvJ+0jd6embf+Aulaa3vNBqZ41kM7iTWjx5qzWKXGHiJUW3+nTpQ18SG11hdF8OAzKrpXkb96Q==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/traverse@7.26.8':
+ resolution:
+ {
+ integrity: sha512-nic9tRkjYH0oB2dzr/JoGIm+4Q6SuYeLEiIiZDwBscRMYFJ+tMAz98fuel9ZnbXViA2I0HVSSRRK8DW5fjXStA==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@babel/types@7.26.8':
+ resolution:
+ {
+ integrity: sha512-eUuWapzEGWFEpHFxgEaBG8e3n6S8L3MSu0oda755rOfabWPnh0Our1AozNFVUxGFIhbKgd1ksprsoDGMinTOTA==
+ }
+ engines: { node: '>=6.9.0' }
+
+ '@develar/schema-utils@2.6.5':
+ resolution:
+ {
+ integrity: sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==
+ }
+ engines: { node: '>= 8.9.0' }
+
+ '@electron-toolkit/eslint-config-prettier@2.0.0':
+ resolution:
+ {
+ integrity: sha512-L+uG1FvJcAZkPZpSi6B1pmdpyJFyOxWDTjr1Vs47vSryxv/EX1Ch6o4HVsachlDq3fMEkDgojuP2F3ZvVZMoLw==
+ }
+ peerDependencies:
+ eslint: '>= 8.0.0'
+ prettier: '>= 3.0.0'
+
+ '@electron-toolkit/eslint-config-ts@2.0.0':
+ resolution:
+ {
+ integrity: sha512-NGXadMyWH9+ZsgYe/u5E0mqK2qTDq01kKKnyo7oiq/7v/dWoMoPhqSkn69NZvt7WmnFNOm57l71fv6128mAx3Q==
+ }
+ peerDependencies:
+ eslint: '>=8.56.0'
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@electron-toolkit/preload@3.0.1':
+ resolution:
+ {
+ integrity: sha512-EzoQmpK8jqqU8YnM5jRe0GJjGVJPke2KtANqz8QtN2JPT96ViOvProBdK5C6riCm0j1T8jjAGVQCZLQy9OVoIA==
+ }
+ peerDependencies:
+ electron: '>=13.0.0'
+
+ '@electron-toolkit/tsconfig@1.0.1':
+ resolution:
+ {
+ integrity: sha512-M0Mol3odspvtCuheyujLNAW7bXq7KFNYVMRtpjFa4ZfES4MuklXBC7Nli/omvc+PRKlrklgAGx3l4VakjNo8jg==
+ }
+ peerDependencies:
+ '@types/node': '*'
+
+ '@electron-toolkit/utils@3.0.0':
+ resolution:
+ {
+ integrity: sha512-GaXHDhiT7KCvMJjXdp/QqpYinq69T/Pdl49Z1XLf8mKGf63dnsODMWyrmIjEQ0z/vG7dO8qF3fvmI6Eb2lUNZA==
+ }
+ peerDependencies:
+ electron: '>=13.0.0'
+
+ '@electron/asar@3.2.18':
+ resolution:
+ {
+ integrity: sha512-2XyvMe3N3Nrs8cV39IKELRHTYUWFKrmqqSY1U+GMlc0jvqjIVnoxhNd2H4JolWQncbJi1DCvb5TNxZuI2fEjWg==
+ }
+ engines: { node: '>=10.12.0' }
+ hasBin: true
+
+ '@electron/get@2.0.3':
+ resolution:
+ {
+ integrity: sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==
+ }
+ engines: { node: '>=12' }
+
+ '@electron/notarize@2.2.1':
+ resolution:
+ {
+ integrity: sha512-aL+bFMIkpR0cmmj5Zgy0LMKEpgy43/hw5zadEArgmAMWWlKc5buwFvFT9G/o/YJkvXAJm5q3iuTuLaiaXW39sg==
+ }
+ engines: { node: '>= 10.0.0' }
+
+ '@electron/osx-sign@1.0.5':
+ resolution:
+ {
+ integrity: sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==
+ }
+ engines: { node: '>=12.0.0' }
+ hasBin: true
+
+ '@electron/universal@1.5.1':
+ resolution:
+ {
+ integrity: sha512-kbgXxyEauPJiQQUNG2VgUeyfQNFk6hBF11ISN2PNI6agUgPl55pv4eQmaqHzTAzchBvqZ2tQuRVaPStGf0mxGw==
+ }
+ engines: { node: '>=8.6' }
+
+ '@esbuild/aix-ppc64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==
+ }
+ engines: { node: '>=12' }
+ cpu: [ppc64]
+ os: [aix]
+
+ '@esbuild/android-arm64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==
+ }
+ engines: { node: '>=12' }
+ cpu: [arm64]
+ os: [android]
+
+ '@esbuild/android-arm@0.21.5':
+ resolution:
+ {
+ integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==
+ }
+ engines: { node: '>=12' }
+ cpu: [arm]
+ os: [android]
+
+ '@esbuild/android-x64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==
+ }
+ engines: { node: '>=12' }
+ cpu: [x64]
+ os: [android]
+
+ '@esbuild/darwin-arm64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==
+ }
+ engines: { node: '>=12' }
+ cpu: [arm64]
+ os: [darwin]
+
+ '@esbuild/darwin-x64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==
+ }
+ engines: { node: '>=12' }
+ cpu: [x64]
+ os: [darwin]
+
+ '@esbuild/freebsd-arm64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==
+ }
+ engines: { node: '>=12' }
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-x64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==
+ }
+ engines: { node: '>=12' }
+ cpu: [x64]
+ os: [freebsd]
+
+ '@esbuild/linux-arm64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==
+ }
+ engines: { node: '>=12' }
+ cpu: [arm64]
+ os: [linux]
+
+ '@esbuild/linux-arm@0.21.5':
+ resolution:
+ {
+ integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==
+ }
+ engines: { node: '>=12' }
+ cpu: [arm]
+ os: [linux]
+
+ '@esbuild/linux-ia32@0.21.5':
+ resolution:
+ {
+ integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==
+ }
+ engines: { node: '>=12' }
+ cpu: [ia32]
+ os: [linux]
+
+ '@esbuild/linux-loong64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==
+ }
+ engines: { node: '>=12' }
+ cpu: [loong64]
+ os: [linux]
+
+ '@esbuild/linux-mips64el@0.21.5':
+ resolution:
+ {
+ integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==
+ }
+ engines: { node: '>=12' }
+ cpu: [mips64el]
+ os: [linux]
+
+ '@esbuild/linux-ppc64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==
+ }
+ engines: { node: '>=12' }
+ cpu: [ppc64]
+ os: [linux]
+
+ '@esbuild/linux-riscv64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==
+ }
+ engines: { node: '>=12' }
+ cpu: [riscv64]
+ os: [linux]
+
+ '@esbuild/linux-s390x@0.21.5':
+ resolution:
+ {
+ integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==
+ }
+ engines: { node: '>=12' }
+ cpu: [s390x]
+ os: [linux]
+
+ '@esbuild/linux-x64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==
+ }
+ engines: { node: '>=12' }
+ cpu: [x64]
+ os: [linux]
+
+ '@esbuild/netbsd-x64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==
+ }
+ engines: { node: '>=12' }
+ cpu: [x64]
+ os: [netbsd]
+
+ '@esbuild/openbsd-x64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==
+ }
+ engines: { node: '>=12' }
+ cpu: [x64]
+ os: [openbsd]
+
+ '@esbuild/sunos-x64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==
+ }
+ engines: { node: '>=12' }
+ cpu: [x64]
+ os: [sunos]
+
+ '@esbuild/win32-arm64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==
+ }
+ engines: { node: '>=12' }
+ cpu: [arm64]
+ os: [win32]
+
+ '@esbuild/win32-ia32@0.21.5':
+ resolution:
+ {
+ integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==
+ }
+ engines: { node: '>=12' }
+ cpu: [ia32]
+ os: [win32]
+
+ '@esbuild/win32-x64@0.21.5':
+ resolution:
+ {
+ integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==
+ }
+ engines: { node: '>=12' }
+ cpu: [x64]
+ os: [win32]
+
+ '@eslint-community/eslint-utils@4.4.1':
+ resolution:
+ {
+ integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==
+ }
+ engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+
+ '@eslint-community/regexpp@4.12.1':
+ resolution:
+ {
+ integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==
+ }
+ engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 }
+
+ '@eslint/eslintrc@2.1.4':
+ resolution:
+ {
+ integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==
+ }
+ engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
+
+ '@eslint/js@8.57.1':
+ resolution:
+ {
+ integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==
+ }
+ engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
+
+ '@humanwhocodes/config-array@0.13.0':
+ resolution:
+ {
+ integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==
+ }
+ engines: { node: '>=10.10.0' }
+ deprecated: Use @eslint/config-array instead
+
+ '@humanwhocodes/module-importer@1.0.1':
+ resolution:
+ {
+ integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
+ }
+ engines: { node: '>=12.22' }
+
+ '@humanwhocodes/object-schema@2.0.3':
+ resolution:
+ {
+ integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==
+ }
+ deprecated: Use @eslint/object-schema instead
+
+ '@isaacs/cliui@8.0.2':
+ resolution:
+ {
+ integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==
+ }
+ engines: { node: '>=12' }
+
+ '@jridgewell/gen-mapping@0.3.8':
+ resolution:
+ {
+ integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==
+ }
+ engines: { node: '>=6.0.0' }
+
+ '@jridgewell/resolve-uri@3.1.2':
+ resolution:
+ {
+ integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
+ }
+ engines: { node: '>=6.0.0' }
+
+ '@jridgewell/set-array@1.2.1':
+ resolution:
+ {
+ integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
+ }
+ engines: { node: '>=6.0.0' }
+
+ '@jridgewell/sourcemap-codec@1.5.0':
+ resolution:
+ {
+ integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==
+ }
+
+ '@jridgewell/trace-mapping@0.3.25':
+ resolution:
+ {
+ integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
+ }
+
+ '@malept/cross-spawn-promise@1.1.1':
+ resolution:
+ {
+ integrity: sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==
+ }
+ engines: { node: '>= 10' }
+
+ '@malept/flatpak-bundler@0.4.0':
+ resolution:
+ {
+ integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==
+ }
+ engines: { node: '>= 10.0.0' }
+
+ '@nodelib/fs.scandir@2.1.5':
+ resolution:
+ {
+ integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
+ }
+ engines: { node: '>= 8' }
+
+ '@nodelib/fs.stat@2.0.5':
+ resolution:
+ {
+ integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
+ }
+ engines: { node: '>= 8' }
+
+ '@nodelib/fs.walk@1.2.8':
+ resolution:
+ {
+ integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
+ }
+ engines: { node: '>= 8' }
+
+ '@pkgjs/parseargs@0.11.0':
+ resolution:
+ {
+ integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
+ }
+ engines: { node: '>=14' }
+
+ '@pkgr/core@0.1.1':
+ resolution:
+ {
+ integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==
+ }
+ engines: { node: ^12.20.0 || ^14.18.0 || >=16.0.0 }
+
+ '@rollup/rollup-android-arm-eabi@4.34.6':
+ resolution:
+ {
+ integrity: sha512-+GcCXtOQoWuC7hhX1P00LqjjIiS/iOouHXhMdiDSnq/1DGTox4SpUvO52Xm+div6+106r+TcvOeo/cxvyEyTgg==
+ }
+ cpu: [arm]
+ os: [android]
+
+ '@rollup/rollup-android-arm64@4.34.6':
+ resolution:
+ {
+ integrity: sha512-E8+2qCIjciYUnCa1AiVF1BkRgqIGW9KzJeesQqVfyRITGQN+dFuoivO0hnro1DjT74wXLRZ7QF8MIbz+luGaJA==
+ }
+ cpu: [arm64]
+ os: [android]
+
+ '@rollup/rollup-darwin-arm64@4.34.6':
+ resolution:
+ {
+ integrity: sha512-z9Ib+OzqN3DZEjX7PDQMHEhtF+t6Mi2z/ueChQPLS/qUMKY7Ybn5A2ggFoKRNRh1q1T03YTQfBTQCJZiepESAg==
+ }
+ cpu: [arm64]
+ os: [darwin]
+
+ '@rollup/rollup-darwin-x64@4.34.6':
+ resolution:
+ {
+ integrity: sha512-PShKVY4u0FDAR7jskyFIYVyHEPCPnIQY8s5OcXkdU8mz3Y7eXDJPdyM/ZWjkYdR2m0izD9HHWA8sGcXn+Qrsyg==
+ }
+ cpu: [x64]
+ os: [darwin]
+
+ '@rollup/rollup-freebsd-arm64@4.34.6':
+ resolution:
+ {
+ integrity: sha512-YSwyOqlDAdKqs0iKuqvRHLN4SrD2TiswfoLfvYXseKbL47ht1grQpq46MSiQAx6rQEN8o8URtpXARCpqabqxGQ==
+ }
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@rollup/rollup-freebsd-x64@4.34.6':
+ resolution:
+ {
+ integrity: sha512-HEP4CgPAY1RxXwwL5sPFv6BBM3tVeLnshF03HMhJYCNc6kvSqBgTMmsEjb72RkZBAWIqiPUyF1JpEBv5XT9wKQ==
+ }
+ cpu: [x64]
+ os: [freebsd]
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.34.6':
+ resolution:
+ {
+ integrity: sha512-88fSzjC5xeH9S2Vg3rPgXJULkHcLYMkh8faix8DX4h4TIAL65ekwuQMA/g2CXq8W+NJC43V6fUpYZNjaX3+IIg==
+ }
+ cpu: [arm]
+ os: [linux]
+
+ '@rollup/rollup-linux-arm-musleabihf@4.34.6':
+ resolution:
+ {
+ integrity: sha512-wM4ztnutBqYFyvNeR7Av+reWI/enK9tDOTKNF+6Kk2Q96k9bwhDDOlnCUNRPvromlVXo04riSliMBs/Z7RteEg==
+ }
+ cpu: [arm]
+ os: [linux]
+
+ '@rollup/rollup-linux-arm64-gnu@4.34.6':
+ resolution:
+ {
+ integrity: sha512-9RyprECbRa9zEjXLtvvshhw4CMrRa3K+0wcp3KME0zmBe1ILmvcVHnypZ/aIDXpRyfhSYSuN4EPdCCj5Du8FIA==
+ }
+ cpu: [arm64]
+ os: [linux]
+
+ '@rollup/rollup-linux-arm64-musl@4.34.6':
+ resolution:
+ {
+ integrity: sha512-qTmklhCTyaJSB05S+iSovfo++EwnIEZxHkzv5dep4qoszUMX5Ca4WM4zAVUMbfdviLgCSQOu5oU8YoGk1s6M9Q==
+ }
+ cpu: [arm64]
+ os: [linux]
+
+ '@rollup/rollup-linux-loongarch64-gnu@4.34.6':
+ resolution:
+ {
+ integrity: sha512-4Qmkaps9yqmpjY5pvpkfOerYgKNUGzQpFxV6rnS7c/JfYbDSU0y6WpbbredB5cCpLFGJEqYX40WUmxMkwhWCjw==
+ }
+ cpu: [loong64]
+ os: [linux]
+
+ '@rollup/rollup-linux-powerpc64le-gnu@4.34.6':
+ resolution:
+ {
+ integrity: sha512-Zsrtux3PuaxuBTX/zHdLaFmcofWGzaWW1scwLU3ZbW/X+hSsFbz9wDIp6XvnT7pzYRl9MezWqEqKy7ssmDEnuQ==
+ }
+ cpu: [ppc64]
+ os: [linux]
+
+ '@rollup/rollup-linux-riscv64-gnu@4.34.6':
+ resolution:
+ {
+ integrity: sha512-aK+Zp+CRM55iPrlyKiU3/zyhgzWBxLVrw2mwiQSYJRobCURb781+XstzvA8Gkjg/hbdQFuDw44aUOxVQFycrAg==
+ }
+ cpu: [riscv64]
+ os: [linux]
+
+ '@rollup/rollup-linux-s390x-gnu@4.34.6':
+ resolution:
+ {
+ integrity: sha512-WoKLVrY9ogmaYPXwTH326+ErlCIgMmsoRSx6bO+l68YgJnlOXhygDYSZe/qbUJCSiCiZAQ+tKm88NcWuUXqOzw==
+ }
+ cpu: [s390x]
+ os: [linux]
+
+ '@rollup/rollup-linux-x64-gnu@4.34.6':
+ resolution:
+ {
+ integrity: sha512-Sht4aFvmA4ToHd2vFzwMFaQCiYm2lDFho5rPcvPBT5pCdC+GwHG6CMch4GQfmWTQ1SwRKS0dhDYb54khSrjDWw==
+ }
+ cpu: [x64]
+ os: [linux]
+
+ '@rollup/rollup-linux-x64-musl@4.34.6':
+ resolution:
+ {
+ integrity: sha512-zmmpOQh8vXc2QITsnCiODCDGXFC8LMi64+/oPpPx5qz3pqv0s6x46ps4xoycfUiVZps5PFn1gksZzo4RGTKT+A==
+ }
+ cpu: [x64]
+ os: [linux]
+
+ '@rollup/rollup-win32-arm64-msvc@4.34.6':
+ resolution:
+ {
+ integrity: sha512-3/q1qUsO/tLqGBaD4uXsB6coVGB3usxw3qyeVb59aArCgedSF66MPdgRStUd7vbZOsko/CgVaY5fo2vkvPLWiA==
+ }
+ cpu: [arm64]
+ os: [win32]
+
+ '@rollup/rollup-win32-ia32-msvc@4.34.6':
+ resolution:
+ {
+ integrity: sha512-oLHxuyywc6efdKVTxvc0135zPrRdtYVjtVD5GUm55I3ODxhU/PwkQFD97z16Xzxa1Fz0AEe4W/2hzRtd+IfpOA==
+ }
+ cpu: [ia32]
+ os: [win32]
+
+ '@rollup/rollup-win32-x64-msvc@4.34.6':
+ resolution:
+ {
+ integrity: sha512-0PVwmgzZ8+TZ9oGBmdZoQVXflbvuwzN/HRclujpl4N/q3i+y0lqLw8n1bXA8ru3sApDjlmONaNAuYr38y1Kr9w==
+ }
+ cpu: [x64]
+ os: [win32]
+
+ '@sindresorhus/is@4.6.0':
+ resolution:
+ {
+ integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==
+ }
+ engines: { node: '>=10' }
+
+ '@szmarczak/http-timer@4.0.6':
+ resolution:
+ {
+ integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==
+ }
+ engines: { node: '>=10' }
+
+ '@tootallnate/once@2.0.0':
+ resolution:
+ {
+ integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
+ }
+ engines: { node: '>= 10' }
+
+ '@types/cacheable-request@6.0.3':
+ resolution:
+ {
+ integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==
+ }
+
+ '@types/debug@4.1.12':
+ resolution:
+ {
+ integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==
+ }
+
+ '@types/estree@1.0.6':
+ resolution:
+ {
+ integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==
+ }
+
+ '@types/fs-extra@9.0.13':
+ resolution:
+ {
+ integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==
+ }
+
+ '@types/gensync@1.0.4':
+ resolution:
+ {
+ integrity: sha512-C3YYeRQWp2fmq9OryX+FoDy8nXS6scQ7dPptD8LnFDAUNcKWJjXQKDNJD3HVm+kOUsXhTOkpi69vI4EuAr95bA==
+ }
+
+ '@types/http-cache-semantics@4.0.4':
+ resolution:
+ {
+ integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==
+ }
+
+ '@types/keyv@3.1.4':
+ resolution:
+ {
+ integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==
+ }
+
+ '@types/ms@2.1.0':
+ resolution:
+ {
+ integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==
+ }
+
+ '@types/node@20.17.17':
+ resolution:
+ {
+ integrity: sha512-/WndGO4kIfMicEQLTi/mDANUu/iVUhT7KboZPdEqqHQ4aTS+3qT3U5gIqWDFV+XouorjfgGqvKILJeHhuQgFYg==
+ }
+
+ '@types/plist@3.0.5':
+ resolution:
+ {
+ integrity: sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==
+ }
+
+ '@types/responselike@1.0.3':
+ resolution:
+ {
+ integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==
+ }
+
+ '@types/verror@1.10.10':
+ resolution:
+ {
+ integrity: sha512-l4MM0Jppn18hb9xmM6wwD1uTdShpf9Pn80aXTStnK1C94gtPvJcV2FrDmbOQUAQfJ1cKZHktkQUDwEqaAKXMMg==
+ }
+
+ '@types/yauzl@2.10.3':
+ resolution:
+ {
+ integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==
+ }
+
+ '@typescript-eslint/eslint-plugin@7.18.0':
+ resolution:
+ {
+ integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==
+ }
+ engines: { node: ^18.18.0 || >=20.0.0 }
+ peerDependencies:
+ '@typescript-eslint/parser': ^7.0.0
+ eslint: ^8.56.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/parser@7.18.0':
+ resolution:
+ {
+ integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==
+ }
+ engines: { node: ^18.18.0 || >=20.0.0 }
+ peerDependencies:
+ eslint: ^8.56.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/scope-manager@7.18.0':
+ resolution:
+ {
+ integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==
+ }
+ engines: { node: ^18.18.0 || >=20.0.0 }
+
+ '@typescript-eslint/type-utils@7.18.0':
+ resolution:
+ {
+ integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==
+ }
+ engines: { node: ^18.18.0 || >=20.0.0 }
+ peerDependencies:
+ eslint: ^8.56.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/types@7.18.0':
+ resolution:
+ {
+ integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==
+ }
+ engines: { node: ^18.18.0 || >=20.0.0 }
+
+ '@typescript-eslint/typescript-estree@7.18.0':
+ resolution:
+ {
+ integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==
+ }
+ engines: { node: ^18.18.0 || >=20.0.0 }
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/utils@7.18.0':
+ resolution:
+ {
+ integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==
+ }
+ engines: { node: ^18.18.0 || >=20.0.0 }
+ peerDependencies:
+ eslint: ^8.56.0
+
+ '@typescript-eslint/visitor-keys@7.18.0':
+ resolution:
+ {
+ integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==
+ }
+ engines: { node: ^18.18.0 || >=20.0.0 }
+
+ '@ungap/structured-clone@1.3.0':
+ resolution:
+ {
+ integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==
+ }
+
+ '@xmldom/xmldom@0.8.10':
+ resolution:
+ {
+ integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==
+ }
+ engines: { node: '>=10.0.0' }
+
+ acorn-jsx@5.3.2:
+ resolution:
+ {
+ integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
+ }
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+
+ acorn@8.14.0:
+ resolution:
+ {
+ integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==
+ }
+ engines: { node: '>=0.4.0' }
+ hasBin: true
+
+ agent-base@6.0.2:
+ resolution:
+ {
+ integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
+ }
+ engines: { node: '>= 6.0.0' }
+
+ ajv-keywords@3.5.2:
+ resolution:
+ {
+ integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
+ }
+ peerDependencies:
+ ajv: ^6.9.1
+
+ ajv@6.12.6:
+ resolution:
+ {
+ integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+ }
+
+ ansi-regex@5.0.1:
+ resolution:
+ {
+ integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
+ }
+ engines: { node: '>=8' }
+
+ ansi-regex@6.1.0:
+ resolution:
+ {
+ integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==
+ }
+ engines: { node: '>=12' }
+
+ ansi-styles@4.3.0:
+ resolution:
+ {
+ integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+ }
+ engines: { node: '>=8' }
+
+ ansi-styles@6.2.1:
+ resolution:
+ {
+ integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
+ }
+ engines: { node: '>=12' }
+
+ app-builder-bin@4.0.0:
+ resolution:
+ {
+ integrity: sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==
+ }
+
+ app-builder-lib@24.13.3:
+ resolution:
+ {
+ integrity: sha512-FAzX6IBit2POXYGnTCT8YHFO/lr5AapAII6zzhQO3Rw4cEDOgK+t1xhLc5tNcKlicTHlo9zxIwnYCX9X2DLkig==
+ }
+ engines: { node: '>=14.0.0' }
+ peerDependencies:
+ dmg-builder: 24.13.3
+ electron-builder-squirrel-windows: 24.13.3
+
+ archiver-utils@2.1.0:
+ resolution:
+ {
+ integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==
+ }
+ engines: { node: '>= 6' }
+
+ archiver-utils@3.0.4:
+ resolution:
+ {
+ integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==
+ }
+ engines: { node: '>= 10' }
+
+ archiver@5.3.2:
+ resolution:
+ {
+ integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==
+ }
+ engines: { node: '>= 10' }
+
+ argparse@2.0.1:
+ resolution:
+ {
+ integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+ }
+
+ array-union@2.1.0:
+ resolution:
+ {
+ integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
+ }
+ engines: { node: '>=8' }
+
+ assert-plus@1.0.0:
+ resolution:
+ {
+ integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==
+ }
+ engines: { node: '>=0.8' }
+
+ astral-regex@2.0.0:
+ resolution:
+ {
+ integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
+ }
+ engines: { node: '>=8' }
+
+ async-exit-hook@2.0.1:
+ resolution:
+ {
+ integrity: sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==
+ }
+ engines: { node: '>=0.12.0' }
+
+ async@3.2.6:
+ resolution:
+ {
+ integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==
+ }
+
+ asynckit@0.4.0:
+ resolution:
+ {
+ integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
+ }
+
+ at-least-node@1.0.0:
+ resolution:
+ {
+ integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
+ }
+ engines: { node: '>= 4.0.0' }
+
+ balanced-match@1.0.2:
+ resolution:
+ {
+ integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+ }
+
+ base64-js@1.5.1:
+ resolution:
+ {
+ integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+ }
+
+ bl@4.1.0:
+ resolution:
+ {
+ integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
+ }
+
+ bluebird-lst@1.0.9:
+ resolution:
+ {
+ integrity: sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==
+ }
+
+ bluebird@3.7.2:
+ resolution:
+ {
+ integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
+ }
+
+ boolean@3.2.0:
+ resolution:
+ {
+ integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==
+ }
+ deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
+
+ brace-expansion@1.1.11:
+ resolution:
+ {
+ integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+ }
+
+ brace-expansion@2.0.1:
+ resolution:
+ {
+ integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
+ }
+
+ braces@3.0.3:
+ resolution:
+ {
+ integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
+ }
+ engines: { node: '>=8' }
+
+ browserslist@4.24.4:
+ resolution:
+ {
+ integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==
+ }
+ engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 }
+ hasBin: true
+
+ buffer-crc32@0.2.13:
+ resolution:
+ {
+ integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==
+ }
+
+ buffer-equal@1.0.1:
+ resolution:
+ {
+ integrity: sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==
+ }
+ engines: { node: '>=0.4' }
+
+ buffer-from@1.1.2:
+ resolution:
+ {
+ integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
+ }
+
+ buffer@5.7.1:
+ resolution:
+ {
+ integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
+ }
+
+ builder-util-runtime@9.2.4:
+ resolution:
+ {
+ integrity: sha512-upp+biKpN/XZMLim7aguUyW8s0FUpDvOtK6sbanMFDAMBzpHDqdhgVYm6zc9HJ6nWo7u2Lxk60i2M6Jd3aiNrA==
+ }
+ engines: { node: '>=12.0.0' }
+
+ builder-util@24.13.1:
+ resolution:
+ {
+ integrity: sha512-NhbCSIntruNDTOVI9fdXz0dihaqX2YuE1D6zZMrwiErzH4ELZHE6mdiB40wEgZNprDia+FghRFgKoAqMZRRjSA==
+ }
+
+ cac@6.7.14:
+ resolution:
+ {
+ integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==
+ }
+ engines: { node: '>=8' }
+
+ cacheable-lookup@5.0.4:
+ resolution:
+ {
+ integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==
+ }
+ engines: { node: '>=10.6.0' }
+
+ cacheable-request@7.0.4:
+ resolution:
+ {
+ integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==
+ }
+ engines: { node: '>=8' }
+
+ callsites@3.1.0:
+ resolution:
+ {
+ integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+ }
+ engines: { node: '>=6' }
+
+ caniuse-lite@1.0.30001699:
+ resolution:
+ {
+ integrity: sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w==
+ }
+
+ chalk@4.1.2:
+ resolution:
+ {
+ integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
+ }
+ engines: { node: '>=10' }
+
+ chownr@2.0.0:
+ resolution:
+ {
+ integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
+ }
+ engines: { node: '>=10' }
+
+ chromium-pickle-js@0.2.0:
+ resolution:
+ {
+ integrity: sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==
+ }
+
+ ci-info@3.9.0:
+ resolution:
+ {
+ integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
+ }
+ engines: { node: '>=8' }
+
+ cli-truncate@2.1.0:
+ resolution:
+ {
+ integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==
+ }
+ engines: { node: '>=8' }
+
+ cliui@8.0.1:
+ resolution:
+ {
+ integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
+ }
+ engines: { node: '>=12' }
+
+ clone-response@1.0.3:
+ resolution:
+ {
+ integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==
+ }
+
+ color-convert@2.0.1:
+ resolution:
+ {
+ integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+ }
+ engines: { node: '>=7.0.0' }
+
+ color-name@1.1.4:
+ resolution:
+ {
+ integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+ }
+
+ combined-stream@1.0.8:
+ resolution:
+ {
+ integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+ }
+ engines: { node: '>= 0.8' }
+
+ commander@5.1.0:
+ resolution:
+ {
+ integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
+ }
+ engines: { node: '>= 6' }
+
+ compare-version@0.1.2:
+ resolution:
+ {
+ integrity: sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==
+ }
+ engines: { node: '>=0.10.0' }
+
+ compress-commons@4.1.2:
+ resolution:
+ {
+ integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==
+ }
+ engines: { node: '>= 10' }
+
+ concat-map@0.0.1:
+ resolution:
+ {
+ integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
+ }
+
+ config-file-ts@0.2.6:
+ resolution:
+ {
+ integrity: sha512-6boGVaglwblBgJqGyxm4+xCmEGcWgnWHSWHY5jad58awQhB6gftq0G8HbzU39YqCIYHMLAiL1yjwiZ36m/CL8w==
+ }
+
+ convert-source-map@2.0.0:
+ resolution:
+ {
+ integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
+ }
+
+ core-util-is@1.0.2:
+ resolution:
+ {
+ integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==
+ }
+
+ core-util-is@1.0.3:
+ resolution:
+ {
+ integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
+ }
+
+ crc-32@1.2.2:
+ resolution:
+ {
+ integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==
+ }
+ engines: { node: '>=0.8' }
+ hasBin: true
+
+ crc32-stream@4.0.3:
+ resolution:
+ {
+ integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==
+ }
+ engines: { node: '>= 10' }
+
+ crc@3.8.0:
+ resolution:
+ {
+ integrity: sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==
+ }
+
+ cross-spawn@7.0.6:
+ resolution:
+ {
+ integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
+ }
+ engines: { node: '>= 8' }
+
+ debug@4.4.0:
+ resolution:
+ {
+ integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==
+ }
+ engines: { node: '>=6.0' }
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ decompress-response@6.0.0:
+ resolution:
+ {
+ integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==
+ }
+ engines: { node: '>=10' }
+
+ deep-is@0.1.4:
+ resolution:
+ {
+ integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
+ }
+
+ defer-to-connect@2.0.1:
+ resolution:
+ {
+ integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==
+ }
+ engines: { node: '>=10' }
+
+ define-data-property@1.1.4:
+ resolution:
+ {
+ integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==
+ }
+ engines: { node: '>= 0.4' }
+
+ define-properties@1.2.1:
+ resolution:
+ {
+ integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
+ }
+ engines: { node: '>= 0.4' }
+
+ delayed-stream@1.0.0:
+ resolution:
+ {
+ integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
+ }
+ engines: { node: '>=0.4.0' }
+
+ detect-node@2.1.0:
+ resolution:
+ {
+ integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==
+ }
+
+ dir-compare@3.3.0:
+ resolution:
+ {
+ integrity: sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==
+ }
+
+ dir-glob@3.0.1:
+ resolution:
+ {
+ integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
+ }
+ engines: { node: '>=8' }
+
+ dmg-builder@24.13.3:
+ resolution:
+ {
+ integrity: sha512-rcJUkMfnJpfCboZoOOPf4L29TRtEieHNOeAbYPWPxlaBw/Z1RKrRA86dOI9rwaI4tQSc/RD82zTNHprfUHXsoQ==
+ }
+
+ dmg-license@1.0.11:
+ resolution:
+ {
+ integrity: sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==
+ }
+ engines: { node: '>=8' }
+ os: [darwin]
+ hasBin: true
+
+ doctrine@3.0.0:
+ resolution:
+ {
+ integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
+ }
+ engines: { node: '>=6.0.0' }
+
+ dotenv-expand@5.1.0:
+ resolution:
+ {
+ integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==
+ }
+
+ dotenv@9.0.2:
+ resolution:
+ {
+ integrity: sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==
+ }
+ engines: { node: '>=10' }
+
+ eastasianwidth@0.2.0:
+ resolution:
+ {
+ integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
+ }
+
+ ejs@3.1.10:
+ resolution:
+ {
+ integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==
+ }
+ engines: { node: '>=0.10.0' }
+ hasBin: true
+
+ electron-builder-squirrel-windows@24.13.3:
+ resolution:
+ {
+ integrity: sha512-oHkV0iogWfyK+ah9ZIvMDpei1m9ZRpdXcvde1wTpra2U8AFDNNpqJdnin5z+PM1GbQ5BoaKCWas2HSjtR0HwMg==
+ }
+
+ electron-builder@24.13.3:
+ resolution:
+ {
+ integrity: sha512-yZSgVHft5dNVlo31qmJAe4BVKQfFdwpRw7sFp1iQglDRCDD6r22zfRJuZlhtB5gp9FHUxCMEoWGq10SkCnMAIg==
+ }
+ engines: { node: '>=14.0.0' }
+ hasBin: true
+
+ electron-publish@24.13.1:
+ resolution:
+ {
+ integrity: sha512-2ZgdEqJ8e9D17Hwp5LEq5mLQPjqU3lv/IALvgp+4W8VeNhryfGhYEQC/PgDPMrnWUp+l60Ou5SJLsu+k4mhQ8A==
+ }
+
+ electron-to-chromium@1.5.96:
+ resolution:
+ {
+ integrity: sha512-8AJUW6dh75Fm/ny8+kZKJzI1pgoE8bKLZlzDU2W1ENd+DXKJrx7I7l9hb8UWR4ojlnb5OlixMt00QWiYJoVw1w==
+ }
+
+ electron-vite@2.3.0:
+ resolution:
+ {
+ integrity: sha512-lsN2FymgJlp4k6MrcsphGqZQ9fKRdJKasoaiwIrAewN1tapYI/KINLdfEL7n10LuF0pPSNf/IqjzZbB5VINctg==
+ }
+ engines: { node: ^18.0.0 || >=20.0.0 }
+ hasBin: true
+ peerDependencies:
+ '@swc/core': ^1.0.0
+ vite: ^4.0.0 || ^5.0.0
+ peerDependenciesMeta:
+ '@swc/core':
+ optional: true
+
+ electron@31.7.7:
+ resolution:
+ {
+ integrity: sha512-HZtZg8EHsDGnswFt0QeV8If8B+et63uD6RJ7I4/xhcXqmTIbI08GoubX/wm+HdY0DwcuPe1/xsgqpmYvjdjRoA==
+ }
+ engines: { node: '>= 12.20.55' }
+ hasBin: true
+
+ emoji-regex@8.0.0:
+ resolution:
+ {
+ integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+ }
+
+ emoji-regex@9.2.2:
+ resolution:
+ {
+ integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
+ }
+
+ end-of-stream@1.4.4:
+ resolution:
+ {
+ integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
+ }
+
+ env-paths@2.2.1:
+ resolution:
+ {
+ integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==
+ }
+ engines: { node: '>=6' }
+
+ err-code@2.0.3:
+ resolution:
+ {
+ integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==
+ }
+
+ es-define-property@1.0.1:
+ resolution:
+ {
+ integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==
+ }
+ engines: { node: '>= 0.4' }
+
+ es-errors@1.3.0:
+ resolution:
+ {
+ integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
+ }
+ engines: { node: '>= 0.4' }
+
+ es6-error@4.1.1:
+ resolution:
+ {
+ integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==
+ }
+
+ esbuild@0.21.5:
+ resolution:
+ {
+ integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==
+ }
+ engines: { node: '>=12' }
+ hasBin: true
+
+ escalade@3.2.0:
+ resolution:
+ {
+ integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
+ }
+ engines: { node: '>=6' }
+
+ escape-string-regexp@4.0.0:
+ resolution:
+ {
+ integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+ }
+ engines: { node: '>=10' }
+
+ eslint-config-prettier@9.1.0:
+ resolution:
+ {
+ integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==
+ }
+ hasBin: true
+ peerDependencies:
+ eslint: '>=7.0.0'
+
+ eslint-plugin-prettier@5.2.3:
+ resolution:
+ {
+ integrity: sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==
+ }
+ engines: { node: ^14.18.0 || >=16.0.0 }
+ peerDependencies:
+ '@types/eslint': '>=8.0.0'
+ eslint: '>=8.0.0'
+ eslint-config-prettier: '*'
+ prettier: '>=3.0.0'
+ peerDependenciesMeta:
+ '@types/eslint':
+ optional: true
+ eslint-config-prettier:
+ optional: true
+
+ eslint-scope@7.2.2:
+ resolution:
+ {
+ integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==
+ }
+ engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
+
+ eslint-visitor-keys@3.4.3:
+ resolution:
+ {
+ integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
+ }
+ engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
+
+ eslint@8.57.1:
+ resolution:
+ {
+ integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==
+ }
+ engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
+ deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
+ hasBin: true
+
+ espree@9.6.1:
+ resolution:
+ {
+ integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
+ }
+ engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
+
+ esquery@1.6.0:
+ resolution:
+ {
+ integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==
+ }
+ engines: { node: '>=0.10' }
+
+ esrecurse@4.3.0:
+ resolution:
+ {
+ integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
+ }
+ engines: { node: '>=4.0' }
+
+ estraverse@5.3.0:
+ resolution:
+ {
+ integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
+ }
+ engines: { node: '>=4.0' }
+
+ esutils@2.0.3:
+ resolution:
+ {
+ integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+ }
+ engines: { node: '>=0.10.0' }
+
+ extract-zip@2.0.1:
+ resolution:
+ {
+ integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==
+ }
+ engines: { node: '>= 10.17.0' }
+ hasBin: true
+
+ extsprintf@1.4.1:
+ resolution:
+ {
+ integrity: sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==
+ }
+ engines: { '0': node >=0.6.0 }
+
+ fast-deep-equal@3.1.3:
+ resolution:
+ {
+ integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+ }
+
+ fast-diff@1.3.0:
+ resolution:
+ {
+ integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==
+ }
+
+ fast-glob@3.3.3:
+ resolution:
+ {
+ integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==
+ }
+ engines: { node: '>=8.6.0' }
+
+ fast-json-stable-stringify@2.1.0:
+ resolution:
+ {
+ integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+ }
+
+ fast-levenshtein@2.0.6:
+ resolution:
+ {
+ integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
+ }
+
+ fastq@1.19.0:
+ resolution:
+ {
+ integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==
+ }
+
+ fd-slicer@1.1.0:
+ resolution:
+ {
+ integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==
+ }
+
+ file-entry-cache@6.0.1:
+ resolution:
+ {
+ integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
+ }
+ engines: { node: ^10.12.0 || >=12.0.0 }
+
+ filelist@1.0.4:
+ resolution:
+ {
+ integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==
+ }
+
+ fill-range@7.1.1:
+ resolution:
+ {
+ integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
+ }
+ engines: { node: '>=8' }
+
+ find-up@5.0.0:
+ resolution:
+ {
+ integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
+ }
+ engines: { node: '>=10' }
+
+ flat-cache@3.2.0:
+ resolution:
+ {
+ integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==
+ }
+ engines: { node: ^10.12.0 || >=12.0.0 }
+
+ flatted@3.3.2:
+ resolution:
+ {
+ integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==
+ }
+
+ foreground-child@3.3.0:
+ resolution:
+ {
+ integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==
+ }
+ engines: { node: '>=14' }
+
+ form-data@4.0.1:
+ resolution:
+ {
+ integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==
+ }
+ engines: { node: '>= 6' }
+
+ fs-constants@1.0.0:
+ resolution:
+ {
+ integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
+ }
+
+ fs-extra@10.1.0:
+ resolution:
+ {
+ integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==
+ }
+ engines: { node: '>=12' }
+
+ fs-extra@8.1.0:
+ resolution:
+ {
+ integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
+ }
+ engines: { node: '>=6 <7 || >=8' }
+
+ fs-extra@9.1.0:
+ resolution:
+ {
+ integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
+ }
+ engines: { node: '>=10' }
+
+ fs-minipass@2.1.0:
+ resolution:
+ {
+ integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==
+ }
+ engines: { node: '>= 8' }
+
+ fs.realpath@1.0.0:
+ resolution:
+ {
+ integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
+ }
+
+ fsevents@2.3.3:
+ resolution:
+ {
+ integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
+ }
+ engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 }
+ os: [darwin]
+
+ gensync@1.0.0-beta.2:
+ resolution:
+ {
+ integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
+ }
+ engines: { node: '>=6.9.0' }
+
+ get-caller-file@2.0.5:
+ resolution:
+ {
+ integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+ }
+ engines: { node: 6.* || 8.* || >= 10.* }
+
+ get-stream@5.2.0:
+ resolution:
+ {
+ integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
+ }
+ engines: { node: '>=8' }
+
+ glob-parent@5.1.2:
+ resolution:
+ {
+ integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
+ }
+ engines: { node: '>= 6' }
+
+ glob-parent@6.0.2:
+ resolution:
+ {
+ integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
+ }
+ engines: { node: '>=10.13.0' }
+
+ glob@10.4.5:
+ resolution:
+ {
+ integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==
+ }
+ hasBin: true
+
+ glob@7.2.3:
+ resolution:
+ {
+ integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
+ }
+ deprecated: Glob versions prior to v9 are no longer supported
+
+ global-agent@3.0.0:
+ resolution:
+ {
+ integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==
+ }
+ engines: { node: '>=10.0' }
+
+ globals@11.12.0:
+ resolution:
+ {
+ integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
+ }
+ engines: { node: '>=4' }
+
+ globals@13.24.0:
+ resolution:
+ {
+ integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==
+ }
+ engines: { node: '>=8' }
+
+ globalthis@1.0.4:
+ resolution:
+ {
+ integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==
+ }
+ engines: { node: '>= 0.4' }
+
+ globby@11.1.0:
+ resolution:
+ {
+ integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
+ }
+ engines: { node: '>=10' }
+
+ gopd@1.2.0:
+ resolution:
+ {
+ integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
+ }
+ engines: { node: '>= 0.4' }
+
+ got@11.8.6:
+ resolution:
+ {
+ integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==
+ }
+ engines: { node: '>=10.19.0' }
+
+ graceful-fs@4.2.11:
+ resolution:
+ {
+ integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
+ }
+
+ graphemer@1.4.0:
+ resolution:
+ {
+ integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
+ }
+
+ has-flag@4.0.0:
+ resolution:
+ {
+ integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+ }
+ engines: { node: '>=8' }
+
+ has-property-descriptors@1.0.2:
+ resolution:
+ {
+ integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==
+ }
+
+ hosted-git-info@4.1.0:
+ resolution:
+ {
+ integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==
+ }
+ engines: { node: '>=10' }
+
+ http-cache-semantics@4.1.1:
+ resolution:
+ {
+ integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
+ }
+
+ http-proxy-agent@5.0.0:
+ resolution:
+ {
+ integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==
+ }
+ engines: { node: '>= 6' }
+
+ http2-wrapper@1.0.3:
+ resolution:
+ {
+ integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==
+ }
+ engines: { node: '>=10.19.0' }
+
+ https-proxy-agent@5.0.1:
+ resolution:
+ {
+ integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==
+ }
+ engines: { node: '>= 6' }
+
+ iconv-corefoundation@1.1.7:
+ resolution:
+ {
+ integrity: sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==
+ }
+ engines: { node: ^8.11.2 || >=10 }
+ os: [darwin]
+
+ iconv-lite@0.6.3:
+ resolution:
+ {
+ integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
+ }
+ engines: { node: '>=0.10.0' }
+
+ ieee754@1.2.1:
+ resolution:
+ {
+ integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
+ }
+
+ ignore@5.3.2:
+ resolution:
+ {
+ integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
+ }
+ engines: { node: '>= 4' }
+
+ import-fresh@3.3.1:
+ resolution:
+ {
+ integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==
+ }
+ engines: { node: '>=6' }
+
+ imurmurhash@0.1.4:
+ resolution:
+ {
+ integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
+ }
+ engines: { node: '>=0.8.19' }
+
+ inflight@1.0.6:
+ resolution:
+ {
+ integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
+ }
+ deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
+
+ inherits@2.0.4:
+ resolution:
+ {
+ integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+ }
+
+ is-ci@3.0.1:
+ resolution:
+ {
+ integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==
+ }
+ hasBin: true
+
+ is-extglob@2.1.1:
+ resolution:
+ {
+ integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
+ }
+ engines: { node: '>=0.10.0' }
+
+ is-fullwidth-code-point@3.0.0:
+ resolution:
+ {
+ integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+ }
+ engines: { node: '>=8' }
+
+ is-glob@4.0.3:
+ resolution:
+ {
+ integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
+ }
+ engines: { node: '>=0.10.0' }
+
+ is-number@7.0.0:
+ resolution:
+ {
+ integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+ }
+ engines: { node: '>=0.12.0' }
+
+ is-path-inside@3.0.3:
+ resolution:
+ {
+ integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
+ }
+ engines: { node: '>=8' }
+
+ isarray@1.0.0:
+ resolution:
+ {
+ integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
+ }
+
+ isbinaryfile@4.0.10:
+ resolution:
+ {
+ integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==
+ }
+ engines: { node: '>= 8.0.0' }
+
+ isbinaryfile@5.0.4:
+ resolution:
+ {
+ integrity: sha512-YKBKVkKhty7s8rxddb40oOkuP0NbaeXrQvLin6QMHL7Ypiy2RW9LwOVrVgZRyOrhQlayMd9t+D8yDy8MKFTSDQ==
+ }
+ engines: { node: '>= 18.0.0' }
+
+ isexe@2.0.0:
+ resolution:
+ {
+ integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
+ }
+
+ jackspeak@3.4.3:
+ resolution:
+ {
+ integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==
+ }
+
+ jake@10.9.2:
+ resolution:
+ {
+ integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==
+ }
+ engines: { node: '>=10' }
+ hasBin: true
+
+ js-tokens@4.0.0:
+ resolution:
+ {
+ integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+ }
+
+ js-yaml@4.1.0:
+ resolution:
+ {
+ integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
+ }
+ hasBin: true
+
+ jsesc@3.1.0:
+ resolution:
+ {
+ integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==
+ }
+ engines: { node: '>=6' }
+ hasBin: true
+
+ json-buffer@3.0.1:
+ resolution:
+ {
+ integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
+ }
+
+ json-schema-traverse@0.4.1:
+ resolution:
+ {
+ integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+ }
+
+ json-stable-stringify-without-jsonify@1.0.1:
+ resolution:
+ {
+ integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
+ }
+
+ json-stringify-safe@5.0.1:
+ resolution:
+ {
+ integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==
+ }
+
+ json5@2.2.3:
+ resolution:
+ {
+ integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
+ }
+ engines: { node: '>=6' }
+ hasBin: true
+
+ jsonfile@4.0.0:
+ resolution:
+ {
+ integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==
+ }
+
+ jsonfile@6.1.0:
+ resolution:
+ {
+ integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
+ }
+
+ keyv@4.5.4:
+ resolution:
+ {
+ integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
+ }
+
+ lazy-val@1.0.5:
+ resolution:
+ {
+ integrity: sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==
+ }
+
+ lazystream@1.0.1:
+ resolution:
+ {
+ integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==
+ }
+ engines: { node: '>= 0.6.3' }
+
+ levn@0.4.1:
+ resolution:
+ {
+ integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
+ }
+ engines: { node: '>= 0.8.0' }
+
+ locate-path@6.0.0:
+ resolution:
+ {
+ integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
+ }
+ engines: { node: '>=10' }
+
+ lodash.defaults@4.2.0:
+ resolution:
+ {
+ integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==
+ }
+
+ lodash.difference@4.5.0:
+ resolution:
+ {
+ integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==
+ }
+
+ lodash.flatten@4.4.0:
+ resolution:
+ {
+ integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==
+ }
+
+ lodash.isplainobject@4.0.6:
+ resolution:
+ {
+ integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==
+ }
+
+ lodash.merge@4.6.2:
+ resolution:
+ {
+ integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
+ }
+
+ lodash.union@4.6.0:
+ resolution:
+ {
+ integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==
+ }
+
+ lodash@4.17.21:
+ resolution:
+ {
+ integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+ }
+
+ lowercase-keys@2.0.0:
+ resolution:
+ {
+ integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==
+ }
+ engines: { node: '>=8' }
+
+ lru-cache@10.4.3:
+ resolution:
+ {
+ integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==
+ }
+
+ lru-cache@5.1.1:
+ resolution:
+ {
+ integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
+ }
+
+ lru-cache@6.0.0:
+ resolution:
+ {
+ integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
+ }
+ engines: { node: '>=10' }
+
+ magic-string@0.30.17:
+ resolution:
+ {
+ integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==
+ }
+
+ matcher@3.0.0:
+ resolution:
+ {
+ integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==
+ }
+ engines: { node: '>=10' }
+
+ merge2@1.4.1:
+ resolution:
+ {
+ integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
+ }
+ engines: { node: '>= 8' }
+
+ micromatch@4.0.8:
+ resolution:
+ {
+ integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
+ }
+ engines: { node: '>=8.6' }
+
+ mime-db@1.52.0:
+ resolution:
+ {
+ integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+ }
+ engines: { node: '>= 0.6' }
+
+ mime-types@2.1.35:
+ resolution:
+ {
+ integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
+ }
+ engines: { node: '>= 0.6' }
+
+ mime@2.6.0:
+ resolution:
+ {
+ integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
+ }
+ engines: { node: '>=4.0.0' }
+ hasBin: true
+
+ mimic-response@1.0.1:
+ resolution:
+ {
+ integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
+ }
+ engines: { node: '>=4' }
+
+ mimic-response@3.1.0:
+ resolution:
+ {
+ integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==
+ }
+ engines: { node: '>=10' }
+
+ minimatch@3.1.2:
+ resolution:
+ {
+ integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
+ }
+
+ minimatch@5.1.6:
+ resolution:
+ {
+ integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==
+ }
+ engines: { node: '>=10' }
+
+ minimatch@9.0.5:
+ resolution:
+ {
+ integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
+ }
+ engines: { node: '>=16 || 14 >=14.17' }
+
+ minimist@1.2.8:
+ resolution:
+ {
+ integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
+ }
+
+ minipass@3.3.6:
+ resolution:
+ {
+ integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==
+ }
+ engines: { node: '>=8' }
+
+ minipass@5.0.0:
+ resolution:
+ {
+ integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==
+ }
+ engines: { node: '>=8' }
+
+ minipass@7.1.2:
+ resolution:
+ {
+ integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
+ }
+ engines: { node: '>=16 || 14 >=14.17' }
+
+ minizlib@2.1.2:
+ resolution:
+ {
+ integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==
+ }
+ engines: { node: '>= 8' }
+
+ mkdirp@1.0.4:
+ resolution:
+ {
+ integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
+ }
+ engines: { node: '>=10' }
+ hasBin: true
+
+ ms@2.1.3:
+ resolution:
+ {
+ integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+ }
+
+ nanoid@3.3.8:
+ resolution:
+ {
+ integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==
+ }
+ engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 }
+ hasBin: true
+
+ natural-compare@1.4.0:
+ resolution:
+ {
+ integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
+ }
+
+ node-addon-api@1.7.2:
+ resolution:
+ {
+ integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==
+ }
+
+ node-releases@2.0.19:
+ resolution:
+ {
+ integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==
+ }
+
+ normalize-path@3.0.0:
+ resolution:
+ {
+ integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+ }
+ engines: { node: '>=0.10.0' }
+
+ normalize-url@6.1.0:
+ resolution:
+ {
+ integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==
+ }
+ engines: { node: '>=10' }
+
+ object-keys@1.1.1:
+ resolution:
+ {
+ integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+ }
+ engines: { node: '>= 0.4' }
+
+ once@1.4.0:
+ resolution:
+ {
+ integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
+ }
+
+ optionator@0.9.4:
+ resolution:
+ {
+ integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==
+ }
+ engines: { node: '>= 0.8.0' }
+
+ p-cancelable@2.1.1:
+ resolution:
+ {
+ integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==
+ }
+ engines: { node: '>=8' }
+
+ p-limit@3.1.0:
+ resolution:
+ {
+ integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
+ }
+ engines: { node: '>=10' }
+
+ p-locate@5.0.0:
+ resolution:
+ {
+ integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
+ }
+ engines: { node: '>=10' }
+
+ package-json-from-dist@1.0.1:
+ resolution:
+ {
+ integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==
+ }
+
+ parent-module@1.0.1:
+ resolution:
+ {
+ integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
+ }
+ engines: { node: '>=6' }
+
+ path-exists@4.0.0:
+ resolution:
+ {
+ integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+ }
+ engines: { node: '>=8' }
+
+ path-is-absolute@1.0.1:
+ resolution:
+ {
+ integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
+ }
+ engines: { node: '>=0.10.0' }
+
+ path-key@3.1.1:
+ resolution:
+ {
+ integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+ }
+ engines: { node: '>=8' }
+
+ path-scurry@1.11.1:
+ resolution:
+ {
+ integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==
+ }
+ engines: { node: '>=16 || 14 >=14.18' }
+
+ path-type@4.0.0:
+ resolution:
+ {
+ integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+ }
+ engines: { node: '>=8' }
+
+ pend@1.2.0:
+ resolution:
+ {
+ integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==
+ }
+
+ picocolors@1.1.1:
+ resolution:
+ {
+ integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
+ }
+
+ picomatch@2.3.1:
+ resolution:
+ {
+ integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+ }
+ engines: { node: '>=8.6' }
+
+ plist@3.1.0:
+ resolution:
+ {
+ integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==
+ }
+ engines: { node: '>=10.4.0' }
+
+ postcss@8.5.1:
+ resolution:
+ {
+ integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==
+ }
+ engines: { node: ^10 || ^12 || >=14 }
+
+ prelude-ls@1.2.1:
+ resolution:
+ {
+ integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
+ }
+ engines: { node: '>= 0.8.0' }
+
+ prettier-linter-helpers@1.0.0:
+ resolution:
+ {
+ integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
+ }
+ engines: { node: '>=6.0.0' }
+
+ prettier@3.5.0:
+ resolution:
+ {
+ integrity: sha512-quyMrVt6svPS7CjQ9gKb3GLEX/rl3BCL2oa/QkNcXv4YNVBC9olt3s+H7ukto06q7B1Qz46PbrKLO34PR6vXcA==
+ }
+ engines: { node: '>=14' }
+ hasBin: true
+
+ process-nextick-args@2.0.1:
+ resolution:
+ {
+ integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+ }
+
+ progress@2.0.3:
+ resolution:
+ {
+ integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
+ }
+ engines: { node: '>=0.4.0' }
+
+ promise-retry@2.0.1:
+ resolution:
+ {
+ integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==
+ }
+ engines: { node: '>=10' }
+
+ pump@3.0.2:
+ resolution:
+ {
+ integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==
+ }
+
+ punycode@2.3.1:
+ resolution:
+ {
+ integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
+ }
+ engines: { node: '>=6' }
+
+ queue-microtask@1.2.3:
+ resolution:
+ {
+ integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
+ }
+
+ quick-lru@5.1.1:
+ resolution:
+ {
+ integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
+ }
+ engines: { node: '>=10' }
+
+ read-config-file@6.3.2:
+ resolution:
+ {
+ integrity: sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q==
+ }
+ engines: { node: '>=12.0.0' }
+
+ readable-stream@2.3.8:
+ resolution:
+ {
+ integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
+ }
+
+ readable-stream@3.6.2:
+ resolution:
+ {
+ integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
+ }
+ engines: { node: '>= 6' }
+
+ readdir-glob@1.1.3:
+ resolution:
+ {
+ integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==
+ }
+
+ require-directory@2.1.1:
+ resolution:
+ {
+ integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
+ }
+ engines: { node: '>=0.10.0' }
+
+ resolve-alpn@1.2.1:
+ resolution:
+ {
+ integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==
+ }
+
+ resolve-from@4.0.0:
+ resolution:
+ {
+ integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+ }
+ engines: { node: '>=4' }
+
+ responselike@2.0.1:
+ resolution:
+ {
+ integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==
+ }
+
+ retry@0.12.0:
+ resolution:
+ {
+ integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==
+ }
+ engines: { node: '>= 4' }
+
+ reusify@1.0.4:
+ resolution:
+ {
+ integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
+ }
+ engines: { iojs: '>=1.0.0', node: '>=0.10.0' }
+
+ rimraf@3.0.2:
+ resolution:
+ {
+ integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+ }
+ deprecated: Rimraf versions prior to v4 are no longer supported
+ hasBin: true
+
+ roarr@2.15.4:
+ resolution:
+ {
+ integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==
+ }
+ engines: { node: '>=8.0' }
+
+ rollup@4.34.6:
+ resolution:
+ {
+ integrity: sha512-wc2cBWqJgkU3Iz5oztRkQbfVkbxoz5EhnCGOrnJvnLnQ7O0WhQUYyv18qQI79O8L7DdHrrlJNeCHd4VGpnaXKQ==
+ }
+ engines: { node: '>=18.0.0', npm: '>=8.0.0' }
+ hasBin: true
+
+ run-parallel@1.2.0:
+ resolution:
+ {
+ integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
+ }
+
+ safe-buffer@5.1.2:
+ resolution:
+ {
+ integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+ }
+
+ safe-buffer@5.2.1:
+ resolution:
+ {
+ integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+ }
+
+ safer-buffer@2.1.2:
+ resolution:
+ {
+ integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+ }
+
+ sanitize-filename@1.6.3:
+ resolution:
+ {
+ integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==
+ }
+
+ sax@1.4.1:
+ resolution:
+ {
+ integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==
+ }
+
+ semver-compare@1.0.0:
+ resolution:
+ {
+ integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==
+ }
+
+ semver@6.3.1:
+ resolution:
+ {
+ integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
+ }
+ hasBin: true
+
+ semver@7.7.1:
+ resolution:
+ {
+ integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==
+ }
+ engines: { node: '>=10' }
+ hasBin: true
+
+ serialize-error@7.0.1:
+ resolution:
+ {
+ integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==
+ }
+ engines: { node: '>=10' }
+
+ shebang-command@2.0.0:
+ resolution:
+ {
+ integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
+ }
+ engines: { node: '>=8' }
+
+ shebang-regex@3.0.0:
+ resolution:
+ {
+ integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+ }
+ engines: { node: '>=8' }
+
+ signal-exit@4.1.0:
+ resolution:
+ {
+ integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
+ }
+ engines: { node: '>=14' }
+
+ simple-update-notifier@2.0.0:
+ resolution:
+ {
+ integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==
+ }
+ engines: { node: '>=10' }
+
+ slash@3.0.0:
+ resolution:
+ {
+ integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
+ }
+ engines: { node: '>=8' }
+
+ slice-ansi@3.0.0:
+ resolution:
+ {
+ integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==
+ }
+ engines: { node: '>=8' }
+
+ smart-buffer@4.2.0:
+ resolution:
+ {
+ integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==
+ }
+ engines: { node: '>= 6.0.0', npm: '>= 3.0.0' }
+
+ source-map-js@1.2.1:
+ resolution:
+ {
+ integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
+ }
+ engines: { node: '>=0.10.0' }
+
+ source-map-support@0.5.21:
+ resolution:
+ {
+ integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
+ }
+
+ source-map@0.6.1:
+ resolution:
+ {
+ integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+ }
+ engines: { node: '>=0.10.0' }
+
+ sprintf-js@1.1.3:
+ resolution:
+ {
+ integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==
+ }
+
+ stat-mode@1.0.0:
+ resolution:
+ {
+ integrity: sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==
+ }
+ engines: { node: '>= 6' }
+
+ string-width@4.2.3:
+ resolution:
+ {
+ integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+ }
+ engines: { node: '>=8' }
+
+ string-width@5.1.2:
+ resolution:
+ {
+ integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==
+ }
+ engines: { node: '>=12' }
+
+ string_decoder@1.1.1:
+ resolution:
+ {
+ integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+ }
+
+ string_decoder@1.3.0:
+ resolution:
+ {
+ integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
+ }
+
+ strip-ansi@6.0.1:
+ resolution:
+ {
+ integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+ }
+ engines: { node: '>=8' }
+
+ strip-ansi@7.1.0:
+ resolution:
+ {
+ integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==
+ }
+ engines: { node: '>=12' }
+
+ strip-json-comments@3.1.1:
+ resolution:
+ {
+ integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+ }
+ engines: { node: '>=8' }
+
+ sumchecker@3.0.1:
+ resolution:
+ {
+ integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==
+ }
+ engines: { node: '>= 8.0' }
+
+ supports-color@7.2.0:
+ resolution:
+ {
+ integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
+ }
+ engines: { node: '>=8' }
+
+ synckit@0.9.2:
+ resolution:
+ {
+ integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==
+ }
+ engines: { node: ^14.18.0 || >=16.0.0 }
+
+ tar-stream@2.2.0:
+ resolution:
+ {
+ integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==
+ }
+ engines: { node: '>=6' }
+
+ tar@6.2.1:
+ resolution:
+ {
+ integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==
+ }
+ engines: { node: '>=10' }
+
+ temp-file@3.4.0:
+ resolution:
+ {
+ integrity: sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==
+ }
+
+ text-table@0.2.0:
+ resolution:
+ {
+ integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
+ }
+
+ tmp-promise@3.0.3:
+ resolution:
+ {
+ integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==
+ }
+
+ tmp@0.2.3:
+ resolution:
+ {
+ integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==
+ }
+ engines: { node: '>=14.14' }
+
+ to-regex-range@5.0.1:
+ resolution:
+ {
+ integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+ }
+ engines: { node: '>=8.0' }
+
+ truncate-utf8-bytes@1.0.2:
+ resolution:
+ {
+ integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==
+ }
+
+ ts-api-utils@1.4.3:
+ resolution:
+ {
+ integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==
+ }
+ engines: { node: '>=16' }
+ peerDependencies:
+ typescript: '>=4.2.0'
+
+ tslib@2.8.1:
+ resolution:
+ {
+ integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
+ }
+
+ type-check@0.4.0:
+ resolution:
+ {
+ integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
+ }
+ engines: { node: '>= 0.8.0' }
+
+ type-fest@0.13.1:
+ resolution:
+ {
+ integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==
+ }
+ engines: { node: '>=10' }
+
+ type-fest@0.20.2:
+ resolution:
+ {
+ integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
+ }
+ engines: { node: '>=10' }
+
+ typescript@5.7.3:
+ resolution:
+ {
+ integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==
+ }
+ engines: { node: '>=14.17' }
+ hasBin: true
+
+ undici-types@6.19.8:
+ resolution:
+ {
+ integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==
+ }
+
+ universalify@0.1.2:
+ resolution:
+ {
+ integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
+ }
+ engines: { node: '>= 4.0.0' }
+
+ universalify@2.0.1:
+ resolution:
+ {
+ integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==
+ }
+ engines: { node: '>= 10.0.0' }
+
+ update-browserslist-db@1.1.2:
+ resolution:
+ {
+ integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==
+ }
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+
+ uri-js@4.4.1:
+ resolution:
+ {
+ integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+ }
+
+ utf8-byte-length@1.0.5:
+ resolution:
+ {
+ integrity: sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==
+ }
+
+ util-deprecate@1.0.2:
+ resolution:
+ {
+ integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
+ }
+
+ verror@1.10.1:
+ resolution:
+ {
+ integrity: sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==
+ }
+ engines: { node: '>=0.6.0' }
+
+ vite@5.4.14:
+ resolution:
+ {
+ integrity: sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==
+ }
+ engines: { node: ^18.0.0 || >=20.0.0 }
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^18.0.0 || >=20.0.0
+ less: '*'
+ lightningcss: ^1.21.0
+ sass: '*'
+ sass-embedded: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.4.0
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+
+ which@2.0.2:
+ resolution:
+ {
+ integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+ }
+ engines: { node: '>= 8' }
+ hasBin: true
+
+ word-wrap@1.2.5:
+ resolution:
+ {
+ integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
+ }
+ engines: { node: '>=0.10.0' }
+
+ wrap-ansi@7.0.0:
+ resolution:
+ {
+ integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+ }
+ engines: { node: '>=10' }
+
+ wrap-ansi@8.1.0:
+ resolution:
+ {
+ integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==
+ }
+ engines: { node: '>=12' }
+
+ wrappy@1.0.2:
+ resolution:
+ {
+ integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
+ }
+
+ xmlbuilder@15.1.1:
+ resolution:
+ {
+ integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==
+ }
+ engines: { node: '>=8.0' }
+
+ y18n@5.0.8:
+ resolution:
+ {
+ integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
+ }
+ engines: { node: '>=10' }
+
+ yallist@3.1.1:
+ resolution:
+ {
+ integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
+ }
+
+ yallist@4.0.0:
+ resolution:
+ {
+ integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+ }
+
+ yargs-parser@21.1.1:
+ resolution:
+ {
+ integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
+ }
+ engines: { node: '>=12' }
+
+ yargs@17.7.2:
+ resolution:
+ {
+ integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
+ }
+ engines: { node: '>=12' }
+
+ yauzl@2.10.0:
+ resolution:
+ {
+ integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==
+ }
+
+ yocto-queue@0.1.0:
+ resolution:
+ {
+ integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+ }
+ engines: { node: '>=10' }
+
+ zip-stream@4.1.1:
+ resolution:
+ {
+ integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==
+ }
+ engines: { node: '>= 10' }
+
+snapshots:
+ 7zip-bin@5.2.0: {}
+
+ '@ampproject/remapping@2.3.0':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.8
+ '@jridgewell/trace-mapping': 0.3.25
+
+ '@babel/code-frame@7.26.2':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.25.9
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+
+ '@babel/compat-data@7.26.8': {}
+
+ '@babel/core@7.26.8':
+ dependencies:
+ '@ampproject/remapping': 2.3.0
+ '@babel/code-frame': 7.26.2
+ '@babel/generator': 7.26.8
+ '@babel/helper-compilation-targets': 7.26.5
+ '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.8)
+ '@babel/helpers': 7.26.7
+ '@babel/parser': 7.26.8
+ '@babel/template': 7.26.8
+ '@babel/traverse': 7.26.8
+ '@babel/types': 7.26.8
+ '@types/gensync': 1.0.4
+ convert-source-map: 2.0.0
+ debug: 4.4.0
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/generator@7.26.8':
+ dependencies:
+ '@babel/parser': 7.26.8
+ '@babel/types': 7.26.8
+ '@jridgewell/gen-mapping': 0.3.8
+ '@jridgewell/trace-mapping': 0.3.25
+ jsesc: 3.1.0
+
+ '@babel/helper-compilation-targets@7.26.5':
+ dependencies:
+ '@babel/compat-data': 7.26.8
+ '@babel/helper-validator-option': 7.25.9
+ browserslist: 4.24.4
+ lru-cache: 5.1.1
+ semver: 6.3.1
+
+ '@babel/helper-module-imports@7.25.9':
+ dependencies:
+ '@babel/traverse': 7.26.8
+ '@babel/types': 7.26.8
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.8)':
+ dependencies:
+ '@babel/core': 7.26.8
+ '@babel/helper-module-imports': 7.25.9
+ '@babel/helper-validator-identifier': 7.25.9
+ '@babel/traverse': 7.26.8
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-plugin-utils@7.26.5': {}
+
+ '@babel/helper-string-parser@7.25.9': {}
+
+ '@babel/helper-validator-identifier@7.25.9': {}
+
+ '@babel/helper-validator-option@7.25.9': {}
+
+ '@babel/helpers@7.26.7':
+ dependencies:
+ '@babel/template': 7.26.8
+ '@babel/types': 7.26.8
+
+ '@babel/parser@7.26.8':
+ dependencies:
+ '@babel/types': 7.26.8
+
+ '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.8)':
+ dependencies:
+ '@babel/core': 7.26.8
+ '@babel/helper-plugin-utils': 7.26.5
+
+ '@babel/template@7.26.8':
+ dependencies:
+ '@babel/code-frame': 7.26.2
+ '@babel/parser': 7.26.8
+ '@babel/types': 7.26.8
+
+ '@babel/traverse@7.26.8':
+ dependencies:
+ '@babel/code-frame': 7.26.2
+ '@babel/generator': 7.26.8
+ '@babel/parser': 7.26.8
+ '@babel/template': 7.26.8
+ '@babel/types': 7.26.8
+ debug: 4.4.0
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/types@7.26.8':
+ dependencies:
+ '@babel/helper-string-parser': 7.25.9
+ '@babel/helper-validator-identifier': 7.25.9
+
+ '@develar/schema-utils@2.6.5':
+ dependencies:
+ ajv: 6.12.6
+ ajv-keywords: 3.5.2(ajv@6.12.6)
+
+ '@electron-toolkit/eslint-config-prettier@2.0.0(eslint@8.57.1)(prettier@3.5.0)':
+ dependencies:
+ eslint: 8.57.1
+ eslint-config-prettier: 9.1.0(eslint@8.57.1)
+ eslint-plugin-prettier: 5.2.3(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.5.0)
+ prettier: 3.5.0
+ transitivePeerDependencies:
+ - '@types/eslint'
+
+ '@electron-toolkit/eslint-config-ts@2.0.0(eslint@8.57.1)(typescript@5.7.3)':
+ dependencies:
+ '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3)
+ '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.7.3)
+ eslint: 8.57.1
+ optionalDependencies:
+ typescript: 5.7.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@electron-toolkit/preload@3.0.1(electron@31.7.7)':
+ dependencies:
+ electron: 31.7.7
+
+ '@electron-toolkit/tsconfig@1.0.1(@types/node@20.17.17)':
+ dependencies:
+ '@types/node': 20.17.17
+
+ '@electron-toolkit/utils@3.0.0(electron@31.7.7)':
+ dependencies:
+ electron: 31.7.7
+
+ '@electron/asar@3.2.18':
+ dependencies:
+ commander: 5.1.0
+ glob: 7.2.3
+ minimatch: 3.1.2
+
+ '@electron/get@2.0.3':
+ dependencies:
+ debug: 4.4.0
+ env-paths: 2.2.1
+ fs-extra: 8.1.0
+ got: 11.8.6
+ progress: 2.0.3
+ semver: 6.3.1
+ sumchecker: 3.0.1
+ optionalDependencies:
+ global-agent: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@electron/notarize@2.2.1':
+ dependencies:
+ debug: 4.4.0
+ fs-extra: 9.1.0
+ promise-retry: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@electron/osx-sign@1.0.5':
+ dependencies:
+ compare-version: 0.1.2
+ debug: 4.4.0
+ fs-extra: 10.1.0
+ isbinaryfile: 4.0.10
+ minimist: 1.2.8
+ plist: 3.1.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@electron/universal@1.5.1':
+ dependencies:
+ '@electron/asar': 3.2.18
+ '@malept/cross-spawn-promise': 1.1.1
+ debug: 4.4.0
+ dir-compare: 3.3.0
+ fs-extra: 9.1.0
+ minimatch: 3.1.2
+ plist: 3.1.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@esbuild/aix-ppc64@0.21.5':
+ optional: true
+
+ '@esbuild/android-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/android-arm@0.21.5':
+ optional: true
+
+ '@esbuild/android-x64@0.21.5':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/darwin-x64@0.21.5':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-arm@0.21.5':
+ optional: true
+
+ '@esbuild/linux-ia32@0.21.5':
+ optional: true
+
+ '@esbuild/linux-loong64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.21.5':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-s390x@0.21.5':
+ optional: true
+
+ '@esbuild/linux-x64@0.21.5':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/sunos-x64@0.21.5':
+ optional: true
+
+ '@esbuild/win32-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/win32-ia32@0.21.5':
+ optional: true
+
+ '@esbuild/win32-x64@0.21.5':
+ optional: true
+
+ '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)':
+ dependencies:
+ eslint: 8.57.1
+ eslint-visitor-keys: 3.4.3
+
+ '@eslint-community/regexpp@4.12.1': {}
+
+ '@eslint/eslintrc@2.1.4':
+ dependencies:
+ ajv: 6.12.6
+ debug: 4.4.0
+ espree: 9.6.1
+ globals: 13.24.0
+ ignore: 5.3.2
+ import-fresh: 3.3.1
+ js-yaml: 4.1.0
+ minimatch: 3.1.2
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/js@8.57.1': {}
+
+ '@humanwhocodes/config-array@0.13.0':
+ dependencies:
+ '@humanwhocodes/object-schema': 2.0.3
+ debug: 4.4.0
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@humanwhocodes/module-importer@1.0.1': {}
+
+ '@humanwhocodes/object-schema@2.0.3': {}
+
+ '@isaacs/cliui@8.0.2':
+ dependencies:
+ string-width: 5.1.2
+ string-width-cjs: string-width@4.2.3
+ strip-ansi: 7.1.0
+ strip-ansi-cjs: strip-ansi@6.0.1
+ wrap-ansi: 8.1.0
+ wrap-ansi-cjs: wrap-ansi@7.0.0
+
+ '@jridgewell/gen-mapping@0.3.8':
+ dependencies:
+ '@jridgewell/set-array': 1.2.1
+ '@jridgewell/sourcemap-codec': 1.5.0
+ '@jridgewell/trace-mapping': 0.3.25
+
+ '@jridgewell/resolve-uri@3.1.2': {}
+
+ '@jridgewell/set-array@1.2.1': {}
+
+ '@jridgewell/sourcemap-codec@1.5.0': {}
+
+ '@jridgewell/trace-mapping@0.3.25':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.0
+
+ '@malept/cross-spawn-promise@1.1.1':
+ dependencies:
+ cross-spawn: 7.0.6
+
+ '@malept/flatpak-bundler@0.4.0':
+ dependencies:
+ debug: 4.4.0
+ fs-extra: 9.1.0
+ lodash: 4.17.21
+ tmp-promise: 3.0.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@nodelib/fs.scandir@2.1.5':
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+
+ '@nodelib/fs.stat@2.0.5': {}
+
+ '@nodelib/fs.walk@1.2.8':
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.19.0
+
+ '@pkgjs/parseargs@0.11.0':
+ optional: true
+
+ '@pkgr/core@0.1.1': {}
+
+ '@rollup/rollup-android-arm-eabi@4.34.6':
+ optional: true
+
+ '@rollup/rollup-android-arm64@4.34.6':
+ optional: true
+
+ '@rollup/rollup-darwin-arm64@4.34.6':
+ optional: true
+
+ '@rollup/rollup-darwin-x64@4.34.6':
+ optional: true
+
+ '@rollup/rollup-freebsd-arm64@4.34.6':
+ optional: true
+
+ '@rollup/rollup-freebsd-x64@4.34.6':
+ optional: true
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.34.6':
+ optional: true
+
+ '@rollup/rollup-linux-arm-musleabihf@4.34.6':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-gnu@4.34.6':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-musl@4.34.6':
+ optional: true
+
+ '@rollup/rollup-linux-loongarch64-gnu@4.34.6':
+ optional: true
+
+ '@rollup/rollup-linux-powerpc64le-gnu@4.34.6':
+ optional: true
+
+ '@rollup/rollup-linux-riscv64-gnu@4.34.6':
+ optional: true
+
+ '@rollup/rollup-linux-s390x-gnu@4.34.6':
+ optional: true
+
+ '@rollup/rollup-linux-x64-gnu@4.34.6':
+ optional: true
+
+ '@rollup/rollup-linux-x64-musl@4.34.6':
+ optional: true
+
+ '@rollup/rollup-win32-arm64-msvc@4.34.6':
+ optional: true
+
+ '@rollup/rollup-win32-ia32-msvc@4.34.6':
+ optional: true
+
+ '@rollup/rollup-win32-x64-msvc@4.34.6':
+ optional: true
+
+ '@sindresorhus/is@4.6.0': {}
+
+ '@szmarczak/http-timer@4.0.6':
+ dependencies:
+ defer-to-connect: 2.0.1
+
+ '@tootallnate/once@2.0.0': {}
+
+ '@types/cacheable-request@6.0.3':
+ dependencies:
+ '@types/http-cache-semantics': 4.0.4
+ '@types/keyv': 3.1.4
+ '@types/node': 20.17.17
+ '@types/responselike': 1.0.3
+
+ '@types/debug@4.1.12':
+ dependencies:
+ '@types/ms': 2.1.0
+
+ '@types/estree@1.0.6': {}
+
+ '@types/fs-extra@9.0.13':
+ dependencies:
+ '@types/node': 20.17.17
+
+ '@types/gensync@1.0.4': {}
+
+ '@types/http-cache-semantics@4.0.4': {}
+
+ '@types/keyv@3.1.4':
+ dependencies:
+ '@types/node': 20.17.17
+
+ '@types/ms@2.1.0': {}
+
+ '@types/node@20.17.17':
+ dependencies:
+ undici-types: 6.19.8
+
+ '@types/plist@3.0.5':
+ dependencies:
+ '@types/node': 20.17.17
+ xmlbuilder: 15.1.1
+ optional: true
+
+ '@types/responselike@1.0.3':
+ dependencies:
+ '@types/node': 20.17.17
+
+ '@types/verror@1.10.10':
+ optional: true
+
+ '@types/yauzl@2.10.3':
+ dependencies:
+ '@types/node': 20.17.17
+ optional: true
+
+ '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3)':
+ dependencies:
+ '@eslint-community/regexpp': 4.12.1
+ '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.7.3)
+ '@typescript-eslint/scope-manager': 7.18.0
+ '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1)(typescript@5.7.3)
+ '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.7.3)
+ '@typescript-eslint/visitor-keys': 7.18.0
+ eslint: 8.57.1
+ graphemer: 1.4.0
+ ignore: 5.3.2
+ natural-compare: 1.4.0
+ ts-api-utils: 1.4.3(typescript@5.7.3)
+ optionalDependencies:
+ typescript: 5.7.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.7.3)':
+ dependencies:
+ '@typescript-eslint/scope-manager': 7.18.0
+ '@typescript-eslint/types': 7.18.0
+ '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.3)
+ '@typescript-eslint/visitor-keys': 7.18.0
+ debug: 4.4.0
+ eslint: 8.57.1
+ optionalDependencies:
+ typescript: 5.7.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/scope-manager@7.18.0':
+ dependencies:
+ '@typescript-eslint/types': 7.18.0
+ '@typescript-eslint/visitor-keys': 7.18.0
+
+ '@typescript-eslint/type-utils@7.18.0(eslint@8.57.1)(typescript@5.7.3)':
+ dependencies:
+ '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.3)
+ '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.7.3)
+ debug: 4.4.0
+ eslint: 8.57.1
+ ts-api-utils: 1.4.3(typescript@5.7.3)
+ optionalDependencies:
+ typescript: 5.7.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/types@7.18.0': {}
+
+ '@typescript-eslint/typescript-estree@7.18.0(typescript@5.7.3)':
+ dependencies:
+ '@typescript-eslint/types': 7.18.0
+ '@typescript-eslint/visitor-keys': 7.18.0
+ debug: 4.4.0
+ globby: 11.1.0
+ is-glob: 4.0.3
+ minimatch: 9.0.5
+ semver: 7.7.1
+ ts-api-utils: 1.4.3(typescript@5.7.3)
+ optionalDependencies:
+ typescript: 5.7.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/utils@7.18.0(eslint@8.57.1)(typescript@5.7.3)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1)
+ '@typescript-eslint/scope-manager': 7.18.0
+ '@typescript-eslint/types': 7.18.0
+ '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.3)
+ eslint: 8.57.1
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ '@typescript-eslint/visitor-keys@7.18.0':
+ dependencies:
+ '@typescript-eslint/types': 7.18.0
+ eslint-visitor-keys: 3.4.3
+
+ '@ungap/structured-clone@1.3.0': {}
+
+ '@xmldom/xmldom@0.8.10': {}
+
+ acorn-jsx@5.3.2(acorn@8.14.0):
+ dependencies:
+ acorn: 8.14.0
+
+ acorn@8.14.0: {}
+
+ agent-base@6.0.2:
+ dependencies:
+ debug: 4.4.0
+ transitivePeerDependencies:
+ - supports-color
+
+ ajv-keywords@3.5.2(ajv@6.12.6):
+ dependencies:
+ ajv: 6.12.6
+
+ ajv@6.12.6:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+
+ ansi-regex@5.0.1: {}
+
+ ansi-regex@6.1.0: {}
+
+ ansi-styles@4.3.0:
+ dependencies:
+ color-convert: 2.0.1
+
+ ansi-styles@6.2.1: {}
+
+ app-builder-bin@4.0.0: {}
+
+ app-builder-lib@24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3):
+ dependencies:
+ '@develar/schema-utils': 2.6.5
+ '@electron/notarize': 2.2.1
+ '@electron/osx-sign': 1.0.5
+ '@electron/universal': 1.5.1
+ '@malept/flatpak-bundler': 0.4.0
+ '@types/fs-extra': 9.0.13
+ async-exit-hook: 2.0.1
+ bluebird-lst: 1.0.9
+ builder-util: 24.13.1
+ builder-util-runtime: 9.2.4
+ chromium-pickle-js: 0.2.0
+ debug: 4.4.0
+ dmg-builder: 24.13.3(electron-builder-squirrel-windows@24.13.3)
+ ejs: 3.1.10
+ electron-builder-squirrel-windows: 24.13.3(dmg-builder@24.13.3)
+ electron-publish: 24.13.1
+ form-data: 4.0.1
+ fs-extra: 10.1.0
+ hosted-git-info: 4.1.0
+ is-ci: 3.0.1
+ isbinaryfile: 5.0.4
+ js-yaml: 4.1.0
+ lazy-val: 1.0.5
+ minimatch: 5.1.6
+ read-config-file: 6.3.2
+ sanitize-filename: 1.6.3
+ semver: 7.7.1
+ tar: 6.2.1
+ temp-file: 3.4.0
+ transitivePeerDependencies:
+ - supports-color
+
+ archiver-utils@2.1.0:
+ dependencies:
+ glob: 7.2.3
+ graceful-fs: 4.2.11
+ lazystream: 1.0.1
+ lodash.defaults: 4.2.0
+ lodash.difference: 4.5.0
+ lodash.flatten: 4.4.0
+ lodash.isplainobject: 4.0.6
+ lodash.union: 4.6.0
+ normalize-path: 3.0.0
+ readable-stream: 2.3.8
+
+ archiver-utils@3.0.4:
+ dependencies:
+ glob: 7.2.3
+ graceful-fs: 4.2.11
+ lazystream: 1.0.1
+ lodash.defaults: 4.2.0
+ lodash.difference: 4.5.0
+ lodash.flatten: 4.4.0
+ lodash.isplainobject: 4.0.6
+ lodash.union: 4.6.0
+ normalize-path: 3.0.0
+ readable-stream: 3.6.2
+
+ archiver@5.3.2:
+ dependencies:
+ archiver-utils: 2.1.0
+ async: 3.2.6
+ buffer-crc32: 0.2.13
+ readable-stream: 3.6.2
+ readdir-glob: 1.1.3
+ tar-stream: 2.2.0
+ zip-stream: 4.1.1
+
+ argparse@2.0.1: {}
+
+ array-union@2.1.0: {}
+
+ assert-plus@1.0.0:
+ optional: true
+
+ astral-regex@2.0.0:
+ optional: true
+
+ async-exit-hook@2.0.1: {}
+
+ async@3.2.6: {}
+
+ asynckit@0.4.0: {}
+
+ at-least-node@1.0.0: {}
+
+ balanced-match@1.0.2: {}
+
+ base64-js@1.5.1: {}
+
+ bl@4.1.0:
+ dependencies:
+ buffer: 5.7.1
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+
+ bluebird-lst@1.0.9:
+ dependencies:
+ bluebird: 3.7.2
+
+ bluebird@3.7.2: {}
+
+ boolean@3.2.0:
+ optional: true
+
+ brace-expansion@1.1.11:
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+
+ brace-expansion@2.0.1:
+ dependencies:
+ balanced-match: 1.0.2
+
+ braces@3.0.3:
+ dependencies:
+ fill-range: 7.1.1
+
+ browserslist@4.24.4:
+ dependencies:
+ caniuse-lite: 1.0.30001699
+ electron-to-chromium: 1.5.96
+ node-releases: 2.0.19
+ update-browserslist-db: 1.1.2(browserslist@4.24.4)
+
+ buffer-crc32@0.2.13: {}
+
+ buffer-equal@1.0.1: {}
+
+ buffer-from@1.1.2: {}
+
+ buffer@5.7.1:
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+
+ builder-util-runtime@9.2.4:
+ dependencies:
+ debug: 4.4.0
+ sax: 1.4.1
+ transitivePeerDependencies:
+ - supports-color
+
+ builder-util@24.13.1:
+ dependencies:
+ 7zip-bin: 5.2.0
+ '@types/debug': 4.1.12
+ app-builder-bin: 4.0.0
+ bluebird-lst: 1.0.9
+ builder-util-runtime: 9.2.4
+ chalk: 4.1.2
+ cross-spawn: 7.0.6
+ debug: 4.4.0
+ fs-extra: 10.1.0
+ http-proxy-agent: 5.0.0
+ https-proxy-agent: 5.0.1
+ is-ci: 3.0.1
+ js-yaml: 4.1.0
+ source-map-support: 0.5.21
+ stat-mode: 1.0.0
+ temp-file: 3.4.0
+ transitivePeerDependencies:
+ - supports-color
+
+ cac@6.7.14: {}
+
+ cacheable-lookup@5.0.4: {}
+
+ cacheable-request@7.0.4:
+ dependencies:
+ clone-response: 1.0.3
+ get-stream: 5.2.0
+ http-cache-semantics: 4.1.1
+ keyv: 4.5.4
+ lowercase-keys: 2.0.0
+ normalize-url: 6.1.0
+ responselike: 2.0.1
+
+ callsites@3.1.0: {}
+
+ caniuse-lite@1.0.30001699: {}
+
+ chalk@4.1.2:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ chownr@2.0.0: {}
+
+ chromium-pickle-js@0.2.0: {}
+
+ ci-info@3.9.0: {}
+
+ cli-truncate@2.1.0:
+ dependencies:
+ slice-ansi: 3.0.0
+ string-width: 4.2.3
+ optional: true
+
+ cliui@8.0.1:
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+
+ clone-response@1.0.3:
+ dependencies:
+ mimic-response: 1.0.1
+
+ color-convert@2.0.1:
+ dependencies:
+ color-name: 1.1.4
+
+ color-name@1.1.4: {}
+
+ combined-stream@1.0.8:
+ dependencies:
+ delayed-stream: 1.0.0
+
+ commander@5.1.0: {}
+
+ compare-version@0.1.2: {}
+
+ compress-commons@4.1.2:
+ dependencies:
+ buffer-crc32: 0.2.13
+ crc32-stream: 4.0.3
+ normalize-path: 3.0.0
+ readable-stream: 3.6.2
+
+ concat-map@0.0.1: {}
+
+ config-file-ts@0.2.6:
+ dependencies:
+ glob: 10.4.5
+ typescript: 5.7.3
+
+ convert-source-map@2.0.0: {}
+
+ core-util-is@1.0.2:
+ optional: true
+
+ core-util-is@1.0.3: {}
+
+ crc-32@1.2.2: {}
+
+ crc32-stream@4.0.3:
+ dependencies:
+ crc-32: 1.2.2
+ readable-stream: 3.6.2
+
+ crc@3.8.0:
+ dependencies:
+ buffer: 5.7.1
+ optional: true
+
+ cross-spawn@7.0.6:
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+
+ debug@4.4.0:
+ dependencies:
+ ms: 2.1.3
+
+ decompress-response@6.0.0:
+ dependencies:
+ mimic-response: 3.1.0
+
+ deep-is@0.1.4: {}
+
+ defer-to-connect@2.0.1: {}
+
+ define-data-property@1.1.4:
+ dependencies:
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ gopd: 1.2.0
+ optional: true
+
+ define-properties@1.2.1:
+ dependencies:
+ define-data-property: 1.1.4
+ has-property-descriptors: 1.0.2
+ object-keys: 1.1.1
+ optional: true
+
+ delayed-stream@1.0.0: {}
+
+ detect-node@2.1.0:
+ optional: true
+
+ dir-compare@3.3.0:
+ dependencies:
+ buffer-equal: 1.0.1
+ minimatch: 3.1.2
+
+ dir-glob@3.0.1:
+ dependencies:
+ path-type: 4.0.0
+
+ dmg-builder@24.13.3(electron-builder-squirrel-windows@24.13.3):
+ dependencies:
+ app-builder-lib: 24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3)
+ builder-util: 24.13.1
+ builder-util-runtime: 9.2.4
+ fs-extra: 10.1.0
+ iconv-lite: 0.6.3
+ js-yaml: 4.1.0
+ optionalDependencies:
+ dmg-license: 1.0.11
+ transitivePeerDependencies:
+ - electron-builder-squirrel-windows
+ - supports-color
+
+ dmg-license@1.0.11:
+ dependencies:
+ '@types/plist': 3.0.5
+ '@types/verror': 1.10.10
+ ajv: 6.12.6
+ crc: 3.8.0
+ iconv-corefoundation: 1.1.7
+ plist: 3.1.0
+ smart-buffer: 4.2.0
+ verror: 1.10.1
+ optional: true
+
+ doctrine@3.0.0:
+ dependencies:
+ esutils: 2.0.3
+
+ dotenv-expand@5.1.0: {}
+
+ dotenv@9.0.2: {}
+
+ eastasianwidth@0.2.0: {}
+
+ ejs@3.1.10:
+ dependencies:
+ jake: 10.9.2
+
+ electron-builder-squirrel-windows@24.13.3(dmg-builder@24.13.3):
+ dependencies:
+ app-builder-lib: 24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3)
+ archiver: 5.3.2
+ builder-util: 24.13.1
+ fs-extra: 10.1.0
+ transitivePeerDependencies:
+ - dmg-builder
+ - supports-color
+
+ electron-builder@24.13.3(electron-builder-squirrel-windows@24.13.3):
+ dependencies:
+ app-builder-lib: 24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3)
+ builder-util: 24.13.1
+ builder-util-runtime: 9.2.4
+ chalk: 4.1.2
+ dmg-builder: 24.13.3(electron-builder-squirrel-windows@24.13.3)
+ fs-extra: 10.1.0
+ is-ci: 3.0.1
+ lazy-val: 1.0.5
+ read-config-file: 6.3.2
+ simple-update-notifier: 2.0.0
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - electron-builder-squirrel-windows
+ - supports-color
+
+ electron-publish@24.13.1:
+ dependencies:
+ '@types/fs-extra': 9.0.13
+ builder-util: 24.13.1
+ builder-util-runtime: 9.2.4
+ chalk: 4.1.2
+ fs-extra: 10.1.0
+ lazy-val: 1.0.5
+ mime: 2.6.0
+ transitivePeerDependencies:
+ - supports-color
+
+ electron-to-chromium@1.5.96: {}
+
+ electron-vite@2.3.0(vite@5.4.14(@types/node@20.17.17)):
+ dependencies:
+ '@babel/core': 7.26.8
+ '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.8)
+ cac: 6.7.14
+ esbuild: 0.21.5
+ magic-string: 0.30.17
+ picocolors: 1.1.1
+ vite: 5.4.14(@types/node@20.17.17)
+ transitivePeerDependencies:
+ - supports-color
+
+ electron@31.7.7:
+ dependencies:
+ '@electron/get': 2.0.3
+ '@types/node': 20.17.17
+ extract-zip: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ emoji-regex@8.0.0: {}
+
+ emoji-regex@9.2.2: {}
+
+ end-of-stream@1.4.4:
+ dependencies:
+ once: 1.4.0
+
+ env-paths@2.2.1: {}
+
+ err-code@2.0.3: {}
+
+ es-define-property@1.0.1:
+ optional: true
+
+ es-errors@1.3.0:
+ optional: true
+
+ es6-error@4.1.1:
+ optional: true
+
+ esbuild@0.21.5:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.21.5
+ '@esbuild/android-arm': 0.21.5
+ '@esbuild/android-arm64': 0.21.5
+ '@esbuild/android-x64': 0.21.5
+ '@esbuild/darwin-arm64': 0.21.5
+ '@esbuild/darwin-x64': 0.21.5
+ '@esbuild/freebsd-arm64': 0.21.5
+ '@esbuild/freebsd-x64': 0.21.5
+ '@esbuild/linux-arm': 0.21.5
+ '@esbuild/linux-arm64': 0.21.5
+ '@esbuild/linux-ia32': 0.21.5
+ '@esbuild/linux-loong64': 0.21.5
+ '@esbuild/linux-mips64el': 0.21.5
+ '@esbuild/linux-ppc64': 0.21.5
+ '@esbuild/linux-riscv64': 0.21.5
+ '@esbuild/linux-s390x': 0.21.5
+ '@esbuild/linux-x64': 0.21.5
+ '@esbuild/netbsd-x64': 0.21.5
+ '@esbuild/openbsd-x64': 0.21.5
+ '@esbuild/sunos-x64': 0.21.5
+ '@esbuild/win32-arm64': 0.21.5
+ '@esbuild/win32-ia32': 0.21.5
+ '@esbuild/win32-x64': 0.21.5
+
+ escalade@3.2.0: {}
+
+ escape-string-regexp@4.0.0: {}
+
+ eslint-config-prettier@9.1.0(eslint@8.57.1):
+ dependencies:
+ eslint: 8.57.1
+
+ eslint-plugin-prettier@5.2.3(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.5.0):
+ dependencies:
+ eslint: 8.57.1
+ prettier: 3.5.0
+ prettier-linter-helpers: 1.0.0
+ synckit: 0.9.2
+ optionalDependencies:
+ eslint-config-prettier: 9.1.0(eslint@8.57.1)
+
+ eslint-scope@7.2.2:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
+ eslint-visitor-keys@3.4.3: {}
+
+ eslint@8.57.1:
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1)
+ '@eslint-community/regexpp': 4.12.1
+ '@eslint/eslintrc': 2.1.4
+ '@eslint/js': 8.57.1
+ '@humanwhocodes/config-array': 0.13.0
+ '@humanwhocodes/module-importer': 1.0.1
+ '@nodelib/fs.walk': 1.2.8
+ '@ungap/structured-clone': 1.3.0
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.6
+ debug: 4.4.0
+ doctrine: 3.0.0
+ escape-string-regexp: 4.0.0
+ eslint-scope: 7.2.2
+ eslint-visitor-keys: 3.4.3
+ espree: 9.6.1
+ esquery: 1.6.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 6.0.1
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ globals: 13.24.0
+ graphemer: 1.4.0
+ ignore: 5.3.2
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ is-path-inside: 3.0.3
+ js-yaml: 4.1.0
+ json-stable-stringify-without-jsonify: 1.0.1
+ levn: 0.4.1
+ lodash.merge: 4.6.2
+ minimatch: 3.1.2
+ natural-compare: 1.4.0
+ optionator: 0.9.4
+ strip-ansi: 6.0.1
+ text-table: 0.2.0
+ transitivePeerDependencies:
+ - supports-color
+
+ espree@9.6.1:
+ dependencies:
+ acorn: 8.14.0
+ acorn-jsx: 5.3.2(acorn@8.14.0)
+ eslint-visitor-keys: 3.4.3
+
+ esquery@1.6.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ esrecurse@4.3.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ estraverse@5.3.0: {}
+
+ esutils@2.0.3: {}
+
+ extract-zip@2.0.1:
+ dependencies:
+ debug: 4.4.0
+ get-stream: 5.2.0
+ yauzl: 2.10.0
+ optionalDependencies:
+ '@types/yauzl': 2.10.3
+ transitivePeerDependencies:
+ - supports-color
+
+ extsprintf@1.4.1:
+ optional: true
+
+ fast-deep-equal@3.1.3: {}
+
+ fast-diff@1.3.0: {}
+
+ fast-glob@3.3.3:
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.8
+
+ fast-json-stable-stringify@2.1.0: {}
+
+ fast-levenshtein@2.0.6: {}
+
+ fastq@1.19.0:
+ dependencies:
+ reusify: 1.0.4
+
+ fd-slicer@1.1.0:
+ dependencies:
+ pend: 1.2.0
+
+ file-entry-cache@6.0.1:
+ dependencies:
+ flat-cache: 3.2.0
+
+ filelist@1.0.4:
+ dependencies:
+ minimatch: 5.1.6
+
+ fill-range@7.1.1:
+ dependencies:
+ to-regex-range: 5.0.1
+
+ find-up@5.0.0:
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+
+ flat-cache@3.2.0:
+ dependencies:
+ flatted: 3.3.2
+ keyv: 4.5.4
+ rimraf: 3.0.2
+
+ flatted@3.3.2: {}
+
+ foreground-child@3.3.0:
+ dependencies:
+ cross-spawn: 7.0.6
+ signal-exit: 4.1.0
+
+ form-data@4.0.1:
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ mime-types: 2.1.35
+
+ fs-constants@1.0.0: {}
+
+ fs-extra@10.1.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 2.0.1
+
+ fs-extra@8.1.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 4.0.0
+ universalify: 0.1.2
+
+ fs-extra@9.1.0:
+ dependencies:
+ at-least-node: 1.0.0
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 2.0.1
+
+ fs-minipass@2.1.0:
+ dependencies:
+ minipass: 3.3.6
+
+ fs.realpath@1.0.0: {}
+
+ fsevents@2.3.3:
+ optional: true
+
+ gensync@1.0.0-beta.2: {}
+
+ get-caller-file@2.0.5: {}
+
+ get-stream@5.2.0:
+ dependencies:
+ pump: 3.0.2
+
+ glob-parent@5.1.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob-parent@6.0.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob@10.4.5:
+ dependencies:
+ foreground-child: 3.3.0
+ jackspeak: 3.4.3
+ minimatch: 9.0.5
+ minipass: 7.1.2
+ package-json-from-dist: 1.0.1
+ path-scurry: 1.11.1
+
+ glob@7.2.3:
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+
+ global-agent@3.0.0:
+ dependencies:
+ boolean: 3.2.0
+ es6-error: 4.1.1
+ matcher: 3.0.0
+ roarr: 2.15.4
+ semver: 7.7.1
+ serialize-error: 7.0.1
+ optional: true
+
+ globals@11.12.0: {}
+
+ globals@13.24.0:
+ dependencies:
+ type-fest: 0.20.2
+
+ globalthis@1.0.4:
+ dependencies:
+ define-properties: 1.2.1
+ gopd: 1.2.0
+ optional: true
+
+ globby@11.1.0:
+ dependencies:
+ array-union: 2.1.0
+ dir-glob: 3.0.1
+ fast-glob: 3.3.3
+ ignore: 5.3.2
+ merge2: 1.4.1
+ slash: 3.0.0
+
+ gopd@1.2.0:
+ optional: true
+
+ got@11.8.6:
+ dependencies:
+ '@sindresorhus/is': 4.6.0
+ '@szmarczak/http-timer': 4.0.6
+ '@types/cacheable-request': 6.0.3
+ '@types/responselike': 1.0.3
+ cacheable-lookup: 5.0.4
+ cacheable-request: 7.0.4
+ decompress-response: 6.0.0
+ http2-wrapper: 1.0.3
+ lowercase-keys: 2.0.0
+ p-cancelable: 2.1.1
+ responselike: 2.0.1
+
+ graceful-fs@4.2.11: {}
+
+ graphemer@1.4.0: {}
+
+ has-flag@4.0.0: {}
+
+ has-property-descriptors@1.0.2:
+ dependencies:
+ es-define-property: 1.0.1
+ optional: true
+
+ hosted-git-info@4.1.0:
+ dependencies:
+ lru-cache: 6.0.0
+
+ http-cache-semantics@4.1.1: {}
+
+ http-proxy-agent@5.0.0:
+ dependencies:
+ '@tootallnate/once': 2.0.0
+ agent-base: 6.0.2
+ debug: 4.4.0
+ transitivePeerDependencies:
+ - supports-color
+
+ http2-wrapper@1.0.3:
+ dependencies:
+ quick-lru: 5.1.1
+ resolve-alpn: 1.2.1
+
+ https-proxy-agent@5.0.1:
+ dependencies:
+ agent-base: 6.0.2
+ debug: 4.4.0
+ transitivePeerDependencies:
+ - supports-color
+
+ iconv-corefoundation@1.1.7:
+ dependencies:
+ cli-truncate: 2.1.0
+ node-addon-api: 1.7.2
+ optional: true
+
+ iconv-lite@0.6.3:
+ dependencies:
+ safer-buffer: 2.1.2
+
+ ieee754@1.2.1: {}
+
+ ignore@5.3.2: {}
+
+ import-fresh@3.3.1:
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+
+ imurmurhash@0.1.4: {}
+
+ inflight@1.0.6:
+ dependencies:
+ once: 1.4.0
+ wrappy: 1.0.2
+
+ inherits@2.0.4: {}
+
+ is-ci@3.0.1:
+ dependencies:
+ ci-info: 3.9.0
+
+ is-extglob@2.1.1: {}
+
+ is-fullwidth-code-point@3.0.0: {}
+
+ is-glob@4.0.3:
+ dependencies:
+ is-extglob: 2.1.1
+
+ is-number@7.0.0: {}
+
+ is-path-inside@3.0.3: {}
+
+ isarray@1.0.0: {}
+
+ isbinaryfile@4.0.10: {}
+
+ isbinaryfile@5.0.4: {}
+
+ isexe@2.0.0: {}
+
+ jackspeak@3.4.3:
+ dependencies:
+ '@isaacs/cliui': 8.0.2
+ optionalDependencies:
+ '@pkgjs/parseargs': 0.11.0
+
+ jake@10.9.2:
+ dependencies:
+ async: 3.2.6
+ chalk: 4.1.2
+ filelist: 1.0.4
+ minimatch: 3.1.2
+
+ js-tokens@4.0.0: {}
+
+ js-yaml@4.1.0:
+ dependencies:
+ argparse: 2.0.1
+
+ jsesc@3.1.0: {}
+
+ json-buffer@3.0.1: {}
+
+ json-schema-traverse@0.4.1: {}
+
+ json-stable-stringify-without-jsonify@1.0.1: {}
+
+ json-stringify-safe@5.0.1:
+ optional: true
+
+ json5@2.2.3: {}
+
+ jsonfile@4.0.0:
+ optionalDependencies:
+ graceful-fs: 4.2.11
+
+ jsonfile@6.1.0:
+ dependencies:
+ universalify: 2.0.1
+ optionalDependencies:
+ graceful-fs: 4.2.11
+
+ keyv@4.5.4:
+ dependencies:
+ json-buffer: 3.0.1
+
+ lazy-val@1.0.5: {}
+
+ lazystream@1.0.1:
+ dependencies:
+ readable-stream: 2.3.8
+
+ levn@0.4.1:
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+
+ locate-path@6.0.0:
+ dependencies:
+ p-locate: 5.0.0
+
+ lodash.defaults@4.2.0: {}
+
+ lodash.difference@4.5.0: {}
+
+ lodash.flatten@4.4.0: {}
+
+ lodash.isplainobject@4.0.6: {}
+
+ lodash.merge@4.6.2: {}
+
+ lodash.union@4.6.0: {}
+
+ lodash@4.17.21: {}
+
+ lowercase-keys@2.0.0: {}
+
+ lru-cache@10.4.3: {}
+
+ lru-cache@5.1.1:
+ dependencies:
+ yallist: 3.1.1
+
+ lru-cache@6.0.0:
+ dependencies:
+ yallist: 4.0.0
+
+ magic-string@0.30.17:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.0
+
+ matcher@3.0.0:
+ dependencies:
+ escape-string-regexp: 4.0.0
+ optional: true
+
+ merge2@1.4.1: {}
+
+ micromatch@4.0.8:
+ dependencies:
+ braces: 3.0.3
+ picomatch: 2.3.1
+
+ mime-db@1.52.0: {}
+
+ mime-types@2.1.35:
+ dependencies:
+ mime-db: 1.52.0
+
+ mime@2.6.0: {}
+
+ mimic-response@1.0.1: {}
+
+ mimic-response@3.1.0: {}
+
+ minimatch@3.1.2:
+ dependencies:
+ brace-expansion: 1.1.11
+
+ minimatch@5.1.6:
+ dependencies:
+ brace-expansion: 2.0.1
+
+ minimatch@9.0.5:
+ dependencies:
+ brace-expansion: 2.0.1
+
+ minimist@1.2.8: {}
+
+ minipass@3.3.6:
+ dependencies:
+ yallist: 4.0.0
+
+ minipass@5.0.0: {}
+
+ minipass@7.1.2: {}
+
+ minizlib@2.1.2:
+ dependencies:
+ minipass: 3.3.6
+ yallist: 4.0.0
+
+ mkdirp@1.0.4: {}
+
+ ms@2.1.3: {}
+
+ nanoid@3.3.8: {}
+
+ natural-compare@1.4.0: {}
+
+ node-addon-api@1.7.2:
+ optional: true
+
+ node-releases@2.0.19: {}
+
+ normalize-path@3.0.0: {}
+
+ normalize-url@6.1.0: {}
+
+ object-keys@1.1.1:
+ optional: true
+
+ once@1.4.0:
+ dependencies:
+ wrappy: 1.0.2
+
+ optionator@0.9.4:
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.4.1
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ word-wrap: 1.2.5
+
+ p-cancelable@2.1.1: {}
+
+ p-limit@3.1.0:
+ dependencies:
+ yocto-queue: 0.1.0
+
+ p-locate@5.0.0:
+ dependencies:
+ p-limit: 3.1.0
+
+ package-json-from-dist@1.0.1: {}
+
+ parent-module@1.0.1:
+ dependencies:
+ callsites: 3.1.0
+
+ path-exists@4.0.0: {}
+
+ path-is-absolute@1.0.1: {}
+
+ path-key@3.1.1: {}
+
+ path-scurry@1.11.1:
+ dependencies:
+ lru-cache: 10.4.3
+ minipass: 7.1.2
+
+ path-type@4.0.0: {}
+
+ pend@1.2.0: {}
+
+ picocolors@1.1.1: {}
+
+ picomatch@2.3.1: {}
+
+ plist@3.1.0:
+ dependencies:
+ '@xmldom/xmldom': 0.8.10
+ base64-js: 1.5.1
+ xmlbuilder: 15.1.1
+
+ postcss@8.5.1:
+ dependencies:
+ nanoid: 3.3.8
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ prelude-ls@1.2.1: {}
+
+ prettier-linter-helpers@1.0.0:
+ dependencies:
+ fast-diff: 1.3.0
+
+ prettier@3.5.0: {}
+
+ process-nextick-args@2.0.1: {}
+
+ progress@2.0.3: {}
+
+ promise-retry@2.0.1:
+ dependencies:
+ err-code: 2.0.3
+ retry: 0.12.0
+
+ pump@3.0.2:
+ dependencies:
+ end-of-stream: 1.4.4
+ once: 1.4.0
+
+ punycode@2.3.1: {}
+
+ queue-microtask@1.2.3: {}
+
+ quick-lru@5.1.1: {}
+
+ read-config-file@6.3.2:
+ dependencies:
+ config-file-ts: 0.2.6
+ dotenv: 9.0.2
+ dotenv-expand: 5.1.0
+ js-yaml: 4.1.0
+ json5: 2.2.3
+ lazy-val: 1.0.5
+
+ readable-stream@2.3.8:
+ dependencies:
+ core-util-is: 1.0.3
+ inherits: 2.0.4
+ isarray: 1.0.0
+ process-nextick-args: 2.0.1
+ safe-buffer: 5.1.2
+ string_decoder: 1.1.1
+ util-deprecate: 1.0.2
+
+ readable-stream@3.6.2:
+ dependencies:
+ inherits: 2.0.4
+ string_decoder: 1.3.0
+ util-deprecate: 1.0.2
+
+ readdir-glob@1.1.3:
+ dependencies:
+ minimatch: 5.1.6
+
+ require-directory@2.1.1: {}
+
+ resolve-alpn@1.2.1: {}
+
+ resolve-from@4.0.0: {}
+
+ responselike@2.0.1:
+ dependencies:
+ lowercase-keys: 2.0.0
+
+ retry@0.12.0: {}
+
+ reusify@1.0.4: {}
+
+ rimraf@3.0.2:
+ dependencies:
+ glob: 7.2.3
+
+ roarr@2.15.4:
+ dependencies:
+ boolean: 3.2.0
+ detect-node: 2.1.0
+ globalthis: 1.0.4
+ json-stringify-safe: 5.0.1
+ semver-compare: 1.0.0
+ sprintf-js: 1.1.3
+ optional: true
+
+ rollup@4.34.6:
+ dependencies:
+ '@types/estree': 1.0.6
+ optionalDependencies:
+ '@rollup/rollup-android-arm-eabi': 4.34.6
+ '@rollup/rollup-android-arm64': 4.34.6
+ '@rollup/rollup-darwin-arm64': 4.34.6
+ '@rollup/rollup-darwin-x64': 4.34.6
+ '@rollup/rollup-freebsd-arm64': 4.34.6
+ '@rollup/rollup-freebsd-x64': 4.34.6
+ '@rollup/rollup-linux-arm-gnueabihf': 4.34.6
+ '@rollup/rollup-linux-arm-musleabihf': 4.34.6
+ '@rollup/rollup-linux-arm64-gnu': 4.34.6
+ '@rollup/rollup-linux-arm64-musl': 4.34.6
+ '@rollup/rollup-linux-loongarch64-gnu': 4.34.6
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.34.6
+ '@rollup/rollup-linux-riscv64-gnu': 4.34.6
+ '@rollup/rollup-linux-s390x-gnu': 4.34.6
+ '@rollup/rollup-linux-x64-gnu': 4.34.6
+ '@rollup/rollup-linux-x64-musl': 4.34.6
+ '@rollup/rollup-win32-arm64-msvc': 4.34.6
+ '@rollup/rollup-win32-ia32-msvc': 4.34.6
+ '@rollup/rollup-win32-x64-msvc': 4.34.6
+ fsevents: 2.3.3
+
+ run-parallel@1.2.0:
+ dependencies:
+ queue-microtask: 1.2.3
+
+ safe-buffer@5.1.2: {}
+
+ safe-buffer@5.2.1: {}
+
+ safer-buffer@2.1.2: {}
+
+ sanitize-filename@1.6.3:
+ dependencies:
+ truncate-utf8-bytes: 1.0.2
+
+ sax@1.4.1: {}
+
+ semver-compare@1.0.0:
+ optional: true
+
+ semver@6.3.1: {}
+
+ semver@7.7.1: {}
+
+ serialize-error@7.0.1:
+ dependencies:
+ type-fest: 0.13.1
+ optional: true
+
+ shebang-command@2.0.0:
+ dependencies:
+ shebang-regex: 3.0.0
+
+ shebang-regex@3.0.0: {}
+
+ signal-exit@4.1.0: {}
+
+ simple-update-notifier@2.0.0:
+ dependencies:
+ semver: 7.7.1
+
+ slash@3.0.0: {}
+
+ slice-ansi@3.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ astral-regex: 2.0.0
+ is-fullwidth-code-point: 3.0.0
+ optional: true
+
+ smart-buffer@4.2.0:
+ optional: true
+
+ source-map-js@1.2.1: {}
+
+ source-map-support@0.5.21:
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+
+ source-map@0.6.1: {}
+
+ sprintf-js@1.1.3:
+ optional: true
+
+ stat-mode@1.0.0: {}
+
+ string-width@4.2.3:
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+
+ string-width@5.1.2:
+ dependencies:
+ eastasianwidth: 0.2.0
+ emoji-regex: 9.2.2
+ strip-ansi: 7.1.0
+
+ string_decoder@1.1.1:
+ dependencies:
+ safe-buffer: 5.1.2
+
+ string_decoder@1.3.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ strip-ansi@6.0.1:
+ dependencies:
+ ansi-regex: 5.0.1
+
+ strip-ansi@7.1.0:
+ dependencies:
+ ansi-regex: 6.1.0
+
+ strip-json-comments@3.1.1: {}
+
+ sumchecker@3.0.1:
+ dependencies:
+ debug: 4.4.0
+ transitivePeerDependencies:
+ - supports-color
+
+ supports-color@7.2.0:
+ dependencies:
+ has-flag: 4.0.0
+
+ synckit@0.9.2:
+ dependencies:
+ '@pkgr/core': 0.1.1
+ tslib: 2.8.1
+
+ tar-stream@2.2.0:
+ dependencies:
+ bl: 4.1.0
+ end-of-stream: 1.4.4
+ fs-constants: 1.0.0
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+
+ tar@6.2.1:
+ dependencies:
+ chownr: 2.0.0
+ fs-minipass: 2.1.0
+ minipass: 5.0.0
+ minizlib: 2.1.2
+ mkdirp: 1.0.4
+ yallist: 4.0.0
+
+ temp-file@3.4.0:
+ dependencies:
+ async-exit-hook: 2.0.1
+ fs-extra: 10.1.0
+
+ text-table@0.2.0: {}
+
+ tmp-promise@3.0.3:
+ dependencies:
+ tmp: 0.2.3
+
+ tmp@0.2.3: {}
+
+ to-regex-range@5.0.1:
+ dependencies:
+ is-number: 7.0.0
+
+ truncate-utf8-bytes@1.0.2:
+ dependencies:
+ utf8-byte-length: 1.0.5
+
+ ts-api-utils@1.4.3(typescript@5.7.3):
+ dependencies:
+ typescript: 5.7.3
+
+ tslib@2.8.1: {}
+
+ type-check@0.4.0:
+ dependencies:
+ prelude-ls: 1.2.1
+
+ type-fest@0.13.1:
+ optional: true
+
+ type-fest@0.20.2: {}
+
+ typescript@5.7.3: {}
+
+ undici-types@6.19.8: {}
+
+ universalify@0.1.2: {}
+
+ universalify@2.0.1: {}
+
+ update-browserslist-db@1.1.2(browserslist@4.24.4):
+ dependencies:
+ browserslist: 4.24.4
+ escalade: 3.2.0
+ picocolors: 1.1.1
+
+ uri-js@4.4.1:
+ dependencies:
+ punycode: 2.3.1
+
+ utf8-byte-length@1.0.5: {}
+
+ util-deprecate@1.0.2: {}
+
+ verror@1.10.1:
+ dependencies:
+ assert-plus: 1.0.0
+ core-util-is: 1.0.2
+ extsprintf: 1.4.1
+ optional: true
+
+ vite@5.4.14(@types/node@20.17.17):
+ dependencies:
+ esbuild: 0.21.5
+ postcss: 8.5.1
+ rollup: 4.34.6
+ optionalDependencies:
+ '@types/node': 20.17.17
+ fsevents: 2.3.3
+
+ which@2.0.2:
+ dependencies:
+ isexe: 2.0.0
+
+ word-wrap@1.2.5: {}
+
+ wrap-ansi@7.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
+ wrap-ansi@8.1.0:
+ dependencies:
+ ansi-styles: 6.2.1
+ string-width: 5.1.2
+ strip-ansi: 7.1.0
+
+ wrappy@1.0.2: {}
+
+ xmlbuilder@15.1.1: {}
+
+ y18n@5.0.8: {}
+
+ yallist@3.1.1: {}
+
+ yallist@4.0.0: {}
+
+ yargs-parser@21.1.1: {}
+
+ yargs@17.7.2:
+ dependencies:
+ cliui: 8.0.1
+ escalade: 3.2.0
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ string-width: 4.2.3
+ y18n: 5.0.8
+ yargs-parser: 21.1.1
+
+ yauzl@2.10.0:
+ dependencies:
+ buffer-crc32: 0.2.13
+ fd-slicer: 1.1.0
+
+ yocto-queue@0.1.0: {}
+
+ zip-stream@4.1.1:
+ dependencies:
+ archiver-utils: 3.0.4
+ compress-commons: 4.1.2
+ readable-stream: 3.6.2
diff --git a/packages/rpc/examples/boops-typescript/src/main/index.ts b/packages/rpc/examples/boops-typescript/src/main/index.ts
new file mode 100644
index 000000000000..8de35013bb19
--- /dev/null
+++ b/packages/rpc/examples/boops-typescript/src/main/index.ts
@@ -0,0 +1,112 @@
+import { app, shell, BrowserWindow, ipcMain } from 'electron'
+import { join } from 'path'
+import { electronApp, optimizer, is } from '@electron-toolkit/utils'
+import { Events, RPCClient, register } from '../../../../dist'
+
+let mainWindow: BrowserWindow
+
+function createWindow(): void {
+ // Create the browser window.
+ mainWindow = new BrowserWindow({
+ width: 900,
+ height: 670,
+ show: false,
+ autoHideMenuBar: true,
+ webPreferences: {
+ preload: join(__dirname, '../preload/index.js'),
+ sandbox: false
+ }
+ })
+
+ mainWindow.on('ready-to-show', () => {
+ mainWindow.show()
+ })
+
+ mainWindow.webContents.setWindowOpenHandler((details) => {
+ shell.openExternal(details.url)
+ return { action: 'deny' }
+ })
+
+ // HMR for renderer base on electron-vite cli.
+ // Load the remote URL for development or the local html file for production.
+ if (is.dev && process.env['ELECTRON_RENDERER_URL']) {
+ mainWindow.loadURL(process.env['ELECTRON_RENDERER_URL'])
+ } else {
+ mainWindow.loadFile(join(__dirname, '../renderer/index.html'))
+ }
+}
+
+// This method will be called when Electron has finished
+// initialization and is ready to create browser windows.
+// Some APIs can only be used after this event occurs.
+app.whenReady().then(() => {
+ // Set app user model id for windows
+ electronApp.setAppUserModelId('com.electron')
+
+ // Default open or close DevTools by F12 in development
+ // and ignore CommandOrControl + R in production.
+ // see https://github.com/alex8088/electron-toolkit/tree/master/packages/utils
+ app.on('browser-window-created', (_, window) => {
+ optimizer.watchWindowShortcuts(window)
+ })
+
+ // IPC test
+ ipcMain.on('ping', () => console.log('pong'))
+
+ createWindow()
+
+ app.on('activate', function () {
+ // On macOS it's common to re-create a window in the app when the
+ // dock icon is clicked and there are no other windows open.
+ if (BrowserWindow.getAllWindows().length === 0) createWindow()
+ })
+})
+
+// Quit when all windows are closed, except on macOS. There, it's common
+// for applications and their menu bar to stay active until the user quits
+// explicitly with Cmd + Q.
+app.on('window-all-closed', () => {
+ if (process.platform !== 'darwin') {
+ app.quit()
+ }
+})
+
+// In this file you can include the rest of your app"s specific main process
+// code. You can also put them in separate files and require them here.
+
+// Set this to your Client ID.
+const clientId = '280984871685062656'
+
+// Only needed if you want to use spectate, join, or ask to join
+register(clientId)
+
+const client = new RPCClient()
+const startTimestamp = new Date().getTime()
+
+async function setActivity(): Promise {
+ if (!client || !mainWindow) {
+ return
+ }
+
+ const boops = await mainWindow.webContents.executeJavaScript(
+ 'document.querySelector("#boops").innerText'
+ )
+
+ await client.setActivity({
+ details: `booped ${boops} times`,
+ state: 'in slither party',
+ timestamps: { start: startTimestamp },
+ instance: false
+ })
+}
+
+client.once(Events.Ready, async () => {
+ await setActivity()
+
+ // Activity can only be set every 15 seconds
+ setInterval(async () => {
+ await setActivity()
+ }, 15e3)
+})
+
+client.login({ clientId }).catch(console.error)
diff --git a/packages/rpc/examples/boops-typescript/src/preload/index.d.ts b/packages/rpc/examples/boops-typescript/src/preload/index.d.ts
new file mode 100644
index 000000000000..a15366957a72
--- /dev/null
+++ b/packages/rpc/examples/boops-typescript/src/preload/index.d.ts
@@ -0,0 +1,8 @@
+import { ElectronAPI } from '@electron-toolkit/preload'
+
+declare global {
+ interface Window {
+ electron: ElectronAPI
+ api: unknown
+ }
+}
diff --git a/packages/rpc/examples/boops-typescript/src/preload/index.ts b/packages/rpc/examples/boops-typescript/src/preload/index.ts
new file mode 100644
index 000000000000..2d1852475c03
--- /dev/null
+++ b/packages/rpc/examples/boops-typescript/src/preload/index.ts
@@ -0,0 +1,22 @@
+import { contextBridge } from 'electron'
+import { electronAPI } from '@electron-toolkit/preload'
+
+// Custom APIs for renderer
+const api = {}
+
+// Use `contextBridge` APIs to expose Electron APIs to
+// renderer only if context isolation is enabled, otherwise
+// just add to the DOM global.
+if (process.contextIsolated) {
+ try {
+ contextBridge.exposeInMainWorld('electron', electronAPI)
+ contextBridge.exposeInMainWorld('api', api)
+ } catch (error) {
+ console.error(error)
+ }
+} else {
+ // @ts-ignore (define in dts)
+ window.electron = electronAPI
+ // @ts-ignore (define in dts)
+ window.api = api
+}
diff --git a/packages/rpc/examples/boops-typescript/src/renderer/index.html b/packages/rpc/examples/boops-typescript/src/renderer/index.html
new file mode 100644
index 000000000000..d4a1ffc81029
--- /dev/null
+++ b/packages/rpc/examples/boops-typescript/src/renderer/index.html
@@ -0,0 +1,22 @@
+
+
+
+
+ BOOP TEH SNEK (RPC TypeScript Example)
+
+
+
+
+
+
+
+ BOOP TEH SNEK
+
+ 0 BOOPS
+
+
+
+
diff --git a/packages/rpc/examples/boops-typescript/src/renderer/src/renderer.ts b/packages/rpc/examples/boops-typescript/src/renderer/src/renderer.ts
new file mode 100644
index 000000000000..f1ec896eb34a
--- /dev/null
+++ b/packages/rpc/examples/boops-typescript/src/renderer/src/renderer.ts
@@ -0,0 +1,24 @@
+function init(): void {
+ window.addEventListener('DOMContentLoaded', () => {
+ const snek = document.querySelector('#snek')!
+ const counter = document.querySelector('#boops')!
+
+ let boops = 0
+
+ function boop(): void {
+ boops += 1
+ counter.innerHTML = `${boops} BOOPS`
+ }
+
+ snek.onmousedown = (): void => {
+ snek.style['font-size'] = '550%'
+ boop()
+ }
+
+ snek.onmouseup = (): void => {
+ snek.style['font-size'] = '500%'
+ }
+ })
+}
+
+init()
diff --git a/packages/rpc/examples/boops-typescript/src/renderer/styles.css b/packages/rpc/examples/boops-typescript/src/renderer/styles.css
new file mode 100644
index 000000000000..ad087087317c
--- /dev/null
+++ b/packages/rpc/examples/boops-typescript/src/renderer/styles.css
@@ -0,0 +1,46 @@
+body,
+html {
+ margin: 0px;
+ height: 100%;
+ cursor: default;
+ font-family: sans-serif;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-app-region: drag;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+@media (prefers-color-scheme: dark) {
+ html {
+ background-color: black;
+ color: white;
+ }
+}
+
+h1 {
+ text-align: center;
+ margin: auto;
+ padding-top: 1em;
+}
+
+#game {
+ height: 60%;
+ display: grid;
+ -webkit-app-region: no-drag;
+}
+
+#snek {
+ cursor: pointer;
+ font-size: 500%;
+ margin: auto;
+}
+
+#boops {
+ text-align: center;
+ -webkit-app-region: no-drag;
+}
diff --git a/packages/rpc/examples/boops-typescript/tsconfig.json b/packages/rpc/examples/boops-typescript/tsconfig.json
new file mode 100644
index 000000000000..31bac6e94b69
--- /dev/null
+++ b/packages/rpc/examples/boops-typescript/tsconfig.json
@@ -0,0 +1,4 @@
+{
+ "files": [],
+ "references": [{ "path": "./tsconfig.node.json" }, { "path": "./tsconfig.web.json" }]
+}
diff --git a/packages/rpc/examples/boops-typescript/tsconfig.node.json b/packages/rpc/examples/boops-typescript/tsconfig.node.json
new file mode 100644
index 000000000000..db23a68cc156
--- /dev/null
+++ b/packages/rpc/examples/boops-typescript/tsconfig.node.json
@@ -0,0 +1,8 @@
+{
+ "extends": "@electron-toolkit/tsconfig/tsconfig.node.json",
+ "include": ["electron.vite.config.*", "src/main/**/*", "src/preload/**/*"],
+ "compilerOptions": {
+ "composite": true,
+ "types": ["electron-vite/node"]
+ }
+}
diff --git a/packages/rpc/examples/boops-typescript/tsconfig.web.json b/packages/rpc/examples/boops-typescript/tsconfig.web.json
new file mode 100644
index 000000000000..9f8ebb6f736c
--- /dev/null
+++ b/packages/rpc/examples/boops-typescript/tsconfig.web.json
@@ -0,0 +1,7 @@
+{
+ "extends": "@electron-toolkit/tsconfig/tsconfig.web.json",
+ "include": ["src/renderer/**/*.ts", "src/preload/*.d.ts"],
+ "compilerOptions": {
+ "composite": true
+ }
+}
diff --git a/packages/rpc/package.json b/packages/rpc/package.json
new file mode 100644
index 000000000000..47d72174edc2
--- /dev/null
+++ b/packages/rpc/package.json
@@ -0,0 +1,87 @@
+{
+ "$schema": "https://json.schemastore.org/package.json",
+ "name": "@discordjs/rpc",
+ "version": "0.1.0",
+ "description": "A simple RPC client for Discord",
+ "scripts": {
+ "build": "tsc --noEmit && tsup",
+ "build:docs": "tsc -p tsconfig.docs.json",
+ "lint": "prettier --check . && cross-env TIMING=1 eslint --format=pretty src",
+ "format": "prettier --write . && cross-env TIMING=1 eslint --fix --format=pretty src",
+ "fmt": "pnpm run format",
+ "docs": "pnpm run build:docs && api-extractor run --local",
+ "prepack": "pnpm run build && pnpm run lint",
+ "changelog": "git cliff --prepend ./CHANGELOG.md -u -c ./cliff.toml -r ../../ --include-path 'packages/rpc/*'",
+ "release": "cliff-jumper"
+ },
+ "exports": {
+ ".": {
+ "require": {
+ "types": "./dist/index.d.ts",
+ "default": "./dist/index.js"
+ },
+ "import": {
+ "types": "./dist/index.d.mts",
+ "default": "./dist/index.mjs"
+ }
+ }
+ },
+ "main": "./dist/index.js",
+ "module": "./dist/index.mjs",
+ "types": "./dist/index.d.ts",
+ "directories": {
+ "lib": "src"
+ },
+ "files": [
+ "dist"
+ ],
+ "contributors": [
+ "Crawl ",
+ "SpaceEEC ",
+ "Vlad Frangu ",
+ "Aura Román "
+ ],
+ "license": "MIT",
+ "keywords": [
+ "discord",
+ "rpc",
+ "rich presence",
+ "remote procedural call"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/discordjs/discord.js.git",
+ "directory": "packages/rpc"
+ },
+ "bugs": {
+ "url": "https://github.com/discordjs/discord.js/issues"
+ },
+ "homepage": "https://discord.js.org",
+ "funding": "https://github.com/discordjs/discord.js?sponsor",
+ "dependencies": {
+ "@vladfrangu/async_event_emitter": "^2.4.6",
+ "discord-api-types": "^0.38.22"
+ },
+ "devDependencies": {
+ "@discordjs/api-extractor": "workspace:^",
+ "@favware/cliff-jumper": "^4.1.0",
+ "@types/node": "^22.17.2",
+ "cross-env": "^10.0.0",
+ "esbuild-plugin-version-injector": "^1.2.1",
+ "eslint": "^9.33.0",
+ "eslint-config-neon": "^0.2.7",
+ "eslint-formatter-compact": "^8.40.0",
+ "eslint-formatter-pretty": "^6.0.1",
+ "prettier": "^3.6.2",
+ "tsup": "^8.5.0",
+ "turbo": "^2.5.6",
+ "typescript": "~5.9.2"
+ },
+ "engines": {
+ "node": ">=22.12.0"
+ },
+ "publishConfig": {
+ "access": "public",
+ "provenance": true
+ }
+}
diff --git a/packages/rpc/src/RPCEventError.ts b/packages/rpc/src/RPCEventError.ts
new file mode 100644
index 000000000000..8770a2fe8581
--- /dev/null
+++ b/packages/rpc/src/RPCEventError.ts
@@ -0,0 +1,19 @@
+import type { RPCErrorCodes, RPCErrorDispatchData } from 'discord-api-types/v10';
+
+export class RPCEventError extends Error {
+ public code?: RPCErrorCodes;
+
+ public data?: RPCErrorDispatchData;
+
+ public constructor(data: RPCErrorDispatchData | string) {
+ if (typeof data === 'string') {
+ super(data);
+ return;
+ }
+
+ super(data.message);
+ this.name = 'RPCEventError';
+ this.code = data.code;
+ this.data = data;
+ }
+}
diff --git a/packages/rpc/src/client.ts b/packages/rpc/src/client.ts
new file mode 100644
index 000000000000..00c9f3460972
--- /dev/null
+++ b/packages/rpc/src/client.ts
@@ -0,0 +1,578 @@
+/* eslint-disable tsdoc/syntax */
+import { randomUUID } from 'node:crypto';
+import { clearTimeout, setTimeout } from 'node:timers';
+import { URLSearchParams } from 'node:url';
+import { AsyncEventEmitter } from '@vladfrangu/async_event_emitter';
+import type {
+ RESTPostOAuth2AccessTokenResult,
+ RESTPostOAuth2AccessTokenURLEncodedData,
+ RPCCertifiedDevice,
+ RPCCreateChannelInviteResultData,
+ RPCGetChannelResultData,
+ RPCGetChannelsResultData,
+ RPCGetGuildResultData,
+ RPCGetGuildsResultData,
+ RPCGetImageArgs,
+ RPCGetVoiceSettingsResultData,
+ RPCMessage,
+ RPCMessagePayload,
+ RPCOAuth2Application,
+ RPCSelectTextChannelArgs,
+ RPCSelectTextChannelResultData,
+ RPCSelectVoiceChannelArgs,
+ RPCSelectVoiceChannelResultData,
+ RPCSetActivityArgs,
+ RPCSetCertifiedDevicesResultData,
+ RPCSetUserVoiceSettingsArgs,
+ RPCSetUserVoiceSettingsResultData,
+ RPCSetVoiceSettingsArgs,
+ RPCUnsubscribeResultData,
+ APIUser,
+ OAuth2Scopes,
+ Snowflake,
+} from 'discord-api-types/v10';
+import { RPCEvents, RPCCommands, Routes } from 'discord-api-types/v10';
+import { RPCEventError } from './RPCEventError.js';
+import type {
+ EventAndArgsParameters,
+ MappedRPCCommandsArgs,
+ MappedRPCCommandsResultsData,
+ MappedRPCEventsDispatchData,
+ NullableFields,
+ RPCCallableCommands,
+} from './constants.js';
+import { Events } from './constants.js';
+import { IPCTransport } from './ipc.js';
+import { getPid, mergeRPCLoginOptions } from './util.js';
+
+export interface RPCLoginOptions {
+ /**
+ * Access Token
+ */
+ accessToken: string;
+ /**
+ * Client id
+ */
+ clientId: string;
+ /**
+ * Client Secret
+ */
+ clientSecret: string;
+ /**
+ * https://discord.com/developers/docs/topics/oauth2#authorization-code-grant
+ *
+ * for authorization requests
+ */
+ prompt?: 'consent' | 'none';
+ /**
+ * https://discord.com/developers/docs/topics/oauth2#authorization-code-grant
+ *
+ * for authorization requests
+ */
+ redirectUri?: string;
+ /**
+ * An array of scopes
+ */
+ scopes: OAuth2Scopes[];
+ /**
+ * the client username
+ */
+ username: string;
+}
+
+/**
+ * The client for interacting with Discord RPC
+ */
+export class RPCClient extends AsyncEventEmitter {
+ public options: Partial;
+
+ public accessToken: string | null;
+
+ public clientId: string | null;
+
+ public application: RPCOAuth2Application | null;
+
+ public user: APIUser | null;
+
+ public transport: IPCTransport;
+
+ /**
+ * Map of nonces being expected from the transport
+ */
+ readonly #expected_nonces: Map<
+ string,
+ { reject(this: void, reason?: unknown): void; resolve(this: void, value: unknown): void }
+ >;
+
+ /**
+ * Promise for connection
+ */
+ #connectPromise: Promise | undefined;
+
+ public constructor(options: Partial = {}) {
+ super();
+
+ this.options = options;
+
+ this.accessToken = null;
+ this.clientId = null;
+ this.application = null;
+ this.user = null;
+
+ this.transport = new IPCTransport(this);
+ this.transport.on('message', this.#onRpcMessage.bind(this));
+
+ this.#expected_nonces = new Map();
+
+ this.#connectPromise = undefined;
+ }
+
+ /**
+ * Search and connect to RPC
+ */
+ public async connect(clientId: string): Promise {
+ if (this.#connectPromise) {
+ return this.#connectPromise;
+ }
+
+ const { promise, resolve, reject } = Promise.withResolvers();
+ this.#connectPromise = promise;
+ this.clientId = clientId;
+ const timeout = setTimeout(() => reject(new Error('RPC_CONNECTION_TIMEOUT')), 10e3);
+ timeout.unref();
+ this.once(RPCEvents.Ready, () => {
+ clearTimeout(timeout);
+ resolve(this);
+ });
+
+ this.transport.once('close', () => {
+ for (const exp_nonce of this.#expected_nonces.values()) {
+ exp_nonce.reject(new RPCEventError('connection closed'));
+ }
+
+ this.emit(Events.Disconnected);
+ reject(new Error('connection closed'));
+ });
+
+ try {
+ await this.transport.connect();
+ } catch (error) {
+ reject(error);
+ }
+
+ return this.#connectPromise;
+ }
+
+ /**
+ * Performs authentication flow. Automatically calls Client#connect if needed.
+ *
+ * @param options - Options for authentication.
+ * @example
+ * logging in with a client id and secret
+ * ```ts
+ * client.login({ clientId: '1234567', clientSecret: 'abcdef123' });
+ * ```
+ */
+ public async login(options: Partial = {}): Promise {
+ const finalizedOptions = mergeRPCLoginOptions(options, this.options);
+ const { clientId } = finalizedOptions;
+ if (!clientId) {
+ throw new Error('A client id must be provided to login');
+ }
+
+ await this.connect(clientId);
+
+ const { scopes } = finalizedOptions;
+ if (!scopes) {
+ this.emit(Events.ApplicationReady);
+ return this;
+ }
+
+ let { accessToken } = finalizedOptions;
+ if (!accessToken) {
+ accessToken = await this.authorize(finalizedOptions);
+ }
+
+ return this.authenticate(accessToken!);
+ }
+
+ /**
+ * Request
+ *
+ * @param cmd - Command
+ * @param args - Arguments
+ * @param evt - Event
+ */
+ async #request(
+ cmd: Cmd,
+ args: MappedRPCCommandsArgs[Cmd] = {} as MappedRPCCommandsArgs[Cmd],
+ evt?: RPCEvents,
+ ) {
+ return new Promise(
+ (resolve: (value: MappedRPCCommandsResultsData[Cmd]) => void, reject: (reason: RPCEventError) => void) => {
+ const nonce = randomUUID();
+ const payload: { args: MappedRPCCommandsArgs[Cmd]; cmd: Cmd; evt?: RPCEvents; nonce: string } = {
+ cmd,
+ args,
+ nonce,
+ };
+ if (cmd === RPCCommands.Subscribe || cmd === RPCCommands.Unsubscribe) {
+ payload.evt = evt!;
+ }
+
+ this.transport.send(payload as RPCMessagePayload);
+ this.#expected_nonces.set(nonce, { resolve, reject });
+ },
+ );
+ }
+
+ /**
+ * Request but public
+ */
+ public async request(
+ cmd: Cmd,
+ args: MappedRPCCommandsArgs[Cmd],
+ evt?: RPCEvents,
+ ): Promise {
+ return this.#request(cmd, args, evt);
+ }
+
+ /**
+ * Message handler
+ *
+ * @param message - message
+ */
+ #onRpcMessage(message: RPCMessage): void {
+ if (message.cmd === RPCCommands.Dispatch && message.evt === RPCEvents.Ready) {
+ if (message.data.user) {
+ this.user = message.data.user;
+ }
+
+ this.emit(RPCEvents.Ready, message.data);
+ } else if (message.cmd === RPCCommands.Dispatch) {
+ this.emit(message.evt, message.data);
+ } else {
+ if (!this.#expected_nonces.has(message.nonce)) {
+ return;
+ }
+
+ const { resolve, reject } = this.#expected_nonces.get(message.nonce)!;
+ if ('evt' in message && message.evt === RPCEvents.Error) {
+ reject(new RPCEventError(message.data));
+ } else {
+ resolve(message.data);
+ }
+
+ this.#expected_nonces.delete(message.nonce);
+ }
+ }
+
+ /**
+ * Authorize
+ *
+ * @param options - authorization options
+ * @param options.scopes - An array of scopes
+ * @param options.clientId - Client's id
+ * @param options.clientSecret - Client's Secret
+ * @param options.redirectUri - URI to redirect to
+ */
+ private async authorize({
+ scopes,
+ clientId,
+ clientSecret,
+ redirectUri,
+ }: Partial = {}): Promise {
+ const { code } = await this.#request(RPCCommands.Authorize, {
+ scopes: scopes!,
+ client_id: clientId!,
+ });
+
+ const response = (await fetch(`https://discord.com/api${Routes.oauth2TokenExchange()}`, {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/x-www-form-urlencoded',
+ },
+ body: new URLSearchParams({
+ client_id: this.clientId!,
+ client_secret: clientSecret!,
+ code,
+ grant_type: 'authorization_code',
+ redirect_uri: redirectUri!,
+ } satisfies RESTPostOAuth2AccessTokenURLEncodedData),
+ }).then(async (res) => res.json())) as RESTPostOAuth2AccessTokenResult;
+
+ if (!('access_token' in response)) {
+ throw new Error(response);
+ }
+
+ return response.access_token;
+ }
+
+ /**
+ * Authenticate
+ *
+ * @param accessToken - access token
+ */
+ public async authenticate(accessToken: string): Promise {
+ const { application, user } = await this.#request(RPCCommands.Authenticate, { access_token: accessToken });
+ this.accessToken = accessToken;
+ this.application = application;
+ this.user = user;
+ this.emit(Events.ApplicationReady);
+ return this;
+ }
+
+ /**
+ * Fetch a guild
+ *
+ * @param id - Guild id
+ * @param timeout - Timeout request
+ */
+ public async getGuild(id: Snowflake, timeout: number): Promise {
+ return this.#request(RPCCommands.GetGuild, { guild_id: id, timeout });
+ }
+
+ /**
+ * Fetch all guilds
+ *
+ * @param timeout - Timeout request
+ */
+ public async getGuilds(timeout: number): Promise {
+ return this.#request(RPCCommands.GetGuilds, { timeout });
+ }
+
+ /**
+ * Get a channel
+ *
+ * @param id - Channel id
+ */
+ public async getChannel(id: Snowflake): Promise {
+ return this.#request(RPCCommands.GetChannel, { channel_id: id });
+ }
+
+ /**
+ * Get all channels
+ *
+ * @param id - Guild id
+ */
+ public async getChannels(id: Snowflake): Promise {
+ const { channels } = await this.#request(RPCCommands.GetChannels, { guild_id: id });
+ return channels;
+ }
+
+ /**
+ * Create channel invite
+ *
+ * @param id - Channel id
+ */
+ public async createChannelInvite(id: Snowflake): Promise {
+ return this.#request(RPCCommands.CreateChannelInvite, { channel_id: id });
+ }
+
+ /**
+ * Tell discord which devices are certified
+ *
+ * @param devices - Certified devices to send to discord
+ */
+ public async setCertifiedDevices(devices: RPCCertifiedDevice[]): Promise {
+ return this.#request(RPCCommands.SetCertifiedDevices, {
+ devices,
+ });
+ }
+
+ /**
+ * Set the voice settings for a user, by id
+ *
+ * @param id - Id of the user to set
+ * @param settings - Settings to set
+ */
+ public async setUserVoiceSettings(
+ id: Snowflake,
+ settings: Omit, 'user_id'>,
+ ): Promise {
+ return this.#request(RPCCommands.SetUserVoiceSettings, {
+ user_id: id,
+ ...settings,
+ });
+ }
+
+ /**
+ * Move the user to a voice channel
+ *
+ * @param id - Id of the voice channel
+ * @param options - Options
+ * @param options.timeout - Timeout for the command
+ * @param options.force - Force this move. This should only be done if you
+ * have explicit permission from the user.
+ */
+ public async selectVoiceChannel(
+ id: Snowflake,
+ { timeout, force = false }: Omit = {},
+ ): Promise {
+ const args: RPCSelectVoiceChannelArgs = { channel_id: id, force };
+ if (timeout) {
+ args.timeout = timeout;
+ }
+
+ return this.#request(RPCCommands.SelectVoiceChannel, args);
+ }
+
+ /**
+ * Move the user to a text channel
+ *
+ * @param id - Id of the voice channel
+ * @param options - Options
+ * @param options.timeout - Timeout for the command
+ * have explicit permission from the user.
+ */
+ public async selectTextChannel(
+ id: Snowflake,
+ { timeout }: Omit = {},
+ ): Promise {
+ const args: RPCSelectTextChannelArgs = { channel_id: id };
+ if (timeout) {
+ args.timeout = timeout;
+ }
+
+ return this.#request(RPCCommands.SelectTextChannel, args);
+ }
+
+ /**
+ * Get current voice settings
+ *
+ */
+ public async getVoiceSettings(): Promise {
+ return this.#request(RPCCommands.GetVoiceSettings);
+ }
+
+ /**
+ * Set current voice settings, overriding the current settings until this session disconnects.
+ * This also locks the settings for any other rpc sessions which may be connected.
+ *
+ * @param args - Settings
+ */
+ public async setVoiceSettings(args: RPCSetVoiceSettingsArgs): Promise {
+ return this.#request(RPCCommands.SetVoiceSettings, args);
+ }
+
+ /**
+ * Sets the presence for the logged in user.
+ *
+ * @param activity - The rich presence to pass.
+ * @param pid - The application's process ID. Defaults to the executing process' PID.
+ */
+ public async setActivity(
+ activity: RPCSetActivityArgs['activity'] = {},
+ pid: number | null = getPid(),
+ ): Promise {
+ const newActivity: NullableFields = {
+ ...activity,
+ instance: Boolean(activity.instance),
+ };
+
+ if (activity.timestamps) {
+ newActivity.timestamps = activity.timestamps;
+ if ('start' in newActivity.timestamps && newActivity.timestamps.start > 2_147_483_647_000) {
+ throw new RangeError('timestamps.start must fit into a unix timestamp');
+ }
+
+ if ('end' in newActivity.timestamps && newActivity.timestamps.end > 2_147_483_647_000) {
+ throw new RangeError('timestamps.end must fit into a unix timestamp');
+ }
+ }
+
+ if ('assets' in activity) {
+ newActivity.assets = activity.assets;
+ }
+
+ if ('party' in activity) {
+ newActivity.party = activity.party;
+ }
+
+ if ('secrets' in activity) {
+ newActivity.secrets = activity.secrets;
+ }
+
+ return this.#request(RPCCommands.SetActivity, {
+ pid: pid ?? 0,
+ activity: newActivity as Exclude,
+ });
+ }
+
+ /**
+ * Clears the currently set presence, if any. This will hide the "Playing X" message
+ * displayed below the user's name.
+ *
+ * @param pid - The application's process ID. Defaults to the executing process' PID.
+ */
+ public async clearActivity(pid: number | null = getPid()): Promise {
+ return this.#request(RPCCommands.SetActivity, {
+ pid: pid ?? 0,
+ });
+ }
+
+ /**
+ * Invite a user to join the game the RPC user is currently playing
+ *
+ * @param userId - The id of the user to invite
+ */
+ public async sendJoinInvite(userId: Snowflake): Promise {
+ return this.#request(RPCCommands.SendActivityJoinInvite, {
+ user_id: userId,
+ });
+ }
+
+ /**
+ * Reject a join request from a user
+ *
+ * @param userId - The id of the user whose request you wish to reject
+ */
+ public async closeJoinRequest(userId: Snowflake): Promise {
+ return this.#request(RPCCommands.CloseActivityJoinRequest, {
+ user_id: userId,
+ });
+ }
+
+ /**
+ * requires `relationships.read` scope
+ */
+ public async getRelationships() {
+ return this.#request(RPCCommands.GetRelationships);
+ }
+
+ /**
+ * Fetches a user
+ */
+ public async getUser(id: Snowflake) {
+ return this.#request(RPCCommands.GetUser, { id });
+ }
+
+ /**
+ * Fetches a user's profile picture
+ */
+ public async getImage({ id, format, size }: Omit): Promise {
+ return (await this.#request(RPCCommands.GetImage, { type: 'user', id, format, size })).data_url;
+ }
+
+ /**
+ * Subscribe to an event
+ *
+ * @param event - Name of event e.g. `MESSAGE_CREATE`
+ * @param args - Args for event e.g. `{ channel_id: '1234' }`
+ */
+ public async subscribe(
+ ...[event, args]: EventAndArgsParameters
+ ): Promise<{ unsubscribe(): Promise }> {
+ await this.#request(RPCCommands.Subscribe, args, event);
+ return {
+ unsubscribe: async () => this.#request(RPCCommands.Unsubscribe, args, event),
+ };
+ }
+
+ /**
+ * Destroy the client
+ */
+ public async destroy() {
+ await this.transport.close();
+ }
+}
diff --git a/packages/rpc/src/constants.ts b/packages/rpc/src/constants.ts
new file mode 100644
index 000000000000..41846c590705
--- /dev/null
+++ b/packages/rpc/src/constants.ts
@@ -0,0 +1,340 @@
+import type {
+ RPCAcceptActivityInviteArgs,
+ RPCAcceptActivityInviteResultData,
+ RPCActivityInviteDispatchData,
+ RPCActivityInviteUserArgs,
+ RPCActivityInviteUserResultData,
+ RPCActivityJoinDispatchData,
+ RPCActivityJoinRequestDispatchData,
+ RPCActivitySpectateDispatchData,
+ RPCAuthenticateArgs,
+ RPCAuthenticateResultData,
+ RPCAuthorizeArgs,
+ RPCAuthorizeResultData,
+ RPCBraintreePopupBridgeCallbackArgs,
+ RPCBraintreePopupBridgeCallbackResultData,
+ RPCBrowserHandoffArgs,
+ RPCBrowserHandoffResultData,
+ RPCChannelCreateDispatchData,
+ RPCCloseActivityJoinRequestArgs,
+ RPCCloseActivityJoinRequestResultData,
+ RPCCommandSubscribePayload,
+ RPCCommands,
+ RPCConnectionsCallbackArgs,
+ RPCConnectionsCallbackResultData,
+ RPCCreateChannelInviteArgs,
+ RPCCreateChannelInviteResultData,
+ RPCCurrentUserUpdateDispatchData,
+ RPCDeepLinkArgs,
+ RPCDeepLinkResultData,
+ RPCEntitlementCreateDispatchData,
+ RPCEntitlementDeleteDispatchData,
+ RPCErrorDispatchData,
+ RPCEvents,
+ RPCGameJoinDispatchData,
+ RPCGameSpectateDispatchData,
+ RPCGetApplicationTicketArgs,
+ RPCGetApplicationTicketResultData,
+ RPCGetChannelArgs,
+ RPCGetChannelResultData,
+ RPCGetChannelsArgs,
+ RPCGetChannelsResultData,
+ RPCGetEntitlementTicketArgs,
+ RPCGetEntitlementTicketResultData,
+ RPCGetEntitlementsArgs,
+ RPCGetEntitlementsResultData,
+ RPCGetGuildArgs,
+ RPCGetGuildResultData,
+ RPCGetGuildsArgs,
+ RPCGetGuildsResultData,
+ RPCGetImageArgs,
+ RPCGetImageResultData,
+ RPCGetNetworkingConfigArgs,
+ RPCGetNetworkingConfigResultData,
+ RPCGetRelationshipsArgs,
+ RPCGetRelationshipsResultData,
+ RPCGetSelectedVoiceChannelArgs,
+ RPCGetSelectedVoiceChannelResultData,
+ RPCGetSkusArgs,
+ RPCGetSkusResultData,
+ RPCGetUserArgs,
+ RPCGetUserResultData,
+ RPCGetVoiceSettingsArgs,
+ RPCGetVoiceSettingsResultData,
+ RPCGiftCodeBrowserArgs,
+ RPCGiftCodeBrowserResultData,
+ RPCGuildCreateDispatchData,
+ RPCGuildStatusDispatchData,
+ RPCGuildTemplateBrowserArgs,
+ RPCGuildTemplateBrowserResultData,
+ RPCInviteBrowserArgs,
+ RPCInviteBrowserResultData,
+ RPCMessageCreateDispatchData,
+ RPCMessageDeleteDispatchData,
+ RPCMessageUpdateDispatchData,
+ RPCNetworkingCreateTokenArgs,
+ RPCNetworkingCreateTokenResultData,
+ RPCNetworkingPeerMetricsArgs,
+ RPCNetworkingPeerMetricsResultData,
+ RPCNetworkingSystemMetricsArgs,
+ RPCNetworkingSystemMetricsResultData,
+ RPCNotificationCreateDispatchData,
+ RPCOpenOverlayActivityInviteArgs,
+ RPCOpenOverlayActivityInviteResultData,
+ RPCOpenOverlayGuildInviteArgs,
+ RPCOpenOverlayGuildInviteResultData,
+ RPCOpenOverlayVoiceSettingsArgs,
+ RPCOpenOverlayVoiceSettingsResultData,
+ RPCOverlayArgs,
+ RPCOverlayDispatchData,
+ RPCOverlayResultData,
+ RPCOverlayUpdateDispatchData,
+ RPCReadyDispatchData,
+ RPCRelationshipUpdateDispatchData,
+ RPCSelectTextChannelArgs,
+ RPCSelectTextChannelResultData,
+ RPCSelectVoiceChannelArgs,
+ RPCSelectVoiceChannelResultData,
+ RPCSendActivityJoinInviteArgs,
+ RPCSendActivityJoinInviteResultData,
+ RPCSetActivityArgs,
+ RPCSetActivityResultData,
+ RPCSetCertifiedDevicesArgs,
+ RPCSetCertifiedDevicesResultData,
+ RPCSetOverlayLockedArgs,
+ RPCSetOverlayLockedResultData,
+ RPCSetUserVoiceSettings2Args,
+ RPCSetUserVoiceSettings2ResultData,
+ RPCSetUserVoiceSettingsArgs,
+ RPCSetUserVoiceSettingsResultData,
+ RPCSetVoiceSettings2Args,
+ RPCSetVoiceSettings2ResultData,
+ RPCSetVoiceSettingsArgs,
+ RPCSetVoiceSettingsResultData,
+ RPCSpeakingStartDispatchData,
+ RPCSpeakingStopDispatchData,
+ RPCStartPurchaseArgs,
+ RPCStartPurchaseResultData,
+ RPCSubscribeActivityInviteArgs,
+ RPCSubscribeActivityJoinArgs,
+ RPCSubscribeActivityJoinRequestArgs,
+ RPCSubscribeActivitySpectateArgs,
+ RPCSubscribeChannelCreateArgs,
+ RPCSubscribeCurrentUserUpdateArgs,
+ RPCSubscribeEntitlementCreateArgs,
+ RPCSubscribeEntitlementDeleteArgs,
+ RPCSubscribeGameJoinArgs,
+ RPCSubscribeGameSpectateArgs,
+ RPCSubscribeGuildCreateArgs,
+ RPCSubscribeGuildStatusArgs,
+ RPCSubscribeMessageCreateArgs,
+ RPCSubscribeMessageDeleteArgs,
+ RPCSubscribeMessageUpdateArgs,
+ RPCSubscribeNotificationCreateArgs,
+ RPCSubscribeOverlayArgs,
+ RPCSubscribeOverlayUpdateArgs,
+ RPCSubscribeRelationshipUpdateArgs,
+ RPCSubscribeResultData,
+ RPCSubscribeSpeakingStartArgs,
+ RPCSubscribeSpeakingStopArgs,
+ RPCSubscribeVoiceChannelSelectArgs,
+ RPCSubscribeVoiceConnectionStatusArgs,
+ RPCSubscribeVoiceSettingsUpdate2Args,
+ RPCSubscribeVoiceSettingsUpdateArgs,
+ RPCSubscribeVoiceStateCreateArgs,
+ RPCSubscribeVoiceStateDeleteArgs,
+ RPCSubscribeVoiceStateUpdateArgs,
+ RPCValidateApplicationArgs,
+ RPCValidateApplicationResultData,
+ RPCVoiceChannelSelectDispatchData,
+ RPCVoiceConnectionStatusDispatchData,
+ RPCVoiceSettingsUpdate2DispatchData,
+ RPCVoiceSettingsUpdateDispatchData,
+ RPCVoiceStateCreateDispatchData,
+ RPCVoiceStateDeleteDispatchData,
+ RPCVoiceStateUpdateDispatchData,
+} from 'discord-api-types/v10';
+
+export enum Events {
+ ApplicationReady = 'ready',
+ Disconnected = 'disconnected',
+}
+
+export interface MappedRPCCommandsResultsData {
+ [RPCCommands.Authorize]: RPCAuthorizeResultData;
+ [RPCCommands.Authenticate]: RPCAuthenticateResultData;
+ [RPCCommands.GetChannel]: RPCGetChannelResultData;
+ [RPCCommands.GetChannels]: RPCGetChannelsResultData;
+ [RPCCommands.GetGuild]: RPCGetGuildResultData;
+ [RPCCommands.GetGuilds]: RPCGetGuildsResultData;
+ [RPCCommands.GetUser]: RPCGetUserResultData;
+ [RPCCommands.GetVoiceSettings]: RPCGetVoiceSettingsResultData;
+ [RPCCommands.SelectTextChannel]: RPCSelectTextChannelResultData;
+ [RPCCommands.SelectVoiceChannel]: RPCSelectVoiceChannelResultData;
+ [RPCCommands.SetActivity]: RPCSetActivityResultData;
+ [RPCCommands.SetVoiceSettings]: RPCSetVoiceSettingsResultData;
+ [RPCCommands.Subscribe]: RPCSubscribeResultData;
+ [RPCCommands.Unsubscribe]: RPCSubscribeResultData;
+ [RPCCommands.AcceptActivityInvite]: RPCAcceptActivityInviteResultData;
+ [RPCCommands.ActivityInviteUser]: RPCActivityInviteUserResultData;
+ [RPCCommands.BraintreePopupBridgeCallback]: RPCBraintreePopupBridgeCallbackResultData;
+ [RPCCommands.BrowserHandoff]: RPCBrowserHandoffResultData;
+ [RPCCommands.CloseActivityJoinRequest]: RPCCloseActivityJoinRequestResultData;
+ [RPCCommands.ConnectionsCallback]: RPCConnectionsCallbackResultData;
+ [RPCCommands.CreateChannelInvite]: RPCCreateChannelInviteResultData;
+ [RPCCommands.DeepLink]: RPCDeepLinkResultData;
+ [RPCCommands.GetApplicationTicket]: RPCGetApplicationTicketResultData;
+ [RPCCommands.GetEntitlementTicket]: RPCGetEntitlementTicketResultData;
+ [RPCCommands.GetEntitlements]: RPCGetEntitlementsResultData;
+ [RPCCommands.GetImage]: RPCGetImageResultData;
+ [RPCCommands.GetNetworkingConfig]: RPCGetNetworkingConfigResultData;
+ [RPCCommands.GetRelationships]: RPCGetRelationshipsResultData;
+ [RPCCommands.GetSelectedVoiceChannel]: RPCGetSelectedVoiceChannelResultData;
+ [RPCCommands.GetSkus]: RPCGetSkusResultData;
+ [RPCCommands.GiftCodeBrowser]: RPCGiftCodeBrowserResultData;
+ [RPCCommands.GuildTemplateBrowser]: RPCGuildTemplateBrowserResultData;
+ [RPCCommands.InviteBrowser]: RPCInviteBrowserResultData;
+ [RPCCommands.NetworkingCreateToken]: RPCNetworkingCreateTokenResultData;
+ [RPCCommands.NetworkingPeerMetrics]: RPCNetworkingPeerMetricsResultData;
+ [RPCCommands.NetworkingSystemMetrics]: RPCNetworkingSystemMetricsResultData;
+ [RPCCommands.OpenOverlayActivityInvite]: RPCOpenOverlayActivityInviteResultData;
+ [RPCCommands.OpenOverlayGuildInvite]: RPCOpenOverlayGuildInviteResultData;
+ [RPCCommands.OpenOverlayVoiceSettings]: RPCOpenOverlayVoiceSettingsResultData;
+ [RPCCommands.Overlay]: RPCOverlayResultData;
+ [RPCCommands.SendActivityJoinInvite]: RPCSendActivityJoinInviteResultData;
+ [RPCCommands.SetCertifiedDevices]: RPCSetCertifiedDevicesResultData;
+ [RPCCommands.SetOverlayLocked]: RPCSetOverlayLockedResultData;
+ [RPCCommands.SetUserVoiceSettings]: RPCSetUserVoiceSettingsResultData;
+ [RPCCommands.SetUserVoiceSettings2]: RPCSetUserVoiceSettings2ResultData;
+ [RPCCommands.SetVoiceSettings2]: RPCSetVoiceSettings2ResultData;
+ [RPCCommands.StartPurchase]: RPCStartPurchaseResultData;
+ [RPCCommands.ValidateApplication]: RPCValidateApplicationResultData;
+}
+
+export interface MappedRPCCommandsArgs {
+ [RPCCommands.Authorize]: RPCAuthorizeArgs;
+ [RPCCommands.Authenticate]: RPCAuthenticateArgs;
+ [RPCCommands.GetChannel]: RPCGetChannelArgs;
+ [RPCCommands.GetChannels]: RPCGetChannelsArgs;
+ [RPCCommands.GetGuild]: RPCGetGuildArgs;
+ [RPCCommands.GetGuilds]: RPCGetGuildsArgs;
+ [RPCCommands.GetUser]: RPCGetUserArgs;
+ [RPCCommands.GetVoiceSettings]: RPCGetVoiceSettingsArgs;
+ [RPCCommands.SelectTextChannel]: RPCSelectTextChannelArgs;
+ [RPCCommands.SelectVoiceChannel]: RPCSelectVoiceChannelArgs;
+ [RPCCommands.SetActivity]: RPCSetActivityArgs;
+ [RPCCommands.SetVoiceSettings]: RPCSetVoiceSettingsArgs;
+ [RPCCommands.Subscribe]: RPCCommandSubscribePayload['args'];
+ [RPCCommands.Unsubscribe]: RPCCommandSubscribePayload['args'];
+ [RPCCommands.AcceptActivityInvite]: RPCAcceptActivityInviteArgs;
+ [RPCCommands.ActivityInviteUser]: RPCActivityInviteUserArgs;
+ [RPCCommands.BraintreePopupBridgeCallback]: RPCBraintreePopupBridgeCallbackArgs;
+ [RPCCommands.BrowserHandoff]: RPCBrowserHandoffArgs;
+ [RPCCommands.CloseActivityJoinRequest]: RPCCloseActivityJoinRequestArgs;
+ [RPCCommands.ConnectionsCallback]: RPCConnectionsCallbackArgs;
+ [RPCCommands.CreateChannelInvite]: RPCCreateChannelInviteArgs;
+ [RPCCommands.DeepLink]: RPCDeepLinkArgs;
+ [RPCCommands.GetApplicationTicket]: RPCGetApplicationTicketArgs;
+ [RPCCommands.GetEntitlementTicket]: RPCGetEntitlementTicketArgs;
+ [RPCCommands.GetEntitlements]: RPCGetEntitlementsArgs;
+ [RPCCommands.GetImage]: RPCGetImageArgs;
+ [RPCCommands.GetNetworkingConfig]: RPCGetNetworkingConfigArgs;
+ [RPCCommands.GetRelationships]: RPCGetRelationshipsArgs;
+ [RPCCommands.GetSelectedVoiceChannel]: RPCGetSelectedVoiceChannelArgs;
+ [RPCCommands.GetSkus]: RPCGetSkusArgs;
+ [RPCCommands.GiftCodeBrowser]: RPCGiftCodeBrowserArgs;
+ [RPCCommands.GuildTemplateBrowser]: RPCGuildTemplateBrowserArgs;
+ [RPCCommands.InviteBrowser]: RPCInviteBrowserArgs;
+ [RPCCommands.NetworkingCreateToken]: RPCNetworkingCreateTokenArgs;
+ [RPCCommands.NetworkingPeerMetrics]: RPCNetworkingPeerMetricsArgs;
+ [RPCCommands.NetworkingSystemMetrics]: RPCNetworkingSystemMetricsArgs;
+ [RPCCommands.OpenOverlayActivityInvite]: RPCOpenOverlayActivityInviteArgs;
+ [RPCCommands.OpenOverlayGuildInvite]: RPCOpenOverlayGuildInviteArgs;
+ [RPCCommands.OpenOverlayVoiceSettings]: RPCOpenOverlayVoiceSettingsArgs;
+ [RPCCommands.Overlay]: RPCOverlayArgs;
+ [RPCCommands.SendActivityJoinInvite]: RPCSendActivityJoinInviteArgs;
+ [RPCCommands.SetCertifiedDevices]: RPCSetCertifiedDevicesArgs;
+ [RPCCommands.SetOverlayLocked]: RPCSetOverlayLockedArgs;
+ [RPCCommands.SetUserVoiceSettings]: RPCSetUserVoiceSettingsArgs;
+ [RPCCommands.SetUserVoiceSettings2]: RPCSetUserVoiceSettings2Args;
+ [RPCCommands.SetVoiceSettings2]: RPCSetVoiceSettings2Args;
+ [RPCCommands.StartPurchase]: RPCStartPurchaseArgs;
+ [RPCCommands.ValidateApplication]: RPCValidateApplicationArgs;
+}
+
+export type RPCCallableCommands = Exclude;
+
+export interface MappedRPCSubscribeEventsArgs {
+ [RPCEvents.Ready]: Record;
+ [RPCEvents.Error]: Record;
+ [RPCEvents.ActivityInvite]: RPCSubscribeActivityInviteArgs;
+ [RPCEvents.ActivityJoin]: RPCSubscribeActivityJoinArgs;
+ [RPCEvents.ActivityJoinRequest]: RPCSubscribeActivityJoinRequestArgs;
+ [RPCEvents.ActivitySpectate]: RPCSubscribeActivitySpectateArgs;
+ [RPCEvents.ChannelCreate]: RPCSubscribeChannelCreateArgs;
+ [RPCEvents.CurrentUserUpdate]: RPCSubscribeCurrentUserUpdateArgs;
+ [RPCEvents.EntitlementCreate]: RPCSubscribeEntitlementCreateArgs;
+ [RPCEvents.EntitlementDelete]: RPCSubscribeEntitlementDeleteArgs;
+ [RPCEvents.GameJoin]: RPCSubscribeGameJoinArgs;
+ [RPCEvents.GameSpectate]: RPCSubscribeGameSpectateArgs;
+ [RPCEvents.GuildCreate]: RPCSubscribeGuildCreateArgs;
+ [RPCEvents.GuildStatus]: RPCSubscribeGuildStatusArgs;
+ [RPCEvents.MessageCreate]: RPCSubscribeMessageCreateArgs;
+ [RPCEvents.MessageDelete]: RPCSubscribeMessageDeleteArgs;
+ [RPCEvents.MessageUpdate]: RPCSubscribeMessageUpdateArgs;
+ [RPCEvents.NotificationCreate]: RPCSubscribeNotificationCreateArgs;
+ [RPCEvents.Overlay]: RPCSubscribeOverlayArgs;
+ [RPCEvents.OverlayUpdate]: RPCSubscribeOverlayUpdateArgs;
+ [RPCEvents.RelationshipUpdate]: RPCSubscribeRelationshipUpdateArgs;
+ [RPCEvents.SpeakingStart]: RPCSubscribeSpeakingStartArgs;
+ [RPCEvents.SpeakingStop]: RPCSubscribeSpeakingStopArgs;
+ [RPCEvents.VoiceChannelSelect]: RPCSubscribeVoiceChannelSelectArgs;
+ [RPCEvents.VoiceConnectionStatus]: RPCSubscribeVoiceConnectionStatusArgs;
+ [RPCEvents.VoiceSettingsUpdate]: RPCSubscribeVoiceSettingsUpdateArgs;
+ [RPCEvents.VoiceSettingsUpdate2]: RPCSubscribeVoiceSettingsUpdate2Args;
+ [RPCEvents.VoiceStateCreate]: RPCSubscribeVoiceStateCreateArgs;
+ [RPCEvents.VoiceStateDelete]: RPCSubscribeVoiceStateDeleteArgs;
+ [RPCEvents.VoiceStateUpdate]: RPCSubscribeVoiceStateUpdateArgs;
+}
+
+export interface MappedRPCEventsDispatchData {
+ [RPCEvents.ActivityInvite]: [RPCActivityInviteDispatchData];
+ [RPCEvents.ActivityJoin]: [RPCActivityJoinDispatchData];
+ [RPCEvents.ActivityJoinRequest]: [RPCActivityJoinRequestDispatchData];
+ [RPCEvents.ActivitySpectate]: [RPCActivitySpectateDispatchData];
+ [RPCEvents.ChannelCreate]: [RPCChannelCreateDispatchData];
+ [RPCEvents.CurrentUserUpdate]: [RPCCurrentUserUpdateDispatchData];
+ [RPCEvents.EntitlementCreate]: [RPCEntitlementCreateDispatchData];
+ [RPCEvents.EntitlementDelete]: [RPCEntitlementDeleteDispatchData];
+ [RPCEvents.Error]: [RPCErrorDispatchData];
+ [RPCEvents.GameJoin]: [RPCGameJoinDispatchData];
+ [RPCEvents.GameSpectate]: [RPCGameSpectateDispatchData];
+ [RPCEvents.GuildCreate]: [RPCGuildCreateDispatchData];
+ [RPCEvents.GuildStatus]: [RPCGuildStatusDispatchData];
+ [RPCEvents.MessageCreate]: [RPCMessageCreateDispatchData];
+ [RPCEvents.MessageDelete]: [RPCMessageDeleteDispatchData];
+ [RPCEvents.MessageUpdate]: [RPCMessageUpdateDispatchData];
+ [RPCEvents.NotificationCreate]: [RPCNotificationCreateDispatchData];
+ [RPCEvents.Overlay]: [RPCOverlayDispatchData];
+ [RPCEvents.OverlayUpdate]: [RPCOverlayUpdateDispatchData];
+ [RPCEvents.Ready]: [RPCReadyDispatchData];
+ [RPCEvents.RelationshipUpdate]: [RPCRelationshipUpdateDispatchData];
+ [RPCEvents.SpeakingStart]: [RPCSpeakingStartDispatchData];
+ [RPCEvents.SpeakingStop]: [RPCSpeakingStopDispatchData];
+ [RPCEvents.VoiceChannelSelect]: [RPCVoiceChannelSelectDispatchData];
+ [RPCEvents.VoiceConnectionStatus]: [RPCVoiceConnectionStatusDispatchData];
+ [RPCEvents.VoiceSettingsUpdate]: [RPCVoiceSettingsUpdateDispatchData];
+ [RPCEvents.VoiceSettingsUpdate2]: [RPCVoiceSettingsUpdate2DispatchData];
+ [RPCEvents.VoiceStateCreate]: [RPCVoiceStateCreateDispatchData];
+ [RPCEvents.VoiceStateDelete]: [RPCVoiceStateDeleteDispatchData];
+ [RPCEvents.VoiceStateUpdate]: [RPCVoiceStateUpdateDispatchData];
+}
+
+export type EventAndArgsParameters =
+ MappedRPCSubscribeEventsArgs[Evt] extends Record ? [Evt] : [Evt, MappedRPCSubscribeEventsArgs[Evt]];
+
+export type Nullable = Type | null | undefined;
+
+export type NullableFields = {
+ [FieldKey in keyof Type]: Nullable;
+};
diff --git a/packages/rpc/src/index.ts b/packages/rpc/src/index.ts
new file mode 100644
index 000000000000..288c1ced7951
--- /dev/null
+++ b/packages/rpc/src/index.ts
@@ -0,0 +1,12 @@
+export * from './client.js';
+export * from './constants.js';
+export * from './ipc.js';
+export * from './RPCEventError.js';
+export * from './util.js';
+
+/**
+ * The {@link https://github.com/discordjs/discord.js/blob/main/packages/rpc#readme | @discordjs/rpc} version
+ * that you are currently using.
+ */
+// This needs to explicitly be `string` so it is not typed as a "const string" that gets injected by esbuild
+export const version = '[VI]{{inject}}[/VI]' as string;
diff --git a/packages/rpc/src/ipc.ts b/packages/rpc/src/ipc.ts
new file mode 100644
index 000000000000..b6b6e5be927c
--- /dev/null
+++ b/packages/rpc/src/ipc.ts
@@ -0,0 +1,239 @@
+import { Buffer } from 'node:buffer';
+import { randomUUID } from 'node:crypto';
+import type { Dirent } from 'node:fs';
+import { readdir, realpath } from 'node:fs/promises';
+import { createConnection, type Socket } from 'node:net';
+import { resolve } from 'node:path';
+import process from 'node:process';
+import { AsyncEventEmitter } from '@vladfrangu/async_event_emitter';
+import type { RPCMessagePayload } from 'discord-api-types/v10';
+import type { RPCClient } from './client.js';
+
+enum OPCodes {
+ Handshake,
+ Frame,
+ Close,
+ Ping,
+ Pong,
+}
+
+interface HandshakePayload {
+ client_id: string;
+ v: number;
+}
+
+function isDiscordIPCDirectory(rootParent: string, parent: string, directory: string) {
+ if (parent !== rootParent) {
+ return true;
+ }
+
+ return ['snap.', '.flatpak'].some((prefix) => directory.startsWith(prefix));
+}
+
+function discordIpcFilePredicate(entry: Dirent): boolean {
+ return (
+ entry.isSocket() &&
+ entry.name.startsWith('discord-ipc-') &&
+ !Number.isNaN(Number.parseInt(entry.name.slice('discord-ipc-'.length), 10))
+ );
+}
+
+async function getIPCPath(id: number) {
+ if (process.platform === 'win32') {
+ return `\\\\?\\pipe\\discord-ipc-${id}`;
+ }
+
+ const { XDG_RUNTIME_DIR, TMPDIR, TMP, TEMP } = process.env;
+ const tempPath = await realpath(XDG_RUNTIME_DIR ?? TMPDIR ?? TMP ?? TEMP ?? '/tmp');
+
+ // iterate recursively over directories to find 'snap.' or '.flatpak' pipe
+ if (process.platform === 'linux') {
+ const directoryQueue = [];
+ let directory = await readdir(tempPath, { withFileTypes: true });
+ while (directory.length > 0) {
+ for (const entry of directory) {
+ if (entry.isDirectory()) {
+ if (entry.name === '.' || entry.name === '..') {
+ continue;
+ }
+
+ const dirPath = resolve(entry.parentPath, entry.name);
+ if (!isDiscordIPCDirectory(tempPath, dirPath, entry.name)) {
+ continue;
+ }
+
+ directoryQueue.push(dirPath);
+ continue;
+ }
+
+ if (discordIpcFilePredicate(entry)) {
+ return resolve(entry.parentPath, entry.name);
+ }
+ }
+
+ while (directory.length === 0 && directoryQueue.length > 0) {
+ directory = await readdir(directoryQueue.shift()!, { withFileTypes: true });
+ }
+ }
+ }
+
+ return `${tempPath.replace(/\/$/, '')}/discord-ipc-${id}`;
+}
+
+async function getIPC(id = 0): Promise {
+ const { promise, resolve, reject } = Promise.withResolvers();
+
+ const path = await getIPCPath(id);
+
+ const onError = async () => {
+ if (id < 10) {
+ return getIPC(id + 1);
+ }
+
+ reject(new Error('Could not connect'));
+ return undefined;
+ };
+
+ const socket = createConnection(path, () => {
+ socket.removeListener('error', onError);
+
+ resolve(socket);
+ });
+
+ socket.once('error', onError);
+
+ return promise;
+}
+
+export function encode(op: number, data: HandshakePayload | Record | RPCMessagePayload | string) {
+ const stringifiedData = JSON.stringify(data);
+ const length = Buffer.byteLength(stringifiedData);
+ const packet = Buffer.alloc(8 + length);
+
+ packet.writeInt32LE(op, 0);
+ packet.writeInt32LE(length, 4);
+ packet.write(stringifiedData, 8, length);
+
+ return packet;
+}
+
+interface WorkingData {
+ full: string;
+ op: number | undefined;
+}
+
+const working: WorkingData = {
+ full: '',
+ op: undefined,
+};
+
+// eslint-disable-next-line promise/prefer-await-to-callbacks
+export function decode(socket: Socket, callback: (data: { data: RPCMessagePayload; op: OPCodes }) => void) {
+ const packet = socket.read();
+ if (!packet) {
+ return;
+ }
+
+ let raw;
+ if (working.full === '') {
+ working.op = packet.readInt32LE(0);
+ const len = packet.readInt32LE(4);
+ raw = packet.slice(8, len + 8);
+ } else {
+ raw = packet.toString();
+ }
+
+ try {
+ const { op } = working;
+ const data = JSON.parse(working.full + raw);
+ working.full = '';
+ working.op = undefined;
+ // eslint-disable-next-line promise/prefer-await-to-callbacks
+ callback({ op: op!, data });
+ return;
+ } catch {
+ working.full += raw;
+ }
+
+ decode(socket, callback);
+}
+
+export class IPCTransport extends AsyncEventEmitter {
+ private socket: Socket | null;
+
+ public constructor(public readonly client: RPCClient) {
+ super();
+
+ this.socket = null;
+ }
+
+ public async connect() {
+ this.socket = await getIPC();
+
+ const socket = this.socket;
+
+ socket.on('close', this.onClose.bind(this));
+ socket.on('error', this.onClose.bind(this));
+
+ this.emit('open');
+
+ socket.write(
+ encode(OPCodes.Handshake, {
+ // eslint-disable-next-line id-length
+ v: 1,
+ client_id: this.client.clientId!,
+ }),
+ );
+
+ socket.pause();
+
+ socket.on('readable', () => {
+ decode(socket, ({ op, data }) => {
+ // Pong and Handshake is done from the client
+ // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
+ switch (op) {
+ case OPCodes.Ping:
+ this.send(data, OPCodes.Pong);
+ break;
+ case OPCodes.Frame:
+ if (!data) {
+ return;
+ }
+
+ this.emit('message', data);
+ break;
+ case OPCodes.Close:
+ this.emit('close', data);
+ break;
+ default:
+ break;
+ }
+ });
+ });
+ }
+
+ public onClose(error: boolean) {
+ this.emit('close', error);
+ }
+
+ public send(data: string, op: OPCodes.Ping): void;
+ public send(data: RPCMessagePayload, op?: OPCodes.Frame | OPCodes.Pong): void;
+ public send(data: Record, op: OPCodes.Close): void;
+ public send(data: Record | RPCMessagePayload | string, op = OPCodes.Frame) {
+ this.socket!.write(encode(op, data));
+ }
+
+ public async close() {
+ const { promise, resolve } = Promise.withResolvers();
+
+ this.once('close', resolve);
+ this.send({}, OPCodes.Close);
+ this.socket?.end();
+
+ return promise;
+ }
+
+ public ping() {
+ this.send(randomUUID(), OPCodes.Ping);
+ }
+}
diff --git a/packages/rpc/src/util.ts b/packages/rpc/src/util.ts
new file mode 100644
index 000000000000..eaf8d6972dce
--- /dev/null
+++ b/packages/rpc/src/util.ts
@@ -0,0 +1,38 @@
+import type { RPCLoginOptions } from './client';
+
+export const register: (scheme: string) => boolean = (() => {
+ try {
+ // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
+ const { app } = require('electron');
+ return app.setAsDefaultProtocolClient.bind(app);
+ } catch {
+ try {
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
+ return require('register-scheme');
+ } catch {}
+ }
+})();
+
+export function getPid() {
+ // eslint-disable-next-line n/prefer-global/process
+ if (typeof globalThis.process !== 'undefined') {
+ // eslint-disable-next-line n/prefer-global/process, no-restricted-globals
+ return process.pid;
+ }
+
+ return null;
+}
+
+export function mergeRPCLoginOptions(
+ options: Partial,
+ otheroptions: Partial,
+): RPCLoginOptions {
+ return {
+ clientId: options.clientId ?? otheroptions.clientId!,
+ scopes: options.scopes ?? otheroptions.scopes!,
+ clientSecret: options.clientSecret ?? otheroptions.clientSecret!,
+ redirectUri: options.redirectUri ?? otheroptions.redirectUri!,
+ accessToken: options.accessToken ?? otheroptions.accessToken!,
+ username: options.username ?? otheroptions.username!,
+ };
+}
diff --git a/packages/rpc/tsconfig.docs.json b/packages/rpc/tsconfig.docs.json
new file mode 100644
index 000000000000..36eb351489f5
--- /dev/null
+++ b/packages/rpc/tsconfig.docs.json
@@ -0,0 +1,9 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig.json",
+ "extends": "../../tsconfig.docs.json",
+ "compilerOptions": {
+ "outDir": "dist-docs"
+ },
+ "include": ["src/**/*.ts"],
+ "exclude": ["node_modules"]
+}
diff --git a/packages/rpc/tsconfig.eslint.json b/packages/rpc/tsconfig.eslint.json
new file mode 100644
index 000000000000..163783a48dfd
--- /dev/null
+++ b/packages/rpc/tsconfig.eslint.json
@@ -0,0 +1,22 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig.json",
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "allowJs": true
+ },
+ "include": [
+ "*.ts",
+ "*.js",
+ "*.cjs",
+ "*.mjs",
+ "src/**/*.ts",
+ "src/**/*.js",
+ "src/**/*.cjs",
+ "src/**/*.mjs",
+ "bin",
+ "scripts",
+ "__tests__",
+ "__mocks__"
+ ],
+ "exclude": ["node_modules"]
+}
diff --git a/packages/rpc/tsconfig.json b/packages/rpc/tsconfig.json
new file mode 100644
index 000000000000..b6ea137a02c5
--- /dev/null
+++ b/packages/rpc/tsconfig.json
@@ -0,0 +1,6 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig.json",
+ "extends": "../../tsconfig.json",
+ "include": ["src/**/*.ts", "src/**/*.js", "src/**/*.cjs", "src/**/*.mjs", "bin"],
+ "exclude": ["node_modules"]
+}
diff --git a/packages/rpc/tsconfig.test.json b/packages/rpc/tsconfig.test.json
new file mode 100644
index 000000000000..ff6ac30b62bc
--- /dev/null
+++ b/packages/rpc/tsconfig.test.json
@@ -0,0 +1,9 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig.json",
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "noEmit": true
+ },
+ "include": ["__tests__/**/*.ts"],
+ "exclude": ["node_modules"]
+}
diff --git a/packages/rpc/tsup.config.ts b/packages/rpc/tsup.config.ts
new file mode 100644
index 000000000000..afd45736d47b
--- /dev/null
+++ b/packages/rpc/tsup.config.ts
@@ -0,0 +1,6 @@
+import { esbuildPluginVersionInjector } from 'esbuild-plugin-version-injector';
+import { createTsupConfig } from '../../tsup.config.js';
+
+export default createTsupConfig({
+ esbuildPlugins: [esbuildPluginVersionInjector()],
+});
diff --git a/packages/scripts/src/shared.ts b/packages/scripts/src/shared.ts
index a8dff502155c..39d62263dd50 100644
--- a/packages/scripts/src/shared.ts
+++ b/packages/scripts/src/shared.ts
@@ -10,6 +10,7 @@ export const PACKAGES = [
'next',
'proxy',
'rest',
+ 'rpc',
'structures',
'util',
'voice',
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2938834b0745..b0eae7243cbb 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1480,6 +1480,55 @@ importers:
specifier: ^3.2.4
version: 3.2.4(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@22.17.2)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.1)
+ packages/rpc:
+ dependencies:
+ '@vladfrangu/async_event_emitter':
+ specifier: ^2.4.6
+ version: 2.4.6
+ discord-api-types:
+ specifier: ^0.38.22
+ version: 0.38.22
+ devDependencies:
+ '@discordjs/api-extractor':
+ specifier: workspace:^
+ version: link:../api-extractor
+ '@favware/cliff-jumper':
+ specifier: ^4.1.0
+ version: 4.1.0
+ '@types/node':
+ specifier: ^22.17.2
+ version: 22.17.2
+ cross-env:
+ specifier: ^10.0.0
+ version: 10.0.0
+ esbuild-plugin-version-injector:
+ specifier: ^1.2.1
+ version: 1.2.1
+ eslint:
+ specifier: ^9.33.0
+ version: 9.33.0(jiti@2.5.1)
+ eslint-config-neon:
+ specifier: ^0.2.7
+ version: 0.2.7(@typescript-eslint/types@8.40.0)(@typescript-eslint/utils@8.40.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.32.0)(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2)
+ eslint-formatter-compact:
+ specifier: ^8.40.0
+ version: 8.40.0
+ eslint-formatter-pretty:
+ specifier: ^6.0.1
+ version: 6.0.1
+ prettier:
+ specifier: ^3.6.2
+ version: 3.6.2
+ tsup:
+ specifier: ^8.5.0
+ version: 8.5.0(@microsoft/api-extractor@7.52.11(@types/node@22.17.2))(jiti@2.5.1)(postcss@8.5.6)(typescript@5.9.2)(yaml@2.8.1)
+ turbo:
+ specifier: ^2.5.6
+ version: 2.5.6
+ typescript:
+ specifier: ~5.9.2
+ version: 5.9.2
+
packages/scripts:
dependencies:
'@actions/glob':