diff --git a/.github/workflows/CD.yml b/.github/workflows/CD.yml
index 14f1f09b..e9f755de 100644
--- a/.github/workflows/CD.yml
+++ b/.github/workflows/CD.yml
@@ -1,49 +1,49 @@
name: Continuous Delivery
on:
- push:
- tags:
- - "*"
+ push:
+ tags:
+ - "*"
jobs:
- deploy:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout Project
- uses: actions/checkout@v6
-
- - name: Use Node.js 22
- uses: actions/setup-node@v6
- with:
- node-version: 22
-
- - uses: pnpm/action-setup@v4
- with:
- run_install: false
-
- - name: Get pnpm store directory
- run: |
- echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
-
- - uses: actions/cache@v4
- name: Setup pnpm cache
- with:
- path: ${{ env.STORE_PATH }}
- key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
- restore-keys: |
- ${{ runner.os }}-pnpm-store-
-
- - run: pnpm install --frozen-lockfile
-
- - name: Publish to Open VSX Registry
- uses: HaaLeo/publish-vscode-extension@v2
- id: publishToOpenVSX
- with:
- pat: ${{ secrets.OPEN_VSX_TOKEN }}
-
- - name: Publish to Visual Studio Marketplace
- uses: HaaLeo/publish-vscode-extension@v2
- with:
- pat: ${{ secrets.VS_MARKETPLACE_TOKEN }}
- registryUrl: https://marketplace.visualstudio.com
- extensionFile: ${{ steps.publishToOpenVSX.outputs.vsixPath }}
+ deploy:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout Project
+ uses: actions/checkout@v6
+
+ - name: Use Node.js 22
+ uses: actions/setup-node@v6
+ with:
+ node-version: 22
+
+ - uses: pnpm/action-setup@v4
+ with:
+ run_install: false
+
+ - name: Get pnpm store directory
+ run: |
+ echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
+
+ - uses: actions/cache@v4
+ name: Setup pnpm cache
+ with:
+ path: ${{ env.STORE_PATH }}
+ key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
+ restore-keys: |
+ ${{ runner.os }}-pnpm-store-
+
+ - run: pnpm install --frozen-lockfile
+
+ - name: Publish to Open VSX Registry
+ uses: HaaLeo/publish-vscode-extension@v2
+ id: publishToOpenVSX
+ with:
+ pat: ${{ secrets.OPEN_VSX_TOKEN }}
+
+ - name: Publish to Visual Studio Marketplace
+ uses: HaaLeo/publish-vscode-extension@v2
+ with:
+ pat: ${{ secrets.VS_MARKETPLACE_TOKEN }}
+ registryUrl: https://marketplace.visualstudio.com
+ extensionFile: ${{ steps.publishToOpenVSX.outputs.vsixPath }}
diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml
index 965e989a..4d76a26f 100644
--- a/.github/workflows/CI.yml
+++ b/.github/workflows/CI.yml
@@ -1,46 +1,46 @@
name: Continuous Integration
on:
- push:
- pull_request:
- types: [opened, synchronize, reopened]
+ push:
+ pull_request:
+ types: [opened, synchronize, reopened]
jobs:
- check:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout Project
- uses: actions/checkout@v6
-
- - name: Use Node.js 22
- uses: actions/setup-node@v6
- with:
- node-version: 22
-
- - uses: pnpm/action-setup@v4
- with:
- run_install: false
-
- - name: Get pnpm store directory
- run: |
- echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
-
- - uses: actions/cache@v4
- name: Setup pnpm cache
- with:
- path: ${{ env.STORE_PATH }}
- key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
- restore-keys: |
- ${{ runner.os }}-pnpm-store-
-
- - run: pnpm install --frozen-lockfile
-
- - name: Build
- run: |
- pnpm package
-
- - name: Upload Artifact
- uses: actions/upload-artifact@v4
- with:
- name: ubuntu-latest
- path: vscord-*.vsix
+ check:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout Project
+ uses: actions/checkout@v6
+
+ - name: Use Node.js 22
+ uses: actions/setup-node@v6
+ with:
+ node-version: 22
+
+ - uses: pnpm/action-setup@v4
+ with:
+ run_install: false
+
+ - name: Get pnpm store directory
+ run: |
+ echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
+
+ - uses: actions/cache@v4
+ name: Setup pnpm cache
+ with:
+ path: ${{ env.STORE_PATH }}
+ key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
+ restore-keys: |
+ ${{ runner.os }}-pnpm-store-
+
+ - run: pnpm install --frozen-lockfile
+
+ - name: Build
+ run: |
+ pnpm package
+
+ - name: Upload Artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: ubuntu-latest
+ path: vscord-*.vsix
diff --git a/.gitignore b/.gitignore
index d09de3d6..170d8908 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,123 +1,4 @@
-# Logs
-logs
-*.log
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-lerna-debug.log*
-
-# Diagnostic reports (https://nodejs.org/api/report.html)
-report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
-
-# Runtime data
-pids
-*.pid
-*.seed
-*.pid.lock
-
-# Directory for instrumented libs generated by jscoverage/JSCover
-lib-cov
-
-# Coverage directory used by tools like istanbul
-coverage
-*.lcov
-
-# nyc test coverage
-.nyc_output
-
-# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
-.grunt
-
-# Bower dependency directory (https://bower.io/)
-bower_components
-
-# node-waf configuration
-.lock-wscript
-
-# Compiled binary addons (https://nodejs.org/api/addons.html)
-build/Release
-
-# Dependency directories
-node_modules/
-jspm_packages/
-
-# TypeScript v1 declaration files
-typings/
-
-# TypeScript cache
-*.tsbuildinfo
-
-# Optional npm cache directory
-.npm
-
-# Optional eslint cache
-.eslintcache
-
-# Microbundle cache
-.rpt2_cache/
-.rts2_cache_cjs/
-.rts2_cache_es/
-.rts2_cache_umd/
-
-# Optional REPL history
-.node_repl_history
-
-# Output of 'npm pack'
-*.tgz
-
-# Yarn Integrity file
-.yarn-integrity
-
-# dotenv environment variables file
-.env
-.env.test
-
-# parcel-bundler cache (https://parceljs.org/)
-.cache
-
-# Next.js build output
-.next
-
-# Nuxt.js build / generate output
-.nuxt
+out
dist
-
-# Gatsby files
-.cache/
-# Comment in the public line in if your project uses Gatsby and *not* Next.js
-# https://nextjs.org/blog/next-9-1#public-directory-support
-# public
-
-# vuepress build output
-.vuepress/dist
-
-# Serverless directories
-.serverless/
-
-# FuseBox cache
-.fusebox/
-
-# DynamoDB Local files
-.dynamodb/
-
-# TernJS port file
-.tern-port
-
-# Suck my ass
-suckmyass
-# wtf leonardssh
-
-.pnp.*
-.yarn/*
-!.yarn/patches
-!.yarn/plugins
-!.yarn/releases
-!.yarn/sdks
-!.yarn/versions
-
-# package
-vscord-*.vsix
-
-# macOS
-.DS_Store
-
+node_modules
+*.vsix
diff --git a/.npmrc b/.npmrc
new file mode 100644
index 00000000..37d1b604
--- /dev/null
+++ b/.npmrc
@@ -0,0 +1 @@
+enable-pre-post-scripts = true
\ No newline at end of file
diff --git a/.prettierignore b/.prettierignore
index eeeb7be5..db36574a 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -1 +1 @@
-pnpm-lock.yaml
\ No newline at end of file
+pnpm-workspace.yaml
\ No newline at end of file
diff --git a/.prettierrc b/.prettierrc
index a89281f5..f307bfad 100644
--- a/.prettierrc
+++ b/.prettierrc
@@ -3,15 +3,6 @@
"semi": true,
"tabWidth": 4,
"trailingComma": "none",
- "endOfLine": "auto",
- "printWidth": 120,
- "overrides": [
- {
- "files": "*.yml",
- "options": {
- "tabWidth": 2,
- "useTabs": false
- }
- }
- ]
+ "endOfLine": "lf",
+ "printWidth": 120
}
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
index 974188b8..d6eaf9be 100644
--- a/.vscode/extensions.json
+++ b/.vscode/extensions.json
@@ -1,3 +1,5 @@
{
- "recommendations": ["esbenp.prettier-vscode"]
+ // See http://go.microsoft.com/fwlink/?LinkId=827846
+ // for the documentation about the extensions.json format
+ "recommendations": []
}
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 14488ce9..0873375e 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,12 +1,13 @@
// Place your settings in this file to overwrite default and user settings.
{
- "typescript.tsdk": "./node_modules/typescript/lib",
- "typescript.tsc.autoDetect": "off",
- "prettier.enable": true,
- "editor.defaultFormatter": "esbenp.prettier-vscode",
+ "files.exclude": {
+ "out": false, // set this to true to hide the "out" folder with the compiled JS files
+ "dist": false // set this to true to hide the "dist" folder with the compiled JS files
+ },
"search.exclude": {
- "out": true,
- "dist": true,
- "pnpm-lock.yaml": true
- }
+ "out": true, // set this to false to include "out" folder in search results
+ "dist": true // set this to false to include "dist" folder in search results
+ },
+ // Turn off tsc task auto detection since we have the necessary tasks as npm scripts
+ "typescript.tsc.autoDetect": "off"
}
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
new file mode 100644
index 00000000..b98c891f
--- /dev/null
+++ b/.vscode/tasks.json
@@ -0,0 +1,53 @@
+// See https://go.microsoft.com/fwlink/?LinkId=733558
+// for the documentation about the tasks.json format
+{
+ "version": "2.0.0",
+ "tasks": [
+ {
+ "type": "npm",
+ "script": "compile",
+ "label": "build",
+ "presentation": {
+ "reveal": "never"
+ },
+ "group": {
+ "kind": "build",
+ "isDefault": true
+ }
+ },
+ {
+ "label": "watch",
+ "dependsOn": ["npm: watch:tsc", "npm: watch:rolldown"],
+ "presentation": {
+ "reveal": "never"
+ },
+ "group": {
+ "kind": "build"
+ }
+ },
+ {
+ "type": "npm",
+ "script": "watch:rolldown",
+ "group": "build",
+ // "problemMatcher": "$esbuild-watch",
+ "isBackground": true,
+ "label": "npm: watch:rolldown",
+ "presentation": {
+ "group": "watch",
+ "reveal": "never"
+ }
+ },
+ {
+ "type": "npm",
+ "script": "watch:tsc",
+ "group": "build",
+ "problemMatcher": "$tsc-watch",
+ "isBackground": true,
+ "label": "npm: watch:tsc",
+ "presentation": {
+ "group": "watch",
+ "reveal": "never"
+ }
+ }
+ ]
+}
diff --git a/.vscodeignore b/.vscodeignore
index d639dd0d..af7edb71 100644
--- a/.vscodeignore
+++ b/.vscodeignore
@@ -1,17 +1,11 @@
-assets/icons/
-node_modules/
-.github/
-.vscode/
-src/
-
-pnpm-workspace.yaml
-ADDING_LANGUAGE.md
-.prettierignore
-pnpm-lock.yaml
-.gitattributes
-tsup.config.ts
-tsconfig.json
-.vscodeignore
-.prettierrc
+.vscode/**
+out/**
+node_modules/**
+src/**
+assets/icons/**
.gitignore
-suckmyass
\ No newline at end of file
+.yarnrc
+rolldown.config.ts
+**/tsconfig.json
+**/*.map
+**/*.ts
\ No newline at end of file
diff --git a/ADDING_LANGUAGE.md b/ADDING_LANGUAGE.md
deleted file mode 100644
index 96e48701..00000000
--- a/ADDING_LANGUAGE.md
+++ /dev/null
@@ -1,116 +0,0 @@
-# Adding a Programming Language
-
-Adding a Programming Language to the extension is easy, you can either add it to the repository OR define it in `vscord.additionalFileMapping`.
-
-To make the language appear you need to add it extension to the language data json or `vscord.additionalFileMapping`, then to make icon appear you need to add it to [assets/icons/](/assets/icons/).
-
-Data for Programming Language will be located in [src/data/languages.json](/src/data/languages.json)
-Icon for Programming Language will be located in [assets/icons/](/assets/icons/)
-
-## Adding Language Data
-
-There's currently two value that store information for language, that is `KNOWN_LANGUAGES` and `KNOWN_EXTENSIONS`.
-It's not necessary to fill both field, only one is needed, but you can fill both field.
-
-If possible, please also sort the key by alphabetical order!
-
-### KNOWN_LANGUAGES
-
-`KNOWN_LANGUAGES` is a [record](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type) of Language ID and icon.
-It's usually specified by extension developer who add support for that specific language.
-
-#### Finding Language ID
-
-You can find the ID by doing the following.
-
-- CTRL + SHIFT + P
-- Change Language Mode
-- Search for the language
-- Next to the language mode, in the bracket is the id for the language
-
-For example, in the Language Mode menu, when selecting `C++` it shows `C++ (cpp)`, that mean that `cpp` is the language id
-
-#### Example
-
-```ts
-/*
-K: Language ID
-V: Icon
-*/
-const KNOWN_LANGUAGES: Record = {
- cpp: "cpp",
- // Language with ID "cpp" is linked to image "cpp" in "assets" folder
- astro: "astro",
- // Language with ID "astro" is linked to image "astro" in "assets" folder
- jsonc: "jsoncomments"
- // Language with ID "jsonc" is linked to image "jsoncomments" in "assets" folder
-};
-```
-
-### KNOWN_EXTENSIONS
-
-This is used when there's no matching id in the `KNOWN_LANGUAGES`, or when extension for that language id is not installed, it will check if current file ends with the specified value
-
-#### Example
-
-```ts
-/*
-K: RegEx to test at the end of string
-V: Icon
-*/
-const KNOWN_EXTENSIONS: Record = {
- ".cpp": "cpp",
- // File that end with ".cpp" is linked to image "cpp" in "assets" folder
- ".cc": "cpp",
- // File that end with ".cc" is linked to image "cpp" in "assets" folder
- "/\\.c[+px]{2}$|\\.cc$/i": "cpp"
- // File that end with this regex is linked to image "cpp" in "assets" folder
-};
-```
-
-## Adding a new Language Icon
-
-When adding an icon for a language, please read the information below before doing so!
-
-### Requirements
-
-#### Sizing
-
-- The icon should be 1024px x 1024px.
-- Please use PNG file format. Note that this does **NOT** mean that the icon should have a transparent background.
-- Recommend logo size is 512px x 512px.
-
-#### Color
-
-> [!TIP]
-> It is recommended to use HSL instead of RGB.
-
-How to create background color:
-
-1. Use the hue of the primary logo color
-2. In the HSL color picker, change the saturation to about 20-30% and the lightness to about 15-20%
-
-Here are some examples:
-
-|  |  |  |  |  |
-| :------------------------------: | :---------------------------------: | :----------------------------: | :----------------------------: | :------------------------------: |
-| Rust | Holy C | QML | JSX | Yarn |
-
-#### Logo
-
-- You should use the official logo of the language UNLESS it's necessary to use other icon (e.g. the logo is too complex)
-- The icon should be minimalistic.
-
-### Note
-
-If you can't make an icon, then that's fine. Just add the language name to the list in next section. A future contributor might be able to work on it!
-
-### Missing Icon List
-
-Use the following format ` () ([Link to language website / information about the language])` where `<>` is required, `[]` is optional
-
-Example: `C++ (cpp.png) (https://en.wikipedia.org/wiki/C%2B%2B)`
-
-#### List
-
-- Example ([example.png](https://example.com)) [Website](https://example.com)
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 00000000..8bb0fab5
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,9 @@
+# Change Log
+
+All notable changes to the "vscord" extension will be documented in this file.
+
+Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
+
+## [Unreleased]
+
+- Initial release
diff --git a/LICENSE b/LICENSE
index a713e68e..ce65acdc 100644
--- a/LICENSE
+++ b/LICENSE
@@ -20,4 +20,4 @@ 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.
+SOFTWARE.
\ No newline at end of file
diff --git a/assets/icons/agda.png b/assets/icons/agda.png
deleted file mode 100644
index ed65fbfa..00000000
Binary files a/assets/icons/agda.png and /dev/null differ
diff --git a/assets/icons/ahk.png b/assets/icons/ahk.png
deleted file mode 100644
index f5c477df..00000000
Binary files a/assets/icons/ahk.png and /dev/null differ
diff --git a/assets/icons/android.png b/assets/icons/android.png
deleted file mode 100644
index bf9a632a..00000000
Binary files a/assets/icons/android.png and /dev/null differ
diff --git a/assets/icons/angular.png b/assets/icons/angular.png
deleted file mode 100644
index 4c136fca..00000000
Binary files a/assets/icons/angular.png and /dev/null differ
diff --git a/assets/icons/ansible.png b/assets/icons/ansible.png
deleted file mode 100644
index ac04439c..00000000
Binary files a/assets/icons/ansible.png and /dev/null differ
diff --git a/assets/icons/antigravity.png b/assets/icons/antigravity.png
deleted file mode 100644
index d86b49b1..00000000
Binary files a/assets/icons/antigravity.png and /dev/null differ
diff --git a/assets/icons/applescript.png b/assets/icons/applescript.png
deleted file mode 100644
index 671f80c5..00000000
Binary files a/assets/icons/applescript.png and /dev/null differ
diff --git a/assets/icons/appveyor.png b/assets/icons/appveyor.png
deleted file mode 100644
index 969f4884..00000000
Binary files a/assets/icons/appveyor.png and /dev/null differ
diff --git a/assets/icons/arduino.png b/assets/icons/arduino.png
deleted file mode 100644
index e92903f5..00000000
Binary files a/assets/icons/arduino.png and /dev/null differ
diff --git a/assets/icons/asciidoc.png b/assets/icons/asciidoc.png
deleted file mode 100644
index 55a97abe..00000000
Binary files a/assets/icons/asciidoc.png and /dev/null differ
diff --git a/assets/icons/asp.png b/assets/icons/asp.png
deleted file mode 100644
index 094fcf9a..00000000
Binary files a/assets/icons/asp.png and /dev/null differ
diff --git a/assets/icons/assembly.png b/assets/icons/assembly.png
deleted file mode 100644
index 0bee6975..00000000
Binary files a/assets/icons/assembly.png and /dev/null differ
diff --git a/assets/icons/astro.png b/assets/icons/astro.png
deleted file mode 100644
index ba2788d5..00000000
Binary files a/assets/icons/astro.png and /dev/null differ
diff --git a/assets/icons/astroconfig.png b/assets/icons/astroconfig.png
deleted file mode 100644
index 9057992f..00000000
Binary files a/assets/icons/astroconfig.png and /dev/null differ
diff --git a/assets/icons/autoit.png b/assets/icons/autoit.png
deleted file mode 100644
index a48d1afa..00000000
Binary files a/assets/icons/autoit.png and /dev/null differ
diff --git a/assets/icons/babel.png b/assets/icons/babel.png
deleted file mode 100644
index 970e2ce0..00000000
Binary files a/assets/icons/babel.png and /dev/null differ
diff --git a/assets/icons/bat.png b/assets/icons/bat.png
deleted file mode 100644
index f0eadbe5..00000000
Binary files a/assets/icons/bat.png and /dev/null differ
diff --git a/assets/icons/bazel.png b/assets/icons/bazel.png
deleted file mode 100644
index 2ca43512..00000000
Binary files a/assets/icons/bazel.png and /dev/null differ
diff --git a/assets/icons/bower.png b/assets/icons/bower.png
deleted file mode 100644
index 622d373a..00000000
Binary files a/assets/icons/bower.png and /dev/null differ
diff --git a/assets/icons/brainfuck.png b/assets/icons/brainfuck.png
deleted file mode 100644
index 1bab4c67..00000000
Binary files a/assets/icons/brainfuck.png and /dev/null differ
diff --git a/assets/icons/c.png b/assets/icons/c.png
deleted file mode 100644
index 827e1f4f..00000000
Binary files a/assets/icons/c.png and /dev/null differ
diff --git a/assets/icons/c3.png b/assets/icons/c3.png
deleted file mode 100644
index b95a4593..00000000
Binary files a/assets/icons/c3.png and /dev/null differ
diff --git a/assets/icons/cargo.png b/assets/icons/cargo.png
deleted file mode 100644
index 867ee2a9..00000000
Binary files a/assets/icons/cargo.png and /dev/null differ
diff --git a/assets/icons/circleci.png b/assets/icons/circleci.png
deleted file mode 100644
index c52c726a..00000000
Binary files a/assets/icons/circleci.png and /dev/null differ
diff --git a/assets/icons/citrinescript.png b/assets/icons/citrinescript.png
deleted file mode 100644
index 65182d82..00000000
Binary files a/assets/icons/citrinescript.png and /dev/null differ
diff --git a/assets/icons/clojure.png b/assets/icons/clojure.png
deleted file mode 100644
index 8999524a..00000000
Binary files a/assets/icons/clojure.png and /dev/null differ
diff --git a/assets/icons/cmake.png b/assets/icons/cmake.png
deleted file mode 100644
index f18ca43a..00000000
Binary files a/assets/icons/cmake.png and /dev/null differ
diff --git a/assets/icons/cobol.png b/assets/icons/cobol.png
deleted file mode 100644
index b8b74f26..00000000
Binary files a/assets/icons/cobol.png and /dev/null differ
diff --git a/assets/icons/codeclimate.png b/assets/icons/codeclimate.png
deleted file mode 100644
index cfc86a55..00000000
Binary files a/assets/icons/codeclimate.png and /dev/null differ
diff --git a/assets/icons/coffee.png b/assets/icons/coffee.png
deleted file mode 100644
index 4ff9317e..00000000
Binary files a/assets/icons/coffee.png and /dev/null differ
diff --git a/assets/icons/contenthook.png b/assets/icons/contenthook.png
deleted file mode 100644
index 7ab21734..00000000
Binary files a/assets/icons/contenthook.png and /dev/null differ
diff --git a/assets/icons/contentkit.png b/assets/icons/contentkit.png
deleted file mode 100644
index 69b791b8..00000000
Binary files a/assets/icons/contentkit.png and /dev/null differ
diff --git a/assets/icons/cosmo.png b/assets/icons/cosmo.png
deleted file mode 100644
index 5a2fdcfe..00000000
Binary files a/assets/icons/cosmo.png and /dev/null differ
diff --git a/assets/icons/cpp.png b/assets/icons/cpp.png
deleted file mode 100644
index b022e7db..00000000
Binary files a/assets/icons/cpp.png and /dev/null differ
diff --git a/assets/icons/crystal.png b/assets/icons/crystal.png
deleted file mode 100644
index 92406bcd..00000000
Binary files a/assets/icons/crystal.png and /dev/null differ
diff --git a/assets/icons/csharp.png b/assets/icons/csharp.png
deleted file mode 100644
index 2ab892b7..00000000
Binary files a/assets/icons/csharp.png and /dev/null differ
diff --git a/assets/icons/csproj.png b/assets/icons/csproj.png
deleted file mode 100644
index 28f5a852..00000000
Binary files a/assets/icons/csproj.png and /dev/null differ
diff --git a/assets/icons/css.png b/assets/icons/css.png
deleted file mode 100644
index 3eabf9cd..00000000
Binary files a/assets/icons/css.png and /dev/null differ
diff --git a/assets/icons/cssmap.png b/assets/icons/cssmap.png
deleted file mode 100644
index ee16fbb8..00000000
Binary files a/assets/icons/cssmap.png and /dev/null differ
diff --git a/assets/icons/cuda.png b/assets/icons/cuda.png
deleted file mode 100644
index 68053867..00000000
Binary files a/assets/icons/cuda.png and /dev/null differ
diff --git a/assets/icons/cursor.png b/assets/icons/cursor.png
deleted file mode 100644
index 3345b7df..00000000
Binary files a/assets/icons/cursor.png and /dev/null differ
diff --git a/assets/icons/cython.png b/assets/icons/cython.png
deleted file mode 100644
index e1eb4e4b..00000000
Binary files a/assets/icons/cython.png and /dev/null differ
diff --git a/assets/icons/d.png b/assets/icons/d.png
deleted file mode 100644
index 95fdb4d5..00000000
Binary files a/assets/icons/d.png and /dev/null differ
diff --git a/assets/icons/dart.png b/assets/icons/dart.png
deleted file mode 100644
index 491dff47..00000000
Binary files a/assets/icons/dart.png and /dev/null differ
diff --git a/assets/icons/debugging.png b/assets/icons/debugging.png
deleted file mode 100644
index 1c4e1b80..00000000
Binary files a/assets/icons/debugging.png and /dev/null differ
diff --git a/assets/icons/delphi.png b/assets/icons/delphi.png
deleted file mode 100644
index 8f207e41..00000000
Binary files a/assets/icons/delphi.png and /dev/null differ
diff --git a/assets/icons/denizen.png b/assets/icons/denizen.png
deleted file mode 100644
index 51857681..00000000
Binary files a/assets/icons/denizen.png and /dev/null differ
diff --git a/assets/icons/docker.png b/assets/icons/docker.png
deleted file mode 100644
index f74d11c7..00000000
Binary files a/assets/icons/docker.png and /dev/null differ
diff --git a/assets/icons/editorconfig.png b/assets/icons/editorconfig.png
deleted file mode 100644
index dfe843f2..00000000
Binary files a/assets/icons/editorconfig.png and /dev/null differ
diff --git a/assets/icons/ejs.png b/assets/icons/ejs.png
deleted file mode 100644
index 6247087a..00000000
Binary files a/assets/icons/ejs.png and /dev/null differ
diff --git a/assets/icons/elixir.png b/assets/icons/elixir.png
deleted file mode 100644
index 90d1b0fd..00000000
Binary files a/assets/icons/elixir.png and /dev/null differ
diff --git a/assets/icons/elm.png b/assets/icons/elm.png
deleted file mode 100644
index 3e02c24f..00000000
Binary files a/assets/icons/elm.png and /dev/null differ
diff --git a/assets/icons/env.png b/assets/icons/env.png
deleted file mode 100644
index 07194391..00000000
Binary files a/assets/icons/env.png and /dev/null differ
diff --git a/assets/icons/erlang.png b/assets/icons/erlang.png
deleted file mode 100644
index 7df73ece..00000000
Binary files a/assets/icons/erlang.png and /dev/null differ
diff --git a/assets/icons/eslint.png b/assets/icons/eslint.png
deleted file mode 100644
index 6a0bfbf0..00000000
Binary files a/assets/icons/eslint.png and /dev/null differ
diff --git a/assets/icons/firebase.png b/assets/icons/firebase.png
deleted file mode 100644
index 6c591be4..00000000
Binary files a/assets/icons/firebase.png and /dev/null differ
diff --git a/assets/icons/flowconfig.png b/assets/icons/flowconfig.png
deleted file mode 100644
index fa5112d9..00000000
Binary files a/assets/icons/flowconfig.png and /dev/null differ
diff --git a/assets/icons/fortran.png b/assets/icons/fortran.png
deleted file mode 100644
index e53c7aeb..00000000
Binary files a/assets/icons/fortran.png and /dev/null differ
diff --git a/assets/icons/fountain.png b/assets/icons/fountain.png
deleted file mode 100644
index a53871a4..00000000
Binary files a/assets/icons/fountain.png and /dev/null differ
diff --git a/assets/icons/fsharp.png b/assets/icons/fsharp.png
deleted file mode 100644
index 427c4a29..00000000
Binary files a/assets/icons/fsharp.png and /dev/null differ
diff --git a/assets/icons/gamescript.png b/assets/icons/gamescript.png
deleted file mode 100644
index 3f67899f..00000000
Binary files a/assets/icons/gamescript.png and /dev/null differ
diff --git a/assets/icons/gatsbyjs.png b/assets/icons/gatsbyjs.png
deleted file mode 100644
index aeeaa124..00000000
Binary files a/assets/icons/gatsbyjs.png and /dev/null differ
diff --git a/assets/icons/gemfile.png b/assets/icons/gemfile.png
deleted file mode 100644
index ebc1da0f..00000000
Binary files a/assets/icons/gemfile.png and /dev/null differ
diff --git a/assets/icons/git.png b/assets/icons/git.png
deleted file mode 100644
index 4227d062..00000000
Binary files a/assets/icons/git.png and /dev/null differ
diff --git a/assets/icons/gleam.png b/assets/icons/gleam.png
deleted file mode 100644
index dce43e04..00000000
Binary files a/assets/icons/gleam.png and /dev/null differ
diff --git a/assets/icons/glsl.png b/assets/icons/glsl.png
deleted file mode 100644
index 6456916d..00000000
Binary files a/assets/icons/glsl.png and /dev/null differ
diff --git a/assets/icons/gml.png b/assets/icons/gml.png
deleted file mode 100644
index 108f5348..00000000
Binary files a/assets/icons/gml.png and /dev/null differ
diff --git a/assets/icons/go.png b/assets/icons/go.png
deleted file mode 100644
index 836dc1ac..00000000
Binary files a/assets/icons/go.png and /dev/null differ
diff --git a/assets/icons/godot.png b/assets/icons/godot.png
deleted file mode 100644
index 3b3481b8..00000000
Binary files a/assets/icons/godot.png and /dev/null differ
diff --git a/assets/icons/gradle.png b/assets/icons/gradle.png
deleted file mode 100644
index effd2b2b..00000000
Binary files a/assets/icons/gradle.png and /dev/null differ
diff --git a/assets/icons/grain.png b/assets/icons/grain.png
deleted file mode 100644
index 0d2087b3..00000000
Binary files a/assets/icons/grain.png and /dev/null differ
diff --git a/assets/icons/graphql.png b/assets/icons/graphql.png
deleted file mode 100644
index f8021a6b..00000000
Binary files a/assets/icons/graphql.png and /dev/null differ
diff --git a/assets/icons/groovy.png b/assets/icons/groovy.png
deleted file mode 100644
index 611ef571..00000000
Binary files a/assets/icons/groovy.png and /dev/null differ
diff --git a/assets/icons/gruntfile.png b/assets/icons/gruntfile.png
deleted file mode 100644
index 52be2112..00000000
Binary files a/assets/icons/gruntfile.png and /dev/null differ
diff --git a/assets/icons/gulp.png b/assets/icons/gulp.png
deleted file mode 100644
index 1cfce3c9..00000000
Binary files a/assets/icons/gulp.png and /dev/null differ
diff --git a/assets/icons/handlebars.png b/assets/icons/handlebars.png
deleted file mode 100644
index bfd3be22..00000000
Binary files a/assets/icons/handlebars.png and /dev/null differ
diff --git a/assets/icons/harbour.png b/assets/icons/harbour.png
deleted file mode 100644
index 797b228c..00000000
Binary files a/assets/icons/harbour.png and /dev/null differ
diff --git a/assets/icons/hare.png b/assets/icons/hare.png
deleted file mode 100644
index 07f3d1d6..00000000
Binary files a/assets/icons/hare.png and /dev/null differ
diff --git a/assets/icons/haskell.png b/assets/icons/haskell.png
deleted file mode 100644
index 78540656..00000000
Binary files a/assets/icons/haskell.png and /dev/null differ
diff --git a/assets/icons/haxe.png b/assets/icons/haxe.png
deleted file mode 100644
index 3af6f408..00000000
Binary files a/assets/icons/haxe.png and /dev/null differ
diff --git a/assets/icons/heex.png b/assets/icons/heex.png
deleted file mode 100644
index 5e2855fc..00000000
Binary files a/assets/icons/heex.png and /dev/null differ
diff --git a/assets/icons/heroku.png b/assets/icons/heroku.png
deleted file mode 100644
index 79e68090..00000000
Binary files a/assets/icons/heroku.png and /dev/null differ
diff --git a/assets/icons/hjson.png b/assets/icons/hjson.png
deleted file mode 100644
index 027003f8..00000000
Binary files a/assets/icons/hjson.png and /dev/null differ
diff --git a/assets/icons/hlsl.png b/assets/icons/hlsl.png
deleted file mode 100644
index 40a77f7f..00000000
Binary files a/assets/icons/hlsl.png and /dev/null differ
diff --git a/assets/icons/holyc.png b/assets/icons/holyc.png
deleted file mode 100644
index 328be05e..00000000
Binary files a/assets/icons/holyc.png and /dev/null differ
diff --git a/assets/icons/html.png b/assets/icons/html.png
deleted file mode 100644
index b37ab6d7..00000000
Binary files a/assets/icons/html.png and /dev/null differ
diff --git a/assets/icons/http.png b/assets/icons/http.png
deleted file mode 100644
index 11c7683c..00000000
Binary files a/assets/icons/http.png and /dev/null differ
diff --git a/assets/icons/idle-antigravity.png b/assets/icons/idle-antigravity.png
deleted file mode 100644
index a4282ddb..00000000
Binary files a/assets/icons/idle-antigravity.png and /dev/null differ
diff --git a/assets/icons/idle-cursor.png b/assets/icons/idle-cursor.png
deleted file mode 100644
index a4282ddb..00000000
Binary files a/assets/icons/idle-cursor.png and /dev/null differ
diff --git a/assets/icons/idle-vscode-insiders.png b/assets/icons/idle-vscode-insiders.png
deleted file mode 100644
index 41356f94..00000000
Binary files a/assets/icons/idle-vscode-insiders.png and /dev/null differ
diff --git a/assets/icons/idle-vscode.png b/assets/icons/idle-vscode.png
deleted file mode 100644
index a4282ddb..00000000
Binary files a/assets/icons/idle-vscode.png and /dev/null differ
diff --git a/assets/icons/idle-vscodium-insiders.png b/assets/icons/idle-vscodium-insiders.png
deleted file mode 100644
index 41356f94..00000000
Binary files a/assets/icons/idle-vscodium-insiders.png and /dev/null differ
diff --git a/assets/icons/idle-vscodium.png b/assets/icons/idle-vscodium.png
deleted file mode 100644
index a4282ddb..00000000
Binary files a/assets/icons/idle-vscodium.png and /dev/null differ
diff --git a/assets/icons/idle.png b/assets/icons/idle.png
deleted file mode 100644
index e5c9c486..00000000
Binary files a/assets/icons/idle.png and /dev/null differ
diff --git a/assets/icons/jar.png b/assets/icons/jar.png
deleted file mode 100644
index 0b57655b..00000000
Binary files a/assets/icons/jar.png and /dev/null differ
diff --git a/assets/icons/java.png b/assets/icons/java.png
deleted file mode 100644
index 6d6eab43..00000000
Binary files a/assets/icons/java.png and /dev/null differ
diff --git a/assets/icons/jest.png b/assets/icons/jest.png
deleted file mode 100644
index 92003300..00000000
Binary files a/assets/icons/jest.png and /dev/null differ
diff --git a/assets/icons/jinja.png b/assets/icons/jinja.png
deleted file mode 100644
index 790434b3..00000000
Binary files a/assets/icons/jinja.png and /dev/null differ
diff --git a/assets/icons/js.png b/assets/icons/js.png
deleted file mode 100644
index 21001854..00000000
Binary files a/assets/icons/js.png and /dev/null differ
diff --git a/assets/icons/jsmap.png b/assets/icons/jsmap.png
deleted file mode 100644
index 7a281480..00000000
Binary files a/assets/icons/jsmap.png and /dev/null differ
diff --git a/assets/icons/json.png b/assets/icons/json.png
deleted file mode 100644
index a660cd01..00000000
Binary files a/assets/icons/json.png and /dev/null differ
diff --git a/assets/icons/jsx.png b/assets/icons/jsx.png
deleted file mode 100644
index b4b656b9..00000000
Binary files a/assets/icons/jsx.png and /dev/null differ
diff --git a/assets/icons/jule.png b/assets/icons/jule.png
deleted file mode 100644
index 7802b4ca..00000000
Binary files a/assets/icons/jule.png and /dev/null differ
diff --git a/assets/icons/julia.png b/assets/icons/julia.png
deleted file mode 100644
index 32396dc3..00000000
Binary files a/assets/icons/julia.png and /dev/null differ
diff --git a/assets/icons/jupyter.png b/assets/icons/jupyter.png
deleted file mode 100644
index 637e2da3..00000000
Binary files a/assets/icons/jupyter.png and /dev/null differ
diff --git a/assets/icons/kag-script.png b/assets/icons/kag-script.png
deleted file mode 100644
index fd7e83c2..00000000
Binary files a/assets/icons/kag-script.png and /dev/null differ
diff --git a/assets/icons/kirikiri-tpv-javascript.png b/assets/icons/kirikiri-tpv-javascript.png
deleted file mode 100644
index 3e88fcc4..00000000
Binary files a/assets/icons/kirikiri-tpv-javascript.png and /dev/null differ
diff --git a/assets/icons/kivy.png b/assets/icons/kivy.png
deleted file mode 100644
index 8d250895..00000000
Binary files a/assets/icons/kivy.png and /dev/null differ
diff --git a/assets/icons/kotlin.png b/assets/icons/kotlin.png
deleted file mode 100644
index 1c622595..00000000
Binary files a/assets/icons/kotlin.png and /dev/null differ
diff --git a/assets/icons/laravel.png b/assets/icons/laravel.png
deleted file mode 100644
index 9dc70bde..00000000
Binary files a/assets/icons/laravel.png and /dev/null differ
diff --git a/assets/icons/lean.png b/assets/icons/lean.png
deleted file mode 100644
index 09936da2..00000000
Binary files a/assets/icons/lean.png and /dev/null differ
diff --git a/assets/icons/less.png b/assets/icons/less.png
deleted file mode 100644
index 8909af7f..00000000
Binary files a/assets/icons/less.png and /dev/null differ
diff --git a/assets/icons/lisp.png b/assets/icons/lisp.png
deleted file mode 100644
index 882cf2cf..00000000
Binary files a/assets/icons/lisp.png and /dev/null differ
diff --git a/assets/icons/livescript.png b/assets/icons/livescript.png
deleted file mode 100644
index a443c9da..00000000
Binary files a/assets/icons/livescript.png and /dev/null differ
diff --git a/assets/icons/log.png b/assets/icons/log.png
deleted file mode 100644
index b3a40962..00000000
Binary files a/assets/icons/log.png and /dev/null differ
diff --git a/assets/icons/lua.png b/assets/icons/lua.png
deleted file mode 100644
index e765368f..00000000
Binary files a/assets/icons/lua.png and /dev/null differ
diff --git a/assets/icons/luau.png b/assets/icons/luau.png
deleted file mode 100644
index 2cb040ae..00000000
Binary files a/assets/icons/luau.png and /dev/null differ
diff --git a/assets/icons/maeel.png b/assets/icons/maeel.png
deleted file mode 100644
index 1300642c..00000000
Binary files a/assets/icons/maeel.png and /dev/null differ
diff --git a/assets/icons/makefile.png b/assets/icons/makefile.png
deleted file mode 100644
index 782f8fe3..00000000
Binary files a/assets/icons/makefile.png and /dev/null differ
diff --git a/assets/icons/manifest.png b/assets/icons/manifest.png
deleted file mode 100644
index eca97ce9..00000000
Binary files a/assets/icons/manifest.png and /dev/null differ
diff --git a/assets/icons/markdown.png b/assets/icons/markdown.png
deleted file mode 100644
index 20909dbd..00000000
Binary files a/assets/icons/markdown.png and /dev/null differ
diff --git a/assets/icons/markdownx.png b/assets/icons/markdownx.png
deleted file mode 100644
index 2318208b..00000000
Binary files a/assets/icons/markdownx.png and /dev/null differ
diff --git a/assets/icons/marko.png b/assets/icons/marko.png
deleted file mode 100644
index 1451d9e0..00000000
Binary files a/assets/icons/marko.png and /dev/null differ
diff --git a/assets/icons/matlab.png b/assets/icons/matlab.png
deleted file mode 100644
index 8b95307a..00000000
Binary files a/assets/icons/matlab.png and /dev/null differ
diff --git a/assets/icons/metal.png b/assets/icons/metal.png
deleted file mode 100644
index a5d64d45..00000000
Binary files a/assets/icons/metal.png and /dev/null differ
diff --git a/assets/icons/mojo.png b/assets/icons/mojo.png
deleted file mode 100644
index fd77e050..00000000
Binary files a/assets/icons/mojo.png and /dev/null differ
diff --git a/assets/icons/moonscript.png b/assets/icons/moonscript.png
deleted file mode 100644
index 45dab14a..00000000
Binary files a/assets/icons/moonscript.png and /dev/null differ
diff --git a/assets/icons/nim.png b/assets/icons/nim.png
deleted file mode 100644
index 63efb4d2..00000000
Binary files a/assets/icons/nim.png and /dev/null differ
diff --git a/assets/icons/nix.png b/assets/icons/nix.png
deleted file mode 100644
index 7188b6ea..00000000
Binary files a/assets/icons/nix.png and /dev/null differ
diff --git a/assets/icons/nodemon.png b/assets/icons/nodemon.png
deleted file mode 100644
index 14d9a64d..00000000
Binary files a/assets/icons/nodemon.png and /dev/null differ
diff --git a/assets/icons/npm.png b/assets/icons/npm.png
deleted file mode 100644
index 86938a00..00000000
Binary files a/assets/icons/npm.png and /dev/null differ
diff --git a/assets/icons/objective-c.png b/assets/icons/objective-c.png
deleted file mode 100644
index 6b55fe39..00000000
Binary files a/assets/icons/objective-c.png and /dev/null differ
diff --git a/assets/icons/ocaml.png b/assets/icons/ocaml.png
deleted file mode 100644
index 871d8b4f..00000000
Binary files a/assets/icons/ocaml.png and /dev/null differ
diff --git a/assets/icons/odin.png b/assets/icons/odin.png
deleted file mode 100644
index 75a64a64..00000000
Binary files a/assets/icons/odin.png and /dev/null differ
diff --git a/assets/icons/onyx.png b/assets/icons/onyx.png
deleted file mode 100644
index 36d9ae98..00000000
Binary files a/assets/icons/onyx.png and /dev/null differ
diff --git a/assets/icons/opengoal-goos.png b/assets/icons/opengoal-goos.png
deleted file mode 100644
index d6f748df..00000000
Binary files a/assets/icons/opengoal-goos.png and /dev/null differ
diff --git a/assets/icons/opengoal-ir.png b/assets/icons/opengoal-ir.png
deleted file mode 100644
index a401bf01..00000000
Binary files a/assets/icons/opengoal-ir.png and /dev/null differ
diff --git a/assets/icons/opengoal.png b/assets/icons/opengoal.png
deleted file mode 100644
index 63c53ec6..00000000
Binary files a/assets/icons/opengoal.png and /dev/null differ
diff --git a/assets/icons/pascal.png b/assets/icons/pascal.png
deleted file mode 100644
index 7e51cf5d..00000000
Binary files a/assets/icons/pascal.png and /dev/null differ
diff --git a/assets/icons/pawn.png b/assets/icons/pawn.png
deleted file mode 100644
index af59388f..00000000
Binary files a/assets/icons/pawn.png and /dev/null differ
diff --git a/assets/icons/perl.png b/assets/icons/perl.png
deleted file mode 100644
index 43a3fe89..00000000
Binary files a/assets/icons/perl.png and /dev/null differ
diff --git a/assets/icons/php.png b/assets/icons/php.png
deleted file mode 100644
index 8a429bec..00000000
Binary files a/assets/icons/php.png and /dev/null differ
diff --git a/assets/icons/ponylang.png b/assets/icons/ponylang.png
deleted file mode 100644
index db36f21a..00000000
Binary files a/assets/icons/ponylang.png and /dev/null differ
diff --git a/assets/icons/postcss.png b/assets/icons/postcss.png
deleted file mode 100644
index 3ceb8f40..00000000
Binary files a/assets/icons/postcss.png and /dev/null differ
diff --git a/assets/icons/powershell.png b/assets/icons/powershell.png
deleted file mode 100644
index e102c5d9..00000000
Binary files a/assets/icons/powershell.png and /dev/null differ
diff --git a/assets/icons/prettier.png b/assets/icons/prettier.png
deleted file mode 100644
index 6510e7bc..00000000
Binary files a/assets/icons/prettier.png and /dev/null differ
diff --git a/assets/icons/prisma.png b/assets/icons/prisma.png
deleted file mode 100644
index 5e212bbd..00000000
Binary files a/assets/icons/prisma.png and /dev/null differ
diff --git a/assets/icons/processing.png b/assets/icons/processing.png
deleted file mode 100644
index 49fcbc42..00000000
Binary files a/assets/icons/processing.png and /dev/null differ
diff --git a/assets/icons/pug.png b/assets/icons/pug.png
deleted file mode 100644
index 93756996..00000000
Binary files a/assets/icons/pug.png and /dev/null differ
diff --git a/assets/icons/purescript.png b/assets/icons/purescript.png
deleted file mode 100644
index 12fe879d..00000000
Binary files a/assets/icons/purescript.png and /dev/null differ
diff --git a/assets/icons/python.png b/assets/icons/python.png
deleted file mode 100644
index 992c308d..00000000
Binary files a/assets/icons/python.png and /dev/null differ
diff --git a/assets/icons/qml.png b/assets/icons/qml.png
deleted file mode 100644
index ff59b101..00000000
Binary files a/assets/icons/qml.png and /dev/null differ
diff --git a/assets/icons/r.png b/assets/icons/r.png
deleted file mode 100644
index a4e22066..00000000
Binary files a/assets/icons/r.png and /dev/null differ
diff --git a/assets/icons/racket.png b/assets/icons/racket.png
deleted file mode 100644
index cefa6f1d..00000000
Binary files a/assets/icons/racket.png and /dev/null differ
diff --git a/assets/icons/razor.png b/assets/icons/razor.png
deleted file mode 100644
index 147ed6d1..00000000
Binary files a/assets/icons/razor.png and /dev/null differ
diff --git a/assets/icons/reasonml.png b/assets/icons/reasonml.png
deleted file mode 100644
index 4d1a2a73..00000000
Binary files a/assets/icons/reasonml.png and /dev/null differ
diff --git a/assets/icons/renpy.png b/assets/icons/renpy.png
deleted file mode 100644
index a87e92d7..00000000
Binary files a/assets/icons/renpy.png and /dev/null differ
diff --git a/assets/icons/restructuredtext.png b/assets/icons/restructuredtext.png
deleted file mode 100755
index cb1c9a31..00000000
Binary files a/assets/icons/restructuredtext.png and /dev/null differ
diff --git a/assets/icons/ruby.png b/assets/icons/ruby.png
deleted file mode 100644
index e606c5b9..00000000
Binary files a/assets/icons/ruby.png and /dev/null differ
diff --git a/assets/icons/rust.png b/assets/icons/rust.png
deleted file mode 100644
index 74d40d80..00000000
Binary files a/assets/icons/rust.png and /dev/null differ
diff --git a/assets/icons/scala.png b/assets/icons/scala.png
deleted file mode 100644
index ad94863a..00000000
Binary files a/assets/icons/scala.png and /dev/null differ
diff --git a/assets/icons/scss.png b/assets/icons/scss.png
deleted file mode 100644
index 4d5d2581..00000000
Binary files a/assets/icons/scss.png and /dev/null differ
diff --git a/assets/icons/shell.png b/assets/icons/shell.png
deleted file mode 100644
index d830f052..00000000
Binary files a/assets/icons/shell.png and /dev/null differ
diff --git a/assets/icons/skript.png b/assets/icons/skript.png
deleted file mode 100644
index 819f4cfc..00000000
Binary files a/assets/icons/skript.png and /dev/null differ
diff --git a/assets/icons/solidity.png b/assets/icons/solidity.png
deleted file mode 100644
index d743cba9..00000000
Binary files a/assets/icons/solidity.png and /dev/null differ
diff --git a/assets/icons/sourcepawn.png b/assets/icons/sourcepawn.png
deleted file mode 100644
index af59388f..00000000
Binary files a/assets/icons/sourcepawn.png and /dev/null differ
diff --git a/assets/icons/sqf.png b/assets/icons/sqf.png
deleted file mode 100644
index dc7102c6..00000000
Binary files a/assets/icons/sqf.png and /dev/null differ
diff --git a/assets/icons/sql.png b/assets/icons/sql.png
deleted file mode 100644
index ebd6a4fa..00000000
Binary files a/assets/icons/sql.png and /dev/null differ
diff --git a/assets/icons/squirrel.png b/assets/icons/squirrel.png
deleted file mode 100644
index 38bf1249..00000000
Binary files a/assets/icons/squirrel.png and /dev/null differ
diff --git a/assets/icons/stylus.png b/assets/icons/stylus.png
deleted file mode 100644
index 538c8799..00000000
Binary files a/assets/icons/stylus.png and /dev/null differ
diff --git a/assets/icons/svelte.png b/assets/icons/svelte.png
deleted file mode 100644
index 8e437fff..00000000
Binary files a/assets/icons/svelte.png and /dev/null differ
diff --git a/assets/icons/svg.png b/assets/icons/svg.png
deleted file mode 100644
index f41e01f8..00000000
Binary files a/assets/icons/svg.png and /dev/null differ
diff --git a/assets/icons/swift.png b/assets/icons/swift.png
deleted file mode 100644
index afa46e7d..00000000
Binary files a/assets/icons/swift.png and /dev/null differ
diff --git a/assets/icons/systemverilog.png b/assets/icons/systemverilog.png
deleted file mode 100644
index 22307ee6..00000000
Binary files a/assets/icons/systemverilog.png and /dev/null differ
diff --git a/assets/icons/tailwind.png b/assets/icons/tailwind.png
deleted file mode 100644
index 750bba91..00000000
Binary files a/assets/icons/tailwind.png and /dev/null differ
diff --git a/assets/icons/templ.png b/assets/icons/templ.png
deleted file mode 100644
index 0da9c06a..00000000
Binary files a/assets/icons/templ.png and /dev/null differ
diff --git a/assets/icons/terraform.png b/assets/icons/terraform.png
deleted file mode 100644
index b1690733..00000000
Binary files a/assets/icons/terraform.png and /dev/null differ
diff --git a/assets/icons/tex.png b/assets/icons/tex.png
deleted file mode 100644
index 7771a0ae..00000000
Binary files a/assets/icons/tex.png and /dev/null differ
diff --git a/assets/icons/text.png b/assets/icons/text.png
deleted file mode 100644
index 0195ea82..00000000
Binary files a/assets/icons/text.png and /dev/null differ
diff --git a/assets/icons/toml.png b/assets/icons/toml.png
deleted file mode 100644
index 0285f482..00000000
Binary files a/assets/icons/toml.png and /dev/null differ
diff --git a/assets/icons/travis.png b/assets/icons/travis.png
deleted file mode 100644
index 03b70bf4..00000000
Binary files a/assets/icons/travis.png and /dev/null differ
diff --git a/assets/icons/ts.png b/assets/icons/ts.png
deleted file mode 100644
index 6e486e48..00000000
Binary files a/assets/icons/ts.png and /dev/null differ
diff --git a/assets/icons/tsmap.png b/assets/icons/tsmap.png
deleted file mode 100644
index 790bff0a..00000000
Binary files a/assets/icons/tsmap.png and /dev/null differ
diff --git a/assets/icons/tsx.png b/assets/icons/tsx.png
deleted file mode 100644
index c5fa71f2..00000000
Binary files a/assets/icons/tsx.png and /dev/null differ
diff --git a/assets/icons/turbo.png b/assets/icons/turbo.png
deleted file mode 100644
index b7aa7ef3..00000000
Binary files a/assets/icons/turbo.png and /dev/null differ
diff --git a/assets/icons/twig.png b/assets/icons/twig.png
deleted file mode 100644
index 78d8d0b0..00000000
Binary files a/assets/icons/twig.png and /dev/null differ
diff --git a/assets/icons/typescript-def.png b/assets/icons/typescript-def.png
deleted file mode 100644
index 12dfc102..00000000
Binary files a/assets/icons/typescript-def.png and /dev/null differ
diff --git a/assets/icons/typst.png b/assets/icons/typst.png
deleted file mode 100755
index 5cb2377a..00000000
Binary files a/assets/icons/typst.png and /dev/null differ
diff --git a/assets/icons/umm.png b/assets/icons/umm.png
deleted file mode 100644
index 7c5017eb..00000000
Binary files a/assets/icons/umm.png and /dev/null differ
diff --git a/assets/icons/v.png b/assets/icons/v.png
deleted file mode 100644
index 181ad100..00000000
Binary files a/assets/icons/v.png and /dev/null differ
diff --git a/assets/icons/vala.png b/assets/icons/vala.png
deleted file mode 100644
index e6305707..00000000
Binary files a/assets/icons/vala.png and /dev/null differ
diff --git a/assets/icons/vb.png b/assets/icons/vb.png
deleted file mode 100644
index b86e89b8..00000000
Binary files a/assets/icons/vb.png and /dev/null differ
diff --git a/assets/icons/vercel.png b/assets/icons/vercel.png
deleted file mode 100644
index f29f865a..00000000
Binary files a/assets/icons/vercel.png and /dev/null differ
diff --git a/assets/icons/verse.png b/assets/icons/verse.png
deleted file mode 100644
index c5c5b50f..00000000
Binary files a/assets/icons/verse.png and /dev/null differ
diff --git a/assets/icons/vhdl.png b/assets/icons/vhdl.png
deleted file mode 100644
index 1184934b..00000000
Binary files a/assets/icons/vhdl.png and /dev/null differ
diff --git a/assets/icons/viteconfig.png b/assets/icons/viteconfig.png
deleted file mode 100644
index 1bb2948a..00000000
Binary files a/assets/icons/viteconfig.png and /dev/null differ
diff --git a/assets/icons/vitestconfig.png b/assets/icons/vitestconfig.png
deleted file mode 100644
index 7862ab0e..00000000
Binary files a/assets/icons/vitestconfig.png and /dev/null differ
diff --git a/assets/icons/vscode-insiders.png b/assets/icons/vscode-insiders.png
deleted file mode 100644
index db002c6d..00000000
Binary files a/assets/icons/vscode-insiders.png and /dev/null differ
diff --git a/assets/icons/vscode.png b/assets/icons/vscode.png
deleted file mode 100644
index 3b21d289..00000000
Binary files a/assets/icons/vscode.png and /dev/null differ
diff --git a/assets/icons/vscodeignore.png b/assets/icons/vscodeignore.png
deleted file mode 100644
index a8219158..00000000
Binary files a/assets/icons/vscodeignore.png and /dev/null differ
diff --git a/assets/icons/vscodium-insiders.png b/assets/icons/vscodium-insiders.png
deleted file mode 100644
index c45f867a..00000000
Binary files a/assets/icons/vscodium-insiders.png and /dev/null differ
diff --git a/assets/icons/vscodium.png b/assets/icons/vscodium.png
deleted file mode 100644
index c9c9585c..00000000
Binary files a/assets/icons/vscodium.png and /dev/null differ
diff --git a/assets/icons/vue.png b/assets/icons/vue.png
deleted file mode 100644
index ee5e9d6e..00000000
Binary files a/assets/icons/vue.png and /dev/null differ
diff --git a/assets/icons/vueconfig.png b/assets/icons/vueconfig.png
deleted file mode 100644
index 432fb32e..00000000
Binary files a/assets/icons/vueconfig.png and /dev/null differ
diff --git a/assets/icons/wasm.png b/assets/icons/wasm.png
deleted file mode 100644
index 16d51149..00000000
Binary files a/assets/icons/wasm.png and /dev/null differ
diff --git a/assets/icons/webpack.png b/assets/icons/webpack.png
deleted file mode 100644
index 7f3bcd12..00000000
Binary files a/assets/icons/webpack.png and /dev/null differ
diff --git a/assets/icons/xaml.png b/assets/icons/xaml.png
deleted file mode 100644
index 12b6edfa..00000000
Binary files a/assets/icons/xaml.png and /dev/null differ
diff --git a/assets/icons/xml.png b/assets/icons/xml.png
deleted file mode 100644
index 62c99048..00000000
Binary files a/assets/icons/xml.png and /dev/null differ
diff --git a/assets/icons/yaml.png b/assets/icons/yaml.png
deleted file mode 100644
index 92dff165..00000000
Binary files a/assets/icons/yaml.png and /dev/null differ
diff --git a/assets/icons/yarn.png b/assets/icons/yarn.png
deleted file mode 100644
index 325c69cc..00000000
Binary files a/assets/icons/yarn.png and /dev/null differ
diff --git a/assets/icons/yummacss.png b/assets/icons/yummacss.png
deleted file mode 100644
index c0311b20..00000000
Binary files a/assets/icons/yummacss.png and /dev/null differ
diff --git a/assets/icons/zenscript.png b/assets/icons/zenscript.png
deleted file mode 100644
index 5eaee426..00000000
Binary files a/assets/icons/zenscript.png and /dev/null differ
diff --git a/assets/icons/zig.png b/assets/icons/zig.png
deleted file mode 100644
index cce64ff4..00000000
Binary files a/assets/icons/zig.png and /dev/null differ
diff --git a/assets/icons/zura.png b/assets/icons/zura.png
deleted file mode 100644
index fbdb8aaf..00000000
Binary files a/assets/icons/zura.png and /dev/null differ
diff --git a/package.json b/package.json
index 07d98b38..cd17c4f9 100644
--- a/package.json
+++ b/package.json
@@ -1,9 +1,8 @@
{
"name": "vscord",
- "displayName": "Discord Rich Presence",
- "version": "5.3.7",
+ "displayName": "VSCord",
"description": "Highly customizable Discord Rich Presence extension for Visual Studio Code",
- "main": "dist/extension.cjs",
+ "version": "6.0.0",
"repository": "github:LeonardSSH/vscord",
"publisher": "LeonardSSH",
"contributors": [
@@ -24,1027 +23,62 @@
"rpc"
],
"categories": [
- "Visualization",
"Other"
],
- "extensionKind": [
- "ui",
- "workspace"
- ],
- "galleryBanner": {
- "color": "#5865F2",
- "theme": "dark"
- },
"activationEvents": [
"onStartupFinished"
],
+ "main": "./dist/index.js",
"scripts": {
- "vscode:prepublish": "pnpm tsdown",
- "package": "pnpm vsce package --no-yarn",
- "watch": "pnpm tsdown --watch",
- "lint": "pnpm prettier . --check",
- "lint:fix": "pnpm prettier . --write"
+ "vscode:prepublish": "pnpm run package",
+ "compile": "pnpm run check-types && pnpm dlx rolldown -c rolldown.config.ts",
+ "watch": "npm-run-all -p watch:*",
+ "watch:rolldown": "pnpm dlx rolldown -c rolldown.config.ts --watch",
+ "watch:tsc": "tsc --noEmit --watch --project tsconfig.json",
+ "package": "pnpm run check-types && pnpm dlx rolldown -c rolldown.config.ts --production",
+ "check-types": "tsc --noEmit"
},
- "devDependencies": {
- "@types/node": "~22.15.35",
- "@types/vscode": "1.52.0",
- "@vscode/vsce": "^3.7.0",
+ "dependencies": {
"@xhayper/discord-rpc": "^1.3.0",
"discord-api-types": "^0.38.34",
- "filesize": "^11.0.13",
- "git-url-parse": "^16.1.0",
- "tsdown": "^0.16.6",
- "typescript": "^5.9.3"
+ "filesize": "^11.0.13"
},
- "engines": {
- "vscode": "^1.52.0"
+ "devDependencies": {
+ "@types/node": "~22.19.1",
+ "@types/vscode": "^1.52.0",
+ "npm-run-all": "^4.1.5",
+ "rolldown": "1.0.0-beta.51",
+ "typescript": "^5.9.3"
},
"contributes": {
"commands": [
{
- "command": "vscord.enable",
+ "category": "VSCord",
"title": "Enable Discord Presence",
- "category": "VSCord"
+ "command": "vscord.enable"
},
{
- "command": "vscord.disable",
+ "category": "VSCord",
"title": "Disable Discord Presence",
- "category": "VSCord"
- },
- {
- "command": "vscord.workspace.enable",
- "title": "Enable Discord Presence in the current workspace",
- "category": "VSCord"
- },
- {
- "command": "vscord.workspace.disable",
- "title": "Disable Discord Presence in the current workspace",
- "category": "VSCord"
- },
- {
- "command": "vscord.disconnect",
- "title": "Disconnect from Discord Gateway",
- "category": "VSCord"
- },
- {
- "command": "vscord.reconnect",
- "title": "Reconnect to Discord Gateway",
- "category": "VSCord"
- },
- {
- "command": "vscord.enablePrivacyMode",
- "title": "Enable Privacy Mode",
- "category": "VSCord"
- },
- {
- "command": "vscord.disablePrivacyMode",
- "title": "Disable Privacy Mode",
- "category": "VSCord"
- },
- {
- "command": "vscord.startIdling",
- "title": "Start Idle",
- "category": "VSCord"
- },
- {
- "command": "vscord.stopIdling",
- "title": "Stop Idle",
- "category": "VSCord"
+ "command": "vscord.disable"
}
],
"configuration": [
{
"title": "VSCord",
- "properties": {
- "vscord.enable": {
- "type": "boolean",
- "default": "true",
- "order": 1,
- "description": "Enable the extension"
- },
- "vscord.app.name": {
- "type": "string",
- "enum": [
- "Code",
- "Visual Studio Code",
- "VSCodium",
- "Antigravity",
- "Cursor",
- "Custom"
- ],
- "default": "Code",
- "description": "Choose the name you want the application to use.\nChoosing \"Custom\" will make it so it use the \"rpc.id\" as application id",
- "order": 2
- },
- "vscord.app.id": {
- "type": "string",
- "default": "782685898163617802",
- "description": "Application id that will be used when `appName` is \"Custom\" or when `appName` is invalid",
- "order": 3
- },
- "vscord.app.privacyMode.enable": {
- "type": "boolean",
- "default": false,
- "description": "Should we hide the github repository, the file name and the workspace name?",
- "order": 4
- },
- "vscord.app.whitelistEnabled": {
- "type": "boolean",
- "default": false,
- "description": "Is the whitelist enabled?",
- "order": 5
- },
- "vscord.app.whitelistIsBlacklist": {
- "type": "boolean",
- "default": false,
- "description": "Switches the whitelist to a blacklist.",
- "order": 6
- },
- "vscord.app.whitelist": {
- "type": "array",
- "default": [],
- "uniqueItems": true,
- "items": {
- "type": "string"
- },
- "description": "List of discord user ids that will be able to use the extension.",
- "order": 7
- }
- }
- },
- {
- "title": "Status",
- "type": "object",
- "properties": {
- "vscord.status.showElapsedTime": {
- "type": "boolean",
- "default": true,
- "description": "Should elapsed time be shown?"
- },
- "vscord.status.resetElapsedTimePerFile": {
- "type": "boolean",
- "default": false,
- "description": "Should we reset the elapsed time after switching file?"
- },
- "vscord.status.problems.enabled": {
- "type": "boolean",
- "default": true,
- "description": "Should we count the problems?"
- },
- "vscord.status.problems.text": {
- "type": "string",
- "default": "- {problems_count} {problems_pluralize} found",
- "description": "This text will be shown when there is a problem."
- },
- "vscord.status.problems.countedSeverities": {
- "type": "array",
- "uniqueItems": true,
- "items": {
- "type": "string",
- "enum": [
- "error",
- "warning",
- "info",
- "hint"
- ]
- },
- "default": [
- "error",
- "warning"
- ],
- "description": "List of problem level to count for `problems_count`."
- },
- "vscord.status.idle.check": {
- "type": "boolean",
- "default": true,
- "description": "Should we check when you are idling?",
- "order": 1
- },
- "vscord.status.idle.enabled": {
- "type": "boolean",
- "default": true,
- "description": "Should we enable the idle status? \nIf disabled, the extension will only show a plain card with VS Code logo when idling.",
- "order": 2
- },
- "vscord.status.idle.disconnectOnIdle": {
- "type": "boolean",
- "default": false,
- "description": "Should going idle disconnect you from Discord gateway? \nIf enabled, VS Code activity card will disappear from Discord at all when idling.",
- "order": 3
- },
- "vscord.status.idle.resetElapsedTime": {
- "type": "boolean",
- "default": false,
- "description": "Should going idle reset the elapsed time on the last active file? Only applies if \"Disconnect on Idle\" is enabled.",
- "order": 4
- },
- "vscord.status.idle.timeout": {
- "type": "number",
- "default": 300,
- "description": "Time in seconds before the user is considered idle.",
- "order": 5
- }
- }
- },
- {
- "title": "Ignore",
- "type": "object",
- "properties": {
- "vscord.ignore.workspaces": {
- "type": "array",
- "uniqueItems": true,
- "items": {
- "type": "string"
- },
- "default": [],
- "description": "A list of workspace (name / path) to ignore."
- },
- "vscord.ignore.workspacesText": {
- "type": [
- "string",
- "object"
- ],
- "description": "The text / object to show in the status when current workspace is ignored, when using the object, key is workspace name and value is the text."
- },
- "vscord.ignore.repositories": {
- "type": "array",
- "uniqueItems": true,
- "items": {
- "type": "string"
- },
- "default": [],
- "description": "A list of repository name to ignore."
- },
- "vscord.ignore.organizations": {
- "type": "array",
- "uniqueItems": true,
- "items": {
- "type": "string"
- },
- "default": [],
- "description": "A list of git organizations to ignore."
- },
- "vscord.ignore.gitHosts": {
- "type": "array",
- "uniqueItems": true,
- "items": {
- "type": "string"
- },
- "default": [],
- "description": "A list of git host to ignore."
- }
- }
- },
- {
- "title": "Details",
- "type": "object",
- "properties": {
- "vscord.status.details.enabled": {
- "type": "boolean",
- "default": true,
- "description": "Should details be shown?"
- },
- "vscord.status.details.idle.enabled": {
- "type": "boolean",
- "default": true,
- "description": "Should details be shown when idling?"
- },
- "vscord.status.details.text.idle": {
- "type": "string",
- "default": "Idling",
- "description": "The text to show when idling."
- },
- "vscord.status.details.text.editing": {
- "type": "string",
- "default": "In {workspace} {problems}",
- "description": "The text to show when editing a file."
- },
- "vscord.status.details.text.debugging": {
- "type": "string",
- "default": "Debugging {file_name}{file_extension}",
- "description": "The text to show when debugging."
- },
- "vscord.status.details.text.viewing": {
- "type": "string",
- "default": "In {workspace} {problems}",
- "description": "The text to show when viewing a file."
- },
- "vscord.status.details.text.notInFile": {
- "type": "string",
- "default": "Not in a file!",
- "description": "The text to show when you are not in a file."
- },
- "vscord.status.details.text.noWorkSpaceText": {
- "type": "string",
- "default": "no workspace",
- "description": "The text to show when you are not in a workspace and there is no workspace text."
- }
- }
- },
- {
- "title": "State",
- "type": "object",
- "properties": {
- "vscord.status.state.enabled": {
- "type": "boolean",
- "default": true,
- "description": "Should state be shown?"
- },
- "vscord.status.state.debugging.enabled": {
- "type": "boolean",
- "default": true,
- "description": "Should state be shown when debugging? If disabled, it will be shown when editing/viewing a file."
- },
- "vscord.status.state.idle.enabled": {
- "type": "boolean",
- "default": true,
- "description": "Should state be shown when idling?"
- },
- "vscord.status.state.text.idle": {
- "type": "string",
- "default": "",
- "description": "The text to show when idling."
- },
- "vscord.status.state.text.editing": {
- "type": "string",
- "default": "Working on {file_name}{file_extension}:{current_line}:{current_column}",
- "description": "The text to show when editing a file."
- },
- "vscord.status.state.text.debugging": {
- "type": "string",
- "default": "Debugging: {workspace}",
- "description": "The text to show when debugging."
- },
- "vscord.status.state.text.viewing": {
- "type": "string",
- "default": "Viewing {file_name}{file_extension}",
- "description": "The text to show when viewing a file."
- },
- "vscord.status.state.text.notInFile": {
- "type": "string",
- "default": "",
- "description": "The text to show when you are not in a file."
- },
- "vscord.status.state.text.noWorkspaceFound": {
- "type": "string",
- "default": "No workspace.",
- "description": "The text to show when no workspace is found."
- }
- }
- },
- {
- "title": "Image",
- "type": "object",
- "properties": {
- "vscord.status.image.large.idle.key": {
- "type": "string",
- "default": "https://raw.githubusercontent.com/LeonardSSH/vscord/main/assets/icons/idle-{app_id}.png",
- "description": "The image url to use when idling"
- },
- "vscord.status.image.large.idle.text": {
- "type": "string",
- "default": "Idling",
- "description": "The large text to show when idling."
- },
- "vscord.status.image.large.viewing.key": {
- "type": "string",
- "default": "https://raw.githubusercontent.com/LeonardSSH/vscord/main/assets/icons/{lang}.png",
- "description": "The image url to use when viewing a file."
- },
- "vscord.status.image.large.viewing.text": {
- "type": "string",
- "default": "Viewing a {LANG} file",
- "description": "The large text to show when viewing a file."
- },
- "vscord.status.image.large.editing.key": {
- "type": "string",
- "default": "https://raw.githubusercontent.com/LeonardSSH/vscord/main/assets/icons/{lang}.png",
- "description": "The image url to use when editing a file."
- },
- "vscord.status.image.large.editing.text": {
- "type": "string",
- "default": "Editing a {LANG} file",
- "description": "The large text to show when editing a file."
- },
- "vscord.status.image.large.debugging.key": {
- "type": "string",
- "default": "https://raw.githubusercontent.com/LeonardSSH/vscord/main/assets/icons/debugging.png",
- "description": "The image url to use when debugging."
- },
- "vscord.status.image.large.debugging.text": {
- "type": "string",
- "default": "Debugging a {LANG} file",
- "description": "The large text to show when debugging"
- },
- "vscord.status.image.large.notInFile.key": {
- "type": "string",
- "default": "https://raw.githubusercontent.com/LeonardSSH/vscord/main/assets/icons/idle-{app_id}.png",
- "description": "The image url to use when you are not in a file."
- },
- "vscord.status.image.large.notInFile.text": {
- "type": "string",
- "default": "",
- "description": "The large text to show when you are not in a file."
- },
- "vscord.status.image.small.idle.key": {
- "type": "string",
- "default": "https://raw.githubusercontent.com/LeonardSSH/vscord/main/assets/icons/idle.png",
- "description": "The image url to use when idling."
- },
- "vscord.status.image.small.idle.text": {
- "type": "string",
- "default": "zZz",
- "description": "The small text to show when idling."
- },
- "vscord.status.image.small.viewing.key": {
- "type": "string",
- "default": "https://raw.githubusercontent.com/LeonardSSH/vscord/main/assets/icons/{app_id}.png",
- "description": "The image url to use when viewing a file."
- },
- "vscord.status.image.small.viewing.text": {
- "type": "string",
- "default": "{app_name}",
- "description": "The small text to show when viewing a file."
- },
- "vscord.status.image.small.editing.key": {
- "type": "string",
- "default": "https://raw.githubusercontent.com/LeonardSSH/vscord/main/assets/icons/{app_id}.png",
- "description": "The image url to use when editing a file."
- },
- "vscord.status.image.small.editing.text": {
- "type": "string",
- "default": "{app_name}",
- "description": "The small text to show when editing a file."
- },
- "vscord.status.image.small.debugging.key": {
- "type": "string",
- "default": "https://raw.githubusercontent.com/LeonardSSH/vscord/main/assets/icons/debugging.png",
- "description": "The image url to use when debugging."
- },
- "vscord.status.image.small.debugging.text": {
- "type": "string",
- "default": "{app_name}",
- "description": "The small text to show when debugging."
- },
- "vscord.status.image.small.notInFile.key": {
- "type": "string",
- "default": "https://raw.githubusercontent.com/LeonardSSH/vscord/main/assets/icons/idle.png",
- "description": "The image url to use when you are not in a file."
- },
- "vscord.status.image.small.notInFile.text": {
- "type": "string",
- "default": "Snoozin...",
- "description": "The small text to show when you are not in a file."
- }
- }
- },
- {
- "title": "Buttons",
- "properties": {
- "vscord.status.buttons.button1.enabled": {
- "type": "boolean",
- "default": true
- },
- "vscord.status.buttons.button1.active.enabled": {
- "type": "boolean",
- "default": false
- },
- "vscord.status.buttons.button1.active.label": {
- "type": "string",
- "default": "Active Label Button 1",
- "minLength": 1
- },
- "vscord.status.buttons.button1.active.url": {
- "type": "string",
- "default": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
- "minLength": 1
- },
- "vscord.status.buttons.button1.inactive.enabled": {
- "type": "boolean",
- "default": false
- },
- "vscord.status.buttons.button1.inactive.label": {
- "type": "string",
- "default": "Inactive Label Button 1",
- "minLength": 1
- },
- "vscord.status.buttons.button1.inactive.url": {
- "type": "string",
- "default": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
- "minLength": 1
- },
- "vscord.status.buttons.button1.idle.enabled": {
- "type": "boolean",
- "default": false
- },
- "vscord.status.buttons.button1.idle.label": {
- "type": "string",
- "default": "Idle Label Button 1",
- "minLength": 1
- },
- "vscord.status.buttons.button1.idle.url": {
- "type": "string",
- "default": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
- "minLength": 1
- },
- "vscord.status.buttons.button1.git.active.enabled": {
- "type": "boolean",
- "default": true
- },
- "vscord.status.buttons.button1.git.active.label": {
- "type": "string",
- "default": "View Repository",
- "minLength": 1
- },
- "vscord.status.buttons.button1.git.active.url": {
- "type": "string",
- "default": "{git_url}",
- "minLength": 1
- },
- "vscord.status.buttons.button1.git.inactive.enabled": {
- "type": "boolean",
- "default": true
- },
- "vscord.status.buttons.button1.git.inactive.label": {
- "type": "string",
- "default": "View Repository",
- "minLength": 1
- },
- "vscord.status.buttons.button1.git.inactive.url": {
- "type": "string",
- "default": "{git_url}",
- "minLength": 1
- },
- "vscord.status.buttons.button1.git.idle.enabled": {
- "type": "boolean",
- "default": true,
- "minLength": 1
- },
- "vscord.status.buttons.button1.git.idle.label": {
- "type": "string",
- "default": "View Repository",
- "minLength": 1
- },
- "vscord.status.buttons.button1.git.idle.url": {
- "type": "string",
- "default": "{git_url}",
- "minLength": 1
- },
- "vscord.status.buttons.button2.enabled": {
- "type": "boolean",
- "default": false
- },
- "vscord.status.buttons.button2.active.enabled": {
- "type": "boolean",
- "default": false
- },
- "vscord.status.buttons.button2.active.label": {
- "type": "string",
- "default": "Active Label Button 2",
- "minLength": 1
- },
- "vscord.status.buttons.button2.active.url": {
- "type": "string",
- "default": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
- "minLength": 1
- },
- "vscord.status.buttons.button2.inactive.enabled": {
- "type": "boolean",
- "default": false
- },
- "vscord.status.buttons.button2.inactive.label": {
- "type": "string",
- "default": "Inactive Label Button 2",
- "minLength": 1
- },
- "vscord.status.buttons.button2.inactive.url": {
- "type": "string",
- "default": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
- "minLength": 1
- },
- "vscord.status.buttons.button2.idle.enabled": {
- "type": "boolean",
- "default": false
- },
- "vscord.status.buttons.button2.idle.label": {
- "type": "string",
- "default": "Idle Label Button 2",
- "minLength": 1
- },
- "vscord.status.buttons.button2.idle.url": {
- "type": "string",
- "default": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
- "minLength": 1
- },
- "vscord.status.buttons.button2.git.active.enabled": {
- "type": "boolean",
- "default": false
- },
- "vscord.status.buttons.button2.git.active.label": {
- "type": "string",
- "default": "Git Active Label Button 2",
- "minLength": 1
- },
- "vscord.status.buttons.button2.git.active.url": {
- "type": "string",
- "default": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
- "minLength": 1
- },
- "vscord.status.buttons.button2.git.inactive.enabled": {
- "type": "boolean",
- "default": false
- },
- "vscord.status.buttons.button2.git.inactive.label": {
- "type": "string",
- "default": "Git Inactive Label Button 2",
- "minLength": 1
- },
- "vscord.status.buttons.button2.git.inactive.url": {
- "type": "string",
- "default": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
- "minLength": 1
- },
- "vscord.status.buttons.button2.git.idle.enabled": {
- "type": "boolean",
- "default": false
- },
- "vscord.status.buttons.button2.git.idle.label": {
- "type": "string",
- "default": "Git Idle Label Button 2",
- "minLength": 1
- },
- "vscord.status.buttons.button2.git.idle.url": {
- "type": "string",
- "default": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
- "minLength": 1
- }
- }
- },
- {
- "title": "Misc",
- "type": "object",
- "properties": {
- "vscord.file.size.round": {
- "type": "number",
- "default": 2,
- "description": "The number of decimal places to round the file size to."
- },
- "vscord.file.size.spacer": {
- "type": "string",
- "default": " ",
- "description": "Spacer between the number and the unit."
- },
- "vscord.behaviour.additionalFileMapping": {
- "type": "object",
- "default": {},
- "additionalProperties": {
- "type": "string"
- },
- "description": "Additional regex to check for language, key is regex and value is the language."
- },
- "vscord.behaviour.suppressNotifications": {
- "type": "boolean",
- "default": false,
- "description": "Suppresses all notifications from the extension."
- },
- "vscord.behaviour.suppressRpcCouldNotConnect": {
- "type": "boolean",
- "default": false,
- "description": "Suppresses \"RPC_COULD_NOT_CONNECT\" notification."
- },
- "vscord.behaviour.statusBarAlignment": {
- "type": "string",
- "enum": [
- "Right",
- "Left"
- ],
- "default": "Left",
- "description": "Changing the alignment of the status bar."
- },
- "vscord.file.size.humanReadable": {
- "type": "boolean",
- "default": true,
- "description": "If true, the file size will be displayed in a human readable format (e.g. 1.2 MB). If false, the file size will be displayed in bytes."
- },
- "vscord.file.size.standard": {
- "type": "string",
- "enum": [
- "iec",
- "jedec"
- ],
- "default": "iec",
- "description": "The unit standard to use when displaying the file size."
- }
- }
- },
- {
- "title": "Advanced",
- "type": "object",
- "properties": {
- "vscord.behaviour.debug": {
- "type": "boolean",
- "default": false,
- "description": "Enable debug mode"
- }
- }
- },
- {
- "title": "@Deprecated",
- "type": "object",
"properties": {
"vscord.enabled": {
"type": "boolean",
"default": true,
- "description": "Is the extension enabled?",
- "order": 0,
- "markdownDeprecationMessage": "Use the [built-in setting](https://code.visualstudio.com/docs/editor/extension-marketplace#_disable-an-extension)"
- },
- "rpc.id": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.app.id#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.app.id instead."
- },
- "rpc.appName": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.app.name#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.app.name instead."
- },
- "rpc.enabled": {
- "type": "boolean",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.enabled#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.enabled instead."
- },
- "rpc.detailsEditing": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.details.text.editing#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.details.text.editing instead."
- },
- "rpc.detailsIdling": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.details.text.idle#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.details.text.idle instead."
- },
- "rpc.detailsDebugging": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.details.text.debugging#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.details.text.debugging instead."
- },
- "rpc.detailsViewing": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.details.text.viewing#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.details.text.viewing instead."
- },
- "rpc.lowerDetailsEditing": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.state.text.editing#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.state.text.editing instead."
- },
- "rpc.lowerDetailsIdling": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.state.text.idle#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.state.text.idle instead."
- },
- "rpc.lowerDetailsDebugging": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.state.text.debugging#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.state.text.debugging instead."
- },
- "rpc.lowerDetailsViewing": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.state.text.viewing#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.state.text.viewing instead."
- },
- "rpc.lowerDetailsNoWorkspaceFound": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.state.text.noWorkspaceFound#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.state.text.noWorkspaceFound instead."
- },
- "rpc.baseImageLink": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.image#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.image instead."
- },
- "rpc.largeImage": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.image#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.image instead."
- },
- "rpc.largeImageIdling": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.image.small.idle.key#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.image.small.idle.key instead."
- },
- "rpc.smallImage": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.image.small#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.image.small instead."
- },
- "rpc.removeElapsedTime": {
- "type": "boolean",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.showElapsedTime#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.showElapsedTime instead."
- },
- "rpc.removeDetails": {
- "type": "boolean",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.details.enabled#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.details.enabled instead."
- },
- "rpc.removeLowerDetails": {
- "type": "boolean",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.details#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.details instead."
- },
- "rpc.removeLowerDetailsIdling": {
- "type": "boolean",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.details.text.idle#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.details.text.idle instead."
- },
- "rpc.showProblems": {
- "type": "boolean",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.problems.enabled#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.problems.enabled instead."
- },
- "rpc.problemsText": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.problems.text#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.problems.text instead."
- },
- "rpc.ignoreWorkspaces": {
- "type": "array",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.ignore.workspaces#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.ignore.workspaces instead."
- },
- "rpc.ignoreWorkspacesText": {
- "type": [
- "string",
- "object"
- ],
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.ignore.workspacesText#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.ignore.workspacesText instead."
- },
- "rpc.checkIdle": {
- "type": "boolean",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.idle.enabled#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.idle.enabled instead."
- },
- "rpc.disconnectOnIdle": {
- "type": "boolean",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.idle.disconnectOnIdle#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.idle.disconnectOnIdle instead."
- },
- "rpc.resetElapsedTimeAfterIdle": {
- "type": "boolean",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.idle.resetElapsedTime#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.idle.resetElapsedTime instead."
- },
- "rpc.idleTimeout": {
- "type": "number",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.idle.timeout#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.idle.timeout instead."
- },
- "rpc.idleText": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.image.small.idle.text#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.image.small.idle.text instead."
- },
- "rpc.buttonEnabled": {
- "type": "boolean",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.buttons.button1.enabled#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.buttons.button1.enabled instead."
- },
- "rpc.buttonActiveLabel": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.buttons.button1.active.label#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.buttons.button1.active.label instead."
- },
- "vscord.status.button.active.enabled": {
- "type": "boolean",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.buttons.button1.git.enabled#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.buttons.button1.git.label instead."
- },
- "vscord.status.button.active.label": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.buttons.button1.git.label#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.buttons.button1.git.label instead."
- },
- "vscord.status.button.active.url": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.buttons.button1.git.url#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.buttons.button1.git.url instead."
- },
- "vscord.status.button.idle.enabled": {
- "type": "boolean",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.buttons.button1.idle.enabled#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.buttons.button1.idle.label instead."
- },
- "vscord.status.button.idle.label": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.buttons.button1.idle.label#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.buttons.button1.idle.label instead."
- },
- "vscord.status.button.idle.url": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.buttons.button1.idle.url#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.buttons.button1.idle.url instead."
- },
- "vscord.status.button.inactive.enabled": {
- "type": "boolean",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.buttons.button1.inactive.enabled#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.buttons.button1.inactive.label instead."
- },
- "vscord.status.button.inactive.label": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.buttons.button1.inactive.label#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.buttons.button1.inactive.label instead."
- },
- "vscord.status.button.inactive.url": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.buttons.button1.inactive.url#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.buttons.button1.inactive.url instead."
- },
- "rpc.buttonActiveUrl": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.buttons.button1.active.url#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.buttons.button1.active.url instead."
- },
- "rpc.buttonInactiveLabel": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.buttons.button1.inactive.label#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.buttons.button1.inactive.label instead."
- },
- "rpc.buttonInactiveUrl": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.status.buttons.button1.inactive.url#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.status.buttons.button1.inactive.url instead."
- },
- "rpc.ignoreRepositories": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.ignore.repositories#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.ignore.repositories instead."
- },
- "rpc.ignoreOrganizations": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.ignore.organizations#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.ignore.organizations instead."
- },
- "rpc.ignoreGitHosts": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.ignore.gitHosts#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.ignore.gitHosts instead."
- },
- "rpc.suppressNotifications": {
- "type": "boolean",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.behaviour.suppressNotifications#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.behaviour.suppressNotifications instead."
- },
- "rpc.prioritizeLanguagesOverExtensions": {
- "type": "boolean",
- "markdownDeprecationMessage": "**Deprecated**",
- "deprecationMessage": "Deprecated"
- },
- "rpc.fileSizeHumanReadable": {
- "type": "boolean",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.behaviour.size.humanReadable#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.behaviour.size.humanReadable instead."
- },
- "rpc.fileSizeSpec": {
- "type": "string",
- "enum": [
- "si",
- "iec",
- "jedec"
- ],
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.file.size.standard#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.file.size.standard instead."
- },
- "rpc.fileSizeFixed": {
- "type": "number",
- "markdownDeprecationMessage": "**Deprecated**",
- "deprecationMessage": "Deprecated"
- },
- "rpc.fileSizeSpacer": {
- "type": "string",
- "markdownDeprecationMessage": "**Deprecated**: Please use `#vscord.file.size.spacer#` instead.",
- "deprecationMessage": "Deprecated: Please use vscord.file.size.spacer instead."
+ "order": 1,
+ "description": "Is the extension enabled?"
}
}
}
]
},
- "capabilities": {
- "virtualWorkspaces": {
- "supported": false,
- "description": "Cannot access local Discord RPC when running in virtual workspace"
- }
+ "engines": {
+ "vscode": "^1.52.0"
},
- "packageManager": "pnpm@10.18.2"
+ "packageManager": "pnpm@10.23.0"
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 4af5025e..fa60b3e7 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,3227 +1,2115 @@
-lockfileVersion: '9.0'
+lockfileVersion: "9.0"
settings:
- autoInstallPeers: true
- excludeLinksFromLockfile: false
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
importers:
-
- .:
- devDependencies:
- '@types/node':
- specifier: ~22.15.35
- version: 22.15.35
- '@types/vscode':
- specifier: 1.52.0
- version: 1.52.0
- '@vscode/vsce':
- specifier: ^3.7.0
- version: 3.7.0
- '@xhayper/discord-rpc':
- specifier: ^1.3.0
- version: 1.3.0
- discord-api-types:
- specifier: ^0.38.34
- version: 0.38.34
- filesize:
- specifier: ^11.0.13
- version: 11.0.13
- git-url-parse:
- specifier: ^16.1.0
- version: 16.1.0
- tsdown:
- specifier: ^0.16.6
- version: 0.16.6(typescript@5.9.3)
- typescript:
- specifier: ^5.9.3
- version: 5.9.3
+ .:
+ dependencies:
+ "@xhayper/discord-rpc":
+ specifier: ^1.3.0
+ version: 1.3.0
+ discord-api-types:
+ specifier: ^0.38.34
+ version: 0.38.34
+ filesize:
+ specifier: ^11.0.13
+ version: 11.0.13
+ devDependencies:
+ "@types/node":
+ specifier: ~22.19.1
+ version: 22.19.1
+ "@types/vscode":
+ specifier: ^1.52.0
+ version: 1.106.1
+ npm-run-all:
+ specifier: ^4.1.5
+ version: 4.1.5
+ rolldown:
+ specifier: 1.0.0-beta.51
+ version: 1.0.0-beta.51
+ typescript:
+ specifier: ^5.9.3
+ version: 5.9.3
packages:
+ "@discordjs/collection@2.1.1":
+ resolution:
+ {
+ integrity: sha512-LiSusze9Tc7qF03sLCujF5iZp7K+vRNEDBZ86FT9aQAv3vxMLihUvKvpsCWiQ2DJq1tVckopKm1rxomgNUc9hg==
+ }
+ engines: { node: ">=18" }
+
+ "@discordjs/rest@2.6.0":
+ resolution:
+ {
+ integrity: sha512-RDYrhmpB7mTvmCKcpj+pc5k7POKszS4E2O9TYc+U+Y4iaCP+r910QdO43qmpOja8LRr1RJ0b3U+CqVsnPqzf4w==
+ }
+ engines: { node: ">=18" }
+
+ "@discordjs/util@1.2.0":
+ resolution:
+ {
+ integrity: sha512-3LKP7F2+atl9vJFhaBjn4nOaSWahZ/yWjOvA4e5pnXkt2qyXRCHLxoBQy81GFtLGCq7K9lPm9R517M1U+/90Qg==
+ }
+ engines: { node: ">=18" }
+
+ "@emnapi/core@1.7.1":
+ resolution:
+ {
+ integrity: sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==
+ }
+
+ "@emnapi/runtime@1.7.1":
+ resolution:
+ {
+ integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==
+ }
+
+ "@emnapi/wasi-threads@1.1.0":
+ resolution:
+ {
+ integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==
+ }
+
+ "@napi-rs/wasm-runtime@1.0.7":
+ resolution:
+ {
+ integrity: sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==
+ }
+
+ "@oxc-project/types@0.98.0":
+ resolution:
+ {
+ integrity: sha512-Vzmd6FsqVuz5HQVcRC/hrx7Ujo3WEVeQP7C2UNP5uy1hUY4SQvMB+93jxkI1KRHz9a/6cni3glPOtvteN+zpsw==
+ }
+
+ "@rolldown/binding-android-arm64@1.0.0-beta.51":
+ resolution:
+ {
+ integrity: sha512-Ctn8FUXKWWQI9pWC61P1yumS9WjQtelNS9riHwV7oCkknPGaAry4o7eFx2KgoLMnI2BgFJYpW7Im8/zX3BuONg==
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [arm64]
+ os: [android]
+
+ "@rolldown/binding-darwin-arm64@1.0.0-beta.51":
+ resolution:
+ {
+ integrity: sha512-EL1aRW2Oq15ShUEkBPsDtLMO8GTqfb/ktM/dFaVzXKQiEE96Ss6nexMgfgQrg8dGnNpndFyffVDb5IdSibsu1g==
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [arm64]
+ os: [darwin]
+
+ "@rolldown/binding-darwin-x64@1.0.0-beta.51":
+ resolution:
+ {
+ integrity: sha512-uGtYKlFen9pMIPvkHPWZVDtmYhMQi5g5Ddsndg1gf3atScKYKYgs5aDP4DhHeTwGXQglhfBG7lEaOIZ4UAIWww==
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [x64]
+ os: [darwin]
+
+ "@rolldown/binding-freebsd-x64@1.0.0-beta.51":
+ resolution:
+ {
+ integrity: sha512-JRoVTQtHYbZj1P07JLiuTuXjiBtIa7ag7/qgKA6CIIXnAcdl4LrOf7nfDuHPJcuRKaP5dzecMgY99itvWfmUFQ==
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [x64]
+ os: [freebsd]
+
+ "@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.51":
+ resolution:
+ {
+ integrity: sha512-BKATVnpPZ0TYBW9XfDwyd4kPGgvf964HiotIwUgpMrFOFYWqpZ+9ONNzMV4UFAYC7Hb5C2qgYQk/qj2OnAd4RQ==
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [arm]
+ os: [linux]
+
+ "@rolldown/binding-linux-arm64-gnu@1.0.0-beta.51":
+ resolution:
+ {
+ integrity: sha512-xLd7da5jkfbVsBCm1buIRdWtuXY8+hU3+6ESXY/Tk5X5DPHaifrUblhYDgmA34dQt6WyNC2kfXGgrduPEvDI6Q==
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [arm64]
+ os: [linux]
+
+ "@rolldown/binding-linux-arm64-musl@1.0.0-beta.51":
+ resolution:
+ {
+ integrity: sha512-EQFXTgHxxTzv3t5EmjUP/DfxzFYx9sMndfLsYaAY4DWF6KsK1fXGYsiupif6qPTViPC9eVmRm78q0pZU/kuIPg==
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [arm64]
+ os: [linux]
+
+ "@rolldown/binding-linux-x64-gnu@1.0.0-beta.51":
+ resolution:
+ {
+ integrity: sha512-p5P6Xpa68w3yFaAdSzIZJbj+AfuDnMDqNSeglBXM7UlJT14Q4zwK+rV+8Mhp9MiUb4XFISZtbI/seBprhkQbiQ==
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [x64]
+ os: [linux]
+
+ "@rolldown/binding-linux-x64-musl@1.0.0-beta.51":
+ resolution:
+ {
+ integrity: sha512-sNVVyLa8HB8wkFipdfz1s6i0YWinwpbMWk5hO5S+XAYH2UH67YzUT13gs6wZTKg2x/3gtgXzYnHyF5wMIqoDAw==
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [x64]
+ os: [linux]
+
+ "@rolldown/binding-openharmony-arm64@1.0.0-beta.51":
+ resolution:
+ {
+ integrity: sha512-e/JMTz9Q8+T3g/deEi8DK44sFWZWGKr9AOCW5e8C8SCVWzAXqYXAG7FXBWBNzWEZK0Rcwo9TQHTQ9Q0gXgdCaA==
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [arm64]
+ os: [openharmony]
+
+ "@rolldown/binding-wasm32-wasi@1.0.0-beta.51":
+ resolution:
+ {
+ integrity: sha512-We3LWqSu6J9s5Y0MK+N7fUiiu37aBGPG3Pc347EoaROuAwkCS2u9xJ5dpIyLW4B49CIbS3KaPmn4kTgPb3EyPw==
+ }
+ engines: { node: ">=14.0.0" }
+ cpu: [wasm32]
+
+ "@rolldown/binding-win32-arm64-msvc@1.0.0-beta.51":
+ resolution:
+ {
+ integrity: sha512-fj56buHRuMM+r/cb6ZYfNjNvO/0xeFybI6cTkTROJatdP4fvmQ1NS8D/Lm10FCSDEOkqIz8hK3TGpbAThbPHsA==
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [arm64]
+ os: [win32]
+
+ "@rolldown/binding-win32-ia32-msvc@1.0.0-beta.51":
+ resolution:
+ {
+ integrity: sha512-fkqEqaeEx8AySXiDm54b/RdINb3C0VovzJA3osMhZsbn6FoD73H0AOIiaVAtGr6x63hefruVKTX8irAm4Jkt2w==
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [ia32]
+ os: [win32]
+
+ "@rolldown/binding-win32-x64-msvc@1.0.0-beta.51":
+ resolution:
+ {
+ integrity: sha512-CWuLG/HMtrVcjKGa0C4GnuxONrku89g0+CsH8nT0SNhOtREXuzwgjIXNJImpE/A/DMf9JF+1Xkrq/YRr+F/rCg==
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [x64]
+ os: [win32]
+
+ "@rolldown/pluginutils@1.0.0-beta.51":
+ resolution:
+ {
+ integrity: sha512-51/8cNXMrqWqX3o8DZidhwz1uYq0BhHDDSfVygAND1Skx5s1TDw3APSSxCMcFFedwgqGcx34gRouwY+m404BBQ==
+ }
+
+ "@sapphire/async-queue@1.5.5":
+ resolution:
+ {
+ integrity: sha512-cvGzxbba6sav2zZkH8GPf2oGk9yYoD5qrNWdu9fRehifgnFZJMV+nuy2nON2roRO4yQQ+v7MK/Pktl/HgfsUXg==
+ }
+ engines: { node: ">=v14.0.0", npm: ">=7.0.0" }
+
+ "@sapphire/snowflake@3.5.5":
+ resolution:
+ {
+ integrity: sha512-xzvBr1Q1c4lCe7i6sRnrofxeO1QTP/LKQ6A6qy0iB4x5yfiSfARMEQEghojzTNALDTcv8En04qYNIco9/K9eZQ==
+ }
+ engines: { node: ">=v14.0.0", npm: ">=7.0.0" }
+
+ "@tybys/wasm-util@0.10.1":
+ resolution:
+ {
+ integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==
+ }
+
+ "@types/node@22.19.1":
+ resolution:
+ {
+ integrity: sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ==
+ }
+
+ "@types/vscode@1.106.1":
+ resolution:
+ {
+ integrity: sha512-R/HV8u2h8CAddSbX8cjpdd7B8/GnE4UjgjpuGuHcbp1xV6yh4OeqU4L1pKjlwujCrSFS0MOpwJAIs/NexMB1fQ==
+ }
+
+ "@vladfrangu/async_event_emitter@2.4.7":
+ resolution:
+ {
+ integrity: sha512-Xfe6rpCTxSxfbswi/W/Pz7zp1WWSNn4A0eW4mLkQUewCrXXtMj31lCg+iQyTkh/CkusZSq9eDflu7tjEDXUY6g==
+ }
+ engines: { node: ">=v14.0.0", npm: ">=7.0.0" }
+
+ "@xhayper/discord-rpc@1.3.0":
+ resolution:
+ {
+ integrity: sha512-0NmUTiODl7u3UEjmO6y0Syp3dmgVLAt2EHrH4QKTQcXRwtF8Wl7Eipdn/GSSZ8HkDwxQFvcDGJMxT9VWB0pH8g==
+ }
+ engines: { node: ">=18.20.7" }
+
+ ansi-styles@3.2.1:
+ resolution:
+ {
+ integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+ }
+ engines: { node: ">=4" }
+
+ array-buffer-byte-length@1.0.2:
+ resolution:
+ {
+ integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==
+ }
+ engines: { node: ">= 0.4" }
+
+ arraybuffer.prototype.slice@1.0.4:
+ resolution:
+ {
+ integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==
+ }
+ engines: { node: ">= 0.4" }
+
+ async-function@1.0.0:
+ resolution:
+ {
+ integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==
+ }
+ engines: { node: ">= 0.4" }
+
+ available-typed-arrays@1.0.7:
+ resolution:
+ {
+ integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==
+ }
+ engines: { node: ">= 0.4" }
+
+ balanced-match@1.0.2:
+ resolution:
+ {
+ integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+ }
+
+ brace-expansion@1.1.12:
+ resolution:
+ {
+ integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==
+ }
+
+ call-bind-apply-helpers@1.0.2:
+ resolution:
+ {
+ integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==
+ }
+ engines: { node: ">= 0.4" }
+
+ call-bind@1.0.8:
+ resolution:
+ {
+ integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==
+ }
+ engines: { node: ">= 0.4" }
+
+ call-bound@1.0.4:
+ resolution:
+ {
+ integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==
+ }
+ engines: { node: ">= 0.4" }
+
+ chalk@2.4.2:
+ resolution:
+ {
+ integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+ }
+ engines: { node: ">=4" }
+
+ color-convert@1.9.3:
+ resolution:
+ {
+ integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
+ }
+
+ color-name@1.1.3:
+ resolution:
+ {
+ integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
+ }
+
+ concat-map@0.0.1:
+ resolution:
+ {
+ integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
+ }
+
+ cross-spawn@6.0.6:
+ resolution:
+ {
+ integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==
+ }
+ engines: { node: ">=4.8" }
+
+ data-view-buffer@1.0.2:
+ resolution:
+ {
+ integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==
+ }
+ engines: { node: ">= 0.4" }
+
+ data-view-byte-length@1.0.2:
+ resolution:
+ {
+ integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==
+ }
+ engines: { node: ">= 0.4" }
+
+ data-view-byte-offset@1.0.1:
+ resolution:
+ {
+ integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==
+ }
+ engines: { node: ">= 0.4" }
+
+ 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" }
+
+ discord-api-types@0.38.34:
+ resolution:
+ {
+ integrity: sha512-muq7xKGznj5MSFCzuIm/2TO7DpttuomUTemVM82fRqgnMl70YRzEyY24jlbiV6R9tzOTq6A6UnZ0bsfZeKD38Q==
+ }
+
+ dunder-proto@1.0.1:
+ resolution:
+ {
+ integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==
+ }
+ engines: { node: ">= 0.4" }
+
+ error-ex@1.3.4:
+ resolution:
+ {
+ integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==
+ }
+
+ es-abstract@1.24.0:
+ resolution:
+ {
+ integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==
+ }
+ engines: { node: ">= 0.4" }
+
+ 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" }
+
+ es-object-atoms@1.1.1:
+ resolution:
+ {
+ integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==
+ }
+ engines: { node: ">= 0.4" }
+
+ es-set-tostringtag@2.1.0:
+ resolution:
+ {
+ integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==
+ }
+ engines: { node: ">= 0.4" }
+
+ es-to-primitive@1.3.0:
+ resolution:
+ {
+ integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==
+ }
+ engines: { node: ">= 0.4" }
+
+ escape-string-regexp@1.0.5:
+ resolution:
+ {
+ integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
+ }
+ engines: { node: ">=0.8.0" }
+
+ filesize@11.0.13:
+ resolution:
+ {
+ integrity: sha512-mYJ/qXKvREuO0uH8LTQJ6v7GsUvVOguqxg2VTwQUkyTPXXRRWPdjuUPVqdBrJQhvci48OHlNGRnux+Slr2Rnvw==
+ }
+ engines: { node: ">= 10.8.0" }
+
+ for-each@0.3.5:
+ resolution:
+ {
+ integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==
+ }
+ engines: { node: ">= 0.4" }
+
+ function-bind@1.1.2:
+ resolution:
+ {
+ integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
+ }
+
+ function.prototype.name@1.1.8:
+ resolution:
+ {
+ integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==
+ }
+ engines: { node: ">= 0.4" }
+
+ functions-have-names@1.2.3:
+ resolution:
+ {
+ integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
+ }
+
+ generator-function@2.0.1:
+ resolution:
+ {
+ integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==
+ }
+ engines: { node: ">= 0.4" }
+
+ get-intrinsic@1.3.0:
+ resolution:
+ {
+ integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
+ }
+ engines: { node: ">= 0.4" }
+
+ get-proto@1.0.1:
+ resolution:
+ {
+ integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==
+ }
+ engines: { node: ">= 0.4" }
+
+ get-symbol-description@1.1.0:
+ resolution:
+ {
+ integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==
+ }
+ engines: { node: ">= 0.4" }
+
+ 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" }
+
+ graceful-fs@4.2.11:
+ resolution:
+ {
+ integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
+ }
+
+ has-bigints@1.1.0:
+ resolution:
+ {
+ integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==
+ }
+ engines: { node: ">= 0.4" }
+
+ has-flag@3.0.0:
+ resolution:
+ {
+ integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
+ }
+ engines: { node: ">=4" }
+
+ has-property-descriptors@1.0.2:
+ resolution:
+ {
+ integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==
+ }
+
+ has-proto@1.2.0:
+ resolution:
+ {
+ integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==
+ }
+ engines: { node: ">= 0.4" }
+
+ has-symbols@1.1.0:
+ resolution:
+ {
+ integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
+ }
+ engines: { node: ">= 0.4" }
+
+ has-tostringtag@1.0.2:
+ resolution:
+ {
+ integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
+ }
+ engines: { node: ">= 0.4" }
+
+ hasown@2.0.2:
+ resolution:
+ {
+ integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
+ }
+ engines: { node: ">= 0.4" }
+
+ hosted-git-info@2.8.9:
+ resolution:
+ {
+ integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
+ }
+
+ internal-slot@1.1.0:
+ resolution:
+ {
+ integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==
+ }
+ engines: { node: ">= 0.4" }
+
+ is-array-buffer@3.0.5:
+ resolution:
+ {
+ integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==
+ }
+ engines: { node: ">= 0.4" }
+
+ is-arrayish@0.2.1:
+ resolution:
+ {
+ integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
+ }
+
+ is-async-function@2.1.1:
+ resolution:
+ {
+ integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==
+ }
+ engines: { node: ">= 0.4" }
+
+ is-bigint@1.1.0:
+ resolution:
+ {
+ integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==
+ }
+ engines: { node: ">= 0.4" }
+
+ is-boolean-object@1.2.2:
+ resolution:
+ {
+ integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==
+ }
+ engines: { node: ">= 0.4" }
+
+ is-callable@1.2.7:
+ resolution:
+ {
+ integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
+ }
+ engines: { node: ">= 0.4" }
+
+ is-core-module@2.16.1:
+ resolution:
+ {
+ integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==
+ }
+ engines: { node: ">= 0.4" }
+
+ is-data-view@1.0.2:
+ resolution:
+ {
+ integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==
+ }
+ engines: { node: ">= 0.4" }
+
+ is-date-object@1.1.0:
+ resolution:
+ {
+ integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==
+ }
+ engines: { node: ">= 0.4" }
+
+ is-finalizationregistry@1.1.1:
+ resolution:
+ {
+ integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==
+ }
+ engines: { node: ">= 0.4" }
+
+ is-generator-function@1.1.2:
+ resolution:
+ {
+ integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==
+ }
+ engines: { node: ">= 0.4" }
+
+ is-map@2.0.3:
+ resolution:
+ {
+ integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==
+ }
+ engines: { node: ">= 0.4" }
+
+ is-negative-zero@2.0.3:
+ resolution:
+ {
+ integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==
+ }
+ engines: { node: ">= 0.4" }
+
+ is-number-object@1.1.1:
+ resolution:
+ {
+ integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==
+ }
+ engines: { node: ">= 0.4" }
+
+ is-regex@1.2.1:
+ resolution:
+ {
+ integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==
+ }
+ engines: { node: ">= 0.4" }
+
+ is-set@2.0.3:
+ resolution:
+ {
+ integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==
+ }
+ engines: { node: ">= 0.4" }
+
+ is-shared-array-buffer@1.0.4:
+ resolution:
+ {
+ integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==
+ }
+ engines: { node: ">= 0.4" }
+
+ is-string@1.1.1:
+ resolution:
+ {
+ integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==
+ }
+ engines: { node: ">= 0.4" }
+
+ is-symbol@1.1.1:
+ resolution:
+ {
+ integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==
+ }
+ engines: { node: ">= 0.4" }
+
+ is-typed-array@1.1.15:
+ resolution:
+ {
+ integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==
+ }
+ engines: { node: ">= 0.4" }
+
+ is-weakmap@2.0.2:
+ resolution:
+ {
+ integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==
+ }
+ engines: { node: ">= 0.4" }
+
+ is-weakref@1.1.1:
+ resolution:
+ {
+ integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==
+ }
+ engines: { node: ">= 0.4" }
+
+ is-weakset@2.0.4:
+ resolution:
+ {
+ integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==
+ }
+ engines: { node: ">= 0.4" }
+
+ isarray@2.0.5:
+ resolution:
+ {
+ integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
+ }
+
+ isexe@2.0.0:
+ resolution:
+ {
+ integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
+ }
+
+ json-parse-better-errors@1.0.2:
+ resolution:
+ {
+ integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
+ }
+
+ load-json-file@4.0.0:
+ resolution:
+ {
+ integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==
+ }
+ engines: { node: ">=4" }
+
+ magic-bytes.js@1.12.1:
+ resolution:
+ {
+ integrity: sha512-ThQLOhN86ZkJ7qemtVRGYM+gRgR8GEXNli9H/PMvpnZsE44Xfh3wx9kGJaldg314v85m+bFW6WBMaVHJc/c3zA==
+ }
+
+ math-intrinsics@1.1.0:
+ resolution:
+ {
+ integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==
+ }
+ engines: { node: ">= 0.4" }
+
+ memorystream@0.3.1:
+ resolution:
+ {
+ integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==
+ }
+ engines: { node: ">= 0.10.0" }
+
+ minimatch@3.1.2:
+ resolution:
+ {
+ integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
+ }
+
+ nice-try@1.0.5:
+ resolution:
+ {
+ integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
+ }
+
+ normalize-package-data@2.5.0:
+ resolution:
+ {
+ integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
+ }
+
+ npm-run-all@4.1.5:
+ resolution:
+ {
+ integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==
+ }
+ engines: { node: ">= 4" }
+ hasBin: true
+
+ object-inspect@1.13.4:
+ resolution:
+ {
+ integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==
+ }
+ engines: { node: ">= 0.4" }
+
+ object-keys@1.1.1:
+ resolution:
+ {
+ integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+ }
+ engines: { node: ">= 0.4" }
+
+ object.assign@4.1.7:
+ resolution:
+ {
+ integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==
+ }
+ engines: { node: ">= 0.4" }
+
+ own-keys@1.0.1:
+ resolution:
+ {
+ integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==
+ }
+ engines: { node: ">= 0.4" }
+
+ parse-json@4.0.0:
+ resolution:
+ {
+ integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==
+ }
+ engines: { node: ">=4" }
+
+ path-key@2.0.1:
+ resolution:
+ {
+ integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==
+ }
+ engines: { node: ">=4" }
+
+ path-parse@1.0.7:
+ resolution:
+ {
+ integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+ }
+
+ path-type@3.0.0:
+ resolution:
+ {
+ integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==
+ }
+ engines: { node: ">=4" }
+
+ pidtree@0.3.1:
+ resolution:
+ {
+ integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==
+ }
+ engines: { node: ">=0.10" }
+ hasBin: true
+
+ pify@3.0.0:
+ resolution:
+ {
+ integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==
+ }
+ engines: { node: ">=4" }
+
+ possible-typed-array-names@1.1.0:
+ resolution:
+ {
+ integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==
+ }
+ engines: { node: ">= 0.4" }
+
+ read-pkg@3.0.0:
+ resolution:
+ {
+ integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==
+ }
+ engines: { node: ">=4" }
+
+ reflect.getprototypeof@1.0.10:
+ resolution:
+ {
+ integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==
+ }
+ engines: { node: ">= 0.4" }
+
+ regexp.prototype.flags@1.5.4:
+ resolution:
+ {
+ integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==
+ }
+ engines: { node: ">= 0.4" }
+
+ resolve@1.22.11:
+ resolution:
+ {
+ integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==
+ }
+ engines: { node: ">= 0.4" }
+ hasBin: true
+
+ rolldown@1.0.0-beta.51:
+ resolution:
+ {
+ integrity: sha512-ZRLgPlS91l4JztLYEZnmMcd3Umcla1hkXJgiEiR4HloRJBBoeaX8qogTu5Jfu36rRMVLndzqYv0h+M5gJAkUfg==
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ hasBin: true
+
+ safe-array-concat@1.1.3:
+ resolution:
+ {
+ integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==
+ }
+ engines: { node: ">=0.4" }
+
+ safe-push-apply@1.0.0:
+ resolution:
+ {
+ integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==
+ }
+ engines: { node: ">= 0.4" }
+
+ safe-regex-test@1.1.0:
+ resolution:
+ {
+ integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==
+ }
+ engines: { node: ">= 0.4" }
+
+ semver@5.7.2:
+ resolution:
+ {
+ integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
+ }
+ hasBin: true
+
+ set-function-length@1.2.2:
+ resolution:
+ {
+ integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==
+ }
+ engines: { node: ">= 0.4" }
+
+ set-function-name@2.0.2:
+ resolution:
+ {
+ integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==
+ }
+ engines: { node: ">= 0.4" }
+
+ set-proto@1.0.0:
+ resolution:
+ {
+ integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==
+ }
+ engines: { node: ">= 0.4" }
+
+ shebang-command@1.2.0:
+ resolution:
+ {
+ integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==
+ }
+ engines: { node: ">=0.10.0" }
+
+ shebang-regex@1.0.0:
+ resolution:
+ {
+ integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==
+ }
+ engines: { node: ">=0.10.0" }
+
+ shell-quote@1.8.3:
+ resolution:
+ {
+ integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==
+ }
+ engines: { node: ">= 0.4" }
+
+ side-channel-list@1.0.0:
+ resolution:
+ {
+ integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==
+ }
+ engines: { node: ">= 0.4" }
+
+ side-channel-map@1.0.1:
+ resolution:
+ {
+ integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==
+ }
+ engines: { node: ">= 0.4" }
+
+ side-channel-weakmap@1.0.2:
+ resolution:
+ {
+ integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==
+ }
+ engines: { node: ">= 0.4" }
+
+ side-channel@1.1.0:
+ resolution:
+ {
+ integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==
+ }
+ engines: { node: ">= 0.4" }
+
+ spdx-correct@3.2.0:
+ resolution:
+ {
+ integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==
+ }
+
+ spdx-exceptions@2.5.0:
+ resolution:
+ {
+ integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==
+ }
+
+ spdx-expression-parse@3.0.1:
+ resolution:
+ {
+ integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
+ }
+
+ spdx-license-ids@3.0.22:
+ resolution:
+ {
+ integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==
+ }
+
+ stop-iteration-iterator@1.1.0:
+ resolution:
+ {
+ integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==
+ }
+ engines: { node: ">= 0.4" }
+
+ string.prototype.padend@3.1.6:
+ resolution:
+ {
+ integrity: sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==
+ }
+ engines: { node: ">= 0.4" }
+
+ string.prototype.trim@1.2.10:
+ resolution:
+ {
+ integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==
+ }
+ engines: { node: ">= 0.4" }
+
+ string.prototype.trimend@1.0.9:
+ resolution:
+ {
+ integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==
+ }
+ engines: { node: ">= 0.4" }
+
+ string.prototype.trimstart@1.0.8:
+ resolution:
+ {
+ integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==
+ }
+ engines: { node: ">= 0.4" }
+
+ strip-bom@3.0.0:
+ resolution:
+ {
+ integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==
+ }
+ engines: { node: ">=4" }
+
+ supports-color@5.5.0:
+ resolution:
+ {
+ integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+ }
+ engines: { node: ">=4" }
+
+ supports-preserve-symlinks-flag@1.0.0:
+ resolution:
+ {
+ integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+ }
+ engines: { node: ">= 0.4" }
+
+ tslib@2.8.1:
+ resolution:
+ {
+ integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
+ }
+
+ typed-array-buffer@1.0.3:
+ resolution:
+ {
+ integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==
+ }
+ engines: { node: ">= 0.4" }
+
+ typed-array-byte-length@1.0.3:
+ resolution:
+ {
+ integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==
+ }
+ engines: { node: ">= 0.4" }
+
+ typed-array-byte-offset@1.0.4:
+ resolution:
+ {
+ integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==
+ }
+ engines: { node: ">= 0.4" }
+
+ typed-array-length@1.0.7:
+ resolution:
+ {
+ integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==
+ }
+ engines: { node: ">= 0.4" }
+
+ typescript@5.9.3:
+ resolution:
+ {
+ integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==
+ }
+ engines: { node: ">=14.17" }
+ hasBin: true
+
+ unbox-primitive@1.1.0:
+ resolution:
+ {
+ integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==
+ }
+ engines: { node: ">= 0.4" }
+
+ undici-types@6.21.0:
+ resolution:
+ {
+ integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==
+ }
+
+ undici@6.21.3:
+ resolution:
+ {
+ integrity: sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==
+ }
+ engines: { node: ">=18.17" }
+
+ validate-npm-package-license@3.0.4:
+ resolution:
+ {
+ integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
+ }
+
+ which-boxed-primitive@1.1.1:
+ resolution:
+ {
+ integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==
+ }
+ engines: { node: ">= 0.4" }
+
+ which-builtin-type@1.2.1:
+ resolution:
+ {
+ integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==
+ }
+ engines: { node: ">= 0.4" }
+
+ which-collection@1.0.2:
+ resolution:
+ {
+ integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==
+ }
+ engines: { node: ">= 0.4" }
+
+ which-typed-array@1.1.19:
+ resolution:
+ {
+ integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==
+ }
+ engines: { node: ">= 0.4" }
+
+ which@1.3.1:
+ resolution:
+ {
+ integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
+ }
+ hasBin: true
+
+ ws@8.18.3:
+ resolution:
+ {
+ integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==
+ }
+ engines: { node: ">=10.0.0" }
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ">=5.0.2"
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
- '@azu/format-text@1.0.2':
- resolution: {integrity: sha512-Swi4N7Edy1Eqq82GxgEECXSSLyn6GOb5htRFPzBDdUkECGXtlf12ynO5oJSpWKPwCaUssOu7NfhDcCWpIC6Ywg==}
-
- '@azu/style-format@1.0.1':
- resolution: {integrity: sha512-AHcTojlNBdD/3/KxIKlg8sxIWHfOtQszLvOpagLTO+bjC3u7SAszu1lf//u7JJC50aUSH+BVWDD/KvaA6Gfn5g==}
-
- '@azure/abort-controller@2.1.2':
- resolution: {integrity: sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==}
- engines: {node: '>=18.0.0'}
-
- '@azure/core-auth@1.10.1':
- resolution: {integrity: sha512-ykRMW8PjVAn+RS6ww5cmK9U2CyH9p4Q88YJwvUslfuMmN98w/2rdGRLPqJYObapBCdzBVeDgYWdJnFPFb7qzpg==}
- engines: {node: '>=20.0.0'}
-
- '@azure/core-client@1.10.1':
- resolution: {integrity: sha512-Nh5PhEOeY6PrnxNPsEHRr9eimxLwgLlpmguQaHKBinFYA/RU9+kOYVOQqOrTsCL+KSxrLLl1gD8Dk5BFW/7l/w==}
- engines: {node: '>=20.0.0'}
-
- '@azure/core-rest-pipeline@1.22.2':
- resolution: {integrity: sha512-MzHym+wOi8CLUlKCQu12de0nwcq9k9Kuv43j4Wa++CsCpJwps2eeBQwD2Bu8snkxTtDKDx4GwjuR9E8yC8LNrg==}
- engines: {node: '>=20.0.0'}
-
- '@azure/core-tracing@1.3.1':
- resolution: {integrity: sha512-9MWKevR7Hz8kNzzPLfX4EAtGM2b8mr50HPDBvio96bURP/9C+HjdH3sBlLSNNrvRAr5/k/svoH457gB5IKpmwQ==}
- engines: {node: '>=20.0.0'}
-
- '@azure/core-util@1.13.1':
- resolution: {integrity: sha512-XPArKLzsvl0Hf0CaGyKHUyVgF7oDnhKoP85Xv6M4StF/1AhfORhZudHtOyf2s+FcbuQ9dPRAjB8J2KvRRMUK2A==}
- engines: {node: '>=20.0.0'}
-
- '@azure/identity@4.13.0':
- resolution: {integrity: sha512-uWC0fssc+hs1TGGVkkghiaFkkS7NkTxfnCH+Hdg+yTehTpMcehpok4PgUKKdyCH+9ldu6FhiHRv84Ntqj1vVcw==}
- engines: {node: '>=20.0.0'}
-
- '@azure/logger@1.3.0':
- resolution: {integrity: sha512-fCqPIfOcLE+CGqGPd66c8bZpwAji98tZ4JI9i/mlTNTlsIWslCfpg48s/ypyLxZTump5sypjrKn2/kY7q8oAbA==}
- engines: {node: '>=20.0.0'}
-
- '@azure/msal-browser@4.26.2':
- resolution: {integrity: sha512-F2U1mEAFsYGC5xzo1KuWc/Sy3CRglU9Ql46cDUx8x/Y3KnAIr1QAq96cIKCk/ZfnVxlvprXWRjNKoEpgLJXLhg==}
- engines: {node: '>=0.8.0'}
-
- '@azure/msal-common@15.13.2':
- resolution: {integrity: sha512-cNwUoCk3FF8VQ7Ln/MdcJVIv3sF73/OT86cRH81ECsydh7F4CNfIo2OAx6Cegtg8Yv75x4506wN4q+Emo6erOA==}
- engines: {node: '>=0.8.0'}
-
- '@azure/msal-node@3.8.3':
- resolution: {integrity: sha512-Ul7A4gwmaHzYWj2Z5xBDly/W8JSC1vnKgJ898zPMZr0oSf1ah0tiL15sytjycU/PMhDZAlkWtEL1+MzNMU6uww==}
- engines: {node: '>=16'}
-
- '@babel/code-frame@7.27.1':
- resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/generator@7.28.5':
- resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-string-parser@7.27.1':
- resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-validator-identifier@7.28.5':
- resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==}
- engines: {node: '>=6.9.0'}
-
- '@babel/parser@7.28.5':
- resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==}
- engines: {node: '>=6.0.0'}
- hasBin: true
-
- '@babel/types@7.28.5':
- resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==}
- engines: {node: '>=6.9.0'}
-
- '@discordjs/collection@2.1.1':
- resolution: {integrity: sha512-LiSusze9Tc7qF03sLCujF5iZp7K+vRNEDBZ86FT9aQAv3vxMLihUvKvpsCWiQ2DJq1tVckopKm1rxomgNUc9hg==}
- engines: {node: '>=18'}
-
- '@discordjs/rest@2.6.0':
- resolution: {integrity: sha512-RDYrhmpB7mTvmCKcpj+pc5k7POKszS4E2O9TYc+U+Y4iaCP+r910QdO43qmpOja8LRr1RJ0b3U+CqVsnPqzf4w==}
- engines: {node: '>=18'}
-
- '@discordjs/util@1.2.0':
- resolution: {integrity: sha512-3LKP7F2+atl9vJFhaBjn4nOaSWahZ/yWjOvA4e5pnXkt2qyXRCHLxoBQy81GFtLGCq7K9lPm9R517M1U+/90Qg==}
- engines: {node: '>=18'}
-
- '@emnapi/core@1.7.1':
- resolution: {integrity: sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==}
-
- '@emnapi/runtime@1.7.1':
- resolution: {integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==}
-
- '@emnapi/wasi-threads@1.1.0':
- resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==}
-
- '@isaacs/balanced-match@4.0.1':
- resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==}
- engines: {node: 20 || >=22}
-
- '@isaacs/brace-expansion@5.0.0':
- resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==}
- engines: {node: 20 || >=22}
-
- '@isaacs/cliui@8.0.2':
- resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
- engines: {node: '>=12'}
-
- '@jridgewell/gen-mapping@0.3.13':
- resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
-
- '@jridgewell/resolve-uri@3.1.2':
- resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
- engines: {node: '>=6.0.0'}
-
- '@jridgewell/sourcemap-codec@1.5.5':
- resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
-
- '@jridgewell/trace-mapping@0.3.31':
- resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
-
- '@napi-rs/wasm-runtime@1.0.7':
- resolution: {integrity: sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==}
-
- '@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'}
-
- '@oxc-project/runtime@0.96.0':
- resolution: {integrity: sha512-34lh4o9CcSw09Hx6fKihPu85+m+4pmDlkXwJrLvN5nMq5JrcGhhihVM415zDqT8j8IixO1PYYdQZRN4SwQCncg==}
- engines: {node: ^20.19.0 || >=22.12.0}
-
- '@oxc-project/types@0.98.0':
- resolution: {integrity: sha512-Vzmd6FsqVuz5HQVcRC/hrx7Ujo3WEVeQP7C2UNP5uy1hUY4SQvMB+93jxkI1KRHz9a/6cni3glPOtvteN+zpsw==}
-
- '@quansync/fs@0.1.5':
- resolution: {integrity: sha512-lNS9hL2aS2NZgNW7BBj+6EBl4rOf8l+tQ0eRY6JWCI8jI2kc53gSoqbjojU0OnAWhzoXiOjFyGsHcDGePB3lhA==}
-
- '@rolldown/binding-android-arm64@1.0.0-beta.51':
- resolution: {integrity: sha512-Ctn8FUXKWWQI9pWC61P1yumS9WjQtelNS9riHwV7oCkknPGaAry4o7eFx2KgoLMnI2BgFJYpW7Im8/zX3BuONg==}
- engines: {node: ^20.19.0 || >=22.12.0}
- cpu: [arm64]
- os: [android]
-
- '@rolldown/binding-darwin-arm64@1.0.0-beta.51':
- resolution: {integrity: sha512-EL1aRW2Oq15ShUEkBPsDtLMO8GTqfb/ktM/dFaVzXKQiEE96Ss6nexMgfgQrg8dGnNpndFyffVDb5IdSibsu1g==}
- engines: {node: ^20.19.0 || >=22.12.0}
- cpu: [arm64]
- os: [darwin]
-
- '@rolldown/binding-darwin-x64@1.0.0-beta.51':
- resolution: {integrity: sha512-uGtYKlFen9pMIPvkHPWZVDtmYhMQi5g5Ddsndg1gf3atScKYKYgs5aDP4DhHeTwGXQglhfBG7lEaOIZ4UAIWww==}
- engines: {node: ^20.19.0 || >=22.12.0}
- cpu: [x64]
- os: [darwin]
-
- '@rolldown/binding-freebsd-x64@1.0.0-beta.51':
- resolution: {integrity: sha512-JRoVTQtHYbZj1P07JLiuTuXjiBtIa7ag7/qgKA6CIIXnAcdl4LrOf7nfDuHPJcuRKaP5dzecMgY99itvWfmUFQ==}
- engines: {node: ^20.19.0 || >=22.12.0}
- cpu: [x64]
- os: [freebsd]
-
- '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.51':
- resolution: {integrity: sha512-BKATVnpPZ0TYBW9XfDwyd4kPGgvf964HiotIwUgpMrFOFYWqpZ+9ONNzMV4UFAYC7Hb5C2qgYQk/qj2OnAd4RQ==}
- engines: {node: ^20.19.0 || >=22.12.0}
- cpu: [arm]
- os: [linux]
-
- '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.51':
- resolution: {integrity: sha512-xLd7da5jkfbVsBCm1buIRdWtuXY8+hU3+6ESXY/Tk5X5DPHaifrUblhYDgmA34dQt6WyNC2kfXGgrduPEvDI6Q==}
- engines: {node: ^20.19.0 || >=22.12.0}
- cpu: [arm64]
- os: [linux]
-
- '@rolldown/binding-linux-arm64-musl@1.0.0-beta.51':
- resolution: {integrity: sha512-EQFXTgHxxTzv3t5EmjUP/DfxzFYx9sMndfLsYaAY4DWF6KsK1fXGYsiupif6qPTViPC9eVmRm78q0pZU/kuIPg==}
- engines: {node: ^20.19.0 || >=22.12.0}
- cpu: [arm64]
- os: [linux]
-
- '@rolldown/binding-linux-x64-gnu@1.0.0-beta.51':
- resolution: {integrity: sha512-p5P6Xpa68w3yFaAdSzIZJbj+AfuDnMDqNSeglBXM7UlJT14Q4zwK+rV+8Mhp9MiUb4XFISZtbI/seBprhkQbiQ==}
- engines: {node: ^20.19.0 || >=22.12.0}
- cpu: [x64]
- os: [linux]
-
- '@rolldown/binding-linux-x64-musl@1.0.0-beta.51':
- resolution: {integrity: sha512-sNVVyLa8HB8wkFipdfz1s6i0YWinwpbMWk5hO5S+XAYH2UH67YzUT13gs6wZTKg2x/3gtgXzYnHyF5wMIqoDAw==}
- engines: {node: ^20.19.0 || >=22.12.0}
- cpu: [x64]
- os: [linux]
-
- '@rolldown/binding-openharmony-arm64@1.0.0-beta.51':
- resolution: {integrity: sha512-e/JMTz9Q8+T3g/deEi8DK44sFWZWGKr9AOCW5e8C8SCVWzAXqYXAG7FXBWBNzWEZK0Rcwo9TQHTQ9Q0gXgdCaA==}
- engines: {node: ^20.19.0 || >=22.12.0}
- cpu: [arm64]
- os: [openharmony]
-
- '@rolldown/binding-wasm32-wasi@1.0.0-beta.51':
- resolution: {integrity: sha512-We3LWqSu6J9s5Y0MK+N7fUiiu37aBGPG3Pc347EoaROuAwkCS2u9xJ5dpIyLW4B49CIbS3KaPmn4kTgPb3EyPw==}
- engines: {node: '>=14.0.0'}
- cpu: [wasm32]
-
- '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.51':
- resolution: {integrity: sha512-fj56buHRuMM+r/cb6ZYfNjNvO/0xeFybI6cTkTROJatdP4fvmQ1NS8D/Lm10FCSDEOkqIz8hK3TGpbAThbPHsA==}
- engines: {node: ^20.19.0 || >=22.12.0}
- cpu: [arm64]
- os: [win32]
-
- '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.51':
- resolution: {integrity: sha512-fkqEqaeEx8AySXiDm54b/RdINb3C0VovzJA3osMhZsbn6FoD73H0AOIiaVAtGr6x63hefruVKTX8irAm4Jkt2w==}
- engines: {node: ^20.19.0 || >=22.12.0}
- cpu: [ia32]
- os: [win32]
-
- '@rolldown/binding-win32-x64-msvc@1.0.0-beta.51':
- resolution: {integrity: sha512-CWuLG/HMtrVcjKGa0C4GnuxONrku89g0+CsH8nT0SNhOtREXuzwgjIXNJImpE/A/DMf9JF+1Xkrq/YRr+F/rCg==}
- engines: {node: ^20.19.0 || >=22.12.0}
- cpu: [x64]
- os: [win32]
-
- '@rolldown/pluginutils@1.0.0-beta.51':
- resolution: {integrity: sha512-51/8cNXMrqWqX3o8DZidhwz1uYq0BhHDDSfVygAND1Skx5s1TDw3APSSxCMcFFedwgqGcx34gRouwY+m404BBQ==}
-
- '@sapphire/async-queue@1.5.5':
- resolution: {integrity: sha512-cvGzxbba6sav2zZkH8GPf2oGk9yYoD5qrNWdu9fRehifgnFZJMV+nuy2nON2roRO4yQQ+v7MK/Pktl/HgfsUXg==}
- engines: {node: '>=v14.0.0', npm: '>=7.0.0'}
-
- '@sapphire/snowflake@3.5.5':
- resolution: {integrity: sha512-xzvBr1Q1c4lCe7i6sRnrofxeO1QTP/LKQ6A6qy0iB4x5yfiSfARMEQEghojzTNALDTcv8En04qYNIco9/K9eZQ==}
- engines: {node: '>=v14.0.0', npm: '>=7.0.0'}
-
- '@secretlint/config-creator@10.2.2':
- resolution: {integrity: sha512-BynOBe7Hn3LJjb3CqCHZjeNB09s/vgf0baBaHVw67w7gHF0d25c3ZsZ5+vv8TgwSchRdUCRrbbcq5i2B1fJ2QQ==}
- engines: {node: '>=20.0.0'}
-
- '@secretlint/config-loader@10.2.2':
- resolution: {integrity: sha512-ndjjQNgLg4DIcMJp4iaRD6xb9ijWQZVbd9694Ol2IszBIbGPPkwZHzJYKICbTBmh6AH/pLr0CiCaWdGJU7RbpQ==}
- engines: {node: '>=20.0.0'}
-
- '@secretlint/core@10.2.2':
- resolution: {integrity: sha512-6rdwBwLP9+TO3rRjMVW1tX+lQeo5gBbxl1I5F8nh8bgGtKwdlCMhMKsBWzWg1ostxx/tIG7OjZI0/BxsP8bUgw==}
- engines: {node: '>=20.0.0'}
-
- '@secretlint/formatter@10.2.2':
- resolution: {integrity: sha512-10f/eKV+8YdGKNQmoDUD1QnYL7TzhI2kzyx95vsJKbEa8akzLAR5ZrWIZ3LbcMmBLzxlSQMMccRmi05yDQ5YDA==}
- engines: {node: '>=20.0.0'}
-
- '@secretlint/node@10.2.2':
- resolution: {integrity: sha512-eZGJQgcg/3WRBwX1bRnss7RmHHK/YlP/l7zOQsrjexYt6l+JJa5YhUmHbuGXS94yW0++3YkEJp0kQGYhiw1DMQ==}
- engines: {node: '>=20.0.0'}
-
- '@secretlint/profiler@10.2.2':
- resolution: {integrity: sha512-qm9rWfkh/o8OvzMIfY8a5bCmgIniSpltbVlUVl983zDG1bUuQNd1/5lUEeWx5o/WJ99bXxS7yNI4/KIXfHexig==}
-
- '@secretlint/resolver@10.2.2':
- resolution: {integrity: sha512-3md0cp12e+Ae5V+crPQYGd6aaO7ahw95s28OlULGyclyyUtf861UoRGS2prnUrKh7MZb23kdDOyGCYb9br5e4w==}
-
- '@secretlint/secretlint-formatter-sarif@10.2.2':
- resolution: {integrity: sha512-ojiF9TGRKJJw308DnYBucHxkpNovDNu1XvPh7IfUp0A12gzTtxuWDqdpuVezL7/IP8Ua7mp5/VkDMN9OLp1doQ==}
-
- '@secretlint/secretlint-rule-no-dotenv@10.2.2':
- resolution: {integrity: sha512-KJRbIShA9DVc5Va3yArtJ6QDzGjg3PRa1uYp9As4RsyKtKSSZjI64jVca57FZ8gbuk4em0/0Jq+uy6485wxIdg==}
- engines: {node: '>=20.0.0'}
-
- '@secretlint/secretlint-rule-preset-recommend@10.2.2':
- resolution: {integrity: sha512-K3jPqjva8bQndDKJqctnGfwuAxU2n9XNCPtbXVI5JvC7FnQiNg/yWlQPbMUlBXtBoBGFYp08A94m6fvtc9v+zA==}
- engines: {node: '>=20.0.0'}
-
- '@secretlint/source-creator@10.2.2':
- resolution: {integrity: sha512-h6I87xJfwfUTgQ7irWq7UTdq/Bm1RuQ/fYhA3dtTIAop5BwSFmZyrchph4WcoEvbN460BWKmk4RYSvPElIIvxw==}
- engines: {node: '>=20.0.0'}
-
- '@secretlint/types@10.2.2':
- resolution: {integrity: sha512-Nqc90v4lWCXyakD6xNyNACBJNJ0tNCwj2WNk/7ivyacYHxiITVgmLUFXTBOeCdy79iz6HtN9Y31uw/jbLrdOAg==}
- engines: {node: '>=20.0.0'}
-
- '@sindresorhus/merge-streams@2.3.0':
- resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==}
- engines: {node: '>=18'}
-
- '@textlint/ast-node-types@15.4.0':
- resolution: {integrity: sha512-IqY8i7IOGuvy05wZxISB7Me1ZyrvhaQGgx6DavfQjH3cfwpPFdDbDYmMXMuSv2xLS1kDB1kYKBV7fL2Vi16lRA==}
-
- '@textlint/linter-formatter@15.4.0':
- resolution: {integrity: sha512-rfqOZmnI1Wwc/Pa4LK+vagvVPmvxf9oRsBRqIOB04DwhucingZyAIJI/TyG18DIDYbP2aFXBZ3oOvyAxHe/8PQ==}
-
- '@textlint/module-interop@15.4.0':
- resolution: {integrity: sha512-uGf+SFIfzOLCbZI0gp+2NLsrkSArsvEWulPP6lJuKp7yRHadmy7Xf/YHORe46qhNyyxc8PiAfiixHJSaHGUrGg==}
-
- '@textlint/resolver@15.4.0':
- resolution: {integrity: sha512-Vh/QceKZQHFJFG4GxxIsKM1Xhwv93mbtKHmFE5/ybal1mIKHdqF03Z9Guaqt6Sx/AeNUshq0hkMOEhEyEWnehQ==}
-
- '@textlint/types@15.4.0':
- resolution: {integrity: sha512-ZMwJgw/xjxJufOD+IB7I2Enl9Si4Hxo04B76RwUZ5cKBKzOPcmd6WvGe2F7jqdgmTdGnfMU+Bo/joQrjPNIWqg==}
-
- '@tybys/wasm-util@0.10.1':
- resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==}
-
- '@types/node@22.15.35':
- resolution: {integrity: sha512-stV91mHxlWpDksiUiivmFfQzjy2JLlb2NUTxKipiANEbxBZsdbDU9fSrT7SHY4uoCXAxYfJZVasn3x2/hqpd3g==}
-
- '@types/normalize-package-data@2.4.4':
- resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
-
- '@types/parse-path@7.1.0':
- resolution: {integrity: sha512-EULJ8LApcVEPbrfND0cRQqutIOdiIgJ1Mgrhpy755r14xMohPTEpkV/k28SJvuOs9bHRFW8x+KeDAEPiGQPB9Q==}
- deprecated: This is a stub types definition. parse-path provides its own type definitions, so you do not need this installed.
-
- '@types/sarif@2.1.7':
- resolution: {integrity: sha512-kRz0VEkJqWLf1LLVN4pT1cg1Z9wAuvI6L97V3m2f5B76Tg8d413ddvLBPTEHAZJlnn4XSvu0FkZtViCQGVyrXQ==}
-
- '@types/vscode@1.52.0':
- resolution: {integrity: sha512-Kt3bvWzAvvF/WH9YEcrCICDp0Z7aHhJGhLJ1BxeyNP6yRjonWqWnAIh35/pXAjswAnWOABrYlF7SwXR9+1nnLA==}
-
- '@typespec/ts-http-runtime@0.3.2':
- resolution: {integrity: sha512-IlqQ/Gv22xUC1r/WQm4StLkYQmaaTsXAhUVsNE0+xiyf0yRFiH5++q78U3bw6bLKDCTmh0uqKB9eG9+Bt75Dkg==}
- engines: {node: '>=20.0.0'}
-
- '@vladfrangu/async_event_emitter@2.4.7':
- resolution: {integrity: sha512-Xfe6rpCTxSxfbswi/W/Pz7zp1WWSNn4A0eW4mLkQUewCrXXtMj31lCg+iQyTkh/CkusZSq9eDflu7tjEDXUY6g==}
- engines: {node: '>=v14.0.0', npm: '>=7.0.0'}
-
- '@vscode/vsce-sign-alpine-arm64@2.0.6':
- resolution: {integrity: sha512-wKkJBsvKF+f0GfsUuGT0tSW0kZL87QggEiqNqK6/8hvqsXvpx8OsTEc3mnE1kejkh5r+qUyQ7PtF8jZYN0mo8Q==}
- cpu: [arm64]
- os: [alpine]
-
- '@vscode/vsce-sign-alpine-x64@2.0.6':
- resolution: {integrity: sha512-YoAGlmdK39vKi9jA18i4ufBbd95OqGJxRvF3n6ZbCyziwy3O+JgOpIUPxv5tjeO6gQfx29qBivQ8ZZTUF2Ba0w==}
- cpu: [x64]
- os: [alpine]
-
- '@vscode/vsce-sign-darwin-arm64@2.0.6':
- resolution: {integrity: sha512-5HMHaJRIQuozm/XQIiJiA0W9uhdblwwl2ZNDSSAeXGO9YhB9MH5C4KIHOmvyjUnKy4UCuiP43VKpIxW1VWP4tQ==}
- cpu: [arm64]
- os: [darwin]
-
- '@vscode/vsce-sign-darwin-x64@2.0.6':
- resolution: {integrity: sha512-25GsUbTAiNfHSuRItoQafXOIpxlYj+IXb4/qarrXu7kmbH94jlm5sdWSCKrrREs8+GsXF1b+l3OB7VJy5jsykw==}
- cpu: [x64]
- os: [darwin]
-
- '@vscode/vsce-sign-linux-arm64@2.0.6':
- resolution: {integrity: sha512-cfb1qK7lygtMa4NUl2582nP7aliLYuDEVpAbXJMkDq1qE+olIw/es+C8j1LJwvcRq1I2yWGtSn3EkDp9Dq5FdA==}
- cpu: [arm64]
- os: [linux]
-
- '@vscode/vsce-sign-linux-arm@2.0.6':
- resolution: {integrity: sha512-UndEc2Xlq4HsuMPnwu7420uqceXjs4yb5W8E2/UkaHBB9OWCwMd3/bRe/1eLe3D8kPpxzcaeTyXiK3RdzS/1CA==}
- cpu: [arm]
- os: [linux]
-
- '@vscode/vsce-sign-linux-x64@2.0.6':
- resolution: {integrity: sha512-/olerl1A4sOqdP+hjvJ1sbQjKN07Y3DVnxO4gnbn/ahtQvFrdhUi0G1VsZXDNjfqmXw57DmPi5ASnj/8PGZhAA==}
- cpu: [x64]
- os: [linux]
-
- '@vscode/vsce-sign-win32-arm64@2.0.6':
- resolution: {integrity: sha512-ivM/MiGIY0PJNZBoGtlRBM/xDpwbdlCWomUWuLmIxbi1Cxe/1nooYrEQoaHD8ojVRgzdQEUzMsRbyF5cJJgYOg==}
- cpu: [arm64]
- os: [win32]
-
- '@vscode/vsce-sign-win32-x64@2.0.6':
- resolution: {integrity: sha512-mgth9Kvze+u8CruYMmhHw6Zgy3GRX2S+Ed5oSokDEK5vPEwGGKnmuXua9tmFhomeAnhgJnL4DCna3TiNuGrBTQ==}
- cpu: [x64]
- os: [win32]
-
- '@vscode/vsce-sign@2.0.9':
- resolution: {integrity: sha512-8IvaRvtFyzUnGGl3f5+1Cnor3LqaUWvhaUjAYO8Y39OUYlOf3cRd+dowuQYLpZcP3uwSG+mURwjEBOSq4SOJ0g==}
-
- '@vscode/vsce@3.7.0':
- resolution: {integrity: sha512-LY9r2T4joszRjz4d92ZPl6LTBUPS4IWH9gG/3JUv+1QyBJrveZlcVISuiaq0EOpmcgFh0GgVgKD4rD/21Tu8sA==}
- engines: {node: '>= 20'}
- hasBin: true
-
- '@xhayper/discord-rpc@1.3.0':
- resolution: {integrity: sha512-0NmUTiODl7u3UEjmO6y0Syp3dmgVLAt2EHrH4QKTQcXRwtF8Wl7Eipdn/GSSZ8HkDwxQFvcDGJMxT9VWB0pH8g==}
- engines: {node: '>=18.20.7'}
-
- agent-base@7.1.4:
- resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==}
- engines: {node: '>= 14'}
-
- ajv@8.17.1:
- resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
-
- ansi-escapes@7.2.0:
- resolution: {integrity: sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==}
- engines: {node: '>=18'}
-
- ansi-regex@5.0.1:
- resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
- engines: {node: '>=8'}
-
- ansi-regex@6.2.2:
- resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==}
- engines: {node: '>=12'}
-
- ansi-styles@4.3.0:
- resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
- engines: {node: '>=8'}
-
- ansi-styles@6.2.3:
- resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==}
- engines: {node: '>=12'}
-
- ansis@4.2.0:
- resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==}
- engines: {node: '>=14'}
-
- argparse@1.0.10:
- resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
-
- argparse@2.0.1:
- resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
-
- ast-kit@2.2.0:
- resolution: {integrity: sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw==}
- engines: {node: '>=20.19.0'}
-
- astral-regex@2.0.0:
- resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}
- engines: {node: '>=8'}
-
- asynckit@0.4.0:
- resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
-
- azure-devops-node-api@12.5.0:
- resolution: {integrity: sha512-R5eFskGvOm3U/GzeAuxRkUsAl0hrAwGgWn6zAd2KrZmrEhWZVqLew4OOupbQlXUuojUzpGtq62SmdhJ06N88og==}
-
- balanced-match@1.0.2:
- resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
-
- base64-js@1.5.1:
- resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
-
- binaryextensions@6.11.0:
- resolution: {integrity: sha512-sXnYK/Ij80TO3lcqZVV2YgfKN5QjUWIRk/XSm2J/4bd/lPko3lvk0O4ZppH6m+6hB2/GTu+ptNwVFe1xh+QLQw==}
- engines: {node: '>=4'}
-
- birpc@2.8.0:
- resolution: {integrity: sha512-Bz2a4qD/5GRhiHSwj30c/8kC8QGj12nNDwz3D4ErQ4Xhy35dsSDvF+RA/tWpjyU0pdGtSDiEk6B5fBGE1qNVhw==}
-
- bl@4.1.0:
- resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
-
- boolbase@1.0.0:
- resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
-
- boundary@2.0.0:
- resolution: {integrity: sha512-rJKn5ooC9u8q13IMCrW0RSp31pxBCHE3y9V/tp3TdWSLf8Em3p6Di4NBpfzbJge9YjjFEsD0RtFEjtvHL5VyEA==}
-
- brace-expansion@1.1.12:
- resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
-
- braces@3.0.3:
- resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
- engines: {node: '>=8'}
-
- buffer-crc32@0.2.13:
- resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
-
- buffer-equal-constant-time@1.0.1:
- resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==}
-
- buffer@5.7.1:
- resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
-
- bundle-name@4.1.0:
- resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
- engines: {node: '>=18'}
-
- cac@6.7.14:
- resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
- engines: {node: '>=8'}
-
- call-bind-apply-helpers@1.0.2:
- resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
- engines: {node: '>= 0.4'}
-
- call-bound@1.0.4:
- resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
- engines: {node: '>= 0.4'}
-
- chalk@4.1.2:
- resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
- engines: {node: '>=10'}
-
- chalk@5.6.2:
- resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
- engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
-
- cheerio-select@2.1.0:
- resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==}
-
- cheerio@1.1.2:
- resolution: {integrity: sha512-IkxPpb5rS/d1IiLbHMgfPuS0FgiWTtFIm/Nj+2woXDLTZ7fOT2eqzgYbdMlLweqlHbsZjxEChoVK+7iph7jyQg==}
- engines: {node: '>=20.18.1'}
-
- chokidar@4.0.3:
- resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
- engines: {node: '>= 14.16.0'}
-
- chownr@1.1.4:
- resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
-
- cockatiel@3.2.1:
- resolution: {integrity: sha512-gfrHV6ZPkquExvMh9IOkKsBzNDk6sDuZ6DdBGUBkvFnTCqCxzpuq48RySgP0AnaqQkw2zynOFj9yly6T1Q2G5Q==}
- engines: {node: '>=16'}
-
- 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@12.1.0:
- resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
- engines: {node: '>=18'}
-
- concat-map@0.0.1:
- resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
-
- cross-spawn@7.0.6:
- resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
- engines: {node: '>= 8'}
-
- css-select@5.2.2:
- resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==}
-
- css-what@6.2.2:
- resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==}
- engines: {node: '>= 6'}
-
- debug@4.4.3:
- resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
- engines: {node: '>=6.0'}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
+snapshots:
+ "@discordjs/collection@2.1.1": {}
+
+ "@discordjs/rest@2.6.0":
+ dependencies:
+ "@discordjs/collection": 2.1.1
+ "@discordjs/util": 1.2.0
+ "@sapphire/async-queue": 1.5.5
+ "@sapphire/snowflake": 3.5.5
+ "@vladfrangu/async_event_emitter": 2.4.7
+ discord-api-types: 0.38.34
+ magic-bytes.js: 1.12.1
+ tslib: 2.8.1
+ undici: 6.21.3
+
+ "@discordjs/util@1.2.0":
+ dependencies:
+ discord-api-types: 0.38.34
+
+ "@emnapi/core@1.7.1":
+ dependencies:
+ "@emnapi/wasi-threads": 1.1.0
+ tslib: 2.8.1
optional: true
- decompress-response@6.0.0:
- resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
- engines: {node: '>=10'}
-
- deep-extend@0.6.0:
- resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
- engines: {node: '>=4.0.0'}
-
- default-browser-id@5.0.1:
- resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==}
- engines: {node: '>=18'}
-
- default-browser@5.4.0:
- resolution: {integrity: sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==}
- engines: {node: '>=18'}
-
- define-lazy-prop@3.0.0:
- resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
- engines: {node: '>=12'}
-
- delayed-stream@1.0.0:
- resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
- engines: {node: '>=0.4.0'}
-
- detect-libc@2.1.2:
- resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
- engines: {node: '>=8'}
-
- diff@8.0.2:
- resolution: {integrity: sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==}
- engines: {node: '>=0.3.1'}
-
- discord-api-types@0.38.34:
- resolution: {integrity: sha512-muq7xKGznj5MSFCzuIm/2TO7DpttuomUTemVM82fRqgnMl70YRzEyY24jlbiV6R9tzOTq6A6UnZ0bsfZeKD38Q==}
-
- dom-serializer@2.0.0:
- resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
-
- domelementtype@2.3.0:
- resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
-
- domhandler@5.0.3:
- resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
- engines: {node: '>= 4'}
-
- domutils@3.2.2:
- resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==}
-
- dts-resolver@2.1.3:
- resolution: {integrity: sha512-bihc7jPC90VrosXNzK0LTE2cuLP6jr0Ro8jk+kMugHReJVLIpHz/xadeq3MhuwyO4TD4OA3L1Q8pBBFRc08Tsw==}
- engines: {node: '>=20.19.0'}
- peerDependencies:
- oxc-resolver: '>=11.0.0'
- peerDependenciesMeta:
- oxc-resolver:
+ "@emnapi/runtime@1.7.1":
+ dependencies:
+ tslib: 2.8.1
optional: true
- dunder-proto@1.0.1:
- resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
- engines: {node: '>= 0.4'}
-
- eastasianwidth@0.2.0:
- resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
-
- ecdsa-sig-formatter@1.0.11:
- resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==}
-
- editions@6.22.0:
- resolution: {integrity: sha512-UgGlf8IW75je7HZjNDpJdCv4cGJWIi6yumFdZ0R7A8/CIhQiWUjyGLCxdHpd8bmyD1gnkfUNK0oeOXqUS2cpfQ==}
- engines: {ecmascript: '>= es5', node: '>=4'}
-
- emoji-regex@8.0.0:
- resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
-
- emoji-regex@9.2.2:
- resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
-
- empathic@2.0.0:
- resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==}
- engines: {node: '>=14'}
-
- encoding-sniffer@0.2.1:
- resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==}
-
- end-of-stream@1.4.5:
- resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==}
-
- entities@4.5.0:
- resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
- engines: {node: '>=0.12'}
-
- entities@6.0.1:
- resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==}
- engines: {node: '>=0.12'}
-
- environment@1.1.0:
- resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==}
- engines: {node: '>=18'}
-
- 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'}
-
- es-object-atoms@1.1.1:
- resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
- engines: {node: '>= 0.4'}
-
- es-set-tostringtag@2.1.0:
- resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
- engines: {node: '>= 0.4'}
-
- esprima@4.0.1:
- resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
- engines: {node: '>=4'}
- hasBin: true
-
- expand-template@2.0.3:
- resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==}
- engines: {node: '>=6'}
-
- fast-deep-equal@3.1.3:
- resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
-
- fast-glob@3.3.3:
- resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
- engines: {node: '>=8.6.0'}
-
- fast-uri@3.1.0:
- resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==}
-
- fastq@1.19.1:
- resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
-
- fd-slicer@1.1.0:
- resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==}
-
- fdir@6.5.0:
- resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
- engines: {node: '>=12.0.0'}
- peerDependencies:
- picomatch: ^3 || ^4
- peerDependenciesMeta:
- picomatch:
+ "@emnapi/wasi-threads@1.1.0":
+ dependencies:
+ tslib: 2.8.1
optional: true
- filesize@11.0.13:
- resolution: {integrity: sha512-mYJ/qXKvREuO0uH8LTQJ6v7GsUvVOguqxg2VTwQUkyTPXXRRWPdjuUPVqdBrJQhvci48OHlNGRnux+Slr2Rnvw==}
- engines: {node: '>= 10.8.0'}
-
- fill-range@7.1.1:
- resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
- engines: {node: '>=8'}
-
- foreground-child@3.3.1:
- resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
- engines: {node: '>=14'}
-
- form-data@4.0.5:
- resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==}
- engines: {node: '>= 6'}
-
- fs-constants@1.0.0:
- resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
-
- fs-extra@11.3.2:
- resolution: {integrity: sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==}
- engines: {node: '>=14.14'}
-
- function-bind@1.1.2:
- resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
-
- get-intrinsic@1.3.0:
- resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
- engines: {node: '>= 0.4'}
-
- get-proto@1.0.1:
- resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
- engines: {node: '>= 0.4'}
-
- get-tsconfig@4.13.0:
- resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==}
-
- git-up@8.1.1:
- resolution: {integrity: sha512-FDenSF3fVqBYSaJoYy1KSc2wosx0gCvKP+c+PRBht7cAaiCeQlBtfBDX9vgnNOHmdePlSFITVcn4pFfcgNvx3g==}
-
- git-url-parse@16.1.0:
- resolution: {integrity: sha512-cPLz4HuK86wClEW7iDdeAKcCVlWXmrLpb2L+G9goW0Z1dtpNS6BXXSOckUTlJT/LDQViE1QZKstNORzHsLnobw==}
-
- github-from-package@0.0.0:
- resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==}
-
- glob-parent@5.1.2:
- resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
- engines: {node: '>= 6'}
-
- glob@11.1.0:
- resolution: {integrity: sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==}
- engines: {node: 20 || >=22}
- hasBin: true
-
- globby@14.1.0:
- resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==}
- engines: {node: '>=18'}
-
- gopd@1.2.0:
- resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
- engines: {node: '>= 0.4'}
-
- graceful-fs@4.2.11:
- resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
-
- has-flag@4.0.0:
- resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
- engines: {node: '>=8'}
-
- has-symbols@1.1.0:
- resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
- engines: {node: '>= 0.4'}
-
- has-tostringtag@1.0.2:
- resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
- engines: {node: '>= 0.4'}
-
- hasown@2.0.2:
- resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
- engines: {node: '>= 0.4'}
-
- hookable@5.5.3:
- resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==}
-
- hosted-git-info@4.1.0:
- resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
- engines: {node: '>=10'}
-
- hosted-git-info@7.0.2:
- resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==}
- engines: {node: ^16.14.0 || >=18.0.0}
-
- htmlparser2@10.0.0:
- resolution: {integrity: sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==}
-
- http-proxy-agent@7.0.2:
- resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
- engines: {node: '>= 14'}
-
- https-proxy-agent@7.0.6:
- resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==}
- engines: {node: '>= 14'}
-
- 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@7.0.5:
- resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
- engines: {node: '>= 4'}
-
- index-to-position@1.2.0:
- resolution: {integrity: sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==}
- engines: {node: '>=18'}
-
- inherits@2.0.4:
- resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
-
- ini@1.3.8:
- resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
-
- is-docker@3.0.0:
- resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- 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-inside-container@1.0.0:
- resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
- engines: {node: '>=14.16'}
- hasBin: true
-
- is-number@7.0.0:
- resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
- engines: {node: '>=0.12.0'}
-
- is-ssh@1.4.1:
- resolution: {integrity: sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==}
-
- is-wsl@3.1.0:
- resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
- engines: {node: '>=16'}
-
- isexe@2.0.0:
- resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
-
- istextorbinary@9.5.0:
- resolution: {integrity: sha512-5mbUj3SiZXCuRf9fT3ibzbSSEWiy63gFfksmGfdOzujPjW3k+z8WvIBxcJHBoQNlaZaiyB25deviif2+osLmLw==}
- engines: {node: '>=4'}
-
- jackspeak@4.1.1:
- resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==}
- engines: {node: 20 || >=22}
-
- js-tokens@4.0.0:
- resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
-
- js-yaml@3.14.2:
- resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==}
- hasBin: true
-
- js-yaml@4.1.1:
- resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==}
- hasBin: true
-
- jsesc@3.1.0:
- resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
- engines: {node: '>=6'}
- hasBin: true
-
- json-schema-traverse@1.0.0:
- resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
-
- json5@2.2.3:
- resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
- engines: {node: '>=6'}
- hasBin: true
-
- jsonc-parser@3.3.1:
- resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==}
-
- jsonfile@6.2.0:
- resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==}
-
- jsonwebtoken@9.0.2:
- resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==}
- engines: {node: '>=12', npm: '>=6'}
-
- jwa@1.4.2:
- resolution: {integrity: sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==}
-
- jws@3.2.2:
- resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==}
-
- keytar@7.9.0:
- resolution: {integrity: sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==}
-
- leven@3.1.0:
- resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
- engines: {node: '>=6'}
-
- linkify-it@5.0.0:
- resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
-
- lodash.includes@4.3.0:
- resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==}
-
- lodash.isboolean@3.0.3:
- resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==}
-
- lodash.isinteger@4.0.4:
- resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==}
-
- lodash.isnumber@3.0.3:
- resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==}
-
- lodash.isplainobject@4.0.6:
- resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
-
- lodash.isstring@4.0.1:
- resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==}
-
- lodash.once@4.1.1:
- resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==}
-
- lodash.truncate@4.4.2:
- resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==}
-
- lodash@4.17.21:
- resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
-
- lru-cache@10.4.3:
- resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
-
- lru-cache@11.2.2:
- resolution: {integrity: sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==}
- engines: {node: 20 || >=22}
-
- lru-cache@6.0.0:
- resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
- engines: {node: '>=10'}
-
- magic-bytes.js@1.12.1:
- resolution: {integrity: sha512-ThQLOhN86ZkJ7qemtVRGYM+gRgR8GEXNli9H/PMvpnZsE44Xfh3wx9kGJaldg314v85m+bFW6WBMaVHJc/c3zA==}
-
- magic-string@0.30.21:
- resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
-
- markdown-it@14.1.0:
- resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==}
- hasBin: true
-
- math-intrinsics@1.1.0:
- resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
- engines: {node: '>= 0.4'}
-
- mdurl@2.0.0:
- resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==}
-
- 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@1.6.0:
- resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
- engines: {node: '>=4'}
- hasBin: true
-
- mimic-response@3.1.0:
- resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
- engines: {node: '>=10'}
-
- minimatch@10.1.1:
- resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==}
- engines: {node: 20 || >=22}
-
- minimatch@3.1.2:
- resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
-
- minimist@1.2.8:
- resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
-
- minipass@7.1.2:
- resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
- engines: {node: '>=16 || 14 >=14.17'}
-
- mkdirp-classic@0.5.3:
- resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
-
- ms@2.1.3:
- resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
-
- mute-stream@0.0.8:
- resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
-
- napi-build-utils@2.0.0:
- resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==}
-
- node-abi@3.85.0:
- resolution: {integrity: sha512-zsFhmbkAzwhTft6nd3VxcG0cvJsT70rL+BIGHWVq5fi6MwGrHwzqKaxXE+Hl2GmnGItnDKPPkO5/LQqjVkIdFg==}
- engines: {node: '>=10'}
-
- node-addon-api@4.3.0:
- resolution: {integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==}
-
- node-sarif-builder@3.3.0:
- resolution: {integrity: sha512-8taRy2nQs1xNs8iO2F0XbkZJEliiijpKgFVcyiwKjJ2+3X59LVI3wY84qRdJwRDpIo5GK8wvb1pxcJ+JVu3jrg==}
- engines: {node: '>=20'}
-
- normalize-package-data@6.0.2:
- resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==}
- engines: {node: ^16.14.0 || >=18.0.0}
-
- nth-check@2.1.1:
- resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
-
- object-inspect@1.13.4:
- resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
- engines: {node: '>= 0.4'}
-
- obug@2.1.1:
- resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==}
-
- once@1.4.0:
- resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
-
- open@10.2.0:
- resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==}
- engines: {node: '>=18'}
-
- p-map@7.0.4:
- resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==}
- engines: {node: '>=18'}
-
- package-json-from-dist@1.0.1:
- resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
-
- parse-json@8.3.0:
- resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==}
- engines: {node: '>=18'}
-
- parse-path@7.1.0:
- resolution: {integrity: sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==}
-
- parse-semver@1.1.1:
- resolution: {integrity: sha512-Eg1OuNntBMH0ojvEKSrvDSnwLmvVuUOSdylH/pSCPNMIspLlweJyIWXCE+k/5hm3cj/EBUYwmWkjhBALNP4LXQ==}
-
- parse-url@9.2.0:
- resolution: {integrity: sha512-bCgsFI+GeGWPAvAiUv63ZorMeif3/U0zaXABGJbOWt5OH2KCaPHF6S+0ok4aqM9RuIPGyZdx9tR9l13PsW4AYQ==}
- engines: {node: '>=14.13.0'}
-
- parse5-htmlparser2-tree-adapter@7.1.0:
- resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==}
-
- parse5-parser-stream@7.1.2:
- resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==}
-
- parse5@7.3.0:
- resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==}
-
- path-key@3.1.1:
- resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
- engines: {node: '>=8'}
-
- path-scurry@2.0.1:
- resolution: {integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==}
- engines: {node: 20 || >=22}
-
- path-type@6.0.0:
- resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==}
- engines: {node: '>=18'}
-
- pathe@2.0.3:
- resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
-
- 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'}
-
- picomatch@4.0.3:
- resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
- engines: {node: '>=12'}
+ "@napi-rs/wasm-runtime@1.0.7":
+ dependencies:
+ "@emnapi/core": 1.7.1
+ "@emnapi/runtime": 1.7.1
+ "@tybys/wasm-util": 0.10.1
+ optional: true
- pluralize@2.0.0:
- resolution: {integrity: sha512-TqNZzQCD4S42De9IfnnBvILN7HAW7riLqsCyp8lgjXeysyPlX5HhqKAcJHHHb9XskE4/a+7VGC9zzx8Ls0jOAw==}
+ "@oxc-project/types@0.98.0": {}
- pluralize@8.0.0:
- resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
- engines: {node: '>=4'}
+ "@rolldown/binding-android-arm64@1.0.0-beta.51":
+ optional: true
- prebuild-install@7.1.3:
- resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==}
- engines: {node: '>=10'}
- hasBin: true
+ "@rolldown/binding-darwin-arm64@1.0.0-beta.51":
+ optional: true
- protocols@2.0.2:
- resolution: {integrity: sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==}
+ "@rolldown/binding-darwin-x64@1.0.0-beta.51":
+ optional: true
- pump@3.0.3:
- resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==}
+ "@rolldown/binding-freebsd-x64@1.0.0-beta.51":
+ optional: true
- punycode.js@2.3.1:
- resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==}
- engines: {node: '>=6'}
+ "@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.51":
+ optional: true
- qs@6.14.0:
- resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==}
- engines: {node: '>=0.6'}
+ "@rolldown/binding-linux-arm64-gnu@1.0.0-beta.51":
+ optional: true
- quansync@0.2.11:
- resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==}
+ "@rolldown/binding-linux-arm64-musl@1.0.0-beta.51":
+ optional: true
- queue-microtask@1.2.3:
- resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+ "@rolldown/binding-linux-x64-gnu@1.0.0-beta.51":
+ optional: true
- rc-config-loader@4.1.3:
- resolution: {integrity: sha512-kD7FqML7l800i6pS6pvLyIE2ncbk9Du8Q0gp/4hMPhJU6ZxApkoLcGD8ZeqgiAlfwZ6BlETq6qqe+12DUL207w==}
+ "@rolldown/binding-linux-x64-musl@1.0.0-beta.51":
+ optional: true
- rc@1.2.8:
- resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
- hasBin: true
+ "@rolldown/binding-openharmony-arm64@1.0.0-beta.51":
+ optional: true
- read-pkg@9.0.1:
- resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==}
- engines: {node: '>=18'}
+ "@rolldown/binding-wasm32-wasi@1.0.0-beta.51":
+ dependencies:
+ "@napi-rs/wasm-runtime": 1.0.7
+ optional: true
- read@1.0.7:
- resolution: {integrity: sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==}
- engines: {node: '>=0.8'}
+ "@rolldown/binding-win32-arm64-msvc@1.0.0-beta.51":
+ optional: true
- readable-stream@3.6.2:
- resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
- engines: {node: '>= 6'}
+ "@rolldown/binding-win32-ia32-msvc@1.0.0-beta.51":
+ optional: true
- readdirp@4.1.2:
- resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
- engines: {node: '>= 14.18.0'}
+ "@rolldown/binding-win32-x64-msvc@1.0.0-beta.51":
+ optional: true
- require-from-string@2.0.2:
- resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
- engines: {node: '>=0.10.0'}
+ "@rolldown/pluginutils@1.0.0-beta.51": {}
- resolve-pkg-maps@1.0.0:
- resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
+ "@sapphire/async-queue@1.5.5": {}
- reusify@1.1.0:
- resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
- engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+ "@sapphire/snowflake@3.5.5": {}
- rolldown-plugin-dts@0.18.0:
- resolution: {integrity: sha512-2CJtKYa9WPClZxkJeCt4bGUegQvQKQ1VJp9jFJzG0h8I/80XI6qDgoWfVJUOEhT2swbsRQh/42N1RIWvbXT4rA==}
- engines: {node: '>=20.19.0'}
- peerDependencies:
- '@ts-macro/tsc': ^0.3.6
- '@typescript/native-preview': '>=7.0.0-dev.20250601.1'
- rolldown: ^1.0.0-beta.51
- typescript: ^5.0.0
- vue-tsc: ~3.1.0
- peerDependenciesMeta:
- '@ts-macro/tsc':
+ "@tybys/wasm-util@0.10.1":
+ dependencies:
+ tslib: 2.8.1
optional: true
- '@typescript/native-preview':
- optional: true
- typescript:
- optional: true
- vue-tsc:
- optional: true
-
- rolldown@1.0.0-beta.51:
- resolution: {integrity: sha512-ZRLgPlS91l4JztLYEZnmMcd3Umcla1hkXJgiEiR4HloRJBBoeaX8qogTu5Jfu36rRMVLndzqYv0h+M5gJAkUfg==}
- engines: {node: ^20.19.0 || >=22.12.0}
- hasBin: true
-
- run-applescript@7.1.0:
- resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==}
- engines: {node: '>=18'}
-
- run-parallel@1.2.0:
- resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
-
- safe-buffer@5.2.1:
- resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
-
- safer-buffer@2.1.2:
- resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
-
- sax@1.4.3:
- resolution: {integrity: sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==}
-
- secretlint@10.2.2:
- resolution: {integrity: sha512-xVpkeHV/aoWe4vP4TansF622nBEImzCY73y/0042DuJ29iKIaqgoJ8fGxre3rVSHHbxar4FdJobmTnLp9AU0eg==}
- engines: {node: '>=20.0.0'}
- hasBin: true
-
- semver@5.7.2:
- resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
- hasBin: true
-
- semver@7.7.3:
- resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==}
- engines: {node: '>=10'}
- hasBin: true
-
- 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'}
-
- side-channel-list@1.0.0:
- resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
- engines: {node: '>= 0.4'}
-
- side-channel-map@1.0.1:
- resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
- engines: {node: '>= 0.4'}
-
- side-channel-weakmap@1.0.2:
- resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
- engines: {node: '>= 0.4'}
-
- side-channel@1.1.0:
- resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
- engines: {node: '>= 0.4'}
-
- signal-exit@4.1.0:
- resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
- engines: {node: '>=14'}
-
- simple-concat@1.0.1:
- resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==}
-
- simple-get@4.0.1:
- resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==}
-
- slash@5.1.0:
- resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
- engines: {node: '>=14.16'}
-
- slice-ansi@4.0.0:
- resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==}
- engines: {node: '>=10'}
-
- spdx-correct@3.2.0:
- resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
-
- spdx-exceptions@2.5.0:
- resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
-
- spdx-expression-parse@3.0.1:
- resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
-
- spdx-license-ids@3.0.22:
- resolution: {integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==}
-
- sprintf-js@1.0.3:
- resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
-
- 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.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.2:
- resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==}
- engines: {node: '>=12'}
-
- strip-json-comments@2.0.1:
- resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
- engines: {node: '>=0.10.0'}
-
- structured-source@4.0.0:
- resolution: {integrity: sha512-qGzRFNJDjFieQkl/sVOI2dUjHKRyL9dAJi2gCPGJLbJHBIkyOHxjuocpIEfbLioX+qSJpvbYdT49/YCdMznKxA==}
-
- supports-color@7.2.0:
- resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
- engines: {node: '>=8'}
-
- supports-hyperlinks@3.2.0:
- resolution: {integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==}
- engines: {node: '>=14.18'}
-
- table@6.9.0:
- resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==}
- engines: {node: '>=10.0.0'}
-
- tar-fs@2.1.4:
- resolution: {integrity: sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==}
-
- tar-stream@2.2.0:
- resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
- engines: {node: '>=6'}
-
- terminal-link@4.0.0:
- resolution: {integrity: sha512-lk+vH+MccxNqgVqSnkMVKx4VLJfnLjDBGzH16JVZjKE2DoxP57s6/vt6JmXV5I3jBcfGrxNrYtC+mPtU7WJztA==}
- engines: {node: '>=18'}
-
- text-table@0.2.0:
- resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
-
- textextensions@6.11.0:
- resolution: {integrity: sha512-tXJwSr9355kFJI3lbCkPpUH5cP8/M0GGy2xLO34aZCjMXBaK3SoPnZwr/oWmo1FdCnELcs4npdCIOFtq9W3ruQ==}
- engines: {node: '>=4'}
-
- tinyexec@1.0.2:
- resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==}
- engines: {node: '>=18'}
-
- tinyglobby@0.2.15:
- resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
- engines: {node: '>=12.0.0'}
-
- tmp@0.2.5:
- resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==}
- engines: {node: '>=14.14'}
-
- to-regex-range@5.0.1:
- resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
- engines: {node: '>=8.0'}
-
- tree-kill@1.2.2:
- resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
- hasBin: true
-
- tsdown@0.16.6:
- resolution: {integrity: sha512-g3xHEnGdfwJTlXhEkqww3Q/KlCfyNFw4rnzuQ9Gqw8T2xjDYrw94qmSw5wYYTAW5zV1sEfWDlfgxZo5mmtu0NQ==}
- engines: {node: '>=20.19.0'}
- hasBin: true
- peerDependencies:
- '@arethetypeswrong/core': ^0.18.1
- '@vitejs/devtools': ^0.0.0-alpha.17
- publint: ^0.3.0
- typescript: ^5.0.0
- unplugin-lightningcss: ^0.4.0
- unplugin-unused: ^0.5.0
- peerDependenciesMeta:
- '@arethetypeswrong/core':
- optional: true
- '@vitejs/devtools':
- optional: true
- publint:
- optional: true
- typescript:
- optional: true
- unplugin-lightningcss:
- optional: true
- unplugin-unused:
- optional: true
-
- tslib@2.8.1:
- resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
-
- tunnel-agent@0.6.0:
- resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
-
- tunnel@0.0.6:
- resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==}
- engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'}
-
- type-fest@4.41.0:
- resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
- engines: {node: '>=16'}
-
- typed-rest-client@1.8.11:
- resolution: {integrity: sha512-5UvfMpd1oelmUPRbbaVnq+rHP7ng2cE4qoQkQeAqxRL6PklkxsM0g32/HL0yfvruK6ojQ5x8EE+HF4YV6DtuCA==}
-
- typescript@5.9.3:
- resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
- engines: {node: '>=14.17'}
- hasBin: true
-
- uc.micro@2.1.0:
- resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
-
- unconfig-core@7.4.1:
- resolution: {integrity: sha512-Bp/bPZjV2Vl/fofoA2OYLSnw1Z0MOhCX7zHnVCYrazpfZvseBbGhwcNQMxsg185Mqh7VZQqK3C8hFG/Dyng+yA==}
-
- underscore@1.13.7:
- resolution: {integrity: sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==}
-
- undici-types@6.21.0:
- resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
-
- undici@6.21.3:
- resolution: {integrity: sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==}
- engines: {node: '>=18.17'}
-
- undici@7.16.0:
- resolution: {integrity: sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g==}
- engines: {node: '>=20.18.1'}
-
- unicorn-magic@0.1.0:
- resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==}
- engines: {node: '>=18'}
-
- unicorn-magic@0.3.0:
- resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==}
- engines: {node: '>=18'}
-
- universalify@2.0.1:
- resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
- engines: {node: '>= 10.0.0'}
-
- unrun@0.2.11:
- resolution: {integrity: sha512-HjUuNLRGfRxMvxkwOuO/CpkSzdizTPPApbarLplsTzUm8Kex+nS9eomKU1qgVus6WGWkDYhtf/mgNxGEpyTR6A==}
- engines: {node: '>=20.19.0'}
- hasBin: true
- peerDependencies:
- synckit: ^0.11.11
- peerDependenciesMeta:
- synckit:
- optional: true
-
- url-join@4.0.1:
- resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==}
-
- util-deprecate@1.0.2:
- resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
-
- uuid@8.3.2:
- resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
- hasBin: true
-
- validate-npm-package-license@3.0.4:
- resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
-
- version-range@4.15.0:
- resolution: {integrity: sha512-Ck0EJbAGxHwprkzFO966t4/5QkRuzh+/I1RxhLgUKKwEn+Cd8NwM60mE3AqBZg5gYODoXW0EFsQvbZjRlvdqbg==}
- engines: {node: '>=4'}
-
- whatwg-encoding@3.1.1:
- resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==}
- engines: {node: '>=18'}
-
- whatwg-mimetype@4.0.0:
- resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==}
- engines: {node: '>=18'}
-
- which@2.0.2:
- resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
- engines: {node: '>= 8'}
- hasBin: true
-
- 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==}
-
- ws@8.18.3:
- resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==}
- engines: {node: '>=10.0.0'}
- peerDependencies:
- bufferutil: ^4.0.1
- utf-8-validate: '>=5.0.2'
- peerDependenciesMeta:
- bufferutil:
- optional: true
- utf-8-validate:
- optional: true
-
- wsl-utils@0.1.0:
- resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==}
- engines: {node: '>=18'}
-
- xml2js@0.5.0:
- resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==}
- engines: {node: '>=4.0.0'}
-
- xmlbuilder@11.0.1:
- resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==}
- engines: {node: '>=4.0'}
-
- yallist@4.0.0:
- resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
-
- yauzl@2.10.0:
- resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==}
-
- yazl@2.5.1:
- resolution: {integrity: sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==}
-
-snapshots:
-
- '@azu/format-text@1.0.2': {}
-
- '@azu/style-format@1.0.1':
- dependencies:
- '@azu/format-text': 1.0.2
-
- '@azure/abort-controller@2.1.2':
- dependencies:
- tslib: 2.8.1
-
- '@azure/core-auth@1.10.1':
- dependencies:
- '@azure/abort-controller': 2.1.2
- '@azure/core-util': 1.13.1
- tslib: 2.8.1
- transitivePeerDependencies:
- - supports-color
-
- '@azure/core-client@1.10.1':
- dependencies:
- '@azure/abort-controller': 2.1.2
- '@azure/core-auth': 1.10.1
- '@azure/core-rest-pipeline': 1.22.2
- '@azure/core-tracing': 1.3.1
- '@azure/core-util': 1.13.1
- '@azure/logger': 1.3.0
- tslib: 2.8.1
- transitivePeerDependencies:
- - supports-color
-
- '@azure/core-rest-pipeline@1.22.2':
- dependencies:
- '@azure/abort-controller': 2.1.2
- '@azure/core-auth': 1.10.1
- '@azure/core-tracing': 1.3.1
- '@azure/core-util': 1.13.1
- '@azure/logger': 1.3.0
- '@typespec/ts-http-runtime': 0.3.2
- tslib: 2.8.1
- transitivePeerDependencies:
- - supports-color
-
- '@azure/core-tracing@1.3.1':
- dependencies:
- tslib: 2.8.1
-
- '@azure/core-util@1.13.1':
- dependencies:
- '@azure/abort-controller': 2.1.2
- '@typespec/ts-http-runtime': 0.3.2
- tslib: 2.8.1
- transitivePeerDependencies:
- - supports-color
-
- '@azure/identity@4.13.0':
- dependencies:
- '@azure/abort-controller': 2.1.2
- '@azure/core-auth': 1.10.1
- '@azure/core-client': 1.10.1
- '@azure/core-rest-pipeline': 1.22.2
- '@azure/core-tracing': 1.3.1
- '@azure/core-util': 1.13.1
- '@azure/logger': 1.3.0
- '@azure/msal-browser': 4.26.2
- '@azure/msal-node': 3.8.3
- open: 10.2.0
- tslib: 2.8.1
- transitivePeerDependencies:
- - supports-color
-
- '@azure/logger@1.3.0':
- dependencies:
- '@typespec/ts-http-runtime': 0.3.2
- tslib: 2.8.1
- transitivePeerDependencies:
- - supports-color
-
- '@azure/msal-browser@4.26.2':
- dependencies:
- '@azure/msal-common': 15.13.2
-
- '@azure/msal-common@15.13.2': {}
-
- '@azure/msal-node@3.8.3':
- dependencies:
- '@azure/msal-common': 15.13.2
- jsonwebtoken: 9.0.2
- uuid: 8.3.2
-
- '@babel/code-frame@7.27.1':
- dependencies:
- '@babel/helper-validator-identifier': 7.28.5
- js-tokens: 4.0.0
- picocolors: 1.1.1
-
- '@babel/generator@7.28.5':
- dependencies:
- '@babel/parser': 7.28.5
- '@babel/types': 7.28.5
- '@jridgewell/gen-mapping': 0.3.13
- '@jridgewell/trace-mapping': 0.3.31
- jsesc: 3.1.0
-
- '@babel/helper-string-parser@7.27.1': {}
-
- '@babel/helper-validator-identifier@7.28.5': {}
-
- '@babel/parser@7.28.5':
- dependencies:
- '@babel/types': 7.28.5
-
- '@babel/types@7.28.5':
- dependencies:
- '@babel/helper-string-parser': 7.27.1
- '@babel/helper-validator-identifier': 7.28.5
-
- '@discordjs/collection@2.1.1': {}
-
- '@discordjs/rest@2.6.0':
- dependencies:
- '@discordjs/collection': 2.1.1
- '@discordjs/util': 1.2.0
- '@sapphire/async-queue': 1.5.5
- '@sapphire/snowflake': 3.5.5
- '@vladfrangu/async_event_emitter': 2.4.7
- discord-api-types: 0.38.34
- magic-bytes.js: 1.12.1
- tslib: 2.8.1
- undici: 6.21.3
-
- '@discordjs/util@1.2.0':
- dependencies:
- discord-api-types: 0.38.34
-
- '@emnapi/core@1.7.1':
- dependencies:
- '@emnapi/wasi-threads': 1.1.0
- tslib: 2.8.1
- optional: true
-
- '@emnapi/runtime@1.7.1':
- dependencies:
- tslib: 2.8.1
- optional: true
-
- '@emnapi/wasi-threads@1.1.0':
- dependencies:
- tslib: 2.8.1
- optional: true
-
- '@isaacs/balanced-match@4.0.1': {}
-
- '@isaacs/brace-expansion@5.0.0':
- dependencies:
- '@isaacs/balanced-match': 4.0.1
-
- '@isaacs/cliui@8.0.2':
- dependencies:
- string-width: 5.1.2
- string-width-cjs: string-width@4.2.3
- strip-ansi: 7.1.2
- 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.13':
- dependencies:
- '@jridgewell/sourcemap-codec': 1.5.5
- '@jridgewell/trace-mapping': 0.3.31
-
- '@jridgewell/resolve-uri@3.1.2': {}
-
- '@jridgewell/sourcemap-codec@1.5.5': {}
-
- '@jridgewell/trace-mapping@0.3.31':
- dependencies:
- '@jridgewell/resolve-uri': 3.1.2
- '@jridgewell/sourcemap-codec': 1.5.5
-
- '@napi-rs/wasm-runtime@1.0.7':
- dependencies:
- '@emnapi/core': 1.7.1
- '@emnapi/runtime': 1.7.1
- '@tybys/wasm-util': 0.10.1
- optional: true
-
- '@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.1
-
- '@oxc-project/runtime@0.96.0': {}
-
- '@oxc-project/types@0.98.0': {}
-
- '@quansync/fs@0.1.5':
- dependencies:
- quansync: 0.2.11
-
- '@rolldown/binding-android-arm64@1.0.0-beta.51':
- optional: true
-
- '@rolldown/binding-darwin-arm64@1.0.0-beta.51':
- optional: true
-
- '@rolldown/binding-darwin-x64@1.0.0-beta.51':
- optional: true
-
- '@rolldown/binding-freebsd-x64@1.0.0-beta.51':
- optional: true
-
- '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.51':
- optional: true
-
- '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.51':
- optional: true
-
- '@rolldown/binding-linux-arm64-musl@1.0.0-beta.51':
- optional: true
-
- '@rolldown/binding-linux-x64-gnu@1.0.0-beta.51':
- optional: true
-
- '@rolldown/binding-linux-x64-musl@1.0.0-beta.51':
- optional: true
-
- '@rolldown/binding-openharmony-arm64@1.0.0-beta.51':
- optional: true
-
- '@rolldown/binding-wasm32-wasi@1.0.0-beta.51':
- dependencies:
- '@napi-rs/wasm-runtime': 1.0.7
- optional: true
-
- '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.51':
- optional: true
-
- '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.51':
- optional: true
-
- '@rolldown/binding-win32-x64-msvc@1.0.0-beta.51':
- optional: true
-
- '@rolldown/pluginutils@1.0.0-beta.51': {}
-
- '@sapphire/async-queue@1.5.5': {}
-
- '@sapphire/snowflake@3.5.5': {}
-
- '@secretlint/config-creator@10.2.2':
- dependencies:
- '@secretlint/types': 10.2.2
-
- '@secretlint/config-loader@10.2.2':
- dependencies:
- '@secretlint/profiler': 10.2.2
- '@secretlint/resolver': 10.2.2
- '@secretlint/types': 10.2.2
- ajv: 8.17.1
- debug: 4.4.3
- rc-config-loader: 4.1.3
- transitivePeerDependencies:
- - supports-color
-
- '@secretlint/core@10.2.2':
- dependencies:
- '@secretlint/profiler': 10.2.2
- '@secretlint/types': 10.2.2
- debug: 4.4.3
- structured-source: 4.0.0
- transitivePeerDependencies:
- - supports-color
-
- '@secretlint/formatter@10.2.2':
- dependencies:
- '@secretlint/resolver': 10.2.2
- '@secretlint/types': 10.2.2
- '@textlint/linter-formatter': 15.4.0
- '@textlint/module-interop': 15.4.0
- '@textlint/types': 15.4.0
- chalk: 5.6.2
- debug: 4.4.3
- pluralize: 8.0.0
- strip-ansi: 7.1.2
- table: 6.9.0
- terminal-link: 4.0.0
- transitivePeerDependencies:
- - supports-color
-
- '@secretlint/node@10.2.2':
- dependencies:
- '@secretlint/config-loader': 10.2.2
- '@secretlint/core': 10.2.2
- '@secretlint/formatter': 10.2.2
- '@secretlint/profiler': 10.2.2
- '@secretlint/source-creator': 10.2.2
- '@secretlint/types': 10.2.2
- debug: 4.4.3
- p-map: 7.0.4
- transitivePeerDependencies:
- - supports-color
-
- '@secretlint/profiler@10.2.2': {}
-
- '@secretlint/resolver@10.2.2': {}
-
- '@secretlint/secretlint-formatter-sarif@10.2.2':
- dependencies:
- node-sarif-builder: 3.3.0
-
- '@secretlint/secretlint-rule-no-dotenv@10.2.2':
- dependencies:
- '@secretlint/types': 10.2.2
-
- '@secretlint/secretlint-rule-preset-recommend@10.2.2': {}
-
- '@secretlint/source-creator@10.2.2':
- dependencies:
- '@secretlint/types': 10.2.2
- istextorbinary: 9.5.0
-
- '@secretlint/types@10.2.2': {}
-
- '@sindresorhus/merge-streams@2.3.0': {}
-
- '@textlint/ast-node-types@15.4.0': {}
-
- '@textlint/linter-formatter@15.4.0':
- dependencies:
- '@azu/format-text': 1.0.2
- '@azu/style-format': 1.0.1
- '@textlint/module-interop': 15.4.0
- '@textlint/resolver': 15.4.0
- '@textlint/types': 15.4.0
- chalk: 4.1.2
- debug: 4.4.3
- js-yaml: 3.14.2
- lodash: 4.17.21
- pluralize: 2.0.0
- string-width: 4.2.3
- strip-ansi: 6.0.1
- table: 6.9.0
- text-table: 0.2.0
- transitivePeerDependencies:
- - supports-color
-
- '@textlint/module-interop@15.4.0': {}
-
- '@textlint/resolver@15.4.0': {}
-
- '@textlint/types@15.4.0':
- dependencies:
- '@textlint/ast-node-types': 15.4.0
-
- '@tybys/wasm-util@0.10.1':
- dependencies:
- tslib: 2.8.1
- optional: true
-
- '@types/node@22.15.35':
- dependencies:
- undici-types: 6.21.0
-
- '@types/normalize-package-data@2.4.4': {}
-
- '@types/parse-path@7.1.0':
- dependencies:
- parse-path: 7.1.0
-
- '@types/sarif@2.1.7': {}
-
- '@types/vscode@1.52.0': {}
-
- '@typespec/ts-http-runtime@0.3.2':
- dependencies:
- http-proxy-agent: 7.0.2
- https-proxy-agent: 7.0.6
- tslib: 2.8.1
- transitivePeerDependencies:
- - supports-color
-
- '@vladfrangu/async_event_emitter@2.4.7': {}
-
- '@vscode/vsce-sign-alpine-arm64@2.0.6':
- optional: true
-
- '@vscode/vsce-sign-alpine-x64@2.0.6':
- optional: true
-
- '@vscode/vsce-sign-darwin-arm64@2.0.6':
- optional: true
-
- '@vscode/vsce-sign-darwin-x64@2.0.6':
- optional: true
-
- '@vscode/vsce-sign-linux-arm64@2.0.6':
- optional: true
-
- '@vscode/vsce-sign-linux-arm@2.0.6':
- optional: true
-
- '@vscode/vsce-sign-linux-x64@2.0.6':
- optional: true
-
- '@vscode/vsce-sign-win32-arm64@2.0.6':
- optional: true
-
- '@vscode/vsce-sign-win32-x64@2.0.6':
- optional: true
-
- '@vscode/vsce-sign@2.0.9':
- optionalDependencies:
- '@vscode/vsce-sign-alpine-arm64': 2.0.6
- '@vscode/vsce-sign-alpine-x64': 2.0.6
- '@vscode/vsce-sign-darwin-arm64': 2.0.6
- '@vscode/vsce-sign-darwin-x64': 2.0.6
- '@vscode/vsce-sign-linux-arm': 2.0.6
- '@vscode/vsce-sign-linux-arm64': 2.0.6
- '@vscode/vsce-sign-linux-x64': 2.0.6
- '@vscode/vsce-sign-win32-arm64': 2.0.6
- '@vscode/vsce-sign-win32-x64': 2.0.6
-
- '@vscode/vsce@3.7.0':
- dependencies:
- '@azure/identity': 4.13.0
- '@secretlint/node': 10.2.2
- '@secretlint/secretlint-formatter-sarif': 10.2.2
- '@secretlint/secretlint-rule-no-dotenv': 10.2.2
- '@secretlint/secretlint-rule-preset-recommend': 10.2.2
- '@vscode/vsce-sign': 2.0.9
- azure-devops-node-api: 12.5.0
- chalk: 4.1.2
- cheerio: 1.1.2
- cockatiel: 3.2.1
- commander: 12.1.0
- form-data: 4.0.5
- glob: 11.1.0
- hosted-git-info: 4.1.0
- jsonc-parser: 3.3.1
- leven: 3.1.0
- markdown-it: 14.1.0
- mime: 1.6.0
- minimatch: 3.1.2
- parse-semver: 1.1.1
- read: 1.0.7
- secretlint: 10.2.2
- semver: 7.7.3
- tmp: 0.2.5
- typed-rest-client: 1.8.11
- url-join: 4.0.1
- xml2js: 0.5.0
- yauzl: 2.10.0
- yazl: 2.5.1
- optionalDependencies:
- keytar: 7.9.0
- transitivePeerDependencies:
- - supports-color
-
- '@xhayper/discord-rpc@1.3.0':
- dependencies:
- '@discordjs/rest': 2.6.0
- '@vladfrangu/async_event_emitter': 2.4.7
- discord-api-types: 0.38.34
- ws: 8.18.3
- transitivePeerDependencies:
- - bufferutil
- - utf-8-validate
-
- agent-base@7.1.4: {}
-
- ajv@8.17.1:
- dependencies:
- fast-deep-equal: 3.1.3
- fast-uri: 3.1.0
- json-schema-traverse: 1.0.0
- require-from-string: 2.0.2
-
- ansi-escapes@7.2.0:
- dependencies:
- environment: 1.1.0
-
- ansi-regex@5.0.1: {}
-
- ansi-regex@6.2.2: {}
-
- ansi-styles@4.3.0:
- dependencies:
- color-convert: 2.0.1
-
- ansi-styles@6.2.3: {}
-
- ansis@4.2.0: {}
-
- argparse@1.0.10:
- dependencies:
- sprintf-js: 1.0.3
-
- argparse@2.0.1: {}
-
- ast-kit@2.2.0:
- dependencies:
- '@babel/parser': 7.28.5
- pathe: 2.0.3
-
- astral-regex@2.0.0: {}
-
- asynckit@0.4.0: {}
-
- azure-devops-node-api@12.5.0:
- dependencies:
- tunnel: 0.0.6
- typed-rest-client: 1.8.11
-
- balanced-match@1.0.2: {}
-
- base64-js@1.5.1:
- optional: true
-
- binaryextensions@6.11.0:
- dependencies:
- editions: 6.22.0
-
- birpc@2.8.0: {}
-
- bl@4.1.0:
- dependencies:
- buffer: 5.7.1
- inherits: 2.0.4
- readable-stream: 3.6.2
- optional: true
-
- boolbase@1.0.0: {}
-
- boundary@2.0.0: {}
-
- brace-expansion@1.1.12:
- dependencies:
- balanced-match: 1.0.2
- concat-map: 0.0.1
-
- braces@3.0.3:
- dependencies:
- fill-range: 7.1.1
-
- buffer-crc32@0.2.13: {}
-
- buffer-equal-constant-time@1.0.1: {}
-
- buffer@5.7.1:
- dependencies:
- base64-js: 1.5.1
- ieee754: 1.2.1
- optional: true
-
- bundle-name@4.1.0:
- dependencies:
- run-applescript: 7.1.0
-
- cac@6.7.14: {}
-
- call-bind-apply-helpers@1.0.2:
- dependencies:
- es-errors: 1.3.0
- function-bind: 1.1.2
-
- call-bound@1.0.4:
- dependencies:
- call-bind-apply-helpers: 1.0.2
- get-intrinsic: 1.3.0
-
- chalk@4.1.2:
- dependencies:
- ansi-styles: 4.3.0
- supports-color: 7.2.0
-
- chalk@5.6.2: {}
-
- cheerio-select@2.1.0:
- dependencies:
- boolbase: 1.0.0
- css-select: 5.2.2
- css-what: 6.2.2
- domelementtype: 2.3.0
- domhandler: 5.0.3
- domutils: 3.2.2
-
- cheerio@1.1.2:
- dependencies:
- cheerio-select: 2.1.0
- dom-serializer: 2.0.0
- domhandler: 5.0.3
- domutils: 3.2.2
- encoding-sniffer: 0.2.1
- htmlparser2: 10.0.0
- parse5: 7.3.0
- parse5-htmlparser2-tree-adapter: 7.1.0
- parse5-parser-stream: 7.1.2
- undici: 7.16.0
- whatwg-mimetype: 4.0.0
-
- chokidar@4.0.3:
- dependencies:
- readdirp: 4.1.2
-
- chownr@1.1.4:
- optional: true
-
- cockatiel@3.2.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@12.1.0: {}
-
- concat-map@0.0.1: {}
-
- cross-spawn@7.0.6:
- dependencies:
- path-key: 3.1.1
- shebang-command: 2.0.0
- which: 2.0.2
-
- css-select@5.2.2:
- dependencies:
- boolbase: 1.0.0
- css-what: 6.2.2
- domhandler: 5.0.3
- domutils: 3.2.2
- nth-check: 2.1.1
-
- css-what@6.2.2: {}
-
- debug@4.4.3:
- dependencies:
- ms: 2.1.3
-
- decompress-response@6.0.0:
- dependencies:
- mimic-response: 3.1.0
- optional: true
-
- deep-extend@0.6.0:
- optional: true
-
- default-browser-id@5.0.1: {}
-
- default-browser@5.4.0:
- dependencies:
- bundle-name: 4.1.0
- default-browser-id: 5.0.1
-
- define-lazy-prop@3.0.0: {}
-
- delayed-stream@1.0.0: {}
-
- detect-libc@2.1.2:
- optional: true
-
- diff@8.0.2: {}
-
- discord-api-types@0.38.34: {}
-
- dom-serializer@2.0.0:
- dependencies:
- domelementtype: 2.3.0
- domhandler: 5.0.3
- entities: 4.5.0
-
- domelementtype@2.3.0: {}
-
- domhandler@5.0.3:
- dependencies:
- domelementtype: 2.3.0
-
- domutils@3.2.2:
- dependencies:
- dom-serializer: 2.0.0
- domelementtype: 2.3.0
- domhandler: 5.0.3
-
- dts-resolver@2.1.3: {}
-
- dunder-proto@1.0.1:
- dependencies:
- call-bind-apply-helpers: 1.0.2
- es-errors: 1.3.0
- gopd: 1.2.0
-
- eastasianwidth@0.2.0: {}
-
- ecdsa-sig-formatter@1.0.11:
- dependencies:
- safe-buffer: 5.2.1
-
- editions@6.22.0:
- dependencies:
- version-range: 4.15.0
-
- emoji-regex@8.0.0: {}
-
- emoji-regex@9.2.2: {}
-
- empathic@2.0.0: {}
-
- encoding-sniffer@0.2.1:
- dependencies:
- iconv-lite: 0.6.3
- whatwg-encoding: 3.1.1
-
- end-of-stream@1.4.5:
- dependencies:
- once: 1.4.0
- optional: true
-
- entities@4.5.0: {}
-
- entities@6.0.1: {}
-
- environment@1.1.0: {}
-
- es-define-property@1.0.1: {}
-
- es-errors@1.3.0: {}
-
- es-object-atoms@1.1.1:
- dependencies:
- es-errors: 1.3.0
-
- es-set-tostringtag@2.1.0:
- dependencies:
- es-errors: 1.3.0
- get-intrinsic: 1.3.0
- has-tostringtag: 1.0.2
- hasown: 2.0.2
-
- esprima@4.0.1: {}
-
- expand-template@2.0.3:
- optional: true
-
- fast-deep-equal@3.1.3: {}
-
- 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-uri@3.1.0: {}
-
- fastq@1.19.1:
- dependencies:
- reusify: 1.1.0
-
- fd-slicer@1.1.0:
- dependencies:
- pend: 1.2.0
-
- fdir@6.5.0(picomatch@4.0.3):
- optionalDependencies:
- picomatch: 4.0.3
-
- filesize@11.0.13: {}
-
- fill-range@7.1.1:
- dependencies:
- to-regex-range: 5.0.1
-
- foreground-child@3.3.1:
- dependencies:
- cross-spawn: 7.0.6
- signal-exit: 4.1.0
-
- form-data@4.0.5:
- dependencies:
- asynckit: 0.4.0
- combined-stream: 1.0.8
- es-set-tostringtag: 2.1.0
- hasown: 2.0.2
- mime-types: 2.1.35
-
- fs-constants@1.0.0:
- optional: true
-
- fs-extra@11.3.2:
- dependencies:
- graceful-fs: 4.2.11
- jsonfile: 6.2.0
- universalify: 2.0.1
-
- function-bind@1.1.2: {}
-
- get-intrinsic@1.3.0:
- dependencies:
- call-bind-apply-helpers: 1.0.2
- es-define-property: 1.0.1
- es-errors: 1.3.0
- es-object-atoms: 1.1.1
- function-bind: 1.1.2
- get-proto: 1.0.1
- gopd: 1.2.0
- has-symbols: 1.1.0
- hasown: 2.0.2
- math-intrinsics: 1.1.0
-
- get-proto@1.0.1:
- dependencies:
- dunder-proto: 1.0.1
- es-object-atoms: 1.1.1
-
- get-tsconfig@4.13.0:
- dependencies:
- resolve-pkg-maps: 1.0.0
-
- git-up@8.1.1:
- dependencies:
- is-ssh: 1.4.1
- parse-url: 9.2.0
-
- git-url-parse@16.1.0:
- dependencies:
- git-up: 8.1.1
-
- github-from-package@0.0.0:
- optional: true
-
- glob-parent@5.1.2:
- dependencies:
- is-glob: 4.0.3
-
- glob@11.1.0:
- dependencies:
- foreground-child: 3.3.1
- jackspeak: 4.1.1
- minimatch: 10.1.1
- minipass: 7.1.2
- package-json-from-dist: 1.0.1
- path-scurry: 2.0.1
-
- globby@14.1.0:
- dependencies:
- '@sindresorhus/merge-streams': 2.3.0
- fast-glob: 3.3.3
- ignore: 7.0.5
- path-type: 6.0.0
- slash: 5.1.0
- unicorn-magic: 0.3.0
-
- gopd@1.2.0: {}
-
- graceful-fs@4.2.11: {}
-
- has-flag@4.0.0: {}
-
- has-symbols@1.1.0: {}
-
- has-tostringtag@1.0.2:
- dependencies:
- has-symbols: 1.1.0
-
- hasown@2.0.2:
- dependencies:
- function-bind: 1.1.2
-
- hookable@5.5.3: {}
-
- hosted-git-info@4.1.0:
- dependencies:
- lru-cache: 6.0.0
-
- hosted-git-info@7.0.2:
- dependencies:
- lru-cache: 10.4.3
-
- htmlparser2@10.0.0:
- dependencies:
- domelementtype: 2.3.0
- domhandler: 5.0.3
- domutils: 3.2.2
- entities: 6.0.1
-
- http-proxy-agent@7.0.2:
- dependencies:
- agent-base: 7.1.4
- debug: 4.4.3
- transitivePeerDependencies:
- - supports-color
-
- https-proxy-agent@7.0.6:
- dependencies:
- agent-base: 7.1.4
- debug: 4.4.3
- transitivePeerDependencies:
- - supports-color
-
- iconv-lite@0.6.3:
- dependencies:
- safer-buffer: 2.1.2
-
- ieee754@1.2.1:
- optional: true
-
- ignore@7.0.5: {}
-
- index-to-position@1.2.0: {}
-
- inherits@2.0.4:
- optional: true
-
- ini@1.3.8:
- optional: true
-
- is-docker@3.0.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-inside-container@1.0.0:
- dependencies:
- is-docker: 3.0.0
-
- is-number@7.0.0: {}
-
- is-ssh@1.4.1:
- dependencies:
- protocols: 2.0.2
-
- is-wsl@3.1.0:
- dependencies:
- is-inside-container: 1.0.0
-
- isexe@2.0.0: {}
-
- istextorbinary@9.5.0:
- dependencies:
- binaryextensions: 6.11.0
- editions: 6.22.0
- textextensions: 6.11.0
-
- jackspeak@4.1.1:
- dependencies:
- '@isaacs/cliui': 8.0.2
-
- js-tokens@4.0.0: {}
-
- js-yaml@3.14.2:
- dependencies:
- argparse: 1.0.10
- esprima: 4.0.1
-
- js-yaml@4.1.1:
- dependencies:
- argparse: 2.0.1
-
- jsesc@3.1.0: {}
-
- json-schema-traverse@1.0.0: {}
-
- json5@2.2.3: {}
-
- jsonc-parser@3.3.1: {}
-
- jsonfile@6.2.0:
- dependencies:
- universalify: 2.0.1
- optionalDependencies:
- graceful-fs: 4.2.11
-
- jsonwebtoken@9.0.2:
- dependencies:
- jws: 3.2.2
- lodash.includes: 4.3.0
- lodash.isboolean: 3.0.3
- lodash.isinteger: 4.0.4
- lodash.isnumber: 3.0.3
- lodash.isplainobject: 4.0.6
- lodash.isstring: 4.0.1
- lodash.once: 4.1.1
- ms: 2.1.3
- semver: 7.7.3
-
- jwa@1.4.2:
- dependencies:
- buffer-equal-constant-time: 1.0.1
- ecdsa-sig-formatter: 1.0.11
- safe-buffer: 5.2.1
-
- jws@3.2.2:
- dependencies:
- jwa: 1.4.2
- safe-buffer: 5.2.1
-
- keytar@7.9.0:
- dependencies:
- node-addon-api: 4.3.0
- prebuild-install: 7.1.3
- optional: true
-
- leven@3.1.0: {}
-
- linkify-it@5.0.0:
- dependencies:
- uc.micro: 2.1.0
-
- lodash.includes@4.3.0: {}
-
- lodash.isboolean@3.0.3: {}
-
- lodash.isinteger@4.0.4: {}
-
- lodash.isnumber@3.0.3: {}
-
- lodash.isplainobject@4.0.6: {}
-
- lodash.isstring@4.0.1: {}
-
- lodash.once@4.1.1: {}
-
- lodash.truncate@4.4.2: {}
-
- lodash@4.17.21: {}
-
- lru-cache@10.4.3: {}
-
- lru-cache@11.2.2: {}
-
- lru-cache@6.0.0:
- dependencies:
- yallist: 4.0.0
-
- magic-bytes.js@1.12.1: {}
-
- magic-string@0.30.21:
- dependencies:
- '@jridgewell/sourcemap-codec': 1.5.5
-
- markdown-it@14.1.0:
- dependencies:
- argparse: 2.0.1
- entities: 4.5.0
- linkify-it: 5.0.0
- mdurl: 2.0.0
- punycode.js: 2.3.1
- uc.micro: 2.1.0
-
- math-intrinsics@1.1.0: {}
-
- mdurl@2.0.0: {}
-
- 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@1.6.0: {}
-
- mimic-response@3.1.0:
- optional: true
-
- minimatch@10.1.1:
- dependencies:
- '@isaacs/brace-expansion': 5.0.0
-
- minimatch@3.1.2:
- dependencies:
- brace-expansion: 1.1.12
-
- minimist@1.2.8:
- optional: true
-
- minipass@7.1.2: {}
-
- mkdirp-classic@0.5.3:
- optional: true
-
- ms@2.1.3: {}
-
- mute-stream@0.0.8: {}
-
- napi-build-utils@2.0.0:
- optional: true
-
- node-abi@3.85.0:
- dependencies:
- semver: 7.7.3
- optional: true
-
- node-addon-api@4.3.0:
- optional: true
-
- node-sarif-builder@3.3.0:
- dependencies:
- '@types/sarif': 2.1.7
- fs-extra: 11.3.2
-
- normalize-package-data@6.0.2:
- dependencies:
- hosted-git-info: 7.0.2
- semver: 7.7.3
- validate-npm-package-license: 3.0.4
-
- nth-check@2.1.1:
- dependencies:
- boolbase: 1.0.0
-
- object-inspect@1.13.4: {}
-
- obug@2.1.1: {}
-
- once@1.4.0:
- dependencies:
- wrappy: 1.0.2
- optional: true
-
- open@10.2.0:
- dependencies:
- default-browser: 5.4.0
- define-lazy-prop: 3.0.0
- is-inside-container: 1.0.0
- wsl-utils: 0.1.0
-
- p-map@7.0.4: {}
-
- package-json-from-dist@1.0.1: {}
-
- parse-json@8.3.0:
- dependencies:
- '@babel/code-frame': 7.27.1
- index-to-position: 1.2.0
- type-fest: 4.41.0
-
- parse-path@7.1.0:
- dependencies:
- protocols: 2.0.2
-
- parse-semver@1.1.1:
- dependencies:
- semver: 5.7.2
-
- parse-url@9.2.0:
- dependencies:
- '@types/parse-path': 7.1.0
- parse-path: 7.1.0
-
- parse5-htmlparser2-tree-adapter@7.1.0:
- dependencies:
- domhandler: 5.0.3
- parse5: 7.3.0
-
- parse5-parser-stream@7.1.2:
- dependencies:
- parse5: 7.3.0
-
- parse5@7.3.0:
- dependencies:
- entities: 6.0.1
-
- path-key@3.1.1: {}
-
- path-scurry@2.0.1:
- dependencies:
- lru-cache: 11.2.2
- minipass: 7.1.2
-
- path-type@6.0.0: {}
-
- pathe@2.0.3: {}
-
- pend@1.2.0: {}
-
- picocolors@1.1.1: {}
-
- picomatch@2.3.1: {}
-
- picomatch@4.0.3: {}
-
- pluralize@2.0.0: {}
-
- pluralize@8.0.0: {}
-
- prebuild-install@7.1.3:
- dependencies:
- detect-libc: 2.1.2
- expand-template: 2.0.3
- github-from-package: 0.0.0
- minimist: 1.2.8
- mkdirp-classic: 0.5.3
- napi-build-utils: 2.0.0
- node-abi: 3.85.0
- pump: 3.0.3
- rc: 1.2.8
- simple-get: 4.0.1
- tar-fs: 2.1.4
- tunnel-agent: 0.6.0
- optional: true
-
- protocols@2.0.2: {}
-
- pump@3.0.3:
- dependencies:
- end-of-stream: 1.4.5
- once: 1.4.0
- optional: true
-
- punycode.js@2.3.1: {}
-
- qs@6.14.0:
- dependencies:
- side-channel: 1.1.0
-
- quansync@0.2.11: {}
-
- queue-microtask@1.2.3: {}
-
- rc-config-loader@4.1.3:
- dependencies:
- debug: 4.4.3
- js-yaml: 4.1.1
- json5: 2.2.3
- require-from-string: 2.0.2
- transitivePeerDependencies:
- - supports-color
-
- rc@1.2.8:
- dependencies:
- deep-extend: 0.6.0
- ini: 1.3.8
- minimist: 1.2.8
- strip-json-comments: 2.0.1
- optional: true
-
- read-pkg@9.0.1:
- dependencies:
- '@types/normalize-package-data': 2.4.4
- normalize-package-data: 6.0.2
- parse-json: 8.3.0
- type-fest: 4.41.0
- unicorn-magic: 0.1.0
-
- read@1.0.7:
- dependencies:
- mute-stream: 0.0.8
-
- readable-stream@3.6.2:
- dependencies:
- inherits: 2.0.4
- string_decoder: 1.3.0
- util-deprecate: 1.0.2
- optional: true
-
- readdirp@4.1.2: {}
-
- require-from-string@2.0.2: {}
-
- resolve-pkg-maps@1.0.0: {}
-
- reusify@1.1.0: {}
-
- rolldown-plugin-dts@0.18.0(rolldown@1.0.0-beta.51)(typescript@5.9.3):
- dependencies:
- '@babel/generator': 7.28.5
- '@babel/parser': 7.28.5
- '@babel/types': 7.28.5
- ast-kit: 2.2.0
- birpc: 2.8.0
- dts-resolver: 2.1.3
- get-tsconfig: 4.13.0
- magic-string: 0.30.21
- obug: 2.1.1
- rolldown: 1.0.0-beta.51
- optionalDependencies:
- typescript: 5.9.3
- transitivePeerDependencies:
- - oxc-resolver
-
- rolldown@1.0.0-beta.51:
- dependencies:
- '@oxc-project/types': 0.98.0
- '@rolldown/pluginutils': 1.0.0-beta.51
- optionalDependencies:
- '@rolldown/binding-android-arm64': 1.0.0-beta.51
- '@rolldown/binding-darwin-arm64': 1.0.0-beta.51
- '@rolldown/binding-darwin-x64': 1.0.0-beta.51
- '@rolldown/binding-freebsd-x64': 1.0.0-beta.51
- '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.51
- '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.51
- '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.51
- '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.51
- '@rolldown/binding-linux-x64-musl': 1.0.0-beta.51
- '@rolldown/binding-openharmony-arm64': 1.0.0-beta.51
- '@rolldown/binding-wasm32-wasi': 1.0.0-beta.51
- '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.51
- '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.51
- '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.51
-
- run-applescript@7.1.0: {}
-
- run-parallel@1.2.0:
- dependencies:
- queue-microtask: 1.2.3
-
- safe-buffer@5.2.1: {}
-
- safer-buffer@2.1.2: {}
-
- sax@1.4.3: {}
-
- secretlint@10.2.2:
- dependencies:
- '@secretlint/config-creator': 10.2.2
- '@secretlint/formatter': 10.2.2
- '@secretlint/node': 10.2.2
- '@secretlint/profiler': 10.2.2
- debug: 4.4.3
- globby: 14.1.0
- read-pkg: 9.0.1
- transitivePeerDependencies:
- - supports-color
-
- semver@5.7.2: {}
-
- semver@7.7.3: {}
-
- shebang-command@2.0.0:
- dependencies:
- shebang-regex: 3.0.0
-
- shebang-regex@3.0.0: {}
-
- side-channel-list@1.0.0:
- dependencies:
- es-errors: 1.3.0
- object-inspect: 1.13.4
-
- side-channel-map@1.0.1:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- get-intrinsic: 1.3.0
- object-inspect: 1.13.4
-
- side-channel-weakmap@1.0.2:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- get-intrinsic: 1.3.0
- object-inspect: 1.13.4
- side-channel-map: 1.0.1
-
- side-channel@1.1.0:
- dependencies:
- es-errors: 1.3.0
- object-inspect: 1.13.4
- side-channel-list: 1.0.0
- side-channel-map: 1.0.1
- side-channel-weakmap: 1.0.2
-
- signal-exit@4.1.0: {}
-
- simple-concat@1.0.1:
- optional: true
-
- simple-get@4.0.1:
- dependencies:
- decompress-response: 6.0.0
- once: 1.4.0
- simple-concat: 1.0.1
- optional: true
-
- slash@5.1.0: {}
-
- slice-ansi@4.0.0:
- dependencies:
- ansi-styles: 4.3.0
- astral-regex: 2.0.0
- is-fullwidth-code-point: 3.0.0
-
- spdx-correct@3.2.0:
- dependencies:
- spdx-expression-parse: 3.0.1
- spdx-license-ids: 3.0.22
-
- spdx-exceptions@2.5.0: {}
-
- spdx-expression-parse@3.0.1:
- dependencies:
- spdx-exceptions: 2.5.0
- spdx-license-ids: 3.0.22
-
- spdx-license-ids@3.0.22: {}
-
- sprintf-js@1.0.3: {}
-
- 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.2
-
- string_decoder@1.3.0:
- dependencies:
- safe-buffer: 5.2.1
- optional: true
-
- strip-ansi@6.0.1:
- dependencies:
- ansi-regex: 5.0.1
-
- strip-ansi@7.1.2:
- dependencies:
- ansi-regex: 6.2.2
-
- strip-json-comments@2.0.1:
- optional: true
-
- structured-source@4.0.0:
- dependencies:
- boundary: 2.0.0
-
- supports-color@7.2.0:
- dependencies:
- has-flag: 4.0.0
-
- supports-hyperlinks@3.2.0:
- dependencies:
- has-flag: 4.0.0
- supports-color: 7.2.0
-
- table@6.9.0:
- dependencies:
- ajv: 8.17.1
- lodash.truncate: 4.4.2
- slice-ansi: 4.0.0
- string-width: 4.2.3
- strip-ansi: 6.0.1
-
- tar-fs@2.1.4:
- dependencies:
- chownr: 1.1.4
- mkdirp-classic: 0.5.3
- pump: 3.0.3
- tar-stream: 2.2.0
- optional: true
-
- tar-stream@2.2.0:
- dependencies:
- bl: 4.1.0
- end-of-stream: 1.4.5
- fs-constants: 1.0.0
- inherits: 2.0.4
- readable-stream: 3.6.2
- optional: true
-
- terminal-link@4.0.0:
- dependencies:
- ansi-escapes: 7.2.0
- supports-hyperlinks: 3.2.0
-
- text-table@0.2.0: {}
-
- textextensions@6.11.0:
- dependencies:
- editions: 6.22.0
-
- tinyexec@1.0.2: {}
-
- tinyglobby@0.2.15:
- dependencies:
- fdir: 6.5.0(picomatch@4.0.3)
- picomatch: 4.0.3
-
- tmp@0.2.5: {}
-
- to-regex-range@5.0.1:
- dependencies:
- is-number: 7.0.0
-
- tree-kill@1.2.2: {}
-
- tsdown@0.16.6(typescript@5.9.3):
- dependencies:
- ansis: 4.2.0
- cac: 6.7.14
- chokidar: 4.0.3
- diff: 8.0.2
- empathic: 2.0.0
- hookable: 5.5.3
- obug: 2.1.1
- rolldown: 1.0.0-beta.51
- rolldown-plugin-dts: 0.18.0(rolldown@1.0.0-beta.51)(typescript@5.9.3)
- semver: 7.7.3
- tinyexec: 1.0.2
- tinyglobby: 0.2.15
- tree-kill: 1.2.2
- unconfig-core: 7.4.1
- unrun: 0.2.11
- optionalDependencies:
- typescript: 5.9.3
- transitivePeerDependencies:
- - '@ts-macro/tsc'
- - '@typescript/native-preview'
- - oxc-resolver
- - synckit
- - vue-tsc
-
- tslib@2.8.1: {}
-
- tunnel-agent@0.6.0:
- dependencies:
- safe-buffer: 5.2.1
- optional: true
-
- tunnel@0.0.6: {}
-
- type-fest@4.41.0: {}
-
- typed-rest-client@1.8.11:
- dependencies:
- qs: 6.14.0
- tunnel: 0.0.6
- underscore: 1.13.7
-
- typescript@5.9.3: {}
-
- uc.micro@2.1.0: {}
-
- unconfig-core@7.4.1:
- dependencies:
- '@quansync/fs': 0.1.5
- quansync: 0.2.11
-
- underscore@1.13.7: {}
-
- undici-types@6.21.0: {}
-
- undici@6.21.3: {}
-
- undici@7.16.0: {}
-
- unicorn-magic@0.1.0: {}
-
- unicorn-magic@0.3.0: {}
-
- universalify@2.0.1: {}
-
- unrun@0.2.11:
- dependencies:
- '@oxc-project/runtime': 0.96.0
- rolldown: 1.0.0-beta.51
-
- url-join@4.0.1: {}
-
- util-deprecate@1.0.2:
- optional: true
-
- uuid@8.3.2: {}
-
- validate-npm-package-license@3.0.4:
- dependencies:
- spdx-correct: 3.2.0
- spdx-expression-parse: 3.0.1
-
- version-range@4.15.0: {}
-
- whatwg-encoding@3.1.1:
- dependencies:
- iconv-lite: 0.6.3
-
- whatwg-mimetype@4.0.0: {}
-
- which@2.0.2:
- dependencies:
- isexe: 2.0.0
-
- 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.3
- string-width: 5.1.2
- strip-ansi: 7.1.2
-
- wrappy@1.0.2:
- optional: true
-
- ws@8.18.3: {}
-
- wsl-utils@0.1.0:
- dependencies:
- is-wsl: 3.1.0
- xml2js@0.5.0:
- dependencies:
- sax: 1.4.3
- xmlbuilder: 11.0.1
+ "@types/node@22.19.1":
+ dependencies:
+ undici-types: 6.21.0
+
+ "@types/vscode@1.106.1": {}
+
+ "@vladfrangu/async_event_emitter@2.4.7": {}
+
+ "@xhayper/discord-rpc@1.3.0":
+ dependencies:
+ "@discordjs/rest": 2.6.0
+ "@vladfrangu/async_event_emitter": 2.4.7
+ discord-api-types: 0.38.34
+ ws: 8.18.3
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
+
+ ansi-styles@3.2.1:
+ dependencies:
+ color-convert: 1.9.3
+
+ array-buffer-byte-length@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ is-array-buffer: 3.0.5
+
+ arraybuffer.prototype.slice@1.0.4:
+ dependencies:
+ array-buffer-byte-length: 1.0.2
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.24.0
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ is-array-buffer: 3.0.5
+
+ async-function@1.0.0: {}
+
+ available-typed-arrays@1.0.7:
+ dependencies:
+ possible-typed-array-names: 1.1.0
+
+ balanced-match@1.0.2: {}
+
+ brace-expansion@1.1.12:
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+
+ call-bind-apply-helpers@1.0.2:
+ dependencies:
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+
+ call-bind@1.0.8:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ get-intrinsic: 1.3.0
+ set-function-length: 1.2.2
+
+ call-bound@1.0.4:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ get-intrinsic: 1.3.0
+
+ chalk@2.4.2:
+ dependencies:
+ ansi-styles: 3.2.1
+ escape-string-regexp: 1.0.5
+ supports-color: 5.5.0
+
+ color-convert@1.9.3:
+ dependencies:
+ color-name: 1.1.3
+
+ color-name@1.1.3: {}
+
+ concat-map@0.0.1: {}
+
+ cross-spawn@6.0.6:
+ dependencies:
+ nice-try: 1.0.5
+ path-key: 2.0.1
+ semver: 5.7.2
+ shebang-command: 1.2.0
+ which: 1.3.1
+
+ data-view-buffer@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-data-view: 1.0.2
+
+ data-view-byte-length@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-data-view: 1.0.2
+
+ data-view-byte-offset@1.0.1:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-data-view: 1.0.2
+
+ define-data-property@1.1.4:
+ dependencies:
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ define-properties@1.2.1:
+ dependencies:
+ define-data-property: 1.1.4
+ has-property-descriptors: 1.0.2
+ object-keys: 1.1.1
+
+ discord-api-types@0.38.34: {}
+
+ dunder-proto@1.0.1:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ error-ex@1.3.4:
+ dependencies:
+ is-arrayish: 0.2.1
+
+ es-abstract@1.24.0:
+ dependencies:
+ array-buffer-byte-length: 1.0.2
+ arraybuffer.prototype.slice: 1.0.4
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ data-view-buffer: 1.0.2
+ data-view-byte-length: 1.0.2
+ data-view-byte-offset: 1.0.1
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ es-set-tostringtag: 2.1.0
+ es-to-primitive: 1.3.0
+ function.prototype.name: 1.1.8
+ get-intrinsic: 1.3.0
+ get-proto: 1.0.1
+ get-symbol-description: 1.1.0
+ globalthis: 1.0.4
+ gopd: 1.2.0
+ has-property-descriptors: 1.0.2
+ has-proto: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.2
+ internal-slot: 1.1.0
+ is-array-buffer: 3.0.5
+ is-callable: 1.2.7
+ is-data-view: 1.0.2
+ is-negative-zero: 2.0.3
+ is-regex: 1.2.1
+ is-set: 2.0.3
+ is-shared-array-buffer: 1.0.4
+ is-string: 1.1.1
+ is-typed-array: 1.1.15
+ is-weakref: 1.1.1
+ math-intrinsics: 1.1.0
+ object-inspect: 1.13.4
+ object-keys: 1.1.1
+ object.assign: 4.1.7
+ own-keys: 1.0.1
+ regexp.prototype.flags: 1.5.4
+ safe-array-concat: 1.1.3
+ safe-push-apply: 1.0.0
+ safe-regex-test: 1.1.0
+ set-proto: 1.0.0
+ stop-iteration-iterator: 1.1.0
+ string.prototype.trim: 1.2.10
+ string.prototype.trimend: 1.0.9
+ string.prototype.trimstart: 1.0.8
+ typed-array-buffer: 1.0.3
+ typed-array-byte-length: 1.0.3
+ typed-array-byte-offset: 1.0.4
+ typed-array-length: 1.0.7
+ unbox-primitive: 1.1.0
+ which-typed-array: 1.1.19
+
+ es-define-property@1.0.1: {}
+
+ es-errors@1.3.0: {}
+
+ es-object-atoms@1.1.1:
+ dependencies:
+ es-errors: 1.3.0
+
+ es-set-tostringtag@2.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ has-tostringtag: 1.0.2
+ hasown: 2.0.2
+
+ es-to-primitive@1.3.0:
+ dependencies:
+ is-callable: 1.2.7
+ is-date-object: 1.1.0
+ is-symbol: 1.1.1
+
+ escape-string-regexp@1.0.5: {}
+
+ filesize@11.0.13: {}
+
+ for-each@0.3.5:
+ dependencies:
+ is-callable: 1.2.7
+
+ function-bind@1.1.2: {}
+
+ function.prototype.name@1.1.8:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ functions-have-names: 1.2.3
+ hasown: 2.0.2
+ is-callable: 1.2.7
+
+ functions-have-names@1.2.3: {}
+
+ generator-function@2.0.1: {}
+
+ get-intrinsic@1.3.0:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ function-bind: 1.1.2
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.2
+ math-intrinsics: 1.1.0
+
+ get-proto@1.0.1:
+ dependencies:
+ dunder-proto: 1.0.1
+ es-object-atoms: 1.1.1
+
+ get-symbol-description@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+
+ globalthis@1.0.4:
+ dependencies:
+ define-properties: 1.2.1
+ gopd: 1.2.0
+
+ gopd@1.2.0: {}
+
+ graceful-fs@4.2.11: {}
+
+ has-bigints@1.1.0: {}
+
+ has-flag@3.0.0: {}
+
+ has-property-descriptors@1.0.2:
+ dependencies:
+ es-define-property: 1.0.1
+
+ has-proto@1.2.0:
+ dependencies:
+ dunder-proto: 1.0.1
+
+ has-symbols@1.1.0: {}
+
+ has-tostringtag@1.0.2:
+ dependencies:
+ has-symbols: 1.1.0
+
+ hasown@2.0.2:
+ dependencies:
+ function-bind: 1.1.2
+
+ hosted-git-info@2.8.9: {}
+
+ internal-slot@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ hasown: 2.0.2
+ side-channel: 1.1.0
+
+ is-array-buffer@3.0.5:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
+
+ is-arrayish@0.2.1: {}
- xmlbuilder@11.0.1: {}
+ is-async-function@2.1.1:
+ dependencies:
+ async-function: 1.0.0
+ call-bound: 1.0.4
+ get-proto: 1.0.1
+ has-tostringtag: 1.0.2
+ safe-regex-test: 1.1.0
+
+ is-bigint@1.1.0:
+ dependencies:
+ has-bigints: 1.1.0
+
+ is-boolean-object@1.2.2:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-callable@1.2.7: {}
- yallist@4.0.0: {}
+ is-core-module@2.16.1:
+ dependencies:
+ hasown: 2.0.2
- yauzl@2.10.0:
- dependencies:
- buffer-crc32: 0.2.13
- fd-slicer: 1.1.0
+ is-data-view@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
+ is-typed-array: 1.1.15
+
+ is-date-object@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-finalizationregistry@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+
+ is-generator-function@1.1.2:
+ dependencies:
+ call-bound: 1.0.4
+ generator-function: 2.0.1
+ get-proto: 1.0.1
+ has-tostringtag: 1.0.2
+ safe-regex-test: 1.1.0
- yazl@2.5.1:
- dependencies:
- buffer-crc32: 0.2.13
+ is-map@2.0.3: {}
+
+ is-negative-zero@2.0.3: {}
+
+ is-number-object@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-regex@1.2.1:
+ dependencies:
+ call-bound: 1.0.4
+ gopd: 1.2.0
+ has-tostringtag: 1.0.2
+ hasown: 2.0.2
+
+ is-set@2.0.3: {}
+
+ is-shared-array-buffer@1.0.4:
+ dependencies:
+ call-bound: 1.0.4
+
+ is-string@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-symbol@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+ has-symbols: 1.1.0
+ safe-regex-test: 1.1.0
+
+ is-typed-array@1.1.15:
+ dependencies:
+ which-typed-array: 1.1.19
+
+ is-weakmap@2.0.2: {}
+
+ is-weakref@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+
+ is-weakset@2.0.4:
+ dependencies:
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
+
+ isarray@2.0.5: {}
+
+ isexe@2.0.0: {}
+
+ json-parse-better-errors@1.0.2: {}
+
+ load-json-file@4.0.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ parse-json: 4.0.0
+ pify: 3.0.0
+ strip-bom: 3.0.0
+
+ magic-bytes.js@1.12.1: {}
+
+ math-intrinsics@1.1.0: {}
+
+ memorystream@0.3.1: {}
+
+ minimatch@3.1.2:
+ dependencies:
+ brace-expansion: 1.1.12
+
+ nice-try@1.0.5: {}
+
+ normalize-package-data@2.5.0:
+ dependencies:
+ hosted-git-info: 2.8.9
+ resolve: 1.22.11
+ semver: 5.7.2
+ validate-npm-package-license: 3.0.4
+
+ npm-run-all@4.1.5:
+ dependencies:
+ ansi-styles: 3.2.1
+ chalk: 2.4.2
+ cross-spawn: 6.0.6
+ memorystream: 0.3.1
+ minimatch: 3.1.2
+ pidtree: 0.3.1
+ read-pkg: 3.0.0
+ shell-quote: 1.8.3
+ string.prototype.padend: 3.1.6
+
+ object-inspect@1.13.4: {}
+
+ object-keys@1.1.1: {}
+
+ object.assign@4.1.7:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ es-object-atoms: 1.1.1
+ has-symbols: 1.1.0
+ object-keys: 1.1.1
+
+ own-keys@1.0.1:
+ dependencies:
+ get-intrinsic: 1.3.0
+ object-keys: 1.1.1
+ safe-push-apply: 1.0.0
+
+ parse-json@4.0.0:
+ dependencies:
+ error-ex: 1.3.4
+ json-parse-better-errors: 1.0.2
+
+ path-key@2.0.1: {}
+
+ path-parse@1.0.7: {}
+
+ path-type@3.0.0:
+ dependencies:
+ pify: 3.0.0
+
+ pidtree@0.3.1: {}
+
+ pify@3.0.0: {}
+
+ possible-typed-array-names@1.1.0: {}
+
+ read-pkg@3.0.0:
+ dependencies:
+ load-json-file: 4.0.0
+ normalize-package-data: 2.5.0
+ path-type: 3.0.0
+
+ reflect.getprototypeof@1.0.10:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.24.0
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ get-intrinsic: 1.3.0
+ get-proto: 1.0.1
+ which-builtin-type: 1.2.1
+
+ regexp.prototype.flags@1.5.4:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-errors: 1.3.0
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ set-function-name: 2.0.2
+
+ resolve@1.22.11:
+ dependencies:
+ is-core-module: 2.16.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
+ rolldown@1.0.0-beta.51:
+ dependencies:
+ "@oxc-project/types": 0.98.0
+ "@rolldown/pluginutils": 1.0.0-beta.51
+ optionalDependencies:
+ "@rolldown/binding-android-arm64": 1.0.0-beta.51
+ "@rolldown/binding-darwin-arm64": 1.0.0-beta.51
+ "@rolldown/binding-darwin-x64": 1.0.0-beta.51
+ "@rolldown/binding-freebsd-x64": 1.0.0-beta.51
+ "@rolldown/binding-linux-arm-gnueabihf": 1.0.0-beta.51
+ "@rolldown/binding-linux-arm64-gnu": 1.0.0-beta.51
+ "@rolldown/binding-linux-arm64-musl": 1.0.0-beta.51
+ "@rolldown/binding-linux-x64-gnu": 1.0.0-beta.51
+ "@rolldown/binding-linux-x64-musl": 1.0.0-beta.51
+ "@rolldown/binding-openharmony-arm64": 1.0.0-beta.51
+ "@rolldown/binding-wasm32-wasi": 1.0.0-beta.51
+ "@rolldown/binding-win32-arm64-msvc": 1.0.0-beta.51
+ "@rolldown/binding-win32-ia32-msvc": 1.0.0-beta.51
+ "@rolldown/binding-win32-x64-msvc": 1.0.0-beta.51
+
+ safe-array-concat@1.1.3:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
+ has-symbols: 1.1.0
+ isarray: 2.0.5
+
+ safe-push-apply@1.0.0:
+ dependencies:
+ es-errors: 1.3.0
+ isarray: 2.0.5
+
+ safe-regex-test@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-regex: 1.2.1
+
+ semver@5.7.2: {}
+
+ set-function-length@1.2.2:
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ get-intrinsic: 1.3.0
+ gopd: 1.2.0
+ has-property-descriptors: 1.0.2
+
+ set-function-name@2.0.2:
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ functions-have-names: 1.2.3
+ has-property-descriptors: 1.0.2
+
+ set-proto@1.0.0:
+ dependencies:
+ dunder-proto: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+
+ shebang-command@1.2.0:
+ dependencies:
+ shebang-regex: 1.0.0
+
+ shebang-regex@1.0.0: {}
+
+ shell-quote@1.8.3: {}
+
+ side-channel-list@1.0.0:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.4
+
+ side-channel-map@1.0.1:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ object-inspect: 1.13.4
+
+ side-channel-weakmap@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ object-inspect: 1.13.4
+ side-channel-map: 1.0.1
+
+ side-channel@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.4
+ side-channel-list: 1.0.0
+ side-channel-map: 1.0.1
+ side-channel-weakmap: 1.0.2
+
+ spdx-correct@3.2.0:
+ dependencies:
+ spdx-expression-parse: 3.0.1
+ spdx-license-ids: 3.0.22
+
+ spdx-exceptions@2.5.0: {}
+
+ spdx-expression-parse@3.0.1:
+ dependencies:
+ spdx-exceptions: 2.5.0
+ spdx-license-ids: 3.0.22
+
+ spdx-license-ids@3.0.22: {}
+
+ stop-iteration-iterator@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ internal-slot: 1.1.0
+
+ string.prototype.padend@3.1.6:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.24.0
+ es-object-atoms: 1.1.1
+
+ string.prototype.trim@1.2.10:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-data-property: 1.1.4
+ define-properties: 1.2.1
+ es-abstract: 1.24.0
+ es-object-atoms: 1.1.1
+ has-property-descriptors: 1.0.2
+
+ string.prototype.trimend@1.0.9:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ es-object-atoms: 1.1.1
+
+ string.prototype.trimstart@1.0.8:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-object-atoms: 1.1.1
+
+ strip-bom@3.0.0: {}
+
+ supports-color@5.5.0:
+ dependencies:
+ has-flag: 3.0.0
+
+ supports-preserve-symlinks-flag@1.0.0: {}
+
+ tslib@2.8.1: {}
+
+ typed-array-buffer@1.0.3:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-typed-array: 1.1.15
+
+ typed-array-byte-length@1.0.3:
+ dependencies:
+ call-bind: 1.0.8
+ for-each: 0.3.5
+ gopd: 1.2.0
+ has-proto: 1.2.0
+ is-typed-array: 1.1.15
+
+ typed-array-byte-offset@1.0.4:
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.8
+ for-each: 0.3.5
+ gopd: 1.2.0
+ has-proto: 1.2.0
+ is-typed-array: 1.1.15
+ reflect.getprototypeof: 1.0.10
+
+ typed-array-length@1.0.7:
+ dependencies:
+ call-bind: 1.0.8
+ for-each: 0.3.5
+ gopd: 1.2.0
+ is-typed-array: 1.1.15
+ possible-typed-array-names: 1.1.0
+ reflect.getprototypeof: 1.0.10
+
+ typescript@5.9.3: {}
+
+ unbox-primitive@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ has-bigints: 1.1.0
+ has-symbols: 1.1.0
+ which-boxed-primitive: 1.1.1
+
+ undici-types@6.21.0: {}
+
+ undici@6.21.3: {}
+
+ validate-npm-package-license@3.0.4:
+ dependencies:
+ spdx-correct: 3.2.0
+ spdx-expression-parse: 3.0.1
+
+ which-boxed-primitive@1.1.1:
+ dependencies:
+ is-bigint: 1.1.0
+ is-boolean-object: 1.2.2
+ is-number-object: 1.1.1
+ is-string: 1.1.1
+ is-symbol: 1.1.1
+
+ which-builtin-type@1.2.1:
+ dependencies:
+ call-bound: 1.0.4
+ function.prototype.name: 1.1.8
+ has-tostringtag: 1.0.2
+ is-async-function: 2.1.1
+ is-date-object: 1.1.0
+ is-finalizationregistry: 1.1.1
+ is-generator-function: 1.1.2
+ is-regex: 1.2.1
+ is-weakref: 1.1.1
+ isarray: 2.0.5
+ which-boxed-primitive: 1.1.1
+ which-collection: 1.0.2
+ which-typed-array: 1.1.19
+
+ which-collection@1.0.2:
+ dependencies:
+ is-map: 2.0.3
+ is-set: 2.0.3
+ is-weakmap: 2.0.2
+ is-weakset: 2.0.4
+
+ which-typed-array@1.1.19:
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.8
+ call-bound: 1.0.4
+ for-each: 0.3.5
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-tostringtag: 1.0.2
+
+ which@1.3.1:
+ dependencies:
+ isexe: 2.0.0
+
+ ws@8.18.3: {}
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
deleted file mode 100644
index 93b95386..00000000
--- a/pnpm-workspace.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-onlyBuiltDependencies:
- - "@vscode/vsce-sign"
- - keytar
diff --git a/rolldown.config.ts b/rolldown.config.ts
new file mode 100644
index 00000000..eea9959e
--- /dev/null
+++ b/rolldown.config.ts
@@ -0,0 +1,17 @@
+import { defineConfig } from "rolldown";
+
+const production = process.argv.includes("--production");
+
+export default defineConfig({
+ input: "src/index.ts",
+ platform: "node",
+ output: {
+ format: "cjs",
+ minify: production,
+ sourcemap: !production,
+ file: "dist/index.js",
+ cleanDir: true
+ },
+ external: ["vscode"],
+ logLevel: "silent"
+});
diff --git a/src/@types/git-url-parse.d.ts b/src/@types/git-url-parse.d.ts
deleted file mode 100644
index 0d12c39d..00000000
--- a/src/@types/git-url-parse.d.ts
+++ /dev/null
@@ -1,77 +0,0 @@
-// Type definitions for git-url-parse 13.1
-// Project: https://github.com/IonicaBizau/git-url-parse
-// Definitions by: Klaus Meinhardt
-// Improved by: xhayper
-// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-
-declare module "git-url-parse" {
- declare namespace gitUrlParse {
- type GitProtocol = "ssh" | "git" | "ftp" | "ftps" | "http" | "https" | (string & Record);
- type FilePathType = "raw" | "src" | "blob" | "tree" | "edit" | (string & Record);
-
- interface GitUrl {
- /** An array with the url protocols (usually it has one element). */
- protocols: GitProtocol[];
- /** The domain port. */
- port: number | null;
- /** The url domain (including subdomains). */
- resource: string;
- /** The authentication user (usually for ssh urls). */
- user: string;
- /** The url pathname. */
- pathname: string;
- /** The url hash. */
- hash: string;
- /** The url querystring value. */
- search: string;
- /** The input url. */
- href: string;
- /** The git url protocol. */
- protocol: GitProtocol;
- /** The oauth token (could appear in the https urls). */
- token: string;
- /** The Git provider (e.g. `"github.com"`). */
- source: string;
- /** The repository owner. */
- owner: string;
- /** The repository name. */
- name: string;
- /** The repository ref (e.g., "master" or "dev"). */
- ref: string;
- /** A filepath relative to the repository root. */
- filepath: string;
- /** The type of filepath in the url ("blob" or "tree"). */
- filepathtype: FilePathType;
- /** The owner and name values in the `owner/name` format. */
- full_name: string;
- /** The organization the owner belongs to. This is CloudForge specific. */
- organization: string;
- /** Whether to add the `.git` suffix or not. */
- git_suffix?: boolean | undefined;
- /** A function to stringify the parsed url into another url type.
- * @param type - The type of the stringified url (default `obj.protocol`).
- * @return The stringified url.
- */
- toString(type?: GitProtocol | GitProtocol[]): string;
- }
-
- /**
- * Stringifies a `GitUrl` object.
- *
- * @param obj - The parsed Git url object.
- * @param type - The type of the stringified url (default `obj.protocol`).
- * @return The stringified url.
- */
- function stringify(obj: GitUrl, type?: GitProtocol | GitProtocol[]): string;
- }
-
- /**
- * Parses a Git url.
- *
- * @param url - The Git url to parse.
- * @return The `GitUrl` object.
- */
- declare function gitUrlParse(url: string): gitUrlParse.GitUrl;
-
- export = gitUrlParse;
-}
diff --git a/src/activity.ts b/src/activity.ts
deleted file mode 100644
index 9f8262c2..00000000
--- a/src/activity.ts
+++ /dev/null
@@ -1,542 +0,0 @@
-import { resolveLangName, toLower, toTitle, toUpper, getArticle } from "./helpers/resolveLangName";
-import { type GatewayActivityButton } from "discord-api-types/v10";
-import { type SetActivity } from "@xhayper/discord-rpc";
-import { CONFIG_KEYS, FAKE_EMPTY } from "./constants";
-import { getFileSize } from "./helpers/getFileSize";
-import { isExcluded } from "./helpers/isExcluded";
-import { isObject } from "./helpers/isObject";
-import { getConfig } from "./config";
-import { logInfo } from "./logger";
-import { dataClass } from "./data";
-import { sep } from "node:path";
-import {
- type Selection,
- type TextDocument,
- DiagnosticSeverity,
- debug,
- env,
- languages,
- window,
- workspace
-} from "vscode";
-
-export enum CURRENT_STATUS {
- IDLE = "idle",
- NOT_IN_FILE = "notInFile",
- EDITING = "editing",
- DEBUGGING = "debugging",
- VIEWING = "viewing"
-}
-
-export enum PROBLEM_LEVEL {
- ERROR = "error",
- WARNING = "warning",
- INFO = "info",
- HINT = "hint"
-}
-
-// TODO: move this to data class
-const COUNTED_SEVERITIES: { [key in PROBLEM_LEVEL]: number } = {
- error: 0,
- warning: 0,
- info: 0,
- hint: 0
-};
-
-export const onDiagnosticsChange = () => {
- const diagnostics = languages.getDiagnostics();
-
- let errorCount = 0;
- let warningCount = 0;
- let infoCount = 0;
- let hintCount = 0;
-
- for (const diagnostic of diagnostics.values())
- for (const diagnosticItem of diagnostic[1]) {
- switch (diagnosticItem.severity) {
- case DiagnosticSeverity.Error: {
- errorCount++;
- break;
- }
- case DiagnosticSeverity.Warning: {
- warningCount++;
- break;
- }
- case DiagnosticSeverity.Information: {
- infoCount++;
- break;
- }
- case DiagnosticSeverity.Hint: {
- hintCount++;
- break;
- }
- }
- }
-
- COUNTED_SEVERITIES.error = errorCount;
- COUNTED_SEVERITIES.warning = warningCount;
- COUNTED_SEVERITIES.info = infoCount;
- COUNTED_SEVERITIES.hint = hintCount;
-};
-
-export const activity = async (
- previous: SetActivity = {},
- isViewing = false,
- isIdling = false
-): Promise => {
- const config = getConfig();
- const presence = previous;
-
- if (
- isIdling &&
- config.get(CONFIG_KEYS.Status.Idle.DisconnectOnIdle) &&
- config.get(CONFIG_KEYS.Status.Idle.ResetElapsedTime)
- ) {
- delete presence.startTimestamp;
- return {};
- }
-
- if (isIdling && !config.get(CONFIG_KEYS.Status.Idle.Enabled)) return {};
-
- if (config.get(CONFIG_KEYS.Status.ShowElapsedTime)) {
- presence.startTimestamp = config.get(CONFIG_KEYS.Status.ResetElapsedTimePerFile)
- ? Date.now()
- : (previous.startTimestamp ?? Date.now());
- } else {
- delete presence.startTimestamp;
- }
-
- const detailsEnabled = config.get(CONFIG_KEYS.Status.Details.Enabled);
- const detailsIdleEnabled = config.get(CONFIG_KEYS.Status.Details.Idle.Enabled);
- const stateEnabled = config.get(CONFIG_KEYS.Status.State.Enabled);
- const stateIdleEnabled = config.get(CONFIG_KEYS.Status.State.Idle.Enabled);
- const privacyModeEnabled = config.get(CONFIG_KEYS.App.PrivacyMode) as boolean;
-
- const gitRepo = dataClass.gitRemoteUrl?.toString("https").replace(/\.git$/, "");
- const gitOrg = dataClass.gitRemoteUrl?.organization ?? dataClass.gitRemoteUrl?.owner;
- const gitHost = dataClass.gitRemoteUrl?.source;
-
- const isRepositoryExcluded = !!gitRepo && isExcluded(config.get(CONFIG_KEYS.Ignore.Repositories)!, gitRepo);
- const isOrganizationExcluded = !!gitOrg && isExcluded(config.get(CONFIG_KEYS.Ignore.Organizations)!, gitOrg);
- const isGitHostExcluded = !!gitHost && isExcluded(config.get(CONFIG_KEYS.Ignore.GitHosts)!, gitHost);
- const isGitExcluded = isRepositoryExcluded || isOrganizationExcluded || isGitHostExcluded || privacyModeEnabled;
-
- let isWorkspaceExcluded =
- dataClass.workspaceFolder !== undefined &&
- isExcluded(config.get(CONFIG_KEYS.Ignore.Workspaces)!, dataClass.workspaceFolder.uri.fsPath);
-
- if (!isWorkspaceExcluded)
- isWorkspaceExcluded =
- dataClass.workspaceName !== undefined &&
- isExcluded(config.get(CONFIG_KEYS.Ignore.Workspaces)!, dataClass.workspaceName);
-
- const isNotInFile = !isWorkspaceExcluded && !dataClass.editor;
-
- const isDebugging = config.get(CONFIG_KEYS.Status.State.Debugging.Enabled) && !!debug.activeDebugSession;
- isViewing = !isDebugging && isViewing;
-
- let status: CURRENT_STATUS;
- if (isIdling) status = CURRENT_STATUS.IDLE;
- else if (isNotInFile) status = CURRENT_STATUS.NOT_IN_FILE;
- else if (isDebugging) status = CURRENT_STATUS.DEBUGGING;
- else if (isViewing) status = CURRENT_STATUS.VIEWING;
- else status = CURRENT_STATUS.EDITING;
-
- const PROBLEMS = config.get(CONFIG_KEYS.Status.Problems.Enabled)
- ? await replaceFileInfo(
- replaceGitInfo(replaceAppInfo(config.get(CONFIG_KEYS.Status.Problems.Text)!), isGitExcluded),
- isWorkspaceExcluded,
- dataClass.editor?.document,
- dataClass.editor?.selection
- )
- : FAKE_EMPTY;
-
- const replaceAllText = async (text: string) => {
- let replaced: string = text;
- if (privacyModeEnabled) {
- replaced = await replaceForPrivacyMode(replaced);
- }
- replaced = replaceAppInfo(replaced);
- replaced = replaceGitInfo(replaced, isGitExcluded);
- replaced = await replaceFileInfo(
- replaced,
- isWorkspaceExcluded,
- dataClass.editor?.document,
- dataClass.editor?.selection
- );
- return replaced.replaceAll("{problems}", PROBLEMS);
- };
-
- const replaceForPrivacyMode = async (text: string) => {
- let replaced: string = text;
- replaced = replaced.replaceAll("{file_name}", "a file");
- replaced = replaced.replaceAll("{file_extension}", "");
- replaced = replaced.replaceAll("{folder_and_file}", "a file in a folder");
- replaced = replaced.replaceAll("{directory_name}", "a folder");
- replaced = replaced.replaceAll("{full_directory_name}", "a folder");
- replaced = replaced.replaceAll("{workspace}", "a workspace");
- replaced = replaced.replaceAll("{workspace_folder}", "a workspace");
- replaced = replaced.replaceAll("{workspace_and_folder}", "a workspace");
-
- return replaced;
- };
-
- let workspaceExcludedText = "No workspace ignore text provided.";
- const ignoreWorkspacesText = config.get(CONFIG_KEYS.Ignore.WorkspacesText)!;
-
- if (isObject(ignoreWorkspacesText)) {
- workspaceExcludedText =
- (dataClass.workspaceFolder
- ? await replaceAllText(ignoreWorkspacesText[dataClass.workspaceFolder.name])
- : undefined) ?? workspaceExcludedText;
- } else {
- const text = await replaceAllText(ignoreWorkspacesText);
- workspaceExcludedText = text !== "" ? text : workspaceExcludedText;
- }
-
- let details = isWorkspaceExcluded ? workspaceExcludedText : undefined;
- let state = undefined;
-
- let largeImageKey = undefined;
- let largeImageText = undefined;
-
- let smallImageKey = undefined;
- let smallImageText = undefined;
-
- switch (status) {
- case CURRENT_STATUS.IDLE: {
- if (!isWorkspaceExcluded) {
- if (detailsIdleEnabled && detailsEnabled)
- details = await replaceAllText(config.get(CONFIG_KEYS.Status.Details.Text.Idle)!);
- if (stateIdleEnabled && stateEnabled)
- state = await replaceAllText(config.get(CONFIG_KEYS.Status.State.Text.Idle)!);
- }
-
- largeImageKey = await replaceAllText(config.get(CONFIG_KEYS.Status.Image.Large.Idle.Key)!);
- largeImageText = await replaceAllText(config.get(CONFIG_KEYS.Status.Image.Large.Idle.Text)!);
- smallImageKey = await replaceAllText(config.get(CONFIG_KEYS.Status.Image.Small.Idle.Key)!);
- smallImageText = await replaceAllText(config.get(CONFIG_KEYS.Status.Image.Small.Idle.Text)!);
- break;
- }
- case CURRENT_STATUS.EDITING: {
- if (!isWorkspaceExcluded) {
- if (detailsEnabled)
- details = await replaceAllText(config.get(CONFIG_KEYS.Status.Details.Text.Editing)!);
- if (stateEnabled) state = await replaceAllText(config.get(CONFIG_KEYS.Status.State.Text.Editing)!);
- }
-
- largeImageKey = await replaceAllText(config.get(CONFIG_KEYS.Status.Image.Large.Editing.Key)!);
- largeImageText = await replaceAllText(config.get(CONFIG_KEYS.Status.Image.Large.Editing.Text)!);
-
- smallImageKey = await replaceAllText(config.get(CONFIG_KEYS.Status.Image.Small.Editing.Key)!);
- smallImageText = await replaceAllText(config.get(CONFIG_KEYS.Status.Image.Small.Editing.Text)!);
- break;
- }
- case CURRENT_STATUS.DEBUGGING: {
- if (!isWorkspaceExcluded) {
- if (detailsEnabled)
- details = await replaceAllText(config.get(CONFIG_KEYS.Status.Details.Text.Debugging)!);
- if (stateEnabled) state = await replaceAllText(config.get(CONFIG_KEYS.Status.State.Text.Debugging)!);
- }
-
- largeImageKey = await replaceAllText(config.get(CONFIG_KEYS.Status.Image.Large.Debugging.Key)!);
- largeImageText = await replaceAllText(config.get(CONFIG_KEYS.Status.Image.Large.Debugging.Text)!);
-
- smallImageKey = await replaceAllText(config.get(CONFIG_KEYS.Status.Image.Small.Debugging.Key)!);
- smallImageText = await replaceAllText(config.get(CONFIG_KEYS.Status.Image.Small.Debugging.Text)!);
- break;
- }
- case CURRENT_STATUS.VIEWING: {
- if (!isWorkspaceExcluded) {
- if (detailsEnabled)
- details = await replaceAllText(config.get(CONFIG_KEYS.Status.Details.Text.Viewing)!);
- if (stateEnabled) state = await replaceAllText(config.get(CONFIG_KEYS.Status.State.Text.Viewing)!);
- }
-
- largeImageKey = await replaceAllText(config.get(CONFIG_KEYS.Status.Image.Large.Viewing.Key)!);
- largeImageText = await replaceAllText(config.get(CONFIG_KEYS.Status.Image.Large.Viewing.Text)!);
-
- smallImageKey = await replaceAllText(config.get(CONFIG_KEYS.Status.Image.Small.Viewing.Key)!);
- smallImageText = await replaceAllText(config.get(CONFIG_KEYS.Status.Image.Small.Viewing.Text)!);
- break;
- }
- case CURRENT_STATUS.NOT_IN_FILE: {
- if (detailsEnabled) details = await replaceAllText(config.get(CONFIG_KEYS.Status.Details.Text.NotInFile)!);
- if (stateEnabled) state = await replaceAllText(config.get(CONFIG_KEYS.Status.State.Text.NotInFile)!);
-
- largeImageKey = await replaceAllText(config.get(CONFIG_KEYS.Status.Image.Large.NotInFile.Key)!);
- largeImageText = await replaceAllText(config.get(CONFIG_KEYS.Status.Image.Large.NotInFile.Text)!);
-
- smallImageKey = await replaceAllText(config.get(CONFIG_KEYS.Status.Image.Small.NotInFile.Key)!);
- smallImageText = await replaceAllText(config.get(CONFIG_KEYS.Status.Image.Small.NotInFile.Text)!);
- break;
- }
- }
- let buttons = await getPresenceButtons(isIdling, isGitExcluded, status, replaceAllText);
- //
- presence.details = details;
- presence.state = state;
- presence.largeImageKey = largeImageKey;
- presence.largeImageText = largeImageText;
- presence.smallImageKey = smallImageKey;
- presence.smallImageText = smallImageText;
- presence.buttons = buttons;
-
- // Clean up
- if (!presence.details || presence.details.trim() === "") delete presence.details;
- if (!presence.state || presence.state.trim() === "") delete presence.state;
- if (!presence.largeImageKey || presence.largeImageKey.trim() === "") delete presence.largeImageKey;
- if (!presence.largeImageText || presence.largeImageText.trim() === "") delete presence.largeImageText;
- if (!presence.smallImageKey || presence.smallImageKey.trim() === "") delete presence.smallImageKey;
- if (!presence.smallImageText || presence.smallImageText.trim() === "") delete presence.smallImageText;
- if (!presence.buttons || presence.buttons.length === 0) delete presence.buttons;
-
- return presence;
-};
-
-async function createButton(
- replaceAllText: (text: string) => Promise,
- state: "Idle" | "Active" | "Inactive",
- isGit: boolean,
- currentButton: "Button1" | "Button2"
-): Promise {
- const config = getConfig();
- const currentState = CONFIG_KEYS.Status.Buttons[currentButton];
- const configKeyEnabled =
- isGit && state != "Inactive" ? currentState.Git[state].Enabled : currentState[state].Enabled;
- const enabled = config.get(configKeyEnabled);
- logInfo("[activity.ts] createButton(): enabled", enabled);
- if (!enabled) {
- return undefined;
- }
-
- return {
- label: await replaceAllText(
- config.get(isGit && state != "Inactive" ? currentState.Git[state].Label : currentState[state].Label)!
- ),
- url: await replaceAllText(
- config.get(isGit && state != "Inactive" ? currentState.Git[state].Url : currentState[state].Url)!
- )
- };
-}
-
-function buttonValidation(
- button: GatewayActivityButton | undefined,
- state: string
-): {
- button: GatewayActivityButton | undefined;
- validationError: string;
-} {
- if (!button) return { button: undefined, validationError: "" };
- let validationError = "";
-
- const trimmedLabel = button.label.trim();
- const trimmedUrl = button.url.trim();
-
- if (!trimmedLabel || !trimmedUrl) {
- validationError += `Invalid ${!trimmedLabel ? `Label` : ""} ${!trimmedLabel && !trimmedUrl ? "and " : ""}${
- !trimmedUrl ? "Url" : ""
- } for ${state}.`;
- button = undefined;
- }
-
- return { button, validationError };
-}
-
-export const getPresenceButtons = async (
- isIdling: boolean,
- isGitExcluded: boolean,
- status: CURRENT_STATUS,
- replaceAllText: (text: string) => Promise
-): Promise => {
- const config = getConfig();
- let button1Enabled = config.get(CONFIG_KEYS.Status.Buttons.Button1.Enabled)!;
- let button2Enabled = config.get(CONFIG_KEYS.Status.Buttons.Button2.Enabled)!;
- let state: "Idle" | "Active" | "Inactive" | undefined = isIdling
- ? "Idle"
- : isGitExcluded
- ? undefined
- : status == CURRENT_STATUS.EDITING ||
- status == CURRENT_STATUS.VIEWING ||
- status == CURRENT_STATUS.NOT_IN_FILE ||
- status == CURRENT_STATUS.DEBUGGING
- ? "Active"
- : "Inactive";
- if ((!button1Enabled && !button2Enabled) || !state) return [];
- let isGit = !isGitExcluded && !!dataClass.gitRemoteUrl;
- logInfo("[activity.ts] repo button1#gitRemoteUrl:", dataClass.gitRemoteUrl, "isGit", isGit);
- let button1 = buttonValidation(await createButton(replaceAllText, state, isGit, "Button1"), "Button1");
- let button2 = buttonValidation(await createButton(replaceAllText, state, isGit, "Button2"), "Button2");
- logInfo("[activity.ts] getPresenceButtons button1:", state, button1);
- logInfo("[activity.ts] getPresenceButtons button2:", state, button2);
- if (
- (button1.validationError || button2.validationError) &&
- !config.get(CONFIG_KEYS.Behaviour.SuppressNotifications)
- )
- window.showErrorMessage(`${button1.validationError} ${button2.validationError}`);
- return [button1.button, button2.button].filter(Boolean) as GatewayActivityButton[];
-};
-
-export const replaceAppInfo = (text: string): string => {
- text = text.slice();
- const { appName } = env;
-
- const isInsider = appName.includes("Insiders");
- const isCodium = appName.startsWith("VSCodium") || appName.startsWith("codium");
- const isAntigravity = appName.startsWith("Antigravity");
- const isCursor = appName.startsWith("Cursor");
-
- const insiderAppName = isCodium ? "vscodium-insiders" : "vscode-insiders";
- let normalAppName;
-
- if (isCursor) {
- normalAppName = "cursor";
- } else if (isAntigravity) {
- normalAppName = "antigravity";
- } else if (isCodium) {
- normalAppName = "vscodium";
- } else {
- normalAppName = "vscode";
- }
-
- const replaceMap = new Map([
- ["{app_name}", appName],
- ["{app_id}", isInsider ? insiderAppName : normalAppName]
- ]);
-
- for (const [key, value] of replaceMap) text = text.replaceAll(key, value);
-
- return text;
-};
-
-export const getTotalProblems = (countedSeverities: PROBLEM_LEVEL[]): number => {
- let totalProblems = 0;
-
- for (const severity of countedSeverities) {
- switch (severity) {
- case PROBLEM_LEVEL.ERROR: {
- totalProblems += COUNTED_SEVERITIES.error;
- break;
- }
- case PROBLEM_LEVEL.WARNING: {
- totalProblems += COUNTED_SEVERITIES.warning;
- break;
- }
- case PROBLEM_LEVEL.INFO: {
- totalProblems += COUNTED_SEVERITIES.info;
- break;
- }
- case PROBLEM_LEVEL.HINT: {
- totalProblems += COUNTED_SEVERITIES.hint;
- break;
- }
- }
- }
-
- return totalProblems;
-};
-
-export const replaceGitInfo = (text: string, excluded = false): string => {
- text = text.slice();
-
- const replaceMap = new Map([
- ["{git_owner}", (!excluded ? dataClass.gitRemoteUrl?.owner : undefined) ?? FAKE_EMPTY],
- ["{git_repo}", (!excluded ? (dataClass.gitRemoteUrl?.name ?? dataClass.gitRepoName) : undefined) ?? FAKE_EMPTY],
- ["{git_branch}", (!excluded ? dataClass.gitBranchName : undefined) ?? FAKE_EMPTY],
-
- // http, https, ssh, git
- ["{git_protocol}", (!excluded ? dataClass.gitRemoteUrl?.protocol : undefined) ?? FAKE_EMPTY],
- // github.com, gitlab.com, bitbucket.org, etc. (excluding port)
- ["{git_resource}", (!excluded ? dataClass.gitRemoteUrl?.resource : undefined) ?? FAKE_EMPTY],
- // github.com, gitlab.com, bitbucket.org, etc. (include port)
- ["{git_host}", (!excluded ? dataClass.gitRemoteUrl?.source : undefined) ?? FAKE_EMPTY],
- ["{git_port}", (!excluded ? dataClass.gitRemoteUrl?.port?.toString() : undefined) ?? FAKE_EMPTY],
- ["{git_href}", (!excluded ? dataClass.gitRemoteUrl?.href : undefined) ?? FAKE_EMPTY],
- ["{git_url}", (!excluded ? dataClass.gitRemoteUrl?.toString("https") : undefined) ?? FAKE_EMPTY]
- ]);
-
- for (const [key, value] of replaceMap) text = text.replaceAll(key, value);
-
- return text;
-};
-
-export const replaceFileInfo = async (
- text: string,
- excluded = false,
- document?: TextDocument,
- selection?: Selection
-): Promise => {
- const config = getConfig();
- text = text.slice();
- let workspaceFolderName =
- dataClass.workspaceFolder?.name ?? config.get(CONFIG_KEYS.Status.Details.Text.NoWorkspaceText)!;
- let workspaceName = dataClass.workspaceName ?? config.get(CONFIG_KEYS.Status.Details.Text.NoWorkspaceText)!;
- let workspaceAndFolder =
- workspaceName + (workspaceFolderName != FAKE_EMPTY ? ` - ${workspaceFolderName}` : FAKE_EMPTY);
-
- workspaceAndFolder =
- workspaceAndFolder.trim() === ""
- ? config.get(CONFIG_KEYS.Status.Details.Text.NoWorkspaceText)!
- : workspaceAndFolder;
-
- let fullDirectoryName: string = FAKE_EMPTY;
- const fileIcon = dataClass.editor ? resolveLangName(dataClass.editor.document) : "text";
- const fileSize = await getFileSize(config, dataClass);
- let relativeFilepath: string = FAKE_EMPTY;
-
- if (dataClass.editor && dataClass.workspaceName && !excluded) {
- const name = dataClass.workspaceName;
- relativeFilepath = workspace.asRelativePath(dataClass.editor.document.fileName);
- const relativePath = workspace.asRelativePath(dataClass.editor.document.fileName).split(sep);
-
- relativePath.splice(-1, 1);
- fullDirectoryName = `${name}${sep}${relativePath.join(sep)}`;
- }
-
- if (excluded) {
- workspaceFolderName = FAKE_EMPTY;
- workspaceName = FAKE_EMPTY;
- workspaceAndFolder = FAKE_EMPTY;
- fullDirectoryName = FAKE_EMPTY;
- relativeFilepath = FAKE_EMPTY;
- }
-
- const totalProblems = config.get(CONFIG_KEYS.Status.Problems.Enabled)
- ? getTotalProblems(config.get(CONFIG_KEYS.Status.Problems.countedSeverities)!)
- : 0;
-
- const replaceMap = new Map([
- ["{file_name}", dataClass.fileName ?? FAKE_EMPTY],
- ["{file_extension}", dataClass.fileExtension ?? FAKE_EMPTY],
- ["{file_size}", fileSize?.toLocaleString() ?? FAKE_EMPTY],
- ["{folder_and_file}", dataClass.folderAndFile ?? FAKE_EMPTY],
- ["{relative_file_path}", relativeFilepath],
- ["{directory_name}", dataClass.dirName ?? FAKE_EMPTY],
- ["{full_directory_name}", fullDirectoryName],
- ["{workspace}", workspaceName],
- ["{workspace_folder}", workspaceFolderName],
- ["{workspace_and_folder}", workspaceAndFolder],
- ["{lang}", toLower(fileIcon)],
- ["{Lang}", toTitle(fileIcon)],
- ["{LANG}", toUpper(fileIcon)],
- ["{a_lang}", `${getArticle(toLower(fileIcon))} ${toLower(fileIcon)}`],
- ["{a_Lang}", `${getArticle(toTitle(fileIcon))} ${toTitle(fileIcon)}`],
- ["{a_LANG}", `${getArticle(toUpper(fileIcon))} ${toUpper(fileIcon)}`],
- [
- "{problems_count}",
- config.get(CONFIG_KEYS.Status.Problems.Enabled) ? totalProblems.toLocaleString() : FAKE_EMPTY
- ],
- ["{problems_pluralize}", totalProblems === 1 ? "problem" : "problems"],
- ["{problems_count_errors}", COUNTED_SEVERITIES.error.toLocaleString()],
- ["{problems_count_warnings}", COUNTED_SEVERITIES.warning.toLocaleString()],
- ["{problems_count_infos}", COUNTED_SEVERITIES.info.toLocaleString()],
- ["{problems_count_hints}", COUNTED_SEVERITIES.hint.toLocaleString()],
- ["{line_count}", document?.lineCount.toLocaleString() ?? FAKE_EMPTY],
- ["{current_line}", selection ? (selection.active.line + 1).toLocaleString() : FAKE_EMPTY],
- ["{current_column}", selection ? (selection.active.character + 1).toLocaleString() : FAKE_EMPTY]
- ]);
-
- for (const [key, value] of replaceMap) text = text.replaceAll(key, value);
-
- return text;
-};
diff --git a/src/config.ts b/src/config.ts
deleted file mode 100644
index a92a9a39..00000000
--- a/src/config.ts
+++ /dev/null
@@ -1,299 +0,0 @@
-/* eslint-disable @typescript-eslint/no-explicit-any */
-import { type ConfigurationTarget, type WorkspaceConfiguration, workspace } from "vscode";
-import { type PROBLEM_LEVEL } from "./activity";
-
-export type FileSizeStandard = "iec" | "jedec";
-
-export interface ExtensionConfigurationType {
- enable: string;
- "app.id": string;
- "app.name": "Code" | "Visual Studio Code" | "VSCodium" | "Antigravity" | "Cursor" | "Custom";
- "app.privacyMode.enable": boolean;
- "app.whitelistEnabled": boolean;
- "app.whitelistIsBlacklist": boolean;
- "app.whitelist": string[];
- "status.details.enabled": boolean;
- "status.details.idle.enabled": boolean;
- "status.details.text.idle": string;
- "status.details.text.viewing": string;
- "status.details.text.editing": string;
- "status.details.text.debugging": string;
- "status.details.text.notInFile": string;
- "status.details.text.noWorkSpaceText": string;
- "status.state.enabled": boolean;
- "status.state.debugging.enabled": boolean;
- "status.state.idle.enabled": boolean;
- "status.state.text.idle": string;
- "status.state.text.viewing": string;
- "status.state.text.editing": string;
- "status.state.text.debugging": string;
- "status.state.text.notInFile": string;
- "status.state.text.noWorkspaceFound": string;
- "status.buttons.button1.enabled": boolean;
- "status.buttons.button1.active.enabled": boolean;
- "status.buttons.button1.active.label": string;
- "status.buttons.button1.active.url": string;
- "status.buttons.button1.inactive.enabled": boolean;
- "status.buttons.button1.inactive.label": string;
- "status.buttons.button1.inactive.url": string;
- "status.buttons.button1.idle.enabled": boolean;
- "status.buttons.button1.idle.label": string;
- "status.buttons.button1.idle.url": string;
- "status.buttons.button1.git.active.enabled": boolean;
- "status.buttons.button1.git.active.label": string;
- "status.buttons.button1.git.active.url": string;
- "status.buttons.button1.git.inactive.enabled": boolean;
- "status.buttons.button1.git.inactive.label": string;
- "status.buttons.button1.git.inactive.url": string;
- "status.buttons.button1.git.idle.enabled": boolean;
- "status.buttons.button1.git.idle.label": string;
- "status.buttons.button1.git.idle.url": string;
- "status.buttons.button2.enabled": boolean;
- "status.buttons.button2.active.enabled": boolean;
- "status.buttons.button2.active.label": string;
- "status.buttons.button2.active.url": string;
- "status.buttons.button2.inactive.enabled": boolean;
- "status.buttons.button2.inactive.label": string;
- "status.buttons.button2.inactive.url": string;
- "status.buttons.button2.idle.enabled": boolean;
- "status.buttons.button2.idle.label": string;
- "status.buttons.button2.idle.url": string;
- "status.buttons.button2.git.active.enabled": boolean;
- "status.buttons.button2.git.active.label": string;
- "status.buttons.button2.git.active.url": string;
- "status.buttons.button2.git.inactive.enabled": boolean;
- "status.buttons.button2.git.inactive.label": string;
- "status.buttons.button2.git.inactive.url": string;
- "status.buttons.button2.git.idle.enabled": boolean;
- "status.buttons.button2.git.idle.label": string;
- "status.buttons.button2.git.idle.url": string;
- "status.image.large.idle.key": string;
- "status.image.large.idle.text": string;
- "status.image.large.viewing.key": string;
- "status.image.large.viewing.text": string;
- "status.image.large.editing.key": string;
- "status.image.large.editing.text": string;
- "status.image.large.debugging.key": string;
- "status.image.large.debugging.text": string;
- "status.image.large.notInFile.key": string;
- "status.image.large.notInFile.text": string;
- "status.image.small.idle.key": string;
- "status.image.small.idle.text": string;
- "status.image.small.viewing.key": string;
- "status.image.small.viewing.text": string;
- "status.image.small.editing.key": string;
- "status.image.small.editing.text": string;
- "status.image.small.debugging.key": string;
- "status.image.small.debugging.text": string;
- "status.image.small.notInFile.key": string;
- "status.image.small.notInFile.text": string;
- "status.image.problems.enabled": boolean;
- "status.image.problems.text": string;
- "status.problems.enabled": boolean;
- "status.problems.text": string;
- "status.problems.countedSeverities": Array;
- "status.idle.enabled": boolean;
- "status.idle.check": boolean;
- "status.idle.disconnectOnIdle": boolean;
- "status.idle.resetElapsedTime": boolean;
- "status.idle.timeout": number;
- "status.showElapsedTime": boolean;
- "status.resetElapsedTimePerFile": boolean;
- "ignore.workspaces": Array;
- "ignore.workspacesText": string | Record;
- "ignore.repositories": Array;
- "ignore.organizations": Array;
- "ignore.gitHosts": Array;
- "file.size.humanReadable": boolean;
- "file.size.standard": FileSizeStandard;
- "file.size.round": number;
- "file.size.spacer": string;
- "behaviour.additionalFileMapping": Record;
- "behaviour.suppressNotifications": boolean;
- "behaviour.suppressRpcCouldNotConnect": boolean;
- "behaviour.statusBarAlignment": "Left" | "Right";
- "behaviour.debug": boolean;
-}
-
-// Created by hayper1919, you may use it inside your extension
-/**
- * Represents the configuration. It is a merged view of
- *
- * - *Default Settings*
- * - *Global (User) Settings*
- * - *Workspace settings*
- * - *Workspace Folder settings* - From one of the {@link workspace.workspaceFolders Workspace Folders} under which requested resource belongs to.
- * - *Language settings* - Settings defined under requested language.
- *
- * The *effective* value (returned by {@linkcode WorkspaceConfiguration.get get}) is computed by overriding or merging the values in the following order:
- *
- * 1. `defaultValue` (if defined in `package.json` otherwise derived from the value's type)
- * 1. `globalValue` (if defined)
- * 1. `workspaceValue` (if defined)
- * 1. `workspaceFolderValue` (if defined)
- * 1. `defaultLanguageValue` (if defined)
- * 1. `globalLanguageValue` (if defined)
- * 1. `workspaceLanguageValue` (if defined)
- * 1. `workspaceFolderLanguageValue` (if defined)
- *
- * **Note:** Only `object` value types are merged and all other value types are overridden.
- *
- * Example 1: Overriding
- *
- * ```ts
- * defaultValue = 'on';
- * globalValue = 'relative'
- * workspaceFolderValue = 'off'
- * value = 'off'
- * ```
- *
- * Example 2: Language Values
- *
- * ```ts
- * defaultValue = 'on';
- * globalValue = 'relative'
- * workspaceFolderValue = 'off'
- * globalLanguageValue = 'on'
- * value = 'on'
- * ```
- *
- * Example 3: Object Values
- *
- * ```ts
- * defaultValue = { "a": 1, "b": 2 };
- * globalValue = { "b": 3, "c": 4 };
- * value = { "a": 1, "b": 3, "c": 4 };
- * ```
- *
- * *Note:* Workspace and Workspace Folder configurations contains `launch` and `tasks` settings. Their basename will be
- * part of the section identifier. The following snippets shows how to retrieve all configurations
- * from `launch.json`:
- *
- * ```ts
- * // launch.json configuration
- * const config = workspace.getConfiguration('launch', vscode.workspace.workspaceFolders[0].uri);
- *
- * // retrieve values
- * const values = config.get('configurations');
- * ```
- *
- * Refer to [Settings](https://code.visualstudio.com/docs/getstarted/settings) for more information.
- */
-export type WorkspaceConfigurationWithType> = {
- /**
- * Return a value from this configuration.
- *
- * @param section Configuration name, supports _dotted_ names.
- * @return The value `section` denotes or `undefined`.
- */
- get)>(
- section: S
- ): (S extends keyof Configuration ? Configuration[S] : T) | undefined;
-
- /**
- * Return a value from this configuration.
- *
- * @param section Configuration name, supports _dotted_ names.
- * @param defaultValue A value should be returned when no value could be found, is `undefined`.
- * @return The value `section` denotes or the default.
- */
- get<
- T,
- S extends keyof Configuration | (string & Record),
- R = S extends keyof Configuration ? Configuration[S] : T
- >(
- section: S,
- defaultValue: R
- ): R;
-
- /**
- * Check if this configuration has a certain value.
- *
- * @param section Configuration name, supports _dotted_ names.
- * @return `true` if the section doesn't resolve to `undefined`.
- */
- has)>(section: S): boolean;
-
- /**
- * Retrieve all information about a configuration setting. A configuration value
- * often consists of a *default* value, a global or installation-wide value,
- * a workspace-specific value, folder-specific value
- * and language-specific values (if {@link WorkspaceConfiguration} is scoped to a language).
- *
- * Also provides all language ids under which the given configuration setting is defined.
- *
- * *Note:* The configuration name must denote a leaf in the configuration tree
- * (`editor.fontSize` vs `editor`) otherwise no result is returned.
- *
- * @param section Configuration name, supports _dotted_ names.
- * @return Information about a configuration setting or `undefined`.
- */
- inspect<
- T,
- S extends keyof Configuration | (string & Record),
- R = S extends keyof Configuration ? Configuration[S] : T
- >(
- section: S
- ):
- | {
- key: S;
-
- defaultValue?: R;
- globalValue?: R;
- workspaceValue?: R;
- workspaceFolderValue?: R;
-
- defaultLanguageValue?: R;
- globalLanguageValue?: R;
- workspaceLanguageValue?: R;
- workspaceFolderLanguageValue?: R;
-
- languageIds?: string[];
- }
- | undefined;
-
- /**
- * Update a configuration value. The updated configuration values are persisted.
- *
- * A value can be changed in
- *
- * - {@link ConfigurationTarget.Global Global settings}: Changes the value for all instances of the editor.
- * - {@link ConfigurationTarget.Workspace Workspace settings}: Changes the value for current workspace, if available.
- * - {@link ConfigurationTarget.WorkspaceFolder Workspace folder settings}: Changes the value for settings from one of the {@link workspace.workspaceFolders Workspace Folders} under which the requested resource belongs to.
- * - Language settings: Changes the value for the requested languageId.
- *
- * *Note:* To remove a configuration value use `undefined`, like so: `config.update('somekey', undefined)`
- *
- * @param section Configuration name, supports _dotted_ names.
- * @param value The new value.
- * @param configurationTarget The {@link ConfigurationTarget configuration target} or a boolean value.
- * - If `true` updates {@link ConfigurationTarget.Global Global settings}.
- * - If `false` updates {@link ConfigurationTarget.Workspace Workspace settings}.
- * - If `undefined` or `null` updates to {@link ConfigurationTarget.WorkspaceFolder Workspace folder settings} if configuration is resource specific,
- * otherwise to {@link ConfigurationTarget.Workspace Workspace settings}.
- * @param overrideInLanguage Whether to update the value in the scope of requested languageId or not.
- * - If `true` updates the value under the requested languageId.
- * - If `undefined` updates the value under the requested languageId only if the configuration is defined for the language.
- * @throws error while updating
- * - configuration which is not registered.
- * - window configuration to workspace folder
- * - configuration to workspace or workspace folder when no workspace is opened.
- * - configuration to workspace folder when there is no workspace folder settings.
- * - configuration to workspace folder when {@link WorkspaceConfiguration} is not scoped to a resource.
- */
- update)>(
- section: S,
- value: S extends keyof Configuration ? Configuration[S] : unknown,
- configurationTarget?: ConfigurationTarget | boolean | null,
- overrideInLanguage?: boolean
- ): Thenable;
-
- /**
- * Readable dictionary that backs this configuration.
- */
- readonly [key: string]: any;
-} & WorkspaceConfiguration;
-
-export type ExtensionConfiguration = WorkspaceConfigurationWithType;
-
-export const getConfig = () => workspace.getConfiguration("vscord") as ExtensionConfiguration;
diff --git a/src/constants.ts b/src/constants.ts
deleted file mode 100644
index c4b03cbf..00000000
--- a/src/constants.ts
+++ /dev/null
@@ -1,208 +0,0 @@
-import lang from "./data/languages.json";
-
-export const { KNOWN_EXTENSIONS, KNOWN_LANGUAGES } = lang as {
- KNOWN_EXTENSIONS: Record;
- KNOWN_LANGUAGES: Array<{ language: string; image: string }>;
-};
-
-export const EMPTY = "";
-export const FAKE_EMPTY = "\u200b\u200b";
-
-export const CONFIG_KEYS = {
- Enable: "enable" as const,
- App: {
- Id: "app.id" as const,
- Name: "app.name" as const,
- PrivacyMode: "app.privacyMode.enable" as const,
- WhitelistEnabled: "app.whitelistEnabled" as const,
- whitelistIsBlacklist: "app.whitelistIsBlacklist" as const,
- Whitelist: "app.whitelist" as const
- } as const,
- Status: {
- Details: {
- Enabled: "status.details.enabled" as const,
- Idle: {
- Enabled: "status.details.idle.enabled" as const
- } as const,
- Text: {
- Idle: "status.details.text.idle" as const,
- Editing: "status.details.text.editing" as const,
- Viewing: "status.details.text.viewing" as const,
- NotInFile: "status.details.text.notInFile" as const,
- NoWorkspaceText: "status.details.text.noWorkSpaceText" as const,
- Debugging: "status.details.text.debugging" as const
- } as const
- } as const,
- State: {
- Enabled: "status.state.enabled" as const,
- Debugging: {
- Enabled: "status.state.debugging.enabled" as const
- } as const,
- Idle: {
- Enabled: "status.state.idle.enabled" as const
- } as const,
- Text: {
- Idle: "status.state.text.idle" as const,
- Editing: "status.state.text.editing" as const,
- Debugging: "status.state.text.debugging" as const,
- Viewing: "status.state.text.viewing" as const,
- NotInFile: "status.state.text.notInFile" as const,
- NoWorkspaceFound: "status.state.text.noWorkspaceFound" as const
- } as const
- } as const,
- Buttons: {
- Button1: {
- Enabled: "status.buttons.button1.enabled" as const,
- Active: {
- Enabled: "status.buttons.button1.active.enabled" as const,
- Label: "status.buttons.button1.active.label" as const,
- Url: "status.buttons.button1.active.url" as const
- } as const,
- Inactive: {
- Enabled: "status.buttons.button1.inactive.enabled" as const,
- Label: "status.buttons.button1.inactive.label" as const,
- Url: "status.buttons.button1.inactive.url" as const
- } as const,
- Idle: {
- Enabled: "status.buttons.button1.idle.enabled" as const,
- Label: "status.buttons.button1.idle.label" as const,
- Url: "status.buttons.button1.idle.url" as const
- } as const,
- Git: {
- Active: {
- Enabled: "status.buttons.button1.git.active.enabled" as const,
- Label: "status.buttons.button1.git.active.label" as const,
- Url: "status.buttons.button1.git.active.url" as const
- } as const,
- Inactive: {
- Enabled: "status.buttons.button1.git.inactive.enabled" as const,
- Label: "status.buttons.button1.git.inactive.label" as const,
- Url: "status.buttons.button1.git.inactive.url" as const
- } as const,
- Idle: {
- Enabled: "status.buttons.button1.git.idle.enabled" as const,
- Label: "status.buttons.button1.git.idle.label" as const,
- Url: "status.buttons.button1.git.idle.url" as const
- } as const
- } as const
- },
- Button2: {
- Enabled: "status.buttons.button2.enabled" as const,
- Active: {
- Enabled: "status.buttons.button2.active.enabled" as const,
- Label: "status.buttons.button2.active.label" as const,
- Url: "status.buttons.button2.active.url" as const
- } as const,
- Inactive: {
- Enabled: "status.buttons.button2.inactive.enabled" as const,
- Label: "status.buttons.button2.inactive.label" as const,
- Url: "status.buttons.button2.inactive.url" as const
- } as const,
- Idle: {
- Enabled: "status.buttons.button2.idle.enabled" as const,
- Label: "status.buttons.button2.idle.label" as const,
- Url: "status.buttons.button2.idle.url" as const
- } as const,
- Git: {
- Active: {
- Enabled: "status.buttons.button2.git.active.enabled" as const,
- Label: "status.buttons.button2.git.active.label" as const,
- Url: "status.buttons.button2.git.active.url" as const
- } as const,
- Inactive: {
- Enabled: "status.buttons.button2.git.inactive.enabled" as const,
- Label: "status.buttons.button2.git.inactive.label" as const,
- Url: "status.buttons.button2.git.inactive.url" as const
- } as const,
- Idle: {
- Enabled: "status.buttons.button2.git.idle.enabled" as const,
- Label: "status.buttons.button2.git.idle.label" as const,
- Url: "status.buttons.button2.git.idle.url" as const
- } as const
- } as const
- }
- } as const,
- Image: {
- Large: {
- Idle: {
- Key: "status.image.large.idle.key" as const,
- Text: "status.image.large.idle.text" as const
- } as const,
- Editing: {
- Key: "status.image.large.editing.key" as const,
- Text: "status.image.large.editing.text" as const
- } as const,
- Debugging: {
- Key: "status.image.large.debugging.key" as const,
- Text: "status.image.large.debugging.text" as const
- } as const,
- Viewing: {
- Key: "status.image.large.viewing.key" as const,
- Text: "status.image.large.viewing.text" as const
- } as const,
- NotInFile: {
- Key: "status.image.large.notInFile.key" as const,
- Text: "status.image.large.notInFile.text" as const
- } as const
- } as const,
- Small: {
- Idle: {
- Key: "status.image.small.idle.key" as const,
- Text: "status.image.small.idle.text" as const
- } as const,
- Editing: {
- Key: "status.image.small.editing.key" as const,
- Text: "status.image.small.editing.text" as const
- } as const,
- Debugging: {
- Key: "status.image.small.debugging.key" as const,
- Text: "status.image.small.debugging.text" as const
- } as const,
- Viewing: {
- Key: "status.image.small.viewing.key" as const,
- Text: "status.image.small.viewing.text" as const
- } as const,
- NotInFile: {
- Key: "status.image.small.notInFile.key" as const,
- Text: "status.image.small.notInFile.text" as const
- } as const
- } as const
- } as const,
- Problems: {
- Enabled: "status.problems.enabled" as const,
- Text: "status.problems.text" as const,
- countedSeverities: "status.problems.countedSeverities" as const
- } as const,
- Idle: {
- Enabled: "status.idle.enabled" as const,
- Check: "status.idle.check" as const,
- DisconnectOnIdle: "status.idle.disconnectOnIdle" as const,
- ResetElapsedTime: "status.idle.resetElapsedTime" as const,
- Timeout: "status.idle.timeout" as const
- } as const,
- ShowElapsedTime: "status.showElapsedTime" as const,
- ResetElapsedTimePerFile: "status.resetElapsedTimePerFile" as const
- } as const,
- Ignore: {
- Workspaces: "ignore.workspaces" as const,
- WorkspacesText: "ignore.workspacesText" as const,
- Repositories: "ignore.repositories" as const,
- Organizations: "ignore.organizations" as const,
- GitHosts: "ignore.gitHosts" as const
- } as const,
- File: {
- Size: {
- HumanReadable: "file.size.humanReadable" as const,
- Standard: "file.size.standard" as const,
- Round: "file.size.round" as const,
- Spacer: "file.size.spacer" as const
- } as const
- } as const,
- Behaviour: {
- AdditionalFileMapping: "behaviour.additionalFileMapping" as const,
- SuppressNotifications: "behaviour.suppressNotifications" as const,
- SuppressRpcCouldNotConnect: "behaviour.suppressRpcCouldNotConnect" as const,
- StatusBarAlignment: "behaviour.statusBarAlignment" as const,
- Debug: "behaviour.debug" as const
- } as const
-} as const;
diff --git a/src/controller.ts b/src/controller.ts
deleted file mode 100644
index ef1d2e6f..00000000
--- a/src/controller.ts
+++ /dev/null
@@ -1,247 +0,0 @@
-import { type Disposable, type WindowState, debug, languages, window, workspace } from "vscode";
-import { type SetActivity, type SetActivityResponse, Client } from "@xhayper/discord-rpc";
-import type { GatewayActivityButton } from "discord-api-types/v10";
-import { getApplicationId } from "./helpers/getApplicationId";
-import { activity, onDiagnosticsChange } from "./activity";
-import { StatusBarMode, editor } from "./editor";
-import { validURL } from "./helpers/validURL";
-import { throttle } from "./helpers/throttle";
-import { logError, logInfo } from "./logger";
-import { CONFIG_KEYS } from "./constants";
-import { getConfig } from "./config";
-import { dataClass } from "./data";
-
-export class RPCController {
- listeners: Disposable[] = [];
- enabled = true;
- canSendActivity = true;
- manualIdleMode = false;
- manualIdling = false;
- state: SetActivity = {};
- debug = false;
- client: Client;
-
- private idleTimeout: NodeJS.Timeout | undefined;
- private iconTimeout: NodeJS.Timeout | undefined;
- private activityThrottle = throttle(
- (isViewing?: boolean, isIdling?: boolean) => this.sendActivity(isViewing, isIdling),
- 2000,
- true
- );
-
- constructor(clientId: string, debug = false) {
- const config = getConfig();
- this.client = new Client({ clientId });
- this.debug = debug;
- this.manualIdleMode = config.get(CONFIG_KEYS.Status.Idle.Check) === false;
-
- editor.setStatusBarItem(StatusBarMode.Pending);
-
- this.client.login().catch(async (error: Error) => {
- const config = getConfig();
-
- logError("Encountered following error while trying to login:", error);
- editor.setStatusBarItem(StatusBarMode.Disconnected);
- editor.errorMessageFailedToConnect(config, error);
- await this.client?.destroy();
- logInfo("[002] Destroyed Discord RPC client");
- });
-
- this.client.on("debug", (...data) => {
- if (!this.debug) return;
- logInfo("[003] Debug:", ...data);
- });
-
- this.client.on("ready", this.onReady.bind(this));
- this.client.on("disconnected", this.onDisconnected.bind(this));
- }
-
- private onReady() {
- logInfo("Successfully connected to Discord");
- this.cleanUp();
-
- if (this.enabled) void this.enable();
- editor.setStatusBarItem(StatusBarMode.Succeeded);
- }
-
- private onDisconnected() {
- this.cleanUp();
- editor.setStatusBarItem(StatusBarMode.Disconnected);
- }
-
- private listen() {
- const config = getConfig();
-
- const sendActivity = (isViewing = false, isIdling = false) => {
- this.activityThrottle.reset();
- void this.sendActivity(isViewing, isIdling);
- };
-
- const fileSwitch = window.onDidChangeActiveTextEditor(() => {
- logInfo("onDidChangeActiveTextEditor()");
- sendActivity(true);
- });
- const fileEdit = workspace.onDidChangeTextDocument((e) => {
- if (e.document !== dataClass.editor?.document) return;
- logInfo("onDidChangeTextDocument()");
- dataClass.updateGitInfo();
- void this.activityThrottle.callable();
- });
- const fileSelectionChanged = window.onDidChangeTextEditorSelection((e) => {
- if (e.textEditor !== dataClass.editor) return;
- logInfo("onDidChangeTextEditorSelection()");
- dataClass.updateGitInfo();
- void this.activityThrottle.callable();
- });
- const debugStart = debug.onDidStartDebugSession(() => sendActivity());
- const debugEnd = debug.onDidTerminateDebugSession(() => sendActivity());
- const diagnosticsChange = languages.onDidChangeDiagnostics(() => onDiagnosticsChange());
- const changeWindowState = window.onDidChangeWindowState((e: WindowState) => {
- logInfo("onDidChangeWindowState()");
- dataClass.updateGitInfo();
- this.checkIdle(e);
- });
-
- // fire checkIdle at least once after loading
- this.checkIdle(window.state);
-
- if (config.get(CONFIG_KEYS.Status.Problems.Enabled)) this.listeners.push(diagnosticsChange);
- if (config.get(CONFIG_KEYS.Status.Idle.Check)) this.listeners.push(changeWindowState);
-
- this.listeners.push(fileSwitch, fileEdit, fileSelectionChanged, debugStart, debugEnd);
- }
-
- private checkCanSend(isIdling: boolean): boolean {
- const config = getConfig();
- let userId = this.client.user?.id;
- if (!userId) return false;
- if (isIdling && config.get(CONFIG_KEYS.Status.Idle.DisconnectOnIdle)) return (this.canSendActivity = false);
- let whitelistEnabled = config.get(CONFIG_KEYS.App.WhitelistEnabled);
- if (whitelistEnabled) {
- let whitelist = config.get(CONFIG_KEYS.App.Whitelist);
- if (config.get(CONFIG_KEYS.App.whitelistIsBlacklist))
- if (whitelist!.includes(userId)) return (this.canSendActivity = false);
- else return (this.canSendActivity = true);
- else if (!whitelist!.includes(userId)) return (this.canSendActivity = false);
- }
- return (this.canSendActivity = true);
- }
-
- private async checkIdle(windowState: WindowState) {
- if (!this.enabled) return;
-
- const config = getConfig();
-
- if (config.get(CONFIG_KEYS.Status.Idle.Timeout) !== 0) {
- if (windowState.focused && this.idleTimeout) {
- clearTimeout(this.idleTimeout);
- await this.sendActivity();
- } else if (config.get(CONFIG_KEYS.Status.Idle.Check)) {
- this.idleTimeout = setTimeout(
- async () => {
- if (!config.get(CONFIG_KEYS.Status.Idle.Check)) return;
-
- if (
- config.get(CONFIG_KEYS.Status.Idle.DisconnectOnIdle) &&
- config.get(CONFIG_KEYS.Status.Idle.ResetElapsedTime)
- ) {
- delete this.state.startTimestamp;
- }
-
- if (!this.enabled) return;
-
- this.activityThrottle.reset();
- await this.sendActivity(false, true);
- },
- config.get(CONFIG_KEYS.Status.Idle.Timeout)! * 1000
- );
- }
- }
- }
-
- async login() {
- const { clientId } = getApplicationId(getConfig());
- logInfo("[004] Debug:", `Logging in with client ID "${clientId}"`);
- logInfo("[004] Debug:", "Login - isConnected", this.client.isConnected, "isReady", this.client.clientId);
- logInfo("[004] Debug:", `Login - ${this.client}`);
-
- if (this.client.isConnected && this.client.clientId === clientId) return;
-
- editor.setStatusBarItem(StatusBarMode.Pending);
-
- if (this.client.clientId !== clientId) await this.updateClientId(clientId);
- else if (!this.client.isConnected) await this.client.login();
- }
-
- async sendActivity(isViewing = false, isIdling = false): Promise {
- if (!this.enabled) return;
- if (this.manualIdleMode) isIdling = this.manualIdling;
- this.checkCanSend(isIdling);
- this.state = await activity(this.state, isViewing, isIdling);
- this.state.instance = true;
- if (!this.state || Object.keys(this.state).length === 0 || !this.canSendActivity)
- return void this.client.user?.clearActivity(process.pid);
- const filteredButton: GatewayActivityButton[] = [];
- this.state.buttons = (this.state.buttons ?? []).filter((button) => {
- const isValid = validURL(button.url);
- if (!isValid) filteredButton.push(button);
- return isValid;
- });
-
- if (filteredButton.length > 0)
- logInfo(
- "[005]",
- "Invalid buttons!\n",
- filteredButton.map((button) => JSON.stringify(button, null, 2)).join("\n")
- );
-
- return this.client.user?.setActivity(this.state, process.pid);
- }
-
- async disable() {
- this.enabled = false;
-
- this.cleanUp();
- if (this.idleTimeout) clearTimeout(this.idleTimeout);
- if (this.iconTimeout) clearTimeout(this.iconTimeout);
-
- await this.client.user?.clearActivity(process.pid);
- }
-
- async enable() {
- logInfo("[004] Debug:", "Enabling Discord Rich Presence");
-
- this.enabled = true;
-
- await this.login();
- logInfo("[004] Debug:", "Client Should be logged in");
- logInfo("[004] Debug:", `Enable - ${this.client}`);
-
- editor.setStatusBarItem(StatusBarMode.Succeeded);
-
- logInfo("[004] Debug:", "Enabled - isConnected", this.client.isConnected, "isReady", this.client.clientId);
- await this.sendActivity();
- this.cleanUp();
- this.listen();
-
- if (this.iconTimeout) clearTimeout(this.iconTimeout);
- }
-
- async updateClientId(clientId: string) {
- if (this.client.clientId === clientId) return;
- await this.client.destroy();
- this.client.clientId = clientId;
- await this.client.login();
- if (this.enabled) await this.sendActivity();
- }
-
- cleanUp() {
- for (const listener of this.listeners) listener.dispose();
- this.listeners = [];
- }
-
- async destroy() {
- await this.disable();
- await this.client.destroy();
- }
-}
diff --git a/src/data.ts b/src/data.ts
deleted file mode 100644
index 10ac0f88..00000000
--- a/src/data.ts
+++ /dev/null
@@ -1,270 +0,0 @@
-import type { API as GitApi, GitExtension, Remote, Repository } from "./@types/git";
-import { stripCredential } from "./helpers/stripCredential";
-import { basename, parse, sep } from "node:path";
-import { CONFIG_KEYS } from "./constants";
-import gitUrlParse from "git-url-parse";
-import { getConfig } from "./config";
-import { logInfo } from "./logger";
-import {
- type Disposable,
- type Extension,
- type TextEditor,
- type WorkspaceFolder,
- extensions,
- window,
- workspace
-} from "vscode";
-
-const ALLOWED_SCHEME = ["file", "vscode-remote", "untitled", "vsls"];
-const API_VERSION: Parameters["0"] = 1;
-
-function extractRepo(repos: Repository[], comparePath: string): Repository | undefined {
- const filterBySub = repos.filter((v) => {
- const subCompare = comparePath.substring(0, v.rootUri.fsPath.length);
- logInfo(
- `[data.ts] extractRepo(): "${v.rootUri.fsPath}" less than "${comparePath}" and equal to "${subCompare}"`
- );
- const byLen = v.rootUri.fsPath.length <= comparePath.length;
- const byEq = v.rootUri.fsPath === subCompare;
- return byLen && byEq;
- });
- const sortedByLen = filterBySub.sort((a, b) => b.rootUri.fsPath.length - a.rootUri.fsPath.length);
- const repo = sortedByLen.shift();
- return repo;
-}
-
-export class Data implements Disposable {
- protected _gitApi: GitApi | undefined;
- protected _repo: Repository | undefined;
- protected _remote: Remote | undefined;
-
- private rootListeners: Disposable[] = [];
- private gitApiListeners: Disposable[] = [];
-
- public editor: TextEditor | undefined;
-
- public constructor() {
- this.editor = window.activeTextEditor;
- this.requireGitApi().then((api) => {
- this._gitApi = api;
- this.updateGitInfo();
- });
- this.rootListeners.push(
- // TODO: there's a small delay when switching file, it will fire a event where e will be null, then after a few ms, it will fire again with non-null e, figure out how to work around that
- window.onDidChangeActiveTextEditor((e) => {
- this.debug("root(): window.onDidChangeActiveTextEditor");
-
- if (e && !ALLOWED_SCHEME.includes(e.document.uri.scheme))
- return this.debug(
- `root(): window.onDidChangeActiveTextEditor: got unallowed scheme, got '${e.document.uri.scheme}'`
- );
-
- if (e) this.debug(`root(): window.onDidChangeActiveTextEditor: got URI '${e.document.uri.scheme}'`);
-
- this.editor = e;
- })
- );
- }
-
- public get fileName(): string | undefined {
- const _file = this.editor ? parse(this.editor.document.uri.fsPath) : undefined;
- const v = _file ? _file.name : undefined;
- this.debug(`fileName(): ${v ?? ""}`);
- return v;
- }
-
- public get fileExtension(): string | undefined {
- const _file = this.editor ? parse(this.editor.document.uri.fsPath) : undefined;
- const v = _file ? _file.ext : undefined;
- this.debug(`fileExtension(): ${v ?? ""}`);
- return v;
- }
-
- public get fileSize(): Promise {
- return new Promise((resolve) => {
- void (async () => {
- if (!this.editor) return resolve(undefined);
-
- try {
- const v = await workspace.fs.stat(this.editor.document.uri);
- this.debug(`fileSize(): ${v.size}`);
- return resolve(v.size);
- } catch (ignored) {
- return resolve(undefined);
- }
- })();
- });
- }
-
- public get dirName(): string | undefined {
- const _file = this.editor ? parse(this.editor.document.uri.fsPath) : undefined;
- const v = basename(_file?.dir ?? "");
- this.debug(`dirName(): ${v}`);
- return v;
- }
-
- public get folderAndFile(): string | undefined {
- const _file = this.editor ? parse(this.editor.document.uri.fsPath) : undefined;
- const directory = basename(_file?.dir ?? "");
- const file = _file ? _file.base : undefined;
-
- if (!directory || !this.workspaceFolder?.name || directory === this.workspaceFolder?.name) return file;
-
- const v = `${directory}${sep}${file ?? ""}`;
- this.debug(`folderAndFile(): ${v}`);
- return v;
- }
-
- public get fullDirName(): string | undefined {
- const _file = this.editor ? parse(this.editor.document.uri.fsPath) : undefined;
- const v = _file?.dir;
- this.debug(`fullDirName(): ${v ?? ""}`);
- return v;
- }
-
- public get workspaceName(): string | undefined {
- let v = workspace.name;
-
- // TODO: Find a better way to handle this
- if (this.editor?.document.uri.scheme === "vscode-remote") v = v?.replaceAll(/\[(SSH|WSL):.*\]$/gm, "");
-
- this.debug(`workspaceName(): ${v ?? ""}`);
- return v;
- }
-
- public get workspaceFolder(): WorkspaceFolder | undefined {
- const uri = this.editor?.document.uri;
- let v: WorkspaceFolder | undefined;
- if (uri) v = workspace.getWorkspaceFolder(uri);
-
- this.debug(`workspaceFolder(): ${uri ? "Found URI" : "No URI"}`, v);
- return v;
- }
-
- public get gitRepoPath(): string | undefined {
- const v = this._repo?.rootUri.fsPath;
- this.debug(`gitRepoPath(): ${v ?? ""}`);
- return v;
- }
-
- public get gitRepoName(): string | undefined {
- const v = this._repo?.rootUri.fsPath.split(sep).pop();
- this.debug(`gitRepoName(): ${v ?? ""}`);
- return v;
- }
-
- public get gitRemoteName(): string | undefined {
- const v = this.gitRemoteUrl?.name;
- this.debug(`gitRepoName(): ${v ?? ""}`);
- return v;
- }
-
- public get gitRemoteUrl(): gitUrlParse.GitUrl | undefined {
- this.debug(`gitRemoteUrl(): Remote: ${this._remote}`);
- const v = stripCredential(this._remote?.fetchUrl ?? this._remote?.pushUrl ?? "");
- this.debug(`gitRemoteUrl(): Url: ${v ?? ""}`);
- if (!v) return;
-
- logInfo(`gitRemoteUrl(): Parsed: ${JSON.stringify(gitUrlParse(v), null, 2)}`);
-
- return gitUrlParse(v);
- }
-
- public get gitBranchName(): string | undefined {
- const v = this._repo?.state.HEAD?.name;
- this.debug(`gitBranchName(): ${v ?? ""}`);
- return v;
- }
-
- private async requireGit(): Promise | undefined> {
- const ext = extensions.getExtension("vscode.git");
- if (!ext) {
- return;
- }
- await ext.activate();
- return ext;
- }
-
- private async requireGitApi(): Promise {
- const ext = await this.requireGit();
- // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
- this.debug(`requireGitApi(): ${ext}`);
-
- if (!ext) {
- return;
- }
- const api = ext.exports.getAPI(API_VERSION);
- this.debug(`requireGitApi(): ${api ? "got api" : "no api from ext. ext exists."}`);
- this.gitApiListeners.push(
- api.onDidOpenRepository((e) => {
- this.debug(`listeners(): Open Repo ${e.rootUri.fsPath.split(sep).pop() ?? ""}`);
- this.updateGitInfo();
- }),
- api.onDidCloseRepository((e) => {
- this.debug(`listeners(): Open Close ${e.rootUri.fsPath.split(sep).pop() ?? ""}`);
- this.updateGitInfo();
- }),
- api.onDidChangeState((e) => {
- this.debug("listeners(): Change State", e);
- this.updateGitInfo();
- })
- );
- return api;
- }
-
- public updateGitInfo() {
- if (!this._gitApi) {
- this._repo = undefined;
- this._remote = undefined;
- this.debug(`updateGitInfo(): repo undefined, no api`);
- return;
- }
- this._repo = this.repo(this._gitApi);
- this._remote = this.remote(this._repo);
- this.debug(`updateGitInfo(): repo ${this.gitRepoPath ?? ""}`);
- }
-
- private repo(api: GitApi): Repository | undefined {
- const repos = api.repositories;
-
- if (window.activeTextEditor) {
- const _file = parse(window.activeTextEditor.document.uri.fsPath);
- return extractRepo(repos, _file.dir);
- }
-
- this.debug("repo(): no file open");
-
- if (!workspace.workspaceFolders) return undefined;
-
- return workspace.workspaceFolders
- .map((v) => [v])
- .sort((a, b) => a[0].index - b[0].index)
- .shift()
- ?.map((workspace) => extractRepo(repos, workspace.uri.fsPath))
- .shift();
- }
-
- private remote(repo?: Repository) {
- const remotes = repo?.state.remotes;
-
- if (!remotes) return;
-
- return remotes.find((v) => v.name === "origin") ?? remotes[0];
- }
-
- public dispose(): void {
- for (const listener of this.gitApiListeners) listener.dispose();
- this.gitApiListeners = [];
- for (const listener of this.rootListeners) listener.dispose();
- this.rootListeners = [];
- }
-
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
- private debug(...message: any[]) {
- if (!getConfig().get(CONFIG_KEYS.Behaviour.Debug)) return;
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
- logInfo("[data.ts]", ...message);
- }
-}
-
-export const dataClass = new Data();
diff --git a/src/data/TODO.md b/src/data/TODO.md
deleted file mode 100644
index 81a2b053..00000000
--- a/src/data/TODO.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# TODO
-
-- fix regex that have unescaped `.`
diff --git a/src/data/languages.json b/src/data/languages.json
deleted file mode 100644
index 20e37c4a..00000000
--- a/src/data/languages.json
+++ /dev/null
@@ -1,1724 +0,0 @@
-{
- "KNOWN_LANGUAGES": [
- {
- "language": "abap",
- "image": "text"
- },
- {
- "language": "agda",
- "image": "agda"
- },
- {
- "language": "ansible",
- "image": "ansible"
- },
- {
- "language": "asciidoc",
- "image": "asciidoc"
- },
- {
- "language": "bat",
- "image": "bat"
- },
- {
- "language": "bazel",
- "image": "bazel"
- },
- {
- "language": "bibtex",
- "image": "text"
- },
- {
- "language": "citrinescript",
- "image": "citrinescript"
- },
- {
- "language": "clojure",
- "image": "clojure"
- },
- {
- "language": "cobol",
- "image": "cobol"
- },
- {
- "language": "coffeescript",
- "image": "coffee"
- },
- {
- "language": "c",
- "image": "c"
- },
- {
- "language": "cosmo",
- "image": "cosmo"
- },
- {
- "language": "cpp",
- "image": "cpp"
- },
- {
- "language": "csharp",
- "image": "csharp"
- },
- {
- "language": "css",
- "image": "css"
- },
- {
- "language": "cython",
- "image": "cython"
- },
- {
- "language": "diff",
- "image": "manifest"
- },
- {
- "language": "dockerfile",
- "image": "docker"
- },
- {
- "language": "fortran",
- "image": "fortran"
- },
- {
- "language": "fountain",
- "image": "fountain"
- },
- {
- "language": "fsharp",
- "image": "fsharp"
- },
- {
- "language": "git-commit",
- "image": "manifest"
- },
- {
- "language": "git-rebase",
- "image": "manifest"
- },
- {
- "language": "glsl",
- "image": "glsl"
- },
- {
- "language": "gml",
- "image": "gml"
- },
- {
- "language": "gleam",
- "image": "gleam"
- },
- {
- "language": "go",
- "image": "go"
- },
- {
- "language": "grain",
- "image": "grain"
- },
- {
- "language": "groovy",
- "image": "groovy"
- },
- {
- "language": "gamescript",
- "image": "gamescript"
- },
- {
- "language": "handlebars",
- "image": "handlebars"
- },
- {
- "language": "haml",
- "image": "text"
- },
- {
- "language": "holyc",
- "image": "holyc"
- },
- {
- "language": "html-eex",
- "image": "heex"
- },
- {
- "language": "html",
- "image": "html"
- },
- {
- "language": "hlsl",
- "image": "hlsl"
- },
- {
- "language": "ini",
- "image": "manifest"
- },
- {
- "language": "java",
- "image": "java"
- },
- {
- "language": "javascript",
- "image": "js"
- },
- {
- "language": "javascriptreact",
- "image": "jsx"
- },
- {
- "language": "jinja",
- "image": "jinja"
- },
- {
- "language": "jsx",
- "image": "jsx"
- },
- {
- "language": "json",
- "image": "json"
- },
- {
- "language": "jsonc",
- "image": "json"
- },
- {
- "language": "jule",
- "image": "jule"
- },
- {
- "language": "jupyter",
- "image": "jupyter"
- },
- {
- "language": "kivy",
- "image": "kivy"
- },
- {
- "language": "kag-script",
- "image": "kag-script"
- },
- {
- "language": "kirikiri-tpv-javascript",
- "image": "kirikiri-tpv-javascript"
- },
- {
- "language": "latex",
- "image": "text"
- },
- {
- "language": "lean",
- "image": "lean"
- },
- {
- "language": "less",
- "image": "less"
- },
- {
- "language": "lua",
- "image": "lua"
- },
- {
- "language": "luau",
- "image": "luau"
- },
- {
- "language": "makefile",
- "image": "makefile"
- },
- {
- "language": "markdown",
- "image": "markdown"
- },
- {
- "language": "MATLAB",
- "image": "matlab"
- },
- {
- "language": "moonscript",
- "image": "moonscript"
- },
- {
- "language": "mojo",
- "image": "mojo"
- },
- {
- "language": "objective-c",
- "image": "objective-c"
- },
- {
- "language": "objective-cpp",
- "image": "objective-c"
- },
- {
- "language": "odin",
- "image": "odin"
- },
- {
- "language": "onyx",
- "image": "onyx"
- },
- {
- "language": "opengoal",
- "image": "opengoal"
- },
- {
- "language": "opengoal-goos",
- "image": "opengoal-goos"
- },
- {
- "language": "opengoal-ir",
- "image": "opengoal-ir"
- },
- {
- "language": "perl",
- "image": "perl"
- },
- {
- "language": "perl6",
- "image": "perl"
- },
- {
- "language": "php",
- "image": "php"
- },
- {
- "language": "plaintext",
- "image": "text"
- },
- {
- "language": "powershell",
- "image": "powershell"
- },
- {
- "language": "jade",
- "image": "pug"
- },
- {
- "language": "pug",
- "image": "pug"
- },
- {
- "language": "prisma",
- "image": "prisma"
- },
- {
- "language": "python",
- "image": "python"
- },
- {
- "language": "qml",
- "image": "qml"
- },
- {
- "language": "r",
- "image": "r"
- },
- {
- "language": "racket",
- "image": "racket"
- },
- {
- "language": "razor",
- "image": "cshtml"
- },
- {
- "language": "reasonml",
- "image": "reasonml"
- },
- {
- "language": "renpy",
- "image": "renpy"
- },
- {
- "language": "rst",
- "image": "restructuredtext"
- },
- {
- "language": "ruby",
- "image": "ruby"
- },
- {
- "language": "rust",
- "image": "rust"
- },
- {
- "language": "scss",
- "image": "scss"
- },
- {
- "language": "sass",
- "image": "scss"
- },
- {
- "language": "shaderlab",
- "image": "manifest"
- },
- {
- "language": "shellscript",
- "image": "shell"
- },
- {
- "language": "slim",
- "image": "text"
- },
- {
- "language": "solidity",
- "image": "solidity"
- },
- {
- "language": "sql",
- "image": "sql"
- },
- {
- "language": "squirrel",
- "image": "squirrel"
- },
- {
- "language": "starlark",
- "image": "bazel"
- },
- {
- "language": "systemverilog",
- "image": "systemverilog"
- },
- {
- "language": "stylus",
- "image": "stylus"
- },
- {
- "language": "swift",
- "image": "swift"
- },
- {
- "language": "typescript",
- "image": "ts"
- },
- {
- "language": "typescriptreact",
- "image": "tsx"
- },
- {
- "language": "templ",
- "image": "templ"
- },
- {
- "language": "tex",
- "image": "tex"
- },
- {
- "language": "typst",
- "image": "typst"
- },
- {
- "language": "umjunsik",
- "image": "umm"
- },
- {
- "language": "vb",
- "image": "vb"
- },
- {
- "language": "verse",
- "image": "verse"
- },
- {
- "language": "vhdl",
- "image": "vhdl"
- },
- {
- "language": "vue",
- "image": "vue"
- },
- {
- "language": "vue-html",
- "image": "vue"
- },
- {
- "language": "zura",
- "image": "zura"
- },
- {
- "language": "xml",
- "image": "xml"
- },
- {
- "language": "xsl",
- "image": "xml"
- },
- {
- "language": "yaml",
- "image": "yaml"
- },
- {
- "language": "zenscript",
- "image": "zs"
- }
- ],
- "KNOWN_EXTENSIONS": {
- "nodemon.json": {
- "image": "nodemon"
- },
- "package.json": {
- "image": "npm"
- },
- "turbo.json": {
- "image": "turbo"
- },
- "/(vercel|now)\\.json/i": {
- "image": "vercel"
- },
- "/\\.prettier((rc)|(\\.(toml|yml|yaml|json|js))?$){2}/i": {
- "image": "prettier"
- },
- "/\\.eslint((rc|ignore)|(\\.(json|js))?$){2}/i": {
- "image": "eslint"
- },
- "/\\.(now|vercel)ignore/i": {
- "image": "vercel"
- },
- "/\\prettier.config.js/i": {
- "image": "prettier"
- },
- "/vue.config\\.(js|ts)/i": {
- "image": "vueconfig"
- },
- "/vite.config\\.(js|ts)/i": {
- "image": "viteconfig"
- },
- "/vitest.config\\.(js|ts|mjs)/i": {
- "image": "vitestconfig"
- },
- "/jest.config\\.(js|ts)/i": {
- "image": "jest"
- },
- "/tailwind\\.config\\.(js|cjs|mjs|ts|cts|mts)/i": {
- "image": "tailwind"
- },
- "/gatsby-(browser|node|ssr|config)\\.js/i": {
- "image": "gatsbyjs"
- },
- "/webpack(\\.dev|\\.development|\\.prod|\\.production)?\\.config(\\.babel)?\\.(js|jsx|coffee|ts|json|json5|yaml|yml)/i": {
- "image": "webpack"
- },
- "babel.config.js": {
- "image": "babel"
- },
- ".ahk": {
- "image": "ahk"
- },
- ".ahkl": {
- "image": "ahk"
- },
- ".adoc": {
- "image": "asciidoc"
- },
- ".agda": {
- "image": "agda"
- },
- ".lagda": {
- "image": "agda"
- },
- ".asciidoc": {
- "image": "asciidoc"
- },
- ".astro": {
- "image": "astro"
- },
- ".astro.config.mjs": {
- "image": "astroconfig"
- },
- "androidmanifest.xml": {
- "image": "android"
- },
- ".bp": {
- "image": "android"
- },
- "/^angular[^.]*\\.js$/i": {
- "image": "angular"
- },
- ".ng": {
- "image": "angular"
- },
- ".applescript": {
- "image": "applescript"
- },
- "/(\\.)?appveyor\\.yml/i": {
- "image": "appveyor"
- },
- ".ino": {
- "image": "arduino"
- },
- ".swf": {
- "image": "as"
- },
- ".as": {
- "image": "as"
- },
- ".jsfl": {
- "image": "as"
- },
- ".swc": {
- "image": "as"
- },
- ".asp": {
- "image": "asp"
- },
- ".asax": {
- "image": "asp"
- },
- ".ascx": {
- "image": "asp"
- },
- ".ashx": {
- "image": "asp"
- },
- ".asmx": {
- "image": "asp"
- },
- ".aspx": {
- "image": "asp"
- },
- ".axd": {
- "image": "asp"
- },
- "/\\.(l?a|[ls]?o|out|s|a51|asm|axf|elf|prx|puff|z80)$/i": {
- "image": "assembly"
- },
- ".agc": {
- "image": "assembly"
- },
- ".ko": {
- "image": "assembly"
- },
- ".kv": {
- "image": "kivy"
- },
- ".ks": {
- "image": "kag-script"
- },
- ".tjs": {
- "image": "kirikiri-tpv-javascript"
- },
- ".lst": {
- "image": "assembly"
- },
- "/\\.((c([+px]{2}?)?-?)?objdump|bsdiff|bin|dat|pak|pdb)$/i": {
- "image": "assembly"
- },
- ".d-objdump": {
- "image": "assembly"
- },
- "/\\.gcode|\\.gco/i": {
- "image": "assembly"
- },
- "/\\.rpy[bc]$/i": {
- "image": "assembly"
- },
- "/\\.py[co]$/i": {
- "image": "assembly"
- },
- ".swp": {
- "image": "assembly"
- },
- ".DS_Store": {
- "image": "assembly"
- },
- ".au3": {
- "image": "autoit"
- },
- "/\\.babelrc/i": {
- "image": "babel"
- },
- ".bat": {
- "image": "bat"
- },
- ".batch": {
- "image": "bat"
- },
- ".cmd": {
- "image": "bat"
- },
- "/\\.(exe|com|msi)$/i": {
- "image": "bat"
- },
- ".reg": {
- "image": "bat"
- },
- "/^(BUILD)|(WORKSPACE)|(\\.bzl)|(\\.bazel(rc)?)|(\\.s(tar|ky))$/": {
- "image": "bazel"
- },
- "/^(\\.bowerrc|bower\\.json|Bowerfile)$/i": {
- "image": "bower"
- },
- "/\\.bf?$/i": {
- "image": "brainfuck"
- },
- "/\\.c$/i": {
- "image": "c"
- },
- "/(cargo.toml|cargo.lock)/i": {
- "image": "cargo"
- },
- ".casc": {
- "image": "casc"
- },
- ".cas": {
- "image": "casc"
- },
- ".ces": {
- "image": "citrinescript"
- },
- ".cfc": {
- "image": "coldfusion"
- },
- ".cfm": {
- "image": "coldfusion"
- },
- "circle.yml": {
- "image": "circleci"
- },
- ".clj": {
- "image": "clojure"
- },
- ".cl2": {
- "image": "clojure"
- },
- ".cljc": {
- "image": "clojure"
- },
- ".cljx": {
- "image": "clojure"
- },
- ".hic": {
- "image": "clojure"
- },
- "/\\.cljs(cm)?$/i": {
- "image": "clojure"
- },
- ".cmake": {
- "image": "cmake"
- },
- "/^CMakeLists\\.txt$/": {
- "image": "cmake"
- },
- "/\\.codeclimate\\.(yml|json)/i": {
- "image": "codeclimate"
- },
- ".cbl": {
- "image": "cobol"
- },
- ".cob": {
- "image": "cobol"
- },
- ".coffee": {
- "image": "coffee"
- },
- ".cjsx": {
- "image": "coffee"
- },
- ".coffee.ecr": {
- "image": "coffee"
- },
- "/contenthook\\.config\\.(ts|cjs|mjs|js)$/i": {
- "image": "contenthook"
- },
- "/contentkit\\.config\\.(ts|cjs|mjs|js)$/i": {
- "image": "contentkit"
- },
- ".coffee.erb": {
- "image": "coffee"
- },
- ".litcoffee": {
- "image": "coffee"
- },
- ".iced": {
- "image": "coffee"
- },
- ".cos": {
- "image": "cosmo"
- },
- ".⭐": {
- "image": "cosmo"
- },
- "/\\.c[+px]{2}$|\\.cc$/i": {
- "image": "cpp"
- },
- "/\\.h[+px]{2}$/i": {
- "image": "cpp"
- },
- "/\\.[it]pp$/i": {
- "image": "cpp"
- },
- "/\\.(tcc|inl)$/i": {
- "image": "cpp"
- },
- ".cats": {
- "image": "cpp"
- },
- ".idc": {
- "image": "cpp"
- },
- ".w": {
- "image": "cpp"
- },
- ".nc": {
- "image": "cpp"
- },
- ".upc": {
- "image": "cpp"
- },
- ".xpm": {
- "image": "cpp"
- },
- "/\\.e?cr$/i": {
- "image": "crystal"
- },
- ".cs": {
- "image": "csharp"
- },
- ".csx": {
- "image": "csharp"
- },
- ".cshtml": {
- "image": "razor"
- },
- ".csproj": {
- "image": "csproj"
- },
- ".css": {
- "image": "css"
- },
- ".css.map": {
- "image": "cssmap"
- },
- ".cu": {
- "image": "cuda"
- },
- ".pyx": {
- "image": "cython"
- },
- "/\\.di?$/i": {
- "image": "d"
- },
- ".dart": {
- "image": "dart"
- },
- ".dfm": {
- "image": "delphi"
- },
- ".dpr": {
- "image": "delphi"
- },
- ".dsc": {
- "image": "denizen"
- },
- ".dm": {
- "image": "dm"
- },
- ".dme": {
- "image": "dm"
- },
- ".dmm": {
- "image": "dm"
- },
- "/^(Dockerfile|docker-compose)|\\.docker(file|ignore)$/i": {
- "image": "docker"
- },
- "/^docker-sync\\.yml$/i": {
- "image": "docker"
- },
- ".editorconfig": {
- "image": "editorconfig"
- },
- ".ejs": {
- "image": "ejs"
- },
- ".ex": {
- "image": "elixir"
- },
- "/\\.(exs|l?eex)$/i": {
- "image": "elixir"
- },
- "/^mix\\.(exs?|lock)$/i": {
- "image": "elixir"
- },
- ".elm": {
- "image": "elm"
- },
- ".env": {
- "image": "env"
- },
- ".erl": {
- "image": "erlang"
- },
- "/\\.([fF])(03|08|18|90|95)$/i": {
- "image": "fortran"
- },
- ".beam": {
- "image": "erlang"
- },
- ".hrl": {
- "image": "erlang"
- },
- ".xrl": {
- "image": "erlang"
- },
- ".yrl": {
- "image": "erlang"
- },
- ".app.src": {
- "image": "erlang"
- },
- "/^Emakefile$/": {
- "image": "erlang"
- },
- "/^rebar(\\.config)?\\.lock$/i": {
- "image": "erlang"
- },
- "/(\\.firebaserc|firebase\\.json)/i": {
- "image": "firebase"
- },
- ".flowconfig": {
- "image": "flowconfig"
- },
- ".fountain": {
- "image": "fountain"
- },
- ".spmd": {
- "image": "fountain"
- },
- ".fs": {
- "image": "fsharp"
- },
- ".fsi": {
- "image": "fsharp"
- },
- ".fsscript": {
- "image": "fsharp"
- },
- ".fsx": {
- "image": "fsharp"
- },
- "/^Gemfile(\\.lock)?$/i": {
- "image": "gemfile"
- },
- "/^\\.git|^\\.keep$|\\.mailmap$/i": {
- "image": "git"
- },
- ".gml": {
- "image": "gml"
- },
- ".gleam": {
- "image": "gleam"
- },
- ".go": {
- "image": "go"
- },
- ".gd": {
- "image": "godot"
- },
- ".gr": {
- "image": "grain"
- },
- ".gradle": {
- "image": "gradle"
- },
- "gradlew": {
- "image": "gradle"
- },
- "/\\.(g|c)sc$/i": {
- "image": "gamescript"
- },
- ".gql": {
- "image": "graphql"
- },
- ".graphql": {
- "image": "graphql"
- },
- ".groovy": {
- "image": "groovy"
- },
- "/\\.gv?y$/i": {
- "image": "groovy"
- },
- ".gsh": {
- "image": "groovy"
- },
- "/[Gg]runtfile\\.(js|coffee)/i": {
- "image": "gruntfile"
- },
- "gulpfile.js": {
- "image": "gulp"
- },
- "/\\.(hbs|handlebars|(mu)?stache)$/i": {
- "image": "handlebars"
- },
- ".prg": {
- "image": "harbour"
- },
- ".ha": {
- "image": "hare"
- },
- ".hbp": {
- "image": "harbour"
- },
- ".hbc": {
- "image": "harbour"
- },
- ".rc": {
- "image": "harbour"
- },
- ".fmg": {
- "image": "harbour"
- },
- ".hs": {
- "image": "haskell"
- },
- ".hsc": {
- "image": "haskell"
- },
- ".c2hs": {
- "image": "haskell"
- },
- ".c3": {
- "image": "c3"
- },
- ".lhs": {
- "image": "haskell"
- },
- "/\\.(hlsl|cginc|cg|shader|fx)$/i": {
- "image": "hlsl"
- },
- "/\\.(glsl|vert|frag|geom|tesc|tese|comp)$/i": {
- "image": "glsl"
- },
- "/\\.hx(ml)?$/i": {
- "image": "haxe"
- },
- "/^procfile/i": {
- "image": "heroku"
- },
- ".heex": {
- "image": "heex"
- },
- "heroku.yml": {
- "image": "heroku"
- },
- ".hjson": {
- "image": "hjson"
- },
- ".hc": {
- "image": "holyc"
- },
- "/\\.x?html?$/i": {
- "image": "html"
- },
- ".http": {
- "image": "http"
- },
- ".rest": {
- "image": "http"
- },
- ".jar": {
- "image": "jar"
- },
- ".java": {
- "image": "java"
- },
- ".j2": {
- "image": "jinja"
- },
- ".jinja": {
- "image": "jinja"
- },
- ".js": {
- "image": "js"
- },
- ".es6": {
- "image": "js"
- },
- ".es": {
- "image": "js"
- },
- ".mjs": {
- "image": "js"
- },
- ".js.map": {
- "image": "jsmap"
- },
- ".json": {
- "image": "json"
- },
- ".jsonc": {
- "image": "json"
- },
- ".jsx": {
- "image": "jsx"
- },
- ".jule": {
- "image": "jule"
- },
- "/\\.(jil|jl)/i": {
- "image": "julia"
- },
- ".ipynb": {
- "image": "jupyter"
- },
- "/\\.kt[ms]?$/i": {
- "image": "kotlin"
- },
- ".lean": {
- "image": "lean"
- },
- ".lean4markdown": {
- "image": "lean"
- },
- ".less": {
- "image": "less"
- },
- "/\\.l(i?sp)?$/i": {
- "image": "lisp"
- },
- "/\\.n[ly]$/i": {
- "image": "lisp"
- },
- ".podsl": {
- "image": "lisp"
- },
- "/\\.s([s]|(cm)|(exp))$/i": {
- "image": "lisp"
- },
- ".ls": {
- "image": "livescript"
- },
- ".log": {
- "image": "log"
- },
- "/\\.([w]|(pd_))?lua$/i": {
- "image": "lua"
- },
- "/\\.luau$/i": {
- "image": "luau"
- },
- "/\\.rbx(?:lx|l|m|s)?$/i": {
- "image": "luau"
- },
- "/^Makefile/": {
- "image": "makefile"
- },
- "/^mk\\.config$/": {
- "image": "makefile"
- },
- "/\\.(mk|mak|make)$/i": {
- "image": "makefile"
- },
- "/^BSDmakefile$/i": {
- "image": "makefile"
- },
- "/^GNUmakefile$/i": {
- "image": "makefile"
- },
- "/^makefile\\.sco$/i": {
- "image": "makefile"
- },
- "/^Kbuild$/": {
- "image": "makefile"
- },
- "/^makefile$/": {
- "image": "makefile"
- },
- "/^mkfile$/i": {
- "image": "makefile"
- },
- "/^\\.?qmake$/i": {
- "image": "makefile"
- },
- "/\\.(geo|topo)$/i": {
- "image": "manifest"
- },
- ".cson": {
- "image": "manifest"
- },
- ".json5": {
- "image": "manifest"
- },
- ".ndjson": {
- "image": "manifest"
- },
- ".fea": {
- "image": "manifest"
- },
- ".json.eex": {
- "image": "manifest"
- },
- ".pawn": {
- "image": "pawn"
- },
- ".proto": {
- "image": "manifest"
- },
- ".pytb": {
- "image": "manifest"
- },
- ".pydeps": {
- "image": "manifest"
- },
- "/\\.pot?$/i": {
- "image": "manifest"
- },
- ".ejson": {
- "image": "manifest"
- },
- ".edn": {
- "image": "manifest"
- },
- ".eam.fs": {
- "image": "manifest"
- },
- ".qml": {
- "image": "manifest"
- },
- ".qbs": {
- "image": "manifest"
- },
- ".ston": {
- "image": "manifest"
- },
- ".ttl": {
- "image": "manifest"
- },
- ".typ": {
- "image": "typst"
- },
- ".rviz": {
- "image": "manifest"
- },
- ".sol": {
- "image": "solidity"
- },
- ".syntax": {
- "image": "manifest"
- },
- ".webmanifest": {
- "image": "manifest"
- },
- "/^pkginfo$/": {
- "image": "manifest"
- },
- ".moon": {
- "image": "moonscript"
- },
- "/^mime\\.types$/i": {
- "image": "manifest"
- },
- "/^METADATA\\.pb$/": {
- "image": "manifest"
- },
- "/[\\/\\\\](?:magic[\\/\\\\]Magdir|file[\\/\\\\]magic)[\\/\\\\][-.\\w]+$/i": {
- "image": "manifest"
- },
- "/(\\\\|\\/)dev[-\\w]+\\1(?:[^\\\\\\/]+\\1)*(?!DESC|NOTES)(?:[A-Z][-A-Z]*)(?:\\.in)?$/": {
- "image": "manifest"
- },
- "lib/icons/.icondb.js": {
- "image": "manifest"
- },
- "/\\.git[\\/\\\\](.*[\\/\\\\])?(HEAD|ORIG_HEAD|packed-refs|logs[\\/\\\\](.+[\\/\\\\])?[^\\/\\\\]+)$/": {
- "image": "manifest"
- },
- "/\\.(md|mdown|markdown|mkd|mkdown|mdwn|mkdn|rmd|ron|pmd)$/i": {
- "image": "markdown"
- },
- ".mdx": {
- "image": "markdownx"
- },
- ".marko": {
- "image": "marko"
- },
- "/\\.m$/i": {
- "image": "matlab"
- },
- ".nim": {
- "image": "nim"
- },
- ".nims": {
- "image": "nim"
- },
- ".nimble": {
- "image": "nim"
- },
- ".nix": {
- "image": "nix"
- },
- ".npmrc": {
- "image": "npm"
- },
- ".npmignore": {
- "image": "npm"
- },
- ".nut": {
- "image": "squirrel"
- },
- "/\\.mm?$/i": {
- "image": "objective-c"
- },
- ".pch": {
- "image": "objective-c"
- },
- ".x": {
- "image": "objective-c"
- },
- "/\\.eliom[i]?$/i": {
- "image": "ocaml"
- },
- "/\\.ml[4lyi]?$/i": {
- "image": "ocaml"
- },
- ".mt": {
- "image": "metal"
- },
- ".odin": {
- "image": "odin"
- },
- ".onyx": {
- "image": "onyx"
- },
- "/\\.pas(cal)?$/i": {
- "image": "pascal"
- },
- ".lpr": {
- "image": "pascal"
- },
- ".inc": {
- "image": "pawn"
- },
- ".sma": {
- "image": "pawn"
- },
- "/\\.p(wn)?$/i": {
- "image": "pawn"
- },
- ".sp": {
- "image": "sourcepawn"
- },
- "/\\.p(er)?l$/i": {
- "image": "perl"
- },
- ".al": {
- "image": "perl"
- },
- "/\\.p([hm]|(lx))$/i": {
- "image": "perl"
- },
- "/\\.(psgi|xs)$/i": {
- "image": "perl"
- },
- ".pl6": {
- "image": "perl"
- },
- "/\\.[tp]6$|\\.6pl$/i": {
- "image": "perl"
- },
- "/\\.(pm6|p6m)$/i": {
- "image": "perl"
- },
- ".6pm": {
- "image": "perl"
- },
- ".nqp": {
- "image": "perl"
- },
- ".p6l": {
- "image": "perl"
- },
- ".pod6": {
- "image": "perl"
- },
- "/^Rexfile$/": {
- "image": "perl"
- },
- "/\\.php([st\\d]|_cs)?$/i": {
- "image": "php"
- },
- "/^Phakefile/": {
- "image": "php"
- },
- ".pony": {
- "image": "ponylang"
- },
- ".pcss": {
- "image": "postcss"
- },
- "/\\.ps[md]?1$/i": {
- "image": "powershell"
- },
- ".ps1xml": {
- "image": "powershell"
- },
- ".prettierignore": {
- "image": "prettier"
- },
- "prisma.yml": {
- "image": "prisma"
- },
- ".pde": {
- "image": "processing"
- },
- ".jade": {
- "image": "pug"
- },
- ".pug": {
- "image": "pug"
- },
- ".purs": {
- "image": "purescript"
- },
- ".ipy": {
- "image": "python"
- },
- ".isolate": {
- "image": "python"
- },
- ".pep": {
- "image": "python"
- },
- "/\\.gypi?$/i": {
- "image": "python"
- },
- ".pyde": {
- "image": "python"
- },
- "/\\.py([wi3tp]|(de))?$/i": {
- "image": "python"
- },
- ".tac": {
- "image": "python"
- },
- ".wsgi": {
- "image": "python"
- },
- ".xpy": {
- "image": "python"
- },
- "/\\.rpy(?:m|mc|c|b)?$/i": {
- "image": "renpy"
- },
- "/\\.?(pypirc|pythonrc|python-venv)$/i": {
- "image": "python"
- },
- "/^(SConstruct|SConscript)$/": {
- "image": "python"
- },
- "/^(Snakefile|WATCHLISTS)$/": {
- "image": "python"
- },
- "/^wscript$/": {
- "image": "python"
- },
- "/\\.(r|Rprofile|rsx|rd)$/i": {
- "image": "r"
- },
- ".razor": {
- "image": "razor"
- },
- "/\\.res?i?$/i": {
- "image": "reasonml"
- },
- ".rst": {
- "image": "restructuredtext"
- },
- "/\\.(rb|ru|ruby|erb|gemspec|god|mspec|pluginspec|podspec|rabl|rake|opal)$/i": {
- "image": "ruby"
- },
- "/^\\.?(irbrc|gemrc|pryrc|ruby-(gemset|version))$/i": {
- "image": "ruby"
- },
- "/^(Appraisals|(Rake|[bB]uild|Cap|Danger|Deliver|Fast|Guard|Jar|Maven|Pod|Puppet|Snap)file(\\.lock)?)$/": {
- "image": "ruby"
- },
- "/\\.(jbuilder|rbuild|rb[wx]|builder)$/i": {
- "image": "ruby"
- },
- "/^rails$/": {
- "image": "ruby"
- },
- ".watchr": {
- "image": "ruby"
- },
- ".rs": {
- "image": "rust"
- },
- "/\\.(sc|scala)$/i": {
- "image": "scala"
- },
- "/\\.s[ac]ss$/i": {
- "image": "scss"
- },
- "/\\.(sh|rc|bats|bash|tool|install|command)$/i": {
- "image": "shell"
- },
- "/^(\\.?bash(rc|[-_]?(profile|login|logout|history|prompt))|_osc|config|install-sh|PKGBUILD)$/i": {
- "image": "shell"
- },
- "/\\.(ksh|mksh|pdksh)$/i": {
- "image": "shell"
- },
- ".sh-session": {
- "image": "shell"
- },
- "/\\.zsh(-theme|_history)?$|^\\.?(antigen|zpreztorc|zlogin|zlogout|zprofile|zshenv|zshrc)$/i": {
- "image": "shell"
- },
- "/\\.fish$|^\\.fishrc$/i": {
- "image": "shell"
- },
- "/^\\.?(login|profile)$/": {
- "image": "shell"
- },
- ".inputrc": {
- "image": "shell"
- },
- ".tmux": {
- "image": "shell"
- },
- "/^(configure|config\\.(guess|rpath|status|sub)|depcomp|libtool|compile)$/": {
- "image": "shell"
- },
- "/^\\/(private\\/)?etc\\/([^\\/]+\\/)*(profile$|nanorc$|rc\\.|csh\\.)/i": {
- "image": "shell"
- },
- "/^\\.?cshrc$/i": {
- "image": "shell"
- },
- ".profile": {
- "image": "shell"
- },
- ".tcsh": {
- "image": "shell"
- },
- ".csh": {
- "image": "shell"
- },
- ".sk": {
- "image": "skript"
- },
- ".sqf": {
- "image": "sqf"
- },
- "/\\.(my)?sql$/i": {
- "image": "sql"
- },
- ".ddl": {
- "image": "sql"
- },
- ".udf": {
- "image": "sql"
- },
- ".hql": {
- "image": "sql"
- },
- ".rkt": {
- "image": "racket"
- },
- ".viw": {
- "image": "sql"
- },
- ".prc": {
- "image": "sql"
- },
- ".cql": {
- "image": "sql"
- },
- ".db2": {
- "image": "sql"
- },
- "/\\.(styl|stylus)$/i": {
- "image": "stylus"
- },
- ".sln": {
- "image": "csproj"
- },
- "/\\.sv(h)?$/i": {
- "image": "systemverilog"
- },
- ".svelte": {
- "image": "svelte"
- },
- ".svg": {
- "image": "svg"
- },
- ".swift": {
- "image": "swift"
- },
- "/\\.tex(i)?$/i": {
- "image": "tex"
- },
- ".ltx": {
- "image": "tex"
- },
- ".aux": {
- "image": "tex"
- },
- ".sty": {
- "image": "tex"
- },
- ".dtx": {
- "image": "tex"
- },
- ".cls": {
- "image": "tex"
- },
- ".ins": {
- "image": "tex"
- },
- ".lbx": {
- "image": "tex"
- },
- ".mkiv": {
- "image": "tex"
- },
- "/\\.mk[vi]i$/i": {
- "image": "tex"
- },
- "/^hyphen(ex)?\\.(cs|den|det|fr|sv|us)$/": {
- "image": "tex"
- },
- "/\\.te?xt$/i": {
- "image": "text"
- },
- ".rtf": {
- "image": "text"
- },
- "/\\.i?nfo$/i": {
- "image": "text"
- },
- ".msg": {
- "image": "text"
- },
- "/\\.(utxt|utf8)$/i": {
- "image": "text"
- },
- ".templ": {
- "image": "templ"
- },
- ".toml": {
- "image": "toml"
- },
- ".travis.yml": {
- "image": "travis"
- },
- ".ts.map": {
- "image": "tsmap"
- },
- "/.*\\.d\\.ts/i": {
- "image": "typescript-def"
- },
- ".ts": {
- "image": "ts"
- },
- ".tsx": {
- "image": "tsx"
- },
- ".twig": {
- "image": "twig"
- },
- ".umm": {
- "image": "umm"
- },
- ".v": {
- "image": "v"
- },
- ".vh": {
- "image": "v"
- },
- ".vala": {
- "image": "vala"
- },
- ".vapi": {
- "image": "vala"
- },
- ".vb": {
- "image": "vb"
- },
- ".vbs": {
- "image": "vb"
- },
- ".vbhtml": {
- "image": "vb"
- },
- ".vbproj": {
- "image": "vb"
- },
- ".vba": {
- "image": "vba"
- },
- ".vcxproj": {
- "image": "vcxproj"
- },
- ".verse": {
- "image": "verse"
- },
- ".vscodeignore": {
- "image": "vscodeignore"
- },
- ".vue": {
- "image": "vue"
- },
- ".vhd": {
- "image": "vhdl"
- },
- ".vhdl": {
- "image": "vhdl"
- },
- ".zu": {
- "image": "zura"
- },
- ".zura": {
- "image": "zura"
- },
- ".wat": {
- "image": "wasm"
- },
- ".wast": {
- "image": "wasm"
- },
- ".wasm": {
- "image": "wasm"
- },
- ".xml": {
- "image": "xml"
- },
- ".xaml": {
- "image": "xaml"
- },
- "/\\.ya?ml$/i": {
- "image": "yaml"
- },
- "/^yarn(\\.lock)?$/i": {
- "image": "yarn"
- },
- ".yarnrc": {
- "image": "yarn"
- },
- "/yumma\\.config\\.(cjs|js|mjs|ts)/i": {
- "image": "yummacss"
- },
- ".zig": {
- "image": "zig"
- },
- ".maeel": {
- "image": "maeel"
- },
- "/\\.(tfvars|tf)$/i": {
- "image": "terraform"
- },
- "/\\.mojo$/i": {
- "image": "mojo"
- },
- ".🔥": {
- "image": "mojo"
- },
- ".zs": {
- "image": "zs"
- }
- }
-}
diff --git a/src/editor.ts b/src/editor.ts
deleted file mode 100644
index ce64a04f..00000000
--- a/src/editor.ts
+++ /dev/null
@@ -1,145 +0,0 @@
-import { Disposable, ConfigurationTarget, StatusBarAlignment, StatusBarItem, window, commands } from "vscode";
-import { type ExtensionConfiguration, type ExtensionConfigurationType, getConfig } from "./config";
-import { CONFIG_KEYS } from "./constants";
-import { logInfo, outputChannel } from "./logger";
-
-export enum StatusBarMode {
- Disabled,
- Disconnected,
- Pending,
- Succeeded
-}
-
-class EditorController implements Disposable {
- statusBarItem: StatusBarItem | undefined;
- statusBarItemMode: StatusBarMode = StatusBarMode.Disabled;
-
- #getAlignmentFromConfig(config: ExtensionConfiguration) {
- const value = config.get(CONFIG_KEYS.Behaviour.StatusBarAlignment);
- const isRight = value === "Right";
- return isRight ? StatusBarAlignment.Right : StatusBarAlignment.Left;
- }
-
- setStatusBarItem(mode: StatusBarMode) {
- this.statusBarItemMode = mode;
- const config = getConfig();
- if (!config.get(CONFIG_KEYS.Enable)) {
- mode = StatusBarMode.Disabled;
- }
- if (!this.statusBarItem) {
- logInfo("setStatusBarItem: status bar item is undefined");
- this.statusBarItem = window.createStatusBarItem(this.#getAlignmentFromConfig(getConfig()));
- }
- if (mode === StatusBarMode.Disabled) {
- this.statusBarItem.hide();
- return;
- }
-
- const whenDisconnected: Partial = {
- text: "$(warning) Discord RPC",
- tooltip: "Disconnected. Click to reconnect",
- command: "vscord.reconnect"
- };
- const whenPending: Partial = {
- text: "$(pulse) Discord RPC",
- tooltip: "Please, wait. Connecting to Discord Gateway..."
- };
- const whenSucceeded: Partial = {
- text: "Discord RPC",
- tooltip: "Connected to Discord Gateway. Click to disconnect",
- command: "vscord.disconnect"
- };
- const statusBarItemByMode = {
- [StatusBarMode.Disconnected]: whenDisconnected,
- [StatusBarMode.Pending]: whenPending,
- [StatusBarMode.Succeeded]: whenSucceeded
- };
-
- Object.assign(this.statusBarItem, statusBarItemByMode[mode]);
- this.statusBarItem.show();
- }
-
- toggleStatusBarAlignment(onLeft?: boolean) {
- const config = getConfig();
- const cfgKey = CONFIG_KEYS.Behaviour.StatusBarAlignment;
- const alignment = (onLeft ?? config.get(cfgKey) === "Right") ? "Left" : "Right";
-
- config.update(cfgKey, alignment satisfies ExtensionConfigurationType[typeof cfgKey]);
- return alignment;
- }
-
- updateStatusBarFromConfig() {
- const config = getConfig();
-
- const alignment = this.#getAlignmentFromConfig(config);
- const priority = undefined;
- if (!this.statusBarItem) {
- logInfo("updateStatusBarFromConfig: status bar item is undefined");
- this.statusBarItem = window.createStatusBarItem(this.#getAlignmentFromConfig(getConfig()));
- }
-
- const old = this.statusBarItem;
- this.setStatusBarItem(this.statusBarItemMode);
- if (this.statusBarItem.alignment === alignment) {
- return;
- }
-
- // Change unchangable: alignment/priority
- this.statusBarItem = window.createStatusBarItem(alignment, priority);
-
- this.statusBarItem.show();
- old.dispose();
- }
-
- #errorMessageFailedToConnectSelect(config: ExtensionConfiguration, key: string, selection?: string) {
- if (selection === "Reconnect") {
- commands.executeCommand("vscord.reconnect");
- } else if (selection === "Show output") {
- outputChannel.show(true);
- } else if (selection === "Don't show again") {
- config.update(key, true, ConfigurationTarget.Global);
- }
- }
- errorMessageFailedToConnect(config: ExtensionConfiguration, error?: Error) {
- if (config.get(CONFIG_KEYS.Behaviour.SuppressNotifications)) {
- return;
- }
-
- const buttons = ["Reconnect", "Show output"];
- if (!(error instanceof Error)) {
- const message = "Failed to connect to Discord Gateway.";
- window
- .showErrorMessage(message, ...buttons)
- .then((selection) => this.#errorMessageFailedToConnectSelect(config, "", selection));
- return;
- }
-
- const configKeyPairs = {
- RPC_COULD_NOT_CONNECT: CONFIG_KEYS.Behaviour.SuppressRpcCouldNotConnect
- } as const;
-
- const errorName = error.name;
- const suppressConfigKey: string | undefined = configKeyPairs[errorName as keyof typeof configKeyPairs];
- if (suppressConfigKey) {
- const suppressed = config.get(suppressConfigKey);
- if (suppressed) {
- return;
- }
-
- buttons.push("Don't show again");
- }
-
- const message = `Failed to connect to Discord Gateway: ${error.name}.`;
- window
- .showErrorMessage(message, ...buttons)
- .then((selection) => this.#errorMessageFailedToConnectSelect(config, suppressConfigKey, selection));
- return;
- }
-
- public dispose(): void {
- this.statusBarItem?.dispose();
- this.statusBarItem = undefined;
- }
-}
-
-export const editor = new EditorController();
diff --git a/src/extension.ts b/src/extension.ts
index da1ce684..15a6cb1f 100644
--- a/src/extension.ts
+++ b/src/extension.ts
@@ -1,198 +1,84 @@
-import { commands, window, workspace, type ExtensionContext } from "vscode";
-import { getApplicationId } from "./helpers/getApplicationId";
-import { StatusBarMode, editor } from "./editor";
-import { RPCController } from "./controller";
-import { CONFIG_KEYS } from "./constants";
-import { getConfig } from "./config";
-import { logInfo } from "./logger";
-import { dataClass } from "./data";
-
-const controller = new RPCController(
- getApplicationId(getConfig()).clientId,
- getConfig().get(CONFIG_KEYS.Behaviour.Debug)
-);
-
-export const registerListeners = (ctx: ExtensionContext) => {
- const onConfigurationChanged = workspace.onDidChangeConfiguration(async () => {
- const config = getConfig();
- const clientId = getApplicationId(config).clientId;
- const isEnabled = config.get(CONFIG_KEYS.Enable);
-
- controller.debug = config.get(CONFIG_KEYS.Behaviour.Debug) ?? false;
- editor.updateStatusBarFromConfig();
-
- if (controller.client.clientId !== clientId) {
- if (!isEnabled) await controller.disable();
- await controller.login();
- if (isEnabled) await controller.enable();
+import { type ExtensionContext, Disposable, commands, extensions, workspace } from "vscode";
+import { LanguageProvider } from "./providers/languageProvider";
+import { JupyterProvider } from "./providers/jupyterProvider";
+import { ProviderManager } from "./managers/providerManager";
+import { FileProvider } from "./providers/fileProvider";
+import { GitProvider } from "./providers/gitProvider";
+import { Logger } from "./structures/logger";
+
+export class Extension extends Disposable {
+ providerManager = new ProviderManager(this);
+ context: ExtensionContext | undefined;
+ logger = new Logger(this);
+ config = workspace.getConfiguration("vscord");
+
+ activated = false;
+
+ constructor() {
+ super(() => {
+ this.dispose();
+ });
+
+ this.providerManager.createProvider(LanguageProvider);
+ this.providerManager.createProvider(FileProvider);
+ this.providerManager.createProvider(JupyterProvider);
+ this.providerManager.createProvider(GitProvider);
+ }
+
+ public activate(ctx: ExtensionContext) {
+ this.context = ctx;
+ this.providerManager.subscribe();
+ this.logger.info("VSCord is activated!");
+ this.activated = true;
+
+ // Register commands
+ ["vscord.enable", "vscord.disable"]
+ .map((x) => {
+ return commands.registerCommand(x, () => this.onCommand(x));
+ })
+ .forEach((x) => this.context?.subscriptions.push(x));
+
+ [
+ workspace.onDidChangeConfiguration(() => {
+ this.config = workspace.getConfiguration("vscord");
+ // TODO: Call update to RPC
+
+ if (!this.config.get("enabled", true)) {
+ // TODO: Disable RPC
+ }
+ }),
+ workspace.onDidChangeNotebookDocument(() => {
+ // TODO: Call update to RPC
+ }),
+ workspace.onDidChangeNotebookDocument(() => {
+ // TODO: Call update to RPC
+ }),
+
+ extensions.onDidChange(() => {
+ // TODO: Call update to RPC
+ })
+ ].forEach((x) => ctx.subscriptions.push(x));
+ }
+
+ public onCommand(name: string) {
+ switch (name) {
+ case "vscord.enable":
+ case "vscord.disable":
+ this.config.update("enabled", name === "vscord.enable", false);
+ break;
+ default:
+ this.logger.error(`Invalid command! ${name}`);
}
+ }
- controller.manualIdleMode = config.get(CONFIG_KEYS.Status.Idle.Check) === false;
- });
-
- ctx.subscriptions.push(onConfigurationChanged);
-};
-
-export const registerCommands = (ctx: ExtensionContext) => {
- const config = getConfig();
-
- const enable = async (update = true) => {
- if (update)
- try {
- await config.update(CONFIG_KEYS.Enable, true);
- } catch {}
-
- await controller.enable();
- };
-
- const disable = async (update = true) => {
- if (update)
- try {
- await config.update(CONFIG_KEYS.Enable, false);
- } catch {}
-
- await controller.disable();
-
- logInfo("[003] Destroyed Discord RPC client");
- editor.setStatusBarItem(StatusBarMode.Disabled);
- };
-
- const togglePrivacyMode = async (activate: boolean) => {
- try {
- await config.update(CONFIG_KEYS.App.PrivacyMode, activate);
- } catch {}
-
- await controller.sendActivity(dataClass.editor != null);
- };
-
- const enableCommand = commands.registerCommand("vscord.enable", async () => {
- await disable(false);
- await enable(false);
-
- logInfo("Enabled Discord Rich Presence.");
-
- if (!config.get(CONFIG_KEYS.Behaviour.SuppressNotifications))
- await window.showInformationMessage("Enabled Discord Rich Presence");
- });
-
- const disableCommand = commands.registerCommand("vscord.disable", async () => {
- logInfo("Disabled Discord Rich Presence");
-
- await disable(false);
-
- if (!config.get(CONFIG_KEYS.Behaviour.SuppressNotifications))
- await window.showInformationMessage("Disabled Discord Rich Presence");
- });
-
- const enableWorkspaceCommand = commands.registerCommand("vscord.workspace.enable", async () => {
- logInfo("Enabled Discord Rich Presence");
-
- await disable();
- await enable();
-
- if (!config.get(CONFIG_KEYS.Behaviour.SuppressNotifications))
- await window.showInformationMessage("Enabled Discord Rich Presence for this workspace");
- });
-
- const disableWorkspaceCommand = commands.registerCommand("vscord.workspace.disable", async () => {
- logInfo("Disabled Discord Rich Presence");
-
- await disable();
-
- if (!config.get(CONFIG_KEYS.Behaviour.SuppressNotifications))
- await window.showInformationMessage("Disabled Discord Rich Presence for this workspace");
- });
+ public deactivate() {
+ this.dispose();
+ this.activated = false;
+ }
- const reconnectCommand = commands.registerCommand("vscord.reconnect", async () => {
- logInfo("Reconnecting to Discord Gateway...");
-
- editor.setStatusBarItem(StatusBarMode.Pending);
-
- await controller
- .login()
- .then(async () => await controller.enable())
- .catch(() => {
- if (!config.get(CONFIG_KEYS.Behaviour.SuppressNotifications))
- window.showErrorMessage("Failed to reconnect to Discord Gateway");
- editor.setStatusBarItem(StatusBarMode.Disconnected);
- });
- });
-
- const disconnectCommand = commands.registerCommand("vscord.disconnect", async () => {
- logInfo("Disconnecting from Discord Gateway...");
-
- await controller.destroy();
-
- editor.setStatusBarItem(StatusBarMode.Disconnected);
- });
-
- const enablePrivacyModeCommand = commands.registerCommand("vscord.enablePrivacyMode", async () => {
- logInfo("Enabled Privacy Mode");
-
- await togglePrivacyMode(true);
-
- if (!config.get(CONFIG_KEYS.Behaviour.SuppressNotifications))
- await window.showInformationMessage("Enabled Privacy Mode.");
- });
-
- const disablePrivacyModeCommand = commands.registerCommand("vscord.disablePrivacyMode", async () => {
- logInfo("Disabled Privacy Mode");
-
- await togglePrivacyMode(false);
-
- if (!config.get(CONFIG_KEYS.Behaviour.SuppressNotifications))
- await window.showInformationMessage("Disabled Privacy Mode.");
- });
-
- const startIdlingCommand = commands.registerCommand("vscord.startIdling", async () => {
- logInfo("Started Idling");
-
- controller.manualIdling = true;
- await controller.sendActivity(false, true);
-
- if (!config.get(CONFIG_KEYS.Behaviour.SuppressNotifications))
- await window.showInformationMessage("Started Idling.");
- });
-
- const stopIdlingCommand = commands.registerCommand("vscord.stopIdling", async () => {
- logInfo("Stopped Idling");
-
- controller.manualIdling = false;
- await controller.sendActivity();
-
- if (!config.get(CONFIG_KEYS.Behaviour.SuppressNotifications))
- await window.showInformationMessage("Stopped Idling.");
- });
-
- ctx.subscriptions.push(
- enableCommand,
- disableCommand,
- enableWorkspaceCommand,
- disableWorkspaceCommand,
- reconnectCommand,
- disconnectCommand,
- enablePrivacyModeCommand,
- disablePrivacyModeCommand,
- startIdlingCommand,
- stopIdlingCommand
- );
-
- logInfo("Registered Discord Rich Presence commands");
-};
-
-export async function activate(ctx: ExtensionContext) {
- logInfo("Discord Rich Presence for VS Code activated.");
- editor.setStatusBarItem(StatusBarMode.Pending);
- registerCommands(ctx);
- registerListeners(ctx);
-
- if (!getConfig().get(CONFIG_KEYS.Enable)) await controller.disable();
-}
-
-export async function deactivate() {
- logInfo("Discord Rich Presence for VS Code deactivated.");
- editor.dispose();
- dataClass.dispose();
- await controller.destroy();
- logInfo("[004] Destroyed Discord RPC client");
+ public dispose() {
+ for (const subscription of this.context?.subscriptions ?? []) {
+ subscription.dispose();
+ }
+ }
}
diff --git a/src/helpers/getApplicationId.ts b/src/helpers/getApplicationId.ts
deleted file mode 100644
index cc874a65..00000000
--- a/src/helpers/getApplicationId.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import type { ExtensionConfiguration } from "../config";
-import { CONFIG_KEYS } from "../constants";
-
-export const getApplicationId = (config: ExtensionConfiguration) => {
- const applicationIds = new Map([
- ["Code", "782685898163617802"],
- ["Visual Studio Code", "810516608442695700"],
- ["VSCodium", "1031067701474492496"],
- ["Antigravity", "1441771215290372156"],
- ["Cursor", "1376937466619232256"],
- ["Custom", config.get(CONFIG_KEYS.App.Id)!]
- ]);
-
- const currentAppName = config.get(CONFIG_KEYS.App.Name)!;
-
- let clientId = config.get(CONFIG_KEYS.App.Id)!;
- for (const [appName, id] of applicationIds.entries()) {
- if (currentAppName !== appName) continue;
- clientId = id;
- break;
- }
-
- return { clientId };
-};
diff --git a/src/helpers/getFileSize.ts b/src/helpers/getFileSize.ts
deleted file mode 100644
index ac46d1c9..00000000
--- a/src/helpers/getFileSize.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import type { ExtensionConfiguration, FileSizeStandard } from "../config";
-import { FilesizeOptions, filesize } from "filesize";
-import { CONFIG_KEYS } from "../constants";
-import type { Data } from "../data";
-
-export const getFileSize = async (config: ExtensionConfiguration, dataClass: Data) => {
- if (!(await dataClass.fileSize)) return;
-
- let round = 2;
- if (config.get(CONFIG_KEYS.File.Size.Round) === 0 || config.get(CONFIG_KEYS.File.Size.Round))
- round = config.get(CONFIG_KEYS.File.Size.Round)!;
-
- let spacer = " ";
- if (config.get(CONFIG_KEYS.File.Size.Spacer) === "" || config.get(CONFIG_KEYS.File.Size.Spacer))
- spacer = config.get(CONFIG_KEYS.File.Size.Spacer)!;
-
- const fileSizeStandard: FileSizeStandard = config.get(CONFIG_KEYS.File.Size.Standard) ?? "iec";
- const fileSizeConfig: FilesizeOptions = {
- round,
- spacer,
- standard: fileSizeStandard
- } as const;
-
- const fileSize = config.get(CONFIG_KEYS.File.Size.HumanReadable)
- ? filesize((await dataClass.fileSize) ?? 0, fileSizeConfig).toLocaleString()
- : `${dataClass.fileSize.toLocaleString()}${fileSizeConfig.spacer ?? " "}B`;
-
- return fileSize;
-};
diff --git a/src/helpers/isExcluded.ts b/src/helpers/isExcluded.ts
deleted file mode 100644
index b43bebe4..00000000
--- a/src/helpers/isExcluded.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export const isExcluded = (config: string[], toMatch?: string) => {
- if (!config || !toMatch) return false;
- if (!config.length) return false;
- return config.some((pattern) => new RegExp(pattern, "gm").test(toMatch));
-};
diff --git a/src/helpers/isObject.ts b/src/helpers/isObject.ts
deleted file mode 100644
index 7c29f31a..00000000
--- a/src/helpers/isObject.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export const isObject = (value: unknown): value is object =>
- !!value && typeof value === "object" && !Array.isArray(value);
diff --git a/src/helpers/resolveLangName.ts b/src/helpers/resolveLangName.ts
deleted file mode 100644
index 985a3b88..00000000
--- a/src/helpers/resolveLangName.ts
+++ /dev/null
@@ -1,42 +0,0 @@
-import { CONFIG_KEYS, KNOWN_EXTENSIONS, KNOWN_LANGUAGES } from "../constants";
-import { type TextDocument } from "vscode";
-import { getConfig } from "../config";
-import { basename } from "node:path";
-
-export const toLower = (str: S) => str.toLocaleLowerCase() as Lowercase;
-export const toUpper = (str: S) => str.toLocaleUpperCase() as Uppercase;
-export const toTitle = (str: S) =>
- toLower(str).replace(/^.{1}/, (c) => toUpper(c)) as Capitalize>;
-
-export const fileExtensionEquals = (filename: string, key: string) => {
- if (filename.endsWith(key)) return true;
-
- const match = /^\/(.*)\/([mgiy]+)$/.exec(key);
- if (!match) return false;
-
- return new RegExp(match[1], match[2]).test(filename);
-};
-
-export const resolveLangName = (document: TextDocument): string => {
- const config = getConfig();
-
- const ADDITIONAL_FILE_MAPPING = Object.fromEntries(
- Object.entries(config.get(CONFIG_KEYS.Behaviour.AdditionalFileMapping)!).map(([key, value]) => [
- key,
- { image: value }
- ])
- );
-
- const filename = basename(document.fileName);
- const findKnownExtension =
- KNOWN_LANGUAGES.find((key) => key.language === document.languageId) ??
- Object.keys(ADDITIONAL_FILE_MAPPING).find((extension) => fileExtensionEquals(filename, extension)) ??
- Object.keys(KNOWN_EXTENSIONS).find((extension) => fileExtensionEquals(filename, extension));
-
- return typeof findKnownExtension === "string" ? findKnownExtension : (findKnownExtension?.image ?? "text");
-};
-
-export const getArticle = (word: string): string => {
- const vowels = ["a", "e", "i", "o", "u"];
- return vowels.includes(word.charAt(0).toLowerCase()) ? "an" : "a";
-};
diff --git a/src/helpers/stripCredential.ts b/src/helpers/stripCredential.ts
deleted file mode 100644
index 7bd9f50d..00000000
--- a/src/helpers/stripCredential.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { URL } from "node:url";
-
-export const stripCredential = (uri: string): string => {
- try {
- const url = new URL(uri);
- url.username = "";
- url.password = "";
- return url.toString();
- } catch (ignored) {
- return uri;
- }
-};
diff --git a/src/helpers/throttle.ts b/src/helpers/throttle.ts
deleted file mode 100644
index e348360d..00000000
--- a/src/helpers/throttle.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-// eslint-disable-next-line @typescript-eslint/no-explicit-any
-export const throttle = any>(func: F, delay: number, runAfterThrottleEnd = false) => {
- let timeout: NodeJS.Timeout | undefined;
- let lastCalled = 0;
-
- return {
- callable: (...args: Parameters): ReturnType | undefined => {
- const run = () => {
- if (timeout) clearTimeout(timeout);
-
- lastCalled = new Date().getTime();
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
- return func(...args);
- };
-
- const now = new Date().getTime();
- if (now - lastCalled < delay) {
- if (!runAfterThrottleEnd) return;
-
- if (timeout) clearTimeout(timeout);
-
- timeout = setTimeout(run, delay - (now - lastCalled));
- } else {
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
- return run();
- }
- },
- reset: (setLastCalled = false) => {
- if (setLastCalled) lastCalled = new Date().getTime();
-
- if (timeout) clearTimeout(timeout);
- }
- };
-};
diff --git a/src/helpers/validURL.ts b/src/helpers/validURL.ts
deleted file mode 100644
index 797b0c76..00000000
--- a/src/helpers/validURL.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-// https://stackoverflow.com/a/5717133
-export function validURL(str: string): boolean {
- var pattern = new RegExp(
- "^(https?:\\/\\/)?" + // protocol
- "((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|" + // domain name
- "((\\d{1,3}\\.){3}\\d{1,3}))" + // OR ip (v4) address
- "(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*" + // port and path
- "(\\?[;&a-z\\d%_.~+=-]*)?" + // query string
- "(\\#[-a-z\\d_]*)?$",
- "i"
- ); // fragment locator
- return !!pattern.test(str);
-}
diff --git a/src/index.ts b/src/index.ts
new file mode 100644
index 00000000..3e739276
--- /dev/null
+++ b/src/index.ts
@@ -0,0 +1,12 @@
+import { Extension } from "./extension";
+import * as vscode from "vscode";
+
+export const extension = new Extension();
+
+export function activate(ctx: vscode.ExtensionContext) {
+ extension.activate(ctx);
+}
+
+export function deactivate() {
+ extension.deactivate();
+}
diff --git a/src/logger.ts b/src/logger.ts
deleted file mode 100644
index d5a06d65..00000000
--- a/src/logger.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { isObject } from "./helpers/isObject";
-import { window } from "vscode";
-
-export const outputChannel = window.createOutputChannel("VSCord");
-
-export const enum LogLevel {
- INFO = "INFO",
- WARN = "WARN",
- ERROR = "ERROR"
-}
-
-const logMessage = (logLevel: LogLevel, ...messageList: unknown[]) => {
- const timestamp = new Date().toLocaleTimeString();
- const messageToLog = [];
-
- for (const message of messageList) {
- if (typeof message === "string") messageToLog.push(message);
- else if (message instanceof Error) messageToLog.push(message.stack ?? message.message);
- else if (isObject(message)) {
- try {
- messageToLog.push(JSON.stringify(message, null, 2));
- } catch (ignore) {
- messageToLog.push(message);
- }
- } else {
- messageToLog.push(message);
- }
- }
-
- outputChannel.appendLine(`[${timestamp}] [${logLevel}] ${messageToLog.join(" ")}`);
-};
-
-export const logInfo = (...message: unknown[]) => logMessage(LogLevel.INFO, ...message);
-
-export const logWarn = (...message: unknown[]) => logMessage(LogLevel.WARN, ...message);
-
-export const logError = (...message: unknown[]) => logMessage(LogLevel.ERROR, ...message);
diff --git a/src/managers/providerManager.ts b/src/managers/providerManager.ts
new file mode 100644
index 00000000..79df1b0b
--- /dev/null
+++ b/src/managers/providerManager.ts
@@ -0,0 +1,31 @@
+import { Provider } from "../providers/provider";
+import { Base } from "../structures/base";
+
+export class ProviderManager extends Base {
+ providers: Provider[] = [];
+
+ public subscribe() {
+ for (const provider of this.providers) {
+ provider.subscribe();
+ }
+ }
+
+ public createProvider(cl: typeof Provider) {
+ this.addProvider(new cl(this.extension));
+ }
+
+ public addProvider(provider: Provider) {
+ this.providers.push(provider);
+ this.providers.sort((a, b) => a.priority - b.priority);
+ if (this.extension.activated) provider.subscribe();
+ }
+
+ public async resolveVariable(name: string): Promise {
+ for (const provider of this.providers) {
+ if (provider.shouldSkip()) continue;
+ if (!provider.hasVariable(name)) continue;
+ const value = await provider.resolveVariable(name);
+ if (value) return value;
+ }
+ }
+}
diff --git a/src/providers/extensionBasedProvider.ts b/src/providers/extensionBasedProvider.ts
new file mode 100644
index 00000000..b1eb7092
--- /dev/null
+++ b/src/providers/extensionBasedProvider.ts
@@ -0,0 +1,52 @@
+import { Extension } from "../extension";
+import { Provider } from "./provider";
+import { extensions } from "vscode";
+
+export class ExtensionBasedProvider extends Provider {
+ public readonly extensions: string[] = [];
+ private extensionState: Record = {};
+
+ constructor(
+ extension: Extension,
+ public id = "base",
+ public priority = 0
+ ) {
+ super(extension);
+
+ this.extensionState = extensions.all
+ .filter((x) => this.extensions.includes(x.id))
+ .reduce(
+ (x, y) => {
+ x[y.id] = y.isActive;
+ return x;
+ },
+ {} as Record
+ );
+
+ if (Object.values(this.extensionState).some((x) => !x)) this.onExtensionDeactivate();
+ else this.onExtensionActivate();
+
+ extension.context?.subscriptions.push(
+ extensions.onDidChange(() => {
+ this.updateState();
+ })
+ );
+ }
+
+ private updateState() {
+ const filtered = extensions.all.filter((x) => this.extensions.includes(x.id));
+
+ if (filtered.every((x) => this.extensionState[x.id] === x.isActive)) return;
+
+ const isAnyInactive = filtered.some((x) => !x.isActive);
+ if (isAnyInactive) this.onExtensionDeactivate();
+ else this.onExtensionActivate();
+ }
+
+ protected onExtensionActivate() {}
+ protected onExtensionDeactivate() {}
+
+ public override shouldSkip(): boolean {
+ return Object.values(this.extensionState).some((x) => !x);
+ }
+}
diff --git a/src/providers/fileProvider.ts b/src/providers/fileProvider.ts
new file mode 100644
index 00000000..24671227
--- /dev/null
+++ b/src/providers/fileProvider.ts
@@ -0,0 +1,12 @@
+import { TextEditorBasedProvider } from "./textEditorBasedProvider";
+import { Extension } from "../extension";
+
+export class FileProvider extends TextEditorBasedProvider {
+ constructor(extension: Extension) {
+ super(extension, "file", 0);
+ }
+
+ protected override registerVariables() {
+ this.provide("file_path", async () => this.textEditor?.document.fileName);
+ }
+}
diff --git a/src/providers/gitProvider.ts b/src/providers/gitProvider.ts
new file mode 100644
index 00000000..f91176be
--- /dev/null
+++ b/src/providers/gitProvider.ts
@@ -0,0 +1,64 @@
+import { ExtensionBasedProvider } from "./extensionBasedProvider";
+import { extensions, window } from "vscode";
+import { API, GitExtension } from "../types/git";
+import { Extension } from "../extension";
+
+export class GitProvider extends ExtensionBasedProvider {
+ public override readonly extensions: string[] = ["vscode.git"];
+
+ private gitApi: API | undefined;
+
+ private get currentRepository() {
+ const textEditor = window.activeTextEditor;
+ if (!textEditor) return;
+
+ return this.gitApi?.getRepository(textEditor.document.uri);
+ }
+
+ private get currentBranch() {
+ return this.currentRepository?.state.HEAD;
+ }
+
+ private get gitURL() {
+ const remotes = this.currentRepository?.state.remotes ?? [];
+ const remote = remotes.filter((r) => r.name === "origin")[0];
+ return remote ? (remote.fetchUrl ?? remote.pushUrl) : undefined;
+ }
+
+ constructor(extension: Extension) {
+ super(extension, "git", 0);
+ }
+
+ protected override onExtensionActivate(): void {
+ this.gitApi = extensions
+ .getExtension("vscode.git")
+
+ ?.exports.getAPI(1);
+
+ [
+ this.gitApi?.onDidOpenRepository(() => {
+ // TODO: Update RPC
+ }),
+ this.gitApi?.onDidCloseRepository(() => {
+ // TODO: Update RPC
+ })
+ ]
+ .filter((x) => x !== undefined)
+ .forEach((x) => this.extension.context?.subscriptions.push(x));
+ }
+
+ protected override onExtensionDeactivate(): void {
+ this.gitApi = undefined;
+ }
+
+ protected override registerVariables(): void {
+ this.provide("git_ok", async () => {
+ this.extension.logger.debug(this.gitURL);
+ return "ok";
+ });
+ }
+
+ public override shouldSkip(): boolean {
+ return super.shouldSkip() || this.gitApi?.state !== "initialized" || !this.currentRepository;
+ }
+}
diff --git a/src/providers/jupyterProvider.ts b/src/providers/jupyterProvider.ts
new file mode 100644
index 00000000..c364a43d
--- /dev/null
+++ b/src/providers/jupyterProvider.ts
@@ -0,0 +1,8 @@
+import { NotebookBasedProvider } from "./notebookBasedProvider";
+import { Extension } from "../extension";
+
+export class JupyterProvider extends NotebookBasedProvider {
+ constructor(extension: Extension) {
+ super(extension, "jupyter", 1);
+ }
+}
diff --git a/src/providers/languageProvider.ts b/src/providers/languageProvider.ts
new file mode 100644
index 00000000..4bbc1711
--- /dev/null
+++ b/src/providers/languageProvider.ts
@@ -0,0 +1,12 @@
+import { TextEditorBasedProvider } from "./textEditorBasedProvider";
+import { Extension } from "../extension";
+
+export class LanguageProvider extends TextEditorBasedProvider {
+ constructor(extension: Extension) {
+ super(extension, "language", 0);
+ }
+
+ protected override registerVariables() {
+ this.provide("language_id", async () => this.textEditor?.document.languageId);
+ }
+}
diff --git a/src/providers/notebookBasedProvider.ts b/src/providers/notebookBasedProvider.ts
new file mode 100644
index 00000000..f8fd6907
--- /dev/null
+++ b/src/providers/notebookBasedProvider.ts
@@ -0,0 +1,12 @@
+import { Provider } from "./provider";
+import { window } from "vscode";
+
+export class NotebookBasedProvider extends Provider {
+ protected get notebookEditor() {
+ return window.activeNotebookEditor;
+ }
+
+ public override shouldSkip(): boolean {
+ return !!!this.notebookEditor;
+ }
+}
diff --git a/src/providers/provider.ts b/src/providers/provider.ts
new file mode 100644
index 00000000..e1c11a1f
--- /dev/null
+++ b/src/providers/provider.ts
@@ -0,0 +1,42 @@
+import { Base } from "../structures/base";
+import { Extension } from "../extension";
+
+/**
+ * Provider is the main way for VSCord to figure out what variable name corospond to what
+ */
+
+export class Provider extends Base {
+ public activated = false;
+ private variables = new Map Promise>();
+
+ constructor(
+ extension: Extension,
+ public id = "base",
+ public priority = 0
+ ) {
+ super(extension);
+ this.registerVariables();
+ }
+
+ public subscribe() {
+ return;
+ }
+
+ public shouldSkip(): boolean {
+ return true;
+ }
+
+ public hasVariable(name: string): boolean {
+ return this.variables.has(name);
+ }
+
+ public async resolveVariable(name: string): Promise {
+ return this.variables.has(name) ? await this.variables.get(name)!() : undefined;
+ }
+
+ protected registerVariables() {}
+
+ protected async provide(name: string, value: () => Promise) {
+ this.variables.set(name, value);
+ }
+}
diff --git a/src/providers/textEditorBasedProvider.ts b/src/providers/textEditorBasedProvider.ts
new file mode 100644
index 00000000..0e46b419
--- /dev/null
+++ b/src/providers/textEditorBasedProvider.ts
@@ -0,0 +1,12 @@
+import { TextEditor, window } from "vscode";
+import { Provider } from "./provider";
+
+export class TextEditorBasedProvider extends Provider {
+ protected get textEditor() {
+ return window.activeTextEditor;
+ }
+
+ public override shouldSkip(): boolean {
+ return !!!this.textEditor;
+ }
+}
diff --git a/src/structures/base.ts b/src/structures/base.ts
new file mode 100644
index 00000000..935375bd
--- /dev/null
+++ b/src/structures/base.ts
@@ -0,0 +1,5 @@
+import { Extension } from "../extension";
+
+export class Base {
+ constructor(public extension: Extension) {}
+}
diff --git a/src/structures/logger.ts b/src/structures/logger.ts
new file mode 100644
index 00000000..98ff0f9e
--- /dev/null
+++ b/src/structures/logger.ts
@@ -0,0 +1,38 @@
+import { Extension } from "../extension";
+import { window } from "vscode";
+import { Base } from "./base";
+
+export class Logger extends Base {
+ outputChannel = window.createOutputChannel("VSCord");
+
+ constructor(extension: Extension) {
+ super(extension);
+ }
+
+ public info(...messages: any[]) {
+ this.log("[INFO]", ...messages);
+ }
+
+ public error(...messages: any[]) {
+ this.log("[ERROR]", ...messages);
+ }
+
+ public warn(...messages: any[]) {
+ this.log("[WARN]", ...messages);
+ }
+
+ public debug(...messages: any[]) {
+ this.log("[DEBUG]", ...messages);
+ }
+
+ public log(...messages: any[]) {
+ this.outputChannel.appendLine(messages.join(" "));
+ // for debug console
+ console.log(...messages);
+ }
+
+ public clear() {
+ this.outputChannel.clear();
+ console.clear();
+ }
+}
diff --git a/src/@types/git.d.ts b/src/types/git.d.ts
similarity index 88%
rename from src/@types/git.d.ts
rename to src/types/git.d.ts
index 0d07e7b4..1e71f2e0 100644
--- a/src/@types/git.d.ts
+++ b/src/types/git.d.ts
@@ -3,7 +3,7 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
-import { Uri, Event, Disposable, ProviderResult, Command, CancellationToken, SourceControlHistoryItem } from "vscode";
+import { Uri, Event, Disposable, ProviderResult, Command, CancellationToken } from "vscode";
export { ProviderResult } from "vscode";
export interface Git {
@@ -182,6 +182,19 @@ export interface InitOptions {
defaultBranch?: string;
}
+export interface CloneOptions {
+ parentPath?: Uri;
+ /**
+ * ref is only used if the repository cache is missed.
+ */
+ ref?: string;
+ recursive?: boolean;
+ /**
+ * If no postCloneAction is provided, then the users setting for git.openAfterClone is used.
+ */
+ postCloneAction?: "none";
+}
+
export interface RefQuery {
readonly contains?: string;
readonly count?: number;
@@ -222,10 +235,12 @@ export interface Repository {
diff(cached?: boolean): Promise;
diffWithHEAD(): Promise;
diffWithHEAD(path: string): Promise;
+ diffWithHEADShortStats(path?: string): Promise;
diffWith(ref: string): Promise;
diffWith(ref: string, path: string): Promise;
diffIndexWithHEAD(): Promise;
diffIndexWithHEAD(path: string): Promise;
+ diffIndexWithHEADShortStats(path?: string): Promise;
diffIndexWith(ref: string): Promise;
diffIndexWith(ref: string, path: string): Promise;
diffBlobs(object1: string, object2: string): Promise;
@@ -247,7 +262,7 @@ export interface Repository {
getMergeBase(ref1: string, ref2: string): Promise;
- tag(name: string, upstream: string): Promise;
+ tag(name: string, message: string, ref?: string | undefined): Promise;
deleteTag(name: string): Promise;
status(): Promise;
@@ -272,6 +287,18 @@ export interface Repository {
applyStash(index?: number): Promise;
popStash(index?: number): Promise;
dropStash(index?: number): Promise;
+
+ createWorktree(options?: { path?: string; commitish?: string; branch?: string }): Promise;
+ deleteWorktree(path: string, options?: { force?: boolean }): Promise;
+
+ migrateChanges(
+ sourceRepositoryPath: string,
+ options?: {
+ confirmation?: boolean;
+ deleteFromSource?: boolean;
+ untracked?: boolean;
+ }
+ ): Promise;
}
export interface RemoteSource {
@@ -367,7 +394,15 @@ export interface API {
toGitUri(uri: Uri, ref: string): Uri;
getRepository(uri: Uri): Repository | null;
+ getRepositoryRoot(uri: Uri): Promise;
+ getRepositoryWorkspace(uri: Uri): Promise;
init(root: Uri, options?: InitOptions): Promise;
+ /**
+ * Checks the cache of known cloned repositories, and clones if the repository is not found.
+ * Make sure to pass `postCloneAction` 'none' if you want to have the uri where you can find the repository returned.
+ * @returns The URI of a folder or workspace file which, when opened, will open the cloned repository.
+ */
+ clone(uri: Uri, options?: CloneOptions): Promise;
openRepository(root: Uri): Promise;
registerRemoteSourcePublisher(publisher: RemoteSourcePublisher): Disposable;
@@ -404,6 +439,7 @@ export const enum GitErrorCodes {
NoUserEmailConfigured = "NoUserEmailConfigured",
NoRemoteRepositorySpecified = "NoRemoteRepositorySpecified",
NotAGitRepository = "NotAGitRepository",
+ NotASafeGitRepository = "NotASafeGitRepository",
NotAtRepositoryRoot = "NotAtRepositoryRoot",
Conflict = "Conflict",
StashConflict = "StashConflict",
@@ -440,5 +476,8 @@ export const enum GitErrorCodes {
BranchNotYetBorn = "BranchNotYetBorn",
TagConflict = "TagConflict",
CherryPickEmpty = "CherryPickEmpty",
- CherryPickConflict = "CherryPickConflict"
+ CherryPickConflict = "CherryPickConflict",
+ WorktreeContainsChanges = "WorktreeContainsChanges",
+ WorktreeAlreadyExists = "WorktreeAlreadyExists",
+ WorktreeBranchAlreadyUsed = "WorktreeBranchAlreadyUsed"
}
diff --git a/tsconfig.json b/tsconfig.json
index 3d06e5d7..f2d25891 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,30 +1,15 @@
{
"compilerOptions": {
- /* Visit https://aka.ms/tsconfig to read more about this file */
-
- /* Language and Environment */
- "target": "ES2022" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */,
- "moduleDetection": "legacy" /* Control what method is used to detect module-format JS files. */,
- // "resolveJsonModule": true, /* Enable importing .json files. */
-
- /* Modules */
- "module": "NodeNext" /* Specify what module code is generated. */,
- "moduleResolution": "nodenext" /* Specify how TypeScript looks up a file from a given module specifier. */,
- "resolveJsonModule": true /* Enable importing .json files. */,
-
- /* Emit */
- "sourceMap": true /* Create source map files for emitted JavaScript files. */,
- "outDir": "./dist" /* Specify an output folder for all emitted files. */,
-
- /* Interop Constraints */
- "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */,
- "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */,
-
- /* Type Checking */
- "strict": true /* Enable all strict type-checking options. */,
-
- /* Completeness */
- "skipLibCheck": true /* Skip type checking all .d.ts files. */
+ "module": "node16",
+ "target": "es2022",
+ "lib": ["ES2022"],
+ "sourceMap": true,
+ "rootDir": "src",
+ "strict": true /* enable all strict type-checking options */
+ /* Additional Checks */
+ // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
+ // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
+ // "noUnusedParameters": true, /* Report errors on unused parameters. */
},
- "include": ["src"]
+ "exclude": ["rolldown.config.ts"]
}
diff --git a/tsdown.config.ts b/tsdown.config.ts
deleted file mode 100644
index 731e698f..00000000
--- a/tsdown.config.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { defineConfig } from "tsdown";
-
-export default defineConfig({
- platform: "node",
- target: ["node22", "chrome108"],
- format: "cjs",
- entry: ["src/extension.ts"],
- external: ["vscode"],
- minify: true
-});