From d15e9171f773c56083cb85f769ed3d039f4cd767 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=B8=80=E4=B9=8B?= Date: Fri, 20 Dec 2024 18:05:18 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + packages/message/server.ts | 4 +- pnpm-lock.yaml | 207 ++++---- .../service/{manager => offscreen}/index.ts | 4 +- src/app/service/service_worker/index.ts | 3 +- src/offscreen.ts | 25 +- src/pages/install/App.tsx | 10 +- src/pages/install/description.tsx | 468 ------------------ src/sandbox.ts | 10 +- 9 files changed, 142 insertions(+), 590 deletions(-) rename src/app/service/{manager => offscreen}/index.ts (61%) delete mode 100644 src/pages/install/description.tsx diff --git a/package.json b/package.json index 8b979a9..6ee5df5 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,7 @@ "@rspack/cli": "^1.0.14", "@rspack/core": "^1.0.14", "@types/chrome": "^0.0.279", + "@types/node": "^22.10.2", "@types/pako": "^2.0.3", "@types/react": "^18.2.48", "@types/react-dom": "^18.2.18", diff --git a/packages/message/server.ts b/packages/message/server.ts index 95f0d6c..d492e61 100644 --- a/packages/message/server.ts +++ b/packages/message/server.ts @@ -1,9 +1,9 @@ export type ApiFunction = (params: any, con: chrome.runtime.Port | chrome.runtime.MessageSender) => any; export class Server { - apiFunctionMap: Map = new Map(); + private apiFunctionMap: Map = new Map(); - constructor() { + constructor(private env: string) { chrome.runtime.onConnect.addListener((port) => { port.onMessage.addListener((msg: { action: string }) => { this.connectHandle(msg.action, msg, port); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c0a38b7..61f7ebf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -75,6 +75,9 @@ importers: '@types/chrome': specifier: ^0.0.279 version: 0.0.279 + '@types/node': + specifier: ^22.10.2 + version: 22.10.2 '@types/pako': specifier: ^2.0.3 version: 2.0.3 @@ -92,7 +95,7 @@ importers: version: 0.65.0-beta.2(postcss@8.4.49) '@vitest/coverage-v8': specifier: 2.1.4 - version: 2.1.4(vitest@2.1.4(@types/node@22.8.1)(jsdom@25.0.1)(terser@5.36.0)) + version: 2.1.4(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1)(terser@5.36.0)) autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.4.49) @@ -125,7 +128,7 @@ importers: version: 3.3.3 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.8.1)(typescript@5.6.3) + version: 10.9.2(@types/node@22.10.2)(typescript@5.6.3) typescript: specifier: ^5.6.3 version: 5.6.3 @@ -134,10 +137,10 @@ importers: version: 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3) unocss: specifier: 0.65.0-beta.2 - version: 0.65.0-beta.2(@unocss/webpack@0.65.0-beta.2(rollup@4.24.4)(webpack@5.96.1(esbuild@0.23.1)))(postcss@8.4.49)(rollup@4.24.4)(vite@5.4.10(@types/node@22.8.1)(terser@5.36.0))(vue@3.5.13(typescript@5.6.3)) + version: 0.65.0-beta.2(@unocss/webpack@0.65.0-beta.2(rollup@4.24.4)(webpack@5.96.1(esbuild@0.23.1)))(postcss@8.4.49)(rollup@4.24.4)(vite@5.4.10(@types/node@22.10.2)(terser@5.36.0))(vue@3.5.13(typescript@5.6.3)) vitest: specifier: ^2.1.4 - version: 2.1.4(@types/node@22.8.1)(jsdom@25.0.1)(terser@5.36.0) + version: 2.1.4(@types/node@22.10.2)(jsdom@25.0.1)(terser@5.36.0) packages/message: dependencies: @@ -1025,6 +1028,9 @@ packages: '@types/node-forge@1.3.11': resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + '@types/node@22.10.2': + resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==} + '@types/node@22.8.1': resolution: {integrity: sha512-k6Gi8Yyo8EtrNtkHXutUu2corfDf9su95VYVP10aGYMMROM6SAItZi0w1XszA6RtWTHSVp5OeFof37w0IEqCQg==} @@ -3477,6 +3483,9 @@ packages: undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + unocss@0.65.0-beta.2: resolution: {integrity: sha512-iBuELniWmyGEws8F3rCWTQ8bO0sft8yEgYZsny0fHB+rvty6zW67qvSNd7KTj6LiT37zU/FWSWZKRYzCWrq9kA==} engines: {node: '>=14'} @@ -4419,11 +4428,11 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.8.1 + '@types/node': 22.10.2 '@types/bonjour@3.5.13': dependencies: - '@types/node': 22.8.1 + '@types/node': 22.10.2 '@types/chrome@0.0.279': dependencies: @@ -4433,11 +4442,11 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 5.0.1 - '@types/node': 22.8.1 + '@types/node': 22.10.2 '@types/connect@3.4.38': dependencies: - '@types/node': 22.8.1 + '@types/node': 22.10.2 '@types/eslint-scope@3.7.7': dependencies: @@ -4455,14 +4464,14 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.8.1 + '@types/node': 22.10.2 '@types/qs': 6.9.16 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 '@types/express-serve-static-core@5.0.1': dependencies: - '@types/node': 22.8.1 + '@types/node': 22.10.2 '@types/qs': 6.9.16 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -4486,7 +4495,7 @@ snapshots: '@types/http-proxy@1.17.15': dependencies: - '@types/node': 22.8.1 + '@types/node': 22.10.2 '@types/json-schema@7.0.15': {} @@ -4496,7 +4505,11 @@ snapshots: '@types/node-forge@1.3.11': dependencies: - '@types/node': 22.8.1 + '@types/node': 22.10.2 + + '@types/node@22.10.2': + dependencies: + undici-types: 6.20.0 '@types/node@22.8.1': dependencies: @@ -4528,7 +4541,7 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.8.1 + '@types/node': 22.10.2 '@types/serve-index@1.9.4': dependencies: @@ -4537,18 +4550,18 @@ snapshots: '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.8.1 + '@types/node': 22.10.2 '@types/send': 0.17.4 '@types/sockjs@0.3.36': dependencies: - '@types/node': 22.8.1 + '@types/node': 22.10.2 '@types/use-sync-external-store@0.0.3': {} '@types/ws@8.5.12': dependencies: - '@types/node': 22.8.1 + '@types/node': 22.10.2 '@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: @@ -4685,13 +4698,13 @@ snapshots: '@typescript-eslint/types': 8.11.0 eslint-visitor-keys: 3.4.3 - '@unocss/astro@0.65.0-beta.2(rollup@4.24.4)(vite@5.4.10(@types/node@22.8.1)(terser@5.36.0))(vue@3.5.13(typescript@5.6.3))': + '@unocss/astro@0.65.0-beta.2(rollup@4.24.4)(vite@5.4.10(@types/node@22.10.2)(terser@5.36.0))(vue@3.5.13(typescript@5.6.3))': dependencies: '@unocss/core': 0.65.0-beta.2 '@unocss/reset': 0.65.0-beta.2 - '@unocss/vite': 0.65.0-beta.2(rollup@4.24.4)(vite@5.4.10(@types/node@22.8.1)(terser@5.36.0))(vue@3.5.13(typescript@5.6.3)) + '@unocss/vite': 0.65.0-beta.2(rollup@4.24.4)(vite@5.4.10(@types/node@22.10.2)(terser@5.36.0))(vue@3.5.13(typescript@5.6.3)) optionalDependencies: - vite: 5.4.10(@types/node@22.8.1)(terser@5.36.0) + vite: 5.4.10(@types/node@22.10.2)(terser@5.36.0) transitivePeerDependencies: - rollup - supports-color @@ -4820,7 +4833,7 @@ snapshots: dependencies: '@unocss/core': 0.65.0-beta.2 - '@unocss/vite@0.65.0-beta.2(rollup@4.24.4)(vite@5.4.10(@types/node@22.8.1)(terser@5.36.0))(vue@3.5.13(typescript@5.6.3))': + '@unocss/vite@0.65.0-beta.2(rollup@4.24.4)(vite@5.4.10(@types/node@22.10.2)(terser@5.36.0))(vue@3.5.13(typescript@5.6.3))': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.3(rollup@4.24.4) @@ -4830,7 +4843,7 @@ snapshots: chokidar: 3.6.0 magic-string: 0.30.12 tinyglobby: 0.2.10 - vite: 5.4.10(@types/node@22.8.1)(terser@5.36.0) + vite: 5.4.10(@types/node@22.10.2)(terser@5.36.0) transitivePeerDependencies: - rollup - supports-color @@ -4853,7 +4866,7 @@ snapshots: - supports-color optional: true - '@vitest/coverage-v8@2.1.4(vitest@2.1.4(@types/node@22.8.1)(jsdom@25.0.1)(terser@5.36.0))': + '@vitest/coverage-v8@2.1.4(vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1)(terser@5.36.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -4867,7 +4880,7 @@ snapshots: std-env: 3.7.0 test-exclude: 7.0.1 tinyrainbow: 1.2.0 - vitest: 2.1.4(@types/node@22.8.1)(jsdom@25.0.1)(terser@5.36.0) + vitest: 2.1.4(@types/node@22.10.2)(jsdom@25.0.1)(terser@5.36.0) transitivePeerDependencies: - supports-color @@ -4878,13 +4891,13 @@ snapshots: chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.4(vite@5.4.10(@types/node@22.8.1)(terser@5.36.0))': + '@vitest/mocker@2.1.4(vite@5.4.10(@types/node@22.10.2)(terser@5.36.0))': dependencies: '@vitest/spy': 2.1.4 estree-walker: 3.0.3 magic-string: 0.30.12 optionalDependencies: - vite: 5.4.10(@types/node@22.8.1)(terser@5.36.0) + vite: 5.4.10(@types/node@22.10.2)(terser@5.36.0) '@vitest/mocker@2.1.4(vite@5.4.10(@types/node@22.8.1))': dependencies: @@ -7420,6 +7433,24 @@ snapshots: dependencies: typescript: 5.6.3 + ts-node@10.9.2(@types/node@22.10.2)(typescript@5.6.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 22.10.2 + acorn: 8.13.0 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.6.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + ts-node@10.9.2(@types/node@22.8.1)(typescript@5.6.3): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -7531,9 +7562,11 @@ snapshots: undici-types@6.19.8: {} - unocss@0.65.0-beta.2(@unocss/webpack@0.65.0-beta.2(rollup@4.24.4)(webpack@5.96.1(esbuild@0.23.1)))(postcss@8.4.49)(rollup@4.24.4)(vite@5.4.10(@types/node@22.8.1)(terser@5.36.0))(vue@3.5.13(typescript@5.6.3)): + undici-types@6.20.0: {} + + unocss@0.65.0-beta.2(@unocss/webpack@0.65.0-beta.2(rollup@4.24.4)(webpack@5.96.1(esbuild@0.23.1)))(postcss@8.4.49)(rollup@4.24.4)(vite@5.4.10(@types/node@22.10.2)(terser@5.36.0))(vue@3.5.13(typescript@5.6.3)): dependencies: - '@unocss/astro': 0.65.0-beta.2(rollup@4.24.4)(vite@5.4.10(@types/node@22.8.1)(terser@5.36.0))(vue@3.5.13(typescript@5.6.3)) + '@unocss/astro': 0.65.0-beta.2(rollup@4.24.4)(vite@5.4.10(@types/node@22.10.2)(terser@5.36.0))(vue@3.5.13(typescript@5.6.3)) '@unocss/cli': 0.65.0-beta.2(rollup@4.24.4) '@unocss/core': 0.65.0-beta.2 '@unocss/postcss': 0.65.0-beta.2(postcss@8.4.49) @@ -7549,10 +7582,10 @@ snapshots: '@unocss/transformer-compile-class': 0.65.0-beta.2 '@unocss/transformer-directives': 0.65.0-beta.2 '@unocss/transformer-variant-group': 0.65.0-beta.2 - '@unocss/vite': 0.65.0-beta.2(rollup@4.24.4)(vite@5.4.10(@types/node@22.8.1)(terser@5.36.0))(vue@3.5.13(typescript@5.6.3)) + '@unocss/vite': 0.65.0-beta.2(rollup@4.24.4)(vite@5.4.10(@types/node@22.10.2)(terser@5.36.0))(vue@3.5.13(typescript@5.6.3)) optionalDependencies: '@unocss/webpack': 0.65.0-beta.2(rollup@4.24.4)(webpack@5.96.1(esbuild@0.23.1)) - vite: 5.4.10(@types/node@22.8.1)(terser@5.36.0) + vite: 5.4.10(@types/node@22.10.2)(terser@5.36.0) transitivePeerDependencies: - postcss - rollup @@ -7608,6 +7641,23 @@ snapshots: vary@1.1.2: {} + vite-node@2.1.4(@types/node@22.10.2)(terser@5.36.0): + dependencies: + cac: 6.7.14 + debug: 4.3.7 + pathe: 1.1.2 + vite: 5.4.10(@types/node@22.10.2)(terser@5.36.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + vite-node@2.1.4(@types/node@22.8.1): dependencies: cac: 6.7.14 @@ -7625,22 +7675,15 @@ snapshots: - supports-color - terser - vite-node@2.1.4(@types/node@22.8.1)(terser@5.36.0): + vite@5.4.10(@types/node@22.10.2)(terser@5.36.0): dependencies: - cac: 6.7.14 - debug: 4.3.7 - pathe: 1.1.2 - vite: 5.4.10(@types/node@22.8.1)(terser@5.36.0) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser + esbuild: 0.21.5 + postcss: 8.4.49 + rollup: 4.24.4 + optionalDependencies: + '@types/node': 22.10.2 + fsevents: 2.3.3 + terser: 5.36.0 vite@5.4.10(@types/node@22.8.1): dependencies: @@ -7651,15 +7694,41 @@ snapshots: '@types/node': 22.8.1 fsevents: 2.3.3 - vite@5.4.10(@types/node@22.8.1)(terser@5.36.0): + vitest@2.1.4(@types/node@22.10.2)(jsdom@25.0.1)(terser@5.36.0): dependencies: - esbuild: 0.21.5 - postcss: 8.4.49 - rollup: 4.24.4 + '@vitest/expect': 2.1.4 + '@vitest/mocker': 2.1.4(vite@5.4.10(@types/node@22.10.2)(terser@5.36.0)) + '@vitest/pretty-format': 2.1.4 + '@vitest/runner': 2.1.4 + '@vitest/snapshot': 2.1.4 + '@vitest/spy': 2.1.4 + '@vitest/utils': 2.1.4 + chai: 5.1.2 + debug: 4.3.7 + expect-type: 1.1.0 + magic-string: 0.30.12 + pathe: 1.1.2 + std-env: 3.7.0 + tinybench: 2.9.0 + tinyexec: 0.3.1 + tinypool: 1.0.1 + tinyrainbow: 1.2.0 + vite: 5.4.10(@types/node@22.10.2)(terser@5.36.0) + vite-node: 2.1.4(@types/node@22.10.2)(terser@5.36.0) + why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.8.1 - fsevents: 2.3.3 - terser: 5.36.0 + '@types/node': 22.10.2 + jsdom: 25.0.1 + transitivePeerDependencies: + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser vitest@2.1.4(@types/node@22.8.1): dependencies: @@ -7696,42 +7765,6 @@ snapshots: - supports-color - terser - vitest@2.1.4(@types/node@22.8.1)(jsdom@25.0.1)(terser@5.36.0): - dependencies: - '@vitest/expect': 2.1.4 - '@vitest/mocker': 2.1.4(vite@5.4.10(@types/node@22.8.1)(terser@5.36.0)) - '@vitest/pretty-format': 2.1.4 - '@vitest/runner': 2.1.4 - '@vitest/snapshot': 2.1.4 - '@vitest/spy': 2.1.4 - '@vitest/utils': 2.1.4 - chai: 5.1.2 - debug: 4.3.7 - expect-type: 1.1.0 - magic-string: 0.30.12 - pathe: 1.1.2 - std-env: 3.7.0 - tinybench: 2.9.0 - tinyexec: 0.3.1 - tinypool: 1.0.1 - tinyrainbow: 1.2.0 - vite: 5.4.10(@types/node@22.8.1)(terser@5.36.0) - vite-node: 2.1.4(@types/node@22.8.1)(terser@5.36.0) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/node': 22.8.1 - jsdom: 25.0.1 - transitivePeerDependencies: - - less - - lightningcss - - msw - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - void-elements@3.1.0: {} vue-flow-layout@0.1.1(vue@3.5.13(typescript@5.6.3)): diff --git a/src/app/service/manager/index.ts b/src/app/service/offscreen/index.ts similarity index 61% rename from src/app/service/manager/index.ts rename to src/app/service/offscreen/index.ts index ee8b686..10d8def 100644 --- a/src/app/service/manager/index.ts +++ b/src/app/service/offscreen/index.ts @@ -1,8 +1,8 @@ import { Server } from "@Packages/message/server"; // offscreen环境的管理器 -export class Manager { - private api: Server = new Server(); +export class OffscreenManager { + private api: Server = new Server("offscreen"); initManager() { // 监听消息 diff --git a/src/app/service/service_worker/index.ts b/src/app/service/service_worker/index.ts index 8500d51..645bc62 100644 --- a/src/app/service/service_worker/index.ts +++ b/src/app/service/service_worker/index.ts @@ -120,7 +120,7 @@ export default class ServiceWorkerManager { }); } - private api: Server = new Server(); + private api: Server = new Server("service_worker"); private mq: MessageQueue = new MessageQueue(); @@ -133,6 +133,7 @@ export default class ServiceWorkerManager { initManager() { // 监听消息 this.api.on("getInstallInfo", this.getInstallInfo); + this.api.on("messageQueue", this.mq.handler()); this.listenerScriptInstall(); } diff --git a/src/offscreen.ts b/src/offscreen.ts index 7425058..2770f28 100644 --- a/src/offscreen.ts +++ b/src/offscreen.ts @@ -1,10 +1,8 @@ -import { Connect, Server } from "@Packages/message"; -import { ExtServer } from "@Packages/message/extension"; -import { WindowServer } from "@Packages/message/window"; import migrate from "./app/migrate"; import LoggerCore from "./app/logger/core"; import DBWriter from "./app/logger/db_writer"; import { LoggerDAO } from "./app/repo/logger"; +import { OffscreenManager } from "./app/service/offscreen"; function main() { // 初始化数据库 @@ -16,23 +14,10 @@ function main() { labels: { env: "offscreen" }, }); loggerCore.logger().debug("offscreen start"); - // 与sandbox建立连接 - const server = new Server(new WindowServer(window)); - server.on("connection", (con) => { - const wrapCon = new Connect(con); - wrapCon.on("forward", (data, resp) => { - console.log(data); - }); - }); - // 监听扩展消息 - const extServer = new Server(new ExtServer()); - extServer.on("connection", (con) => { - const wrapCon = new Connect(con); - wrapCon.on("recv", (data, resp) => { - console.log(data); - resp("service_wwww"); - }); - }); + + // 初始化管理器 + const manager = new OffscreenManager(); + manager.initManager(); } main(); diff --git a/src/pages/install/App.tsx b/src/pages/install/App.tsx index 423ba94..0774ef4 100644 --- a/src/pages/install/App.tsx +++ b/src/pages/install/App.tsx @@ -1,6 +1,6 @@ import { Avatar, Button, Grid, Message, Space, Switch, Tag, Tooltip, Typography } from "@arco-design/web-react"; import CodeEditor from "../components/CodeEditor"; -import { useState } from "react"; +import { useEffect, useState } from "react"; import { Metadata, Script, SCRIPT_STATUS_DISABLE, SCRIPT_STATUS_ENABLE } from "@App/app/repo/scripts"; import { Subscribe } from "@App/app/repo/subscribe"; import { i18nDescription, i18nName } from "@App/locales/locales"; @@ -72,6 +72,14 @@ function App() { }, }; + useEffect(() => { + const url = new URL(window.location.href); + const uuid = url.searchParams.get("uuid"); + if (!uuid) { + return; + } + }); + return (
diff --git a/src/pages/install/description.tsx b/src/pages/install/description.tsx deleted file mode 100644 index 6ba7131..0000000 --- a/src/pages/install/description.tsx +++ /dev/null @@ -1,468 +0,0 @@ -import React, { useEffect, useState } from "react"; -import { - Avatar, - Button, - Grid, - Message, - Space, - Switch, - Tag, - Tooltip, - Typography, -} from "@arco-design/web-react"; -import ScriptController from "@App/app/service/script/controller"; -import { - prepareScriptByCode, - prepareSubscribeByCode, - ScriptInfo, -} from "@App/pkg/utils/script"; -import { - Metadata, - Script, - SCRIPT_STATUS_DISABLE, - SCRIPT_STATUS_ENABLE, -} from "@App/app/repo/scripts"; -import { nextTime } from "@App/pkg/utils/utils"; -import IoC from "@App/app/ioc"; -import { Subscribe, SUBSCRIBE_STATUS_ENABLE } from "@App/app/repo/subscribe"; -import SubscribeController from "@App/app/service/subscribe/controller"; -import { useTranslation } from "react-i18next"; -import { i18nDescription, i18nName } from "@App/locales/locales"; -import CodeEditor from "../components/CodeEditor"; - -type Permission = { label: string; color?: string; value: string[] }[]; - -const closeWindow = () => { - window.close(); -}; - -export default function Description() { - const [permission, setPermission] = useState([]); - const [metadata, setMetadata] = useState({}); - // 脚本信息包括脚本代码、下载url,但是不包括解析代码后得到的metadata,通过background的缓存获取 - const [info, setInfo] = useState(); - // 对脚本详细的描述 - const [description, setDescription] = useState(); - // 是系统检测到脚本更新时打开的窗口会有一个倒计时 - const [countdown, setCountdown] = useState(-1); - // 是否为更新 - const [isUpdate, setIsUpdate] = useState(false); - // 脚本信息 - const [upsertScript, setUpsertScript] = useState