From c7763227d09cbb569c749f7dd0a7884c14ace5a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=B8=80=E4=B9=8B?= Date: Tue, 15 Apr 2025 00:52:23 +0800 Subject: [PATCH] setting --- eslint/linter-config.ts | 42 ++-- package.json | 2 + packages/filesystem/auth.ts | 25 +- packages/filesystem/baidu/baidu.ts | 63 ++--- packages/filesystem/onedrive/onedrive.ts | 45 ++-- packages/filesystem/webdav/rw.ts | 9 +- packages/filesystem/webdav/webdav.ts | 29 +-- pnpm-lock.yaml | 195 ++++++++++++++-- src/app/const.ts | 8 +- src/locales/en/translation.json | 3 +- src/locales/zh-CN/translation.json | 3 +- .../components/FileSystemParams/index.tsx | 7 +- src/pages/components/GMApiSetting/index.tsx | 55 ++--- src/pages/components/ScriptMenuList/index.tsx | 9 +- src/pages/components/layout/MainLayout.tsx | 2 +- src/pages/options/routes/ScriptList.tsx | 17 +- src/pages/options/routes/Setting.tsx | 126 ++++++---- src/pages/options/routes/Tools.tsx | 78 ++----- src/pages/store/features/config.ts | 51 ++++ src/pages/store/features/setting.ts | 82 ------- src/pages/store/global.ts | 2 + src/pages/store/store.ts | 4 +- src/pkg/config/chrome_storage.ts | 58 +++++ src/pkg/config/config.ts | 217 ++++++++++++++++++ 24 files changed, 748 insertions(+), 384 deletions(-) create mode 100644 src/pages/store/features/config.ts delete mode 100644 src/pages/store/features/setting.ts create mode 100644 src/pkg/config/chrome_storage.ts create mode 100644 src/pkg/config/config.ts diff --git a/eslint/linter-config.ts b/eslint/linter-config.ts index 0ff9785..8d97833 100644 --- a/eslint/linter-config.ts +++ b/eslint/linter-config.ts @@ -19,26 +19,26 @@ const userscriptsConfig = { }, }; -const userscriptsRules = Object.fromEntries( - Object.keys(userscriptsConfig.rules).map((name) => { - const ruleName = name.split("/")[1]; - // eslint-disable-next-line import/no-dynamic-require, global-require - const ruleMeta = require(`eslint-plugin-userscripts/lib/rules/${ruleName}.js`); - return [ - name, - { - ...ruleMeta, - meta: { - ...ruleMeta.meta, - docs: { - ...ruleMeta.meta.docs, - url: `https://yash-singh1.github.io/eslint-plugin-userscripts/#/rules/${ruleName}`, - }, - }, - }, - ]; - }) -); +// const userscriptsRules = Object.fromEntries( +// Object.keys(userscriptsConfig.rules).map((name) => { +// const ruleName = name.split("/")[1]; +// // eslint-disable-next-line import/no-dynamic-require, global-require +// const ruleMeta = require(`eslint-plugin-userscripts/lib/rules/${ruleName}.js`); +// return [ +// name, +// { +// ...ruleMeta, +// meta: { +// ...ruleMeta.meta, +// docs: { +// ...ruleMeta.meta.docs, +// url: `https://yash-singh1.github.io/eslint-plugin-userscripts/#/rules/${ruleName}`, +// }, +// }, +// }, +// ]; +// }) +// ); // 默认规则 const config = { @@ -128,4 +128,4 @@ const config = { // 以文本形式导出默认规则 const defaultConfig = JSON.stringify(config); -export { defaultConfig, userscriptsConfig, userscriptsRules }; +export { defaultConfig, userscriptsConfig }; diff --git a/package.json b/package.json index 82139c8..c3e605a 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "react-router-dom": "^7.1.1", "semver": "^7.6.3", "uuid": "^11.0.3", + "webdav": "^5.8.0", "yaml": "^2.6.1" }, "devDependencies": { @@ -63,6 +64,7 @@ "eslint": "^9.24.0", "eslint-plugin-react": "^7.37.4", "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-userscripts": "^0.5.6", "fake-indexeddb": "^6.0.0", "globals": "^16.0.0", "jsdom": "^25.0.1", diff --git a/packages/filesystem/auth.ts b/packages/filesystem/auth.ts index 945b96e..04598ba 100644 --- a/packages/filesystem/auth.ts +++ b/packages/filesystem/auth.ts @@ -1,7 +1,4 @@ -/* eslint-disable camelcase */ -/* eslint-disable import/prefer-default-export */ -import { ExtServer } from "@App/app/const"; -import { api } from "@App/pkg/axios"; +import { ExtServer, ExtServerApi } from "@App/app/const"; import { WarpTokenError } from "./error"; type NetDiskType = "baidu" | "onedrive"; @@ -11,8 +8,8 @@ export function GetNetDiskToken(netDiskType: NetDiskType): Promise<{ msg: string; data: { token: { access_token: string; refresh_token: string } }; }> { - return api - .get(`/auth/net-disk/token?netDiskType=${netDiskType}`) + return fetch(ExtServerApi + `auth/net-disk/token?netDiskType=${netDiskType}`) + .then((resp) => resp.json()) .then((resp) => { return resp.data; }); @@ -26,11 +23,17 @@ export function RefreshToken( msg: string; data: { token: { access_token: string; refresh_token: string } }; }> { - return api - .post(`/auth/net-disk/token/refresh?netDiskType=${netDiskType}`, { + return fetch(ExtServerApi + `auth/net-disk/token/refresh?netDiskType=${netDiskType}`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ netDiskType, refreshToken, - }) + }), + }) + .then((resp) => resp.json()) .then((resp) => { return resp.data; }); @@ -38,9 +41,7 @@ export function RefreshToken( export function NetDisk(netDiskType: NetDiskType) { return new Promise((resolve) => { - const loginWindow = window.open( - `${ExtServer}api/v1/auth/net-disk?netDiskType=${netDiskType}` - ); + const loginWindow = window.open(`${ExtServer}api/v1/auth/net-disk?netDiskType=${netDiskType}`); const t = setInterval(() => { try { if (loginWindow!.closed) { diff --git a/packages/filesystem/baidu/baidu.ts b/packages/filesystem/baidu/baidu.ts index e8a5d28..0d25972 100644 --- a/packages/filesystem/baidu/baidu.ts +++ b/packages/filesystem/baidu/baidu.ts @@ -1,5 +1,3 @@ -/* eslint-disable no-unused-vars */ -import IoC from "@App/app/ioc"; import { SystemConfig } from "@App/pkg/config/config"; import { AuthVerify } from "../auth"; import FileSystem, { File, FileReader, FileWriter } from "../filesystem"; @@ -11,12 +9,9 @@ export default class BaiduFileSystem implements FileSystem { path: string; - systemConfig: SystemConfig; - constructor(path?: string, accessToken?: string) { this.path = path || "/apps"; this.accessToken = accessToken; - this.systemConfig = IoC.instance(SystemConfig) as SystemConfig; } async verify(): Promise { @@ -31,15 +26,11 @@ export default class BaiduFileSystem implements FileSystem { } openDir(path: string): Promise { - return Promise.resolve( - new BaiduFileSystem(joinPath(this.path, path), this.accessToken) - ); + return Promise.resolve(new BaiduFileSystem(joinPath(this.path, path), this.accessToken)); } create(path: string): Promise { - return Promise.resolve( - new BaiduFileWriter(this, joinPath(this.path, path)) - ); + return Promise.resolve(new BaiduFileWriter(this, joinPath(this.path, path))); } createDir(dir: string): Promise { @@ -51,15 +42,12 @@ export default class BaiduFileSystem implements FileSystem { urlencoded.append("rtype", "3"); const myHeaders = new Headers(); myHeaders.append("Content-Type", "application/x-www-form-urlencoded"); - return this.request( - `https://pan.baidu.com/rest/2.0/xpan/file?method=create&access_token=${this.accessToken}`, - { - method: "POST", - headers: myHeaders, - body: urlencoded, - redirect: "follow", - } - ).then((data) => { + return this.request(`https://pan.baidu.com/rest/2.0/xpan/file?method=create&access_token=${this.accessToken}`, { + method: "POST", + headers: myHeaders, + body: urlencoded, + redirect: "follow", + }).then((data) => { if (data.errno) { throw new Error(JSON.stringify(data)); } @@ -71,9 +59,23 @@ export default class BaiduFileSystem implements FileSystem { request(url: string, config?: RequestInit) { config = config || {}; const headers = config.headers || new Headers(); - // 利用GM函数的匿名实现不发送cookie,因为某些情况cookie会导致-6错误 - headers.append(`${this.systemConfig.scriptCatFlag}-gm-xhr`, "true"); - headers.append(`${this.systemConfig.scriptCatFlag}-anonymous`, "true"); + // 处理请求匿名不发送cookie + chrome.declarativeNetRequest.updateDynamicRules({ + removeRuleIds: [100], + addRules: [ + { + id: 100, + action: { + type: chrome.declarativeNetRequest.RuleActionType.MODIFY_HEADERS, + responseHeaders: [{ operation: chrome.declarativeNetRequest.HeaderOperation.REMOVE, header: "cookie" }], + }, + condition: { + urlFilter: url, + resourceTypes: [chrome.declarativeNetRequest.ResourceType.XMLHTTPREQUEST], + }, + }, + ], + }); config.headers = headers; return fetch(url, config) .then((data) => data.json()) @@ -92,6 +94,11 @@ export default class BaiduFileSystem implements FileSystem { }); } return data; + }) + .finally(() => { + chrome.declarativeNetRequest.updateDynamicRules({ + removeRuleIds: [100], + }); }); } @@ -103,9 +110,7 @@ export default class BaiduFileSystem implements FileSystem { `https://pan.baidu.com/rest/2.0/xpan/file?method=filemanager&access_token=${this.accessToken}&opera=delete`, { method: "POST", - body: `async=0&filelist=${encodeURIComponent( - JSON.stringify(filelist) - )}`, + body: `async=0&filelist=${encodeURIComponent(JSON.stringify(filelist))}`, headers: myHeaders, } ).then((data) => { @@ -145,10 +150,6 @@ export default class BaiduFileSystem implements FileSystem { } getDirUrl(): Promise { - return Promise.resolve( - `https://pan.baidu.com/disk/main#/index?category=all&path=${encodeURIComponent( - this.path - )}` - ); + return Promise.resolve(`https://pan.baidu.com/disk/main#/index?category=all&path=${encodeURIComponent(this.path)}`); } } diff --git a/packages/filesystem/onedrive/onedrive.ts b/packages/filesystem/onedrive/onedrive.ts index c48b1c6..8223663 100644 --- a/packages/filesystem/onedrive/onedrive.ts +++ b/packages/filesystem/onedrive/onedrive.ts @@ -1,6 +1,3 @@ -/* eslint-disable no-unused-vars */ -import IoC from "@App/app/ioc"; -import { SystemConfig } from "@App/pkg/config/config"; import { AuthVerify } from "../auth"; import FileSystem, { File, FileReader, FileWriter } from "../filesystem"; import { joinPath } from "../utils"; @@ -11,12 +8,9 @@ export default class OneDriveFileSystem implements FileSystem { path: string; - systemConfig: SystemConfig; - constructor(path?: string, accessToken?: string) { this.path = path || "/"; this.accessToken = accessToken; - this.systemConfig = IoC.instance(SystemConfig) as SystemConfig; } async verify(): Promise { @@ -33,15 +27,11 @@ export default class OneDriveFileSystem implements FileSystem { if (path.startsWith("ScriptCat")) { path = path.substring(9); } - return Promise.resolve( - new OneDriveFileSystem(joinPath(this.path, path), this.accessToken) - ); + return Promise.resolve(new OneDriveFileSystem(joinPath(this.path, path), this.accessToken)); } create(path: string): Promise { - return Promise.resolve( - new OneDriveFileWriter(this, joinPath(this.path, path)) - ); + return Promise.resolve(new OneDriveFileWriter(this, joinPath(this.path, path))); } createDir(dir: string): Promise { @@ -65,18 +55,15 @@ export default class OneDriveFileSystem implements FileSystem { if (parent !== "") { parent = `:${parent}:`; } - return this.request( - `https://graph.microsoft.com/v1.0/me/drive/special/approot${parent}/children`, - { - method: "POST", - headers: myHeaders, - body: JSON.stringify({ - name: dirs[dirs.length - 1], - folder: {}, - "@microsoft.graph.conflictBehavior": "replace", - }), - } - ).then((data: any) => { + return this.request(`https://graph.microsoft.com/v1.0/me/drive/special/approot${parent}/children`, { + method: "POST", + headers: myHeaders, + body: JSON.stringify({ + name: dirs[dirs.length - 1], + folder: {}, + "@microsoft.graph.conflictBehavior": "replace", + }), + }).then((data: any) => { if (data.errno) { throw new Error(JSON.stringify(data)); } @@ -84,7 +71,6 @@ export default class OneDriveFileSystem implements FileSystem { }); } - // eslint-disable-next-line no-undef request(url: string, config?: RequestInit, nothen?: boolean) { config = config || {}; const headers = config.headers || new Headers(); @@ -121,10 +107,7 @@ export default class OneDriveFileSystem implements FileSystem { delete(path: string): Promise { return this.request( - `https://graph.microsoft.com/v1.0/me/drive/special/approot:${joinPath( - this.path, - path - )}`, + `https://graph.microsoft.com/v1.0/me/drive/special/approot:${joinPath(this.path, path)}`, { method: "DELETE", }, @@ -144,9 +127,7 @@ export default class OneDriveFileSystem implements FileSystem { } else { path = `:${path}:`; } - return this.request( - `https://graph.microsoft.com/v1.0/me/drive/special/approot${path}/children` - ).then((data) => { + return this.request(`https://graph.microsoft.com/v1.0/me/drive/special/approot${path}/children`).then((data) => { const list: File[] = []; data.value.forEach((val: any) => { list.push({ diff --git a/packages/filesystem/webdav/rw.ts b/packages/filesystem/webdav/rw.ts index 2489b1f..d7e7c0c 100644 --- a/packages/filesystem/webdav/rw.ts +++ b/packages/filesystem/webdav/rw.ts @@ -1,6 +1,4 @@ -/* eslint-disable max-classes-per-file */ -/* eslint-disable import/prefer-default-export */ -import { WebDAVClient } from "webdav/web"; +import { WebDAVClient } from "webdav"; import { FileReader, FileWriter } from "../filesystem"; export class WebDAVFileReader implements FileReader { @@ -42,10 +40,7 @@ export class WebDAVFileWriter implements FileWriter { async write(content: string | Blob): Promise { let resp; if (content instanceof Blob) { - resp = await this.client.putFileContents( - this.path, - await content.arrayBuffer() - ); + resp = await this.client.putFileContents(this.path, await content.arrayBuffer()); } else { resp = await this.client.putFileContents(this.path, content); } diff --git a/packages/filesystem/webdav/webdav.ts b/packages/filesystem/webdav/webdav.ts index e61012a..9823214 100644 --- a/packages/filesystem/webdav/webdav.ts +++ b/packages/filesystem/webdav/webdav.ts @@ -1,4 +1,4 @@ -import { AuthType, createClient, FileStat, WebDAVClient } from "webdav/web"; +import { AuthType, createClient, FileStat, WebDAVClient } from "webdav"; import FileSystem, { File, FileReader, FileWriter } from "../filesystem"; import { joinPath } from "../utils"; import { WebDAVFileReader, WebDAVFileWriter } from "./rw"; @@ -11,12 +11,7 @@ export default class WebDAVFileSystem implements FileSystem { basePath: string = "/"; - constructor( - authType: AuthType | WebDAVClient, - url?: string, - username?: string, - password?: string - ) { + constructor(authType: AuthType | WebDAVClient, url?: string, username?: string, password?: string) { if (typeof authType === "object") { this.client = authType; this.basePath = joinPath(url || ""); @@ -44,28 +39,20 @@ export default class WebDAVFileSystem implements FileSystem { } open(file: File): Promise { - return Promise.resolve( - new WebDAVFileReader(this.client, joinPath(file.path, file.name)) - ); + return Promise.resolve(new WebDAVFileReader(this.client, joinPath(file.path, file.name))); } openDir(path: string): Promise { - return Promise.resolve( - new WebDAVFileSystem(this.client, joinPath(this.basePath, path), this.url) - ); + return Promise.resolve(new WebDAVFileSystem(this.client, joinPath(this.basePath, path), this.url)); } create(path: string): Promise { - return Promise.resolve( - new WebDAVFileWriter(this.client, joinPath(this.basePath, path)) - ); + return Promise.resolve(new WebDAVFileWriter(this.client, joinPath(this.basePath, path))); } async createDir(path: string): Promise { try { - return Promise.resolve( - await this.client.createDirectory(joinPath(this.basePath, path)) - ); + return Promise.resolve(await this.client.createDirectory(joinPath(this.basePath, path))); } catch (e: any) { // 如果是405错误,则忽略 if (e.message.includes("405")) { @@ -80,9 +67,7 @@ export default class WebDAVFileSystem implements FileSystem { } async list(): Promise { - const dir = (await this.client.getDirectoryContents( - this.basePath - )) as FileStat[]; + const dir = (await this.client.getDirectoryContents(this.basePath)) as FileStat[]; const ret: File[] = []; dir.forEach((item: FileStat) => { if (item.type !== "file") { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ccbd346..b8a6286 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -74,6 +74,9 @@ importers: uuid: specifier: ^11.0.3 version: 11.0.3 + webdav: + specifier: ^5.8.0 + version: 5.8.0 yaml: specifier: ^2.6.1 version: 2.6.1 @@ -141,6 +144,9 @@ importers: eslint-plugin-react-hooks: specifier: ^5.2.0 version: 5.2.0(eslint@9.24.0(jiti@1.21.7)) + eslint-plugin-userscripts: + specifier: ^0.5.6 + version: 0.5.6(eslint@9.24.0(jiti@1.21.7)) fake-indexeddb: specifier: ^6.0.0 version: 6.0.0 @@ -352,6 +358,9 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@buttercup/fetch@0.2.1': + resolution: {integrity: sha512-sCgECOx8wiqY8NN1xN22BqqKzXYIG2AicNLlakOAI4f0WgyLVUbAigMf8CZhBtJxdudTcB1gD5lciqi44jwJvg==} + '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -967,55 +976,46 @@ packages: resolution: {integrity: sha512-10ICosOwYChROdQoQo589N5idQIisxjaFE/PAnX2i0Zr84mY0k9zul1ArH0rnJ/fpgiqfu13TFZR5A5YJLOYZA==} cpu: [arm] os: [linux] - libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.24.4': resolution: {integrity: sha512-ySAfWs69LYC7QhRDZNKqNhz2UKN8LDfbKSMAEtoEI0jitwfAG2iZwVqGACJT+kfYvvz3/JgsLlcBP+WWoKCLcw==} cpu: [arm] os: [linux] - libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.24.4': resolution: {integrity: sha512-uHYJ0HNOI6pGEeZ/5mgm5arNVTI0nLlmrbdph+pGXpC9tFHFDQmDMOEqkmUObRfosJqpU8RliYoGz06qSdtcjg==} cpu: [arm64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.24.4': resolution: {integrity: sha512-38yiWLemQf7aLHDgTg85fh3hW9stJ0Muk7+s6tIkSUOMmi4Xbv5pH/5Bofnsb6spIwD5FJiR+jg71f0CH5OzoA==} cpu: [arm64] os: [linux] - libc: [musl] '@rollup/rollup-linux-powerpc64le-gnu@4.24.4': resolution: {integrity: sha512-q73XUPnkwt9ZNF2xRS4fvneSuaHw2BXuV5rI4cw0fWYVIWIBeDZX7c7FWhFQPNTnE24172K30I+dViWRVD9TwA==} cpu: [ppc64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.24.4': resolution: {integrity: sha512-Aie/TbmQi6UXokJqDZdmTJuZBCU3QBDA8oTKRGtd4ABi/nHgXICulfg1KI6n9/koDsiDbvHAiQO3YAUNa/7BCw==} cpu: [riscv64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-s390x-gnu@4.24.4': resolution: {integrity: sha512-P8MPErVO/y8ohWSP9JY7lLQ8+YMHfTI4bAdtCi3pC2hTeqFJco2jYspzOzTUB8hwUWIIu1xwOrJE11nP+0JFAQ==} cpu: [s390x] os: [linux] - libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.24.4': resolution: {integrity: sha512-K03TljaaoPK5FOyNMZAAEmhlyO49LaE4qCsr0lYHUKyb6QacTNF9pnfPpXnFlFD3TXuFbFbz7tJ51FujUXkXYA==} cpu: [x64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-x64-musl@4.24.4': resolution: {integrity: sha512-VJYl4xSl/wqG2D5xTYncVWW+26ICV4wubwN9Gs5NrqhJtayikwCXzPL8GDsLnaLU3WwhQ8W02IinYSFJfyo34Q==} cpu: [x64] os: [linux] - libc: [musl] '@rollup/rollup-win32-arm64-msvc@4.24.4': resolution: {integrity: sha512-ku2GvtPwQfCqoPFIJCqZ8o7bJcj+Y54cZSr43hHca6jLwAiCbZdBUOrqE6y29QFajNAzzpIOwsckaTFmN6/8TA==} @@ -1080,7 +1080,6 @@ packages: resolution: {integrity: sha512-nJzY+Ur6FxWM0xc+G2tY1TQu3s6qgolxXb5K2VLIDHSPqDAjqRc35ypQc9Tz3rUPb8HVh+X7YLIZxA0hE4eQOg==} cpu: [arm64] os: [linux] - libc: [glibc] '@rspack/binding-linux-arm64-musl@1.0.14': resolution: {integrity: sha512-qgybhxI/nnoa8CUz7zKTC0Oh37NZt9uRxsSV7+ZYrfxqbrVCoNVuutPpY724uUHy1M6W34kVEm1uT1N4Ka5cZg==} @@ -1092,7 +1091,6 @@ packages: resolution: {integrity: sha512-sRi77ccO/oOfyBNq3FgW2pDtXcgMzslLokOby8NpD/kv/SxtOE4ORoLZKzdJyGNh2WDPbtSwIDWPes2x4MKASQ==} cpu: [arm64] os: [linux] - libc: [musl] '@rspack/binding-linux-x64-gnu@1.0.14': resolution: {integrity: sha512-5vzaDRw3/sGKo3ax/1cU3/cxqNjajwlt2LU288vXNe1/n8oe/pcDfYcTugpOe/A1DqzadanudJszLpFcKsaFtQ==} @@ -1104,7 +1102,6 @@ packages: resolution: {integrity: sha512-KnrFQUj6SKJFGXqJW9Kgdv+mRGcPCirQesuwXtW+9YejT6MzLRRdJ4NDQdfcmfLZK9+ap+l73bLXAyMiIBZiOw==} cpu: [x64] os: [linux] - libc: [glibc] '@rspack/binding-linux-x64-musl@1.0.14': resolution: {integrity: sha512-4U6QD9xVS1eGme52DuJr6Fg/KdcUfJ+iKwH49Up460dZ/fLvGylnVGA+V0mzPlKi8gfy7NwFuYXZdu3Pwi1YYg==} @@ -1116,7 +1113,6 @@ packages: resolution: {integrity: sha512-ZcTl4LBgxp5Bfyu9x7NhYRAR4qWPwhhxzwXmiQ1ya7DsdqiYaiCr59dPQx7ZaExXckeHGly75B3aTn1II9Vexw==} cpu: [x64] os: [linux] - libc: [musl] '@rspack/binding-win32-arm64-msvc@1.0.14': resolution: {integrity: sha512-SjeYw7qqRHYZ5RPClu+ffKZsShQdU3amA1OwC3M0AS6dbfEcji8482St3Y8Z+QSzYRapCEZij9LMM/9ypEhISg==} @@ -1836,6 +1832,9 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + base-64@1.0.0: + resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} + base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -1898,6 +1897,9 @@ packages: peerDependencies: esbuild: '>=0.18' + byte-length@1.0.2: + resolution: {integrity: sha512-ovBpjmsgd/teRmgcPh23d4gJvxDoXtAzEL9xTfMU8Yc2kqCDb7L9jAG0XHl1nzuGl+h3ebCIF1i62UFyA9V/2Q==} + bytes@3.0.0: resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} engines: {node: '>= 0.8'} @@ -1944,6 +1946,9 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} + charenc@0.0.2: + resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} + check-error@2.1.1: resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} engines: {node: '>= 16'} @@ -2094,6 +2099,9 @@ packages: engines: {node: '>=10'} hasBin: true + crypt@0.0.2: + resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} + crypto-js@4.2.0: resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} @@ -2108,6 +2116,10 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} + data-urls@5.0.0: resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} engines: {node: '>=18'} @@ -2299,6 +2311,10 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + entities@6.0.0: + resolution: {integrity: sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==} + engines: {node: '>=0.12'} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -2408,6 +2424,12 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + eslint-plugin-userscripts@0.5.6: + resolution: {integrity: sha512-/DXb8UKyEkNCzXOA6j4E4rCWn2mLCUw2TMxrzSoz3spi4cyANlE0JNmtRleAmzc1HTUmZXr5fIMCQxyLS73DZQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.40.0 <11' + eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} @@ -2544,6 +2566,10 @@ packages: fast-uri@3.0.3: resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} + fast-xml-parser@4.5.3: + resolution: {integrity: sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==} + hasBin: true + fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} @@ -2567,6 +2593,10 @@ packages: picomatch: optional: true + fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} @@ -2614,6 +2644,10 @@ packages: resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} engines: {node: '>= 6'} + formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} @@ -2770,6 +2804,9 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hot-patcher@2.0.1: + resolution: {integrity: sha512-ECg1JFG0YzehicQaogenlcs2qg6WsXQsxtnbr1i696u5tLUjtJdQAh0u2g0Q5YV45f263Ta1GnUJsc8WIfJf4Q==} + hpack.js@2.1.6: resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} @@ -2931,6 +2968,9 @@ packages: resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} + is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -3198,6 +3238,9 @@ packages: launch-editor@2.9.1: resolution: {integrity: sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==} + layerr@3.0.0: + resolution: {integrity: sha512-tv754Ki2dXpPVApOrjTyRo4/QegVb9eVFq4mjqp4+NM5NaX7syQvN5BBNfV/ZpAHCEHV24XdUVrBAoka4jt3pA==} + lazystream@1.0.1: resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} engines: {node: '>= 0.6.3'} @@ -3283,6 +3326,9 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} + md5@2.3.0: + resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} + mdn-data@2.12.1: resolution: {integrity: sha512-rsfnCbOHjqrhWxwt5/wtSLzpoKTzW7OXdT5lLOIH1OTYhWu9rRJveGq0sKvDZODABH7RX+uoR+DYcpFnq4Tf6Q==} @@ -3403,9 +3449,20 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + nested-property@4.0.0: + resolution: {integrity: sha512-yFehXNWRs4cM0+dz7QxCd06hTbWbSkV0ISsqBfkntU6TOY4Qm3Q88fRRLOddkGh2Qq6dZvnKVAahfhjcUvLnyA==} + + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + node-fetch-native@1.6.4: resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} + node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + node-forge@1.3.1: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} @@ -3576,6 +3633,9 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-posix@1.0.0: + resolution: {integrity: sha512-1gJ0WpNIiYcQydgg3Ed8KzvIqTsDpNwq+cjBCssvBtuTWjEqY1AW+i+OepiEMqDCzyro9B2sLAe4RBPajMYFiA==} + path-scurry@1.11.1: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} @@ -3681,6 +3741,9 @@ packages: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -4195,6 +4258,9 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + strnum@1.1.2: + resolution: {integrity: sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==} + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -4495,6 +4561,13 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + url-join@5.0.0: + resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + use-callback-ref@1.3.2: resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} engines: {node: '>=10'} @@ -4631,6 +4704,14 @@ packages: wbuf@1.7.3: resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} + + webdav@5.8.0: + resolution: {integrity: sha512-iuFG7NamJ41Oshg4930iQgfIpRrUiatPWIekeznYgEf2EOraTRcDPTjy7gIOMtkdpKTaqPk1E68NO5PAGtJahA==} + engines: {node: '>=14'} + webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} @@ -4918,6 +4999,10 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} + '@buttercup/fetch@0.2.1': + optionalDependencies: + node-fetch: 3.3.2 + '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 @@ -6571,6 +6656,8 @@ snapshots: balanced-match@1.0.2: {} + base-64@1.0.0: {} + base64-js@1.5.1: {} batch@0.6.1: {} @@ -6657,6 +6744,8 @@ snapshots: esbuild: 0.23.1 load-tsconfig: 0.2.5 + byte-length@1.0.2: {} + bytes@3.0.0: {} bytes@3.1.2: {} @@ -6707,6 +6796,8 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 + charenc@0.0.2: {} + check-error@2.1.1: {} chokidar@3.6.0: @@ -6873,6 +6964,8 @@ snapshots: node-rsa: 1.1.1 pbf: 3.3.0 + crypt@0.0.2: {} + crypto-js@4.2.0: {} css-tree@3.0.1: @@ -6886,6 +6979,8 @@ snapshots: csstype@3.1.3: {} + data-uri-to-buffer@4.0.1: {} + data-urls@5.0.0: dependencies: whatwg-mimetype: 4.0.0 @@ -7048,6 +7143,8 @@ snapshots: entities@4.5.0: {} + entities@6.0.0: {} + env-paths@2.2.1: {} error-ex@1.3.2: @@ -7352,6 +7449,11 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 + eslint-plugin-userscripts@0.5.6(eslint@9.24.0(jiti@1.21.7)): + dependencies: + eslint: 9.24.0(jiti@1.21.7) + semver: 7.6.3 + eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 @@ -7606,6 +7708,10 @@ snapshots: fast-uri@3.0.3: {} + fast-xml-parser@4.5.3: + dependencies: + strnum: 1.1.2 + fastq@1.17.1: dependencies: reusify: 1.0.4 @@ -7623,6 +7729,11 @@ snapshots: picomatch: 4.0.2 optional: true + fetch-blob@3.2.0: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.3.3 + file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 @@ -7676,6 +7787,10 @@ snapshots: combined-stream: 1.0.8 mime-types: 2.1.35 + formdata-polyfill@4.0.10: + dependencies: + fetch-blob: 3.2.0 + forwarded@0.2.0: {} fraction.js@4.3.7: {} @@ -7837,6 +7952,8 @@ snapshots: dependencies: function-bind: 1.1.2 + hot-patcher@2.0.1: {} + hpack.js@2.1.6: dependencies: inherits: 2.0.4 @@ -8020,6 +8137,8 @@ snapshots: call-bound: 1.0.3 has-tostringtag: 1.0.2 + is-buffer@1.1.6: {} + is-callable@1.2.7: {} is-core-module@2.15.1: @@ -8307,6 +8426,8 @@ snapshots: picocolors: 1.1.1 shell-quote: 1.8.1 + layerr@3.0.0: {} + lazystream@1.0.1: dependencies: readable-stream: 2.3.8 @@ -8382,6 +8503,12 @@ snapshots: math-intrinsics@1.1.0: {} + md5@2.3.0: + dependencies: + charenc: 0.0.2 + crypt: 0.0.2 + is-buffer: 1.1.6 + mdn-data@2.12.1: {} media-typer@0.3.0: {} @@ -8474,8 +8601,18 @@ snapshots: neo-async@2.6.2: optional: true + nested-property@4.0.0: {} + + node-domexception@1.0.0: {} + node-fetch-native@1.6.4: {} + node-fetch@3.3.2: + dependencies: + data-uri-to-buffer: 4.0.1 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 + node-forge@1.3.1: {} node-releases@2.0.18: {} @@ -8653,6 +8790,8 @@ snapshots: path-parse@1.0.7: {} + path-posix@1.0.0: {} + path-scurry@1.11.1: dependencies: lru-cache: 10.4.3 @@ -8742,6 +8881,8 @@ snapshots: dependencies: side-channel: 1.1.0 + querystringify@2.2.0: {} + queue-microtask@1.2.3: {} randombytes@2.1.0: @@ -9400,6 +9541,8 @@ snapshots: strip-json-comments@3.1.1: {} + strnum@1.1.2: {} + supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -9769,6 +9912,13 @@ snapshots: dependencies: punycode: 2.3.1 + url-join@5.0.0: {} + + url-parse@1.5.10: + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + use-callback-ref@1.3.2(@types/react@18.3.12)(react@18.3.1): dependencies: react: 18.3.1 @@ -9954,6 +10104,25 @@ snapshots: dependencies: minimalistic-assert: 1.0.1 + web-streams-polyfill@3.3.3: {} + + webdav@5.8.0: + dependencies: + '@buttercup/fetch': 0.2.1 + base-64: 1.0.0 + byte-length: 1.0.2 + entities: 6.0.0 + fast-xml-parser: 4.5.3 + hot-patcher: 2.0.1 + layerr: 3.0.0 + md5: 2.3.0 + minimatch: 9.0.5 + nested-property: 4.0.0 + node-fetch: 3.3.2 + path-posix: 1.0.0 + url-join: 5.0.0 + url-parse: 1.5.10 + webidl-conversions@7.0.0: {} webpack-bundle-analyzer@4.10.2: diff --git a/src/app/const.ts b/src/app/const.ts index b40531e..9038eb6 100644 --- a/src/app/const.ts +++ b/src/app/const.ts @@ -3,12 +3,8 @@ import { version } from "../../package.json"; export const ExtVersion = version; export const ExtServer = "https://ext.scriptcat.org/"; +export const ExtServerApi = ExtServer + "api/v1/"; -export const ExternalWhitelist = [ - "greasyfork.org", - "scriptcat.org", - "tampermonkey.net.cn", - "openuserjs.org", -]; +export const ExternalWhitelist = ["greasyfork.org", "scriptcat.org", "tampermonkey.net.cn", "openuserjs.org"]; export const ExternalMessage = "externalMessage"; diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index d8abe5d..4c3aff1 100644 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -358,5 +358,6 @@ "collapse": "Collapse", "expand": "Expand", "menu_expand_num_before": "Menu item more than", - "menu_expand_num_after": "Auto-hide." + "menu_expand_num_after": "Auto-hide.", + "eslint_config_format_error": "ESLint configuration format error" } \ No newline at end of file diff --git a/src/locales/zh-CN/translation.json b/src/locales/zh-CN/translation.json index ab07633..870d45a 100644 --- a/src/locales/zh-CN/translation.json +++ b/src/locales/zh-CN/translation.json @@ -363,5 +363,6 @@ "expand": "展开", "menu_expand_num_before": "菜单项超过", "menu_expand_num_after": "个时,自动隐藏", - "script_name_cannot_be_set_to_empty": "脚本name不可以设置为空" + "script_name_cannot_be_set_to_empty": "脚本name不可以设置为空", + "eslint_config_format_error": "eslint配置格式错误" } \ No newline at end of file diff --git a/src/pages/components/FileSystemParams/index.tsx b/src/pages/components/FileSystemParams/index.tsx index 703621e..3614174 100644 --- a/src/pages/components/FileSystemParams/index.tsx +++ b/src/pages/components/FileSystemParams/index.tsx @@ -1,6 +1,8 @@ import React from "react"; import { Input, Select, Space } from "@arco-design/web-react"; +import FileSystemFactory, { FileSystemType } from "@Packages/filesystem/factory"; +const fsParams = FileSystemFactory.params(); const fileSystemList: { key: FileSystemType; @@ -65,10 +67,7 @@ const FileSystemParams: React.FC<{ <> {fsParams[fileSystemType][key].title}