+4
-8
.github/workflows/browser.yml
+4
-8
.github/workflows/browser.yml
···
10
10
name: Browser extension builds
11
11
runs-on: ubuntu-latest
12
12
steps:
13
-
- uses: actions/checkout@v3
14
-
15
-
- uses: pnpm/action-setup@v2
16
-
with:
17
-
version: 9
18
-
run_install: false
19
-
- uses: actions/setup-node@v3
13
+
- uses: actions/checkout@v4
14
+
- uses: pnpm/action-setup@v4
15
+
- uses: actions/setup-node@v4
20
16
with:
21
-
node-version: 18
17
+
node-version: 22
22
18
cache: pnpm
23
19
24
20
- name: Install dependencies
+4
-8
.github/workflows/lint.yml
+4
-8
.github/workflows/lint.yml
···
9
9
name: Lint commits
10
10
runs-on: ubuntu-latest
11
11
steps:
12
-
- uses: actions/checkout@v3
13
-
14
-
- uses: pnpm/action-setup@v2
15
-
with:
16
-
version: 9
17
-
run_install: false
18
-
- uses: actions/setup-node@v3
12
+
- uses: actions/checkout@v4
13
+
- uses: pnpm/action-setup@v4
14
+
- uses: actions/setup-node@v4
19
15
with:
20
-
node-version: 18
16
+
node-version: 22
21
17
cache: pnpm
22
18
23
19
- name: Install dependencies
+4
-8
.github/workflows/nightly.yml
+4
-8
.github/workflows/nightly.yml
···
15
15
name: Nightly builds on GitHub Pages
16
16
runs-on: ubuntu-latest
17
17
steps:
18
-
- uses: actions/checkout@v3
19
-
20
-
- uses: pnpm/action-setup@v2
21
-
with:
22
-
version: 9
23
-
run_install: false
24
-
- uses: actions/setup-node@v3
18
+
- uses: actions/checkout@v4
19
+
- uses: pnpm/action-setup@v4
20
+
- uses: actions/setup-node@v4
25
21
with:
26
-
node-version: 18
22
+
node-version: 22
27
23
cache: pnpm
28
24
29
25
- name: Install dependencies
+16
.github/workflows/nix.yml
+16
.github/workflows/nix.yml
···
1
+
name: Check Nix flake
2
+
on: [push, pull_request]
3
+
4
+
permissions:
5
+
checks: write
6
+
7
+
jobs:
8
+
nix:
9
+
name: Check Nix flake
10
+
runs-on: ubuntu-latest
11
+
steps:
12
+
- uses: actions/checkout@v4
13
+
- uses: DeterminateSystems/nix-installer-action@main
14
+
15
+
- name: Build default flake output
16
+
run: nix build
+4
-8
.github/workflows/release.yml
+4
-8
.github/workflows/release.yml
···
13
13
name: Release builds to GitHub Releases
14
14
runs-on: ubuntu-latest
15
15
steps:
16
-
- uses: actions/checkout@v3
17
-
18
-
- uses: pnpm/action-setup@v2
19
-
with:
20
-
version: 9
21
-
run_install: false
22
-
- uses: actions/setup-node@v3
16
+
- uses: actions/checkout@v4
17
+
- uses: pnpm/action-setup@v4
18
+
- uses: actions/setup-node@v4
23
19
with:
24
-
node-version: 18
20
+
node-version: 22
25
21
cache: pnpm
26
22
27
23
- name: Install dependencies
+5
-11
.github/workflows/types.yml
+5
-11
.github/workflows/types.yml
···
11
11
name: Publish types on npm
12
12
runs-on: ubuntu-latest
13
13
steps:
14
-
- uses: actions/checkout@v3
15
-
16
-
- uses: pnpm/action-setup@v2
17
-
with:
18
-
version: 9
19
-
run_install: false
20
-
- uses: actions/setup-node@v3
14
+
- uses: actions/checkout@v4
15
+
- uses: pnpm/action-setup@v4
16
+
- uses: actions/setup-node@v4
21
17
with:
22
-
node-version: 18
18
+
node-version: 22
23
19
cache: pnpm
24
20
registry-url: https://registry.npmjs.org
25
21
···
31
27
run: pnpm run build
32
28
33
29
- name: Publish types
34
-
run: |
35
-
cd packages/types
36
-
pnpm publish --access public --no-git-checks
30
+
run: pnpm publish --filter=./packages/types --access public --no-git-checks
37
31
env:
38
32
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
+1
-1
.gitignore
+1
-1
.gitignore
+4
-4
.prettierrc
+4
-4
.prettierrc
+3
-7
CHANGELOG.md
+3
-7
CHANGELOG.md
···
1
-
# Core
2
-
- Updated mappings
1
+
## Core
3
2
4
-
# Libraries
5
-
- Support for message accessories in Component Editor
6
-
- Settings sections now allow for a function to compute position (thanks @MeguminSama!)
7
-
- Error boundary component in Common
8
-
- `spacepack.lazyLoad` now supports `\i` in regular expressions
3
+
- Updated mappings
4
+
- Fixed using remapped paths as patch finds not working
+4
-73
flake.lock
+4
-73
flake.lock
···
18
18
"type": "github"
19
19
}
20
20
},
21
-
"flake-utils_2": {
22
-
"inputs": {
23
-
"systems": "systems_2"
24
-
},
25
-
"locked": {
26
-
"lastModified": 1701680307,
27
-
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
28
-
"owner": "numtide",
29
-
"repo": "flake-utils",
30
-
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
31
-
"type": "github"
32
-
},
33
-
"original": {
34
-
"owner": "numtide",
35
-
"repo": "flake-utils",
36
-
"type": "github"
37
-
}
38
-
},
39
21
"nixpkgs": {
40
22
"locked": {
41
-
"lastModified": 1728067476,
42
-
"narHash": "sha256-/uJcVXuBt+VFCPQIX+4YnYrHaubJSx4HoNsJVNRgANM=",
23
+
"lastModified": 1744232761,
24
+
"narHash": "sha256-gbl9hE39nQRpZaLjhWKmEu5ejtQsgI5TWYrIVVJn30U=",
43
25
"owner": "NixOS",
44
26
"repo": "nixpkgs",
45
-
"rev": "6e6b3dd395c3b1eb9be9f2d096383a8d05add030",
27
+
"rev": "f675531bc7e6657c10a18b565cfebd8aa9e24c14",
46
28
"type": "github"
47
29
},
48
30
"original": {
49
31
"owner": "NixOS",
50
-
"ref": "nixos-24.05",
51
-
"repo": "nixpkgs",
52
-
"type": "github"
53
-
}
54
-
},
55
-
"nixpkgs_2": {
56
-
"locked": {
57
-
"lastModified": 1736344531,
58
-
"narHash": "sha256-8YVQ9ZbSfuUk2bUf2KRj60NRraLPKPS0Q4QFTbc+c2c=",
59
-
"owner": "nixos",
60
-
"repo": "nixpkgs",
61
-
"rev": "bffc22eb12172e6db3c5dde9e3e5628f8e3e7912",
62
-
"type": "github"
63
-
},
64
-
"original": {
65
-
"owner": "nixos",
66
32
"ref": "nixos-unstable",
67
33
"repo": "nixpkgs",
68
34
"type": "github"
69
35
}
70
36
},
71
-
"pnpm2nix": {
72
-
"inputs": {
73
-
"flake-utils": "flake-utils_2",
74
-
"nixpkgs": "nixpkgs_2"
75
-
},
76
-
"locked": {
77
-
"lastModified": 1736457458,
78
-
"narHash": "sha256-eiw+hAsxavEgBfhwrktNI2hwvgeVDzBDYClx/yqka78=",
79
-
"owner": "NotNite",
80
-
"repo": "pnpm2nix-nzbr",
81
-
"rev": "4ac61c6a50623da937dca005e3dbcb8862aafb83",
82
-
"type": "github"
83
-
},
84
-
"original": {
85
-
"owner": "NotNite",
86
-
"repo": "pnpm2nix-nzbr",
87
-
"type": "github"
88
-
}
89
-
},
90
37
"root": {
91
38
"inputs": {
92
39
"flake-utils": "flake-utils",
93
-
"nixpkgs": "nixpkgs",
94
-
"pnpm2nix": "pnpm2nix"
40
+
"nixpkgs": "nixpkgs"
95
41
}
96
42
},
97
43
"systems": {
98
-
"locked": {
99
-
"lastModified": 1681028828,
100
-
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
101
-
"owner": "nix-systems",
102
-
"repo": "default",
103
-
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
104
-
"type": "github"
105
-
},
106
-
"original": {
107
-
"owner": "nix-systems",
108
-
"repo": "default",
109
-
"type": "github"
110
-
}
111
-
},
112
-
"systems_2": {
113
44
"locked": {
114
45
"lastModified": 1681028828,
115
46
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+3
-4
flake.nix
+3
-4
flake.nix
···
2
2
description = "Yet another Discord mod";
3
3
4
4
inputs = {
5
-
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05";
5
+
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
6
6
flake-utils.url = "github:numtide/flake-utils";
7
-
pnpm2nix.url = "github:NotNite/pnpm2nix-nzbr";
8
7
};
9
8
10
-
outputs = { self, nixpkgs, flake-utils, pnpm2nix }:
11
-
let overlay = import ./nix/overlay.nix { inherit pnpm2nix; };
9
+
outputs = { self, nixpkgs, flake-utils }:
10
+
let overlay = import ./nix/overlay.nix { };
12
11
in flake-utils.lib.eachDefaultSystem (system:
13
12
let
14
13
pkgs = import nixpkgs {
+46
-17
nix/default.nix
+46
-17
nix/default.nix
···
1
-
{ pkgs, mkPnpmPackage }:
1
+
{
2
+
lib,
3
+
stdenv,
4
+
nodejs_22,
5
+
pnpm_10,
6
+
}:
2
7
3
-
mkPnpmPackage rec {
4
-
workspace = ./..;
8
+
stdenv.mkDerivation (finalAttrs: {
9
+
pname = "moonlight";
10
+
version = (builtins.fromJSON (builtins.readFile ./../package.json)).version;
11
+
5
12
src = ./..;
6
13
7
-
# Work around a bug with how it expects dist
8
-
components = [
9
-
"packages/core"
10
-
"packages/core-extensions"
11
-
"packages/injector"
12
-
"packages/node-preload"
13
-
"packages/types"
14
-
"packages/web-preload"
14
+
outputs = [ "out" "firefox" ];
15
+
16
+
nativeBuildInputs = [
17
+
nodejs_22
18
+
pnpm_10.configHook
15
19
];
16
-
distDirs = [ "dist" ];
20
+
21
+
pnpmDeps = pnpm_10.fetchDeps {
22
+
inherit (finalAttrs) pname version src;
23
+
hash = "sha256-I+zRCUqJabpGJRFBGW0NrM9xzyzeCjioF54zlCpynBU=";
24
+
};
25
+
26
+
env = {
27
+
NODE_ENV = "production";
28
+
MOONLIGHT_VERSION = "v${finalAttrs.version}";
29
+
};
30
+
31
+
buildPhase = ''
32
+
runHook preBuild
33
+
34
+
pnpm run build
35
+
pnpm run browser-mv2
36
+
37
+
runHook postBuild
38
+
'';
39
+
40
+
installPhase = ''
41
+
runHook preInstall
17
42
18
-
copyNodeModules = true;
19
-
buildPhase = "pnpm run build";
20
-
installPhase = "cp -r dist $out";
43
+
cp -r dist $out
44
+
45
+
mkdir -p $firefox/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/
46
+
mv $out/browser-mv2 $firefox/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/{0fb6d66f-f22d-4555-a87b-34ef4bea5e2a}
47
+
48
+
runHook postInstall
49
+
'';
21
50
22
-
meta = with pkgs.lib; {
51
+
meta = with lib; {
23
52
description = "Yet another Discord mod";
24
53
homepage = "https://moonlight-mod.github.io/";
25
54
license = licenses.lgpl3;
26
55
maintainers = with maintainers; [ notnite ];
27
56
};
28
-
}
57
+
})
+3
-6
nix/overlay.nix
+3
-6
nix/overlay.nix
···
1
-
{ pnpm2nix }:
1
+
{ ... }:
2
2
3
3
let
4
4
nameTable = {
···
29
29
'';
30
30
31
31
packageJson = ''
32
-
{"name":"discord","main":"./injector.js","private":true}
32
+
{"name":"${name}","main":"./injector.js","private":true}
33
33
'';
34
34
35
35
in old.installPhase + "\n" + ''
···
49
49
'';
50
50
});
51
51
in final: prev: rec {
52
-
moonlight-mod = final.callPackage ./default.nix {
53
-
pkgs = final;
54
-
mkPnpmPackage = pnpm2nix.packages.${final.system}.mkPnpmPackage;
55
-
};
52
+
moonlight-mod = final.callPackage ./default.nix { };
56
53
discord = mkOverride prev moonlight-mod "discord";
57
54
discord-ptb = mkOverride prev moonlight-mod "discord-ptb";
58
55
discord-canary = mkOverride prev moonlight-mod "discord-canary";
+23
-12
package.json
+23
-12
package.json
···
1
1
{
2
2
"name": "moonlight",
3
-
"version": "1.3.9",
3
+
"version": "1.3.14",
4
+
"packageManager": "pnpm@10.7.1",
4
5
"description": "Yet another Discord mod",
5
-
"homepage": "https://moonlight-mod.github.io/",
6
6
"license": "LGPL-3.0-or-later",
7
+
"homepage": "https://moonlight-mod.github.io/",
7
8
"repository": {
8
9
"type": "git",
9
10
"url": "git+https://github.com/moonlight-mod/moonlight.git"
···
11
12
"bugs": {
12
13
"url": "https://github.com/moonlight-mod/moonlight/issues"
13
14
},
15
+
"engineStrict": true,
16
+
"engines": {
17
+
"node": ">=22",
18
+
"pnpm": ">=10",
19
+
"npm": "pnpm",
20
+
"yarn": "pnpm"
21
+
},
14
22
"scripts": {
15
23
"build": "node build.mjs",
16
24
"dev": "node build.mjs --watch",
···
18
26
"browser": "node build.mjs --browser",
19
27
"browser-mv2": "node build.mjs --browser --mv2",
20
28
"lint": "eslint packages",
21
-
"lint:fix": "eslint packages --fix",
22
-
"lint:report": "eslint --output-file eslint_report.json --format json packages",
29
+
"lint:fix": "pnpm lint --fix",
30
+
"lint:report": "pnpm lint --output-file eslint_report.json --format json",
23
31
"typecheck": "tsc --noEmit",
24
32
"check": "pnpm run lint && pnpm run typecheck",
25
-
"prepare": "husky install"
33
+
"prepare": "husky install",
34
+
"updates": "pnpm taze -r"
26
35
},
27
36
"devDependencies": {
28
-
"esbuild": "^0.19.3",
29
-
"esbuild-copy-static-files": "^0.1.0",
30
-
"eslint": "^9.12.0",
31
-
"@moonlight-mod/eslint-config": "github:moonlight-mod/eslint-config",
32
-
"husky": "^8.0.3",
33
-
"prettier": "^3.1.0",
34
-
"typescript": "^5.3.2"
37
+
"@moonlight-mod/eslint-config": "catalog:dev",
38
+
"@types/node": "catalog:dev",
39
+
"esbuild": "catalog:dev",
40
+
"esbuild-copy-static-files": "catalog:dev",
41
+
"eslint": "catalog:dev",
42
+
"husky": "catalog:dev",
43
+
"prettier": "catalog:dev",
44
+
"taze": "catalog:dev",
45
+
"typescript": "catalog:dev"
35
46
}
36
47
}
+2
-1
packages/browser/blockLoading.json
+2
-1
packages/browser/blockLoading.json
+10
-4
packages/browser/manifest.json
+10
-4
packages/browser/manifest.json
···
1
1
{
2
+
"$schema": "https://json.schemastore.org/chrome-manifest",
2
3
"manifest_version": 3,
3
4
"name": "moonlight",
4
5
"description": "Yet another Discord mod",
5
-
"version": "1.3.9",
6
+
"version": "1.3.14",
6
7
"permissions": ["declarativeNetRequestWithHostAccess", "webRequest", "scripting", "webNavigation"],
7
-
"host_permissions": ["https://moonlight-mod.github.io/*", "https://api.github.com/*", "https://*.discord.com/*"],
8
+
"host_permissions": [
9
+
"https://moonlight-mod.github.io/*",
10
+
"https://api.github.com/*",
11
+
"https://*.discord.com/*",
12
+
"https://*.discordapp.com/*"
13
+
],
8
14
"content_scripts": [
9
15
{
10
16
"js": ["index.js"],
11
-
"matches": ["https://*.discord.com/*"],
17
+
"matches": ["https://*.discord.com/*", "https://*.discordapp.com/*"],
12
18
"run_at": "document_start",
13
19
"world": "MAIN"
14
20
}
···
34
40
"web_accessible_resources": [
35
41
{
36
42
"resources": ["index.js"],
37
-
"matches": ["https://*.discord.com/*"]
43
+
"matches": ["https://*.discord.com/*", "https://*.discordapp.com/*"]
38
44
}
39
45
]
40
46
}
+12
-6
packages/browser/manifestv2.json
+12
-6
packages/browser/manifestv2.json
···
1
1
{
2
+
"$schema": "https://json.schemastore.org/chrome-manifest",
2
3
"manifest_version": 2,
3
4
"name": "moonlight",
4
5
"description": "Yet another Discord mod",
5
-
"version": "1.3.9",
6
+
"version": "1.3.14",
6
7
"permissions": [
7
8
"webRequest",
8
9
"webRequestBlocking",
9
10
"scripting",
10
11
"webNavigation",
11
-
"https://*.discord.com/assets/*.js",
12
+
"https://*.discord.com/*",
13
+
"https://*.discordapp.com/*",
12
14
"https://moonlight-mod.github.io/*",
13
-
"https://api.github.com/*",
14
-
"https://*.discord.com/*"
15
+
"https://api.github.com/*"
15
16
],
16
17
"background": {
17
18
"scripts": ["background.js"]
···
19
20
"content_scripts": [
20
21
{
21
22
"js": ["index.js"],
22
-
"matches": ["https://*.discord.com/*"],
23
+
"matches": ["https://*.discord.com/*", "https://*.discordapp.com/*"],
23
24
"run_at": "document_start",
24
25
"world": "MAIN"
25
26
}
26
-
]
27
+
],
28
+
"browser_specific_settings": {
29
+
"gecko": {
30
+
"id": "{0fb6d66f-f22d-4555-a87b-34ef4bea5e2a}"
31
+
}
32
+
}
27
33
}
+12
-2
packages/browser/package.json
+12
-2
packages/browser/package.json
···
1
1
{
2
2
"name": "@moonlight-mod/browser",
3
3
"private": true,
4
+
"engines": {
5
+
"node": ">=22",
6
+
"pnpm": ">=10",
7
+
"npm": "pnpm",
8
+
"yarn": "pnpm"
9
+
},
4
10
"dependencies": {
5
11
"@moonlight-mod/core": "workspace:*",
6
12
"@moonlight-mod/types": "workspace:*",
7
13
"@moonlight-mod/web-preload": "workspace:*",
8
-
"@zenfs/core": "^1.8.8",
9
-
"@zenfs/dom": "^1.1.3"
14
+
"@zenfs/core": "catalog:prod",
15
+
"@zenfs/dom": "catalog:prod"
16
+
},
17
+
"engineStrict": true,
18
+
"devDependencies": {
19
+
"@types/chrome": "catalog:dev"
10
20
}
11
21
}
+55
-70
packages/browser/src/background-mv2.js
+55
-70
packages/browser/src/background-mv2.js
···
1
1
/* eslint-disable no-console */
2
2
/* eslint-disable no-undef */
3
3
4
-
const starterUrls = ["web.", "sentry."];
5
-
let blockLoading = true;
6
-
let doing = false;
7
-
let collectedUrls = new Set();
4
+
const scriptUrls = ["web.", "sentry."];
5
+
let blockedScripts = new Set();
8
6
9
-
chrome.webNavigation.onBeforeNavigate.addListener(async (details) => {
10
-
const url = new URL(details.url);
11
-
if (!blockLoading && url.hostname.endsWith("discord.com")) {
12
-
console.log("Blocking", details.url);
13
-
blockLoading = true;
14
-
collectedUrls.clear();
15
-
}
16
-
});
7
+
chrome.webRequest.onBeforeRequest.addListener(
8
+
async (details) => {
9
+
if (details.tabId === -1) return;
17
10
18
-
async function doTheThing(urls, tabId) {
19
-
console.log("Doing", urls, tabId);
11
+
const url = new URL(details.url);
12
+
const hasUrl = scriptUrls.some((scriptUrl) => {
13
+
return (
14
+
details.url.includes(scriptUrl) &&
15
+
!url.searchParams.has("inj") &&
16
+
(url.host.endsWith("discord.com") || url.host.endsWith("discordapp.com"))
17
+
);
18
+
});
19
+
if (hasUrl) blockedScripts.add(details.url);
20
20
21
-
blockLoading = false;
21
+
if (blockedScripts.size === scriptUrls.length) {
22
+
const blockedScriptsCopy = Array.from(blockedScripts);
23
+
blockedScripts.clear();
22
24
23
-
try {
24
-
await chrome.scripting.executeScript({
25
-
target: { tabId },
26
-
world: "MAIN",
27
-
args: [urls],
28
-
func: async (urls) => {
29
-
try {
30
-
await window._moonlightBrowserInit();
31
-
} catch (e) {
32
-
console.log(e);
33
-
}
25
+
setTimeout(async () => {
26
+
console.log("Starting moonlight");
27
+
await chrome.scripting.executeScript({
28
+
target: { tabId: details.tabId },
29
+
world: "MAIN",
30
+
args: [blockedScriptsCopy],
31
+
func: async (blockedScripts) => {
32
+
console.log("Initializing moonlight");
33
+
try {
34
+
await window._moonlightBrowserInit();
35
+
} catch (e) {
36
+
console.error(e);
37
+
}
34
38
35
-
const scripts = [...document.querySelectorAll("script")].filter(
36
-
(script) => script.src && urls.some((url) => url.includes(script.src))
37
-
);
39
+
console.log("Readding scripts");
40
+
try {
41
+
const scripts = [...document.querySelectorAll("script")].filter(
42
+
(script) => script.src && blockedScripts.some((url) => url.includes(script.src))
43
+
);
38
44
39
-
// backwards
40
-
urls.reverse();
41
-
for (const url of urls) {
42
-
const script = scripts.find((script) => url.includes(script.src));
43
-
console.log("adding new script", script);
45
+
blockedScripts.reverse();
46
+
for (const url of blockedScripts) {
47
+
if (url.includes("/sentry.")) continue;
44
48
45
-
const newScript = document.createElement("script");
46
-
for (const { name, value } of script.attributes) {
47
-
newScript.setAttribute(name, value);
49
+
const script = scripts.find((script) => url.includes(script.src));
50
+
const newScript = document.createElement("script");
51
+
for (const attr of script.attributes) {
52
+
if (attr.name === "src") attr.value += "?inj";
53
+
newScript.setAttribute(attr.name, attr.value);
54
+
}
55
+
script.remove();
56
+
document.documentElement.appendChild(newScript);
57
+
}
58
+
} catch (e) {
59
+
console.error(e);
60
+
}
48
61
}
49
-
50
-
script.remove();
51
-
document.documentElement.appendChild(newScript);
52
-
}
53
-
}
54
-
});
55
-
} catch (e) {
56
-
console.log(e);
57
-
}
58
-
59
-
doing = false;
60
-
collectedUrls.clear();
61
-
}
62
-
63
-
chrome.webRequest.onBeforeRequest.addListener(
64
-
async (details) => {
65
-
if (starterUrls.some((url) => details.url.includes(url))) {
66
-
console.log("Adding", details.url);
67
-
collectedUrls.add(details.url);
62
+
});
63
+
}, 0);
68
64
}
69
65
70
-
if (collectedUrls.size === starterUrls.length) {
71
-
if (doing) return;
72
-
if (!blockLoading) return;
73
-
doing = true;
74
-
const urls = [...collectedUrls];
75
-
const tabId = details.tabId;
76
-
77
-
// yes this is a load-bearing sleep
78
-
setTimeout(() => doTheThing(urls, tabId), 0);
79
-
}
80
-
81
-
if (blockLoading) return { cancel: true };
66
+
if (hasUrl) return { cancel: true };
82
67
},
83
68
{
84
-
urls: ["https://*.discord.com/assets/*.js"]
69
+
urls: ["https://*.discord.com/assets/*.js", "https://*.discordapp.com/assets/*.js"]
85
70
},
86
71
["blocking"]
87
72
);
···
94
79
)
95
80
};
96
81
},
97
-
{ urls: ["https://*.discord.com/*"] },
82
+
{ urls: ["https://*.discord.com/*", "https://*.discordapp.com/*"] },
98
83
["blocking", "responseHeaders"]
99
84
);
+37
-39
packages/browser/src/background.js
+37
-39
packages/browser/src/background.js
···
1
1
/* eslint-disable no-console */
2
2
/* eslint-disable no-undef */
3
3
4
-
const starterUrls = ["web.", "sentry."];
5
-
let blockLoading = true;
6
-
let doing = false;
7
-
let collectedUrls = new Set();
4
+
const scriptUrls = ["web.", "sentry."];
5
+
let blockedScripts = new Set();
8
6
9
7
chrome.webNavigation.onBeforeNavigate.addListener(async (details) => {
10
8
const url = new URL(details.url);
11
-
if (!blockLoading && url.hostname.endsWith("discord.com")) {
9
+
if (
10
+
!url.searchParams.has("inj") &&
11
+
(url.hostname.endsWith("discord.com") || url.hostname.endsWith("discordapp.com"))
12
+
) {
13
+
console.log("Enabling block ruleset");
12
14
await chrome.declarativeNetRequest.updateEnabledRulesets({
13
15
enableRulesetIds: ["modifyResponseHeaders", "blockLoading"]
14
16
});
15
-
blockLoading = true;
16
-
collectedUrls.clear();
17
17
}
18
18
});
19
19
20
20
chrome.webRequest.onBeforeRequest.addListener(
21
21
async (details) => {
22
22
if (details.tabId === -1) return;
23
-
if (starterUrls.some((url) => details.url.includes(url))) {
24
-
console.log("Adding", details.url);
25
-
collectedUrls.add(details.url);
26
-
}
27
23
28
-
if (collectedUrls.size === starterUrls.length) {
29
-
if (doing) return;
30
-
if (!blockLoading) return;
31
-
doing = true;
32
-
const urls = [...collectedUrls];
33
-
console.log("Doing", urls);
24
+
const url = new URL(details.url);
25
+
const hasUrl = scriptUrls.some((scriptUrl) => {
26
+
return (
27
+
details.url.includes(scriptUrl) &&
28
+
!url.searchParams.has("inj") &&
29
+
(url.hostname.endsWith("discord.com") || url.hostname.endsWith("discordapp.com"))
30
+
);
31
+
});
32
+
33
+
if (hasUrl) blockedScripts.add(details.url);
34
+
35
+
if (blockedScripts.size === scriptUrls.length) {
36
+
const blockedScriptsCopy = Array.from(blockedScripts);
37
+
blockedScripts.clear();
34
38
35
39
console.log("Running moonlight script");
36
40
try {
···
40
44
files: ["index.js"]
41
45
});
42
46
} catch (e) {
43
-
console.log(e);
47
+
console.error(e);
44
48
}
45
49
46
50
console.log("Initializing moonlight");
···
52
56
try {
53
57
await window._moonlightBrowserInit();
54
58
} catch (e) {
55
-
console.log(e);
59
+
console.error(e);
56
60
}
57
61
}
58
62
});
···
60
64
console.log(e);
61
65
}
62
66
63
-
console.log("Updating rulesets");
67
+
console.log("Disabling block ruleset");
64
68
try {
65
-
blockLoading = false;
66
69
await chrome.declarativeNetRequest.updateEnabledRulesets({
67
70
disableRulesetIds: ["blockLoading"],
68
71
enableRulesetIds: ["modifyResponseHeaders"]
69
72
});
70
73
} catch (e) {
71
-
console.log(e);
74
+
console.error(e);
72
75
}
73
76
74
77
console.log("Readding scripts");
···
76
79
await chrome.scripting.executeScript({
77
80
target: { tabId: details.tabId },
78
81
world: "MAIN",
79
-
args: [urls],
80
-
func: async (urls) => {
82
+
args: [blockedScriptsCopy],
83
+
func: async (blockedScripts) => {
81
84
const scripts = [...document.querySelectorAll("script")].filter(
82
-
(script) => script.src && urls.some((url) => url.includes(script.src))
85
+
(script) => script.src && blockedScripts.some((url) => url.includes(script.src))
83
86
);
84
87
85
-
// backwards
86
-
urls.reverse();
87
-
for (const url of urls) {
88
-
const script = scripts.find((script) => url.includes(script.src));
89
-
console.log("adding new script", script);
88
+
blockedScripts.reverse();
89
+
for (const url of blockedScripts) {
90
+
if (url.includes("/sentry.")) continue;
90
91
92
+
const script = scripts.find((script) => url.includes(script.src));
91
93
const newScript = document.createElement("script");
92
-
for (const { name, value } of script.attributes) {
93
-
newScript.setAttribute(name, value);
94
+
for (const attr of script.attributes) {
95
+
if (attr.name === "src") attr.value += "?inj";
96
+
newScript.setAttribute(attr.name, attr.value);
94
97
}
95
-
96
98
script.remove();
97
99
document.documentElement.appendChild(newScript);
98
100
}
99
101
}
100
102
});
101
103
} catch (e) {
102
-
console.log(e);
104
+
console.error(e);
103
105
}
104
-
105
-
console.log("Done");
106
-
doing = false;
107
-
collectedUrls.clear();
108
106
}
109
107
},
110
108
{
111
-
urls: ["*://*.discord.com/assets/*.js"]
109
+
urls: ["*://*.discord.com/assets/*.js", "*://*.discordapp.com/assets/*.js"]
112
110
}
113
111
);
+4
packages/browser/src/index.ts
+4
packages/browser/src/index.ts
+1
packages/browser/tsconfig.json
+1
packages/browser/tsconfig.json
+7
packages/core/package.json
+7
packages/core/package.json
+1
-4
packages/core/src/extension.ts
+1
-4
packages/core/src/extension.ts
···
129
129
const ret: DetectedExtension[] = [];
130
130
const seen = new Set<string>();
131
131
132
-
const coreExtensionsFs: Record<string, string> = JSON.parse(
133
-
// @ts-expect-error shut up
134
-
_moonlight_coreExtensionsStr
135
-
);
132
+
const coreExtensionsFs: Record<string, string> = JSON.parse(_moonlight_coreExtensionsStr);
136
133
const coreExtensions = Array.from(new Set(Object.keys(coreExtensionsFs).map((x) => x.split("/")[0])));
137
134
138
135
for (const ext of coreExtensions) {
+3
packages/core/src/fs.ts
+3
packages/core/src/fs.ts
+39
-28
packages/core/src/patch.ts
+39
-28
packages/core/src/patch.ts
···
66
66
const moduleCache: Record<string, string> = {};
67
67
const patched: Record<string, Array<string>> = {};
68
68
69
-
function patchModules(entry: WebpackJsonpEntry[1]) {
70
-
function patchModule(id: string, patchId: string, replaced: string) {
71
-
// Store what extensions patched what modules for easier debugging
72
-
patched[id] = patched[id] || [];
73
-
patched[id].push(patchId);
69
+
function createSourceURL(id: string) {
70
+
const remapped = Object.entries(moonlight.moonmap.modules).find((m) => m[1] === id)?.[0];
74
71
75
-
// Webpack module arguments are minified, so we replace them with consistent names
76
-
// We have to wrap it so things don't break, though
77
-
const patchedStr = patched[id].sort().join(", ");
72
+
if (remapped) {
73
+
return `// Webpack Module: ${id}\n//# sourceURL=${remapped}`;
74
+
}
78
75
79
-
const wrapped =
80
-
`(${replaced}).apply(this, arguments)\n` +
81
-
`// Patched by moonlight: ${patchedStr}\n` +
82
-
`//# sourceURL=Webpack-Module-${id}`;
76
+
return `//# sourceURL=Webpack-Module/${id.slice(0, 3)}/${id}`;
77
+
}
83
78
84
-
try {
85
-
const func = new Function("module", "exports", "require", wrapped) as WebpackModuleFunc;
86
-
entry[id] = func;
87
-
entry[id].__moonlight = true;
88
-
return true;
89
-
} catch (e) {
90
-
logger.warn("Error constructing function for patch", patchId, e);
91
-
patched[id].pop();
92
-
return false;
93
-
}
79
+
function patchModule(id: string, patchId: string, replaced: string, entry: WebpackJsonpEntry[1]) {
80
+
// Store what extensions patched what modules for easier debugging
81
+
patched[id] = patched[id] ?? [];
82
+
patched[id].push(patchId);
83
+
84
+
// Webpack module arguments are minified, so we replace them with consistent names
85
+
// We have to wrap it so things don't break, though
86
+
const patchedStr = patched[id].sort().join(", ");
87
+
88
+
const wrapped =
89
+
`(${replaced}).apply(this, arguments)\n` + `// Patched by moonlight: ${patchedStr}\n` + createSourceURL(id);
90
+
91
+
try {
92
+
const func = new Function("module", "exports", "require", wrapped) as WebpackModuleFunc;
93
+
entry[id] = func;
94
+
entry[id].__moonlight = true;
95
+
return true;
96
+
} catch (e) {
97
+
logger.warn("Error constructing function for patch", patchId, e);
98
+
patched[id].pop();
99
+
return false;
94
100
}
101
+
}
95
102
103
+
function patchModules(entry: WebpackJsonpEntry[1]) {
96
104
// Populate the module cache
97
105
for (const [id, func] of Object.entries(entry)) {
98
106
if (!Object.hasOwn(moduleCache, id) && func.__moonlight !== true) {
···
108
116
const origModuleString = moduleCache[id];
109
117
let moduleString = origModuleString;
110
118
const patchedStr = [];
111
-
const mappedName = moonlight.moonmap.modules[id];
119
+
const mappedName = Object.entries(moonlight.moonmap.modules).find((m) => m[1] === id)?.[0];
112
120
let modified = false;
113
121
let swappedModule = false;
114
122
···
154
162
}
155
163
156
164
if (replaced === moduleString) {
157
-
logger.warn("Patch replacement failed", id, patch);
165
+
logger.warn("Patch replacement failed", id, patchId, patch);
158
166
isPatched = false;
159
167
if (patch.hardFail) {
160
168
hardFailed = true;
···
185
193
}
186
194
187
195
if (modified) {
188
-
if (!swappedModule) patchModule(id, patchedStr.join(", "), moduleString);
189
-
moduleCache[id] = moduleString;
196
+
let shouldCache = true;
197
+
if (!swappedModule) shouldCache = patchModule(id, patchedStr.join(", "), moduleString, entry);
198
+
if (shouldCache) moduleCache[id] = moduleString;
190
199
moonlight.patched.set(id, exts);
191
200
}
192
201
···
194
203
const parsed = moonlight.lunast.parseScript(id, moduleString);
195
204
if (parsed != null) {
196
205
for (const [parsedId, parsedScript] of Object.entries(parsed)) {
197
-
if (patchModule(parsedId, "lunast", parsedScript)) {
206
+
if (patchModule(parsedId, "lunast", parsedScript, entry)) {
198
207
moduleCache[parsedId] = parsedScript;
199
208
}
200
209
}
···
205
214
206
215
if (moonlightNode.config.patchAll === true) {
207
216
if ((typeof id !== "string" || !id.includes("_")) && !entry[id].__moonlight) {
208
-
const wrapped = `(${moduleCache[id]}).apply(this, arguments)\n` + `//# sourceURL=Webpack-Module-${id}`;
217
+
const wrapped = `(${moduleCache[id]}).apply(this, arguments)\n` + createSourceURL(id);
209
218
entry[id] = new Function("module", "exports", "require", wrapped) as WebpackModuleFunc;
210
219
entry[id].__moonlight = true;
211
220
}
···
328
337
}
329
338
330
339
for (const [name, func] of Object.entries(moonlight.moonmap.getWebpackModules("window.moonlight.moonmap"))) {
340
+
// @ts-expect-error probably should fix the type on this idk
341
+
func.__moonlight = true;
331
342
injectedWpModules.push({ id: name, run: func });
332
343
modules[name] = func;
333
344
inject = true;
+4
-1
packages/core/tsconfig.json
+4
-1
packages/core/tsconfig.json
+9
-2
packages/core-extensions/package.json
+9
-2
packages/core-extensions/package.json
···
1
1
{
2
2
"name": "@moonlight-mod/core-extensions",
3
3
"private": true,
4
+
"engineStrict": true,
5
+
"engines": {
6
+
"node": ">=22",
7
+
"pnpm": ">=10",
8
+
"npm": "pnpm",
9
+
"yarn": "pnpm"
10
+
},
4
11
"dependencies": {
5
12
"@moonlight-mod/core": "workspace:*",
6
13
"@moonlight-mod/types": "workspace:*",
7
-
"microdiff": "^1.5.0",
8
-
"nanotar": "^0.1.1"
14
+
"microdiff": "catalog:prod",
15
+
"nanotar": "catalog:prod"
9
16
}
10
17
}
+12
-3
packages/core-extensions/src/commands/index.ts
+12
-3
packages/core-extensions/src/commands/index.ts
···
53
53
}
54
54
},
55
55
{
56
-
find: ".icon,bot:null===",
56
+
find: ".icon,bot:null==",
57
57
replace: {
58
-
match: /(\.useMemo\(\(\)=>{)(if\((\i)\.type)/,
59
-
replacement: (_, before, after, section) => `${before}
58
+
match: /(\.useMemo\(\(\)=>{(var \i;)?)((return |if\()(\i)\.type)/,
59
+
replacement: (_, before, beforeVar, after, afterIf, section) => `${before}
60
60
if (${section}.id==="${APPLICATION_ID}") return "https://moonlight-mod.github.io/favicon.png";
61
61
${after}`
62
62
}
···
67
67
replace: {
68
68
match: /(\i)\.type===\i\.\i\.BUILT_IN/,
69
69
replacement: (orig, section) => `${section}.id!=="${APPLICATION_ID}"&&${orig}`
70
+
}
71
+
},
72
+
73
+
// tell it this app id is authorized
74
+
{
75
+
find: /let{customInstallUrl:\i,installParams:\i,integrationTypesConfig:\i}/,
76
+
replace: {
77
+
match: /\|\|(\i)===\i\.\i\.BUILT_IN/,
78
+
replacement: (orig, id) => `${orig}||${id}==="${APPLICATION_ID}"`
70
79
}
71
80
}
72
81
];
+3
packages/core-extensions/src/common/index.ts
+3
packages/core-extensions/src/common/index.ts
+1
-1
packages/core-extensions/src/common/manifest.json
+1
-1
packages/core-extensions/src/common/manifest.json
+1
-2
packages/core-extensions/src/common/webpackModules/ErrorBoundary.tsx
+1
-2
packages/core-extensions/src/common/webpackModules/ErrorBoundary.tsx
···
29
29
const { noop, fallback: FallbackComponent, children, message } = this.props;
30
30
const { errored, error, componentStack } = this.state;
31
31
32
-
if (noop) return null;
33
32
if (FallbackComponent) return <FallbackComponent children={children} {...this.state} />;
34
33
35
34
if (errored) {
36
-
return (
35
+
return noop ? null : (
37
36
<div className={`moonlight-error-boundary`}>
38
37
<h3>{message ?? "An error occurred rendering this component:"}</h3>
39
38
<code className="hljs">{`${error}\n\nComponent stack:\n${componentStack}`}</code>
+31
packages/core-extensions/src/common/webpackModules/icons.ts
+31
packages/core-extensions/src/common/webpackModules/icons.ts
···
1
+
import { Icons, IconSize } from "@moonlight-mod/types/coreExtensions/common";
2
+
import { tokens } from "@moonlight-mod/wp/discord/components/common/index";
3
+
4
+
// This is defined in a Webpack module but we copy it here to be less breakage-prone
5
+
const sizes: Partial<Record<IconSize, number>> = {
6
+
xxs: 12,
7
+
xs: 16,
8
+
sm: 18,
9
+
md: 24,
10
+
lg: 32,
11
+
refresh_sm: 20
12
+
};
13
+
14
+
export const icons: Icons = {
15
+
parseProps(props) {
16
+
// NOTE: var() fallback is non-standard behavior, just for safety reasons
17
+
const color = props?.color ?? tokens?.colors?.["INTERACTIVE_NORMAL"] ?? "var(--interactive-normal)";
18
+
19
+
const size = sizes[props?.size ?? "md"];
20
+
21
+
return {
22
+
// note: this default size is also non-standard behavior, just for safety
23
+
width: size ?? props?.width ?? sizes.md!,
24
+
height: size ?? props?.width ?? sizes.md!,
25
+
26
+
fill: typeof color === "string" ? color : color.css,
27
+
className: props?.colorClass ?? ""
28
+
};
29
+
}
30
+
};
31
+
export default icons;
+8
-7
packages/core-extensions/src/componentEditor/index.ts
+8
-7
packages/core-extensions/src/componentEditor/index.ts
···
15
15
replacement: 'children:require("componentEditor_dmList").default._patchItems(['
16
16
},
17
17
{
18
-
match: /(?<=onMouseDown:\i}\))]/,
18
+
match: /(?<=(onMouseDown|nameplate):\i}\))]/,
19
19
replacement: "],arguments[0])"
20
20
}
21
21
],
···
27
27
find: ".lostPermission",
28
28
replace: [
29
29
{
30
-
match: /(?<=\(0,\i\.jsxs\)\(\i\.Fragment,{)children:(\[\i\(\),.+?\i\(\)])/,
30
+
match:
31
+
/(?<=\(0,\i\.jsxs\)\(\i\.Fragment,{)children:(\[\(0,\i\.jsx\)\(\i,{user:\i}\),.+?onClickPremiumGuildIcon:\i}\)])/,
31
32
replacement: (_, decorators) =>
32
33
`children:require("componentEditor_memberList").default._patchDecorators(${decorators},arguments[0])`
33
34
},
···
44
45
find: '},"new-member")),',
45
46
replace: [
46
47
{
47
-
match: /(?<=\.BADGES]=)(\i);/,
48
-
replacement: (_, badges) =>
49
-
`require("componentEditor_messages").default._patchUsernameBadges(${badges},arguments[0]);`
48
+
match: /(?<=\.BADGES](=|:))(\i)(;|})/,
49
+
replacement: (_, leading, badges, trailing) =>
50
+
`require("componentEditor_messages").default._patchUsernameBadges(${badges},arguments[0])${trailing}`
50
51
},
51
52
{
52
53
match: /(?<=className:\i,)badges:(\i)/,
···
54
55
`badges:require("componentEditor_messages").default._patchBadges(${badges},arguments[0])`
55
56
},
56
57
{
57
-
match: /(?<=username:\(0,\i\.jsxs\)\(\i\.Fragment,{)children:(\[.+?,\i])/,
58
+
match: /(?<=username:\(0,\i\.jsxs\)\(\i\.Fragment,{)children:(\[.+?])}\),usernameSpanId:/,
58
59
replacement: (_, elements) =>
59
-
`children:require("componentEditor_messages").default._patchUsername(${elements},arguments[0])`
60
+
`children:require("componentEditor_messages").default._patchUsername(${elements},arguments[0])}),usernameSpanId:`
60
61
}
61
62
]
62
63
},
+21
-4
packages/core-extensions/src/experiments/index.ts
+21
-4
packages/core-extensions/src/experiments/index.ts
···
20
20
{
21
21
find: ".HEADER_BAR)",
22
22
replace: {
23
-
match: /&&\((.)\?\(0,/,
23
+
match: /&&\((\i)\?\(0,/,
24
24
replacement: (_, isStaff) =>
25
25
`&&(((moonlight.getConfigOption("experiments","devtools")??false)?true:${isStaff})?(0,`
26
26
}
27
27
},
28
+
// staff help menu - visual refresh
29
+
{
30
+
find: '("AppTitleBar")',
31
+
replace: {
32
+
match: /{hasBugReporterAccess:(\i)}=\i\.\i\.useExperiment\({location:"HeaderBar"},{autoTrackExposure:!1}\);/,
33
+
replacement: (orig, isStaff) =>
34
+
`${orig}if(moonlight.getConfigOption("experiments","devtools")??false)${isStaff}=true;`
35
+
}
36
+
},
37
+
{
38
+
find: 'navId:"staff-help-popout",',
39
+
replace: {
40
+
match: /isDiscordDeveloper:(\i)}\),/,
41
+
replacement: (_, isStaff) =>
42
+
`isDiscordDeveloper:(moonlight.getConfigOption("experiments","devtools")??false)||${isStaff}}),`
43
+
}
44
+
},
28
45
29
46
// Enable further staff-locked options
30
47
{
31
48
find: "shouldShowLurkerModeUpsellPopout:",
32
49
replace: {
33
-
match: /\.useReducedMotion,isStaff:(.),/,
34
-
replacement: (_, isStaff) =>
35
-
`.useReducedMotion,isStaff:(moonlight.getConfigOption("experiments","staffSettings")??false)?true:${isStaff},`
50
+
match: /\.useReducedMotion,isStaff:(\i)(,|})/,
51
+
replacement: (_, isStaff, trail) =>
52
+
`.useReducedMotion,isStaff:(moonlight.getConfigOption("experiments","staffSettings")??false)?true:${isStaff}${trail}`
36
53
}
37
54
}
38
55
];
+9
-3
packages/core-extensions/src/moonbase/index.tsx
+9
-3
packages/core-extensions/src/moonbase/index.tsx
···
8
8
{
9
9
// CvQlAA mapped to ERRORS_ACTION_TO_TAKE
10
10
// FIXME: Better patch find?
11
-
match: /,(\(0,(.)\.jsx\))\("p",{children:.\.intl\.string\(.\..\.CvQlAA\)}\)/,
11
+
match: /,(\(0,(\i)\.jsx\))\("p",{children:\i\.\i\.string\(\i\.\i\.CvQlAA\)}\)/,
12
12
replacement: (_, createElement, ReactJSX) =>
13
13
`,${createElement}(require("moonbase_crashScreen")?.UpdateText??${ReactJSX}.Fragment,{state:this.state,setState:this.setState.bind(this)})`
14
14
},
15
15
16
16
// wrap actions field to display error details
17
17
{
18
-
match: /(?<=return(\(0,(.)\.jsx\))\(.+?,)action:(.),className:/,
18
+
match: /(?<=return(\(0,(\i)\.jsx\))\(.+?,)action:(\i),className:/,
19
19
replacement: (_, createElement, ReactJSX, action) =>
20
20
`action:require("moonbase_crashScreen")?.wrapAction?${createElement}(require("moonbase_crashScreen").wrapAction,{action:${action},state:this.state}):${action},className:`
21
21
},
···
23
23
// add update button
24
24
// +hivLS -> ERRORS_RELOAD
25
25
{
26
-
match: /(?<=\["\+hivLS"\]\)}\),(\(0,(.)\.jsx\))\(.,{}\))/,
26
+
match: /(?<=\["\+hivLS"\]\)}\),(\(0,(\i)\.jsx\))\(\i,{}\))/,
27
27
replacement: (_, createElement, ReactJSX) =>
28
28
`,${createElement}(require("moonbase_crashScreen")?.UpdateButton??${ReactJSX}.Fragment,{state:this.state,setState:this.setState.bind(this)})`
29
29
}
···
42
42
{ id: "react" },
43
43
{ id: "discord/components/common/index" },
44
44
{ ext: "moonbase", id: "stores" },
45
+
{ ext: "moonbase", id: "ThemeDarkIcon" },
45
46
{ id: "discord/modules/guild_settings/web/AppCard.css" },
46
47
{ ext: "contextMenu", id: "contextMenu" },
47
48
{ id: "discord/modules/modals/Modals" },
···
49
50
'"Missing channel in Channel.openChannelContextMenu"',
50
51
".forumOrHome]:"
51
52
]
53
+
},
54
+
55
+
ThemeDarkIcon: {
56
+
dependencies: [{ ext: "common", id: "icons" }, { id: "react" }]
52
57
},
53
58
54
59
settings: {
···
67
72
dependencies: [
68
73
{ id: "react" },
69
74
{ ext: "moonbase", id: "stores" },
75
+
{ ext: "moonbase", id: "ThemeDarkIcon" },
70
76
{ ext: "notices", id: "notices" },
71
77
{
72
78
ext: "spacepack",
+12
-21
packages/core-extensions/src/moonbase/native.ts
+12
-21
packages/core-extensions/src/moonbase/native.ts
···
15
15
16
16
export const userAgent = `moonlight/${moonlightGlobal.version} (https://github.com/moonlight-mod/moonlight)`;
17
17
18
+
// User-Agent header causes trouble on Firefox
19
+
const isBrowser = globalThis.moonlightNode != null && globalThis.moonlightNode.isBrowser;
20
+
const sharedHeaders: Record<string, string> = {};
21
+
if (!isBrowser) sharedHeaders["User-Agent"] = userAgent;
22
+
18
23
async function getStableRelease(): Promise<{
19
24
name: string;
20
25
assets: {
···
24
29
}> {
25
30
const req = await fetch(githubApiUrl, {
26
31
cache: "no-store",
27
-
headers: {
28
-
"User-Agent": userAgent
29
-
}
32
+
headers: sharedHeaders
30
33
});
31
34
return await req.json();
32
35
}
···
43
46
} else if (moonlightGlobal.branch === MoonlightBranch.NIGHTLY) {
44
47
const req = await fetch(nightlyRefUrl, {
45
48
cache: "no-store",
46
-
headers: {
47
-
"User-Agent": userAgent
48
-
}
49
+
headers: sharedHeaders
49
50
});
50
51
const ref = (await req.text()).split("\n")[0];
51
52
return ref !== moonlightGlobal.version ? ref : null;
···
71
72
logger.debug(`Downloading ${asset.browser_download_url}`);
72
73
const req = await fetch(asset.browser_download_url, {
73
74
cache: "no-store",
74
-
headers: {
75
-
"User-Agent": userAgent
76
-
}
75
+
headers: sharedHeaders
77
76
});
78
77
79
78
return [await req.arrayBuffer(), json.name];
···
83
82
logger.debug(`Downloading ${nightlyZipUrl}`);
84
83
const zipReq = await fetch(nightlyZipUrl, {
85
84
cache: "no-store",
86
-
headers: {
87
-
"User-Agent": userAgent
88
-
}
85
+
headers: sharedHeaders
89
86
});
90
87
91
88
const refReq = await fetch(nightlyRefUrl, {
92
89
cache: "no-store",
93
-
headers: {
94
-
"User-Agent": userAgent
95
-
}
90
+
headers: sharedHeaders
96
91
});
97
92
const ref = (await refReq.text()).split("\n")[0];
98
93
···
139
134
try {
140
135
const req = await fetch(repo, {
141
136
cache: "no-store",
142
-
headers: {
143
-
"User-Agent": userAgent
144
-
}
137
+
headers: sharedHeaders
145
138
});
146
139
const json = await req.json();
147
140
ret[repo] = json;
···
156
149
async installExtension(manifest, url, repo) {
157
150
const req = await fetch(url, {
158
151
cache: "no-store",
159
-
headers: {
160
-
"User-Agent": userAgent
161
-
}
152
+
headers: sharedHeaders
162
153
});
163
154
164
155
const dir = moonlightGlobal.getExtensionDir(manifest.id);
+6
-2
packages/core-extensions/src/moonbase/style.css
+6
-2
packages/core-extensions/src/moonbase/style.css
···
251
251
padding-top: 0.5rem;
252
252
}
253
253
254
+
.moonbase-dev {
255
+
height: 4rem;
256
+
}
257
+
254
258
.moonbase-dev-avatar {
255
259
width: 2rem;
256
260
border-radius: 50%;
···
260
264
gap: 0.5rem;
261
265
}
262
266
263
-
.moonbase-about-text {
264
-
padding-top: 0.5rem;
267
+
.moonbase-about-page {
268
+
gap: 1rem;
265
269
}
+36
packages/core-extensions/src/moonbase/webpackModules/ThemeDarkIcon.tsx
+36
packages/core-extensions/src/moonbase/webpackModules/ThemeDarkIcon.tsx
···
1
+
// RIP to ThemeDarkIcon ????-2025
2
+
// <Cynthia> Failed to remap "ThemeDarkIcon" in "discord/components/common/index"
3
+
// <NotNite> bro are you fucking kidding me
4
+
// <NotNite> that's literally the icon we use for the update banner
5
+
6
+
import React from "@moonlight-mod/wp/react";
7
+
import icons from "@moonlight-mod/wp/common_icons";
8
+
import type { IconProps } from "@moonlight-mod/types/coreExtensions/common";
9
+
10
+
export default function ThemeDarkIcon(props?: IconProps) {
11
+
const parsed = icons.parseProps(props);
12
+
13
+
return (
14
+
<svg
15
+
aria-hidden="true"
16
+
role="img"
17
+
xmlns="http://www.w3.org/2000/svg"
18
+
width={parsed.width}
19
+
height={parsed.height}
20
+
fill="none"
21
+
viewBox="0 0 24 24"
22
+
>
23
+
<path
24
+
fill={parsed.fill}
25
+
className={parsed.className}
26
+
d="M20.52 18.96c.32-.4-.01-.96-.52-.96A11 11 0 0 1 9.77 2.94c.31-.78-.3-1.68-1.1-1.43a11 11 0 1 0 11.85 17.45Z"
27
+
/>
28
+
29
+
<path
30
+
fill={parsed.fill}
31
+
className={parsed.className}
32
+
d="m17.73 9.27-.76-2.02a.5.5 0 0 0-.94 0l-.76 2.02-2.02.76a.5.5 0 0 0 0 .94l2.02.76.76 2.02a.5.5 0 0 0 .94 0l.76-2.02 2.02-.76a.5.5 0 0 0 0-.94l-2.02-.76ZM19.73 2.62l.45 1.2 1.2.45c.21.08.21.38 0 .46l-1.2.45-.45 1.2a.25.25 0 0 1-.46 0l-.45-1.2-1.2-.45a.25.25 0 0 1 0-.46l1.2-.45.45-1.2a.25.25 0 0 1 .46 0Z"
33
+
/>
34
+
</svg>
35
+
);
36
+
}
+21
-5
packages/core-extensions/src/moonbase/webpackModules/crashScreen.tsx
+21
-5
packages/core-extensions/src/moonbase/webpackModules/crashScreen.tsx
···
6
6
import { ConfigExtension, DetectedExtension } from "@moonlight-mod/types";
7
7
import DiscoveryClasses from "@moonlight-mod/wp/discord/modules/discovery/web/Discovery.css";
8
8
9
-
const MODULE_REGEX = /Webpack-Module-(\d+)/g;
9
+
const MODULE_REGEX = /Webpack-Module\/(\d+)\/(\d+)/g;
10
10
11
11
const logger = moonlight.getLogger("moonbase/crashScreen");
12
12
···
84
84
}
85
85
86
86
function ExtensionDisableCard({ ext }: { ext: DetectedExtension }) {
87
-
function disableWithDependents() {
87
+
async function disableWithDependents() {
88
88
const disable = new Set<string>();
89
89
disable.add(ext.id);
90
90
for (const [id, dependencies] of moonlightNode.processedExtensions.dependencyGraph) {
···
105
105
msg += "?";
106
106
107
107
if (confirm(msg)) {
108
-
moonlightNode.writeConfig(config);
108
+
await moonlightNode.writeConfig(config);
109
109
window.location.reload();
110
110
}
111
111
}
···
139
139
const causes = React.useMemo(() => {
140
140
const causes = new Set<string>();
141
141
if (state.error.stack) {
142
-
for (const [, id] of state.error.stack.matchAll(MODULE_REGEX))
142
+
for (const [, , id] of state.error.stack.matchAll(MODULE_REGEX))
143
143
for (const ext of moonlight.patched.get(id) ?? []) causes.add(ext);
144
144
}
145
-
for (const [, id] of state.info.componentStack.matchAll(MODULE_REGEX))
145
+
for (const [, , id] of state.info.componentStack.matchAll(MODULE_REGEX))
146
146
for (const ext of moonlight.patched.get(id) ?? []) causes.add(ext);
147
+
148
+
for (const [path, id] of Object.entries(moonlight.moonmap.modules)) {
149
+
const MAPPING_REGEX = new RegExp(
150
+
// @ts-expect-error Only Firefox has RegExp.escape
151
+
`(${RegExp.escape ? RegExp.escape(path) : path.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")})`,
152
+
"g"
153
+
);
154
+
155
+
if (state.error.stack) {
156
+
for (const match of state.error.stack.matchAll(MAPPING_REGEX))
157
+
if (match) for (const ext of moonlight.patched.get(id) ?? []) causes.add(ext);
158
+
}
159
+
for (const match of state.info.componentStack.matchAll(MAPPING_REGEX))
160
+
if (match) for (const ext of moonlight.patched.get(id) ?? []) causes.add(ext);
161
+
}
162
+
147
163
return [...causes];
148
164
}, []);
149
165
+2
-2
packages/core-extensions/src/moonbase/webpackModules/settings.tsx
+2
-2
packages/core-extensions/src/moonbase/webpackModules/settings.tsx
+30
-10
packages/core-extensions/src/moonbase/webpackModules/stores.ts
+30
-10
packages/core-extensions/src/moonbase/webpackModules/stores.ts
···
13
13
import { mainRepo } from "@moonlight-mod/types/constants";
14
14
import { checkExtensionCompat, ExtensionCompat } from "@moonlight-mod/core/extension/loader";
15
15
import { CustomComponent } from "@moonlight-mod/types/coreExtensions/moonbase";
16
+
import { NodeEventType } from "@moonlight-mod/types/core/event";
16
17
import { getConfigOption, setConfigOption } from "@moonlight-mod/core/util/config";
17
18
import diff from "microdiff";
18
19
···
78
79
};
79
80
}
80
81
82
+
// This is async but we're calling it without
81
83
this.checkUpdates();
84
+
85
+
// Update our state if another extension edited the config programatically
86
+
moonlightNode.events.addEventListener(NodeEventType.ConfigSaved, (config) => {
87
+
if (!this.submitting) {
88
+
this.config = this.clone(config);
89
+
// NOTE: This is also async but we're calling it without
90
+
this.processConfigChanged();
91
+
}
92
+
});
82
93
}
83
94
84
95
async checkUpdates() {
···
239
250
let val = this.config.extensions[ext.id];
240
251
241
252
if (val == null) {
242
-
this.config.extensions[ext.id] = { enabled };
253
+
this.config.extensions[ext.id] = enabled;
243
254
this.modified = this.isModified();
244
255
this.emitChange();
245
256
return;
···
499
510
return returnedAdvice;
500
511
}
501
512
502
-
writeConfig() {
503
-
this.submitting = true;
504
-
this.restartAdvice = this.#computeRestartAdvice();
505
-
const modifiedRepos = diff(this.savedConfig.repositories, this.config.repositories);
513
+
async writeConfig() {
514
+
try {
515
+
this.submitting = true;
516
+
this.emitChange();
506
517
507
-
moonlightNode.writeConfig(this.config);
508
-
this.savedConfig = this.clone(this.config);
518
+
await moonlightNode.writeConfig(this.config);
519
+
await this.processConfigChanged();
520
+
} finally {
521
+
this.submitting = false;
522
+
this.emitChange();
523
+
}
524
+
}
509
525
510
-
this.submitting = false;
526
+
private async processConfigChanged() {
527
+
this.savedConfig = this.clone(this.config);
528
+
this.restartAdvice = this.#computeRestartAdvice();
511
529
this.modified = false;
512
-
this.emitChange();
513
530
514
-
if (modifiedRepos.length !== 0) this.checkUpdates();
531
+
const modifiedRepos = diff(this.savedConfig.repositories, this.config.repositories);
532
+
if (modifiedRepos.length !== 0) await this.checkUpdates();
533
+
534
+
this.emitChange();
515
535
}
516
536
517
537
reset() {
+23
-41
packages/core-extensions/src/moonbase/webpackModules/ui/about.tsx
+23
-41
packages/core-extensions/src/moonbase/webpackModules/ui/about.tsx
···
1
1
import {
2
-
Card,
3
2
Text,
4
3
useThemeContext,
5
4
Button,
···
10
9
import Flex from "@moonlight-mod/wp/discord/uikit/Flex";
11
10
import React from "@moonlight-mod/wp/react";
12
11
import MarkupUtils from "@moonlight-mod/wp/discord/modules/markup/MarkupUtils";
13
-
import AppCardClasses from "@moonlight-mod/wp/discord/modules/guild_settings/web/AppCard.css";
14
12
import spacepack from "@moonlight-mod/wp/spacepack_spacepack";
15
13
16
14
const wordmark = "https://raw.githubusercontent.com/moonlight-mod/moonlight/refs/heads/main/img/wordmark.png";
···
27
25
28
26
function Dev({ name, picture, link }: { name: string; picture: string; link: string }) {
29
27
return (
30
-
<Card editable={true} className={AppCardClasses.card}>
31
-
<div className={AppCardClasses.cardHeader + " moonbase-dev"}>
32
-
<Flex direction={Flex.Direction.HORIZONTAL} align={Flex.Align.CENTER}>
33
-
<img src={picture} alt={name} className="moonbase-dev-avatar" />
28
+
<Button onClick={() => window.open(link)} color={Button.Colors.PRIMARY} className="moonbase-dev">
29
+
<Flex direction={Flex.Direction.HORIZONTAL} align={Flex.Align.CENTER} className="moonbase-gap">
30
+
<img src={picture} alt={name} className="moonbase-dev-avatar" />
34
31
35
-
<Flex direction={Flex.Direction.VERTICAL} align={Flex.Align.CENTER}>
36
-
<a href={link} rel="noreferrer noopener" target="_blank" tabIndex={-1}>
37
-
<Text variant="text-md/semibold">{name}</Text>
38
-
</a>
39
-
</Flex>
40
-
</Flex>
41
-
</div>
42
-
</Card>
32
+
<Text variant="text-md/semibold">{name}</Text>
33
+
</Flex>
34
+
</Button>
43
35
);
44
36
}
45
37
···
82
74
}
83
75
84
76
export default function AboutPage() {
85
-
const darkTheme = useThemeContext()?.theme === "dark";
77
+
const darkTheme = useThemeContext()?.theme !== "light";
86
78
87
79
return (
88
-
<div>
89
-
<Flex direction={Flex.Direction.VERTICAL} align={Flex.Align.CENTER}>
90
-
<img src={darkTheme ? wordmarkLight : wordmark} alt="moonlight wordmark" className="moonbase-wordmark" />
91
-
<Text variant="heading-lg/medium">created by:</Text>
92
-
<div className="moonbase-devs">
93
-
<Dev name="Cynosphere" picture="https://github.com/Cynosphere.png" link="https://github.com/Cynosphere" />
94
-
<Dev name="NotNite" picture="https://github.com/NotNite.png" link="https://github.com/NotNite" />
95
-
<Dev name="adryd" picture="https://github.com/adryd325.png" link="https://github.com/adryd325" />
96
-
<Dev
97
-
name="redstonekasi"
98
-
picture="https://github.com/redstonekasi.png"
99
-
link="https://github.com/redstonekasi"
100
-
/>
101
-
</div>
80
+
<Flex direction={Flex.Direction.VERTICAL} align={Flex.Align.CENTER} className="moonbase-about-page">
81
+
<img src={darkTheme ? wordmarkLight : wordmark} alt="moonlight wordmark" className="moonbase-wordmark" />
102
82
103
-
<Flex direction={Flex.Direction.HORIZONTAL} align={Flex.Align.CENTER} className="moonbase-gap">
104
-
<IconButton text="View source" icon={AngleBracketsIcon} link="https://github.com/moonlight-mod/moonlight" />
105
-
<IconButton text="Open the docs" icon={BookCheckIcon} link="https://moonlight-mod.github.io/" />
106
-
<IconButton
107
-
text="Join the server"
108
-
icon={ClydeIcon}
109
-
link="https://discord.gg/FdZBTFCP6F"
110
-
openInClient={true}
111
-
/>
112
-
</Flex>
83
+
<Text variant="heading-lg/medium">created by:</Text>
84
+
<div className="moonbase-devs">
85
+
<Dev name="Cynosphere" picture="https://github.com/Cynosphere.png" link="https://github.com/Cynosphere" />
86
+
<Dev name="NotNite" picture="https://github.com/NotNite.png" link="https://github.com/NotNite" />
87
+
<Dev name="adryd" picture="https://github.com/adryd325.png" link="https://github.com/adryd325" />
88
+
<Dev name="redstonekasi" picture="https://github.com/redstonekasi.png" link="https://github.com/redstonekasi" />
89
+
</div>
90
+
91
+
<Flex direction={Flex.Direction.HORIZONTAL} align={Flex.Align.CENTER} className="moonbase-gap">
92
+
<IconButton text="View source" icon={AngleBracketsIcon} link="https://github.com/moonlight-mod/moonlight" />
93
+
<IconButton text="Open the docs" icon={BookCheckIcon} link="https://moonlight-mod.github.io/" />
94
+
<IconButton text="Join the server" icon={ClydeIcon} link="https://discord.gg/FdZBTFCP6F" openInClient={true} />
113
95
</Flex>
114
96
115
-
<Flex direction={Flex.Direction.VERTICAL} align={Flex.Align.START} className="moonbase-about-text">
97
+
<Flex direction={Flex.Direction.VERTICAL} align={Flex.Align.START}>
116
98
<Text variant="text-sm/normal">
117
99
{parse(`moonlight \`${window.moonlight.version}\` on \`${window.moonlight.branch}\``)}
118
100
</Text>
···
123
105
)}
124
106
</Text>
125
107
</Flex>
126
-
</div>
108
+
</Flex>
127
109
);
128
110
}
+6
-1
packages/core-extensions/src/moonbase/webpackModules/ui/extensions/card.tsx
+6
-1
packages/core-extensions/src/moonbase/webpackModules/ui/extensions/card.tsx
···
28
28
import MarkupClasses from "@moonlight-mod/wp/discord/modules/messages/web/Markup.css";
29
29
import BuildOverrideClasses from "@moonlight-mod/wp/discord/modules/build_overrides/web/BuildOverride.css";
30
30
import { MoonbaseSettingsStore } from "@moonlight-mod/wp/moonbase_stores";
31
+
import ErrorBoundary from "@moonlight-mod/wp/common_ErrorBoundary";
31
32
import ExtensionInfo from "./info";
32
33
import Settings from "./settings";
33
34
import { doGenericExtensionPopup, doMissingExtensionPopup } from "./popup";
···
322
323
})}
323
324
</Text>
324
325
)}
325
-
{tab === ExtensionPage.Settings && <Settings ext={ext} />}
326
+
{tab === ExtensionPage.Settings && (
327
+
<ErrorBoundary>
328
+
<Settings ext={ext} />
329
+
</ErrorBoundary>
330
+
)}
326
331
</Flex>
327
332
</div>
328
333
</Card>
+2
-2
packages/core-extensions/src/moonbase/webpackModules/ui/extensions/filterBar.tsx
+2
-2
packages/core-extensions/src/moonbase/webpackModules/ui/extensions/filterBar.tsx
···
234
234
{...props}
235
235
size={Button.Sizes.MIN}
236
236
color={Button.Colors.CUSTOM}
237
-
className={`${ForumsClasses.sortDropdown} moonbase-retry-button ${checkingUpdates ? "moonbase-speen" : ""}`}
237
+
className={`${ForumsClasses.sortDropdown} moonbase-retry-button`}
238
238
innerClassName={ForumsClasses.sortDropdownInner}
239
239
onClick={() => {
240
240
(async () => {
···
249
249
})();
250
250
}}
251
251
>
252
-
<RetryIcon size={"custom"} width={16} />
252
+
<RetryIcon size={"custom"} width={16} className={checkingUpdates ? "moonbase-speen" : ""} />
253
253
</Button>
254
254
)}
255
255
</Tooltip>
+7
-2
packages/core-extensions/src/moonbase/webpackModules/ui/extensions/index.tsx
+7
-2
packages/core-extensions/src/moonbase/webpackModules/ui/extensions/index.tsx
···
15
15
import PanelButton from "@moonlight-mod/wp/discord/components/common/PanelButton";
16
16
17
17
import { MoonbaseSettingsStore } from "@moonlight-mod/wp/moonbase_stores";
18
+
import ErrorBoundary from "@moonlight-mod/wp/common_ErrorBoundary";
18
19
import { ExtensionCompat } from "@moonlight-mod/core/extension/loader";
19
20
import HelpMessage from "../HelpMessage";
20
21
···
144
145
)}
145
146
146
147
{filteredWithUpdates.map((ext) => (
147
-
<ExtensionCard uniqueId={ext.uniqueId} key={ext.uniqueId} selectTag={selectTag} />
148
+
<ErrorBoundary>
149
+
<ExtensionCard uniqueId={ext.uniqueId} key={ext.uniqueId} selectTag={selectTag} />
150
+
</ErrorBoundary>
148
151
))}
149
152
{filteredWithUpdates.length > 0 && filteredWithoutUpdates.length > 0 && (
150
153
<FormDivider className="moonbase-update-divider" />
151
154
)}
152
155
{filteredWithoutUpdates.map((ext) => (
153
-
<ExtensionCard uniqueId={ext.uniqueId} key={ext.uniqueId} selectTag={selectTag} />
156
+
<ErrorBoundary>
157
+
<ExtensionCard uniqueId={ext.uniqueId} key={ext.uniqueId} selectTag={selectTag} />
158
+
</ErrorBoundary>
154
159
))}
155
160
</>
156
161
);
+4
-1
packages/core-extensions/src/moonbase/webpackModules/ui/extensions/settings.tsx
+4
-1
packages/core-extensions/src/moonbase/webpackModules/ui/extensions/settings.tsx
···
33
33
import Flex from "@moonlight-mod/wp/discord/uikit/Flex";
34
34
import MarkupUtils from "@moonlight-mod/wp/discord/modules/markup/MarkupUtils";
35
35
import { MoonbaseSettingsStore } from "@moonlight-mod/wp/moonbase_stores";
36
+
import ErrorBoundary from "@moonlight-mod/wp/common_ErrorBoundary";
36
37
37
38
let GuildSettingsRoleEditClasses: any;
38
39
spacepack
···
377
378
}
378
379
379
380
return (
380
-
<Component value={value} setValue={(value) => MoonbaseSettingsStore.setExtensionConfig(ext.id, name, value)} />
381
+
<ErrorBoundary>
382
+
<Component value={value} setValue={(value) => MoonbaseSettingsStore.setExtensionConfig(ext.id, name, value)} />
383
+
</ErrorBoundary>
381
384
);
382
385
}
383
386
+1
-1
packages/core-extensions/src/moonbase/webpackModules/ui/update.tsx
+1
-1
packages/core-extensions/src/moonbase/webpackModules/ui/update.tsx
···
7
7
import MarkupUtils from "@moonlight-mod/wp/discord/modules/markup/MarkupUtils";
8
8
import Flex from "@moonlight-mod/wp/discord/uikit/Flex";
9
9
import {
10
-
ThemeDarkIcon,
11
10
Button,
12
11
Text,
13
12
ModalRoot,
···
19
18
openModal
20
19
} from "@moonlight-mod/wp/discord/components/common/index";
21
20
import MarkupClasses from "@moonlight-mod/wp/discord/modules/messages/web/Markup.css";
21
+
import ThemeDarkIcon from "@moonlight-mod/wp/moonbase_ThemeDarkIcon";
22
22
23
23
const strings: Record<UpdateState, string> = {
24
24
[UpdateState.Ready]: "A new version of moonlight is available.",
+1
-1
packages/core-extensions/src/moonbase/webpackModules/updates.tsx
+1
-1
packages/core-extensions/src/moonbase/webpackModules/updates.tsx
···
3
3
import Notices from "@moonlight-mod/wp/notices_notices";
4
4
import { MoonlightBranch } from "@moonlight-mod/types";
5
5
import React from "@moonlight-mod/wp/react";
6
-
import { ThemeDarkIcon } from "@moonlight-mod/wp/discord/components/common/index";
6
+
import ThemeDarkIcon from "@moonlight-mod/wp/moonbase_ThemeDarkIcon";
7
7
8
8
function plural(str: string, num: number) {
9
9
return `${str}${num > 1 ? "s" : ""}`;
+5
packages/core-extensions/src/moonbase/wp.d.ts
+5
packages/core-extensions/src/moonbase/wp.d.ts
···
5
5
declare module "@moonlight-mod/wp/moonbase_stores" {
6
6
export * from "core-extensions/src/moonbase/webpackModules/stores";
7
7
}
8
+
9
+
declare module "@moonlight-mod/wp/moonbase_ThemeDarkIcon" {
10
+
import ThemeDarkIcon from "core-extensions/src/moonbase/webpackModules/ThemeDarkIcon";
11
+
export = ThemeDarkIcon;
12
+
}
+13
-1
packages/core-extensions/src/nativeFixes/host.ts
+13
-1
packages/core-extensions/src/nativeFixes/host.ts
···
29
29
app.commandLine.appendSwitch("disable-background-timer-throttling");
30
30
}
31
31
32
+
if (moonlightHost.getConfigOption<boolean>("nativeFixes", "vulkan") ?? false) {
33
+
enabledFeatures.push("Vulkan", "DefaultANGLEVulkan", "VulkanFromANGLE");
34
+
}
35
+
32
36
if (process.platform === "linux") {
33
37
if (moonlightHost.getConfigOption<boolean>("nativeFixes", "linuxAutoscroll") ?? false) {
34
38
app.commandLine.appendSwitch("enable-blink-features", "MiddleClickAutoscroll");
···
37
41
if (moonlightHost.getConfigOption<boolean>("nativeFixes", "linuxSpeechDispatcher") ?? true) {
38
42
app.commandLine.appendSwitch("enable-speech-dispatcher");
39
43
}
44
+
45
+
if (moonlightHost.getConfigOption<boolean>("nativeFixes", "linuxHevcSupport") ?? true) {
46
+
enabledFeatures.push("PlatformHEVCDecoderSupport");
47
+
}
40
48
}
41
49
42
50
// NOTE: Only tested if this appears on Windows, it should appear on all when
43
51
// hardware acceleration is disabled
44
52
const noAccel = app.commandLine.hasSwitch("disable-gpu-compositing");
45
53
if ((moonlightHost.getConfigOption<boolean>("nativeFixes", "vaapi") ?? true) && !noAccel) {
46
-
if (process.platform === "linux")
54
+
if (process.platform === "linux") {
47
55
// These will eventually be renamed https://source.chromium.org/chromium/chromium/src/+/5482210941a94d70406b8da962426e4faca7fce4
48
56
enabledFeatures.push("VaapiVideoEncoder", "VaapiVideoDecoder", "VaapiVideoDecodeLinuxGL");
57
+
58
+
if (moonlightHost.getConfigOption<boolean>("nativeFixes", "vaapiIgnoreDriverChecks") ?? false)
59
+
enabledFeatures.push("VaapiIgnoreDriverChecks");
60
+
}
49
61
}
50
62
51
63
app.commandLine.appendSwitch("enable-features", [...new Set(enabledFeatures)].join(","));
+21
packages/core-extensions/src/nativeFixes/manifest.json
+21
packages/core-extensions/src/nativeFixes/manifest.json
···
23
23
"type": "boolean",
24
24
"default": true
25
25
},
26
+
"vulkan": {
27
+
"advice": "restart",
28
+
"displayName": "Enable Vulkan renderer",
29
+
"description": "Uses the Vulkan backend for rendering",
30
+
"type": "boolean",
31
+
"default": false
32
+
},
26
33
"linuxAutoscroll": {
27
34
"advice": "restart",
28
35
"displayName": "Enable middle click autoscroll on Linux",
···
44
51
"type": "boolean",
45
52
"default": true
46
53
},
54
+
"vaapiIgnoreDriverChecks": {
55
+
"advice": "restart",
56
+
"displayName": "Ignore VAAPI driver checks on Linux",
57
+
"description": "Forces hardware video acceleration on some graphics drivers at the cost of stability. Has no effect on other operating systems",
58
+
"type": "boolean",
59
+
"default": false
60
+
},
47
61
"linuxUpdater": {
48
62
"advice": "restart",
49
63
"displayName": "Linux Updater",
50
64
"description": "Actually implements updating Discord on Linux. Has no effect on other operating systems",
51
65
"type": "boolean",
52
66
"default": false
67
+
},
68
+
"linuxHevcSupport": {
69
+
"advice": "restart",
70
+
"displayName": "HEVC support on Linux",
71
+
"description": "You might also need to enable Vulkan renderer. Has no effect on other operating systems",
72
+
"type": "boolean",
73
+
"default": true
53
74
}
54
75
},
55
76
"apiLevel": 2
+83
-15
packages/core-extensions/src/quietLoggers/index.ts
+83
-15
packages/core-extensions/src/quietLoggers/index.ts
···
18
18
{
19
19
find: '("GatewaySocket")',
20
20
replace: {
21
-
match: /.\.(info|log)(\(.+?\))(;|,)/g,
22
-
replacement: (_, type, body, trail) => `(()=>{})${body}${trail}`
21
+
match: /\i\.(log|info)\(/g,
22
+
replacement: "(()=>{})("
23
+
}
24
+
},
25
+
{
26
+
find: '"_connect called with already existing websocket"',
27
+
replace: {
28
+
match: /\i\.(log|info|verbose)\(/g,
29
+
replacement: "(()=>{})("
23
30
}
24
31
}
25
32
];
···
30
37
// Patches to simply remove a logger call
31
38
const stubPatches = [
32
39
// "sh" is not a valid locale.
33
-
["is not a valid locale", /(.)\.error\(""\.concat\((.)," is not a valid locale\."\)\)/g],
34
-
['"[BUILD INFO] Release Channel: "', /new .{1,2}\.Z\(\)\.log\("\[BUILD INFO\] Release Channel: ".+?\)\),/],
35
-
['.APP_NATIVE_CRASH,"Storage"', /console\.log\("AppCrashedFatalReport lastCrash:",.,.\);/],
36
-
['.APP_NATIVE_CRASH,"Storage"', 'console.log("AppCrashedFatalReport: getLastCrash not supported.");'],
37
-
['"[NATIVE INFO] ', /new .{1,2}\.Z\(\)\.log\("\[NATIVE INFO] .+?\)\);/],
38
-
['"Spellchecker"', /.\.info\("Switching to ".+?"\(unavailable\)"\);?/g],
39
-
['throw Error("Messages are still loading.");', /console\.warn\("Unsupported Locale",.\),/],
40
-
["}_dispatchWithDevtools(", /.\.totalTime>.{1,2}&&.\.verbose\(.+?\);/],
41
-
['"NativeDispatchUtils"', /null==.&&.\.warn\("Tried getting Dispatch instance before instantiated"\),/],
42
-
['("DatabaseManager")', /.\.log\("removing database \(user: ".+?\)\),/],
40
+
["is not a valid locale", /void \i\.error\(""\.concat\(\i," is not a valid locale\."\)\)/g],
41
+
['"[BUILD INFO] Release Channel: "', /new \i\.Z\(\)\.log\("\[BUILD INFO\] Release Channel: ".+?\)\),/],
42
+
['.APP_NATIVE_CRASH,"Storage"', /console\.log\("AppCrashedFatalReport lastCrash:",\i,\i\);/],
43
+
['.APP_NATIVE_CRASH,"Storage"', 'void console.log("AppCrashedFatalReport: getLastCrash not supported.")'],
44
+
['"[NATIVE INFO] ', /new \i\.Z\(\)\.log\("\[NATIVE INFO] .+?\)\);/],
45
+
['"Spellchecker"', /\i\.info\("Switching to ".+?"\(unavailable\)"\);?/g],
46
+
['throw Error("Messages are still loading.");', /console\.warn\("Unsupported Locale",\i\),/],
47
+
["}_dispatchWithDevtools(", /\i\.totalTime>\i&&\i\.verbose\(.+?\);/],
48
+
['"NativeDispatchUtils"', /null==\i&&\i\.warn\("Tried getting Dispatch instance before instantiated"\),/],
43
49
[
44
50
'"Dispatch.dispatch(...): Cannot dispatch in the middle of a dispatch. Action: "',
45
-
/.\.has\(.\.type\)&&.\.log\(.+?\.type\)\),/
51
+
/\i\.has\(\i\.type\)&&\i\.log\(.+?\.type\)\),/
46
52
],
47
-
['console.warn("Window state not initialized"', /console\.warn\("Window state not initialized",.\),/]
53
+
['console.warn("Window state not initialized"', /console\.warn\("Window state not initialized",\i\),/],
54
+
['.name="MaxListenersExceededWarning",', /(?<=\.length),\i\(\i\)/],
55
+
[
56
+
'"The answer for life the universe and everything is:"',
57
+
/\i\.info\("The answer for life the universe and everything is:",\i\),/
58
+
],
59
+
[
60
+
'"isLibdiscoreBlockedDomainsEnabled called but libdiscore is not loaded"',
61
+
/,\i\.verbose\("isLibdiscoreBlockedDomainsEnabledThisSession: ".concat\(\i\)\)/
62
+
],
63
+
[
64
+
'"Unable to determine render window for element"',
65
+
/console\.warn\("Unable to determine render window for element",\i\),/
66
+
],
67
+
[
68
+
'"Unable to determine render window for element"',
69
+
/console\.warn\('Unable to find element constructor "'\.concat\(\i,'" in'\),\i\),/
70
+
],
71
+
[
72
+
'"[PostMessageTransport] Protocol error: event data should be an Array!"',
73
+
/void console\.warn\("\[PostMessageTransport] Protocol error: event data should be an Array!"\)/
74
+
],
75
+
[
76
+
'("ComponentDispatchUtils")',
77
+
/new \i\.Z\("ComponentDispatchUtils"\)\.warn\("ComponentDispatch\.resubscribe: Resubscribe without existing subscription",\i\),/
78
+
]
79
+
];
80
+
81
+
const stripLoggers = [
82
+
'("OverlayRenderStore")',
83
+
'("FetchBlockedDomain")',
84
+
'="UserSettingsProtoLastWriteTimes",',
85
+
'("MessageActionCreators")',
86
+
'("Routing/Utils")',
87
+
'("DatabaseManager")',
88
+
'("KeyboardLayoutMapUtils")',
89
+
'("ChannelMessages")',
90
+
'("MessageQueue")',
91
+
'("RTCLatencyTestManager")',
92
+
'("OverlayStoreV3")',
93
+
'("OverlayBridgeStore")',
94
+
'("AuthenticationStore")',
95
+
'("ConnectionStore")',
96
+
'"Dispatched INITIAL_GUILD "',
97
+
'"handleIdentify called"',
98
+
'("Spotify")'
48
99
];
49
100
50
101
const simplePatches = [
···
56
107
{
57
108
find: ".Messages.SELF_XSS_HEADER",
58
109
replace: {
59
-
match: /\(null!=.{1,2}&&"0\.0\.0"===.{1,2}\.remoteApp\.getVersion\(\)\)/,
110
+
match: /\(null!=\i&&"0\.0\.0"===\i\.remoteApp\.getVersion\(\)\)/,
60
111
replacement: "(true)"
61
112
}
62
113
},
114
+
{
115
+
find: '("ComponentDispatchUtils")',
116
+
replace: {
117
+
match:
118
+
/new \i\.Z\("ComponentDispatchUtils"\)\.warn\("ComponentDispatch\.subscribe: Attempting to add a duplicate listener",\i\)/,
119
+
replacement: "void 0"
120
+
},
121
+
prerequisite: notXssDefensesOnly
122
+
},
63
123
// Highlight.js deprecation warnings
64
124
{
65
125
find: "Deprecated as of",
···
92
152
replace: {
93
153
match: patch[0],
94
154
replacement: patch[1]
155
+
},
156
+
prerequisite: notXssDefensesOnly
157
+
})),
158
+
...stripLoggers.map((find) => ({
159
+
find,
160
+
replace: {
161
+
match: /(\i|this\.logger)\.(log|warn|error|info|verbose)\(/g,
162
+
replacement: "(()=>{})("
95
163
},
96
164
prerequisite: notXssDefensesOnly
97
165
}))
+1
-1
packages/core-extensions/src/settings/index.ts
+1
-1
packages/core-extensions/src/settings/index.ts
···
12
12
{
13
13
find: 'navId:"user-settings-cog",',
14
14
replace: {
15
-
match: /children:\[(.)\.map\(.+?\),children:.\((.)\)/,
15
+
match: /children:\[(\i)\.map\(.+?\),.*?children:\i\((\i)\)/,
16
16
replacement: (orig, sections, section) =>
17
17
`${orig.replace(
18
18
/Object\.values\(.\..+?\)/,
+4
-2
packages/core-extensions/src/settings/webpackModules/settings.ts
+4
-2
packages/core-extensions/src/settings/webpackModules/settings.ts
···
1
1
import { SettingsSection, Settings as SettingsType } from "@moonlight-mod/types/coreExtensions/settings";
2
+
import UserSettingsModalActionCreators from "@moonlight-mod/wp/discord/actions/UserSettingsModalActionCreators";
2
3
3
4
export const Settings: SettingsType = {
4
5
ourSections: [],
5
6
sectionNames: [],
6
7
sectionMenuItems: {},
7
8
8
-
addSection: (section, label, element, color = null, pos, notice) => {
9
+
addSection: (section, label, element, color = null, pos, notice, onClick) => {
9
10
const data: SettingsSection = {
10
11
section,
11
12
label,
12
13
color,
13
14
element,
14
15
pos: pos ?? -4,
15
-
notice: notice
16
+
notice: notice,
17
+
onClick: onClick ?? (() => UserSettingsModalActionCreators.open(section))
16
18
};
17
19
18
20
Settings.ourSections.push(data);
+1
-1
packages/core-extensions/src/spacepack/webpackModules/spacepack.ts
+1
-1
packages/core-extensions/src/spacepack/webpackModules/spacepack.ts
+4
-1
packages/core-extensions/tsconfig.json
+4
-1
packages/core-extensions/tsconfig.json
+10
-3
packages/injector/package.json
+10
-3
packages/injector/package.json
···
1
1
{
2
2
"name": "@moonlight-mod/injector",
3
3
"private": true,
4
+
"engines": {
5
+
"node": ">=22",
6
+
"pnpm": ">=10",
7
+
"npm": "pnpm",
8
+
"yarn": "pnpm"
9
+
},
4
10
"dependencies": {
5
-
"@moonlight-mod/types": "workspace:*",
6
-
"@moonlight-mod/core": "workspace:*"
7
-
}
11
+
"@moonlight-mod/core": "workspace:*",
12
+
"@moonlight-mod/types": "workspace:*"
13
+
},
14
+
"engineStrict": true
8
15
}
+8
-1
packages/node-preload/package.json
+8
-1
packages/node-preload/package.json
···
1
1
{
2
2
"name": "@moonlight-mod/node-preload",
3
3
"private": true,
4
+
"engines": {
5
+
"node": ">=22",
6
+
"pnpm": ">=10",
7
+
"npm": "pnpm",
8
+
"yarn": "pnpm"
9
+
},
4
10
"dependencies": {
5
11
"@moonlight-mod/core": "workspace:*",
6
12
"@moonlight-mod/types": "workspace:*"
7
-
}
13
+
},
14
+
"engineStrict": true
8
15
}
+4
-1
packages/node-preload/tsconfig.json
+4
-1
packages/node-preload/tsconfig.json
+14
-7
packages/types/package.json
+14
-7
packages/types/package.json
···
1
1
{
2
2
"name": "@moonlight-mod/types",
3
-
"version": "1.3.12",
4
-
"main": "./src/index.ts",
5
-
"types": "./src/index.ts",
3
+
"version": "1.3.17",
6
4
"exports": {
7
5
".": "./src/index.ts",
8
6
"./import": "./src/import.d.ts",
9
7
"./*": "./src/*.ts"
10
8
},
9
+
"main": "./src/index.ts",
10
+
"types": "./src/index.ts",
11
+
"engineStrict": false,
12
+
"engines": {
13
+
"node": ">=22",
14
+
"pnpm": ">=10",
15
+
"npm": "pnpm",
16
+
"yarn": "pnpm"
17
+
},
11
18
"dependencies": {
12
-
"@moonlight-mod/lunast": "^1.0.0",
13
-
"@moonlight-mod/mappings": "^1.1.18",
14
-
"@moonlight-mod/moonmap": "^1.0.4",
19
+
"@moonlight-mod/lunast": "^1.0.1",
20
+
"@moonlight-mod/mappings": "^1.1.25",
21
+
"@moonlight-mod/moonmap": "^1.0.5",
15
22
"@types/react": "^18.3.10",
16
-
"csstype": "^3.1.2",
23
+
"csstype": "^3.1.3",
17
24
"standalone-electron-types": "^1.0.0"
18
25
}
19
26
}
+22
packages/types/src/coreExtensions/common.ts
+22
packages/types/src/coreExtensions/common.ts
···
1
+
import type { IconProps, IconSize } from "@moonlight-mod/mappings/discord/components/common/index";
2
+
1
3
export type ErrorBoundaryProps = React.PropsWithChildren<{
2
4
noop?: boolean;
3
5
fallback?: React.FC<any>;
···
9
11
error?: Error;
10
12
componentStack?: string;
11
13
};
14
+
15
+
export type ErrorBoundary = React.ComponentClass<ErrorBoundaryProps, ErrorBoundaryState>;
16
+
17
+
export type ParsedIconProps = {
18
+
width: number;
19
+
height: number;
20
+
fill: string;
21
+
className: string;
22
+
};
23
+
24
+
export interface Icons {
25
+
/**
26
+
* Parse icon props into their actual width/height.
27
+
* @param props The icon props
28
+
*/
29
+
parseProps(props?: IconProps): ParsedIconProps;
30
+
}
31
+
32
+
// Re-export so extension developers don't need to depend on mappings
33
+
export type { IconProps, IconSize };
+4
-1
packages/types/src/coreExtensions/settings.ts
+4
-1
packages/types/src/coreExtensions/settings.ts
···
16
16
element: React.FunctionComponent;
17
17
pos: number | ((sections: SettingsSection[]) => number);
18
18
notice?: NoticeProps;
19
+
onClick?: () => void;
19
20
_moonlight_submenu?: () => ReactElement | ReactElement[];
20
21
};
21
22
···
32
33
* @param color A color to use for the section
33
34
* @param pos The position in the settings menu to place the section
34
35
* @param notice A notice to display when in the section
36
+
* @param onClick A custom action to execute when clicked from the context menu
35
37
*/
36
38
addSection: (
37
39
section: string,
···
39
41
element: React.FunctionComponent,
40
42
color?: string | null,
41
43
pos?: number | ((sections: SettingsSection[]) => number),
42
-
notice?: NoticeProps
44
+
notice?: NoticeProps,
45
+
onClick?: () => void
43
46
) => void;
44
47
45
48
/**
+4
packages/types/src/discord/require.ts
+4
packages/types/src/discord/require.ts
···
1
1
import { AppPanels } from "../coreExtensions/appPanels";
2
2
import { Commands } from "../coreExtensions/commands";
3
+
import { ErrorBoundary, Icons } from "../coreExtensions/common";
3
4
import { DMList, MemberList, Messages } from "../coreExtensions/componentEditor";
4
5
import { ContextMenu, EvilItemParser } from "../coreExtensions/contextMenu";
5
6
import { Markdown } from "../coreExtensions/markdown";
···
13
14
declare function WebpackRequire(id: "appPanels_appPanels"): AppPanels;
14
15
15
16
declare function WebpackRequire(id: "commands_commands"): Commands;
17
+
18
+
declare function WebpackRequire(id: "common_ErrorBoundary"): ErrorBoundary;
19
+
declare function WebpackRequire(id: "common_icons"): Icons;
16
20
17
21
declare function WebpackRequire(id: "componentEditor_dmList"): DMList;
18
22
declare function WebpackRequire(id: "componentEditor_memberList"): MemberList;
+1
packages/types/src/fs.ts
+1
packages/types/src/fs.ts
+10
-1
packages/types/src/import.d.ts
+10
-1
packages/types/src/import.d.ts
···
10
10
export default commands;
11
11
}
12
12
13
-
declare module "@moonlight-mod/wp/common_ErrorBoundary";
13
+
declare module "@moonlight-mod/wp/common_ErrorBoundary" {
14
+
import { CoreExtensions } from "@moonlight-mod/types";
15
+
const ErrorBoundary: CoreExtensions.Common.ErrorBoundary;
16
+
export = ErrorBoundary;
17
+
}
18
+
declare module "@moonlight-mod/wp/common_icons" {
19
+
import { CoreExtensions } from "@moonlight-mod/types";
20
+
export const icons: CoreExtensions.Common.Icons;
21
+
export default icons;
22
+
}
14
23
declare module "@moonlight-mod/wp/common_stores";
15
24
16
25
declare module "@moonlight-mod/wp/componentEditor_dmList" {
+1
packages/types/src/index.ts
+1
packages/types/src/index.ts
···
32
32
var moonlightNode: MoonlightNode;
33
33
var moonlightNodeSandboxed: MoonlightNodeSandboxed;
34
34
var moonlight: MoonlightWeb;
35
+
var _moonlight_coreExtensionsStr: string;
35
36
36
37
var _moonlightBrowserInit: undefined | (() => Promise<void>);
37
38
var _moonlightWebLoad: undefined | (() => Promise<void>);
+9
-6
packages/types/src/mappings.d.ts
+9
-6
packages/types/src/mappings.d.ts
···
75
75
export default _default;
76
76
}
77
77
78
+
declare module "@moonlight-mod/wp/discord/components/common/Card" {
79
+
import { MappedModules } from "@moonlight-mod/mappings";
80
+
const _default: MappedModules["discord/components/common/Card"]["default"];
81
+
export default _default;
82
+
export const Types: MappedModules["discord/components/common/Card"]["Types"];
83
+
}
84
+
78
85
declare module "@moonlight-mod/wp/discord/components/common/FileUpload" {
79
86
import { MappedModules } from "@moonlight-mod/mappings";
80
87
const _default: MappedModules["discord/components/common/FileUpload"]["default"];
···
130
137
export const error: MappedModules["discord/components/common/HelpMessage.css"]["error"];
131
138
}
132
139
140
+
declare module "@moonlight-mod/wp/discord/components/common/Image" {}
141
+
133
142
declare module "@moonlight-mod/wp/discord/components/common/PanelButton" {
134
143
import { MappedModules } from "@moonlight-mod/mappings";
135
144
const _default: MappedModules["discord/components/common/PanelButton"]["default"];
···
186
195
export const Image: MappedModules["discord/components/common/index"]["Image"];
187
196
export const tokens: MappedModules["discord/components/common/index"]["tokens"];
188
197
export const useVariableSelect: MappedModules["discord/components/common/index"]["useVariableSelect"];
189
-
export const useMultiSelectState: MappedModules["discord/components/common/index"]["useMultiSelectState"];
190
-
export const useSingleSelectState: MappedModules["discord/components/common/index"]["useSingleSelectState"];
191
198
export const useMultiSelect: MappedModules["discord/components/common/index"]["useMultiSelect"];
192
-
export const useSingleSelect: MappedModules["discord/components/common/index"]["useSingleSelect"];
193
199
export const multiSelect: MappedModules["discord/components/common/index"]["multiSelect"];
194
200
export const openModal: MappedModules["discord/components/common/index"]["openModal"];
195
201
export const openModalLazy: MappedModules["discord/components/common/index"]["openModalLazy"];
···
223
229
export const ScienceIcon: MappedModules["discord/components/common/index"]["ScienceIcon"];
224
230
export const ScreenIcon: MappedModules["discord/components/common/index"]["ScreenIcon"];
225
231
export const StarIcon: MappedModules["discord/components/common/index"]["StarIcon"];
226
-
export const ThemeDarkIcon: MappedModules["discord/components/common/index"]["ThemeDarkIcon"];
227
232
export const TrashIcon: MappedModules["discord/components/common/index"]["TrashIcon"];
228
233
export const WarningIcon: MappedModules["discord/components/common/index"]["WarningIcon"];
229
234
export const WindowLaunchIcon: MappedModules["discord/components/common/index"]["WindowLaunchIcon"];
···
612
617
export const closeAllModals: MappedModules["discord/modules/modals/Modals"]["closeAllModals"];
613
618
export const closeAllModalsForContext: MappedModules["discord/modules/modals/Modals"]["closeAllModalsForContext"];
614
619
export const closeModal: MappedModules["discord/modules/modals/Modals"]["closeModal"];
615
-
export const closeModalInAllContexts: MappedModules["discord/modules/modals/Modals"]["closeModalInAllContexts"];
616
620
export const getInteractingModalContext: MappedModules["discord/modules/modals/Modals"]["getInteractingModalContext"];
617
621
export const hasAnyModalOpen: MappedModules["discord/modules/modals/Modals"]["hasAnyModalOpen"];
618
622
export const hasAnyModalOpenSelector: MappedModules["discord/modules/modals/Modals"]["hasAnyModalOpenSelector"];
619
623
export const hasModalOpen: MappedModules["discord/modules/modals/Modals"]["hasModalOpen"];
620
624
export const hasModalOpenSelector: MappedModules["discord/modules/modals/Modals"]["hasModalOpenSelector"];
621
-
export const modalContextFromAppContext: MappedModules["discord/modules/modals/Modals"]["modalContextFromAppContext"];
622
625
export const openModal: MappedModules["discord/modules/modals/Modals"]["openModal"];
623
626
export const openModalLazy: MappedModules["discord/modules/modals/Modals"]["openModalLazy"];
624
627
export const updateModal: MappedModules["discord/modules/modals/Modals"]["updateModal"];
+7
-7
packages/types/tsconfig.json
+7
-7
packages/types/tsconfig.json
···
1
1
{
2
2
"compilerOptions": {
3
-
"target": "es2016",
4
-
"module": "es6",
5
-
"esModuleInterop": true,
6
-
"forceConsistentCasingInFileNames": true,
7
-
"strict": true,
8
-
"moduleResolution": "bundler",
3
+
"target": "ES2016",
9
4
"jsx": "react",
10
-
"declaration": true
5
+
"module": "ES6",
6
+
"moduleResolution": "bundler",
7
+
"strict": true,
8
+
"declaration": true,
9
+
"esModuleInterop": true,
10
+
"forceConsistentCasingInFileNames": true
11
11
},
12
12
"include": ["./src/**/*", "src/index.ts", "./src/import.d.ts"]
13
13
}
+10
-3
packages/web-preload/package.json
+10
-3
packages/web-preload/package.json
···
2
2
"name": "@moonlight-mod/web-preload",
3
3
"private": true,
4
4
"main": "src/index.ts",
5
+
"engineStrict": true,
6
+
"engines": {
7
+
"node": ">=22",
8
+
"pnpm": ">=10",
9
+
"npm": "pnpm",
10
+
"yarn": "pnpm"
11
+
},
5
12
"dependencies": {
6
13
"@moonlight-mod/core": "workspace:*",
7
-
"@moonlight-mod/lunast": "^1.0.0",
8
-
"@moonlight-mod/mappings": "^1.1.18",
9
-
"@moonlight-mod/moonmap": "^1.0.4",
14
+
"@moonlight-mod/lunast": "catalog:prod",
15
+
"@moonlight-mod/mappings": "catalog:prod",
16
+
"@moonlight-mod/moonmap": "catalog:prod",
10
17
"@moonlight-mod/types": "workspace:*"
11
18
}
12
19
}
+4
-1
packages/web-preload/tsconfig.json
+4
-1
packages/web-preload/tsconfig.json
+1183
-727
pnpm-lock.yaml
+1183
-727
pnpm-lock.yaml
···
4
4
autoInstallPeers: true
5
5
excludeLinksFromLockfile: false
6
6
7
+
catalogs:
8
+
dev:
9
+
'@moonlight-mod/eslint-config':
10
+
specifier: github:moonlight-mod/eslint-config
11
+
version: 1.0.1
12
+
'@types/chrome':
13
+
specifier: ^0.0.313
14
+
version: 0.0.313
15
+
'@types/node':
16
+
specifier: ^22.14.0
17
+
version: 22.14.0
18
+
esbuild:
19
+
specifier: ^0.19.3
20
+
version: 0.19.3
21
+
esbuild-copy-static-files:
22
+
specifier: ^0.1.0
23
+
version: 0.1.0
24
+
eslint:
25
+
specifier: ^9.12.0
26
+
version: 9.23.0
27
+
husky:
28
+
specifier: ^8.0.3
29
+
version: 8.0.3
30
+
prettier:
31
+
specifier: ^3.1.0
32
+
version: 3.1.0
33
+
taze:
34
+
specifier: ^19.0.4
35
+
version: 19.0.4
36
+
typescript:
37
+
specifier: ^5.3.3
38
+
version: 5.8.2
39
+
prod:
40
+
'@moonlight-mod/lunast':
41
+
specifier: ^1.0.1
42
+
version: 1.0.1
43
+
'@moonlight-mod/mappings':
44
+
specifier: ^1.1.25
45
+
version: 1.1.25
46
+
'@moonlight-mod/moonmap':
47
+
specifier: ^1.0.5
48
+
version: 1.0.5
49
+
'@zenfs/core':
50
+
specifier: ^2.0.0
51
+
version: 2.0.0
52
+
'@zenfs/dom':
53
+
specifier: ^1.1.3
54
+
version: 1.1.6
55
+
microdiff:
56
+
specifier: ^1.5.0
57
+
version: 1.5.0
58
+
nanotar:
59
+
specifier: ^0.1.1
60
+
version: 0.1.1
61
+
7
62
importers:
8
63
9
64
.:
10
65
devDependencies:
11
66
'@moonlight-mod/eslint-config':
12
-
specifier: github:moonlight-mod/eslint-config
13
-
version: https://codeload.github.com/moonlight-mod/eslint-config/tar.gz/e262ac24e1a0955a9b3e0d66da247a0a8c0446c9(eslint@9.12.0)(prettier@3.1.0)(typescript@5.3.2)
67
+
specifier: catalog:dev
68
+
version: https://codeload.github.com/moonlight-mod/eslint-config/tar.gz/e262ac24e1a0955a9b3e0d66da247a0a8c0446c9(@types/eslint@9.6.1)(eslint@9.23.0(jiti@2.4.2))(prettier@3.1.0)(typescript@5.8.2)
69
+
'@types/node':
70
+
specifier: catalog:dev
71
+
version: 22.14.0
14
72
esbuild:
15
-
specifier: ^0.19.3
73
+
specifier: catalog:dev
16
74
version: 0.19.3
17
75
esbuild-copy-static-files:
18
-
specifier: ^0.1.0
76
+
specifier: catalog:dev
19
77
version: 0.1.0
20
78
eslint:
21
-
specifier: ^9.12.0
22
-
version: 9.12.0
79
+
specifier: catalog:dev
80
+
version: 9.23.0(jiti@2.4.2)
23
81
husky:
24
-
specifier: ^8.0.3
82
+
specifier: catalog:dev
25
83
version: 8.0.3
26
84
prettier:
27
-
specifier: ^3.1.0
85
+
specifier: catalog:dev
28
86
version: 3.1.0
87
+
taze:
88
+
specifier: catalog:dev
89
+
version: 19.0.4
29
90
typescript:
30
-
specifier: ^5.3.2
31
-
version: 5.3.2
91
+
specifier: catalog:dev
92
+
version: 5.8.2
32
93
33
94
packages/browser:
34
95
dependencies:
···
42
103
specifier: workspace:*
43
104
version: link:../web-preload
44
105
'@zenfs/core':
45
-
specifier: ^1.8.8
46
-
version: 1.8.8
106
+
specifier: catalog:prod
107
+
version: 2.0.0
47
108
'@zenfs/dom':
48
-
specifier: ^1.1.3
49
-
version: 1.1.3(@zenfs/core@1.8.8)
109
+
specifier: catalog:prod
110
+
version: 1.1.6(@zenfs/core@2.0.0)(utilium@1.10.1)
111
+
devDependencies:
112
+
'@types/chrome':
113
+
specifier: catalog:dev
114
+
version: 0.0.313
50
115
51
116
packages/core:
52
117
dependencies:
···
63
128
specifier: workspace:*
64
129
version: link:../types
65
130
microdiff:
66
-
specifier: ^1.5.0
131
+
specifier: catalog:prod
67
132
version: 1.5.0
68
133
nanotar:
69
-
specifier: ^0.1.1
134
+
specifier: catalog:prod
70
135
version: 0.1.1
71
136
72
137
packages/injector:
···
90
155
packages/types:
91
156
dependencies:
92
157
'@moonlight-mod/lunast':
93
-
specifier: ^1.0.0
94
-
version: 1.0.0
158
+
specifier: ^1.0.1
159
+
version: 1.0.1
95
160
'@moonlight-mod/mappings':
96
-
specifier: ^1.1.18
97
-
version: 1.1.18(@moonlight-mod/lunast@1.0.0)(@moonlight-mod/moonmap@1.0.4)
161
+
specifier: ^1.1.25
162
+
version: 1.1.25(@moonlight-mod/lunast@1.0.1)(@moonlight-mod/moonmap@1.0.5)
98
163
'@moonlight-mod/moonmap':
99
-
specifier: ^1.0.4
100
-
version: 1.0.4
164
+
specifier: ^1.0.5
165
+
version: 1.0.5
101
166
'@types/react':
102
167
specifier: ^18.3.10
103
-
version: 18.3.10
168
+
version: 18.3.20
104
169
csstype:
105
-
specifier: ^3.1.2
106
-
version: 3.1.2
170
+
specifier: ^3.1.3
171
+
version: 3.1.3
107
172
standalone-electron-types:
108
173
specifier: ^1.0.0
109
174
version: 1.0.0
···
114
179
specifier: workspace:*
115
180
version: link:../core
116
181
'@moonlight-mod/lunast':
117
-
specifier: ^1.0.0
118
-
version: 1.0.0
182
+
specifier: catalog:prod
183
+
version: 1.0.1
119
184
'@moonlight-mod/mappings':
120
-
specifier: ^1.1.18
121
-
version: 1.1.18(@moonlight-mod/lunast@1.0.0)(@moonlight-mod/moonmap@1.0.4)
185
+
specifier: catalog:prod
186
+
version: 1.1.25(@moonlight-mod/lunast@1.0.1)(@moonlight-mod/moonmap@1.0.5)
122
187
'@moonlight-mod/moonmap':
123
-
specifier: ^1.0.4
124
-
version: 1.0.4
188
+
specifier: catalog:prod
189
+
version: 1.0.5
125
190
'@moonlight-mod/types':
126
191
specifier: workspace:*
127
192
version: link:../types
···
131
196
'@aashutoshrathi/word-wrap@1.2.6':
132
197
resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
133
198
engines: {node: '>=0.10.0'}
199
+
200
+
'@antfu/ni@24.3.0':
201
+
resolution: {integrity: sha512-wBSav4mBxvHEW9RbdSo1SWLQ6MAlT0Dc423weC58yOWqW4OcMvtnNDdDrxOZeJ88fEIyPK93gDUWIelBxzSf8g==}
202
+
hasBin: true
134
203
135
204
'@esbuild/android-arm64@0.19.3':
136
205
resolution: {integrity: sha512-w+Akc0vv5leog550kjJV9Ru+MXMR2VuMrui3C61mnysim0gkFCPOUTAfzTP0qX+HpN9Syu3YA3p1hf3EPqObRw==}
···
264
333
cpu: [x64]
265
334
os: [win32]
266
335
267
-
'@eslint-community/eslint-utils@4.4.0':
268
-
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
336
+
'@eslint-community/eslint-utils@4.5.1':
337
+
resolution: {integrity: sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==}
269
338
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
270
339
peerDependencies:
271
340
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
272
341
273
-
'@eslint-community/regexpp@4.11.1':
274
-
resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==}
342
+
'@eslint-community/regexpp@4.12.1':
343
+
resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
275
344
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
276
345
277
-
'@eslint/config-array@0.18.0':
278
-
resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==}
346
+
'@eslint/config-array@0.19.2':
347
+
resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==}
348
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
349
+
350
+
'@eslint/config-helpers@0.2.1':
351
+
resolution: {integrity: sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==}
279
352
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
280
353
281
-
'@eslint/core@0.6.0':
282
-
resolution: {integrity: sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==}
354
+
'@eslint/core@0.12.0':
355
+
resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==}
283
356
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
284
357
285
-
'@eslint/eslintrc@3.1.0':
286
-
resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==}
358
+
'@eslint/core@0.13.0':
359
+
resolution: {integrity: sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==}
360
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
361
+
362
+
'@eslint/eslintrc@3.3.1':
363
+
resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
287
364
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
288
365
289
-
'@eslint/js@9.12.0':
290
-
resolution: {integrity: sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==}
366
+
'@eslint/js@9.23.0':
367
+
resolution: {integrity: sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw==}
291
368
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
292
369
293
-
'@eslint/object-schema@2.1.4':
294
-
resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==}
370
+
'@eslint/object-schema@2.1.6':
371
+
resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
295
372
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
296
373
297
-
'@eslint/plugin-kit@0.2.0':
298
-
resolution: {integrity: sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==}
374
+
'@eslint/plugin-kit@0.2.8':
375
+
resolution: {integrity: sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==}
299
376
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
300
377
301
-
'@humanfs/core@0.19.0':
302
-
resolution: {integrity: sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==}
378
+
'@humanfs/core@0.19.1':
379
+
resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
303
380
engines: {node: '>=18.18.0'}
304
381
305
-
'@humanfs/node@0.16.5':
306
-
resolution: {integrity: sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==}
382
+
'@humanfs/node@0.16.6':
383
+
resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
307
384
engines: {node: '>=18.18.0'}
308
385
309
386
'@humanwhocodes/module-importer@1.0.1':
···
314
391
resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
315
392
engines: {node: '>=18.18'}
316
393
394
+
'@humanwhocodes/retry@0.4.2':
395
+
resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==}
396
+
engines: {node: '>=18.18'}
397
+
317
398
'@moonlight-mod/eslint-config@https://codeload.github.com/moonlight-mod/eslint-config/tar.gz/e262ac24e1a0955a9b3e0d66da247a0a8c0446c9':
318
399
resolution: {tarball: https://codeload.github.com/moonlight-mod/eslint-config/tar.gz/e262ac24e1a0955a9b3e0d66da247a0a8c0446c9}
319
400
version: 1.0.1
···
321
402
eslint: '>= 9'
322
403
typescript: '>= 5.3'
323
404
324
-
'@moonlight-mod/lunast@1.0.0':
325
-
resolution: {integrity: sha512-kJgf41K12i6/2LbXK97CNO+pNO7ADGh9N4bCQcOPwosocKMcwKHDEZUgPqeihNshY3c3AEW1LiyXjlsl24PdDw==}
405
+
'@moonlight-mod/lunast@1.0.1':
406
+
resolution: {integrity: sha512-K3vxzDlfFuYKjciIW2FMlcZ1qrrkAGDGpSBlNqYGtJ0sMt9bRCd2lpSpg6AX/giSljDtmAUXa/5mOfUoDQxjBA==}
326
407
327
-
'@moonlight-mod/mappings@1.1.18':
328
-
resolution: {integrity: sha512-aPh080zi2xEBKhBEnXUuPkIjVVhX0RrXFZ5lvMHLuaEOl4vTvaC8PG56558ArfbUof1VMy3j2wduT4cubn3w2A==}
408
+
'@moonlight-mod/mappings@1.1.25':
409
+
resolution: {integrity: sha512-bgnSN9H/IBdMGxGev6RQKXuzhQxwo1090NhIDHnflguZnjiu2pg/usPfh76bqyhxRuX4SS7tiZSNTwBoSflCLg==}
410
+
engines: {node: '>=22', npm: pnpm, pnpm: '>=10', yarn: pnpm}
329
411
peerDependencies:
330
-
'@moonlight-mod/lunast': ^1.0.0
331
-
'@moonlight-mod/moonmap': ^1.0.4
412
+
'@moonlight-mod/lunast': ^1.0.1
413
+
'@moonlight-mod/moonmap': ^1.0.5
332
414
333
-
'@moonlight-mod/moonmap@1.0.4':
334
-
resolution: {integrity: sha512-NES5a+ZSfgyRBZ7pBL8PZL40Au5vTDskvC/Gqx0bs3woikkkdjbZiW9RPypwUQqzdBDIP//ga+xF9UhKSADdLw==}
415
+
'@moonlight-mod/moonmap@1.0.5':
416
+
resolution: {integrity: sha512-Fdpxj8ghdulKB6TlTnchlCPey2YUKgEf1chuO1ofOIcvlqnVPBcQwSf2S80naOUQpXCDo4dQ+LWSE2fmhdDiiw==}
335
417
336
418
'@nodelib/fs.scandir@2.1.5':
337
419
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
···
345
427
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
346
428
engines: {node: '>= 8'}
347
429
348
-
'@pkgr/core@0.1.1':
349
-
resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==}
430
+
'@pkgr/core@0.2.0':
431
+
resolution: {integrity: sha512-vsJDAkYR6qCPu+ioGScGiMYR7LvZYIXh/dlQeviqoTWNCVfKTLYD/LkNWH4Mxsv2a5vpIRc77FN5DnmK1eBggQ==}
350
432
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
351
433
434
+
'@quansync/fs@0.1.2':
435
+
resolution: {integrity: sha512-ezIadUb1aFhwJLd++WVqVpi9rnlX8vnd4ju7saPhwLHJN1mJgOv0puePTGV+FbtSnWtwoHDT8lAm4kagDZmpCg==}
436
+
engines: {node: '>=20.0.0'}
437
+
352
438
'@types/chroma-js@3.1.0':
353
439
resolution: {integrity: sha512-Uwl3SOtUkbQ6Ye6ZYu4q4xdLGBzmY839sEHYtOT7i691neeyd+7fXWT5VIkcUSfNwIFrIjQutNYQn9h4q5HFvg==}
354
440
441
+
'@types/chrome@0.0.313':
442
+
resolution: {integrity: sha512-9R5T7gTaYZhkxlu+Ho4wk9FL+y/werWQY2yjGWSqCuiTsqS7nL/BE5UMTP6rU7J+oIG2FRKqrEycHhJATeltVA==}
443
+
444
+
'@types/eslint@9.6.1':
445
+
resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==}
446
+
355
447
'@types/estree-jsx@1.0.5':
356
448
resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
357
449
358
450
'@types/estree@1.0.6':
359
451
resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
360
452
453
+
'@types/estree@1.0.7':
454
+
resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
455
+
361
456
'@types/fbemitter@2.0.35':
362
457
resolution: {integrity: sha512-Xem6d7qUfmouCHntCrRYgDBwbf+WWRd6G+7WEFlEZFZ67LZXiYRvT2LV8wcZa6mIaAil95+ABQdKgB6hPIsnng==}
363
458
459
+
'@types/filesystem@0.0.36':
460
+
resolution: {integrity: sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA==}
461
+
462
+
'@types/filewriter@0.0.33':
463
+
resolution: {integrity: sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==}
464
+
364
465
'@types/flux@3.1.14':
365
466
resolution: {integrity: sha512-WRXN0kQPCnqxN0/PgNgc7WBF6c8rbSHsEep3/qBLpsQ824RONdOmTs0TV7XhIW2GDNRAHO2CqCgAFLR5PChosw==}
366
467
468
+
'@types/har-format@1.2.16':
469
+
resolution: {integrity: sha512-fluxdy7ryD3MV6h8pTfTYpy/xQzCFC7m89nOH9y94cNqJ1mDIDPut7MnRHI3F6qRmh/cT2fUjG1MLdCNb4hE9A==}
470
+
367
471
'@types/highlightjs@9.12.6':
368
472
resolution: {integrity: sha512-Qfd1DUrwE851Hc3tExADJY4qY8yeZMt06Xw9AJm/UtpneepJS3MZY29c33BY0wP899veaaHD4gZzYiSuQm84Fg==}
369
473
···
376
480
'@types/node@18.17.17':
377
481
resolution: {integrity: sha512-cOxcXsQ2sxiwkykdJqvyFS+MLQPLvIdwh5l6gNg8qF6s+C7XSkEWOZjK+XhUZd+mYvHV/180g2cnCcIl4l06Pw==}
378
482
379
-
'@types/node@22.10.7':
380
-
resolution: {integrity: sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==}
483
+
'@types/node@22.13.6':
484
+
resolution: {integrity: sha512-GYmF65GI7417CpZXsEXMjT8goQQDnpRnJnDw6jIYa+le3V/lMazPZ4vZmK1B/9R17fh2VLr2zuy9d/h5xgrLAg==}
485
+
486
+
'@types/node@22.14.0':
487
+
resolution: {integrity: sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA==}
381
488
382
489
'@types/platform@1.3.6':
383
490
resolution: {integrity: sha512-ZmSaqHuvzv+jC232cFoz2QqPUkaj6EvMmCrWcx3WRr7xTPVFCMUOTcOq8m2d+Zw1iKRc1kDiaA+jtNrV0hkVew==}
···
385
492
'@types/prop-types@15.7.13':
386
493
resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==}
387
494
388
-
'@types/react@18.3.10':
389
-
resolution: {integrity: sha512-02sAAlBnP39JgXwkAq3PeU9DVaaGpZyF3MGcC0MKgQVkZor5IiiDAipVaxQHtDJAmO4GIy/rVBy/LzVj76Cyqg==}
390
-
391
-
'@types/readable-stream@4.0.15':
392
-
resolution: {integrity: sha512-oAZ3kw+kJFkEqyh7xORZOku1YAKvsFTogRY8kVl4vHpEKiDkfnSA/My8haRE7fvmix5Zyy+1pwzOi7yycGLBJw==}
495
+
'@types/react@18.3.20':
496
+
resolution: {integrity: sha512-IPaCZN7PShZK/3t6Q87pfTkRm6oLTd4vztyoj+cbHUF1g3FfVb2tFIL79uCRKEfv16AhqDMBywP2VW3KIZUvcg==}
393
497
394
-
'@typescript-eslint/eslint-plugin@8.8.1':
395
-
resolution: {integrity: sha512-xfvdgA8AP/vxHgtgU310+WBnLB4uJQ9XdyP17RebG26rLtDrQJV3ZYrcopX91GrHmMoH8bdSwMRh2a//TiJ1jQ==}
498
+
'@typescript-eslint/eslint-plugin@8.29.0':
499
+
resolution: {integrity: sha512-PAIpk/U7NIS6H7TEtN45SPGLQaHNgB7wSjsQV/8+KYokAb2T/gloOA/Bee2yd4/yKVhPKe5LlaUGhAZk5zmSaQ==}
396
500
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
397
501
peerDependencies:
398
502
'@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
399
503
eslint: ^8.57.0 || ^9.0.0
400
-
typescript: '*'
401
-
peerDependenciesMeta:
402
-
typescript:
403
-
optional: true
504
+
typescript: '>=4.8.4 <5.9.0'
404
505
405
-
'@typescript-eslint/parser@8.8.1':
406
-
resolution: {integrity: sha512-hQUVn2Lij2NAxVFEdvIGxT9gP1tq2yM83m+by3whWFsWC+1y8pxxxHUFE1UqDu2VsGi2i6RLcv4QvouM84U+ow==}
506
+
'@typescript-eslint/parser@8.29.0':
507
+
resolution: {integrity: sha512-8C0+jlNJOwQso2GapCVWWfW/rzaq7Lbme+vGUFKE31djwNncIpgXD7Cd4weEsDdkoZDjH0lwwr3QDQFuyrMg9g==}
407
508
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
408
509
peerDependencies:
409
510
eslint: ^8.57.0 || ^9.0.0
410
-
typescript: '*'
411
-
peerDependenciesMeta:
412
-
typescript:
413
-
optional: true
511
+
typescript: '>=4.8.4 <5.9.0'
414
512
415
-
'@typescript-eslint/scope-manager@8.8.1':
416
-
resolution: {integrity: sha512-X4JdU+66Mazev/J0gfXlcC/dV6JI37h+93W9BRYXrSn0hrE64IoWgVkO9MSJgEzoWkxONgaQpICWg8vAN74wlA==}
513
+
'@typescript-eslint/scope-manager@8.29.0':
514
+
resolution: {integrity: sha512-aO1PVsq7Gm+tcghabUpzEnVSFMCU4/nYIgC2GOatJcllvWfnhrgW0ZEbnTxm36QsikmCN1K/6ZgM7fok2I7xNw==}
417
515
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
418
516
419
-
'@typescript-eslint/type-utils@8.8.1':
420
-
resolution: {integrity: sha512-qSVnpcbLP8CALORf0za+vjLYj1Wp8HSoiI8zYU5tHxRVj30702Z1Yw4cLwfNKhTPWp5+P+k1pjmD5Zd1nhxiZA==}
517
+
'@typescript-eslint/type-utils@8.29.0':
518
+
resolution: {integrity: sha512-ahaWQ42JAOx+NKEf5++WC/ua17q5l+j1GFrbbpVKzFL/tKVc0aYY8rVSYUpUvt2hUP1YBr7mwXzx+E/DfUWI9Q==}
421
519
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
422
520
peerDependencies:
423
-
typescript: '*'
424
-
peerDependenciesMeta:
425
-
typescript:
426
-
optional: true
521
+
eslint: ^8.57.0 || ^9.0.0
522
+
typescript: '>=4.8.4 <5.9.0'
427
523
428
-
'@typescript-eslint/types@8.8.1':
429
-
resolution: {integrity: sha512-WCcTP4SDXzMd23N27u66zTKMuEevH4uzU8C9jf0RO4E04yVHgQgW+r+TeVTNnO1KIfrL8ebgVVYYMMO3+jC55Q==}
524
+
'@typescript-eslint/types@8.29.0':
525
+
resolution: {integrity: sha512-wcJL/+cOXV+RE3gjCyl/V2G877+2faqvlgtso/ZRbTCnZazh0gXhe+7gbAnfubzN2bNsBtZjDvlh7ero8uIbzg==}
430
526
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
431
527
432
-
'@typescript-eslint/typescript-estree@8.8.1':
433
-
resolution: {integrity: sha512-A5d1R9p+X+1js4JogdNilDuuq+EHZdsH9MjTVxXOdVFfTJXunKJR/v+fNNyO4TnoOn5HqobzfRlc70NC6HTcdg==}
528
+
'@typescript-eslint/typescript-estree@8.29.0':
529
+
resolution: {integrity: sha512-yOfen3jE9ISZR/hHpU/bmNvTtBW1NjRbkSFdZOksL1N+ybPEE7UVGMwqvS6CP022Rp00Sb0tdiIkhSCe6NI8ow==}
434
530
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
435
531
peerDependencies:
436
-
typescript: '*'
437
-
peerDependenciesMeta:
438
-
typescript:
439
-
optional: true
532
+
typescript: '>=4.8.4 <5.9.0'
440
533
441
-
'@typescript-eslint/utils@8.8.1':
442
-
resolution: {integrity: sha512-/QkNJDbV0bdL7H7d0/y0qBbV2HTtf0TIyjSDTvvmQEzeVx8jEImEbLuOA4EsvE8gIgqMitns0ifb5uQhMj8d9w==}
534
+
'@typescript-eslint/utils@8.29.0':
535
+
resolution: {integrity: sha512-gX/A0Mz9Bskm8avSWFcK0gP7cZpbY4AIo6B0hWYFCaIsz750oaiWR4Jr2CI+PQhfW1CpcQr9OlfPS+kMFegjXA==}
443
536
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
444
537
peerDependencies:
445
538
eslint: ^8.57.0 || ^9.0.0
539
+
typescript: '>=4.8.4 <5.9.0'
446
540
447
-
'@typescript-eslint/visitor-keys@8.8.1':
448
-
resolution: {integrity: sha512-0/TdC3aeRAsW7MDvYRwEc1Uwm0TIBfzjPFgg60UU2Haj5qsCs9cc3zNgY71edqE3LbWfF/WoZQd3lJoDXFQpag==}
541
+
'@typescript-eslint/visitor-keys@8.29.0':
542
+
resolution: {integrity: sha512-Sne/pVz8ryR03NFK21VpN88dZ2FdQXOlq3VIklbrTYEt8yXtRFr9tvUhqvCeKjqYk5FSim37sHbooT6vzBTZcg==}
449
543
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
450
544
451
545
'@xterm/xterm@5.5.0':
452
546
resolution: {integrity: sha512-hqJHYaQb5OptNunnyAnkHyM8aCjZ1MEIDTQu1iIbbTD/xops91NB5yq1ZK/dC2JDbVWtF23zUtl9JE2NqwT87A==}
453
547
454
-
'@zenfs/core@1.8.8':
455
-
resolution: {integrity: sha512-J4w/IFJ3r1xF2/3txmqLDbomPvsmkYWRvgR5hmPqBAST3fO4YZtSc9QtE1TPf2DGetvmfPiAU9l9I0a+XE3g1g==}
456
-
engines: {node: '>= 16'}
548
+
'@zenfs/core@2.0.0':
549
+
resolution: {integrity: sha512-wOKNFTY1DJ1vdLqKdU7M8cRh0nVYZcDVu7WHuk/3u49hrSwTZVm4PzGxJUjFd8O9Wi3U5nYTbZoN7RX5mS2ldA==}
550
+
engines: {node: '>= 18'}
457
551
hasBin: true
458
552
459
-
'@zenfs/dom@1.1.3':
460
-
resolution: {integrity: sha512-Rv33rnwELDLTOT9BwIGyAYBryWE2VW6E9QkoIZ67FFXzwXKzmmk/yESgzUdqUM7Dq7ciKk4wfati0ViUO6Bymw==}
553
+
'@zenfs/dom@1.1.6':
554
+
resolution: {integrity: sha512-7SBTWgA0esuEv/TE+N/xk6W/XJf8uBF+LhlPNHQdXds0H7aOy/UYsWv/8glvARe+meDMMidoeWFLzUWoMXfjlA==}
461
555
engines: {node: '>= 18'}
462
556
peerDependencies:
463
-
'@zenfs/core': ^1.7.0
557
+
'@zenfs/core': ^2.0.0
558
+
utilium: ^1.9.0
464
559
465
560
abort-controller@3.0.0:
466
561
resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
···
471
566
peerDependencies:
472
567
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
473
568
474
-
acorn@8.12.1:
475
-
resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==}
569
+
acorn@8.14.1:
570
+
resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==}
476
571
engines: {node: '>=0.4.0'}
477
572
hasBin: true
478
573
···
483
578
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
484
579
engines: {node: '>=8'}
485
580
581
+
ansis@3.17.0:
582
+
resolution: {integrity: sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==}
583
+
engines: {node: '>=14'}
584
+
486
585
argparse@2.0.1:
487
586
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
488
587
489
-
array-buffer-byte-length@1.0.1:
490
-
resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
588
+
array-buffer-byte-length@1.0.2:
589
+
resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==}
491
590
engines: {node: '>= 0.4'}
492
591
493
592
array-includes@3.1.8:
···
498
597
resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
499
598
engines: {node: '>= 0.4'}
500
599
501
-
array.prototype.flat@1.3.2:
502
-
resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
600
+
array.prototype.flat@1.3.3:
601
+
resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==}
503
602
engines: {node: '>= 0.4'}
504
603
505
-
array.prototype.flatmap@1.3.2:
506
-
resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
604
+
array.prototype.flatmap@1.3.3:
605
+
resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==}
507
606
engines: {node: '>= 0.4'}
508
607
509
608
array.prototype.tosorted@1.1.4:
510
609
resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==}
511
610
engines: {node: '>= 0.4'}
512
611
513
-
arraybuffer.prototype.slice@1.0.3:
514
-
resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
612
+
arraybuffer.prototype.slice@1.0.4:
613
+
resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
515
614
engines: {node: '>= 0.4'}
516
615
517
616
astring@1.9.0:
518
617
resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==}
519
618
hasBin: true
619
+
620
+
async-function@1.0.0:
621
+
resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
622
+
engines: {node: '>= 0.4'}
520
623
521
624
available-typed-arrays@1.0.7:
522
625
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
···
541
644
buffer@6.0.3:
542
645
resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
543
646
544
-
call-bind@1.0.7:
545
-
resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
647
+
cac@6.7.14:
648
+
resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
649
+
engines: {node: '>=8'}
650
+
651
+
call-bind-apply-helpers@1.0.2:
652
+
resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
653
+
engines: {node: '>= 0.4'}
654
+
655
+
call-bind@1.0.8:
656
+
resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==}
657
+
engines: {node: '>= 0.4'}
658
+
659
+
call-bound@1.0.4:
660
+
resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
546
661
engines: {node: '>= 0.4'}
547
662
548
663
callsites@3.1.0:
···
563
678
concat-map@0.0.1:
564
679
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
565
680
566
-
cross-spawn@7.0.3:
567
-
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
681
+
cross-spawn@7.0.6:
682
+
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
568
683
engines: {node: '>= 8'}
569
684
570
-
csstype@3.1.2:
571
-
resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
572
-
573
685
csstype@3.1.3:
574
686
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
575
687
576
-
data-view-buffer@1.0.1:
577
-
resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==}
688
+
data-view-buffer@1.0.2:
689
+
resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==}
578
690
engines: {node: '>= 0.4'}
579
691
580
-
data-view-byte-length@1.0.1:
581
-
resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==}
692
+
data-view-byte-length@1.0.2:
693
+
resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==}
582
694
engines: {node: '>= 0.4'}
583
695
584
-
data-view-byte-offset@1.0.0:
585
-
resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==}
696
+
data-view-byte-offset@1.0.1:
697
+
resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==}
586
698
engines: {node: '>= 0.4'}
587
699
588
-
debug@4.3.4:
589
-
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
700
+
debug@4.4.0:
701
+
resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
590
702
engines: {node: '>=6.0'}
591
703
peerDependencies:
592
704
supports-color: '*'
···
605
717
resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
606
718
engines: {node: '>= 0.4'}
607
719
720
+
defu@6.1.4:
721
+
resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
722
+
723
+
destr@2.0.4:
724
+
resolution: {integrity: sha512-FCAorltMy7QwX0QU38jOkhrv20LBpsHA8ogzvMhhPHCCKVCaN6GxrB0GGaWEWBUYI4eEjjfJ95RdP6dk9IdMQA==}
725
+
608
726
doctrine@2.1.0:
609
727
resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
610
728
engines: {node: '>=0.10.0'}
611
729
612
-
es-abstract@1.23.3:
613
-
resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==}
730
+
dunder-proto@1.0.1:
731
+
resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
614
732
engines: {node: '>= 0.4'}
615
733
616
-
es-define-property@1.0.0:
617
-
resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
734
+
es-abstract@1.23.9:
735
+
resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==}
736
+
engines: {node: '>= 0.4'}
737
+
738
+
es-define-property@1.0.1:
739
+
resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
618
740
engines: {node: '>= 0.4'}
619
741
620
742
es-errors@1.3.0:
621
743
resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
622
744
engines: {node: '>= 0.4'}
623
745
624
-
es-iterator-helpers@1.1.0:
625
-
resolution: {integrity: sha512-/SurEfycdyssORP/E+bj4sEu1CWw4EmLDsHynHwSXQ7utgbrMRWW195pTrCjFgFCddf/UkYm3oqKPRq5i8bJbw==}
746
+
es-iterator-helpers@1.2.1:
747
+
resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==}
626
748
engines: {node: '>= 0.4'}
627
749
628
-
es-object-atoms@1.0.0:
629
-
resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
750
+
es-object-atoms@1.1.1:
751
+
resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
630
752
engines: {node: '>= 0.4'}
631
753
632
-
es-set-tostringtag@2.0.3:
633
-
resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==}
754
+
es-set-tostringtag@2.1.0:
755
+
resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
634
756
engines: {node: '>= 0.4'}
635
757
636
-
es-shim-unscopables@1.0.2:
637
-
resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
758
+
es-shim-unscopables@1.1.0:
759
+
resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==}
760
+
engines: {node: '>= 0.4'}
638
761
639
-
es-to-primitive@1.2.1:
640
-
resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
762
+
es-to-primitive@1.3.0:
763
+
resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
641
764
engines: {node: '>= 0.4'}
642
765
643
766
esbuild-copy-static-files@0.1.0:
···
658
781
peerDependencies:
659
782
eslint: '>=7.0.0'
660
783
661
-
eslint-plugin-prettier@5.2.1:
662
-
resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==}
784
+
eslint-plugin-prettier@5.2.6:
785
+
resolution: {integrity: sha512-mUcf7QG2Tjk7H055Jk0lGBjbgDnfrvqjhXh9t2xLMSCjZVcw9Rb1V6sVNXO0th3jgeO7zllWPTNRil3JW94TnQ==}
663
786
engines: {node: ^14.18.0 || >=16.0.0}
664
787
peerDependencies:
665
788
'@types/eslint': '>=8.0.0'
666
789
eslint: '>=8.0.0'
667
-
eslint-config-prettier: '*'
790
+
eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0'
668
791
prettier: '>=3.0.0'
669
792
peerDependenciesMeta:
670
793
'@types/eslint':
···
672
795
eslint-config-prettier:
673
796
optional: true
674
797
675
-
eslint-plugin-react@7.37.1:
676
-
resolution: {integrity: sha512-xwTnwDqzbDRA8uJ7BMxPs/EXRB3i8ZfnOIp8BsxEQkT0nHPp+WWceqGgo6rKb9ctNi8GJLDT4Go5HAWELa/WMg==}
798
+
eslint-plugin-react@7.37.5:
799
+
resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==}
677
800
engines: {node: '>=4'}
678
801
peerDependencies:
679
802
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
680
803
681
-
eslint-scope@8.1.0:
682
-
resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==}
804
+
eslint-scope@8.3.0:
805
+
resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==}
683
806
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
684
807
685
808
eslint-visitor-keys@3.4.3:
686
809
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
687
810
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
688
811
689
-
eslint-visitor-keys@4.1.0:
690
-
resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==}
812
+
eslint-visitor-keys@4.2.0:
813
+
resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
691
814
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
692
815
693
-
eslint@9.12.0:
694
-
resolution: {integrity: sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw==}
816
+
eslint@9.23.0:
817
+
resolution: {integrity: sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==}
695
818
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
696
819
hasBin: true
697
820
peerDependencies:
···
700
823
jiti:
701
824
optional: true
702
825
703
-
espree@10.2.0:
704
-
resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==}
826
+
espree@10.3.0:
827
+
resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==}
705
828
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
706
829
707
-
esquery@1.5.0:
708
-
resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
830
+
esquery@1.6.0:
831
+
resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
709
832
engines: {node: '>=0.10'}
710
833
711
834
esrecurse@4.3.0:
···
753
876
fastq@1.17.1:
754
877
resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
755
878
879
+
fdir@6.4.3:
880
+
resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==}
881
+
peerDependencies:
882
+
picomatch: ^3 || ^4
883
+
peerDependenciesMeta:
884
+
picomatch:
885
+
optional: true
886
+
756
887
file-entry-cache@8.0.0:
757
888
resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
758
889
engines: {node: '>=16.0.0'}
···
761
892
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
762
893
engines: {node: '>=8'}
763
894
895
+
find-up-simple@1.0.1:
896
+
resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==}
897
+
engines: {node: '>=18'}
898
+
764
899
find-up@5.0.0:
765
900
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
766
901
engines: {node: '>=10'}
···
772
907
flatted@3.2.9:
773
908
resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
774
909
775
-
for-each@0.3.3:
776
-
resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
910
+
for-each@0.3.5:
911
+
resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
912
+
engines: {node: '>= 0.4'}
777
913
778
914
function-bind@1.1.2:
779
915
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
780
916
781
-
function.prototype.name@1.1.6:
782
-
resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
917
+
function.prototype.name@1.1.8:
918
+
resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==}
783
919
engines: {node: '>= 0.4'}
784
920
785
921
functions-have-names@1.2.3:
786
922
resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
787
923
788
-
get-intrinsic@1.2.4:
789
-
resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
924
+
fzf@0.5.2:
925
+
resolution: {integrity: sha512-Tt4kuxLXFKHy8KT40zwsUPUkg1CrsgY25FxA2U/j/0WgEDCk3ddc/zLTCCcbSHX9FcKtLuVaDGtGE/STWC+j3Q==}
926
+
927
+
get-intrinsic@1.3.0:
928
+
resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
790
929
engines: {node: '>= 0.4'}
791
930
792
-
get-symbol-description@1.0.2:
793
-
resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
931
+
get-proto@1.0.1:
932
+
resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
933
+
engines: {node: '>= 0.4'}
934
+
935
+
get-symbol-description@1.1.0:
936
+
resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
794
937
engines: {node: '>= 0.4'}
795
938
796
939
glob-parent@5.1.2:
···
809
952
resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
810
953
engines: {node: '>= 0.4'}
811
954
812
-
gopd@1.0.1:
813
-
resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
955
+
gopd@1.2.0:
956
+
resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
957
+
engines: {node: '>= 0.4'}
814
958
815
959
graphemer@1.4.0:
816
960
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
817
961
818
-
has-bigints@1.0.2:
819
-
resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
962
+
has-bigints@1.1.0:
963
+
resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==}
964
+
engines: {node: '>= 0.4'}
820
965
821
966
has-flag@4.0.0:
822
967
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
···
825
970
has-property-descriptors@1.0.2:
826
971
resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
827
972
828
-
has-proto@1.0.3:
829
-
resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
973
+
has-proto@1.2.0:
974
+
resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==}
830
975
engines: {node: '>= 0.4'}
831
976
832
-
has-symbols@1.0.3:
833
-
resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
977
+
has-symbols@1.1.0:
978
+
resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
834
979
engines: {node: '>= 0.4'}
835
980
836
981
has-tostringtag@1.0.2:
···
848
993
849
994
ieee754@1.2.1:
850
995
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
851
-
852
-
ignore@5.3.0:
853
-
resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==}
854
-
engines: {node: '>= 4'}
855
996
856
997
ignore@5.3.2:
857
998
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
···
865
1006
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
866
1007
engines: {node: '>=0.8.19'}
867
1008
868
-
internal-slot@1.0.7:
869
-
resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
1009
+
internal-slot@1.1.0:
1010
+
resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
870
1011
engines: {node: '>= 0.4'}
871
1012
872
-
is-array-buffer@3.0.4:
873
-
resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
1013
+
is-array-buffer@3.0.5:
1014
+
resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==}
874
1015
engines: {node: '>= 0.4'}
875
1016
876
-
is-async-function@2.0.0:
877
-
resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
1017
+
is-async-function@2.1.1:
1018
+
resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==}
878
1019
engines: {node: '>= 0.4'}
879
1020
880
-
is-bigint@1.0.4:
881
-
resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
1021
+
is-bigint@1.1.0:
1022
+
resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==}
1023
+
engines: {node: '>= 0.4'}
882
1024
883
-
is-boolean-object@1.1.2:
884
-
resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
1025
+
is-boolean-object@1.2.2:
1026
+
resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==}
885
1027
engines: {node: '>= 0.4'}
886
1028
887
1029
is-callable@1.2.7:
888
1030
resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
889
1031
engines: {node: '>= 0.4'}
890
1032
891
-
is-core-module@2.15.1:
892
-
resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==}
1033
+
is-core-module@2.16.1:
1034
+
resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
893
1035
engines: {node: '>= 0.4'}
894
1036
895
-
is-data-view@1.0.1:
896
-
resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==}
1037
+
is-data-view@1.0.2:
1038
+
resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==}
897
1039
engines: {node: '>= 0.4'}
898
1040
899
-
is-date-object@1.0.5:
900
-
resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
1041
+
is-date-object@1.1.0:
1042
+
resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
901
1043
engines: {node: '>= 0.4'}
902
1044
903
1045
is-extglob@2.1.1:
904
1046
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
905
1047
engines: {node: '>=0.10.0'}
906
1048
907
-
is-finalizationregistry@1.0.2:
908
-
resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==}
1049
+
is-finalizationregistry@1.1.1:
1050
+
resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==}
1051
+
engines: {node: '>= 0.4'}
909
1052
910
-
is-generator-function@1.0.10:
911
-
resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
1053
+
is-generator-function@1.1.0:
1054
+
resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==}
912
1055
engines: {node: '>= 0.4'}
913
1056
914
1057
is-glob@4.0.3:
···
919
1062
resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
920
1063
engines: {node: '>= 0.4'}
921
1064
922
-
is-negative-zero@2.0.3:
923
-
resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
924
-
engines: {node: '>= 0.4'}
925
-
926
-
is-number-object@1.0.7:
927
-
resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
1065
+
is-number-object@1.1.1:
1066
+
resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==}
928
1067
engines: {node: '>= 0.4'}
929
1068
930
1069
is-number@7.0.0:
931
1070
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
932
1071
engines: {node: '>=0.12.0'}
933
1072
934
-
is-regex@1.1.4:
935
-
resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
1073
+
is-regex@1.2.1:
1074
+
resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
936
1075
engines: {node: '>= 0.4'}
937
1076
938
1077
is-set@2.0.3:
939
1078
resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
940
1079
engines: {node: '>= 0.4'}
941
1080
942
-
is-shared-array-buffer@1.0.3:
943
-
resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==}
1081
+
is-shared-array-buffer@1.0.4:
1082
+
resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==}
944
1083
engines: {node: '>= 0.4'}
945
1084
946
-
is-string@1.0.7:
947
-
resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
1085
+
is-string@1.1.1:
1086
+
resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==}
948
1087
engines: {node: '>= 0.4'}
949
1088
950
-
is-symbol@1.0.4:
951
-
resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
1089
+
is-symbol@1.1.1:
1090
+
resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==}
952
1091
engines: {node: '>= 0.4'}
953
1092
954
-
is-typed-array@1.1.13:
955
-
resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
1093
+
is-typed-array@1.1.15:
1094
+
resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
956
1095
engines: {node: '>= 0.4'}
957
1096
958
1097
is-weakmap@2.0.2:
959
1098
resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
960
1099
engines: {node: '>= 0.4'}
961
1100
962
-
is-weakref@1.0.2:
963
-
resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
1101
+
is-weakref@1.1.1:
1102
+
resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==}
1103
+
engines: {node: '>= 0.4'}
964
1104
965
-
is-weakset@2.0.3:
966
-
resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==}
1105
+
is-weakset@2.0.4:
1106
+
resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==}
967
1107
engines: {node: '>= 0.4'}
968
1108
969
1109
isarray@2.0.5:
···
972
1112
isexe@2.0.0:
973
1113
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
974
1114
975
-
iterator.prototype@1.1.3:
976
-
resolution: {integrity: sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==}
1115
+
iterator.prototype@1.1.5:
1116
+
resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==}
977
1117
engines: {node: '>= 0.4'}
1118
+
1119
+
jiti@2.4.2:
1120
+
resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==}
1121
+
hasBin: true
978
1122
979
1123
js-tokens@4.0.0:
980
1124
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
···
1014
1158
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
1015
1159
hasBin: true
1016
1160
1161
+
math-intrinsics@1.1.0:
1162
+
resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
1163
+
engines: {node: '>= 0.4'}
1164
+
1017
1165
merge2@1.4.1:
1018
1166
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
1019
1167
engines: {node: '>= 8'}
···
1029
1177
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
1030
1178
engines: {node: '>=8.6'}
1031
1179
1180
+
mimic-function@5.0.1:
1181
+
resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==}
1182
+
engines: {node: '>=18'}
1183
+
1032
1184
minimatch@3.1.2:
1033
1185
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
1034
1186
···
1036
1188
resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
1037
1189
engines: {node: '>=16 || 14 >=14.17'}
1038
1190
1039
-
ms@2.1.2:
1040
-
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
1191
+
ms@2.1.3:
1192
+
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
1041
1193
1042
1194
nanotar@0.1.1:
1043
1195
resolution: {integrity: sha512-AiJsGsSF3O0havL1BydvI4+wR76sKT+okKRwWIaK96cZUnXqH0uNBOsHlbwZq3+m2BR1VKqHDVudl3gO4mYjpQ==}
···
1045
1197
natural-compare@1.4.0:
1046
1198
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
1047
1199
1200
+
node-fetch-native@1.6.6:
1201
+
resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==}
1202
+
1048
1203
object-assign@4.1.1:
1049
1204
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
1050
1205
engines: {node: '>=0.10.0'}
1051
1206
1052
-
object-inspect@1.13.2:
1053
-
resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==}
1207
+
object-inspect@1.13.4:
1208
+
resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
1054
1209
engines: {node: '>= 0.4'}
1055
1210
1056
1211
object-keys@1.1.1:
1057
1212
resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
1058
1213
engines: {node: '>= 0.4'}
1059
1214
1060
-
object.assign@4.1.5:
1061
-
resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
1215
+
object.assign@4.1.7:
1216
+
resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
1062
1217
engines: {node: '>= 0.4'}
1063
1218
1064
-
object.entries@1.1.8:
1065
-
resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==}
1219
+
object.entries@1.1.9:
1220
+
resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==}
1066
1221
engines: {node: '>= 0.4'}
1067
1222
1068
1223
object.fromentries@2.0.8:
1069
1224
resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
1070
1225
engines: {node: '>= 0.4'}
1071
1226
1072
-
object.values@1.2.0:
1073
-
resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==}
1227
+
object.values@1.2.1:
1228
+
resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==}
1074
1229
engines: {node: '>= 0.4'}
1075
1230
1231
+
ofetch@1.4.1:
1232
+
resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==}
1233
+
1234
+
onetime@7.0.0:
1235
+
resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==}
1236
+
engines: {node: '>=18'}
1237
+
1076
1238
optionator@0.9.3:
1077
1239
resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
1078
1240
engines: {node: '>= 0.8.0'}
1079
1241
1242
+
own-keys@1.0.1:
1243
+
resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
1244
+
engines: {node: '>= 0.4'}
1245
+
1080
1246
p-limit@3.1.0:
1081
1247
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
1082
1248
engines: {node: '>=10'}
···
1084
1250
p-locate@5.0.0:
1085
1251
resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
1086
1252
engines: {node: '>=10'}
1253
+
1254
+
package-manager-detector@1.1.0:
1255
+
resolution: {integrity: sha512-Y8f9qUlBzW8qauJjd/eu6jlpJZsuPJm2ZAV0cDVd420o4EdpH5RPdoCv+60/TdJflGatr4sDfpAL6ArWZbM5tA==}
1087
1256
1088
1257
parent-module@1.0.1:
1089
1258
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
···
1099
1268
1100
1269
path-parse@1.0.7:
1101
1270
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
1271
+
1272
+
pathe@2.0.3:
1273
+
resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
1102
1274
1103
1275
picomatch@2.3.1:
1104
1276
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1105
1277
engines: {node: '>=8.6'}
1106
1278
1107
-
possible-typed-array-names@1.0.0:
1108
-
resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
1279
+
picomatch@4.0.2:
1280
+
resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
1281
+
engines: {node: '>=12'}
1282
+
1283
+
pnpm-workspace-yaml@0.3.1:
1284
+
resolution: {integrity: sha512-3nW5RLmREmZ8Pm8MbPsO2RM+99RRjYd25ynj3NV0cFsN7CcEl4sDFzgoFmSyduFwxFQ2Qbu3y2UdCh6HlyUOeA==}
1285
+
1286
+
possible-typed-array-names@1.1.0:
1287
+
resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
1109
1288
engines: {node: '>= 0.4'}
1110
1289
1111
1290
prelude-ls@1.2.1:
···
1132
1311
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
1133
1312
engines: {node: '>=6'}
1134
1313
1314
+
quansync@0.2.10:
1315
+
resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==}
1316
+
1135
1317
queue-microtask@1.2.3:
1136
1318
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1137
1319
···
1142
1324
resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==}
1143
1325
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1144
1326
1145
-
reflect.getprototypeof@1.0.6:
1146
-
resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==}
1327
+
reflect.getprototypeof@1.0.10:
1328
+
resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
1147
1329
engines: {node: '>= 0.4'}
1148
1330
1149
-
regexp.prototype.flags@1.5.3:
1150
-
resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==}
1331
+
regexp.prototype.flags@1.5.4:
1332
+
resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
1151
1333
engines: {node: '>= 0.4'}
1152
1334
1153
1335
resolve-from@4.0.0:
···
1158
1340
resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
1159
1341
hasBin: true
1160
1342
1343
+
restore-cursor@5.1.0:
1344
+
resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==}
1345
+
engines: {node: '>=18'}
1346
+
1161
1347
reusify@1.0.4:
1162
1348
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
1163
1349
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
···
1165
1351
run-parallel@1.2.0:
1166
1352
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1167
1353
1168
-
safe-array-concat@1.1.2:
1169
-
resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==}
1354
+
safe-array-concat@1.1.3:
1355
+
resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==}
1170
1356
engines: {node: '>=0.4'}
1171
1357
1172
-
safe-buffer@5.1.2:
1173
-
resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
1174
-
1175
1358
safe-buffer@5.2.1:
1176
1359
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
1177
1360
1178
-
safe-regex-test@1.0.3:
1179
-
resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
1361
+
safe-push-apply@1.0.0:
1362
+
resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==}
1363
+
engines: {node: '>= 0.4'}
1364
+
1365
+
safe-regex-test@1.1.0:
1366
+
resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
1180
1367
engines: {node: '>= 0.4'}
1181
1368
1182
1369
semver@6.3.1:
1183
1370
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
1184
1371
hasBin: true
1185
1372
1186
-
semver@7.6.3:
1187
-
resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==}
1373
+
semver@7.7.1:
1374
+
resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==}
1188
1375
engines: {node: '>=10'}
1189
1376
hasBin: true
1190
1377
···
1196
1383
resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
1197
1384
engines: {node: '>= 0.4'}
1198
1385
1386
+
set-proto@1.0.0:
1387
+
resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==}
1388
+
engines: {node: '>= 0.4'}
1389
+
1199
1390
shebang-command@2.0.0:
1200
1391
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
1201
1392
engines: {node: '>=8'}
···
1204
1395
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
1205
1396
engines: {node: '>=8'}
1206
1397
1207
-
side-channel@1.0.6:
1208
-
resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
1398
+
side-channel-list@1.0.0:
1399
+
resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
1400
+
engines: {node: '>= 0.4'}
1401
+
1402
+
side-channel-map@1.0.1:
1403
+
resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
1404
+
engines: {node: '>= 0.4'}
1405
+
1406
+
side-channel-weakmap@1.0.2:
1407
+
resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
1408
+
engines: {node: '>= 0.4'}
1409
+
1410
+
side-channel@1.1.0:
1411
+
resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
1209
1412
engines: {node: '>= 0.4'}
1210
1413
1414
+
signal-exit@4.1.0:
1415
+
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
1416
+
engines: {node: '>=14'}
1417
+
1211
1418
standalone-electron-types@1.0.0:
1212
1419
resolution: {integrity: sha512-0HOi/tlTz3mjWhsAz4uRbpQcHMZ+ifj1JzWW9nugykOHClBBG77ps8QinrzX1eow4Iw2pnC+RFaSYRgufF4BOg==}
1213
1420
1214
-
string.prototype.matchall@4.0.11:
1215
-
resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==}
1421
+
string.prototype.matchall@4.0.12:
1422
+
resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==}
1216
1423
engines: {node: '>= 0.4'}
1217
1424
1218
1425
string.prototype.repeat@1.0.0:
1219
1426
resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==}
1220
1427
1221
-
string.prototype.trim@1.2.9:
1222
-
resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==}
1428
+
string.prototype.trim@1.2.10:
1429
+
resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==}
1223
1430
engines: {node: '>= 0.4'}
1224
1431
1225
-
string.prototype.trimend@1.0.8:
1226
-
resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==}
1432
+
string.prototype.trimend@1.0.9:
1433
+
resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==}
1434
+
engines: {node: '>= 0.4'}
1227
1435
1228
1436
string.prototype.trimstart@1.0.8:
1229
1437
resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
···
1244
1452
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
1245
1453
engines: {node: '>= 0.4'}
1246
1454
1247
-
synckit@0.9.2:
1248
-
resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==}
1455
+
synckit@0.11.1:
1456
+
resolution: {integrity: sha512-fWZqNBZNNFp/7mTUy1fSsydhKsAKJ+u90Nk7kOK5Gcq9vObaqLBLjWFDBkyVU9Vvc6Y71VbOevMuGhqv02bT+Q==}
1249
1457
engines: {node: ^14.18.0 || >=16.0.0}
1250
1458
1251
-
text-table@0.2.0:
1252
-
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
1459
+
taze@19.0.4:
1460
+
resolution: {integrity: sha512-bviyNotzqcIWpVBCC4QYVb2yupzKyUDGQi2m/8GERdiPaudVMtgAqaE98+x0cDDaByYRMJCyhQWM04ikUL6+kQ==}
1461
+
hasBin: true
1462
+
1463
+
tinyexec@1.0.1:
1464
+
resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==}
1465
+
1466
+
tinyglobby@0.2.12:
1467
+
resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==}
1468
+
engines: {node: '>=12.0.0'}
1253
1469
1254
1470
to-regex-range@5.0.1:
1255
1471
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1256
1472
engines: {node: '>=8.0'}
1257
1473
1258
-
ts-api-utils@1.3.0:
1259
-
resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
1260
-
engines: {node: '>=16'}
1474
+
ts-api-utils@2.1.0:
1475
+
resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==}
1476
+
engines: {node: '>=18.12'}
1261
1477
peerDependencies:
1262
-
typescript: '>=4.2.0'
1478
+
typescript: '>=4.8.4'
1263
1479
1264
-
tslib@2.7.0:
1265
-
resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==}
1480
+
tslib@2.8.1:
1481
+
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
1266
1482
1267
1483
type-check@0.4.0:
1268
1484
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
1269
1485
engines: {node: '>= 0.8.0'}
1270
1486
1271
-
typed-array-buffer@1.0.2:
1272
-
resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==}
1487
+
typed-array-buffer@1.0.3:
1488
+
resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
1273
1489
engines: {node: '>= 0.4'}
1274
1490
1275
-
typed-array-byte-length@1.0.1:
1276
-
resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==}
1491
+
typed-array-byte-length@1.0.3:
1492
+
resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==}
1277
1493
engines: {node: '>= 0.4'}
1278
1494
1279
-
typed-array-byte-offset@1.0.2:
1280
-
resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==}
1495
+
typed-array-byte-offset@1.0.4:
1496
+
resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==}
1281
1497
engines: {node: '>= 0.4'}
1282
1498
1283
-
typed-array-length@1.0.6:
1284
-
resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==}
1499
+
typed-array-length@1.0.7:
1500
+
resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
1285
1501
engines: {node: '>= 0.4'}
1286
1502
1287
-
typescript-eslint@8.8.1:
1288
-
resolution: {integrity: sha512-R0dsXFt6t4SAFjUSKFjMh4pXDtq04SsFKCVGDP3ZOzNP7itF0jBcZYU4fMsZr4y7O7V7Nc751dDeESbe4PbQMQ==}
1503
+
typescript-eslint@8.29.0:
1504
+
resolution: {integrity: sha512-ep9rVd9B4kQsZ7ZnWCVxUE/xDLUUUsRzE0poAeNu+4CkFErLfuvPt/qtm2EpnSyfvsR0S6QzDFSrPCFBwf64fg==}
1289
1505
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1290
1506
peerDependencies:
1291
-
typescript: '*'
1292
-
peerDependenciesMeta:
1293
-
typescript:
1294
-
optional: true
1507
+
eslint: ^8.57.0 || ^9.0.0
1508
+
typescript: '>=4.8.4 <5.9.0'
1295
1509
1296
-
typescript@5.3.2:
1297
-
resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==}
1510
+
typescript@5.8.2:
1511
+
resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==}
1298
1512
engines: {node: '>=14.17'}
1299
1513
hasBin: true
1300
1514
1301
-
unbox-primitive@1.0.2:
1302
-
resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
1515
+
ufo@1.5.4:
1516
+
resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==}
1517
+
1518
+
unbox-primitive@1.1.0:
1519
+
resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
1520
+
engines: {node: '>= 0.4'}
1521
+
1522
+
unconfig@7.3.1:
1523
+
resolution: {integrity: sha512-LH5WL+un92tGAzWS87k7LkAfwpMdm7V0IXG2FxEjZz/QxiIW5J5LkcrKQThj0aRz6+h/lFmKI9EUXmK/T0bcrw==}
1303
1524
1304
1525
undici-types@6.20.0:
1305
1526
resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==}
1306
1527
1528
+
undici-types@6.21.0:
1529
+
resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
1530
+
1307
1531
uri-js@4.4.1:
1308
1532
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
1309
1533
1310
-
utilium@1.1.3:
1311
-
resolution: {integrity: sha512-Gip5dgsVHMy+7lf6m1l/2HJkUropZ4pIBRKxBqxw0Dtz8czcuhNyXFXywqdVnNekDaTzV7/CHYsnLPrPrvzMUA==}
1534
+
utilium@1.10.1:
1535
+
resolution: {integrity: sha512-GQINDTb/ocyz4acQj3GXAe0wipYxws6L+9ouqaq10KlInTk9DGvW9TJd0pYa/Xu3cppNnZuB4T/sBuSXpcN2ng==}
1312
1536
1313
-
which-boxed-primitive@1.0.2:
1314
-
resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
1537
+
which-boxed-primitive@1.1.1:
1538
+
resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==}
1539
+
engines: {node: '>= 0.4'}
1315
1540
1316
-
which-builtin-type@1.1.4:
1317
-
resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==}
1541
+
which-builtin-type@1.2.1:
1542
+
resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==}
1318
1543
engines: {node: '>= 0.4'}
1319
1544
1320
1545
which-collection@1.0.2:
1321
1546
resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
1322
1547
engines: {node: '>= 0.4'}
1323
1548
1324
-
which-typed-array@1.1.15:
1325
-
resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==}
1549
+
which-typed-array@1.1.19:
1550
+
resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==}
1326
1551
engines: {node: '>= 0.4'}
1327
1552
1328
1553
which@2.0.2:
···
1330
1555
engines: {node: '>= 8'}
1331
1556
hasBin: true
1332
1557
1558
+
yaml@2.7.1:
1559
+
resolution: {integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==}
1560
+
engines: {node: '>= 14'}
1561
+
hasBin: true
1562
+
1333
1563
yocto-queue@0.1.0:
1334
1564
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
1335
1565
engines: {node: '>=10'}
···
1355
1585
snapshots:
1356
1586
1357
1587
'@aashutoshrathi/word-wrap@1.2.6': {}
1588
+
1589
+
'@antfu/ni@24.3.0':
1590
+
dependencies:
1591
+
ansis: 3.17.0
1592
+
fzf: 0.5.2
1593
+
package-manager-detector: 1.1.0
1594
+
tinyexec: 1.0.1
1358
1595
1359
1596
'@esbuild/android-arm64@0.19.3':
1360
1597
optional: true
···
1422
1659
'@esbuild/win32-x64@0.19.3':
1423
1660
optional: true
1424
1661
1425
-
'@eslint-community/eslint-utils@4.4.0(eslint@9.12.0)':
1662
+
'@eslint-community/eslint-utils@4.5.1(eslint@9.23.0(jiti@2.4.2))':
1426
1663
dependencies:
1427
-
eslint: 9.12.0
1664
+
eslint: 9.23.0(jiti@2.4.2)
1428
1665
eslint-visitor-keys: 3.4.3
1429
1666
1430
-
'@eslint-community/regexpp@4.11.1': {}
1667
+
'@eslint-community/regexpp@4.12.1': {}
1431
1668
1432
-
'@eslint/config-array@0.18.0':
1669
+
'@eslint/config-array@0.19.2':
1433
1670
dependencies:
1434
-
'@eslint/object-schema': 2.1.4
1435
-
debug: 4.3.4
1671
+
'@eslint/object-schema': 2.1.6
1672
+
debug: 4.4.0
1436
1673
minimatch: 3.1.2
1437
1674
transitivePeerDependencies:
1438
1675
- supports-color
1439
1676
1440
-
'@eslint/core@0.6.0': {}
1677
+
'@eslint/config-helpers@0.2.1': {}
1441
1678
1442
-
'@eslint/eslintrc@3.1.0':
1679
+
'@eslint/core@0.12.0':
1680
+
dependencies:
1681
+
'@types/json-schema': 7.0.15
1682
+
1683
+
'@eslint/core@0.13.0':
1684
+
dependencies:
1685
+
'@types/json-schema': 7.0.15
1686
+
1687
+
'@eslint/eslintrc@3.3.1':
1443
1688
dependencies:
1444
1689
ajv: 6.12.6
1445
-
debug: 4.3.4
1446
-
espree: 10.2.0
1690
+
debug: 4.4.0
1691
+
espree: 10.3.0
1447
1692
globals: 14.0.0
1448
-
ignore: 5.3.0
1693
+
ignore: 5.3.2
1449
1694
import-fresh: 3.3.0
1450
1695
js-yaml: 4.1.0
1451
1696
minimatch: 3.1.2
···
1453
1698
transitivePeerDependencies:
1454
1699
- supports-color
1455
1700
1456
-
'@eslint/js@9.12.0': {}
1701
+
'@eslint/js@9.23.0': {}
1457
1702
1458
-
'@eslint/object-schema@2.1.4': {}
1703
+
'@eslint/object-schema@2.1.6': {}
1459
1704
1460
-
'@eslint/plugin-kit@0.2.0':
1705
+
'@eslint/plugin-kit@0.2.8':
1461
1706
dependencies:
1707
+
'@eslint/core': 0.13.0
1462
1708
levn: 0.4.1
1463
1709
1464
-
'@humanfs/core@0.19.0': {}
1710
+
'@humanfs/core@0.19.1': {}
1465
1711
1466
-
'@humanfs/node@0.16.5':
1712
+
'@humanfs/node@0.16.6':
1467
1713
dependencies:
1468
-
'@humanfs/core': 0.19.0
1714
+
'@humanfs/core': 0.19.1
1469
1715
'@humanwhocodes/retry': 0.3.1
1470
1716
1471
1717
'@humanwhocodes/module-importer@1.0.1': {}
1472
1718
1473
1719
'@humanwhocodes/retry@0.3.1': {}
1474
1720
1475
-
'@moonlight-mod/eslint-config@https://codeload.github.com/moonlight-mod/eslint-config/tar.gz/e262ac24e1a0955a9b3e0d66da247a0a8c0446c9(eslint@9.12.0)(prettier@3.1.0)(typescript@5.3.2)':
1721
+
'@humanwhocodes/retry@0.4.2': {}
1722
+
1723
+
'@moonlight-mod/eslint-config@https://codeload.github.com/moonlight-mod/eslint-config/tar.gz/e262ac24e1a0955a9b3e0d66da247a0a8c0446c9(@types/eslint@9.6.1)(eslint@9.23.0(jiti@2.4.2))(prettier@3.1.0)(typescript@5.8.2)':
1476
1724
dependencies:
1477
-
'@eslint/js': 9.12.0
1478
-
eslint: 9.12.0
1479
-
eslint-config-prettier: 9.1.0(eslint@9.12.0)
1480
-
eslint-plugin-prettier: 5.2.1(eslint-config-prettier@9.1.0(eslint@9.12.0))(eslint@9.12.0)(prettier@3.1.0)
1481
-
eslint-plugin-react: 7.37.1(eslint@9.12.0)
1482
-
typescript: 5.3.2
1483
-
typescript-eslint: 8.8.1(eslint@9.12.0)(typescript@5.3.2)
1725
+
'@eslint/js': 9.23.0
1726
+
eslint: 9.23.0(jiti@2.4.2)
1727
+
eslint-config-prettier: 9.1.0(eslint@9.23.0(jiti@2.4.2))
1728
+
eslint-plugin-prettier: 5.2.6(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.23.0(jiti@2.4.2)))(eslint@9.23.0(jiti@2.4.2))(prettier@3.1.0)
1729
+
eslint-plugin-react: 7.37.5(eslint@9.23.0(jiti@2.4.2))
1730
+
typescript: 5.8.2
1731
+
typescript-eslint: 8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)
1484
1732
transitivePeerDependencies:
1485
1733
- '@types/eslint'
1486
1734
- prettier
1487
1735
- supports-color
1488
1736
1489
-
'@moonlight-mod/lunast@1.0.0':
1737
+
'@moonlight-mod/lunast@1.0.1':
1490
1738
dependencies:
1491
1739
astring: 1.9.0
1492
1740
estree-toolkit: 1.7.8
1493
1741
meriyah: 6.0.1
1494
1742
1495
-
'@moonlight-mod/mappings@1.1.18(@moonlight-mod/lunast@1.0.0)(@moonlight-mod/moonmap@1.0.4)':
1743
+
'@moonlight-mod/mappings@1.1.25(@moonlight-mod/lunast@1.0.1)(@moonlight-mod/moonmap@1.0.5)':
1496
1744
dependencies:
1497
-
'@moonlight-mod/lunast': 1.0.0
1498
-
'@moonlight-mod/moonmap': 1.0.4
1745
+
'@moonlight-mod/lunast': 1.0.1
1746
+
'@moonlight-mod/moonmap': 1.0.5
1499
1747
'@types/chroma-js': 3.1.0
1500
1748
'@types/flux': 3.1.14
1501
1749
'@types/highlightjs': 9.12.6
1502
1750
'@types/lodash': 4.17.14
1503
1751
'@types/platform': 1.3.6
1504
-
'@types/react': 18.3.10
1752
+
'@types/react': 18.3.20
1505
1753
csstype: 3.1.3
1506
-
zustand: 5.0.3(@types/react@18.3.10)
1754
+
zustand: 5.0.3(@types/react@18.3.20)
1507
1755
transitivePeerDependencies:
1508
1756
- immer
1509
1757
- react
1510
1758
- use-sync-external-store
1511
1759
1512
-
'@moonlight-mod/moonmap@1.0.4': {}
1760
+
'@moonlight-mod/moonmap@1.0.5': {}
1513
1761
1514
1762
'@nodelib/fs.scandir@2.1.5':
1515
1763
dependencies:
···
1523
1771
'@nodelib/fs.scandir': 2.1.5
1524
1772
fastq: 1.17.1
1525
1773
1526
-
'@pkgr/core@0.1.1': {}
1774
+
'@pkgr/core@0.2.0': {}
1775
+
1776
+
'@quansync/fs@0.1.2':
1777
+
dependencies:
1778
+
quansync: 0.2.10
1527
1779
1528
1780
'@types/chroma-js@3.1.0': {}
1781
+
1782
+
'@types/chrome@0.0.313':
1783
+
dependencies:
1784
+
'@types/filesystem': 0.0.36
1785
+
'@types/har-format': 1.2.16
1786
+
1787
+
'@types/eslint@9.6.1':
1788
+
dependencies:
1789
+
'@types/estree': 1.0.7
1790
+
'@types/json-schema': 7.0.15
1791
+
optional: true
1529
1792
1530
1793
'@types/estree-jsx@1.0.5':
1531
1794
dependencies:
···
1533
1796
1534
1797
'@types/estree@1.0.6': {}
1535
1798
1799
+
'@types/estree@1.0.7':
1800
+
optional: true
1801
+
1536
1802
'@types/fbemitter@2.0.35': {}
1537
1803
1804
+
'@types/filesystem@0.0.36':
1805
+
dependencies:
1806
+
'@types/filewriter': 0.0.33
1807
+
1808
+
'@types/filewriter@0.0.33': {}
1809
+
1538
1810
'@types/flux@3.1.14':
1539
1811
dependencies:
1540
1812
'@types/fbemitter': 2.0.35
1541
-
'@types/react': 18.3.10
1813
+
'@types/react': 18.3.20
1814
+
1815
+
'@types/har-format@1.2.16': {}
1542
1816
1543
1817
'@types/highlightjs@9.12.6': {}
1544
1818
···
1548
1822
1549
1823
'@types/node@18.17.17': {}
1550
1824
1551
-
'@types/node@22.10.7':
1825
+
'@types/node@22.13.6':
1552
1826
dependencies:
1553
1827
undici-types: 6.20.0
1554
1828
1829
+
'@types/node@22.14.0':
1830
+
dependencies:
1831
+
undici-types: 6.21.0
1832
+
1555
1833
'@types/platform@1.3.6': {}
1556
1834
1557
1835
'@types/prop-types@15.7.13': {}
1558
1836
1559
-
'@types/react@18.3.10':
1837
+
'@types/react@18.3.20':
1560
1838
dependencies:
1561
1839
'@types/prop-types': 15.7.13
1562
1840
csstype: 3.1.3
1563
1841
1564
-
'@types/readable-stream@4.0.15':
1842
+
'@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)':
1565
1843
dependencies:
1566
-
'@types/node': 22.10.7
1567
-
safe-buffer: 5.1.2
1568
-
1569
-
'@typescript-eslint/eslint-plugin@8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0)(typescript@5.3.2))(eslint@9.12.0)(typescript@5.3.2)':
1570
-
dependencies:
1571
-
'@eslint-community/regexpp': 4.11.1
1572
-
'@typescript-eslint/parser': 8.8.1(eslint@9.12.0)(typescript@5.3.2)
1573
-
'@typescript-eslint/scope-manager': 8.8.1
1574
-
'@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0)(typescript@5.3.2)
1575
-
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0)(typescript@5.3.2)
1576
-
'@typescript-eslint/visitor-keys': 8.8.1
1577
-
eslint: 9.12.0
1844
+
'@eslint-community/regexpp': 4.12.1
1845
+
'@typescript-eslint/parser': 8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)
1846
+
'@typescript-eslint/scope-manager': 8.29.0
1847
+
'@typescript-eslint/type-utils': 8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)
1848
+
'@typescript-eslint/utils': 8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)
1849
+
'@typescript-eslint/visitor-keys': 8.29.0
1850
+
eslint: 9.23.0(jiti@2.4.2)
1578
1851
graphemer: 1.4.0
1579
1852
ignore: 5.3.2
1580
1853
natural-compare: 1.4.0
1581
-
ts-api-utils: 1.3.0(typescript@5.3.2)
1582
-
optionalDependencies:
1583
-
typescript: 5.3.2
1854
+
ts-api-utils: 2.1.0(typescript@5.8.2)
1855
+
typescript: 5.8.2
1584
1856
transitivePeerDependencies:
1585
1857
- supports-color
1586
1858
1587
-
'@typescript-eslint/parser@8.8.1(eslint@9.12.0)(typescript@5.3.2)':
1859
+
'@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)':
1588
1860
dependencies:
1589
-
'@typescript-eslint/scope-manager': 8.8.1
1590
-
'@typescript-eslint/types': 8.8.1
1591
-
'@typescript-eslint/typescript-estree': 8.8.1(typescript@5.3.2)
1592
-
'@typescript-eslint/visitor-keys': 8.8.1
1593
-
debug: 4.3.4
1594
-
eslint: 9.12.0
1595
-
optionalDependencies:
1596
-
typescript: 5.3.2
1861
+
'@typescript-eslint/scope-manager': 8.29.0
1862
+
'@typescript-eslint/types': 8.29.0
1863
+
'@typescript-eslint/typescript-estree': 8.29.0(typescript@5.8.2)
1864
+
'@typescript-eslint/visitor-keys': 8.29.0
1865
+
debug: 4.4.0
1866
+
eslint: 9.23.0(jiti@2.4.2)
1867
+
typescript: 5.8.2
1597
1868
transitivePeerDependencies:
1598
1869
- supports-color
1599
1870
1600
-
'@typescript-eslint/scope-manager@8.8.1':
1871
+
'@typescript-eslint/scope-manager@8.29.0':
1601
1872
dependencies:
1602
-
'@typescript-eslint/types': 8.8.1
1603
-
'@typescript-eslint/visitor-keys': 8.8.1
1873
+
'@typescript-eslint/types': 8.29.0
1874
+
'@typescript-eslint/visitor-keys': 8.29.0
1604
1875
1605
-
'@typescript-eslint/type-utils@8.8.1(eslint@9.12.0)(typescript@5.3.2)':
1876
+
'@typescript-eslint/type-utils@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)':
1606
1877
dependencies:
1607
-
'@typescript-eslint/typescript-estree': 8.8.1(typescript@5.3.2)
1608
-
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0)(typescript@5.3.2)
1609
-
debug: 4.3.4
1610
-
ts-api-utils: 1.3.0(typescript@5.3.2)
1611
-
optionalDependencies:
1612
-
typescript: 5.3.2
1878
+
'@typescript-eslint/typescript-estree': 8.29.0(typescript@5.8.2)
1879
+
'@typescript-eslint/utils': 8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)
1880
+
debug: 4.4.0
1881
+
eslint: 9.23.0(jiti@2.4.2)
1882
+
ts-api-utils: 2.1.0(typescript@5.8.2)
1883
+
typescript: 5.8.2
1613
1884
transitivePeerDependencies:
1614
-
- eslint
1615
1885
- supports-color
1616
1886
1617
-
'@typescript-eslint/types@8.8.1': {}
1887
+
'@typescript-eslint/types@8.29.0': {}
1618
1888
1619
-
'@typescript-eslint/typescript-estree@8.8.1(typescript@5.3.2)':
1889
+
'@typescript-eslint/typescript-estree@8.29.0(typescript@5.8.2)':
1620
1890
dependencies:
1621
-
'@typescript-eslint/types': 8.8.1
1622
-
'@typescript-eslint/visitor-keys': 8.8.1
1623
-
debug: 4.3.4
1891
+
'@typescript-eslint/types': 8.29.0
1892
+
'@typescript-eslint/visitor-keys': 8.29.0
1893
+
debug: 4.4.0
1624
1894
fast-glob: 3.3.2
1625
1895
is-glob: 4.0.3
1626
1896
minimatch: 9.0.5
1627
-
semver: 7.6.3
1628
-
ts-api-utils: 1.3.0(typescript@5.3.2)
1629
-
optionalDependencies:
1630
-
typescript: 5.3.2
1897
+
semver: 7.7.1
1898
+
ts-api-utils: 2.1.0(typescript@5.8.2)
1899
+
typescript: 5.8.2
1631
1900
transitivePeerDependencies:
1632
1901
- supports-color
1633
1902
1634
-
'@typescript-eslint/utils@8.8.1(eslint@9.12.0)(typescript@5.3.2)':
1903
+
'@typescript-eslint/utils@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)':
1635
1904
dependencies:
1636
-
'@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0)
1637
-
'@typescript-eslint/scope-manager': 8.8.1
1638
-
'@typescript-eslint/types': 8.8.1
1639
-
'@typescript-eslint/typescript-estree': 8.8.1(typescript@5.3.2)
1640
-
eslint: 9.12.0
1905
+
'@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2))
1906
+
'@typescript-eslint/scope-manager': 8.29.0
1907
+
'@typescript-eslint/types': 8.29.0
1908
+
'@typescript-eslint/typescript-estree': 8.29.0(typescript@5.8.2)
1909
+
eslint: 9.23.0(jiti@2.4.2)
1910
+
typescript: 5.8.2
1641
1911
transitivePeerDependencies:
1642
1912
- supports-color
1643
-
- typescript
1644
1913
1645
-
'@typescript-eslint/visitor-keys@8.8.1':
1914
+
'@typescript-eslint/visitor-keys@8.29.0':
1646
1915
dependencies:
1647
-
'@typescript-eslint/types': 8.8.1
1648
-
eslint-visitor-keys: 3.4.3
1916
+
'@typescript-eslint/types': 8.29.0
1917
+
eslint-visitor-keys: 4.2.0
1649
1918
1650
1919
'@xterm/xterm@5.5.0':
1651
1920
optional: true
1652
1921
1653
-
'@zenfs/core@1.8.8':
1922
+
'@zenfs/core@2.0.0':
1654
1923
dependencies:
1655
-
'@types/node': 22.10.7
1656
-
'@types/readable-stream': 4.0.15
1924
+
'@types/node': 22.13.6
1657
1925
buffer: 6.0.3
1658
1926
eventemitter3: 5.0.1
1659
1927
readable-stream: 4.5.2
1660
-
utilium: 1.1.3
1928
+
utilium: 1.10.1
1661
1929
1662
-
'@zenfs/dom@1.1.3(@zenfs/core@1.8.8)':
1930
+
'@zenfs/dom@1.1.6(@zenfs/core@2.0.0)(utilium@1.10.1)':
1663
1931
dependencies:
1664
-
'@zenfs/core': 1.8.8
1932
+
'@zenfs/core': 2.0.0
1933
+
utilium: 1.10.1
1665
1934
1666
1935
abort-controller@3.0.0:
1667
1936
dependencies:
1668
1937
event-target-shim: 5.0.1
1669
1938
1670
-
acorn-jsx@5.3.2(acorn@8.12.1):
1939
+
acorn-jsx@5.3.2(acorn@8.14.1):
1671
1940
dependencies:
1672
-
acorn: 8.12.1
1941
+
acorn: 8.14.1
1673
1942
1674
-
acorn@8.12.1: {}
1943
+
acorn@8.14.1: {}
1675
1944
1676
1945
ajv@6.12.6:
1677
1946
dependencies:
···
1683
1952
ansi-styles@4.3.0:
1684
1953
dependencies:
1685
1954
color-convert: 2.0.1
1955
+
1956
+
ansis@3.17.0: {}
1686
1957
1687
1958
argparse@2.0.1: {}
1688
1959
1689
-
array-buffer-byte-length@1.0.1:
1960
+
array-buffer-byte-length@1.0.2:
1690
1961
dependencies:
1691
-
call-bind: 1.0.7
1692
-
is-array-buffer: 3.0.4
1962
+
call-bound: 1.0.4
1963
+
is-array-buffer: 3.0.5
1693
1964
1694
1965
array-includes@3.1.8:
1695
1966
dependencies:
1696
-
call-bind: 1.0.7
1967
+
call-bind: 1.0.8
1697
1968
define-properties: 1.2.1
1698
-
es-abstract: 1.23.3
1699
-
es-object-atoms: 1.0.0
1700
-
get-intrinsic: 1.2.4
1701
-
is-string: 1.0.7
1969
+
es-abstract: 1.23.9
1970
+
es-object-atoms: 1.1.1
1971
+
get-intrinsic: 1.3.0
1972
+
is-string: 1.1.1
1702
1973
1703
1974
array.prototype.findlast@1.2.5:
1704
1975
dependencies:
1705
-
call-bind: 1.0.7
1976
+
call-bind: 1.0.8
1706
1977
define-properties: 1.2.1
1707
-
es-abstract: 1.23.3
1978
+
es-abstract: 1.23.9
1708
1979
es-errors: 1.3.0
1709
-
es-object-atoms: 1.0.0
1710
-
es-shim-unscopables: 1.0.2
1980
+
es-object-atoms: 1.1.1
1981
+
es-shim-unscopables: 1.1.0
1711
1982
1712
-
array.prototype.flat@1.3.2:
1983
+
array.prototype.flat@1.3.3:
1713
1984
dependencies:
1714
-
call-bind: 1.0.7
1985
+
call-bind: 1.0.8
1715
1986
define-properties: 1.2.1
1716
-
es-abstract: 1.23.3
1717
-
es-shim-unscopables: 1.0.2
1987
+
es-abstract: 1.23.9
1988
+
es-shim-unscopables: 1.1.0
1718
1989
1719
-
array.prototype.flatmap@1.3.2:
1990
+
array.prototype.flatmap@1.3.3:
1720
1991
dependencies:
1721
-
call-bind: 1.0.7
1992
+
call-bind: 1.0.8
1722
1993
define-properties: 1.2.1
1723
-
es-abstract: 1.23.3
1724
-
es-shim-unscopables: 1.0.2
1994
+
es-abstract: 1.23.9
1995
+
es-shim-unscopables: 1.1.0
1725
1996
1726
1997
array.prototype.tosorted@1.1.4:
1727
1998
dependencies:
1728
-
call-bind: 1.0.7
1999
+
call-bind: 1.0.8
1729
2000
define-properties: 1.2.1
1730
-
es-abstract: 1.23.3
2001
+
es-abstract: 1.23.9
1731
2002
es-errors: 1.3.0
1732
-
es-shim-unscopables: 1.0.2
2003
+
es-shim-unscopables: 1.1.0
1733
2004
1734
-
arraybuffer.prototype.slice@1.0.3:
2005
+
arraybuffer.prototype.slice@1.0.4:
1735
2006
dependencies:
1736
-
array-buffer-byte-length: 1.0.1
1737
-
call-bind: 1.0.7
2007
+
array-buffer-byte-length: 1.0.2
2008
+
call-bind: 1.0.8
1738
2009
define-properties: 1.2.1
1739
-
es-abstract: 1.23.3
2010
+
es-abstract: 1.23.9
1740
2011
es-errors: 1.3.0
1741
-
get-intrinsic: 1.2.4
1742
-
is-array-buffer: 3.0.4
1743
-
is-shared-array-buffer: 1.0.3
2012
+
get-intrinsic: 1.3.0
2013
+
is-array-buffer: 3.0.5
1744
2014
1745
2015
astring@1.9.0: {}
2016
+
2017
+
async-function@1.0.0: {}
1746
2018
1747
2019
available-typed-arrays@1.0.7:
1748
2020
dependencies:
1749
-
possible-typed-array-names: 1.0.0
2021
+
possible-typed-array-names: 1.1.0
1750
2022
1751
2023
balanced-match@1.0.2: {}
1752
2024
···
1770
2042
base64-js: 1.5.1
1771
2043
ieee754: 1.2.1
1772
2044
1773
-
call-bind@1.0.7:
2045
+
cac@6.7.14: {}
2046
+
2047
+
call-bind-apply-helpers@1.0.2:
1774
2048
dependencies:
1775
-
es-define-property: 1.0.0
1776
2049
es-errors: 1.3.0
1777
2050
function-bind: 1.1.2
1778
-
get-intrinsic: 1.2.4
2051
+
2052
+
call-bind@1.0.8:
2053
+
dependencies:
2054
+
call-bind-apply-helpers: 1.0.2
2055
+
es-define-property: 1.0.1
2056
+
get-intrinsic: 1.3.0
1779
2057
set-function-length: 1.2.2
2058
+
2059
+
call-bound@1.0.4:
2060
+
dependencies:
2061
+
call-bind-apply-helpers: 1.0.2
2062
+
get-intrinsic: 1.3.0
1780
2063
1781
2064
callsites@3.1.0: {}
1782
2065
···
1793
2076
1794
2077
concat-map@0.0.1: {}
1795
2078
1796
-
cross-spawn@7.0.3:
2079
+
cross-spawn@7.0.6:
1797
2080
dependencies:
1798
2081
path-key: 3.1.1
1799
2082
shebang-command: 2.0.0
1800
2083
which: 2.0.2
1801
2084
1802
-
csstype@3.1.2: {}
1803
-
1804
2085
csstype@3.1.3: {}
1805
2086
1806
-
data-view-buffer@1.0.1:
2087
+
data-view-buffer@1.0.2:
1807
2088
dependencies:
1808
-
call-bind: 1.0.7
2089
+
call-bound: 1.0.4
1809
2090
es-errors: 1.3.0
1810
-
is-data-view: 1.0.1
2091
+
is-data-view: 1.0.2
1811
2092
1812
-
data-view-byte-length@1.0.1:
2093
+
data-view-byte-length@1.0.2:
1813
2094
dependencies:
1814
-
call-bind: 1.0.7
2095
+
call-bound: 1.0.4
1815
2096
es-errors: 1.3.0
1816
-
is-data-view: 1.0.1
2097
+
is-data-view: 1.0.2
1817
2098
1818
-
data-view-byte-offset@1.0.0:
2099
+
data-view-byte-offset@1.0.1:
1819
2100
dependencies:
1820
-
call-bind: 1.0.7
2101
+
call-bound: 1.0.4
1821
2102
es-errors: 1.3.0
1822
-
is-data-view: 1.0.1
2103
+
is-data-view: 1.0.2
1823
2104
1824
-
debug@4.3.4:
2105
+
debug@4.4.0:
1825
2106
dependencies:
1826
-
ms: 2.1.2
2107
+
ms: 2.1.3
1827
2108
1828
2109
deep-is@0.1.4: {}
1829
2110
1830
2111
define-data-property@1.1.4:
1831
2112
dependencies:
1832
-
es-define-property: 1.0.0
2113
+
es-define-property: 1.0.1
1833
2114
es-errors: 1.3.0
1834
-
gopd: 1.0.1
2115
+
gopd: 1.2.0
1835
2116
1836
2117
define-properties@1.2.1:
1837
2118
dependencies:
···
1839
2120
has-property-descriptors: 1.0.2
1840
2121
object-keys: 1.1.1
1841
2122
2123
+
defu@6.1.4: {}
2124
+
2125
+
destr@2.0.4: {}
2126
+
1842
2127
doctrine@2.1.0:
1843
2128
dependencies:
1844
2129
esutils: 2.0.3
1845
2130
1846
-
es-abstract@1.23.3:
2131
+
dunder-proto@1.0.1:
2132
+
dependencies:
2133
+
call-bind-apply-helpers: 1.0.2
2134
+
es-errors: 1.3.0
2135
+
gopd: 1.2.0
2136
+
2137
+
es-abstract@1.23.9:
1847
2138
dependencies:
1848
-
array-buffer-byte-length: 1.0.1
1849
-
arraybuffer.prototype.slice: 1.0.3
2139
+
array-buffer-byte-length: 1.0.2
2140
+
arraybuffer.prototype.slice: 1.0.4
1850
2141
available-typed-arrays: 1.0.7
1851
-
call-bind: 1.0.7
1852
-
data-view-buffer: 1.0.1
1853
-
data-view-byte-length: 1.0.1
1854
-
data-view-byte-offset: 1.0.0
1855
-
es-define-property: 1.0.0
2142
+
call-bind: 1.0.8
2143
+
call-bound: 1.0.4
2144
+
data-view-buffer: 1.0.2
2145
+
data-view-byte-length: 1.0.2
2146
+
data-view-byte-offset: 1.0.1
2147
+
es-define-property: 1.0.1
1856
2148
es-errors: 1.3.0
1857
-
es-object-atoms: 1.0.0
1858
-
es-set-tostringtag: 2.0.3
1859
-
es-to-primitive: 1.2.1
1860
-
function.prototype.name: 1.1.6
1861
-
get-intrinsic: 1.2.4
1862
-
get-symbol-description: 1.0.2
2149
+
es-object-atoms: 1.1.1
2150
+
es-set-tostringtag: 2.1.0
2151
+
es-to-primitive: 1.3.0
2152
+
function.prototype.name: 1.1.8
2153
+
get-intrinsic: 1.3.0
2154
+
get-proto: 1.0.1
2155
+
get-symbol-description: 1.1.0
1863
2156
globalthis: 1.0.4
1864
-
gopd: 1.0.1
2157
+
gopd: 1.2.0
1865
2158
has-property-descriptors: 1.0.2
1866
-
has-proto: 1.0.3
1867
-
has-symbols: 1.0.3
2159
+
has-proto: 1.2.0
2160
+
has-symbols: 1.1.0
1868
2161
hasown: 2.0.2
1869
-
internal-slot: 1.0.7
1870
-
is-array-buffer: 3.0.4
2162
+
internal-slot: 1.1.0
2163
+
is-array-buffer: 3.0.5
1871
2164
is-callable: 1.2.7
1872
-
is-data-view: 1.0.1
1873
-
is-negative-zero: 2.0.3
1874
-
is-regex: 1.1.4
1875
-
is-shared-array-buffer: 1.0.3
1876
-
is-string: 1.0.7
1877
-
is-typed-array: 1.1.13
1878
-
is-weakref: 1.0.2
1879
-
object-inspect: 1.13.2
2165
+
is-data-view: 1.0.2
2166
+
is-regex: 1.2.1
2167
+
is-shared-array-buffer: 1.0.4
2168
+
is-string: 1.1.1
2169
+
is-typed-array: 1.1.15
2170
+
is-weakref: 1.1.1
2171
+
math-intrinsics: 1.1.0
2172
+
object-inspect: 1.13.4
1880
2173
object-keys: 1.1.1
1881
-
object.assign: 4.1.5
1882
-
regexp.prototype.flags: 1.5.3
1883
-
safe-array-concat: 1.1.2
1884
-
safe-regex-test: 1.0.3
1885
-
string.prototype.trim: 1.2.9
1886
-
string.prototype.trimend: 1.0.8
2174
+
object.assign: 4.1.7
2175
+
own-keys: 1.0.1
2176
+
regexp.prototype.flags: 1.5.4
2177
+
safe-array-concat: 1.1.3
2178
+
safe-push-apply: 1.0.0
2179
+
safe-regex-test: 1.1.0
2180
+
set-proto: 1.0.0
2181
+
string.prototype.trim: 1.2.10
2182
+
string.prototype.trimend: 1.0.9
1887
2183
string.prototype.trimstart: 1.0.8
1888
-
typed-array-buffer: 1.0.2
1889
-
typed-array-byte-length: 1.0.1
1890
-
typed-array-byte-offset: 1.0.2
1891
-
typed-array-length: 1.0.6
1892
-
unbox-primitive: 1.0.2
1893
-
which-typed-array: 1.1.15
2184
+
typed-array-buffer: 1.0.3
2185
+
typed-array-byte-length: 1.0.3
2186
+
typed-array-byte-offset: 1.0.4
2187
+
typed-array-length: 1.0.7
2188
+
unbox-primitive: 1.1.0
2189
+
which-typed-array: 1.1.19
1894
2190
1895
-
es-define-property@1.0.0:
1896
-
dependencies:
1897
-
get-intrinsic: 1.2.4
2191
+
es-define-property@1.0.1: {}
1898
2192
1899
2193
es-errors@1.3.0: {}
1900
2194
1901
-
es-iterator-helpers@1.1.0:
2195
+
es-iterator-helpers@1.2.1:
1902
2196
dependencies:
1903
-
call-bind: 1.0.7
2197
+
call-bind: 1.0.8
2198
+
call-bound: 1.0.4
1904
2199
define-properties: 1.2.1
1905
-
es-abstract: 1.23.3
2200
+
es-abstract: 1.23.9
1906
2201
es-errors: 1.3.0
1907
-
es-set-tostringtag: 2.0.3
2202
+
es-set-tostringtag: 2.1.0
1908
2203
function-bind: 1.1.2
1909
-
get-intrinsic: 1.2.4
2204
+
get-intrinsic: 1.3.0
1910
2205
globalthis: 1.0.4
2206
+
gopd: 1.2.0
1911
2207
has-property-descriptors: 1.0.2
1912
-
has-proto: 1.0.3
1913
-
has-symbols: 1.0.3
1914
-
internal-slot: 1.0.7
1915
-
iterator.prototype: 1.1.3
1916
-
safe-array-concat: 1.1.2
2208
+
has-proto: 1.2.0
2209
+
has-symbols: 1.1.0
2210
+
internal-slot: 1.1.0
2211
+
iterator.prototype: 1.1.5
2212
+
safe-array-concat: 1.1.3
1917
2213
1918
-
es-object-atoms@1.0.0:
2214
+
es-object-atoms@1.1.1:
1919
2215
dependencies:
1920
2216
es-errors: 1.3.0
1921
2217
1922
-
es-set-tostringtag@2.0.3:
2218
+
es-set-tostringtag@2.1.0:
1923
2219
dependencies:
1924
-
get-intrinsic: 1.2.4
2220
+
es-errors: 1.3.0
2221
+
get-intrinsic: 1.3.0
1925
2222
has-tostringtag: 1.0.2
1926
2223
hasown: 2.0.2
1927
2224
1928
-
es-shim-unscopables@1.0.2:
2225
+
es-shim-unscopables@1.1.0:
1929
2226
dependencies:
1930
2227
hasown: 2.0.2
1931
2228
1932
-
es-to-primitive@1.2.1:
2229
+
es-to-primitive@1.3.0:
1933
2230
dependencies:
1934
2231
is-callable: 1.2.7
1935
-
is-date-object: 1.0.5
1936
-
is-symbol: 1.0.4
2232
+
is-date-object: 1.1.0
2233
+
is-symbol: 1.1.1
1937
2234
1938
2235
esbuild-copy-static-files@0.1.0: {}
1939
2236
···
1964
2261
1965
2262
escape-string-regexp@4.0.0: {}
1966
2263
1967
-
eslint-config-prettier@9.1.0(eslint@9.12.0):
2264
+
eslint-config-prettier@9.1.0(eslint@9.23.0(jiti@2.4.2)):
1968
2265
dependencies:
1969
-
eslint: 9.12.0
2266
+
eslint: 9.23.0(jiti@2.4.2)
1970
2267
1971
-
eslint-plugin-prettier@5.2.1(eslint-config-prettier@9.1.0(eslint@9.12.0))(eslint@9.12.0)(prettier@3.1.0):
2268
+
eslint-plugin-prettier@5.2.6(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.23.0(jiti@2.4.2)))(eslint@9.23.0(jiti@2.4.2))(prettier@3.1.0):
1972
2269
dependencies:
1973
-
eslint: 9.12.0
2270
+
eslint: 9.23.0(jiti@2.4.2)
1974
2271
prettier: 3.1.0
1975
2272
prettier-linter-helpers: 1.0.0
1976
-
synckit: 0.9.2
2273
+
synckit: 0.11.1
1977
2274
optionalDependencies:
1978
-
eslint-config-prettier: 9.1.0(eslint@9.12.0)
2275
+
'@types/eslint': 9.6.1
2276
+
eslint-config-prettier: 9.1.0(eslint@9.23.0(jiti@2.4.2))
1979
2277
1980
-
eslint-plugin-react@7.37.1(eslint@9.12.0):
2278
+
eslint-plugin-react@7.37.5(eslint@9.23.0(jiti@2.4.2)):
1981
2279
dependencies:
1982
2280
array-includes: 3.1.8
1983
2281
array.prototype.findlast: 1.2.5
1984
-
array.prototype.flatmap: 1.3.2
2282
+
array.prototype.flatmap: 1.3.3
1985
2283
array.prototype.tosorted: 1.1.4
1986
2284
doctrine: 2.1.0
1987
-
es-iterator-helpers: 1.1.0
1988
-
eslint: 9.12.0
2285
+
es-iterator-helpers: 1.2.1
2286
+
eslint: 9.23.0(jiti@2.4.2)
1989
2287
estraverse: 5.3.0
1990
2288
hasown: 2.0.2
1991
2289
jsx-ast-utils: 3.3.5
1992
2290
minimatch: 3.1.2
1993
-
object.entries: 1.1.8
2291
+
object.entries: 1.1.9
1994
2292
object.fromentries: 2.0.8
1995
-
object.values: 1.2.0
2293
+
object.values: 1.2.1
1996
2294
prop-types: 15.8.1
1997
2295
resolve: 2.0.0-next.5
1998
2296
semver: 6.3.1
1999
-
string.prototype.matchall: 4.0.11
2297
+
string.prototype.matchall: 4.0.12
2000
2298
string.prototype.repeat: 1.0.0
2001
2299
2002
-
eslint-scope@8.1.0:
2300
+
eslint-scope@8.3.0:
2003
2301
dependencies:
2004
2302
esrecurse: 4.3.0
2005
2303
estraverse: 5.3.0
2006
2304
2007
2305
eslint-visitor-keys@3.4.3: {}
2008
2306
2009
-
eslint-visitor-keys@4.1.0: {}
2307
+
eslint-visitor-keys@4.2.0: {}
2010
2308
2011
-
eslint@9.12.0:
2309
+
eslint@9.23.0(jiti@2.4.2):
2012
2310
dependencies:
2013
-
'@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0)
2014
-
'@eslint-community/regexpp': 4.11.1
2015
-
'@eslint/config-array': 0.18.0
2016
-
'@eslint/core': 0.6.0
2017
-
'@eslint/eslintrc': 3.1.0
2018
-
'@eslint/js': 9.12.0
2019
-
'@eslint/plugin-kit': 0.2.0
2020
-
'@humanfs/node': 0.16.5
2311
+
'@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0(jiti@2.4.2))
2312
+
'@eslint-community/regexpp': 4.12.1
2313
+
'@eslint/config-array': 0.19.2
2314
+
'@eslint/config-helpers': 0.2.1
2315
+
'@eslint/core': 0.12.0
2316
+
'@eslint/eslintrc': 3.3.1
2317
+
'@eslint/js': 9.23.0
2318
+
'@eslint/plugin-kit': 0.2.8
2319
+
'@humanfs/node': 0.16.6
2021
2320
'@humanwhocodes/module-importer': 1.0.1
2022
-
'@humanwhocodes/retry': 0.3.1
2321
+
'@humanwhocodes/retry': 0.4.2
2023
2322
'@types/estree': 1.0.6
2024
2323
'@types/json-schema': 7.0.15
2025
2324
ajv: 6.12.6
2026
2325
chalk: 4.1.2
2027
-
cross-spawn: 7.0.3
2028
-
debug: 4.3.4
2326
+
cross-spawn: 7.0.6
2327
+
debug: 4.4.0
2029
2328
escape-string-regexp: 4.0.0
2030
-
eslint-scope: 8.1.0
2031
-
eslint-visitor-keys: 4.1.0
2032
-
espree: 10.2.0
2033
-
esquery: 1.5.0
2329
+
eslint-scope: 8.3.0
2330
+
eslint-visitor-keys: 4.2.0
2331
+
espree: 10.3.0
2332
+
esquery: 1.6.0
2034
2333
esutils: 2.0.3
2035
2334
fast-deep-equal: 3.1.3
2036
2335
file-entry-cache: 8.0.0
2037
2336
find-up: 5.0.0
2038
2337
glob-parent: 6.0.2
2039
-
ignore: 5.3.0
2338
+
ignore: 5.3.2
2040
2339
imurmurhash: 0.1.4
2041
2340
is-glob: 4.0.3
2042
2341
json-stable-stringify-without-jsonify: 1.0.1
···
2044
2343
minimatch: 3.1.2
2045
2344
natural-compare: 1.4.0
2046
2345
optionator: 0.9.3
2047
-
text-table: 0.2.0
2346
+
optionalDependencies:
2347
+
jiti: 2.4.2
2048
2348
transitivePeerDependencies:
2049
2349
- supports-color
2050
2350
2051
-
espree@10.2.0:
2351
+
espree@10.3.0:
2052
2352
dependencies:
2053
-
acorn: 8.12.1
2054
-
acorn-jsx: 5.3.2(acorn@8.12.1)
2055
-
eslint-visitor-keys: 4.1.0
2353
+
acorn: 8.14.1
2354
+
acorn-jsx: 5.3.2(acorn@8.14.1)
2355
+
eslint-visitor-keys: 4.2.0
2056
2356
2057
-
esquery@1.5.0:
2357
+
esquery@1.6.0:
2058
2358
dependencies:
2059
2359
estraverse: 5.3.0
2060
2360
···
2097
2397
dependencies:
2098
2398
reusify: 1.0.4
2099
2399
2400
+
fdir@6.4.3(picomatch@4.0.2):
2401
+
optionalDependencies:
2402
+
picomatch: 4.0.2
2403
+
2100
2404
file-entry-cache@8.0.0:
2101
2405
dependencies:
2102
2406
flat-cache: 4.0.1
···
2105
2409
dependencies:
2106
2410
to-regex-range: 5.0.1
2107
2411
2412
+
find-up-simple@1.0.1: {}
2413
+
2108
2414
find-up@5.0.0:
2109
2415
dependencies:
2110
2416
locate-path: 6.0.0
···
2117
2423
2118
2424
flatted@3.2.9: {}
2119
2425
2120
-
for-each@0.3.3:
2426
+
for-each@0.3.5:
2121
2427
dependencies:
2122
2428
is-callable: 1.2.7
2123
2429
2124
2430
function-bind@1.1.2: {}
2125
2431
2126
-
function.prototype.name@1.1.6:
2432
+
function.prototype.name@1.1.8:
2127
2433
dependencies:
2128
-
call-bind: 1.0.7
2434
+
call-bind: 1.0.8
2435
+
call-bound: 1.0.4
2129
2436
define-properties: 1.2.1
2130
-
es-abstract: 1.23.3
2131
2437
functions-have-names: 1.2.3
2438
+
hasown: 2.0.2
2439
+
is-callable: 1.2.7
2132
2440
2133
2441
functions-have-names@1.2.3: {}
2134
2442
2135
-
get-intrinsic@1.2.4:
2443
+
fzf@0.5.2: {}
2444
+
2445
+
get-intrinsic@1.3.0:
2136
2446
dependencies:
2447
+
call-bind-apply-helpers: 1.0.2
2448
+
es-define-property: 1.0.1
2137
2449
es-errors: 1.3.0
2450
+
es-object-atoms: 1.1.1
2138
2451
function-bind: 1.1.2
2139
-
has-proto: 1.0.3
2140
-
has-symbols: 1.0.3
2452
+
get-proto: 1.0.1
2453
+
gopd: 1.2.0
2454
+
has-symbols: 1.1.0
2141
2455
hasown: 2.0.2
2456
+
math-intrinsics: 1.1.0
2142
2457
2143
-
get-symbol-description@1.0.2:
2458
+
get-proto@1.0.1:
2459
+
dependencies:
2460
+
dunder-proto: 1.0.1
2461
+
es-object-atoms: 1.1.1
2462
+
2463
+
get-symbol-description@1.1.0:
2144
2464
dependencies:
2145
-
call-bind: 1.0.7
2465
+
call-bound: 1.0.4
2146
2466
es-errors: 1.3.0
2147
-
get-intrinsic: 1.2.4
2467
+
get-intrinsic: 1.3.0
2148
2468
2149
2469
glob-parent@5.1.2:
2150
2470
dependencies:
···
2159
2479
globalthis@1.0.4:
2160
2480
dependencies:
2161
2481
define-properties: 1.2.1
2162
-
gopd: 1.0.1
2482
+
gopd: 1.2.0
2163
2483
2164
-
gopd@1.0.1:
2165
-
dependencies:
2166
-
get-intrinsic: 1.2.4
2484
+
gopd@1.2.0: {}
2167
2485
2168
2486
graphemer@1.4.0: {}
2169
2487
2170
-
has-bigints@1.0.2: {}
2488
+
has-bigints@1.1.0: {}
2171
2489
2172
2490
has-flag@4.0.0: {}
2173
2491
2174
2492
has-property-descriptors@1.0.2:
2175
2493
dependencies:
2176
-
es-define-property: 1.0.0
2494
+
es-define-property: 1.0.1
2177
2495
2178
-
has-proto@1.0.3: {}
2496
+
has-proto@1.2.0:
2497
+
dependencies:
2498
+
dunder-proto: 1.0.1
2179
2499
2180
-
has-symbols@1.0.3: {}
2500
+
has-symbols@1.1.0: {}
2181
2501
2182
2502
has-tostringtag@1.0.2:
2183
2503
dependencies:
2184
-
has-symbols: 1.0.3
2504
+
has-symbols: 1.1.0
2185
2505
2186
2506
hasown@2.0.2:
2187
2507
dependencies:
···
2191
2511
2192
2512
ieee754@1.2.1: {}
2193
2513
2194
-
ignore@5.3.0: {}
2195
-
2196
2514
ignore@5.3.2: {}
2197
2515
2198
2516
import-fresh@3.3.0:
···
2202
2520
2203
2521
imurmurhash@0.1.4: {}
2204
2522
2205
-
internal-slot@1.0.7:
2523
+
internal-slot@1.1.0:
2206
2524
dependencies:
2207
2525
es-errors: 1.3.0
2208
2526
hasown: 2.0.2
2209
-
side-channel: 1.0.6
2527
+
side-channel: 1.1.0
2210
2528
2211
-
is-array-buffer@3.0.4:
2529
+
is-array-buffer@3.0.5:
2212
2530
dependencies:
2213
-
call-bind: 1.0.7
2214
-
get-intrinsic: 1.2.4
2531
+
call-bind: 1.0.8
2532
+
call-bound: 1.0.4
2533
+
get-intrinsic: 1.3.0
2215
2534
2216
-
is-async-function@2.0.0:
2535
+
is-async-function@2.1.1:
2217
2536
dependencies:
2537
+
async-function: 1.0.0
2538
+
call-bound: 1.0.4
2539
+
get-proto: 1.0.1
2218
2540
has-tostringtag: 1.0.2
2541
+
safe-regex-test: 1.1.0
2219
2542
2220
-
is-bigint@1.0.4:
2543
+
is-bigint@1.1.0:
2221
2544
dependencies:
2222
-
has-bigints: 1.0.2
2545
+
has-bigints: 1.1.0
2223
2546
2224
-
is-boolean-object@1.1.2:
2547
+
is-boolean-object@1.2.2:
2225
2548
dependencies:
2226
-
call-bind: 1.0.7
2549
+
call-bound: 1.0.4
2227
2550
has-tostringtag: 1.0.2
2228
2551
2229
2552
is-callable@1.2.7: {}
2230
2553
2231
-
is-core-module@2.15.1:
2554
+
is-core-module@2.16.1:
2232
2555
dependencies:
2233
2556
hasown: 2.0.2
2234
2557
2235
-
is-data-view@1.0.1:
2558
+
is-data-view@1.0.2:
2236
2559
dependencies:
2237
-
is-typed-array: 1.1.13
2560
+
call-bound: 1.0.4
2561
+
get-intrinsic: 1.3.0
2562
+
is-typed-array: 1.1.15
2238
2563
2239
-
is-date-object@1.0.5:
2564
+
is-date-object@1.1.0:
2240
2565
dependencies:
2566
+
call-bound: 1.0.4
2241
2567
has-tostringtag: 1.0.2
2242
2568
2243
2569
is-extglob@2.1.1: {}
2244
2570
2245
-
is-finalizationregistry@1.0.2:
2571
+
is-finalizationregistry@1.1.1:
2246
2572
dependencies:
2247
-
call-bind: 1.0.7
2573
+
call-bound: 1.0.4
2248
2574
2249
-
is-generator-function@1.0.10:
2575
+
is-generator-function@1.1.0:
2250
2576
dependencies:
2577
+
call-bound: 1.0.4
2578
+
get-proto: 1.0.1
2251
2579
has-tostringtag: 1.0.2
2580
+
safe-regex-test: 1.1.0
2252
2581
2253
2582
is-glob@4.0.3:
2254
2583
dependencies:
···
2256
2585
2257
2586
is-map@2.0.3: {}
2258
2587
2259
-
is-negative-zero@2.0.3: {}
2260
-
2261
-
is-number-object@1.0.7:
2588
+
is-number-object@1.1.1:
2262
2589
dependencies:
2590
+
call-bound: 1.0.4
2263
2591
has-tostringtag: 1.0.2
2264
2592
2265
2593
is-number@7.0.0: {}
2266
2594
2267
-
is-regex@1.1.4:
2595
+
is-regex@1.2.1:
2268
2596
dependencies:
2269
-
call-bind: 1.0.7
2597
+
call-bound: 1.0.4
2598
+
gopd: 1.2.0
2270
2599
has-tostringtag: 1.0.2
2600
+
hasown: 2.0.2
2271
2601
2272
2602
is-set@2.0.3: {}
2273
2603
2274
-
is-shared-array-buffer@1.0.3:
2604
+
is-shared-array-buffer@1.0.4:
2275
2605
dependencies:
2276
-
call-bind: 1.0.7
2606
+
call-bound: 1.0.4
2277
2607
2278
-
is-string@1.0.7:
2608
+
is-string@1.1.1:
2279
2609
dependencies:
2610
+
call-bound: 1.0.4
2280
2611
has-tostringtag: 1.0.2
2281
2612
2282
-
is-symbol@1.0.4:
2613
+
is-symbol@1.1.1:
2283
2614
dependencies:
2284
-
has-symbols: 1.0.3
2615
+
call-bound: 1.0.4
2616
+
has-symbols: 1.1.0
2617
+
safe-regex-test: 1.1.0
2285
2618
2286
-
is-typed-array@1.1.13:
2619
+
is-typed-array@1.1.15:
2287
2620
dependencies:
2288
-
which-typed-array: 1.1.15
2621
+
which-typed-array: 1.1.19
2289
2622
2290
2623
is-weakmap@2.0.2: {}
2291
2624
2292
-
is-weakref@1.0.2:
2625
+
is-weakref@1.1.1:
2293
2626
dependencies:
2294
-
call-bind: 1.0.7
2627
+
call-bound: 1.0.4
2295
2628
2296
-
is-weakset@2.0.3:
2629
+
is-weakset@2.0.4:
2297
2630
dependencies:
2298
-
call-bind: 1.0.7
2299
-
get-intrinsic: 1.2.4
2631
+
call-bound: 1.0.4
2632
+
get-intrinsic: 1.3.0
2300
2633
2301
2634
isarray@2.0.5: {}
2302
2635
2303
2636
isexe@2.0.0: {}
2304
2637
2305
-
iterator.prototype@1.1.3:
2638
+
iterator.prototype@1.1.5:
2306
2639
dependencies:
2307
-
define-properties: 1.2.1
2308
-
get-intrinsic: 1.2.4
2309
-
has-symbols: 1.0.3
2310
-
reflect.getprototypeof: 1.0.6
2640
+
define-data-property: 1.1.4
2641
+
es-object-atoms: 1.1.1
2642
+
get-intrinsic: 1.3.0
2643
+
get-proto: 1.0.1
2644
+
has-symbols: 1.1.0
2311
2645
set-function-name: 2.0.2
2646
+
2647
+
jiti@2.4.2: {}
2312
2648
2313
2649
js-tokens@4.0.0: {}
2314
2650
···
2325
2661
jsx-ast-utils@3.3.5:
2326
2662
dependencies:
2327
2663
array-includes: 3.1.8
2328
-
array.prototype.flat: 1.3.2
2329
-
object.assign: 4.1.5
2330
-
object.values: 1.2.0
2664
+
array.prototype.flat: 1.3.3
2665
+
object.assign: 4.1.7
2666
+
object.values: 1.2.1
2331
2667
2332
2668
keyv@4.5.4:
2333
2669
dependencies:
···
2348
2684
dependencies:
2349
2685
js-tokens: 4.0.0
2350
2686
2687
+
math-intrinsics@1.1.0: {}
2688
+
2351
2689
merge2@1.4.1: {}
2352
2690
2353
2691
meriyah@6.0.1: {}
···
2358
2696
dependencies:
2359
2697
braces: 3.0.3
2360
2698
picomatch: 2.3.1
2699
+
2700
+
mimic-function@5.0.1: {}
2361
2701
2362
2702
minimatch@3.1.2:
2363
2703
dependencies:
···
2367
2707
dependencies:
2368
2708
brace-expansion: 2.0.1
2369
2709
2370
-
ms@2.1.2: {}
2710
+
ms@2.1.3: {}
2371
2711
2372
2712
nanotar@0.1.1: {}
2373
2713
2374
2714
natural-compare@1.4.0: {}
2715
+
2716
+
node-fetch-native@1.6.6: {}
2375
2717
2376
2718
object-assign@4.1.1: {}
2377
2719
2378
-
object-inspect@1.13.2: {}
2720
+
object-inspect@1.13.4: {}
2379
2721
2380
2722
object-keys@1.1.1: {}
2381
2723
2382
-
object.assign@4.1.5:
2724
+
object.assign@4.1.7:
2383
2725
dependencies:
2384
-
call-bind: 1.0.7
2726
+
call-bind: 1.0.8
2727
+
call-bound: 1.0.4
2385
2728
define-properties: 1.2.1
2386
-
has-symbols: 1.0.3
2729
+
es-object-atoms: 1.1.1
2730
+
has-symbols: 1.1.0
2387
2731
object-keys: 1.1.1
2388
2732
2389
-
object.entries@1.1.8:
2733
+
object.entries@1.1.9:
2390
2734
dependencies:
2391
-
call-bind: 1.0.7
2735
+
call-bind: 1.0.8
2736
+
call-bound: 1.0.4
2392
2737
define-properties: 1.2.1
2393
-
es-object-atoms: 1.0.0
2738
+
es-object-atoms: 1.1.1
2394
2739
2395
2740
object.fromentries@2.0.8:
2396
2741
dependencies:
2397
-
call-bind: 1.0.7
2742
+
call-bind: 1.0.8
2398
2743
define-properties: 1.2.1
2399
-
es-abstract: 1.23.3
2400
-
es-object-atoms: 1.0.0
2744
+
es-abstract: 1.23.9
2745
+
es-object-atoms: 1.1.1
2401
2746
2402
-
object.values@1.2.0:
2747
+
object.values@1.2.1:
2403
2748
dependencies:
2404
-
call-bind: 1.0.7
2749
+
call-bind: 1.0.8
2750
+
call-bound: 1.0.4
2405
2751
define-properties: 1.2.1
2406
-
es-object-atoms: 1.0.0
2752
+
es-object-atoms: 1.1.1
2753
+
2754
+
ofetch@1.4.1:
2755
+
dependencies:
2756
+
destr: 2.0.4
2757
+
node-fetch-native: 1.6.6
2758
+
ufo: 1.5.4
2759
+
2760
+
onetime@7.0.0:
2761
+
dependencies:
2762
+
mimic-function: 5.0.1
2407
2763
2408
2764
optionator@0.9.3:
2409
2765
dependencies:
···
2414
2770
prelude-ls: 1.2.1
2415
2771
type-check: 0.4.0
2416
2772
2773
+
own-keys@1.0.1:
2774
+
dependencies:
2775
+
get-intrinsic: 1.3.0
2776
+
object-keys: 1.1.1
2777
+
safe-push-apply: 1.0.0
2778
+
2417
2779
p-limit@3.1.0:
2418
2780
dependencies:
2419
2781
yocto-queue: 0.1.0
···
2421
2783
p-locate@5.0.0:
2422
2784
dependencies:
2423
2785
p-limit: 3.1.0
2786
+
2787
+
package-manager-detector@1.1.0: {}
2424
2788
2425
2789
parent-module@1.0.1:
2426
2790
dependencies:
···
2432
2796
2433
2797
path-parse@1.0.7: {}
2434
2798
2799
+
pathe@2.0.3: {}
2800
+
2435
2801
picomatch@2.3.1: {}
2436
2802
2437
-
possible-typed-array-names@1.0.0: {}
2803
+
picomatch@4.0.2: {}
2804
+
2805
+
pnpm-workspace-yaml@0.3.1:
2806
+
dependencies:
2807
+
yaml: 2.7.1
2808
+
2809
+
possible-typed-array-names@1.1.0: {}
2438
2810
2439
2811
prelude-ls@1.2.1: {}
2440
2812
···
2453
2825
react-is: 16.13.1
2454
2826
2455
2827
punycode@2.3.1: {}
2828
+
2829
+
quansync@0.2.10: {}
2456
2830
2457
2831
queue-microtask@1.2.3: {}
2458
2832
···
2466
2840
process: 0.11.10
2467
2841
string_decoder: 1.3.0
2468
2842
2469
-
reflect.getprototypeof@1.0.6:
2843
+
reflect.getprototypeof@1.0.10:
2470
2844
dependencies:
2471
-
call-bind: 1.0.7
2845
+
call-bind: 1.0.8
2472
2846
define-properties: 1.2.1
2473
-
es-abstract: 1.23.3
2847
+
es-abstract: 1.23.9
2474
2848
es-errors: 1.3.0
2475
-
get-intrinsic: 1.2.4
2476
-
globalthis: 1.0.4
2477
-
which-builtin-type: 1.1.4
2849
+
es-object-atoms: 1.1.1
2850
+
get-intrinsic: 1.3.0
2851
+
get-proto: 1.0.1
2852
+
which-builtin-type: 1.2.1
2478
2853
2479
-
regexp.prototype.flags@1.5.3:
2854
+
regexp.prototype.flags@1.5.4:
2480
2855
dependencies:
2481
-
call-bind: 1.0.7
2856
+
call-bind: 1.0.8
2482
2857
define-properties: 1.2.1
2483
2858
es-errors: 1.3.0
2859
+
get-proto: 1.0.1
2860
+
gopd: 1.2.0
2484
2861
set-function-name: 2.0.2
2485
2862
2486
2863
resolve-from@4.0.0: {}
2487
2864
2488
2865
resolve@2.0.0-next.5:
2489
2866
dependencies:
2490
-
is-core-module: 2.15.1
2867
+
is-core-module: 2.16.1
2491
2868
path-parse: 1.0.7
2492
2869
supports-preserve-symlinks-flag: 1.0.0
2493
2870
2871
+
restore-cursor@5.1.0:
2872
+
dependencies:
2873
+
onetime: 7.0.0
2874
+
signal-exit: 4.1.0
2875
+
2494
2876
reusify@1.0.4: {}
2495
2877
2496
2878
run-parallel@1.2.0:
2497
2879
dependencies:
2498
2880
queue-microtask: 1.2.3
2499
2881
2500
-
safe-array-concat@1.1.2:
2882
+
safe-array-concat@1.1.3:
2501
2883
dependencies:
2502
-
call-bind: 1.0.7
2503
-
get-intrinsic: 1.2.4
2504
-
has-symbols: 1.0.3
2884
+
call-bind: 1.0.8
2885
+
call-bound: 1.0.4
2886
+
get-intrinsic: 1.3.0
2887
+
has-symbols: 1.1.0
2505
2888
isarray: 2.0.5
2506
2889
2507
-
safe-buffer@5.1.2: {}
2890
+
safe-buffer@5.2.1: {}
2508
2891
2509
-
safe-buffer@5.2.1: {}
2892
+
safe-push-apply@1.0.0:
2893
+
dependencies:
2894
+
es-errors: 1.3.0
2895
+
isarray: 2.0.5
2510
2896
2511
-
safe-regex-test@1.0.3:
2897
+
safe-regex-test@1.1.0:
2512
2898
dependencies:
2513
-
call-bind: 1.0.7
2899
+
call-bound: 1.0.4
2514
2900
es-errors: 1.3.0
2515
-
is-regex: 1.1.4
2901
+
is-regex: 1.2.1
2516
2902
2517
2903
semver@6.3.1: {}
2518
2904
2519
-
semver@7.6.3: {}
2905
+
semver@7.7.1: {}
2520
2906
2521
2907
set-function-length@1.2.2:
2522
2908
dependencies:
2523
2909
define-data-property: 1.1.4
2524
2910
es-errors: 1.3.0
2525
2911
function-bind: 1.1.2
2526
-
get-intrinsic: 1.2.4
2527
-
gopd: 1.0.1
2912
+
get-intrinsic: 1.3.0
2913
+
gopd: 1.2.0
2528
2914
has-property-descriptors: 1.0.2
2529
2915
2530
2916
set-function-name@2.0.2:
···
2534
2920
functions-have-names: 1.2.3
2535
2921
has-property-descriptors: 1.0.2
2536
2922
2923
+
set-proto@1.0.0:
2924
+
dependencies:
2925
+
dunder-proto: 1.0.1
2926
+
es-errors: 1.3.0
2927
+
es-object-atoms: 1.1.1
2928
+
2537
2929
shebang-command@2.0.0:
2538
2930
dependencies:
2539
2931
shebang-regex: 3.0.0
2540
2932
2541
2933
shebang-regex@3.0.0: {}
2542
2934
2543
-
side-channel@1.0.6:
2935
+
side-channel-list@1.0.0:
2936
+
dependencies:
2937
+
es-errors: 1.3.0
2938
+
object-inspect: 1.13.4
2939
+
2940
+
side-channel-map@1.0.1:
2941
+
dependencies:
2942
+
call-bound: 1.0.4
2943
+
es-errors: 1.3.0
2944
+
get-intrinsic: 1.3.0
2945
+
object-inspect: 1.13.4
2946
+
2947
+
side-channel-weakmap@1.0.2:
2544
2948
dependencies:
2545
-
call-bind: 1.0.7
2949
+
call-bound: 1.0.4
2546
2950
es-errors: 1.3.0
2547
-
get-intrinsic: 1.2.4
2548
-
object-inspect: 1.13.2
2951
+
get-intrinsic: 1.3.0
2952
+
object-inspect: 1.13.4
2953
+
side-channel-map: 1.0.1
2954
+
2955
+
side-channel@1.1.0:
2956
+
dependencies:
2957
+
es-errors: 1.3.0
2958
+
object-inspect: 1.13.4
2959
+
side-channel-list: 1.0.0
2960
+
side-channel-map: 1.0.1
2961
+
side-channel-weakmap: 1.0.2
2962
+
2963
+
signal-exit@4.1.0: {}
2549
2964
2550
2965
standalone-electron-types@1.0.0:
2551
2966
dependencies:
2552
2967
'@types/node': 18.17.17
2553
2968
2554
-
string.prototype.matchall@4.0.11:
2969
+
string.prototype.matchall@4.0.12:
2555
2970
dependencies:
2556
-
call-bind: 1.0.7
2971
+
call-bind: 1.0.8
2972
+
call-bound: 1.0.4
2557
2973
define-properties: 1.2.1
2558
-
es-abstract: 1.23.3
2974
+
es-abstract: 1.23.9
2559
2975
es-errors: 1.3.0
2560
-
es-object-atoms: 1.0.0
2561
-
get-intrinsic: 1.2.4
2562
-
gopd: 1.0.1
2563
-
has-symbols: 1.0.3
2564
-
internal-slot: 1.0.7
2565
-
regexp.prototype.flags: 1.5.3
2976
+
es-object-atoms: 1.1.1
2977
+
get-intrinsic: 1.3.0
2978
+
gopd: 1.2.0
2979
+
has-symbols: 1.1.0
2980
+
internal-slot: 1.1.0
2981
+
regexp.prototype.flags: 1.5.4
2566
2982
set-function-name: 2.0.2
2567
-
side-channel: 1.0.6
2983
+
side-channel: 1.1.0
2568
2984
2569
2985
string.prototype.repeat@1.0.0:
2570
2986
dependencies:
2571
2987
define-properties: 1.2.1
2572
-
es-abstract: 1.23.3
2988
+
es-abstract: 1.23.9
2573
2989
2574
-
string.prototype.trim@1.2.9:
2990
+
string.prototype.trim@1.2.10:
2575
2991
dependencies:
2576
-
call-bind: 1.0.7
2992
+
call-bind: 1.0.8
2993
+
call-bound: 1.0.4
2994
+
define-data-property: 1.1.4
2577
2995
define-properties: 1.2.1
2578
-
es-abstract: 1.23.3
2579
-
es-object-atoms: 1.0.0
2996
+
es-abstract: 1.23.9
2997
+
es-object-atoms: 1.1.1
2998
+
has-property-descriptors: 1.0.2
2580
2999
2581
-
string.prototype.trimend@1.0.8:
3000
+
string.prototype.trimend@1.0.9:
2582
3001
dependencies:
2583
-
call-bind: 1.0.7
3002
+
call-bind: 1.0.8
3003
+
call-bound: 1.0.4
2584
3004
define-properties: 1.2.1
2585
-
es-object-atoms: 1.0.0
3005
+
es-object-atoms: 1.1.1
2586
3006
2587
3007
string.prototype.trimstart@1.0.8:
2588
3008
dependencies:
2589
-
call-bind: 1.0.7
3009
+
call-bind: 1.0.8
2590
3010
define-properties: 1.2.1
2591
-
es-object-atoms: 1.0.0
3011
+
es-object-atoms: 1.1.1
2592
3012
2593
3013
string_decoder@1.3.0:
2594
3014
dependencies:
···
2602
3022
2603
3023
supports-preserve-symlinks-flag@1.0.0: {}
2604
3024
2605
-
synckit@0.9.2:
3025
+
synckit@0.11.1:
2606
3026
dependencies:
2607
-
'@pkgr/core': 0.1.1
2608
-
tslib: 2.7.0
3027
+
'@pkgr/core': 0.2.0
3028
+
tslib: 2.8.1
3029
+
3030
+
taze@19.0.4:
3031
+
dependencies:
3032
+
'@antfu/ni': 24.3.0
3033
+
cac: 6.7.14
3034
+
find-up-simple: 1.0.1
3035
+
ofetch: 1.4.1
3036
+
package-manager-detector: 1.1.0
3037
+
pathe: 2.0.3
3038
+
pnpm-workspace-yaml: 0.3.1
3039
+
restore-cursor: 5.1.0
3040
+
tinyexec: 1.0.1
3041
+
tinyglobby: 0.2.12
3042
+
unconfig: 7.3.1
3043
+
yaml: 2.7.1
3044
+
3045
+
tinyexec@1.0.1: {}
2609
3046
2610
-
text-table@0.2.0: {}
3047
+
tinyglobby@0.2.12:
3048
+
dependencies:
3049
+
fdir: 6.4.3(picomatch@4.0.2)
3050
+
picomatch: 4.0.2
2611
3051
2612
3052
to-regex-range@5.0.1:
2613
3053
dependencies:
2614
3054
is-number: 7.0.0
2615
3055
2616
-
ts-api-utils@1.3.0(typescript@5.3.2):
3056
+
ts-api-utils@2.1.0(typescript@5.8.2):
2617
3057
dependencies:
2618
-
typescript: 5.3.2
3058
+
typescript: 5.8.2
2619
3059
2620
-
tslib@2.7.0: {}
3060
+
tslib@2.8.1: {}
2621
3061
2622
3062
type-check@0.4.0:
2623
3063
dependencies:
2624
3064
prelude-ls: 1.2.1
2625
3065
2626
-
typed-array-buffer@1.0.2:
3066
+
typed-array-buffer@1.0.3:
2627
3067
dependencies:
2628
-
call-bind: 1.0.7
3068
+
call-bound: 1.0.4
2629
3069
es-errors: 1.3.0
2630
-
is-typed-array: 1.1.13
3070
+
is-typed-array: 1.1.15
2631
3071
2632
-
typed-array-byte-length@1.0.1:
3072
+
typed-array-byte-length@1.0.3:
2633
3073
dependencies:
2634
-
call-bind: 1.0.7
2635
-
for-each: 0.3.3
2636
-
gopd: 1.0.1
2637
-
has-proto: 1.0.3
2638
-
is-typed-array: 1.1.13
3074
+
call-bind: 1.0.8
3075
+
for-each: 0.3.5
3076
+
gopd: 1.2.0
3077
+
has-proto: 1.2.0
3078
+
is-typed-array: 1.1.15
2639
3079
2640
-
typed-array-byte-offset@1.0.2:
3080
+
typed-array-byte-offset@1.0.4:
2641
3081
dependencies:
2642
3082
available-typed-arrays: 1.0.7
2643
-
call-bind: 1.0.7
2644
-
for-each: 0.3.3
2645
-
gopd: 1.0.1
2646
-
has-proto: 1.0.3
2647
-
is-typed-array: 1.1.13
3083
+
call-bind: 1.0.8
3084
+
for-each: 0.3.5
3085
+
gopd: 1.2.0
3086
+
has-proto: 1.2.0
3087
+
is-typed-array: 1.1.15
3088
+
reflect.getprototypeof: 1.0.10
2648
3089
2649
-
typed-array-length@1.0.6:
3090
+
typed-array-length@1.0.7:
2650
3091
dependencies:
2651
-
call-bind: 1.0.7
2652
-
for-each: 0.3.3
2653
-
gopd: 1.0.1
2654
-
has-proto: 1.0.3
2655
-
is-typed-array: 1.1.13
2656
-
possible-typed-array-names: 1.0.0
3092
+
call-bind: 1.0.8
3093
+
for-each: 0.3.5
3094
+
gopd: 1.2.0
3095
+
is-typed-array: 1.1.15
3096
+
possible-typed-array-names: 1.1.0
3097
+
reflect.getprototypeof: 1.0.10
2657
3098
2658
-
typescript-eslint@8.8.1(eslint@9.12.0)(typescript@5.3.2):
3099
+
typescript-eslint@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2):
2659
3100
dependencies:
2660
-
'@typescript-eslint/eslint-plugin': 8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0)(typescript@5.3.2))(eslint@9.12.0)(typescript@5.3.2)
2661
-
'@typescript-eslint/parser': 8.8.1(eslint@9.12.0)(typescript@5.3.2)
2662
-
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0)(typescript@5.3.2)
2663
-
optionalDependencies:
2664
-
typescript: 5.3.2
3101
+
'@typescript-eslint/eslint-plugin': 8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)
3102
+
'@typescript-eslint/parser': 8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)
3103
+
'@typescript-eslint/utils': 8.29.0(eslint@9.23.0(jiti@2.4.2))(typescript@5.8.2)
3104
+
eslint: 9.23.0(jiti@2.4.2)
3105
+
typescript: 5.8.2
2665
3106
transitivePeerDependencies:
2666
-
- eslint
2667
3107
- supports-color
2668
3108
2669
-
typescript@5.3.2: {}
3109
+
typescript@5.8.2: {}
2670
3110
2671
-
unbox-primitive@1.0.2:
3111
+
ufo@1.5.4: {}
3112
+
3113
+
unbox-primitive@1.1.0:
3114
+
dependencies:
3115
+
call-bound: 1.0.4
3116
+
has-bigints: 1.1.0
3117
+
has-symbols: 1.1.0
3118
+
which-boxed-primitive: 1.1.1
3119
+
3120
+
unconfig@7.3.1:
2672
3121
dependencies:
2673
-
call-bind: 1.0.7
2674
-
has-bigints: 1.0.2
2675
-
has-symbols: 1.0.3
2676
-
which-boxed-primitive: 1.0.2
3122
+
'@quansync/fs': 0.1.2
3123
+
defu: 6.1.4
3124
+
jiti: 2.4.2
3125
+
quansync: 0.2.10
2677
3126
2678
3127
undici-types@6.20.0: {}
2679
3128
3129
+
undici-types@6.21.0: {}
3130
+
2680
3131
uri-js@4.4.1:
2681
3132
dependencies:
2682
3133
punycode: 2.3.1
2683
3134
2684
-
utilium@1.1.3:
3135
+
utilium@1.10.1:
2685
3136
dependencies:
2686
3137
eventemitter3: 5.0.1
2687
3138
optionalDependencies:
2688
3139
'@xterm/xterm': 5.5.0
2689
3140
2690
-
which-boxed-primitive@1.0.2:
3141
+
which-boxed-primitive@1.1.1:
2691
3142
dependencies:
2692
-
is-bigint: 1.0.4
2693
-
is-boolean-object: 1.1.2
2694
-
is-number-object: 1.0.7
2695
-
is-string: 1.0.7
2696
-
is-symbol: 1.0.4
3143
+
is-bigint: 1.1.0
3144
+
is-boolean-object: 1.2.2
3145
+
is-number-object: 1.1.1
3146
+
is-string: 1.1.1
3147
+
is-symbol: 1.1.1
2697
3148
2698
-
which-builtin-type@1.1.4:
3149
+
which-builtin-type@1.2.1:
2699
3150
dependencies:
2700
-
function.prototype.name: 1.1.6
3151
+
call-bound: 1.0.4
3152
+
function.prototype.name: 1.1.8
2701
3153
has-tostringtag: 1.0.2
2702
-
is-async-function: 2.0.0
2703
-
is-date-object: 1.0.5
2704
-
is-finalizationregistry: 1.0.2
2705
-
is-generator-function: 1.0.10
2706
-
is-regex: 1.1.4
2707
-
is-weakref: 1.0.2
3154
+
is-async-function: 2.1.1
3155
+
is-date-object: 1.1.0
3156
+
is-finalizationregistry: 1.1.1
3157
+
is-generator-function: 1.1.0
3158
+
is-regex: 1.2.1
3159
+
is-weakref: 1.1.1
2708
3160
isarray: 2.0.5
2709
-
which-boxed-primitive: 1.0.2
3161
+
which-boxed-primitive: 1.1.1
2710
3162
which-collection: 1.0.2
2711
-
which-typed-array: 1.1.15
3163
+
which-typed-array: 1.1.19
2712
3164
2713
3165
which-collection@1.0.2:
2714
3166
dependencies:
2715
3167
is-map: 2.0.3
2716
3168
is-set: 2.0.3
2717
3169
is-weakmap: 2.0.2
2718
-
is-weakset: 2.0.3
3170
+
is-weakset: 2.0.4
2719
3171
2720
-
which-typed-array@1.1.15:
3172
+
which-typed-array@1.1.19:
2721
3173
dependencies:
2722
3174
available-typed-arrays: 1.0.7
2723
-
call-bind: 1.0.7
2724
-
for-each: 0.3.3
2725
-
gopd: 1.0.1
3175
+
call-bind: 1.0.8
3176
+
call-bound: 1.0.4
3177
+
for-each: 0.3.5
3178
+
get-proto: 1.0.1
3179
+
gopd: 1.2.0
2726
3180
has-tostringtag: 1.0.2
2727
3181
2728
3182
which@2.0.2:
2729
3183
dependencies:
2730
3184
isexe: 2.0.0
2731
3185
3186
+
yaml@2.7.1: {}
3187
+
2732
3188
yocto-queue@0.1.0: {}
2733
3189
2734
-
zustand@5.0.3(@types/react@18.3.10):
3190
+
zustand@5.0.3(@types/react@18.3.20):
2735
3191
optionalDependencies:
2736
-
'@types/react': 18.3.10
3192
+
'@types/react': 18.3.20
+31
-1
pnpm-workspace.yaml
+31
-1
pnpm-workspace.yaml
···
1
1
packages:
2
-
- "packages/*"
2
+
- packages/*
3
+
4
+
catalogs:
5
+
dev:
6
+
esbuild: ^0.19.3
7
+
esbuild-copy-static-files: ^0.1.0
8
+
"@types/node": ^22.14.0
9
+
"@moonlight-mod/eslint-config": "github:moonlight-mod/eslint-config"
10
+
eslint: ^9.12.0
11
+
"@types/chrome": ^0.0.313
12
+
husky: ^8.0.3
13
+
prettier: ^3.1.0
14
+
typescript: ^5.3.3
15
+
taze: ^19.0.4
16
+
prod:
17
+
"@moonlight-mod/lunast": ^1.0.1
18
+
"@moonlight-mod/mappings": ^1.1.25
19
+
"@moonlight-mod/moonmap": ^1.0.5
20
+
microdiff: ^1.5.0
21
+
nanotar: ^0.1.1
22
+
"@zenfs/core": ^2.0.0
23
+
"@zenfs/dom": ^1.1.3
24
+
25
+
onlyBuiltDependencies:
26
+
- esbuild
27
+
28
+
engineStrict: true
29
+
strictSsl: true
30
+
strictDepBuilds: true
31
+
packageManagerStrict: true
32
+
registry: https://registry.npmjs.org/
-78
scripts/link.js
-78
scripts/link.js
···
1
-
// Janky script to get around pnpm link issues
2
-
// Probably don't use this. Probably
3
-
/* eslint-disable no-console */
4
-
const fs = require("fs");
5
-
const path = require("path");
6
-
const child_process = require("child_process");
7
-
8
-
const cwd = process.cwd();
9
-
const onDisk = {
10
-
//"@moonlight-mod/lunast": "../lunast",
11
-
//"@moonlight-mod/moonmap": "../moonmap",
12
-
"@moonlight-mod/mappings": "../mappings"
13
-
};
14
-
15
-
function exec(cmd, dir) {
16
-
child_process.execSync(cmd, { cwd: dir, stdio: "inherit" });
17
-
}
18
-
19
-
function getDeps(packageJSON) {
20
-
const ret = {};
21
-
Object.assign(ret, packageJSON.dependencies || {});
22
-
Object.assign(ret, packageJSON.devDependencies || {});
23
-
Object.assign(ret, packageJSON.peerDependencies || {});
24
-
return ret;
25
-
}
26
-
27
-
function link(dir) {
28
-
const packageJSONPath = path.join(dir, "package.json");
29
-
if (!fs.existsSync(packageJSONPath)) return;
30
-
const packageJSON = JSON.parse(fs.readFileSync(packageJSONPath, "utf8"));
31
-
const deps = getDeps(packageJSON);
32
-
33
-
for (const [dep, relativePath] of Object.entries(onDisk)) {
34
-
const fullPath = path.join(cwd, relativePath);
35
-
if (deps[dep]) {
36
-
exec(`pnpm link ${fullPath}`, dir);
37
-
}
38
-
}
39
-
}
40
-
41
-
function undo(dir) {
42
-
exec("pnpm unlink", dir);
43
-
try {
44
-
if (fs.existsSync(path.join(dir, "pnpm-lock.yaml"))) {
45
-
exec("git restore pnpm-lock.yaml", dir);
46
-
}
47
-
} catch {
48
-
// ignored
49
-
}
50
-
}
51
-
52
-
const shouldUndo = process.argv.includes("--undo");
53
-
const packages = fs.readdirSync("./packages");
54
-
55
-
for (const path of Object.values(onDisk)) {
56
-
console.log(path);
57
-
if (shouldUndo) {
58
-
undo(path);
59
-
} else {
60
-
link(path);
61
-
}
62
-
}
63
-
64
-
if (shouldUndo) {
65
-
console.log(cwd);
66
-
undo(cwd);
67
-
for (const pkg of packages) {
68
-
const dir = path.join(cwd, "packages", pkg);
69
-
console.log(dir);
70
-
undo(dir);
71
-
}
72
-
} else {
73
-
for (const pkg of packages) {
74
-
const dir = path.join(cwd, "packages", pkg);
75
-
console.log(dir);
76
-
link(dir);
77
-
}
78
-
}
+78
scripts/link.mjs
+78
scripts/link.mjs
···
1
+
// Janky script to get around pnpm link issues
2
+
// Probably don't use this. Probably
3
+
/* eslint-disable no-console */
4
+
const fs = require("fs");
5
+
const path = require("path");
6
+
const child_process = require("child_process");
7
+
8
+
const cwd = process.cwd();
9
+
const onDisk = {
10
+
//"@moonlight-mod/lunast": "../lunast",
11
+
//"@moonlight-mod/moonmap": "../moonmap",
12
+
"@moonlight-mod/mappings": "../mappings"
13
+
};
14
+
15
+
function exec(cmd, dir) {
16
+
child_process.execSync(cmd, { cwd: dir, stdio: "inherit" });
17
+
}
18
+
19
+
function getDeps(packageJSON) {
20
+
const ret = {};
21
+
Object.assign(ret, packageJSON.dependencies || {});
22
+
Object.assign(ret, packageJSON.devDependencies || {});
23
+
Object.assign(ret, packageJSON.peerDependencies || {});
24
+
return ret;
25
+
}
26
+
27
+
function link(dir) {
28
+
const packageJSONPath = path.join(dir, "package.json");
29
+
if (!fs.existsSync(packageJSONPath)) return;
30
+
const packageJSON = JSON.parse(fs.readFileSync(packageJSONPath, "utf8"));
31
+
const deps = getDeps(packageJSON);
32
+
33
+
for (const [dep, relativePath] of Object.entries(onDisk)) {
34
+
const fullPath = path.join(cwd, relativePath);
35
+
if (deps[dep]) {
36
+
exec(`pnpm link ${fullPath}`, dir);
37
+
}
38
+
}
39
+
}
40
+
41
+
function undo(dir) {
42
+
exec("pnpm unlink", dir);
43
+
try {
44
+
if (fs.existsSync(path.join(dir, "pnpm-lock.yaml"))) {
45
+
exec("git restore pnpm-lock.yaml", dir);
46
+
}
47
+
} catch {
48
+
// ignored
49
+
}
50
+
}
51
+
52
+
const shouldUndo = process.argv.includes("--undo");
53
+
const packages = fs.readdirSync("./packages");
54
+
55
+
for (const path of Object.values(onDisk)) {
56
+
console.log(path);
57
+
if (shouldUndo) {
58
+
undo(path);
59
+
} else {
60
+
link(path);
61
+
}
62
+
}
63
+
64
+
if (shouldUndo) {
65
+
console.log(cwd);
66
+
undo(cwd);
67
+
for (const pkg of packages) {
68
+
const dir = path.join(cwd, "packages", pkg);
69
+
console.log(dir);
70
+
undo(dir);
71
+
}
72
+
} else {
73
+
for (const pkg of packages) {
74
+
const dir = path.join(cwd, "packages", pkg);
75
+
console.log(dir);
76
+
link(dir);
77
+
}
78
+
}
-29
scripts/update.js
-29
scripts/update.js
···
1
-
// Update dependencies in all packages
2
-
/* eslint-disable no-console */
3
-
const fs = require("fs");
4
-
const path = require("path");
5
-
const child_process = require("child_process");
6
-
7
-
const packageToUpdate = process.argv[2];
8
-
9
-
function getDeps(packageJSON) {
10
-
const ret = {};
11
-
Object.assign(ret, packageJSON.dependencies || {});
12
-
Object.assign(ret, packageJSON.devDependencies || {});
13
-
Object.assign(ret, packageJSON.peerDependencies || {});
14
-
return ret;
15
-
}
16
-
17
-
function exec(cmd, dir) {
18
-
child_process.execSync(cmd, { cwd: dir, stdio: "inherit" });
19
-
}
20
-
21
-
for (const package of fs.readdirSync("./packages")) {
22
-
const packageJSON = JSON.parse(fs.readFileSync(path.join("./packages", package, "package.json"), "utf8"));
23
-
24
-
const deps = getDeps(packageJSON);
25
-
if (Object.keys(deps).includes(packageToUpdate)) {
26
-
console.log(`Updating ${packageToUpdate} in ${package}`);
27
-
exec(`pnpm update ${packageToUpdate}`, path.join("./packages", package));
28
-
}
29
-
}
+35
tsconfig.base.json
+35
tsconfig.base.json
···
1
+
{
2
+
"$schema": "https://json.schemastore.org/tsconfig.json",
3
+
"display": "Base",
4
+
"_version": "1.0.0",
5
+
"compilerOptions": {
6
+
"incremental": true,
7
+
"target": "ES2022",
8
+
"jsx": "react",
9
+
"lib": ["ESNext", "ESNext.Disposable", "DOM", "DOM.Iterable"],
10
+
"module": "ES2020",
11
+
"moduleResolution": "Bundler",
12
+
"resolveJsonModule": true,
13
+
"allowArbitraryExtensions": false,
14
+
"allowImportingTsExtensions": true,
15
+
"allowJs": true,
16
+
"strict": true,
17
+
"strictNullChecks": true,
18
+
19
+
// disable unreachable code detection because it breaks with esbuild labels
20
+
"allowUnreachableCode": true,
21
+
"noFallthroughCasesInSwitch": true,
22
+
"noImplicitReturns": true,
23
+
"declaration": true,
24
+
"declarationMap": true,
25
+
"outDir": "dist",
26
+
"sourceMap": true,
27
+
"stripInternal": true,
28
+
"esModuleInterop": true,
29
+
"forceConsistentCasingInFileNames": true,
30
+
"noErrorTruncation": true,
31
+
"verbatimModuleSyntax": false,
32
+
// meriyah has a broken import lol
33
+
"skipLibCheck": true
34
+
}
35
+
}
+7
-16
tsconfig.json
+7
-16
tsconfig.json
···
1
1
{
2
+
"extends": ["./tsconfig.base.json"],
2
3
"compilerOptions": {
3
-
"target": "es2022",
4
-
"module": "es2020",
5
-
"esModuleInterop": true,
6
-
"forceConsistentCasingInFileNames": true,
7
-
"strict": true,
8
-
"moduleResolution": "bundler",
9
4
"baseUrl": "./packages/",
10
-
"jsx": "react",
11
-
"noEmit": true,
12
-
13
-
// meriyah has a broken import lol
14
-
"skipLibCheck": true,
15
-
16
-
// disable unreachable code detection because it breaks with esbuild labels
17
-
"allowUnreachableCode": true
5
+
"noEmit": true
18
6
},
19
-
"include": ["./packages/**/*", "./env.d.ts"],
20
-
"exclude": ["node_modules"]
7
+
"exclude": [
8
+
"**/node_modules/**",
9
+
"**/dist/**",
10
+
"**/build/**"
11
+
]
21
12
}