From 2e5c08b2ada3f4f14386beb6d5580e1254a979e2 Mon Sep 17 00:00:00 2001 From: codetypes Date: Wed, 17 Apr 2024 10:35:51 +0800 Subject: [PATCH] reimplement the editor use lastest antd and other libs, feature of this commit: 1. file manger 2. highlight for click input or output 3. selector of subtress 4. autocomplete for input or output --- .eslintignore | 7 + .eslintrc.cjs | 40 + .gitignore | 36 +- .npmrc | 4 +- .prettierrc | 2 +- .vscode/.debug.script.mjs | 23 + .vscode/extensions.json | 7 + .vscode/launch.json | 47 + .vscode/settings.json | 13 + .vscode/tasks.json | 31 + build/icon.icns | Bin 0 -> 150032 bytes build/icon.ico | Bin 0 -> 13788 bytes common/BatchExec.ts | 46 - common/BehaviorTreeModel.ts | 56 - common/MainEventType.ts | 17 - common/Utils.ts | 203 - electron-builder.json5 | 37 + electron/electron-env.d.ts | 11 + electron/main/index.ts | 170 + electron/main/update.ts | 73 + electron/preload/index.ts | 92 + index.html | 26 +- license/electron-vite-react | 21 + main-process/AppMenu.ts | 474 - main-process/MainProcess.tsx | 82 - main-process/Settings.ts | 168 - main-process/Workspace.ts | 161 - package-lock.json | 15134 ++++++++-------- package.json | 119 +- pre-commit | 18 + public/electron-vite.svg | 55 + public/favicon.ico | Bin 0 -> 13788 bytes {static => public}/icons/Action.svg | 0 {static => public}/icons/Composite.svg | 0 {static => public}/icons/Condition.svg | 0 {static => public}/icons/Debug.svg | 0 {static => public}/icons/Decorator.svg | 0 {static => public}/icons/Error.svg | 0 {static => public}/icons/Other.svg | 0 public/locales/en.json | 129 + public/locales/zh.json | 129 + public/logo.svg | 55 + render-process/Editor/Editor.css | 28 - render-process/Editor/NodePanel.tsx | 349 - render-process/Editor/TreePanel.tsx | 89 - render-process/Editor/index.tsx | 690 - render-process/Explorer.tsx | 432 - render-process/RegisterNode.ts | 355 - render-process/TreeTabs.tsx | 218 - render-process/index.css | 97 - render-process/index.tsx | 196 - sample/node-config.b3-setting | 236 + sample/node-config.json | 1 - sample/workdir/monster.json | 18 +- sample/workdir/sub/subtree1.json | 31 + sample/workdir/sub/subtree2.json | 26 + sample/workdir/subtree1.json | 2 +- ...{workspace.json => workspace.b3-workspace} | 0 src/assets/node.svg | 1 + src/components/editor.tsx | 936 + src/components/explorer.tsx | 738 + src/components/inspector.tsx | 359 + src/components/menu.tsx | 457 + src/components/register-node.ts | 412 + src/components/setup.tsx | 11 + src/components/titlebar.tsx | 117 + src/components/workspace.tsx | 428 + src/contexts/setting-context.ts | 53 + src/contexts/workspace-context.ts | 450 + src/index.scss | 159 + src/main.tsx | 20 + src/misc/b3type.ts | 67 + src/misc/b3util.ts | 439 + src/misc/hooks.ts | 17 + src/misc/i18n.ts | 45 + src/misc/json.ts | 11 + src/misc/keys.ts | 105 + src/misc/path.ts | 16 + src/misc/theme.ts | 31 + src/vite-env.d.ts | 1 + tsconfig.json | 40 +- tsconfig.node.json | 10 + vite.config.ts | 59 + webpack.config.js | 52 - 84 files changed, 14250 insertions(+), 11038 deletions(-) create mode 100644 .eslintignore create mode 100644 .eslintrc.cjs create mode 100644 .vscode/.debug.script.mjs create mode 100644 .vscode/extensions.json create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json create mode 100644 build/icon.icns create mode 100644 build/icon.ico delete mode 100644 common/BatchExec.ts delete mode 100644 common/BehaviorTreeModel.ts delete mode 100644 common/MainEventType.ts delete mode 100644 common/Utils.ts create mode 100644 electron-builder.json5 create mode 100644 electron/electron-env.d.ts create mode 100644 electron/main/index.ts create mode 100644 electron/main/update.ts create mode 100644 electron/preload/index.ts create mode 100644 license/electron-vite-react delete mode 100644 main-process/AppMenu.ts delete mode 100644 main-process/MainProcess.tsx delete mode 100644 main-process/Settings.ts delete mode 100644 main-process/Workspace.ts create mode 100644 pre-commit create mode 100644 public/electron-vite.svg create mode 100644 public/favicon.ico rename {static => public}/icons/Action.svg (100%) rename {static => public}/icons/Composite.svg (100%) rename {static => public}/icons/Condition.svg (100%) rename {static => public}/icons/Debug.svg (100%) rename {static => public}/icons/Decorator.svg (100%) rename {static => public}/icons/Error.svg (100%) rename {static => public}/icons/Other.svg (100%) create mode 100644 public/locales/en.json create mode 100644 public/locales/zh.json create mode 100644 public/logo.svg delete mode 100644 render-process/Editor/Editor.css delete mode 100644 render-process/Editor/NodePanel.tsx delete mode 100644 render-process/Editor/TreePanel.tsx delete mode 100644 render-process/Editor/index.tsx delete mode 100644 render-process/Explorer.tsx delete mode 100644 render-process/RegisterNode.ts delete mode 100644 render-process/TreeTabs.tsx delete mode 100644 render-process/index.css delete mode 100644 render-process/index.tsx create mode 100644 sample/node-config.b3-setting delete mode 100644 sample/node-config.json create mode 100644 sample/workdir/sub/subtree1.json create mode 100644 sample/workdir/sub/subtree2.json rename sample/{workspace.json => workspace.b3-workspace} (100%) create mode 100644 src/assets/node.svg create mode 100644 src/components/editor.tsx create mode 100644 src/components/explorer.tsx create mode 100644 src/components/inspector.tsx create mode 100644 src/components/menu.tsx create mode 100644 src/components/register-node.ts create mode 100644 src/components/setup.tsx create mode 100644 src/components/titlebar.tsx create mode 100644 src/components/workspace.tsx create mode 100644 src/contexts/setting-context.ts create mode 100644 src/contexts/workspace-context.ts create mode 100644 src/index.scss create mode 100644 src/main.tsx create mode 100644 src/misc/b3type.ts create mode 100644 src/misc/b3util.ts create mode 100644 src/misc/hooks.ts create mode 100644 src/misc/i18n.ts create mode 100644 src/misc/json.ts create mode 100644 src/misc/keys.ts create mode 100644 src/misc/path.ts create mode 100644 src/misc/theme.ts create mode 100644 src/vite-env.d.ts create mode 100644 tsconfig.node.json create mode 100644 vite.config.ts delete mode 100644 webpack.config.js diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..dfae6bb --- /dev/null +++ b/.eslintignore @@ -0,0 +1,7 @@ +**/*.js +**/*.d.ts +electron/ +common/ +.eslintrc.cjs +playwright.config.ts +vite.config.ts \ No newline at end of file diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..c50873b --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,40 @@ +module.exports = { + extends: [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + + // TODO + // "plugin:@typescript-eslint/recommended-type-checked", + ], + plugins: ["@typescript-eslint", "@stylistic/js", "react-refresh"], + parser: "@typescript-eslint/parser", + rules: { + "@typescript-eslint/no-namespace": "off", + "@typescript-eslint/no-shadow": "error", + "react-refresh/only-export-components": "warn", + + // TODO: + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-unused-vars": "off", + "@typescript-eslint/no-unsafe-assignment": "off", + "@typescript-eslint/no-unsafe-argument": "off", + "@typescript-eslint/no-floating-promises": "off", + + // https://eslint.style/rules/js/lines-between-class-members + "@stylistic/js/lines-between-class-members": [ + "error", + { + enforce: [ + { blankLine: "always", prev: "method", next: "method" }, + { blankLine: "always", prev: "field", next: "method" }, + { blankLine: "always", prev: "method", next: "field" }, + ], + }, + ], + }, + parserOptions: { + project: true, + tsconfigRootDir: __dirname, + }, + root: true, +}; diff --git a/.gitignore b/.gitignore index 5d3f789..902dd95 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,32 @@ -node_modules/ -dist/ -build/ -settings.json \ No newline at end of file +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +dist-electron +release +*.local + +# Editor directories and files +.vscode/.debug.env +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +#lockfile +pnpm-lock.yaml +yarn.lock +/test-results/ +/playwright-report/ +/playwright/.cache/ diff --git a/.npmrc b/.npmrc index e7362fb..c483022 100644 --- a/.npmrc +++ b/.npmrc @@ -1,3 +1 @@ -# registry=https://registry.npm.taobao.org/ -# ELECTRON_MIRROR=https://registry.npmmirror.com/-/binary/electron/ -# ELECTRON_BUILDER_BINARIES_MIRROR=https://registry.npmmirror.com/-/binary/electron-builder-binaries/ \ No newline at end of file +shamefully-hoist=true \ No newline at end of file diff --git a/.prettierrc b/.prettierrc index 4caff8a..db2aae7 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,7 +1,7 @@ { "endOfLine": "lf", "semi": true, - "tabWidth": 4, + "tabWidth": 2, "printWidth": 100, "trailingComma": "es5" } diff --git a/.vscode/.debug.script.mjs b/.vscode/.debug.script.mjs new file mode 100644 index 0000000..9ca9336 --- /dev/null +++ b/.vscode/.debug.script.mjs @@ -0,0 +1,23 @@ +import fs from 'node:fs' +import path from 'node:path' +import { fileURLToPath } from 'node:url' +import { createRequire } from 'node:module' +import { spawn } from 'node:child_process' + +const pkg = createRequire(import.meta.url)('../package.json') +const __dirname = path.dirname(fileURLToPath(import.meta.url)) + +// write .debug.env +const envContent = Object.entries(pkg.debug.env).map(([key, val]) => `${key}=${val}`) +fs.writeFileSync(path.join(__dirname, '.debug.env'), envContent.join('\n')) + +// bootstrap +spawn( + // TODO: terminate `npm run dev` when Debug exits. + process.platform === 'win32' ? 'npm.cmd' : 'npm', + ['run', 'dev'], + { + stdio: 'inherit', + env: Object.assign(process.env, { VSCODE_DEBUG: 'true' }), + }, +) \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..fe78c45 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,7 @@ +{ + // See http://go.microsoft.com/fwlink/?LinkId=827846 + // for the documentation about the extensions.json format + "recommendations": [ + "mrmlnc.vscode-json5" + ] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..ca73f25 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,47 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "compounds": [ + { + "name": "Debug App", + "preLaunchTask": "Before Debug", + "configurations": ["Debug Main Process", "Debug Renderer Process"], + "presentation": { + "hidden": false, + "group": "", + "order": 1 + }, + "stopAll": true + } + ], + "configurations": [ + { + "name": "Debug Main Process", + "type": "node", + "request": "launch", + "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron", + "windows": { + "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd" + }, + "runtimeArgs": ["--no-sandbox", "--remote-debugging-port=9229", "."], + "envFile": "${workspaceFolder}/.vscode/.debug.env", + "console": "integratedTerminal" + }, + { + "name": "Debug Renderer Process", + "port": 9229, + "request": "attach", + "type": "chrome", + "timeout": 60000, + "skipFiles": [ + "/**", + "${workspaceRoot}/node_modules/**", + "${workspaceRoot}/dist-electron/**", + // Skip files in host(VITE_DEV_SERVER_URL) + "http://127.0.0.1:7777/**" + ] + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..1e3e2cd --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,13 @@ +{ + "typescript.tsdk": "node_modules/typescript/lib", + "typescript.tsc.autoDetect": "off", + "json.schemas": [ + { + "fileMatch": [ + "/*electron-builder.json5", + "/*electron-builder.json" + ], + "url": "https://json.schemastore.org/electron-builder" + } + ] +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..85d09cd --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,31 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "Before Debug", + "type": "shell", + "command": "node .vscode/.debug.script.mjs", + "isBackground": true, + "problemMatcher": { + "owner": "typescript", + "fileLocation": "relative", + "pattern": { + // TODO: correct "regexp" + "regexp": "^([a-zA-Z]\\:\/?([\\w\\-]\/?)+\\.\\w+):(\\d+):(\\d+): (ERROR|WARNING)\\: (.*)$", + "file": 1, + "line": 3, + "column": 4, + "code": 5, + "message": 6 + }, + "background": { + "activeOnStart": true, + "beginsPattern": "^.*VITE v.* ready in \\d* ms.*$", + "endsPattern": "^.*\\[startup\\] Electron App.*$" + } + } + } + ] +} \ No newline at end of file diff --git a/build/icon.icns b/build/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..56b37d51b7d83abb7a02a75bb29485c73e0ddfa0 GIT binary patch literal 150032 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
WRDQn|$g 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 literal 0 HcmV?d00001 diff --git a/common/BatchExec.ts b/common/BatchExec.ts deleted file mode 100644 index 7eedd92..0000000 --- a/common/BatchExec.ts +++ /dev/null @@ -1,46 +0,0 @@ -import * as fs from 'fs'; -import * as path from 'path'; -import { BehaviorNodeModel, BehaviorTreeModel } from './BehaviorTreeModel'; - -export default (scriptPath: string, dirPath: string) => { - console.log("run script", scriptPath); - const str = fs.readFileSync(scriptPath, "utf8"); - const script = eval(str); - const batchExec = (filePath: string) => { - const files = fs.readdirSync(filePath); - files.forEach((filename) => { - var filedir = path.join(filePath, filename); - const stats = fs.statSync(filedir); - if (stats.isFile() && filename.match(/.\.json$/)) { - const str = fs.readFileSync(filedir, "utf8"); - let tree: BehaviorTreeModel = JSON.parse(str); - if (script.processTree) { - tree = script.processTree(tree); - } - if (tree && script.processNode) { - const processNode = (node: BehaviorNodeModel) => { - script.processNode(node, tree); - if (node.children) { - for (let child of node.children) { - processNode(child); - } - } - } - processNode(tree.root); - } - if (tree) { - fs.writeFileSync( - filedir, - JSON.stringify(tree) - ); - } - - } - if (stats.isDirectory()) { - batchExec(filedir); - } - }); - } - batchExec(dirPath); - console.log("run script", scriptPath, "done!"); -} \ No newline at end of file diff --git a/common/BehaviorTreeModel.ts b/common/BehaviorTreeModel.ts deleted file mode 100644 index e47b483..0000000 --- a/common/BehaviorTreeModel.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { TreeGraphData } from "@antv/g6/lib/types"; - -export interface ArgsOptional { - name: string; - value: string | number; -} - -export interface ArgsDefType { - name: string; - type: string; - desc: string; - default: string; - options: ArgsOptional[]; -} -export interface BehaviorNodeTypeModel { - name: string; - type?: string; - desc?: string; - args?: ArgsDefType[]; - input?: string[]; - output?: string[]; - doc?: string; -} - -export interface BehaviorNodeModel { - id: number; - name: string; - desc?: string; - args?: { [key: string]: any }; - input?: string[]; - output?: string[]; - children?: BehaviorNodeModel[]; - debug?: boolean; - path?: string; -} - -export interface BehaviorTreeModel { - name: string; - desc?: string; - root: BehaviorNodeModel; -} - -export interface GraphNodeModel extends TreeGraphData { - name: string; - desc?: string; - args?: { [key: string]: any }; - input?: string[]; - output?: string[]; - children?: GraphNodeModel[]; - conf: BehaviorNodeTypeModel; - debug?: boolean; - parent?: string; - path?: string; - - size?: number[]; -} diff --git a/common/MainEventType.ts b/common/MainEventType.ts deleted file mode 100644 index eccef01..0000000 --- a/common/MainEventType.ts +++ /dev/null @@ -1,17 +0,0 @@ -export default { - OPEN_FILE: "OPEN_FILE", - OPEN_DIR: "OPEN_DIR", - RELOAD_SERVER: "RELOAD_SERVER", - BATCH_EXEC: "BATCH_EXEC", - CREATE_TREE: "CREATE_TREE", - CREATE_NODE: "CREATE_NODE", - DELETE_NODE: "DELETE_NODE", - COPY_NODE: "COPY_NODE", - PASTE_NODE: "PASTE_NODE", - SAVE_ALL: "SAVE_ALL", - BUILD: "BUILD", - SAVE: "SAVE", - SAVE_AS_SUBTREE: "SAVE_AS_SUBTREE", - UNDO: "UNDO", - REDO: "REDO", -}; diff --git a/common/Utils.ts b/common/Utils.ts deleted file mode 100644 index 2f5d4b3..0000000 --- a/common/Utils.ts +++ /dev/null @@ -1,203 +0,0 @@ -import { message } from "antd"; -import * as fs from "fs"; -import * as path from "path"; -import Settings from "../main-process/Settings"; -import { BehaviorNodeModel, BehaviorTreeModel, GraphNodeModel } from "./BehaviorTreeModel"; - -interface INodeDataLike { - path?: string; - id: string | number; -} - -export const isSubtree = (nodeData: INodeDataLike) => { - return nodeData.path && nodeData.id.toString() !== "1"; -}; - -const parsingStack: string[] = []; - -export const cloneNodeData = (nodeData: GraphNodeModel) => { - const newData: BehaviorNodeModel = { - id: Number(nodeData.id), - name: nodeData.name, - desc: nodeData.desc, - path: nodeData.path, - }; - if (nodeData.input) { - newData.input = []; - for (let v of nodeData.input) { - newData.input.push(v || ""); - } - } - if (nodeData.output) { - newData.output = []; - for (let v of nodeData.output) { - newData.output.push(v || ""); - } - } - if (nodeData.args) { - newData.args = {}; - for (let k in nodeData.args) { - let v = nodeData.args[k]; - newData.args[k] = v; - } - } - if (nodeData.children && !isSubtree(nodeData)) { - newData.children = []; - for (let child of nodeData.children) { - newData.children.push(cloneNodeData(child)); - } - } - return newData; -}; - -export const refreshNodeId = (nodeData: GraphNodeModel, id?: number) => { - if (!id) { - id = 1; - } - nodeData.id = (id++).toString(); - if (nodeData.children) { - nodeData.children.forEach((child) => { - child.parent = nodeData.id; - id = refreshNodeId(child, id); - }); - } - return id; -}; - -export const calcTreeNodeSize = (treeNode: GraphNodeModel) => { - var height = 40 + 2; - const updateHeight = (obj: any) => { - if (Array.isArray(obj) || (obj && Object.keys(obj).length > 0)) { - const { str, line } = toBreakWord(`参数:${JSON.stringify(obj)}`, 35); - height += 20 * line; - } - }; - if (treeNode.path) { - height += 20; - } - updateHeight(treeNode.args); - updateHeight(treeNode.input); - updateHeight(treeNode.output); - return [200, height]; -}; - -export const createTreeData = (bNode: BehaviorNodeModel, settings: Settings, parent?: string) => { - let treeData: GraphNodeModel = { - id: bNode.id.toString(), - name: bNode.name, - desc: bNode.desc, - args: bNode.args, - input: bNode.input, - output: bNode.output, - debug: bNode.debug, - conf: settings.getNodeConf(bNode.name), - parent: parent, - }; - - treeData.size = calcTreeNodeSize(treeData); - - if (!parent) { - parsingStack.length = 0; - } - - if (bNode.children) { - treeData.children = []; - bNode.children.forEach((child) => { - treeData.children.push(createTreeData(child, settings, treeData.id)); - }); - } else if (bNode.path) { - if (parsingStack.indexOf(bNode.path) >= 0) { - treeData.path = bNode.path; - treeData.size = calcTreeNodeSize(treeData); - message.error(`循环引用节点:${bNode.path}`, 4); - return treeData; - } - parsingStack.push(bNode.path); - try { - const subtreePath = settings.workdir + "/" + bNode.path; - const str = fs.readFileSync(subtreePath, "utf8"); - treeData = createTreeData(JSON.parse(str).root, settings, treeData.id); - treeData.path = bNode.path; - treeData.size = calcTreeNodeSize(treeData); - } catch (error) { - message.error(`解析子树失败:${bNode.path}`); - console.log("parse subtree:", error); - } - parsingStack.pop(); - } - calcTreeNodeSize(treeData); - return treeData; -}; - -export const createBuildData = (path: string, settings: Settings): BehaviorNodeModel | null => { - try { - path = settings.workdir + "/" + path; - const str = fs.readFileSync(path, "utf8"); - let treeModel = JSON.parse(str); - const data = createTreeData(treeModel.root, settings); - refreshNodeId(data); - treeModel.root = createFileData(data, true); - return treeModel as BehaviorNodeModel; - } catch (error) { - console.log("build error:", path, error); - } - return null; -}; - -export const createFileData = (gNode: GraphNodeModel, includeSubtree?: boolean) => { - const nodeData: BehaviorNodeModel = { - id: Number(gNode.id), - name: gNode.name, - desc: gNode.desc || undefined, - args: gNode.args || undefined, - input: gNode.input || undefined, - output: gNode.output || undefined, - debug: gNode.debug, - path: gNode.path, - }; - if (gNode.children && (includeSubtree || !isSubtree(gNode))) { - nodeData.children = []; - gNode.children.forEach((child) => { - nodeData.children.push(createFileData(child, includeSubtree)); - }); - } - return nodeData; -}; - -export const getRemoteSettings = () => { - return require("@electron/remote").getGlobal("settings") as Settings; -}; - -export const fileName2treeName = (filename: string) => { - return path.basename(filename).slice(0, -5); -}; - -export const createNewTree = (filename: string) => { - const tree: BehaviorTreeModel = { - name: fileName2treeName(filename), - root: { - id: 1, - name: "Sequence", - desc: "新建行为树", - }, - }; - return tree; -}; - -export const toBreakWord = (str: string, len: number, char = "\n") => { - var strTemp = ""; - var line = 1; - if (str.length <= len) { - return { str, line }; - } - while (str.length > len) { - strTemp += str.substr(0, len) + char; - str = str.substr(len, str.length); - line++; - } - strTemp += str; - return { - str: strTemp, - line, - }; -}; diff --git a/electron-builder.json5 b/electron-builder.json5 new file mode 100644 index 0000000..37fc5cd --- /dev/null +++ b/electron-builder.json5 @@ -0,0 +1,37 @@ +/** + * @see https://www.electron.build/configuration/configuration + */ +{ + appId: "behavior3editor", + productName: "Behavior3 Editor", + asar: true, + directories: { + output: "release/${version}", + }, + files: ["dist-electron", "dist"], + mac: { + artifactName: "behavior3editor_${version}.${ext}", + target: ["dmg", "zip"], + }, + win: { + target: [ + { + target: "nsis", + arch: ["x64"], + // arch: ["x64", "ia32"], + }, + ], + artifactName: "behavior3editor_${version}.${ext}", + }, + nsis: { + oneClick: false, + perMachine: false, + allowToChangeInstallationDirectory: true, + deleteAppDataOnUninstall: false, + }, + publish: { + provider: "generic", + channel: "latest", + url: "https://github.com/electron-vite/electron-vite-react/releases/download/v0.9.9/", + }, +} diff --git a/electron/electron-env.d.ts b/electron/electron-env.d.ts new file mode 100644 index 0000000..5f0b7f5 --- /dev/null +++ b/electron/electron-env.d.ts @@ -0,0 +1,11 @@ +/// + +declare namespace NodeJS { + interface ProcessEnv { + VSCODE_DEBUG?: 'true' + DIST_ELECTRON: string + DIST: string + /** /dist/ or /public/ */ + PUBLIC: string + } +} \ No newline at end of file diff --git a/electron/main/index.ts b/electron/main/index.ts new file mode 100644 index 0000000..c710ac7 --- /dev/null +++ b/electron/main/index.ts @@ -0,0 +1,170 @@ +import { app, BrowserWindow, shell, ipcMain } from "electron"; +import { release } from "node:os"; +import path, { join } from "node:path"; +import { update } from "./update"; + +import * as fs from "fs"; + +// The built directory structure +// +// ├─┬ dist-electron +// │ ├─┬ main +// │ │ └── index.js > Electron-Main +// │ └─┬ preload +// │ └── index.js > Preload-Scripts +// ├─┬ dist +// │ └── index.html > Electron-Renderer +// +process.env.DIST_ELECTRON = join(__dirname, "../"); +process.env.DIST = join(process.env.DIST_ELECTRON, "../dist"); +process.env.PUBLIC = process.env.VITE_DEV_SERVER_URL + ? join(process.env.DIST_ELECTRON, "../public") + : process.env.DIST; + +// Disable GPU Acceleration for Windows 7 +if (release().startsWith("6.1")) app.disableHardwareAcceleration(); + +// Set application name for Windows 10+ notifications +if (process.platform === "win32") app.setAppUserModelId(app.getName()); + +if (!app.requestSingleInstanceLock()) { + app.quit(); + process.exit(0); +} + +// Remove electron security warnings +// This warning only shows in development mode +// Read more on https://www.electronjs.org/docs/latest/tutorial/security +// process.env['ELECTRON_DISABLE_SECURITY_WARNINGS'] = 'true' + +interface Workspace { + projectPath?: string; + window: BrowserWindow; +} + +const preload = "../preload/index.js"; +const url = process.env.VITE_DEV_SERVER_URL; +const indexHtml = join(process.env.DIST, "index.html"); +const windows: Workspace[] = []; + +async function createWindow(projectPath?: string) { + const win = new BrowserWindow({ + title: "Behaviour3 Editor", + frame: false, + width: 1280, + height: 800, + minHeight: 600, + minWidth: 800, + closable: true, + minimizable: true, + maximizable: true, + titleBarStyle: "hidden", + titleBarOverlay: + process.platform === "darwin" + ? true + : { color: "#0d1117", height: 35, symbolColor: "#7d8590" }, + backgroundColor: "#0d1117", + trafficLightPosition: { x: 10, y: 10 }, + icon: join(process.env.PUBLIC, "favicon.ico"), + webPreferences: { + preload, + // Warning: Enable nodeIntegration and disable contextIsolation is not secure in production + // Consider using contextBridge.exposeInMainWorld + // Read more on https://www.electronjs.org/docs/latest/tutorial/context-isolation + nodeIntegration: true, + contextIsolation: false, + }, + }); + + const workspace = { projectPath, window: win }; + windows.push(workspace); + + win.maximizable = true; + + if (process.env.VITE_DEV_SERVER_URL) { + // electron-vite-vue#298 + win.loadURL(url); + // Open devTool if the app is not packaged + win.webContents.openDevTools(); + } else { + win.maximize(); + win.loadFile(indexHtml); + } + + win.webContents.on("did-finish-load", () => { + win.webContents.setZoomFactor(1); + if (workspace.projectPath) { + win?.webContents.send("open-project", workspace.projectPath); + } + + const nextWin = BrowserWindow.getAllWindows().at(-1); + if (nextWin) { + nextWin.focus(); + nextWin.webContents.send("refresh-app-men"); + } + }); + + win.on("closed", () => { + const index = windows.findIndex((w) => w.window === win); + windows.splice(index, 1); + }); + + // Make all links open with the browser, not with the application + win.webContents.setWindowOpenHandler(({ url }) => { + if (url.startsWith("https:")) shell.openExternal(url); + return { action: "deny" }; + }); + + require("@electron/remote/main").enable(win.webContents); + + // Apply electron-updater + // update(win); +} + +app.whenReady().then(() => { + require("@electron/remote/main").initialize(); + createWindow(); +}); + +app.on("window-all-closed", () => { + if (process.platform !== "darwin") app.quit(); +}); + +app.on("second-instance", () => { + createWindow(); +}); + +app.on("activate", () => { + const allWindows = BrowserWindow.getAllWindows(); + + if (allWindows.length) { + allWindows[0].focus(); + } else { + createWindow(); + } +}); + +// New window example arg: new windows url +ipcMain.handle("open-win", (event, arg: string | undefined) => { + if (arg) { + let workspace = windows.find((v) => v.projectPath === arg); + if (workspace) { + workspace.window.focus(); + return; + } + + workspace = windows.find((v) => v.window.webContents.id === event.sender.id); + if (!workspace.projectPath) { + workspace.projectPath = arg; + workspace.window.webContents.send("open-project", arg); + return; + } + } + + createWindow(arg); +}); + +ipcMain.handle("trashItem", (_, arg: string) => { + arg = arg.replace(/\//g, path.sep); + shell.trashItem(arg).catch((e) => console.error(e)); +}); diff --git a/electron/main/update.ts b/electron/main/update.ts new file mode 100644 index 0000000..759f086 --- /dev/null +++ b/electron/main/update.ts @@ -0,0 +1,73 @@ +import { app, ipcMain } from 'electron' +import { + type ProgressInfo, + type UpdateDownloadedEvent, + autoUpdater +} from 'electron-updater' + +export function update(win: Electron.BrowserWindow) { + + // When set to false, the update download will be triggered through the API + autoUpdater.autoDownload = false + autoUpdater.disableWebInstaller = false + autoUpdater.allowDowngrade = false + + // start check + autoUpdater.on('checking-for-update', function () { }) + // update available + autoUpdater.on('update-available', (arg) => { + win.webContents.send('update-can-available', { update: true, version: app.getVersion(), newVersion: arg?.version }) + }) + // update not available + autoUpdater.on('update-not-available', (arg) => { + win.webContents.send('update-can-available', { update: false, version: app.getVersion(), newVersion: arg?.version }) + }) + + // Checking for updates + ipcMain.handle('check-update', async () => { + if (!app.isPackaged) { + const error = new Error('The update feature is only available after the package.') + return { message: error.message, error } + } + + try { + return await autoUpdater.checkForUpdatesAndNotify() + } catch (error) { + return { message: 'Network error', error } + } + }) + + // Start downloading and feedback on progress + ipcMain.handle('start-download', (event) => { + startDownload( + (error, progressInfo) => { + if (error) { + // feedback download error message + event.sender.send('update-error', { message: error.message, error }) + } else { + // feedback update progress message + event.sender.send('download-progress', progressInfo) + } + }, + () => { + // feedback update downloaded message + event.sender.send('update-downloaded') + } + ) + }) + + // Install now + ipcMain.handle('quit-and-install', () => { + autoUpdater.quitAndInstall(false, true) + }) +} + +function startDownload( + callback: (error: Error | null, info: ProgressInfo) => void, + complete: (event: UpdateDownloadedEvent) => void, +) { + autoUpdater.on('download-progress', info => callback(null, info)) + autoUpdater.on('error', error => callback(error, null)) + autoUpdater.on('update-downloaded', complete) + autoUpdater.downloadUpdate() +} diff --git a/electron/preload/index.ts b/electron/preload/index.ts new file mode 100644 index 0000000..de2293d --- /dev/null +++ b/electron/preload/index.ts @@ -0,0 +1,92 @@ +function domReady(condition: DocumentReadyState[] = ["complete", "interactive"]) { + return new Promise((resolve) => { + if (condition.includes(document.readyState)) { + resolve(true); + } else { + document.addEventListener("readystatechange", () => { + if (condition.includes(document.readyState)) { + resolve(true); + } + }); + } + }); +} + +const safeDOM = { + append(parent: HTMLElement, child: HTMLElement) { + if (!Array.from(parent.children).find((e) => e === child)) { + return parent.appendChild(child); + } + }, + remove(parent: HTMLElement, child: HTMLElement) { + if (Array.from(parent.children).find((e) => e === child)) { + return parent.removeChild(child); + } + }, +}; + +/** + * https://tobiasahlin.com/spinkit + * https://connoratherton.com/loaders + * https://projects.lukehaas.me/css-loaders + * https://matejkustec.github.io/SpinThatShit + */ +function useLoading() { + const className = `loaders-css__square-spin`; + const styleContent = ` +@keyframes square-spin { + 25% { transform: perspective(100px) rotateX(180deg) rotateY(0); } + 50% { transform: perspective(100px) rotateX(180deg) rotateY(180deg); } + 75% { transform: perspective(100px) rotateX(0) rotateY(180deg); } + 100% { transform: perspective(100px) rotateX(0) rotateY(0); } +} +.${className} > div { + animation-fill-mode: both; + width: 50px; + height: 50px; + background: #fff; + animation: square-spin 3s 0s cubic-bezier(0.09, 0.57, 0.49, 0.9) infinite; +} +.app-loading-wrap { + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + display: flex; + align-items: center; + justify-content: center; + background: #282c34; + z-index: 9; +} + `; + const oStyle = document.createElement("style"); + const oDiv = document.createElement("div"); + + oStyle.id = "app-loading-style"; + oStyle.innerHTML = styleContent; + oDiv.className = "app-loading-wrap"; + oDiv.innerHTML = `
`; + + return { + appendLoading() { + safeDOM.append(document.head, oStyle); + safeDOM.append(document.body, oDiv); + }, + removeLoading() { + safeDOM.remove(document.head, oStyle); + safeDOM.remove(document.body, oDiv); + }, + }; +} + +// ---------------------------------------------------------------------- + +const { appendLoading, removeLoading } = useLoading(); +domReady().then(appendLoading); + +window.onmessage = (ev) => { + ev.data.payload === "removeLoading" && removeLoading(); +}; + +setTimeout(removeLoading, 4999); diff --git a/index.html b/index.html index ebb1968..5fca809 100644 --- a/index.html +++ b/index.html @@ -1,14 +1,14 @@ - - - - - 行为树编辑器 - - - -
- - - - \ No newline at end of file + + + + + + + Behavior3 Editor + + +
+ + + diff --git a/license/electron-vite-react b/license/electron-vite-react new file mode 100644 index 0000000..22edc0e --- /dev/null +++ b/license/electron-vite-react @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 草鞋没号 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/main-process/AppMenu.ts b/main-process/AppMenu.ts deleted file mode 100644 index 870670c..0000000 --- a/main-process/AppMenu.ts +++ /dev/null @@ -1,474 +0,0 @@ -import { - Menu, - app, - dialog, - BrowserWindow, - MenuItem, - WebContents, - MenuItemConstructorOptions, -} from "electron"; -import * as fs from "fs"; -import * as Utils from "../common/Utils"; -import MainEventType from "../common/MainEventType"; -import { MainProcess } from "./MainProcess"; -import Settings from "./Settings"; - -const packageConf = require("../package.json"); - -export default class AppMenu { - private mainProcess: MainProcess; - private mainWindow: BrowserWindow; - private webContents: WebContents; - private settings: Settings; - private buildDir?: string; - - constructor(mainProcess: MainProcess) { - this.mainProcess = mainProcess; - this.mainWindow = mainProcess.mainWindow; - this.webContents = mainProcess.mainWindow.webContents; - this.settings = mainProcess.settings; - } - - createMenu() { - const menu: Menu = new Menu(); - menu.append(this.createFileMenu()); - menu.append(this.createEditMenu()); - menu.append(this.createNodeMenu()); - menu.append(this.createWorkspaceMenu()); - menu.append(this.createToolsMenu()); - return menu; - } - - private createFileMenu() { - const fileItems: MenuItemConstructorOptions[] = []; - for (let path of this.settings.recentFiles) { - fileItems.push({ - label: path, - click: () => { - console.log("open recent file", path); - }, - }); - } - - return new MenuItem({ - label: "行为树", - submenu: [ - { - label: "新建", - accelerator: "CmdOrCtrl+n", - click: () => { - (async () => { - const res = await dialog.showSaveDialog({ - properties: ["showOverwriteConfirmation"], - filters: [{ name: "Json", extensions: ["json"] }], - }); - if (!res.canceled) { - const path = res.filePath; - fs.writeFileSync( - path, - JSON.stringify(Utils.createNewTree(path), null, 2) - ); - this.webContents.send(MainEventType.CREATE_TREE, path); - } - })(); - }, - }, - { - label: "打开文件", - accelerator: "CmdOrCtrl+O", - click: () => { - (async () => { - const res = await dialog.showOpenDialog({ - properties: ["openFile"], - filters: [{ name: "Json", extensions: ["json"] }], - }); - if (res.filePaths.length > 0) { - const path = res.filePaths[0]; - if (this.settings.recentFiles.indexOf(path) < 0) { - this.settings.recentFiles.unshift(path); - this.settings.save(); - this.mainProcess.rebuildMenu(); - } - this.webContents.send(MainEventType.OPEN_FILE, path); - } - })(); - }, - }, - { type: "separator" }, - { - label: "最近打开", - submenu: fileItems, - }, - - { type: "separator" }, - { - label: "保存", - accelerator: "CmdOrCtrl+s", - click: () => { - this.webContents.send(MainEventType.SAVE); - }, - }, - { - label: "全部保存", - accelerator: "CmdOrCtrl+shift+s", - click: () => { - this.webContents.send(MainEventType.SAVE_ALL); - }, - }, - { - label: "保存为子树", - click: async () => { - const res = await dialog.showSaveDialog({ - defaultPath: this.settings.workdir, - properties: ["showOverwriteConfirmation"], - filters: [{ name: "Json", extensions: ["json"] }], - }); - if (!res.canceled) { - const path = res.filePath; - this.webContents.send(MainEventType.SAVE_AS_SUBTREE, path); - } - }, - }, - { - label: "合并导出Json", - click: () => { - (async () => { - const res = await dialog.showSaveDialog({ - properties: ["showOverwriteConfirmation"], - filters: [{ name: "Json", extensions: ["json"] }], - }); - if (res.filePath) { - const curWorkspace = this.settings.curWorkspace; - curWorkspace.writeAllTrees(res.filePath, (err) => { - const msg = err ? err : "导出成功"; - dialog.showMessageBox({ - type: "info", - buttons: ["ok"], - message: msg, - }); - }); - } - })(); - }, - }, - { - label: "构建", - accelerator: "CmdOrCtrl+b", - click: async () => { - if (!this.buildDir) { - const res = await dialog.showOpenDialog({ - properties: ["openDirectory"], - }); - if (res.canceled) { - return; - } - this.buildDir = res.filePaths[0]; - } - this.webContents.send(MainEventType.BUILD, this.buildDir); - }, - }, - ], - }); - } - - private createEditMenu() { - return new MenuItem({ - label: "编辑", - submenu: [ - { - label: "撤销", - accelerator: "CmdOrCtrl+z", - role: "undo", - }, - { - label: "恢复", - accelerator: process.platform === "darwin" ? "cmd+shift+z" : "ctrl+y", - role: "redo", - }, - { type: "separator" }, - { - label: "新建节点", - accelerator: process.platform === "darwin" ? "enter" : "insert", - click: () => { - this.webContents.send(MainEventType.CREATE_NODE, "unknow"); - }, - }, - { - label: "删除节点", - accelerator: process.platform === "darwin" ? "backspace" : "delete", - click: () => { - this.webContents.send(MainEventType.DELETE_NODE); - }, - }, - { type: "separator" }, - { - label: "复制节点", - role: "copy", - }, - { - label: "粘贴节点", - role: "paste", - }, - ], - }); - } - - private createWorkspaceMenu() { - const openWorkspace = (path: string) => { - const curWorkspace = this.settings.curWorkspace; - curWorkspace.setFilepath(path); - curWorkspace.load(); - this.settings.pushRecentWorkspace(path); - this.mainProcess.rebuildMenu(); - this.webContents.send( - MainEventType.OPEN_DIR, - curWorkspace.getWorkdir(), - curWorkspace.getFilepath() - ); - }; - const saveToNewPath = () => { - (async () => { - const res = await dialog.showSaveDialog({ - properties: ["showOverwriteConfirmation"], - filters: [{ name: "Json", extensions: ["json"] }], - }); - if (!res.canceled) { - this.settings.curWorkspace.setFilepath(res.filePath); - this.settings.curWorkspace.save(); - openWorkspace(res.filePath); - } - })(); - }; - const recentItems: MenuItemConstructorOptions[] = []; - for (let path of this.settings.recentWorkspaces) { - recentItems.push({ - label: path, - click: () => { - console.log("open recent workspace", path); - openWorkspace(path); - }, - }); - } - return new MenuItem({ - label: "工作区", - submenu: [ - { - label: "打开", - click: () => { - (async () => { - const res = await dialog.showOpenDialog({ - properties: ["openFile"], - filters: [{ name: "Json", extensions: ["json"] }], - }); - if (res.filePaths.length > 0) { - openWorkspace(res.filePaths[0]); - } - })(); - }, - }, - { - label: "保存", - click: () => { - if (this.settings.curWorkspace.getFilepath()) { - this.settings.curWorkspace.save(); - } else { - saveToNewPath(); - } - }, - }, - { - label: "另存为", - click: () => { - saveToNewPath(); - }, - }, - { - label: "刷新", - accelerator: "F5", - click: () => { - console.log("reload workspace"); - openWorkspace(this.settings.curWorkspace.getFilepath()); - }, - }, - { - label: "最近打开", - submenu: recentItems, - }, - { type: "separator" }, - { - label: "打开目录", - accelerator: "CmdOrCtrl+Shift+O", - click: () => { - if (!this.settings.curWorkspace.getNodeConfPath()) { - dialog.showErrorBox("警告", "请先指定节点定义配置!"); - return; - } - (async () => { - const res = await dialog.showOpenDialog({ - properties: ["openDirectory"], - }); - if (res.filePaths.length > 0) { - const curWorkspace = this.settings.curWorkspace; - const path = res.filePaths[0]; - curWorkspace.setWorkdir(path); - curWorkspace.save(); - this.webContents.send( - MainEventType.OPEN_DIR, - path, - curWorkspace.getFilepath() - ); - } - })(); - }, - }, - { - label: "节点定义", - submenu: [ - { - label: "选择文件", - click: () => { - (async () => { - const res = await dialog.showOpenDialog({ - properties: ["openFile"], - filters: [{ name: "Json", extensions: ["json"] }], - }); - if (res.filePaths.length > 0) { - const nodeConfigPath = res.filePaths[0]; - this.settings.curWorkspace.setNodeConfPath(nodeConfigPath); - this.mainProcess.rebuildMenu(); - } - })(); - }, - }, - { type: "separator" }, - { label: this.settings.nodeConfPath }, - ], - }, - { type: "separator" }, - { - label: "关闭", - click: () => { - app.quit(); - }, - }, - ], - }); - } - - private createToolsMenu() { - const serverItems: MenuItemConstructorOptions[] = []; - const curServerName = this.settings.serverName; - for (let model of this.settings.curWorkspace.getServers()) { - serverItems.push({ - label: `${model.name} ${model.host}`, - type: "checkbox", - checked: curServerName == model.name, - click: () => { - this.settings.serverName = model.name; - this.mainProcess.rebuildMenu(); - }, - }); - } - return new MenuItem({ - label: "开发工具", - submenu: [ - { - label: "热更", - accelerator: "CmdOrCtrl+R", - click: () => { - this.webContents.send(MainEventType.RELOAD_SERVER); - }, - }, - { - label: "联调服务器", - submenu: serverItems, - }, - { - label: "批处理脚本", - click: () => { - (async () => { - const res = await dialog.showOpenDialog({ - properties: ["openFile"], - filters: [{ name: "Javascript", extensions: ["js"] }], - }); - if (res.filePaths.length > 0) { - this.webContents.send(MainEventType.BATCH_EXEC, res.filePaths[0]); - } - })(); - }, - }, - { - type: "separator", - }, - { - label: "打开控制台", - accelerator: "CmdOrCtrl+Shift+I", - click: (_, browserWindow) => { - browserWindow.webContents.toggleDevTools(); - }, - }, - { - label: "重载编辑器", - click: (_, browserWindow) => { - browserWindow.reload(); - }, - }, - { - type: "separator", - }, - { - label: `当前版本:${packageConf.version}`, - }, - ], - }); - } - - private createNodeMenu() { - const classifyItems: MenuItemConstructorOptions[] = []; - const map: { [key: string]: MenuItemConstructorOptions } = {}; - for (let t of this.settings.nodeClassify) { - let item: MenuItemConstructorOptions = { - id: t.classify, - label: `${t.classify}(${t.desc})`, - submenu: [], - }; - classifyItems.push(item); - map[t.classify] = item; - } - const other: MenuItemConstructorOptions = { - id: "other", - label: "其它", - submenu: [], - }; - var hasOther = false; - - for (let node of this.settings.nodeConfig) { - const item: MenuItemConstructorOptions = { - label: `${node.name}(${node.desc})`, - click: () => { - console.log("create node", node.name); - this.webContents.send(MainEventType.CREATE_NODE, node.name); - }, - }; - let typeItem = map[node.type]; - if (!typeItem) { - typeItem = other; - hasOther = true; - } - if (typeItem.submenu instanceof Menu) { - console.log("typeItem.submenu error", typeItem); - } else { - (typeItem.submenu as MenuItemConstructorOptions[]).push(item); - } - } - - if (hasOther) { - classifyItems.push(other); - } - - return new MenuItem({ - label: "新建节点", - submenu: classifyItems, - }); - } -} diff --git a/main-process/MainProcess.tsx b/main-process/MainProcess.tsx deleted file mode 100644 index 19c9db6..0000000 --- a/main-process/MainProcess.tsx +++ /dev/null @@ -1,82 +0,0 @@ -import { app, BrowserWindow, Menu, MenuItem, dialog, nativeTheme } from "electron"; -import AppMenu from "./AppMenu"; -import Settings from "./Settings"; -import MainEventType from "../common/MainEventType"; -import electronLocalshortcut from "electron-localshortcut"; - -// 一些暴露给render-process的全局变量 -export interface Global { - settings: Settings; -} -declare var global: Global; - -export class MainProcess { - mainWindow: BrowserWindow; - appMenu: AppMenu; - settings: Settings; - constructor() { - nativeTheme.themeSource = "dark"; - app.on("ready", () => { - this.createWindow(); - this.registerShortcut("CmdOrCtrl+C", () => { - this.mainWindow.webContents.send(MainEventType.COPY_NODE); - }); - this.registerShortcut("CmdOrCtrl+V", () => { - this.mainWindow.webContents.send(MainEventType.PASTE_NODE); - }); - this.registerShortcut("CmdOrCtrl+Z", () => { - this.mainWindow.webContents.send(MainEventType.UNDO); - }); - this.registerShortcut(process.platform === "darwin" ? "Cmd+Shift+Z" : "ctrl+y", () => { - this.mainWindow.webContents.send(MainEventType.REDO); - }); - }); - app.on("window-all-closed", () => { - if (process.platform !== "darwin") { - app.quit(); - } - }); - app.on("activate", () => { - if (this.mainWindow === null) { - this.createWindow(); - } - }); - } - - registerShortcut(accelerator: string | string[], callback: () => void) { - electronLocalshortcut.register(this.mainWindow, accelerator, callback); - } - - createWindow() { - this.settings = new Settings(); - global.settings = this.settings; - - this.mainWindow = new BrowserWindow({ - width: 1280, - height: 800, - webPreferences: { - nodeIntegration: true, - contextIsolation: false, - }, - // fullscreenable:false, - // maximizable:false - }); - - require("@electron/remote/main").initialize(); - require("@electron/remote/main").enable(this.mainWindow.webContents); - this.mainWindow.maximize(); - // mainWindow.webContents.openDevTools(); - this.mainWindow.loadFile("index.html"); - this.mainWindow.on("closed", function () { - this.mainWindow = null; - }); - this.appMenu = new AppMenu(this); - this.rebuildMenu(); - } - - rebuildMenu() { - Menu.setApplicationMenu(this.appMenu.createMenu()); - } -} - -export default new MainProcess(); diff --git a/main-process/Settings.ts b/main-process/Settings.ts deleted file mode 100644 index 2e682dc..0000000 --- a/main-process/Settings.ts +++ /dev/null @@ -1,168 +0,0 @@ -import * as fs from "fs"; -import Workspace from "./Workspace"; -import { app } from "electron"; - -export interface BehaviorNodeClassify { - classify: string; - desc?: string; -} - -export interface SettingsModel { - recentWorkspaces?: string[]; - recentFiles?: string[]; - serverName?: string; - nodeClassify?: BehaviorNodeClassify[]; - treesDesc?: { [name: string]: string }; -} - -const settingPath = app.getPath("userData") + "/settings.json"; - -console.log("setting path:", settingPath); - -const sampleNodeClassify: BehaviorNodeClassify[] = [ - { classify: "Composite", desc: "复合节点" }, - { classify: "Decorator", desc: "修饰节点" }, - { classify: "Condition", desc: "条件节点" }, - { classify: "Action", desc: "行为节点" }, -]; - -export default class Settings { - private model: SettingsModel; - private dirty: boolean = false; - curWorkspace?: Workspace; - - constructor() { - this.load(); - - setInterval(() => { - if (this.dirty) { - fs.writeFileSync(settingPath, JSON.stringify(this.model, null, 2)); - this.dirty = false; - } - }, 1000); - } - - get nodeConfPath() { - return this.curWorkspace.getNodeConfPath(); - } - get recentWorkspaces() { - return this.model.recentWorkspaces; - } - get recentFiles() { - return this.model.recentFiles; - } - get nodeConfig() { - return this.curWorkspace.nodeConf; - } - get nodeClassify() { - return this.model.nodeClassify; - } - get serverModel() { - const servers = this.curWorkspace.getServers(); - if (!servers) { - return; - } - for (let server of servers) { - if (server.name == this.model.serverName) { - return server; - } - } - return servers[0]; - } - get serverName() { - const servers = this.curWorkspace.getServers(); - if (!servers) { - return ""; - } - for (let server of servers) { - if (server.name == this.model.serverName) { - return this.model.serverName; - } - } - if (servers[0]) { - return servers[0].name; - } else { - return ""; - } - } - set serverName(name: string) { - this.model.serverName = name; - this.save(); - } - - set(config: SettingsModel) { - this.model = { - ...this.model, - ...config, - }; - this.save(); - } - - load() { - if (fs.existsSync(settingPath)) { - const str = fs.readFileSync(settingPath, "utf8"); - this.model = JSON.parse(str); - if (!this.model.treesDesc) { - this.model.treesDesc = {}; - this.save(); - } - } else { - this.model = { - recentWorkspaces: ["sample/workspace.json"], - recentFiles: [], - nodeClassify: sampleNodeClassify, - treesDesc: {}, - }; - this.save(); - } - this.curWorkspace = new Workspace(this.model.recentWorkspaces[0]); - this.curWorkspace.load(); - } - - save() { - this.dirty = true; - } - - get workdir() { - return this.curWorkspace.getWorkdir(); - } - - getNodeConf(name: string) { - return this.curWorkspace.getNodeConf(name); - } - - hasNodeConf(name: string) { - return this.curWorkspace.hasNodeConf(name); - } - - pushRecentWorkspace(path: string) { - var list = this.model.recentWorkspaces; - if (list.indexOf(path) >= 0) { - list = list.filter((value) => value !== path); - } - list.unshift(path); - while (list.length > 10) { - list.pop(); - } - this.model.recentWorkspaces = list; - this.save(); - } - - getTreeDesc(name: string) { - const key = this.curWorkspace.getFilepath() + " " + name; - var desc = this.model.treesDesc[key]; - if (!desc) { - const str = fs.readFileSync(name, "utf8"); - const tree = JSON.parse(str); - desc = tree.desc ? tree.desc : ""; - this.model.treesDesc[key] = desc; - this.save(); - } - return desc; - } - - setTreeDesc(name: string, desc?: string) { - const key = this.curWorkspace.getFilepath() + " " + name; - this.model.treesDesc[key] = desc; - } -} diff --git a/main-process/Workspace.ts b/main-process/Workspace.ts deleted file mode 100644 index 8e6b0d2..0000000 --- a/main-process/Workspace.ts +++ /dev/null @@ -1,161 +0,0 @@ -import * as fs from "fs"; -import { BehaviorNodeTypeModel } from "../common/BehaviorTreeModel"; -import * as glob from "glob"; -import * as path from "path"; - -export interface ServerModel { - name: string; - host: string; -} - -export interface WorkspaceModel { - isRelative?: boolean; - nodeConfPath: string; - workdir: string; - servers?: ServerModel[]; -} - -const unknowNodeType: BehaviorNodeTypeModel = { - name: "unknow", - desc: "新建节点", - type: "Action", -}; - -export default class Workspace { - private filepath: string; - private nodeConfPath: string; - private workdir: string; - private model: WorkspaceModel; - - private name2conf: { [name: string]: BehaviorNodeTypeModel } = {}; - private types: BehaviorNodeTypeModel[] = []; - - constructor(filepath: string) { - this.filepath = filepath; - } - - load() { - if (!this.filepath) { - return; - } - try { - const str = fs.readFileSync(this.filepath, "utf8"); - const model = JSON.parse(str) as WorkspaceModel; - if (model.isRelative) { - const root = path.dirname(this.filepath); - this.nodeConfPath = path.join(root, model.nodeConfPath); - this.workdir = path.join(root, model.workdir); - } else { - this.nodeConfPath = model.nodeConfPath; - this.workdir = model.workdir; - } - this.model = model; - - this.initNodeConf(); - } catch (error) { - console.log(error); - } - } - - private initNodeConf() { - if (!this.nodeConfPath) { - return; - } - - const types: BehaviorNodeTypeModel[] = JSON.parse( - fs.readFileSync(this.nodeConfPath, "utf8") - ); - this.name2conf = {}; - types.forEach((t) => { - this.name2conf[t.name] = t; - }); - this.types = types; - } - - getNodeConfPath() { - return this.nodeConfPath; - } - setNodeConfPath(path: string) { - this.nodeConfPath = path; - this.initNodeConf(); - } - getWorkdir(): string { - return this.workdir; - } - setWorkdir(workdir: string) { - this.workdir = workdir; - } - getServers() { - if (this.model && this.model.servers) { - return this.model.servers; - } else { - return []; - } - } - getModel() { - return this.model; - } - - writeAllTrees(outFilePath: string, cb?: (err: string) => void) { - if (!fs.existsSync(this.getWorkdir())) { - cb && cb("请先打开工作区"); - return; - } - glob.glob(path.join(this.getWorkdir(), "**/*.json"), function (err, files) { - if (err) { - console.error(err); - cb && cb(err.message); - return; - } - - let result = new Array(); - files.forEach((file) => { - const data = fs.readFileSync(file, "utf8"); - result.push(JSON.parse(data)); - }); - - fs.writeFileSync(outFilePath, JSON.stringify(result, null, 2)); - cb && cb(null); - }); - } - - save(filepath?: string) { - if (filepath) { - this.filepath = filepath; - } - if (!this.filepath) { - return; - } - fs.writeFileSync( - this.filepath, - JSON.stringify( - { - nodeConfPath: this.nodeConfPath, - workdir: this.workdir, - }, - null, - 2 - ) - ); - } - - get nodeConf() { - return this.types; - } - - getFilepath() { - return this.filepath; - } - - setFilepath(filepath: string) { - this.filepath = filepath; - } - - getNodeConf(name: string) { - return this.name2conf[name] || unknowNodeType; - } - - hasNodeConf(name: string) { - return !!this.name2conf[name]; - } -} diff --git a/package-lock.json b/package-lock.json index 69b55c1..24b66cb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,71 +1,121 @@ { "name": "behavior3editor", - "version": "0.1.10", + "version": "1.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "behavior3editor", - "version": "0.1.10", + "version": "1.0.0", + "hasInstallScript": true, "license": "MIT", "dependencies": { - "@ant-design/icons": "^4.3.0", - "@antv/g6": "^3.8.5", + "@ant-design/icons": "^5.3.3", + "@antv/g6": "^4.8.24", "@electron/remote": "^2.1.2", - "@types/react": "^16.9.51", - "@types/react-dom": "^16.9.8", - "antd": "^4.6.6", - "lodash": "^4.17.20", - "react": "^16.13.1", - "react-confirm-alert": "^2.6.2", - "react-dom": "^16.13.1", - "react-markdown": "^5.0.2", - "rimraf": "^3.0.2", - "sanitize-filename": "^1.6.3", - "shineout": "^1.6.1", - "sync-request": "^6.1.0" + "@types/electron-localshortcut": "^3.1.3", + "@types/node": "^20.11.27", + "ahooks": "^3.7.10", + "antd": "^5.16.0", + "electron-localshortcut": "^3.2.1", + "electron-updater": "^5.3.0", + "i18next": "^23.10.1", + "i18next-browser-languagedetector": "^7.2.0", + "i18next-http-backend": "^2.5.0", + "json-stable-stringify": "^1.1.1", + "react-hotkeys-hook": "^4.5.0", + "react-i18next": "^14.1.0", + "react-icons": "^5.0.1", + "react-markdown": "^9.0.1", + "react-merge-refs": "^2.1.1", + "ts-key-enum": "^2.0.12", + "use-force-update": "^1.0.11", + "usehooks-ts": "^3.0.1", + "zustand": "^4.5.2" }, "devDependencies": { - "@types/electron-localshortcut": "^3.1.3", - "@types/glob": "^8.1.0", - "@types/node": "^20.11.25", - "@types/rimraf": "^3.0.2", - "copy-webpack-plugin": "^12.0.2", - "css-loader": "^6.10.0", - "electron": "^29.1.1", - "electron-builder": "^24.13.3", - "electron-localshortcut": "^3.2.1", - "electron-packager": "^17.1.2", - "file-loader": "^6.2.0", - "less": "^4.2.0", - "less-loader": "^12.2.0", - "node-fetch": "^3.3.2", - "source-map-loader": "^5.0.0", - "style-loader": "^3.3.4", - "ts-loader": "^9.5.1", - "typescript": "^5.3.3", - "webpack": "^5.90.3", - "webpack-cli": "^5.1.4" + "@stylistic/eslint-plugin-js": "^1.7.0", + "@types/react": "^18.0.28", + "@types/react-dom": "^18.0.11", + "@typescript-eslint/eslint-plugin": "^7.3.1", + "@typescript-eslint/parser": "^7.3.1", + "@vitejs/plugin-react": "^3.1.0", + "copy-files-from-to": "^3.9.1", + "electron": "^23.2.0", + "electron-builder": "^23.6.0", + "eslint": "^8.57.0", + "eslint-plugin-react-refresh": "^0.4.6", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "sass": "^1.60.0", + "typescript": "^5.0.2", + "vite": "^4.1.4", + "vite-electron-plugin": "^0.8.2", + "vite-plugin-electron": "^0.11.1", + "vite-plugin-electron-renderer": "^0.13.12" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" } }, "node_modules/@ant-design/colors": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/@ant-design/colors/-/colors-6.0.0.tgz", - "integrity": "sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.0.2.tgz", + "integrity": "sha512-7KJkhTiPiLHSu+LmMJnehfJ6242OCxSlR3xHVBecYxnMW8MS/878NXct1GqYARyL59fyeFdKRxXTfvR9SnDgJg==", "dependencies": { - "@ctrl/tinycolor": "^3.4.0" + "@ctrl/tinycolor": "^3.6.1" + } + }, + "node_modules/@ant-design/cssinjs": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.19.1.tgz", + "integrity": "sha512-hgQ3wiys3X0sqDKWkqCJ6EYdF79i9JCvtavmIGwuuPUKmoJXV8Ff0sY+yQQSxk2dRmMyam/bYKo/Bwor45hnZw==", + "dependencies": { + "@babel/runtime": "^7.11.1", + "@emotion/hash": "^0.8.0", + "@emotion/unitless": "^0.7.5", + "classnames": "^2.3.1", + "csstype": "^3.1.3", + "rc-util": "^5.35.0", + "stylis": "^4.0.13" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" } }, "node_modules/@ant-design/icons": { - "version": "4.7.0", - "resolved": "https://registry.npmmirror.com/@ant-design/icons/-/icons-4.7.0.tgz", - "integrity": "sha512-aoB4Z7JA431rt6d4u+8xcNPPCrdufSRMUOpxa1ab6mz1JCQZOEVolj2WVs/tDFmN62zzK30mNelEsprLYsSF3g==", + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.3.6.tgz", + "integrity": "sha512-JeWsgNjvkTTC73YDPgWOgdScRku/iHN9JU0qk39OSEmJSCiRghQMLlxGTCY5ovbRRoXjxHXnUKgQEgBDnQfKmA==", "dependencies": { - "@ant-design/colors": "^6.0.0", - "@ant-design/icons-svg": "^4.2.1", + "@ant-design/colors": "^7.0.0", + "@ant-design/icons-svg": "^4.4.0", "@babel/runtime": "^7.11.2", "classnames": "^2.2.6", - "rc-util": "^5.9.4" + "rc-util": "^5.31.1" }, "engines": { "node": ">=8" @@ -76,28 +126,37 @@ } }, "node_modules/@ant-design/icons-svg": { - "version": "4.2.1", - "resolved": "https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.2.1.tgz", - "integrity": "sha512-EB0iwlKDGpG93hW8f85CTJTs4SvMX7tt5ceupvhALp1IF44SeUFOMhKUOYqpsoYWQKAOuTRDMqn75rEaKDp0Xw==" + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", + "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==" }, "node_modules/@ant-design/react-slick": { - "version": "0.29.2", - "resolved": "https://registry.npmmirror.com/@ant-design/react-slick/-/react-slick-0.29.2.tgz", - "integrity": "sha512-kgjtKmkGHa19FW21lHnAfyyH9AAoh35pBdcJ53rHmQ3O+cfFHGHnUbj/HFrRNJ5vIts09FKJVAD8RpaC+RaWfA==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.1.2.tgz", + "integrity": "sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==", "dependencies": { "@babel/runtime": "^7.10.4", "classnames": "^2.2.5", "json2mq": "^0.2.0", - "lodash": "^4.17.21", - "resize-observer-polyfill": "^1.5.1" + "resize-observer-polyfill": "^1.5.1", + "throttle-debounce": "^5.0.0" }, "peerDependencies": { "react": ">=16.9.0" } }, + "node_modules/@antv/algorithm": { + "version": "0.1.26", + "resolved": "https://registry.npmjs.org/@antv/algorithm/-/algorithm-0.1.26.tgz", + "integrity": "sha512-DVhcFSQ8YQnMNW34Mk8BSsfc61iC1sAnmcfYoXTAshYHuU50p/6b7x3QYaGctDNKWGvi1ub7mPcSY0bK+aN0qg==", + "dependencies": { + "@antv/util": "^2.0.13", + "tslib": "^2.0.0" + } + }, "node_modules/@antv/dom-util": { "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/@antv/dom-util/-/dom-util-2.0.4.tgz", + "resolved": "https://registry.npmjs.org/@antv/dom-util/-/dom-util-2.0.4.tgz", "integrity": "sha512-2shXUl504fKwt82T3GkuT4Uoc6p9qjCKnJ8gXGLSW4T1W37dqf9AV28aCfoVPHp2BUXpSsB+PAJX2rG/jLHsLQ==", "dependencies": { "tslib": "^2.0.3" @@ -105,44 +164,34 @@ }, "node_modules/@antv/event-emitter": { "version": "0.1.3", - "resolved": "https://registry.npmmirror.com/@antv/event-emitter/-/event-emitter-0.1.3.tgz", + "resolved": "https://registry.npmjs.org/@antv/event-emitter/-/event-emitter-0.1.3.tgz", "integrity": "sha512-4ddpsiHN9Pd4UIlWuKVK1C4IiZIdbwQvy9i7DUSI3xNJ89FPUFt8lxDYj8GzzfdllV0NkJTRxnG+FvLk0llidg==" }, "node_modules/@antv/g-base": { - "version": "0.5.11", - "resolved": "https://registry.npmmirror.com/@antv/g-base/-/g-base-0.5.11.tgz", - "integrity": "sha512-10Hkq7XksVCqxZZrPkd6HTU9tb/+2meCVEMy/edhS4I/sokhcgC9m3fQP5bE8rA3EVKwELE7MJHZ98BEpVFqvQ==", + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/@antv/g-base/-/g-base-0.5.16.tgz", + "integrity": "sha512-jP06wggTubDPHXoKwFg3/f1lyxBX9ywwN3E/HG74Nd7DXqOXQis8tsIWW+O6dS/h9vyuXLd1/wDWkMMm3ZzXdg==", "dependencies": { "@antv/event-emitter": "^0.1.1", - "@antv/g-math": "^0.1.6", + "@antv/g-math": "^0.1.9", "@antv/matrix-util": "^3.1.0-beta.1", "@antv/path-util": "~2.0.5", "@antv/util": "~2.0.13", "@types/d3-timer": "^2.0.0", "d3-ease": "^1.0.5", - "d3-interpolate": "^1.3.2", + "d3-interpolate": "^3.0.1", "d3-timer": "^1.0.9", "detect-browser": "^5.1.0", "tslib": "^2.0.3" } }, - "node_modules/@antv/g-base/node_modules/@antv/matrix-util": { - "version": "3.1.0-beta.3", - "resolved": "https://registry.npmmirror.com/@antv/matrix-util/-/matrix-util-3.1.0-beta.3.tgz", - "integrity": "sha512-W2R6Za3A6CmG51Y/4jZUM/tFgYSq7vTqJL1VD9dKrvwxS4sE0ZcXINtkp55CdyBwJ6Cwm8pfoRpnD4FnHahN0A==", - "dependencies": { - "@antv/util": "^2.0.9", - "gl-matrix": "^3.4.3", - "tslib": "^2.0.3" - } - }, "node_modules/@antv/g-canvas": { - "version": "0.5.12", - "resolved": "https://registry.npmmirror.com/@antv/g-canvas/-/g-canvas-0.5.12.tgz", - "integrity": "sha512-iJ/muwwqCCNONVlPIzv/7OL5iLguaKRj2BxNMytUO3TWwamM+kHkiyYEOkS0dPn9h/hBsHYlLUluSVz2Fp6/bw==", + "version": "0.5.17", + "resolved": "https://registry.npmjs.org/@antv/g-canvas/-/g-canvas-0.5.17.tgz", + "integrity": "sha512-sXYJMWTOlb/Ycb6sTKu00LcJqInXJY4t99+kSM40u2OfqrXYmaXDjHR7D2V0roMkbK/QWiWS9UnEidCR1VtMOA==", "dependencies": { - "@antv/g-base": "^0.5.3", - "@antv/g-math": "^0.1.6", + "@antv/g-base": "^0.5.12", + "@antv/g-math": "^0.1.9", "@antv/matrix-util": "^3.1.0-beta.1", "@antv/path-util": "~2.0.5", "@antv/util": "~2.0.0", @@ -150,9 +199,206 @@ "tslib": "^2.0.3" } }, - "node_modules/@antv/g-canvas/node_modules/@antv/matrix-util": { + "node_modules/@antv/g-math": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@antv/g-math/-/g-math-0.1.9.tgz", + "integrity": "sha512-KHMSfPfZ5XHM1PZnG42Q2gxXfOitYveNTA7L61lR6mhZ8Y/aExsYmHqaKBsSarU0z+6WLrl9C07PQJZaw0uljQ==", + "dependencies": { + "@antv/util": "~2.0.0", + "gl-matrix": "^3.0.0" + } + }, + "node_modules/@antv/g-svg": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@antv/g-svg/-/g-svg-0.5.7.tgz", + "integrity": "sha512-jUbWoPgr4YNsOat2Y/rGAouNQYGpw4R0cvlN0YafwOyacFFYy2zC8RslNd6KkPhhR3XHNSqJOuCYZj/YmLUwYw==", + "dependencies": { + "@antv/g-base": "^0.5.12", + "@antv/g-math": "^0.1.9", + "@antv/util": "~2.0.0", + "detect-browser": "^5.0.0", + "tslib": "^2.0.3" + } + }, + "node_modules/@antv/g-webgpu": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@antv/g-webgpu/-/g-webgpu-0.7.2.tgz", + "integrity": "sha512-kw+oYGsdvj5qeUfy5DPb/jztZBV+2fmqBd3Vv8NlKatfBmv8AirYX/CCW74AUSdWm99rEiLyxFB1VdRZ6b/wnQ==", + "dependencies": { + "@antv/g-webgpu-core": "^0.7.2", + "@antv/g-webgpu-engine": "^0.7.2", + "gl-matrix": "^3.1.0", + "gl-vec2": "^1.3.0", + "lodash": "^4.17.15" + } + }, + "node_modules/@antv/g-webgpu-core": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@antv/g-webgpu-core/-/g-webgpu-core-0.7.2.tgz", + "integrity": "sha512-xUMmop7f3Rs34zFYKXLqHhDR1CQTeDl/7vI7Sn3X/73BqJc3X3HIIRvm83Fg2CjVACaOzw4WeLRXNaOCp9fz9w==", + "dependencies": { + "eventemitter3": "^4.0.0", + "gl-matrix": "^3.1.0", + "lodash": "^4.17.15", + "probe.gl": "^3.1.1" + } + }, + "node_modules/@antv/g-webgpu-engine": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@antv/g-webgpu-engine/-/g-webgpu-engine-0.7.2.tgz", + "integrity": "sha512-lx8Y93IW2cnJvdoDRKyMmTdYqSC1pOmF0nyG3PGGyA0NI9vBYVgO0KTF6hkyWjdTWVq7XDZyf/h8CJridLh3lg==", + "dependencies": { + "@antv/g-webgpu-core": "^0.7.2", + "gl-matrix": "^3.1.0", + "lodash": "^4.17.15", + "regl": "^1.3.11" + } + }, + "node_modules/@antv/g6": { + "version": "4.8.24", + "resolved": "https://registry.npmjs.org/@antv/g6/-/g6-4.8.24.tgz", + "integrity": "sha512-bgj7sZ+z45JmOngIpYpwmSIg7SboMLZBoAlX0+RoAETZB3/xvZO0MXT3lCSyAhIgm5Sb68pekKi7OStuo04NyQ==", + "dependencies": { + "@antv/g6-pc": "0.8.24" + } + }, + "node_modules/@antv/g6-core": { + "version": "0.8.24", + "resolved": "https://registry.npmjs.org/@antv/g6-core/-/g6-core-0.8.24.tgz", + "integrity": "sha512-rgI3dArAD8uoSz2+skS4ctN4x/Of33ivTIKaEYYvClxgkLZWVz9zvocy+5AWcVPBHZsAXkZcdh9zndIoWY/33A==", + "dependencies": { + "@antv/algorithm": "^0.1.26", + "@antv/dom-util": "^2.0.1", + "@antv/event-emitter": "~0.1.0", + "@antv/g-base": "^0.5.1", + "@antv/g-math": "^0.1.1", + "@antv/matrix-util": "^3.1.0-beta.3", + "@antv/path-util": "^2.0.3", + "@antv/util": "~2.0.5", + "ml-matrix": "^6.5.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@antv/g6-element": { + "version": "0.8.24", + "resolved": "https://registry.npmjs.org/@antv/g6-element/-/g6-element-0.8.24.tgz", + "integrity": "sha512-61FXkt9LY+6EOUtSam1iFTOW2AM59sPVcV1BuPj4dXiD0dluLE+R7d8B/94g1tKDw9tsjhfUQGC7hTXscJRJFw==", + "dependencies": { + "@antv/g-base": "^0.5.1", + "@antv/g6-core": "0.8.24", + "@antv/util": "~2.0.5", + "tslib": "^2.6.2" + }, + "peerDependencies": { + "@antv/g6": "4.8.24" + } + }, + "node_modules/@antv/g6-pc": { + "version": "0.8.24", + "resolved": "https://registry.npmjs.org/@antv/g6-pc/-/g6-pc-0.8.24.tgz", + "integrity": "sha512-nf0y1lrp8J5DotqRryXd2S/J30COW8spVcLF9gUqywGqQAHfE00Ywkqr+PZBnsfCZXsXCi9o0+CE9NrkWs4SBQ==", + "dependencies": { + "@ant-design/colors": "^4.0.5", + "@antv/algorithm": "^0.1.26", + "@antv/dom-util": "^2.0.1", + "@antv/event-emitter": "~0.1.0", + "@antv/g-base": "^0.5.1", + "@antv/g-canvas": "^0.5.2", + "@antv/g-math": "^0.1.1", + "@antv/g-svg": "^0.5.1", + "@antv/g6-core": "0.8.24", + "@antv/g6-element": "0.8.24", + "@antv/g6-plugin": "0.8.24", + "@antv/hierarchy": "^0.6.10", + "@antv/layout": "^0.3.0", + "@antv/matrix-util": "^3.1.0-beta.3", + "@antv/path-util": "^2.0.3", + "@antv/util": "~2.0.5", + "color": "^3.1.3", + "d3-force": "^2.0.1", + "dagre": "^0.8.5", + "insert-css": "^2.0.0", + "ml-matrix": "^6.5.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@antv/g6-pc/node_modules/@ant-design/colors": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-4.0.5.tgz", + "integrity": "sha512-3mnuX2prnWOWvpFTS2WH2LoouWlOgtnIpc6IarWN6GOzzLF8dW/U8UctuvIPhoboETehZfJ61XP+CGakBEPJ3Q==", + "dependencies": { + "tinycolor2": "^1.4.1" + } + }, + "node_modules/@antv/g6-plugin": { + "version": "0.8.24", + "resolved": "https://registry.npmjs.org/@antv/g6-plugin/-/g6-plugin-0.8.24.tgz", + "integrity": "sha512-ZIOnwLTC7SM2bFiJZ3vYFWnkyOCWKqnU96i/fBh1qAoY5slDS3hatenZWEXUtOcqaKw1h+5A5f72MRXqBBVn0g==", + "dependencies": { + "@antv/dom-util": "^2.0.2", + "@antv/g-base": "^0.5.1", + "@antv/g-canvas": "^0.5.2", + "@antv/g-svg": "^0.5.2", + "@antv/g6-core": "0.8.24", + "@antv/g6-element": "0.8.24", + "@antv/matrix-util": "^3.1.0-beta.3", + "@antv/path-util": "^2.0.3", + "@antv/scale": "^0.3.4", + "@antv/util": "^2.0.9", + "insert-css": "^2.0.0" + }, + "peerDependencies": { + "@antv/g6": "4.8.24" + } + }, + "node_modules/@antv/graphlib": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@antv/graphlib/-/graphlib-1.2.0.tgz", + "integrity": "sha512-hhJOMThec51nU4Fe5p/viLlNIL71uDEgYFzKPajWjr2715SFG1HAgiP6AVylIeqBcAZ04u3Lw7usjl/TuI5RuQ==" + }, + "node_modules/@antv/hierarchy": { + "version": "0.6.11", + "resolved": "https://registry.npmjs.org/@antv/hierarchy/-/hierarchy-0.6.11.tgz", + "integrity": "sha512-RJVhEMCuu4vj+Dt25lXIiNdd7jaqm/fqWGYikiELha4S5tnzdJoTUaUvvpfWlxLx4B0RsS9XRwBs1bOKN71TKg==", + "dependencies": { + "@antv/util": "^2.0.7" + } + }, + "node_modules/@antv/layout": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@antv/layout/-/layout-0.3.25.tgz", + "integrity": "sha512-d29Aw1PXoAavMRZy7iTB9L5rMBeChFEX0BJ9ELP4TI35ySdCu07YbmPo9ju9OH/6sG2/NB3o85Ayxrre3iwX/g==", + "dependencies": { + "@antv/g-webgpu": "0.7.2", + "@antv/graphlib": "^1.0.0", + "@antv/util": "^3.3.2", + "d3-force": "^2.1.1", + "d3-quadtree": "^2.0.0", + "dagre-compound": "^0.0.11", + "ml-matrix": "6.5.0" + } + }, + "node_modules/@antv/layout/node_modules/@antv/util": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/@antv/util/-/util-3.3.7.tgz", + "integrity": "sha512-qqPg7rIPCsJyl7N56jAC25v/99mJ3ApVkgBsGijhiWrEeKvzXBPk1r5P77Pm9nCljpnn+hH8Z3t5AivbEoTJMg==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "gl-matrix": "^3.3.0", + "tslib": "^2.3.1" + } + }, + "node_modules/@antv/layout/node_modules/ml-matrix": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/ml-matrix/-/ml-matrix-6.5.0.tgz", + "integrity": "sha512-sms732Dge+rs5dU4mnjE0oqLWm1WujvR2fr38LgUHRG2cjXjWlO3WJupLYaSz3++2iYr0UrGDK72OAivr3J8dg==", + "dependencies": { + "ml-array-rescale": "^1.3.1" + } + }, + "node_modules/@antv/matrix-util": { "version": "3.1.0-beta.3", - "resolved": "https://registry.npmmirror.com/@antv/matrix-util/-/matrix-util-3.1.0-beta.3.tgz", + "resolved": "https://registry.npmjs.org/@antv/matrix-util/-/matrix-util-3.1.0-beta.3.tgz", "integrity": "sha512-W2R6Za3A6CmG51Y/4jZUM/tFgYSq7vTqJL1VD9dKrvwxS4sE0ZcXINtkp55CdyBwJ6Cwm8pfoRpnD4FnHahN0A==", "dependencies": { "@antv/util": "^2.0.9", @@ -160,90 +406,9 @@ "tslib": "^2.0.3" } }, - "node_modules/@antv/g-math": { - "version": "0.1.7", - "resolved": "https://registry.npmmirror.com/@antv/g-math/-/g-math-0.1.7.tgz", - "integrity": "sha512-xGyXaloD1ynfp7gS4VuV+MjSptZIwHvLHr8ekXJSFAeWPYLu84yOW2wOZHDdp1bzDAIuRv6xDBW58YGHrWsFcA==", - "dependencies": { - "@antv/util": "~2.0.0", - "gl-matrix": "^3.0.0" - } - }, - "node_modules/@antv/g-svg": { - "version": "0.5.6", - "resolved": "https://registry.npmmirror.com/@antv/g-svg/-/g-svg-0.5.6.tgz", - "integrity": "sha512-Xve1EUGk4HMbl2nq4ozR4QLh6GyoZ8Xw/+9kHYI4B5P2lIUQU95MuRsaLFfW5NNpZDx85ZeH97tqEmC9L96E7A==", - "dependencies": { - "@antv/g-base": "^0.5.3", - "@antv/g-math": "^0.1.6", - "@antv/util": "~2.0.0", - "detect-browser": "^5.0.0", - "tslib": "^2.0.3" - } - }, - "node_modules/@antv/g6": { - "version": "3.8.5", - "resolved": "https://registry.npmmirror.com/@antv/g6/-/g6-3.8.5.tgz", - "integrity": "sha512-q+Fomc5ogcdcJ9usgYUVHzB8lFR5XHi4+O1BBFzA4ERgaF255xtrIpP631cD2wjByDq/9MbBCSpFqeOgBg2eOg==", - "dependencies": { - "@ant-design/colors": "^4.0.5", - "@antv/dom-util": "^2.0.1", - "@antv/event-emitter": "~0.1.0", - "@antv/g-base": "^0.5.1", - "@antv/g-canvas": "^0.5.2", - "@antv/g-math": "^0.1.1", - "@antv/g-svg": "^0.5.1", - "@antv/hierarchy": "^0.6.2", - "@antv/matrix-util": "^2.0.4", - "@antv/path-util": "^2.0.3", - "@antv/scale": "^0.3.1", - "@antv/util": "~2.0.5", - "color": "^3.1.3", - "d3-force": "^2.0.1", - "dagre": "^0.8.5", - "insert-css": "^2.0.0", - "ml-matrix": "^6.5.0" - } - }, - "node_modules/@antv/g6/node_modules/@ant-design/colors": { - "version": "4.0.5", - "resolved": "https://registry.npmmirror.com/@ant-design/colors/-/colors-4.0.5.tgz", - "integrity": "sha512-3mnuX2prnWOWvpFTS2WH2LoouWlOgtnIpc6IarWN6GOzzLF8dW/U8UctuvIPhoboETehZfJ61XP+CGakBEPJ3Q==", - "dependencies": { - "tinycolor2": "^1.4.1" - } - }, - "node_modules/@antv/gl-matrix": { - "version": "2.7.1", - "resolved": "https://registry.npmmirror.com/@antv/gl-matrix/-/gl-matrix-2.7.1.tgz", - "integrity": "sha512-oOWcVNlpELIKi9x+Mm1Vwbz8pXfkbJKykoCIOJ/dNK79hSIANbpXJ5d3Rra9/wZqK6MC961B7sybFhPlLraT3Q==" - }, - "node_modules/@antv/hierarchy": { - "version": "0.6.8", - "resolved": "https://registry.npmmirror.com/@antv/hierarchy/-/hierarchy-0.6.8.tgz", - "integrity": "sha512-wVzUl+pxny5gyGJ2mkWx8IiEypX6bnMHgr/NILgbxY6shoy0Vf4FhZpI3CY8Ez7bQT6js8fMkB2NymPW7d7i8A==", - "dependencies": { - "@antv/util": "^2.0.7" - } - }, - "node_modules/@antv/matrix-util": { - "version": "2.0.7", - "resolved": "https://registry.npmmirror.com/@antv/matrix-util/-/matrix-util-2.0.7.tgz", - "integrity": "sha512-bogifQY8jplWtSTZsPqBOdBlDdkM7IwDqYL8eMYL8OaSyOPCS7l9bnEQjQ9qTAwfCd7wHTuPoCnCpbiR8BYFvQ==", - "dependencies": { - "@antv/gl-matrix": "^2.7.1", - "@antv/util": "^2.0.7", - "tslib": "^1.10.0" - } - }, - "node_modules/@antv/matrix-util/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, "node_modules/@antv/path-util": { "version": "2.0.15", - "resolved": "https://registry.npmmirror.com/@antv/path-util/-/path-util-2.0.15.tgz", + "resolved": "https://registry.npmjs.org/@antv/path-util/-/path-util-2.0.15.tgz", "integrity": "sha512-R2VLZ5C8PLPtr3VciNyxtjKqJ0XlANzpFb5sE9GE61UQqSRuSVSzIakMxjEPrpqbgc+s+y8i+fmc89Snu7qbNw==", "dependencies": { "@antv/matrix-util": "^3.0.4", @@ -253,7 +418,7 @@ }, "node_modules/@antv/path-util/node_modules/@antv/matrix-util": { "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/@antv/matrix-util/-/matrix-util-3.0.4.tgz", + "resolved": "https://registry.npmjs.org/@antv/matrix-util/-/matrix-util-3.0.4.tgz", "integrity": "sha512-BAPyu6dUliHcQ7fm9hZSGKqkwcjEDVLVAstlHULLvcMZvANHeLXgHEgV7JqcAV/GIhIz8aZChIlzM1ZboiXpYQ==", "dependencies": { "@antv/util": "^2.0.9", @@ -263,7 +428,7 @@ }, "node_modules/@antv/scale": { "version": "0.3.18", - "resolved": "https://registry.npmmirror.com/@antv/scale/-/scale-0.3.18.tgz", + "resolved": "https://registry.npmjs.org/@antv/scale/-/scale-0.3.18.tgz", "integrity": "sha512-GHwE6Lo7S/Q5fgaLPaCsW+CH+3zl4aXpnN1skOiEY0Ue9/u+s2EySv6aDXYkAqs//i0uilMDD/0/4n8caX9U9w==", "dependencies": { "@antv/util": "~2.0.3", @@ -273,28 +438,445 @@ }, "node_modules/@antv/util": { "version": "2.0.17", - "resolved": "https://registry.npmmirror.com/@antv/util/-/util-2.0.17.tgz", + "resolved": "https://registry.npmjs.org/@antv/util/-/util-2.0.17.tgz", "integrity": "sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q==", "dependencies": { "csstype": "^3.0.8", "tslib": "^2.0.3" } }, - "node_modules/@babel/runtime": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.18.9.tgz", - "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", + "node_modules/@babel/code-frame": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "dev": true, "dependencies": { - "regenerator-runtime": "^0.13.4" + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", + "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz", + "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.4", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.4", + "@babel/parser": "^7.24.4", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz", + "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz", + "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", + "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", + "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.1.tgz", + "integrity": "sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.1.tgz", + "integrity": "sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", + "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", + "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.1", + "@babel/generator": "^7.24.1", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.1", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@ctrl/tinycolor": { - "version": "3.4.1", - "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz", - "integrity": "sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==", + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", "engines": { "node": ">=10" } @@ -347,41 +929,6 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@electron/asar": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/@electron/asar/-/asar-3.2.9.tgz", - "integrity": "sha512-Vu2P3X2gcZ3MY9W7yH72X9+AMXwUQZEJBrsPIbX0JsdllLtoh62/Q8Wg370/DawIEVKOyfD6KtTLo645ezqxUA==", - "dev": true, - "dependencies": { - "commander": "^5.0.0", - "glob": "^7.1.6", - "minimatch": "^3.0.4" - }, - "bin": { - "asar": "bin/asar.js" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/@electron/asar/node_modules/commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/@electron/get": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz", @@ -410,124 +957,6 @@ "semver": "bin/semver.js" } }, - "node_modules/@electron/notarize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@electron/notarize/-/notarize-2.2.1.tgz", - "integrity": "sha512-aL+bFMIkpR0cmmj5Zgy0LMKEpgy43/hw5zadEArgmAMWWlKc5buwFvFT9G/o/YJkvXAJm5q3iuTuLaiaXW39sg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "fs-extra": "^9.0.1", - "promise-retry": "^2.0.1" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@electron/notarize/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@electron/notarize/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@electron/notarize/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@electron/osx-sign": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.0.5.tgz", - "integrity": "sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==", - "dev": true, - "dependencies": { - "compare-version": "^0.1.2", - "debug": "^4.3.4", - "fs-extra": "^10.0.0", - "isbinaryfile": "^4.0.8", - "minimist": "^1.2.6", - "plist": "^3.0.5" - }, - "bin": { - "electron-osx-flat": "bin/electron-osx-flat.js", - "electron-osx-sign": "bin/electron-osx-sign.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@electron/osx-sign/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@electron/osx-sign/node_modules/isbinaryfile": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", - "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", - "dev": true, - "engines": { - "node": ">= 8.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/gjtorikian/" - } - }, - "node_modules/@electron/osx-sign/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@electron/osx-sign/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/@electron/remote": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-2.1.2.tgz", @@ -536,156 +965,506 @@ "electron": ">= 13.0.0" } }, - "node_modules/@electron/universal": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.5.1.tgz", - "integrity": "sha512-kbgXxyEauPJiQQUNG2VgUeyfQNFk6hBF11ISN2PNI6agUgPl55pv4eQmaqHzTAzchBvqZ2tQuRVaPStGf0mxGw==", - "dev": true, - "dependencies": { - "@electron/asar": "^3.2.1", - "@malept/cross-spawn-promise": "^1.1.0", - "debug": "^4.3.1", - "dir-compare": "^3.0.0", - "fs-extra": "^9.0.1", - "minimatch": "^3.0.4", - "plist": "^3.0.4" - }, - "engines": { - "node": ">=8.6" - } + "node_modules/@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" }, - "node_modules/@electron/universal/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } + "node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" }, - "node_modules/@electron/universal/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@electron/universal/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, + "optional": true, + "os": [ + "android" + ], "engines": { "node": ">=12" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], "dev": true, + "optional": true, + "os": [ + "android" + ], "engines": { "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "url": "https://opencollective.com/eslint" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" }, "engines": { - "node": ">=12" + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "dev": true + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", @@ -852,14 +1631,141 @@ "node": ">= 8" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true, + "node_modules/@probe.gl/env": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@probe.gl/env/-/env-3.6.0.tgz", + "integrity": "sha512-4tTZYUg/8BICC3Yyb9rOeoKeijKbZHRXBEKObrfPmX4sQmYB15ZOUpoVBhAyJkOYVAM8EkPci6Uw5dLCwx2BEQ==", + "dependencies": { + "@babel/runtime": "^7.0.0" + } + }, + "node_modules/@probe.gl/log": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@probe.gl/log/-/log-3.6.0.tgz", + "integrity": "sha512-hjpyenpEvOdowgZ1qMeCJxfRD4JkKdlXz0RC14m42Un62NtOT+GpWyKA4LssT0+xyLULCByRAtG2fzZorpIAcA==", + "dependencies": { + "@babel/runtime": "^7.0.0", + "@probe.gl/env": "3.6.0" + } + }, + "node_modules/@probe.gl/stats": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@probe.gl/stats/-/stats-3.6.0.tgz", + "integrity": "sha512-JdALQXB44OP4kUBN/UrQgzbJe4qokbVF4Y8lkIA8iVCFnjVowWIgkD/z/0QO65yELT54tTrtepw1jScjKB+rhQ==", + "dependencies": { + "@babel/runtime": "^7.0.0" + } + }, + "node_modules/@rc-component/color-picker": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-1.5.3.tgz", + "integrity": "sha512-+tGGH3nLmYXTalVe0L8hSZNs73VTP5ueSHwUlDC77KKRaN7G4DS4wcpG5DTDzdcV/Yas+rzA6UGgIyzd8fS4cw==", + "dependencies": { + "@babel/runtime": "^7.23.6", + "@ctrl/tinycolor": "^3.6.1", + "classnames": "^2.2.6", + "rc-util": "^5.38.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/context": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-1.4.0.tgz", + "integrity": "sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/mini-decimal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz", + "integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==", + "dependencies": { + "@babel/runtime": "^7.18.0" + }, "engines": { - "node": ">=14" + "node": ">=8.x" + } + }, + "node_modules/@rc-component/mutate-observer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz", + "integrity": "sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/tour": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.14.2.tgz", + "integrity": "sha512-A75DZ8LVvahBIvxooj3Gvf2sxe+CGOkmzPNX7ek0i0AJHyKZ1HXe5ieIGo3m0FMdZfVOlbCJ952Duq8VKAHk6g==", + "dependencies": { + "@babel/runtime": "^7.18.0", + "@rc-component/portal": "^1.0.0-9", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/trigger": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.1.1.tgz", + "integrity": "sha512-UjHkedkgtEcgQu87w1VuWug1idoDJV7VUt0swxHXRcmei2uu1AuUzGBPEUlmOmXGJ+YtTgZfVLi7kuAUKoZTMA==", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@rc-component/portal": "^1.1.0", + "classnames": "^2.3.2", + "rc-motion": "^2.0.0", + "rc-resize-observer": "^1.3.1", + "rc-util": "^5.38.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" } }, "node_modules/@sindresorhus/is": { @@ -873,16 +1779,23 @@ "url": "https://github.com/sindresorhus/is?sponsor=1" } }, - "node_modules/@sindresorhus/merge-streams": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", - "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "node_modules/@stylistic/eslint-plugin-js": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-js/-/eslint-plugin-js-1.7.2.tgz", + "integrity": "sha512-ZYX7C5p7zlHbACwFLU+lISVh6tdcRP/++PWegh2Sy0UgMT5kU0XkPa2tKWEtJYzZmPhJxu9LxbnWcnE/tTwSDQ==", "dev": true, - "engines": { - "node": ">=18" + "dependencies": { + "@types/eslint": "^8.56.8", + "acorn": "^8.11.3", + "escape-string-regexp": "^4.0.0", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "peerDependencies": { + "eslint": ">=8.40.0" } }, "node_modules/@szmarczak/http-timer": { @@ -916,24 +1829,15 @@ "@types/responselike": "^1.0.0" } }, - "node_modules/@types/concat-stream": { - "version": "1.6.1", - "resolved": "https://registry.npmmirror.com/@types/concat-stream/-/concat-stream-1.6.1.tgz", - "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/d3-timer": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/@types/d3-timer/-/d3-timer-2.0.1.tgz", - "integrity": "sha512-TF8aoF5cHcLO7W7403blM7L1T+6NF3XMyN3fxyUolq2uOcFeicG/khQg/dGxiCJWoAcmYulYN7LYSRKO54IXaA==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-2.0.3.tgz", + "integrity": "sha512-jhAJzaanK5LqyLQ50jJNIrB8fjL9gwWZTgYjevPvkDLMU+kTAZkYsobI59nYoeSrH1PucuyJEi247Pb90t6XUg==" }, "node_modules/@types/debug": { "version": "4.1.12", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", - "dev": true, "dependencies": { "@types/ms": "*" } @@ -942,43 +1846,31 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/@types/electron-localshortcut/-/electron-localshortcut-3.1.3.tgz", "integrity": "sha512-D+CRdDTRZ4/9UmcSaZ5qvW4uq2VyyVmqsH9cdNReB4CL6MSIgyhr9w2PKeNEb0J/ZS7db7irJM/+ZiA5uSQsLw==", - "dev": true, "dependencies": { "electron": "*" } }, "node_modules/@types/eslint": { - "version": "8.56.5", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.5.tgz", - "integrity": "sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==", + "version": "8.56.9", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.9.tgz", + "integrity": "sha512-W4W3KcqzjJ0sHg2vAq9vfml6OhsJ53TcUjUqfzzZf/EChUtwspszj/S0pzMxnfRcO55/iGq47dscXw71Fxc4Zg==", "dev": true, "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "dev": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" }, - "node_modules/@types/form-data": { - "version": "0.0.33", - "resolved": "https://registry.npmmirror.com/@types/form-data/-/form-data-0.0.33.tgz", - "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "node_modules/@types/estree-jsx": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", "dependencies": { - "@types/node": "*" + "@types/estree": "*" } }, "node_modules/@types/fs-extra": { @@ -990,14 +1882,12 @@ "@types/node": "*" } }, - "node_modules/@types/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==", - "dev": true, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dependencies": { - "@types/minimatch": "^5.1.2", - "@types/node": "*" + "@types/unist": "*" } }, "node_modules/@types/http-cache-semantics": { @@ -1020,9 +1910,9 @@ } }, "node_modules/@types/mdast": { - "version": "3.0.10", - "resolved": "https://registry.npmmirror.com/@types/mdast/-/mdast-3.0.10.tgz", - "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz", + "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==", "dependencies": { "@types/unist": "*" } @@ -1031,18 +1921,18 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true + "dev": true, + "optional": true }, "node_modules/@types/ms": { "version": "0.7.34", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", - "dev": true + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" }, "node_modules/@types/node": { - "version": "20.11.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.25.tgz", - "integrity": "sha512-TBHyJxk2b7HceLVGFcpAUjsa5zIdsPWlR6XHfyGzd0SFu+/NFgQgMAl96MSDZgQDvJAvV6BKsFOrt6zIL09JDw==", + "version": "20.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", + "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", "dependencies": { "undici-types": "~5.26.4" } @@ -1063,27 +1953,22 @@ "resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.5.tgz", "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmmirror.com/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" - }, "node_modules/@types/react": { - "version": "16.14.30", - "resolved": "https://registry.npmmirror.com/@types/react/-/react-16.14.30.tgz", - "integrity": "sha512-tG+xGtDDSuIl1l63mN0LnaROAc99knkYyN4YTheE80iPzYvSy0U8LVie+OBZkrgjVrpkQV6bMCkSphPBnVNk6g==", + "version": "18.2.79", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.79.tgz", + "integrity": "sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==", "dependencies": { "@types/prop-types": "*", - "@types/scheduler": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "16.9.16", - "resolved": "https://registry.npmmirror.com/@types/react-dom/-/react-dom-16.9.16.tgz", - "integrity": "sha512-Oqc0RY4fggGA3ltEgyPLc3IV9T73IGoWjkONbsyJ3ZBn+UPPCYpU2ec0i3cEbJuEdZtkqcCF2l1zf2pBdgUGSg==", + "version": "18.2.25", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.25.tgz", + "integrity": "sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==", + "dev": true, "dependencies": { - "@types/react": "^16" + "@types/react": "*" } }, "node_modules/@types/responselike": { @@ -1094,25 +1979,15 @@ "@types/node": "*" } }, - "node_modules/@types/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ==", - "dev": true, - "dependencies": { - "@types/glob": "*", - "@types/node": "*" - } - }, - "node_modules/@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==" }, "node_modules/@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" }, "node_modules/@types/verror": { "version": "1.10.10", @@ -1121,6 +1996,21 @@ "dev": true, "optional": true }, + "node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, "node_modules/@types/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmmirror.com/@types/yauzl/-/yauzl-2.10.0.tgz", @@ -1130,196 +2020,273 @@ "@types/node": "*" } }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.0.tgz", + "integrity": "sha512-GJWR0YnfrKnsRoluVO3PRb9r5aMZriiMMM/RHj5nnTrBy1/wIgk76XCtCKcnXGjpZQJQRFtGV9/0JJ6n30uwpQ==", "dev": true, "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dev": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webpack-cli/configtest": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", - "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", - "dev": true, + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/type-utils": "7.7.0", + "@typescript-eslint/utils": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, "engines": { - "node": ">=14.15.0" + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - } - }, - "node_modules/@webpack-cli/info": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", - "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", - "dev": true, - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - } - }, - "node_modules/@webpack-cli/serve": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", - "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", - "dev": true, - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" }, "peerDependenciesMeta": { - "webpack-dev-server": { + "typescript": { "optional": true } } }, + "node_modules/@typescript-eslint/parser": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.0.tgz", + "integrity": "sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/typescript-estree": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.0.tgz", + "integrity": "sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.7.0.tgz", + "integrity": "sha512-bOp3ejoRYrhAlnT/bozNQi3nio9tIgv3U5C0mVDdZC7cpcQEDZXvq8inrHYghLVwuNABRqrMW5tzAv88Vy77Sg==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "7.7.0", + "@typescript-eslint/utils": "7.7.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz", + "integrity": "sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz", + "integrity": "sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.0.tgz", + "integrity": "sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.15", + "@types/semver": "^7.5.8", + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/typescript-estree": "7.7.0", + "semver": "^7.6.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.0.tgz", + "integrity": "sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.7.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + }, + "node_modules/@vitejs/plugin-react": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-3.1.0.tgz", + "integrity": "sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==", + "dev": true, + "dependencies": { + "@babel/core": "^7.20.12", + "@babel/plugin-transform-react-jsx-self": "^7.18.6", + "@babel/plugin-transform-react-jsx-source": "^7.19.6", + "magic-string": "^0.27.0", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.1.0-beta.0" + } + }, "node_modules/@xmldom/xmldom": { "version": "0.8.10", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", @@ -1329,22 +2296,10 @@ "node": ">=10.0.0" } }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, "node_modules/7zip-bin": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.2.0.tgz", - "integrity": "sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.1.1.tgz", + "integrity": "sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ==", "dev": true }, "node_modules/acorn": { @@ -1359,13 +2314,13 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "peerDependencies": { - "acorn": "^8" + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/agent-base": { @@ -1380,49 +2335,26 @@ "node": ">= 6.0.0" } }, - "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, + "node_modules/ahooks": { + "version": "3.7.11", + "resolved": "https://registry.npmjs.org/ahooks/-/ahooks-3.7.11.tgz", + "integrity": "sha512-BfSq7HJ9wk/7a2vX7WbLdwzHyQHmbNe21ipX1PfIzssXIzQfAl79WVJ9GjZaqNl4PFPsJusj/Xjg2OF+gIgGaQ==", "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "@babel/runtime": "^7.21.0", + "dayjs": "^1.9.1", + "intersection-observer": "^0.12.0", + "js-cookie": "^2.x.x", + "lodash": "^4.17.21", + "react-fast-compare": "^3.2.2", + "resize-observer-polyfill": "^1.5.1", + "screenfull": "^5.0.0", + "tslib": "^2.4.1" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.0" + "engines": { + "node": ">=8.0.0" }, "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, "node_modules/ansi-regex": { @@ -1468,60 +2400,81 @@ "dev": true }, "node_modules/antd": { - "version": "4.22.7", - "resolved": "https://registry.npmmirror.com/antd/-/antd-4.22.7.tgz", - "integrity": "sha512-CMf5tYHtlhP1blYjwNTRsB7G/bocwKmIFHgYYk4pZNgo1kk/XnPPI2/MKRCXWc54wuCQQlnmL/2AKtE7HWaE8g==", + "version": "5.16.2", + "resolved": "https://registry.npmjs.org/antd/-/antd-5.16.2.tgz", + "integrity": "sha512-46BC1IaCRzkdcTAs1TuIZ1D56JrIRP5yWGrlfV+kGjro1c2dVaQP7yGXA2/m29uF41TqptxOYl36opY5ydN++A==", "dependencies": { - "@ant-design/colors": "^6.0.0", - "@ant-design/icons": "^4.7.0", - "@ant-design/react-slick": "~0.29.1", - "@babel/runtime": "^7.18.3", - "@ctrl/tinycolor": "^3.4.0", - "classnames": "^2.2.6", - "copy-to-clipboard": "^3.2.0", - "lodash": "^4.17.21", - "memoize-one": "^6.0.0", - "moment": "^2.29.2", - "rc-cascader": "~3.6.0", - "rc-checkbox": "~2.3.0", - "rc-collapse": "~3.3.0", - "rc-dialog": "~8.9.0", - "rc-drawer": "~5.1.0", - "rc-dropdown": "~4.0.0", - "rc-field-form": "~1.27.0", - "rc-image": "~5.7.0", - "rc-input": "~0.0.1-alpha.5", - "rc-input-number": "~7.3.5", - "rc-mentions": "~1.9.1", - "rc-menu": "~9.6.3", - "rc-motion": "^2.6.1", - "rc-notification": "~4.6.0", - "rc-pagination": "~3.1.17", - "rc-picker": "~2.6.10", - "rc-progress": "~3.3.2", - "rc-rate": "~2.9.0", - "rc-resize-observer": "^1.2.0", - "rc-segmented": "~2.1.0", - "rc-select": "~14.1.1", - "rc-slider": "~10.0.0", - "rc-steps": "~4.1.0", - "rc-switch": "~3.2.0", - "rc-table": "~7.25.3", - "rc-tabs": "~11.16.0", - "rc-textarea": "~0.3.0", - "rc-tooltip": "~5.2.0", - "rc-tree": "~5.6.5", - "rc-tree-select": "~5.4.0", - "rc-trigger": "^5.2.10", - "rc-upload": "~4.3.0", - "rc-util": "^5.22.5", - "scroll-into-view-if-needed": "^2.2.25" + "@ant-design/colors": "^7.0.2", + "@ant-design/cssinjs": "^1.18.5", + "@ant-design/icons": "^5.3.6", + "@ant-design/react-slick": "~1.1.2", + "@babel/runtime": "^7.24.4", + "@ctrl/tinycolor": "^3.6.1", + "@rc-component/color-picker": "~1.5.3", + "@rc-component/mutate-observer": "^1.1.0", + "@rc-component/tour": "~1.14.2", + "@rc-component/trigger": "^2.1.1", + "classnames": "^2.5.1", + "copy-to-clipboard": "^3.3.3", + "dayjs": "^1.11.10", + "qrcode.react": "^3.1.0", + "rc-cascader": "~3.24.1", + "rc-checkbox": "~3.2.0", + "rc-collapse": "~3.7.3", + "rc-dialog": "~9.4.0", + "rc-drawer": "~7.1.0", + "rc-dropdown": "~4.2.0", + "rc-field-form": "~1.44.0", + "rc-image": "~7.6.0", + "rc-input": "~1.4.5", + "rc-input-number": "~9.0.0", + "rc-mentions": "~2.11.1", + "rc-menu": "~9.13.0", + "rc-motion": "^2.9.0", + "rc-notification": "~5.4.0", + "rc-pagination": "~4.0.4", + "rc-picker": "~4.3.2", + "rc-progress": "~4.0.0", + "rc-rate": "~2.12.0", + "rc-resize-observer": "^1.4.0", + "rc-segmented": "~2.3.0", + "rc-select": "~14.13.1", + "rc-slider": "~10.5.0", + "rc-steps": "~6.0.1", + "rc-switch": "~4.1.0", + "rc-table": "~7.45.4", + "rc-tabs": "~14.1.1", + "rc-textarea": "~1.6.3", + "rc-tooltip": "~6.2.0", + "rc-tree": "~5.8.5", + "rc-tree-select": "~5.19.0", + "rc-upload": "~4.5.2", + "rc-util": "^5.39.1", + "scroll-into-view-if-needed": "^3.1.0", + "throttle-debounce": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ant-design" }, "peerDependencies": { "react": ">=16.9.0", "react-dom": ">=16.9.0" } }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/app-builder-bin": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-4.0.0.tgz", @@ -1529,54 +2482,121 @@ "dev": true }, "node_modules/app-builder-lib": { - "version": "24.13.3", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-24.13.3.tgz", - "integrity": "sha512-FAzX6IBit2POXYGnTCT8YHFO/lr5AapAII6zzhQO3Rw4cEDOgK+t1xhLc5tNcKlicTHlo9zxIwnYCX9X2DLkig==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-23.6.0.tgz", + "integrity": "sha512-dQYDuqm/rmy8GSCE6Xl/3ShJg6Ab4bZJMT8KaTKGzT436gl1DN4REP3FCWfXoh75qGTJ+u+WsdnnpO9Jl8nyMA==", "dev": true, "dependencies": { "@develar/schema-utils": "~2.6.5", - "@electron/notarize": "2.2.1", - "@electron/osx-sign": "1.0.5", - "@electron/universal": "1.5.1", + "@electron/universal": "1.2.1", "@malept/flatpak-bundler": "^0.4.0", - "@types/fs-extra": "9.0.13", + "7zip-bin": "~5.1.1", "async-exit-hook": "^2.0.1", "bluebird-lst": "^1.0.9", - "builder-util": "24.13.1", - "builder-util-runtime": "9.2.4", + "builder-util": "23.6.0", + "builder-util-runtime": "9.1.1", "chromium-pickle-js": "^0.2.0", "debug": "^4.3.4", - "ejs": "^3.1.8", - "electron-publish": "24.13.1", + "ejs": "^3.1.7", + "electron-osx-sign": "^0.6.0", + "electron-publish": "23.6.0", "form-data": "^4.0.0", "fs-extra": "^10.1.0", "hosted-git-info": "^4.1.0", "is-ci": "^3.0.0", - "isbinaryfile": "^5.0.0", + "isbinaryfile": "^4.0.10", "js-yaml": "^4.1.0", "lazy-val": "^1.0.5", - "minimatch": "^5.1.1", - "read-config-file": "6.3.2", + "minimatch": "^3.1.2", + "read-config-file": "6.2.0", "sanitize-filename": "^1.6.3", - "semver": "^7.3.8", - "tar": "^6.1.12", + "semver": "^7.3.7", + "tar": "^6.1.11", "temp-file": "^3.4.0" }, "engines": { "node": ">=14.0.0" - }, - "peerDependencies": { - "dmg-builder": "24.13.3", - "electron-builder-squirrel-windows": "24.13.3" } }, - "node_modules/app-builder-lib/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/app-builder-lib/node_modules/@electron/universal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.2.1.tgz", + "integrity": "sha512-7323HyMh7KBAl/nPDppdLsC87G6RwRU02dy5FPeGB1eS7rUePh55+WNWiDPLhFQqqVPHzh77M69uhmoT8XnwMQ==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0" + "@malept/cross-spawn-promise": "^1.1.0", + "asar": "^3.1.0", + "debug": "^4.3.1", + "dir-compare": "^2.4.0", + "fs-extra": "^9.0.1", + "minimatch": "^3.0.4", + "plist": "^3.0.4" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/app-builder-lib/node_modules/@electron/universal/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/app-builder-lib/node_modules/buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/app-builder-lib/node_modules/commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==", + "dev": true, + "dependencies": { + "graceful-readlink": ">= 1.0.0" + }, + "engines": { + "node": ">= 0.6.x" + } + }, + "node_modules/app-builder-lib/node_modules/dir-compare": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-2.4.0.tgz", + "integrity": "sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA==", + "dev": true, + "dependencies": { + "buffer-equal": "1.0.0", + "colors": "1.0.3", + "commander": "2.9.0", + "minimatch": "3.0.4" + }, + "bin": { + "dircompare": "src/cli/dircompare.js" + } + }, + "node_modules/app-builder-lib/node_modules/dir-compare/node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, "node_modules/app-builder-lib/node_modules/fs-extra": { @@ -1605,18 +2625,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/app-builder-lib/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/app-builder-lib/node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", @@ -1626,77 +2634,66 @@ "node": ">= 10.0.0" } }, - "node_modules/archiver": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", - "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", - "dev": true, - "peer": true, - "dependencies": { - "archiver-utils": "^2.1.0", - "async": "^3.2.4", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.1.2", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dev": true, - "peer": true, - "dependencies": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/archiver/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/array-tree-filter": { "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz", "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==" }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/asar": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/asar/-/asar-3.2.0.tgz", + "integrity": "sha512-COdw2ZQvKdFGFxXwX3oYh2/sOsJWJegrdJCGxnN4MZ7IULgRBp9P6665aqj9z1v9VwP4oP1hRBojRDQ//IGgAg==", + "deprecated": "Please use @electron/asar moving forward. There is no API change, just a package name change", + "dev": true, + "dependencies": { + "chromium-pickle-js": "^0.2.0", + "commander": "^5.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" + }, + "bin": { + "asar": "bin/asar.js" + }, + "engines": { + "node": ">=10.12.0" + }, + "optionalDependencies": { + "@types/glob": "^7.1.1" + } + }, + "node_modules/asar/node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "optional": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/asar/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "engines": { + "node": ">= 6" + } }, "node_modules/assert-plus": { "version": "1.0.0", @@ -1735,13 +2732,14 @@ }, "node_modules/async-validator": { "version": "4.2.5", - "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true }, "node_modules/at-least-node": { "version": "1.0.0", @@ -1752,24 +2750,31 @@ "node": ">= 4.0.0" } }, - "node_modules/author-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/author-regex/-/author-regex-1.0.0.tgz", - "integrity": "sha512-KbWgR8wOYRAPekEmMXrYYdc7BRyhn2Ftk7KWfMUnQ43hFdojWEFRxhhRUm3/OFEdPa1r0KAvTTg9YQK57xTe0g==", + "node_modules/axios": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", "dev": true, - "engines": { - "node": ">=0.8" + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, "node_modules/bail": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, "node_modules/base64-js": { "version": "1.5.1", @@ -1791,40 +2796,16 @@ } ] }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, "engines": { - "node": "*" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "peer": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bl/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "node": ">=8" }, - "engines": { - "node": ">= 6" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/bluebird": { @@ -1852,6 +2833,7 @@ "version": "1.1.11", "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1920,11 +2902,28 @@ "url": "https://feross.org/support" } ], + "optional": true, "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, + "node_modules/buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "dependencies": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "node_modules/buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -1933,40 +2932,36 @@ "node": "*" } }, - "node_modules/buffer-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", - "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", - "dev": true, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", + "dev": true }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true }, "node_modules/builder-util": { - "version": "24.13.1", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-24.13.1.tgz", - "integrity": "sha512-NhbCSIntruNDTOVI9fdXz0dihaqX2YuE1D6zZMrwiErzH4ELZHE6mdiB40wEgZNprDia+FghRFgKoAqMZRRjSA==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-23.6.0.tgz", + "integrity": "sha512-QiQHweYsh8o+U/KNCZFSvISRnvRctb8m/2rB2I1JdByzvNKxPeFLlHFRPQRXab6aYeXc18j9LpsDLJ3sGQmWTQ==", "dev": true, "dependencies": { "@types/debug": "^4.1.6", - "7zip-bin": "~5.2.0", + "@types/fs-extra": "^9.0.11", + "7zip-bin": "~5.1.1", "app-builder-bin": "4.0.0", "bluebird-lst": "^1.0.9", - "builder-util-runtime": "9.2.4", - "chalk": "^4.1.2", + "builder-util-runtime": "9.1.1", + "chalk": "^4.1.1", "cross-spawn": "^7.0.3", "debug": "^4.3.4", - "fs-extra": "^10.1.0", + "fs-extra": "^10.0.0", "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", + "https-proxy-agent": "^5.0.0", "is-ci": "^3.0.0", "js-yaml": "^4.1.0", "source-map-support": "^0.5.19", @@ -1975,10 +2970,9 @@ } }, "node_modules/builder-util-runtime": { - "version": "9.2.4", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.4.tgz", - "integrity": "sha512-upp+biKpN/XZMLim7aguUyW8s0FUpDvOtK6sbanMFDAMBzpHDqdhgVYm6zc9HJ6nWo7u2Lxk60i2M6Jd3aiNrA==", - "dev": true, + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz", + "integrity": "sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw==", "dependencies": { "debug": "^4.3.4", "sax": "^1.2.4" @@ -2048,12 +3042,30 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" } }, "node_modules/caniuse-lite": { @@ -2076,10 +3088,14 @@ } ] }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmmirror.com/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, "node_modules/chalk": { "version": "4.1.2", @@ -2110,19 +3126,85 @@ } }, "node_modules/character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmmirror.com/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, "node_modules/character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, "node_modules/character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } }, "node_modules/chownr": { "version": "2.0.0", @@ -2133,15 +3215,6 @@ "node": ">=10" } }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, "node_modules/chromium-pickle-js": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", @@ -2163,10 +3236,22 @@ "node": ">=8" } }, + "node_modules/cjson": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cjson/-/cjson-0.5.0.tgz", + "integrity": "sha512-D3CKJU9YnZNyerUQ1IzNUvMnToP3MGC2XbIAPi/7yqunJJW3rBwCVapousoFtaR9IbejeEM0KIshxC1n4HQcXw==", + "dev": true, + "dependencies": { + "json-parse-helpfulerror": "^1.0.3" + }, + "engines": { + "node": ">= 0.3.0" + } + }, "node_modules/classnames": { - "version": "2.3.1", - "resolved": "https://registry.npmmirror.com/classnames/-/classnames-2.3.1.tgz", - "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" }, "node_modules/cli-truncate": { "version": "2.1.0", @@ -2199,20 +3284,6 @@ "node": ">=12" } }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/clone-response": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", @@ -2226,7 +3297,7 @@ }, "node_modules/color": { "version": "3.2.1", - "resolved": "https://registry.npmmirror.com/color/-/color-3.2.1.tgz", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", "dependencies": { "color-convert": "^1.9.3", @@ -2235,7 +3306,7 @@ }, "node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dependencies": { "color-name": "1.1.3" @@ -2243,28 +3314,32 @@ }, "node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/color-string": { "version": "1.9.1", - "resolved": "https://registry.npmmirror.com/color-string/-/color-string-1.9.1.tgz", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" } }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true + "node_modules/colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, "dependencies": { "delayed-stream": "~1.0.0" }, @@ -2272,6 +3347,15 @@ "node": ">= 0.8" } }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -2287,122 +3371,30 @@ "node": ">=0.10.0" } }, - "node_modules/compress-commons": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", - "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", - "dev": true, - "peer": true, - "dependencies": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/compress-commons/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/compute-scroll-into-view": { - "version": "1.0.17", - "resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz", - "integrity": "sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz", + "integrity": "sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==" }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/config-file-ts": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/config-file-ts/-/config-file-ts-0.2.6.tgz", - "integrity": "sha512-6boGVaglwblBgJqGyxm4+xCmEGcWgnWHSWHY5jad58awQhB6gftq0G8HbzU39YqCIYHMLAiL1yjwiZ36m/CL8w==", - "dev": true, - "dependencies": { - "glob": "^10.3.10", - "typescript": "^5.3.3" - } - }, - "node_modules/config-file-ts/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/config-file-ts/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/config-file-ts/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true }, "node_modules/copy-anything": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "is-what": "^3.14.1" }, @@ -2410,43 +3402,43 @@ "url": "https://github.com/sponsors/mesqueeb" } }, + "node_modules/copy-files-from-to": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/copy-files-from-to/-/copy-files-from-to-3.9.1.tgz", + "integrity": "sha512-SZHxqHotMXghpWTDgjq3c2nnRWesLqYfrLcCvML3yAaSf3+iIKv4clX5jsarMZ5iI7JMf6i9/B/VFDxVELG0Fg==", + "dev": true, + "dependencies": { + "async": "^3.2.5", + "axios": "^1.6.2", + "chalk": "=4.1.2", + "cjson": "^0.5.0", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "is-utf8": "^0.2.1", + "lodash": "^4.17.21", + "md5": "^2.3.0", + "mkdirp": "^3.0.1", + "note-down": "=1.0.2", + "terser": "^5.24.0", + "unixify": "^1.0.0", + "yargs": "^17.7.2" + }, + "bin": { + "copy-files-from-to": "index.js" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/copy-to-clipboard": { - "version": "3.3.2", - "resolved": "https://registry.npmmirror.com/copy-to-clipboard/-/copy-to-clipboard-3.3.2.tgz", - "integrity": "sha512-Vme1Z6RUDzrb6xAI7EZlVZ5uvOk2F//GaxKUxajDqm9LhOVM1inxNAD2vy+UZDYsd0uyA9s7b3/FVZPSxqrCfg==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", "dependencies": { "toggle-selection": "^1.0.6" } }, - "node_modules/copy-webpack-plugin": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz", - "integrity": "sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==", - "dev": true, - "dependencies": { - "fast-glob": "^3.3.2", - "glob-parent": "^6.0.1", - "globby": "^14.0.0", - "normalize-path": "^3.0.0", - "schema-utils": "^4.2.0", - "serialize-javascript": "^6.0.2" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, "node_modules/crc": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", @@ -2457,46 +3449,31 @@ "buffer": "^5.1.0" } }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "dev": true, - "peer": true, - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" + "node_modules/cross-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", + "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", + "dependencies": { + "node-fetch": "^2.6.12" } }, - "node_modules/crc32-stream": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", - "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", - "dev": true, - "peer": true, + "node_modules/cross-fetch/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dependencies": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" + "whatwg-url": "^5.0.0" }, "engines": { - "node": ">= 10" - } - }, - "node_modules/crc32-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "node": "4.x || >=6.0.0" }, - "engines": { - "node": ">= 6" + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, "node_modules/cross-spawn": { @@ -2513,100 +3490,41 @@ "node": ">= 8" } }, - "node_modules/cross-spawn-windows-exe": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/cross-spawn-windows-exe/-/cross-spawn-windows-exe-1.2.0.tgz", - "integrity": "sha512-mkLtJJcYbDCxEG7Js6eUnUNndWjyUZwJ3H7bErmmtOYU/Zb99DyUkpamuIZE0b3bhmJyZ7D90uS6f+CGxRRjOw==", + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/malept" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/subscription/pkg/npm-cross-spawn-windows-exe?utm_medium=referral&utm_source=npm_fund" - } - ], - "dependencies": { - "@malept/cross-spawn-promise": "^1.1.0", - "is-wsl": "^2.2.0", - "which": "^2.0.2" - }, "engines": { - "node": ">= 10" - } - }, - "node_modules/css-loader": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.10.0.tgz", - "integrity": "sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==", - "dev": true, - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.33", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.4", - "postcss-modules-scope": "^3.1.1", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" + "node": "*" } }, "node_modules/csstype": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.0.tgz", - "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "node_modules/d3-color": { - "version": "1.4.1", - "resolved": "https://registry.npmmirror.com/d3-color/-/d3-color-1.4.1.tgz", - "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-dispatch": { "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/d3-dispatch/-/d3-dispatch-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==" }, "node_modules/d3-ease": { "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/d3-ease/-/d3-ease-1.0.7.tgz", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz", "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" }, "node_modules/d3-force": { "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/d3-force/-/d3-force-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", "dependencies": { "d3-dispatch": "1 - 2", @@ -2615,53 +3533,50 @@ } }, "node_modules/d3-interpolate": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz", - "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "dependencies": { - "d3-color": "1" + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-quadtree": { "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/d3-quadtree/-/d3-quadtree-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==" }, "node_modules/d3-timer": { "version": "1.0.10", - "resolved": "https://registry.npmmirror.com/d3-timer/-/d3-timer-1.0.10.tgz", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" }, "node_modules/dagre": { "version": "0.8.5", - "resolved": "https://registry.npmmirror.com/dagre/-/dagre-0.8.5.tgz", + "resolved": "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz", "integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==", "dependencies": { "graphlib": "^2.1.8", "lodash": "^4.17.15" } }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "dev": true, + "node_modules/dagre-compound": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/dagre-compound/-/dagre-compound-0.0.11.tgz", + "integrity": "sha512-UrSgRP9LtOZCYb9e5doolZXpc7xayyszgyOs7uakTK4n4KsLegLVTRRtq01GpQd/iZjYw5fWMapx9ed+c80MAQ==", "engines": { - "node": ">= 12" - } - }, - "node_modules/date-fns": { - "version": "2.29.2", - "resolved": "https://registry.npmmirror.com/date-fns/-/date-fns-2.29.2.tgz", - "integrity": "sha512-0VNbwmWJDS/G3ySwFSJA3ayhbURMTJLtwM2DTxf9CWondCnh6DTNlO9JgRSq6ibf4eD0lfMJNBxUdEAHHix+bA==", - "engines": { - "node": ">=0.11" + "node": ">=6.0.0" + }, + "peerDependencies": { + "dagre": "^0.8.5" } }, "node_modules/dayjs": { - "version": "1.11.5", - "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.5.tgz", - "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==" + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" }, "node_modules/debug": { "version": "4.3.4", @@ -2679,6 +3594,18 @@ } } }, + "node_modules/decode-named-character-reference": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -2704,16 +3631,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/deep-eql": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/deep-eql/-/deep-eql-4.1.0.tgz", - "integrity": "sha512-4YM7QHOMBoVWqGPnp3OPPK7+WCIhUR2OTpahlNQFiyTH3QEeiu9MtBiTAJBkfny4PNhpFbV/jm3lv0iCfb40MA==", - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true }, "node_modules/defer-to-connect": { "version": "2.0.1", @@ -2727,7 +3649,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "optional": true, "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -2761,13 +3682,22 @@ "version": "1.0.0", "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, "engines": { "node": ">=0.4.0" } }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, "node_modules/detect-browser": { "version": "5.3.0", - "resolved": "https://registry.npmmirror.com/detect-browser/-/detect-browser-5.3.0.tgz", + "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==" }, "node_modules/detect-node": { @@ -2776,26 +3706,49 @@ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "optional": true }, - "node_modules/dir-compare": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-3.3.0.tgz", - "integrity": "sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==", + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "dependencies": { - "buffer-equal": "^1.0.0", - "minimatch": "^3.0.4" + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dir-glob/node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" } }, "node_modules/dmg-builder": { - "version": "24.13.3", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-24.13.3.tgz", - "integrity": "sha512-rcJUkMfnJpfCboZoOOPf4L29TRtEieHNOeAbYPWPxlaBw/Z1RKrRA86dOI9rwaI4tQSc/RD82zTNHprfUHXsoQ==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-23.6.0.tgz", + "integrity": "sha512-jFZvY1JohyHarIAlTbfQOk+HnceGjjAdFjVn3n8xlDWKsYNqbO4muca6qXEZTfGXeQMG7TYim6CeS5XKSfSsGA==", "dev": true, "dependencies": { - "app-builder-lib": "24.13.3", - "builder-util": "24.13.1", - "builder-util-runtime": "9.2.4", - "fs-extra": "^10.1.0", + "app-builder-lib": "23.6.0", + "builder-util": "23.6.0", + "builder-util-runtime": "9.1.1", + "fs-extra": "^10.0.0", "iconv-lite": "^0.6.2", "js-yaml": "^4.1.0" }, @@ -2888,45 +3841,16 @@ "dev": true, "optional": true }, - "node_modules/dom-align": { - "version": "1.12.3", - "resolved": "https://registry.npmmirror.com/dom-align/-/dom-align-1.12.3.tgz", - "integrity": "sha512-Gj9hZN3a07cbR6zviMUBOMPdWxYhbMI+x+WS0NAIu2zFZmbK8ys9R79g+iG9qLnlCwpFoaB+fKy8Pdv470GsPA==" - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dependencies": { - "domelementtype": "^2.3.0" + "esutils": "^2.0.2" }, "engines": { - "node": ">= 4" - } - }, - "node_modules/domutils": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/domutils/-/domutils-3.0.1.tgz", - "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.1" + "node": ">=6.0.0" } }, "node_modules/dotenv": { @@ -2944,16 +3868,10 @@ "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", "dev": true }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, "node_modules/ejs": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", - "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dev": true, "dependencies": { "jake": "^10.8.5" @@ -2966,13 +3884,13 @@ } }, "node_modules/electron": { - "version": "29.1.1", - "resolved": "https://registry.npmjs.org/electron/-/electron-29.1.1.tgz", - "integrity": "sha512-cXN15NgCi7MkzGo5/23ZQbii+0UfhmUiDjACunmzcUofYCjF42XhFbL7JZnwgI0qtBCCeJU8qZNZt9lU91gUFw==", + "version": "23.3.13", + "resolved": "https://registry.npmjs.org/electron/-/electron-23.3.13.tgz", + "integrity": "sha512-BaXtHEb+KYKLouUXlUVDa/lj9pj4F5kiE0kwFdJV84Y2EU7euIDgPthfKtchhr5MVHmjtavRMIV/zAwEiSQ9rQ==", "hasInstallScript": true, "dependencies": { "@electron/get": "^2.0.0", - "@types/node": "^20.9.0", + "@types/node": "^16.11.26", "extract-zip": "^2.0.1" }, "bin": { @@ -2983,22 +3901,23 @@ } }, "node_modules/electron-builder": { - "version": "24.13.3", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-24.13.3.tgz", - "integrity": "sha512-yZSgVHft5dNVlo31qmJAe4BVKQfFdwpRw7sFp1iQglDRCDD6r22zfRJuZlhtB5gp9FHUxCMEoWGq10SkCnMAIg==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-23.6.0.tgz", + "integrity": "sha512-y8D4zO+HXGCNxFBV/JlyhFnoQ0Y0K7/sFH+XwIbj47pqaW8S6PGYQbjoObolKBR1ddQFPt4rwp4CnwMJrW3HAw==", "dev": true, "dependencies": { - "app-builder-lib": "24.13.3", - "builder-util": "24.13.1", - "builder-util-runtime": "9.2.4", - "chalk": "^4.1.2", - "dmg-builder": "24.13.3", - "fs-extra": "^10.1.0", + "@types/yargs": "^17.0.1", + "app-builder-lib": "23.6.0", + "builder-util": "23.6.0", + "builder-util-runtime": "9.1.1", + "chalk": "^4.1.1", + "dmg-builder": "23.6.0", + "fs-extra": "^10.0.0", "is-ci": "^3.0.0", "lazy-val": "^1.0.5", - "read-config-file": "6.3.2", - "simple-update-notifier": "2.0.0", - "yargs": "^17.6.2" + "read-config-file": "6.2.0", + "simple-update-notifier": "^1.0.7", + "yargs": "^17.5.1" }, "bin": { "electron-builder": "cli.js", @@ -3008,57 +3927,6 @@ "node": ">=14.0.0" } }, - "node_modules/electron-builder-squirrel-windows": { - "version": "24.13.3", - "resolved": "https://registry.npmjs.org/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-24.13.3.tgz", - "integrity": "sha512-oHkV0iogWfyK+ah9ZIvMDpei1m9ZRpdXcvde1wTpra2U8AFDNNpqJdnin5z+PM1GbQ5BoaKCWas2HSjtR0HwMg==", - "dev": true, - "peer": true, - "dependencies": { - "app-builder-lib": "24.13.3", - "archiver": "^5.3.1", - "builder-util": "24.13.1", - "fs-extra": "^10.1.0" - } - }, - "node_modules/electron-builder-squirrel-windows/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "peer": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/electron-builder-squirrel-windows/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "peer": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/electron-builder-squirrel-windows/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/electron-builder/node_modules/fs-extra": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", @@ -3097,14 +3965,12 @@ "node_modules/electron-is-accelerator": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/electron-is-accelerator/-/electron-is-accelerator-0.1.2.tgz", - "integrity": "sha512-fLGSAjXZtdn1sbtZxx52+krefmtNuVwnJCV2gNiVt735/ARUboMl8jnNC9fZEqQdlAv2ZrETfmBUsoQci5evJA==", - "dev": true + "integrity": "sha512-fLGSAjXZtdn1sbtZxx52+krefmtNuVwnJCV2gNiVt735/ARUboMl8jnNC9fZEqQdlAv2ZrETfmBUsoQci5evJA==" }, "node_modules/electron-localshortcut": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/electron-localshortcut/-/electron-localshortcut-3.2.1.tgz", "integrity": "sha512-DWvhKv36GsdXKnaFFhEiK8kZZA+24/yFLgtTwJJHc7AFgDjNRIBJZ/jq62Y/dWv9E4ypYwrVWN2bVrCYw1uv7Q==", - "dev": true, "dependencies": { "debug": "^4.0.1", "electron-is-accelerator": "^0.1.0", @@ -3112,117 +3978,66 @@ "keyboardevents-areequal": "^0.2.1" } }, - "node_modules/electron-packager": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-17.1.2.tgz", - "integrity": "sha512-XofXdikjYI7MVBcnXeoOvRR+yFFFHOLs3J7PF5KYQweigtgLshcH4W660PsvHr4lYZ03JBpLyEcUB8DzHZ+BNw==", - "deprecated": "Please use @electron/packager moving forward. There is no API change, just a package name change", + "node_modules/electron-osx-sign": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz", + "integrity": "sha512-+hiIEb2Xxk6eDKJ2FFlpofCnemCbjbT5jz+BKGpVBrRNT3kWTGs4DfNX6IzGwgi33hUcXF+kFs9JW+r6Wc1LRg==", + "deprecated": "Please use @electron/osx-sign moving forward. Be aware the API is slightly different", "dev": true, "dependencies": { - "@electron/asar": "^3.2.1", - "@electron/get": "^2.0.0", - "@electron/notarize": "^1.2.3", - "@electron/osx-sign": "^1.0.5", - "@electron/universal": "^1.3.2", - "cross-spawn-windows-exe": "^1.2.0", - "debug": "^4.0.1", - "extract-zip": "^2.0.0", - "filenamify": "^4.1.0", - "fs-extra": "^11.1.0", - "galactus": "^1.0.0", - "get-package-info": "^1.0.0", - "junk": "^3.1.0", - "parse-author": "^2.0.0", - "plist": "^3.0.0", - "rcedit": "^3.0.1", - "resolve": "^1.1.6", - "semver": "^7.1.3", - "yargs-parser": "^21.1.1" + "bluebird": "^3.5.0", + "compare-version": "^0.1.2", + "debug": "^2.6.8", + "isbinaryfile": "^3.0.2", + "minimist": "^1.2.0", + "plist": "^3.0.1" }, "bin": { - "electron-packager": "bin/electron-packager.js" + "electron-osx-flat": "bin/electron-osx-flat.js", + "electron-osx-sign": "bin/electron-osx-sign.js" }, "engines": { - "node": ">= 14.17.5" - }, - "funding": { - "url": "https://github.com/electron/electron-packager?sponsor=1" + "node": ">=4.0.0" } }, - "node_modules/electron-packager/node_modules/@electron/notarize": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@electron/notarize/-/notarize-1.2.4.tgz", - "integrity": "sha512-W5GQhJEosFNafewnS28d3bpQ37/s91CDWqxVchHfmv2dQSTWpOzNlUVQwYzC1ay5bChRV/A9BTL68yj0Pa+TSg==", + "node_modules/electron-osx-sign/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { - "debug": "^4.1.1", - "fs-extra": "^9.0.1" - }, - "engines": { - "node": ">= 10.0.0" + "ms": "2.0.0" } }, - "node_modules/electron-packager/node_modules/@electron/notarize/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "node_modules/electron-osx-sign/node_modules/isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", "dev": true, "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "buffer-alloc": "^1.2.0" }, "engines": { - "node": ">=10" + "node": ">=0.6.0" } }, - "node_modules/electron-packager/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/electron-packager/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/electron-packager/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } + "node_modules/electron-osx-sign/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, "node_modules/electron-publish": { - "version": "24.13.1", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-24.13.1.tgz", - "integrity": "sha512-2ZgdEqJ8e9D17Hwp5LEq5mLQPjqU3lv/IALvgp+4W8VeNhryfGhYEQC/PgDPMrnWUp+l60Ou5SJLsu+k4mhQ8A==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-23.6.0.tgz", + "integrity": "sha512-jPj3y+eIZQJF/+t5SLvsI5eS4mazCbNYqatv5JihbqOstIM13k0d1Z3vAWntvtt13Itl61SO6seicWdioOU5dg==", "dev": true, "dependencies": { "@types/fs-extra": "^9.0.11", - "builder-util": "24.13.1", - "builder-util-runtime": "9.2.4", - "chalk": "^4.1.2", - "fs-extra": "^10.1.0", + "builder-util": "23.6.0", + "builder-util-runtime": "9.1.1", + "chalk": "^4.1.1", + "fs-extra": "^10.0.0", "lazy-val": "^1.0.5", "mime": "^2.5.2" } @@ -3268,21 +4083,65 @@ "integrity": "sha512-f9iZD1t3CLy1AS6vzM5EKGa6p9pRcOeEFXRFbaG2Ta+Oe7MkfRQ3fsvPYidzHe1h4i0JvIvpcY55C+B6BZNGtQ==", "dev": true }, + "node_modules/electron-updater": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-5.3.0.tgz", + "integrity": "sha512-iKEr7yQBcvnQUPnSDYGSWC9t0eF2YbZWeYYYZzYxdl+HiRejXFENjYMnYjoOm2zxyD6Cr2JTHZhp9pqxiXuCOw==", + "dependencies": { + "@types/semver": "^7.3.6", + "builder-util-runtime": "9.1.1", + "fs-extra": "^10.0.0", + "js-yaml": "^4.1.0", + "lazy-val": "^1.0.5", + "lodash.escaperegexp": "^4.1.2", + "lodash.isequal": "^4.5.0", + "semver": "^7.3.5", + "typed-emitter": "^2.1.0" + } + }, + "node_modules/electron-updater/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-updater/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-updater/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/electron/node_modules/@types/node": { + "version": "16.18.96", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.96.tgz", + "integrity": "sha512-84iSqGXoO+Ha16j8pRZ/L90vDMKX04QTYMTfYeE1WrjWaZXuchBehGUZEpNgx7JnmlrIHdnABmpjrQjhCnNldQ==" + }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -3291,27 +4150,6 @@ "once": "^1.4.0" } }, - "node_modules/enhanced-resolve": { - "version": "5.15.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.1.tgz", - "integrity": "sha512-3d3JRbwsCLJsYgvb6NuWEG44jjPSOMuS73L/6+7BZuoKm3W+qXnSoIYVHi8dG7Qcg4inAY4jbzkZ7MnskePeDg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "4.3.1", - "resolved": "https://registry.npmmirror.com/entities/-/entities-4.3.1.tgz", - "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==", - "engines": { - "node": ">=0.12" - } - }, "node_modules/env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", @@ -3320,30 +4158,13 @@ "node": ">=6" } }, - "node_modules/envinfo": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz", - "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==", - "dev": true, - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true - }, "node_modules/errno": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, "optional": true, + "peer": true, "dependencies": { "prr": "~1.0.1" }, @@ -3351,20 +4172,10 @@ "errno": "cli.js" } }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, "node_modules/es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "optional": true, "dependencies": { "get-intrinsic": "^1.2.4" }, @@ -3380,18 +4191,49 @@ "node": ">= 0.4" } }, - "node_modules/es-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", - "dev": true - }, "node_modules/es6-error": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "optional": true }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, "node_modules/escalade": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", @@ -3405,7 +4247,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "optional": true, + "devOptional": true, "engines": { "node": ">=10" }, @@ -3413,17 +4255,262 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.6.tgz", + "integrity": "sha512-NjGXdm7zgcKRkKMua34qVO9doI7VOxZ6ancSvBELJSSoX97jyndXcSoa8XBh69JoB31dNz3EEzlMcizZl7LaMA==", + "dev": true, + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=8.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" } }, "node_modules/esrecurse": { @@ -3447,27 +4534,32 @@ "node": ">=4.0" } }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" + "node_modules/estree-util-is-identifier-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, "engines": { - "node": ">=0.8.x" + "node": ">=0.10.0" } }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, "node_modules/extend": { "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "node_modules/extract-zip": { @@ -3502,8 +4594,7 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { "version": "3.3.2", @@ -3539,14 +4630,11 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true, - "engines": { - "node": ">= 4.9.1" - } + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true }, "node_modules/fastq": { "version": "1.17.1", @@ -3567,99 +4655,19 @@ }, "node_modules/fecha": { "version": "4.2.3", - "resolved": "https://registry.npmmirror.com/fecha/-/fecha-4.2.3.tgz", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" + "flat-cache": "^3.0.4" }, "engines": { - "node": "^12.20 || >= 14.13" - } - }, - "node_modules/file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/file-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/file-loader/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/file-loader/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/file-loader/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/filelist": { @@ -3692,32 +4700,6 @@ "node": ">=10" } }, - "node_modules/filename-reserved-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", - "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/filenamify": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", - "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", - "dev": true, - "dependencies": { - "filename-reserved-regex": "^2.0.0", - "strip-outer": "^1.0.1", - "trim-repeated": "^1.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -3730,89 +4712,44 @@ "node": ">=8" } }, - "node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "dependencies": { - "locate-path": "^2.0.0" + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" }, "engines": { - "node": ">=4" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "bin": { - "flat": "cli.js" - } + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true }, - "node_modules/flora-colossus": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/flora-colossus/-/flora-colossus-2.0.0.tgz", - "integrity": "sha512-dz4HxH6pOvbUzZpZ/yXhafjbR2I8cenK5xL0KtBFb7U2ADsR+OwXifnxZjij/pZWF775uSCMzWVd+jDik2H2IA==", + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "dev": true, - "dependencies": { - "debug": "^4.3.4", - "fs-extra": "^10.1.0" - }, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "engines": { - "node": ">= 12" - } - }, - "node_modules/flora-colossus/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "node": ">=4.0" }, - "engines": { - "node": ">=12" - } - }, - "node_modules/flora-colossus/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/flora-colossus/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, "node_modules/form-data": { @@ -3829,25 +4766,6 @@ "node": ">= 6" } }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dev": true, - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true, - "peer": true - }, "node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -3888,7 +4806,22 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, "node_modules/function-bind": { "version": "1.1.2", @@ -3898,53 +4831,13 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/galactus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/galactus/-/galactus-1.0.0.tgz", - "integrity": "sha512-R1fam6D4CyKQGNlvJne4dkNF+PvUUl7TAJInvTGa9fti9qAv95quQz29GXapA4d8Ec266mJJxFVh82M4GIIGDQ==", - "dev": true, - "dependencies": { - "debug": "^4.3.4", - "flora-colossus": "^2.0.0", - "fs-extra": "^10.1.0" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/galactus/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/galactus/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/galactus/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, "engines": { - "node": ">= 10.0.0" + "node": ">=6.9.0" } }, "node_modules/get-caller-file": { @@ -3974,44 +4867,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-package-info": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-package-info/-/get-package-info-1.0.0.tgz", - "integrity": "sha512-SCbprXGAPdIhKAXiG+Mk6yeoFH61JlYunqdFQFHDtLjJlDjFf6x07dsS8acO+xWt52jpdVo49AlVDnUVK1sDNw==", - "dev": true, - "dependencies": { - "bluebird": "^3.1.1", - "debug": "^2.2.0", - "lodash.get": "^4.0.0", - "read-pkg-up": "^2.0.0" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/get-package-info/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/get-package-info/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/get-port": { - "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", - "engines": { - "node": ">=4" - } - }, "node_modules/get-stream": { "version": "5.2.0", "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", @@ -4025,13 +4880,19 @@ }, "node_modules/gl-matrix": { "version": "3.4.3", - "resolved": "https://registry.npmmirror.com/gl-matrix/-/gl-matrix-3.4.3.tgz", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" }, + "node_modules/gl-vec2": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/gl-vec2/-/gl-vec2-1.3.0.tgz", + "integrity": "sha512-YiqaAuNsheWmUV0Sa8k94kBB0D6RWjwZztyO+trEYS8KzJ6OQB/4686gdrf59wld4hHFIvaxynO3nRxpk1Ij/A==" + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -4056,12 +4917,6 @@ "node": ">=10.13.0" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, "node_modules/global-agent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", @@ -4079,6 +4934,15 @@ "node": ">=10.0" } }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/globalthis": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", @@ -4094,31 +4958,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globby": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz", - "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==", - "dev": true, - "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "optional": true, "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -4155,9 +4998,21 @@ "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz", "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, + "node_modules/graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, "node_modules/graphlib": { "version": "2.1.8", - "resolved": "https://registry.npmmirror.com/graphlib/-/graphlib-2.1.8.tgz", + "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", "dependencies": { "lodash": "^4.17.15" @@ -4176,7 +5031,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "optional": true, "dependencies": { "es-define-property": "^1.0.0" }, @@ -4214,6 +5068,44 @@ "node": ">= 0.4" } }, + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.0.tgz", + "integrity": "sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^1.0.0", + "unist-util-position": "^5.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/hosted-git-info": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", @@ -4226,39 +5118,21 @@ "node": ">=10" } }, - "node_modules/html-to-react": { - "version": "1.5.0", - "resolved": "https://registry.npmmirror.com/html-to-react/-/html-to-react-1.5.0.tgz", - "integrity": "sha512-tjihXBgaJZRRYzmkrJZ/Qf9jFayilFYcb+sJxXXE2BVLk2XsNrGeuNCVvhXmvREULZb9dz6NFTBC96DTR/lQCQ==", + "node_modules/html-parse-stringify": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", + "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==", "dependencies": { - "domhandler": "^5.0", - "htmlparser2": "^8.0", - "lodash.camelcase": "^4.3.0" + "void-elements": "3.1.0" } }, - "node_modules/htmlparser2": { - "version": "8.0.1", - "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-8.0.1.tgz", - "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "entities": "^4.3.0" - } - }, - "node_modules/http-basic": { - "version": "8.1.3", - "resolved": "https://registry.npmmirror.com/http-basic/-/http-basic-8.1.3.tgz", - "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", - "dependencies": { - "caseless": "^0.12.0", - "concat-stream": "^1.6.2", - "http-response-object": "^3.0.1", - "parse-cache-control": "^1.0.1" - }, - "engines": { - "node": ">=6.0.0" + "node_modules/html-url-attributes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.0.tgz", + "integrity": "sha512-/sXbVCWayk6GDVg3ctOX6nxaVj7So40FcFAnWlWGNAB1LpYKcV5Cd10APjPjW80O7zYW2MsjBV4zZ7IZO5fVow==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, "node_modules/http-cache-semantics": { @@ -4280,19 +5154,6 @@ "node": ">= 6" } }, - "node_modules/http-response-object": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/http-response-object/-/http-response-object-3.0.2.tgz", - "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", - "dependencies": { - "@types/node": "^10.0.3" - } - }, - "node_modules/http-response-object/node_modules/@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmmirror.com/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" - }, "node_modules/http2-wrapper": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", @@ -4318,6 +5179,44 @@ "node": ">= 6" } }, + "node_modules/i18next": { + "version": "23.11.2", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.11.2.tgz", + "integrity": "sha512-qMBm7+qT8jdpmmDw/kQD16VpmkL9BdL+XNAK5MNbNFaf1iQQq35ZbPrSlqmnNPOSUY4m342+c0t0evinF5l7sA==", + "funding": [ + { + "type": "individual", + "url": "https://locize.com" + }, + { + "type": "individual", + "url": "https://locize.com/i18next.html" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + } + ], + "dependencies": { + "@babel/runtime": "^7.23.2" + } + }, + "node_modules/i18next-browser-languagedetector": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.2.1.tgz", + "integrity": "sha512-h/pM34bcH6tbz8WgGXcmWauNpQupCGr25XPp9cZwZInR9XHSjIFDYp1SIok7zSPsTOMxdvuLyu86V+g2Kycnfw==", + "dependencies": { + "@babel/runtime": "^7.23.2" + } + }, + "node_modules/i18next-http-backend": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-2.5.0.tgz", + "integrity": "sha512-Z/aQsGZk1gSxt2/DztXk92DuDD20J+rNudT7ZCdTrNOiK8uQppfvdjq9+DFQfpAnFPn3VZS+KQIr1S/W1KxhpQ==", + "dependencies": { + "cross-fetch": "4.0.0" + } + }, "node_modules/iconv-corefoundation": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", @@ -4347,18 +5246,6 @@ "node": ">=0.10.0" } }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -4377,7 +5264,8 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "optional": true }, "node_modules/ignore": { "version": "5.3.1", @@ -4394,6 +5282,7 @@ "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", "dev": true, "optional": true, + "peer": true, "bin": { "image-size": "bin/image-size.js" }, @@ -4402,33 +5291,61 @@ } }, "node_modules/immer": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/immer/-/immer-4.0.2.tgz", - "integrity": "sha512-Q/tm+yKqnKy4RIBmmtISBlhXuSDrB69e9EKTYiIenIKQkXBQir43w+kN/eGiax3wt1J0O1b2fYcNqLSbEcXA7w==" + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.0.4.tgz", + "integrity": "sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==", + "optional": true, + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "node_modules/immutable": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", + "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -4437,54 +5354,68 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/inline-style-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.3.tgz", + "integrity": "sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==" }, "node_modules/insert-css": { "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/insert-css/-/insert-css-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/insert-css/-/insert-css-2.0.0.tgz", "integrity": "sha512-xGq5ISgcUP5cvGkS2MMFLtPDBtrtQPSFfC6gA6U8wHKqfjTIMZLZNxOItQnoSjdOzlXOLU/yD32RKC4SvjNbtA==" }, - "node_modules/interpret": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } + "node_modules/intersection-observer": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/intersection-observer/-/intersection-observer-0.12.2.tgz", + "integrity": "sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==" }, "node_modules/is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, "node_modules/is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", "dependencies": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, "node_modules/is-any-array": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/is-any-array/-/is-any-array-2.0.0.tgz", - "integrity": "sha512-WdPV58rT3aOWXvvyuBydnCq4S2BM1Yz8shKxlEpk/6x+GX202XRvXOycEFtNgnHVLoc46hpexPFx8Pz1/sMS0w==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-any-array/-/is-any-array-2.0.1.tgz", + "integrity": "sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ==" }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } }, "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "engines": { - "node": ">=4" - } + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true }, "node_modules/is-ci": { "version": "3.0.1", @@ -4498,36 +5429,13 @@ "is-ci": "bin.js" } }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, "node_modules/is-extglob": { @@ -4561,9 +5469,13 @@ } }, "node_modules/is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, "node_modules/is-number": { "version": "7.0.0", @@ -4574,56 +5486,47 @@ "node": ">=0.12.0" } }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, "node_modules/is-what": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", - "dev": true - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "optional": true, + "peer": true }, "node_modules/isbinaryfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.2.tgz", - "integrity": "sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", "dev": true, "engines": { - "node": ">= 18.0.0" + "node": ">= 8.0.0" }, "funding": { "url": "https://github.com/sponsors/gjtorikian/" @@ -4635,33 +5538,6 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dev": true, - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, "node_modules/jake": { "version": "10.8.7", "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", @@ -4680,19 +5556,16 @@ "node": ">=10" } }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } + "node_modules/jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", + "dev": true + }, + "node_modules/js-cookie": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", + "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==" }, "node_modules/js-tokens": { "version": "4.0.0", @@ -4703,7 +5576,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, "dependencies": { "argparse": "^2.0.1" }, @@ -4711,22 +5583,59 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "node_modules/json-parse-helpfulerror": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", + "integrity": "sha512-XgP0FGR77+QhUxjXkwOMkC94k3WtqEBfcnjWqhRd82qTat4SWKRE+9kUnynz/shm3I4ea2+qISvTIeGTNU7kJg==", + "dev": true, + "dependencies": { + "jju": "^1.1.0" + } + }, + "node_modules/json-stable-stringify": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz", + "integrity": "sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==", + "dependencies": { + "call-bind": "^1.0.5", + "isarray": "^2.0.5", + "jsonify": "^0.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "node_modules/json-stable-stringify/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" }, "node_modules/json-stringify-safe": { "version": "5.0.1", @@ -4736,7 +5645,7 @@ }, "node_modules/json2mq": { "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/json2mq/-/json2mq-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==", "dependencies": { "string-convert": "^0.2.0" @@ -4762,26 +5671,23 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/junk": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", - "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", - "dev": true, - "engines": { - "node": ">=8" + "node_modules/jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/keyboardevent-from-electron-accelerator": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/keyboardevent-from-electron-accelerator/-/keyboardevent-from-electron-accelerator-2.0.0.tgz", - "integrity": "sha512-iQcmNA0M4ETMNi0kG/q0h/43wZk7rMeKYrXP7sqKIJbHkTU8Koowgzv+ieR/vWJbOwxx5nDC3UnudZ0aLSu4VA==", - "dev": true + "integrity": "sha512-iQcmNA0M4ETMNi0kG/q0h/43wZk7rMeKYrXP7sqKIJbHkTU8Koowgzv+ieR/vWJbOwxx5nDC3UnudZ0aLSu4VA==" }, "node_modules/keyboardevents-areequal": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/keyboardevents-areequal/-/keyboardevents-areequal-0.2.2.tgz", - "integrity": "sha512-Nv+Kr33T0mEjxR500q+I6IWisOQ0lK1GGOncV0kWE6n4KFmpcu7RUX5/2B0EUtX51Cb0HjZ9VJsSY3u4cBa0kw==", - "dev": true + "integrity": "sha512-Nv+Kr33T0mEjxR500q+I6IWisOQ0lK1GGOncV0kWE6n4KFmpcu7RUX5/2B0EUtX51Cb0HjZ9VJsSY3u4cBa0kw==" }, "node_modules/keyv": { "version": "4.5.4", @@ -4791,39 +5697,18 @@ "json-buffer": "3.0.1" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/lazy-val": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", - "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==", - "dev": true - }, - "node_modules/lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "peer": true, - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } + "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==" }, "node_modules/less": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "copy-anything": "^2.0.1", "parse-node-version": "^1.0.1", @@ -4845,38 +5730,13 @@ "source-map": "~0.6.0" } }, - "node_modules/less-loader": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.2.0.tgz", - "integrity": "sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==", - "dev": true, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "less": "^3.5.0 || ^4.0.0", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, "node_modules/less/node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, "optional": true, + "peer": true, "bin": { "mime": "cli.js" }, @@ -4884,116 +5744,59 @@ "node": ">=4" } }, - "node_modules/load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ==", + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, "engines": { - "node": ">=4" + "node": ">= 0.8.0" } }, - "node_modules/load-json-file/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true, - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } + "node_modules/lib-esm": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/lib-esm/-/lib-esm-0.3.0.tgz", + "integrity": "sha512-P7YcG7OnoaGL2h4j46g/m0P2xHMXlYf+0iCDvVrEfzUVxLe+abytgd2VjUhj9puqEgqRGEDbT504YWj75jHacA==", + "dev": true }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "dev": true, - "peer": true + "node_modules/lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==" }, - "node_modules/lodash.difference": { + "node_modules/lodash.isequal": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", - "dev": true, - "peer": true + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true, - "peer": true - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true, - "peer": true - }, - "node_modules/lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", - "dev": true, - "peer": true + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, "node_modules/loose-envify": { "version": "1.4.0", @@ -5018,7 +5821,6 @@ "version": "6.0.0", "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "devOptional": true, "dependencies": { "yallist": "^4.0.0" }, @@ -5026,12 +5828,25 @@ "node": ">=10" } }, + "node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, "optional": true, + "peer": true, "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -5046,6 +5861,7 @@ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "optional": true, + "peer": true, "bin": { "semver": "bin/semver" } @@ -5062,41 +5878,161 @@ "node": ">=10" } }, - "node_modules/mdast-add-list-metadata": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/mdast-add-list-metadata/-/mdast-add-list-metadata-1.0.1.tgz", - "integrity": "sha512-fB/VP4MJ0LaRsog7hGPxgOrSL3gE/2uEdZyDuSEnKCv/8IkYHiDkIQSbChiJoHyxZZXZ9bzckyRk+vNxFzh8rA==", + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dev": true, "dependencies": { - "unist-util-visit-parents": "1.1.2" + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" } }, "node_modules/mdast-util-from-markdown": { - "version": "0.8.5", - "resolved": "https://registry.npmmirror.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", - "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz", + "integrity": "sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==", "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^2.0.0", - "micromark": "~2.11.0", - "parse-entities": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz", + "integrity": "sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.2.tgz", + "integrity": "sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-remove-position": "^5.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.1.0.tgz", + "integrity": "sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz", + "integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-to-string": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", - "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==" - }, - "node_modules/memoize-one": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz", - "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, "node_modules/merge2": { "version": "1.4.1", @@ -5108,14 +6044,426 @@ } }, "node_modules/micromark": { - "version": "2.11.4", - "resolved": "https://registry.npmmirror.com/micromark/-/micromark-2.11.4.tgz", - "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", + "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "dependencies": { + "@types/debug": "^4.0.0", "debug": "^4.0.0", - "parse-entities": "^2.0.0" + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.0.tgz", + "integrity": "sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", + "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", + "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", + "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", + "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", + "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", + "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, "node_modules/micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", @@ -5145,6 +6493,7 @@ "version": "1.52.0", "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, "engines": { "node": ">= 0.6" } @@ -5153,6 +6502,7 @@ "version": "2.1.35", "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, "dependencies": { "mime-db": "1.52.0" }, @@ -5172,6 +6522,7 @@ "version": "3.1.2", "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -5223,20 +6574,23 @@ } }, "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "dev": true, "bin": { - "mkdirp": "bin/cmd.js" + "mkdirp": "dist/cjs/src/bin.js" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/ml-array-max": { "version": "1.2.4", - "resolved": "https://registry.npmmirror.com/ml-array-max/-/ml-array-max-1.2.4.tgz", + "resolved": "https://registry.npmjs.org/ml-array-max/-/ml-array-max-1.2.4.tgz", "integrity": "sha512-BlEeg80jI0tW6WaPyGxf5Sa4sqvcyY6lbSn5Vcv44lp1I2GR6AWojfUvLnGTNsIXrZ8uqWmo8VcG1WpkI2ONMQ==", "dependencies": { "is-any-array": "^2.0.0" @@ -5244,7 +6598,7 @@ }, "node_modules/ml-array-min": { "version": "1.2.3", - "resolved": "https://registry.npmmirror.com/ml-array-min/-/ml-array-min-1.2.3.tgz", + "resolved": "https://registry.npmjs.org/ml-array-min/-/ml-array-min-1.2.3.tgz", "integrity": "sha512-VcZ5f3VZ1iihtrGvgfh/q0XlMobG6GQ8FsNyQXD3T+IlstDv85g8kfV0xUG1QPRO/t21aukaJowDzMTc7j5V6Q==", "dependencies": { "is-any-array": "^2.0.0" @@ -5252,7 +6606,7 @@ }, "node_modules/ml-array-rescale": { "version": "1.3.7", - "resolved": "https://registry.npmmirror.com/ml-array-rescale/-/ml-array-rescale-1.3.7.tgz", + "resolved": "https://registry.npmjs.org/ml-array-rescale/-/ml-array-rescale-1.3.7.tgz", "integrity": "sha512-48NGChTouvEo9KBctDfHC3udWnQKNKEWN0ziELvY3KG25GR5cA8K8wNVzracsqSW1QEkAXjTNx+ycgAv06/1mQ==", "dependencies": { "is-any-array": "^2.0.0", @@ -5261,22 +6615,14 @@ } }, "node_modules/ml-matrix": { - "version": "6.10.2", - "resolved": "https://registry.npmmirror.com/ml-matrix/-/ml-matrix-6.10.2.tgz", - "integrity": "sha512-+yxwzMazC76DAsgEvDrdCfRMH7+lO7UdnuWllavnPeWkPD2oIBA6rLzvst7BFYUxzgRz/h6V6lLzYIYtTvINbw==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/ml-matrix/-/ml-matrix-6.11.0.tgz", + "integrity": "sha512-7jr9NmFRkaUxbKslfRu3aZOjJd2LkSitCGv+QH9PF0eJoEG7jIpjXra1Vw8/kgao8+kHCSsJONG6vfWmXQ+/Eg==", "dependencies": { - "is-any-array": "^2.0.0", + "is-any-array": "^2.0.1", "ml-array-rescale": "^1.3.7" } }, - "node_modules/moment": { - "version": "2.29.4", - "resolved": "https://registry.npmmirror.com/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", - "engines": { - "node": "*" - } - }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", @@ -5300,12 +6646,19 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, "node_modules/needle": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", "dev": true, "optional": true, + "peer": true, "dependencies": { "iconv-lite": "^0.6.3", "sax": "^1.2.4" @@ -5317,12 +6670,6 @@ "node": ">= 4.4.x" } }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, "node_modules/node-addon-api": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", @@ -5330,76 +6677,12 @@ "dev": true, "optional": true }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", - "dev": true, - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, "node_modules/node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -5420,24 +6703,40 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" + "node_modules/notbundle": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/notbundle/-/notbundle-0.4.0.tgz", + "integrity": "sha512-fstkCyAyt5nqHch1GESWqkW9i/D2p80SacBEAoPNoRS0U6qBT6ZSUp2BayS+dbEWTHqheSzwxQwEEK/jpPObHw==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.3", + "fast-glob": "^3.2.12" + }, + "peerDependencies": { + "@swc/core": "*" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + } } }, - "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + "node_modules/note-down": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/note-down/-/note-down-1.0.2.tgz", + "integrity": "sha512-TvLvdM5FJN3Lw9S09sNfcFnfFGioih49btr87VdCecHQAjOhtcRaqducIWDGnP/VJOEv5IxNxD6pmakGg9aAww==", + "dev": true, + "dependencies": { + "chalk": "=4.1.2" + }, + "engines": { + "node": ">=14" + } }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "optional": true, "engines": { "node": ">= 0.4" } @@ -5450,6 +6749,23 @@ "wrappy": "1" } }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/p-cancelable": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", @@ -5458,103 +6774,58 @@ "node": ">=8" } }, - "node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/parse-author": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-author/-/parse-author-2.0.0.tgz", - "integrity": "sha512-yx5DfvkN8JsHL2xk2Os9oTia467qnvRgey4ahSm2X8epehBLx/gWLcy5KI+Y36ful5DzGbCS6RazqZGgy1gHNw==", - "dev": true, - "dependencies": { - "author-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parse-cache-control": { + "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/parse-cache-control/-/parse-cache-control-1.0.1.tgz", - "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==" + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } }, "node_modules/parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", + "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==", "dependencies": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" + "@types/unist": "^2.0.0", + "character-entities": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } + "node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" }, "node_modules/parse-node-version": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 0.10" } }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -5568,49 +6839,6 @@ "node": ">=8" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", - "dev": true, - "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/path-type": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", @@ -5640,92 +6868,11 @@ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, "optional": true, + "peer": true, "engines": { "node": ">=6" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/plist": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", @@ -5768,89 +6915,26 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "node": ">= 0.8.0" } }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz", - "integrity": "sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==", - "dev": true, + "node_modules/probe.gl": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/probe.gl/-/probe.gl-3.6.0.tgz", + "integrity": "sha512-19JydJWI7+DtR4feV+pu4Mn1I5TAc0xojuxVgZdXIyfmTLfUaFnk4OloWK1bKbPtkgGKLr2lnbnCXmpZEcEp9g==", "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "@babel/runtime": "^7.0.0", + "@probe.gl/env": "3.6.0", + "@probe.gl/log": "3.6.0", + "@probe.gl/stats": "3.6.0" } }, - "node_modules/postcss-modules-scope": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.1.tgz", - "integrity": "sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.15", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", - "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -5859,43 +6943,28 @@ "node": ">=0.4.0" } }, - "node_modules/promise": { - "version": "8.1.0", - "resolved": "https://registry.npmmirror.com/promise/-/promise-8.1.0.tgz", - "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", - "dependencies": { - "asap": "~2.0.6" + "node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dev": true, - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmmirror.com/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "node_modules/pump": { "version": "3.0.0", @@ -5915,15 +6984,12 @@ "node": ">=6" } }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" + "node_modules/qrcode.react": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/qrcode.react/-/qrcode.react-3.1.0.tgz", + "integrity": "sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, "node_modules/queue-microtask": { @@ -5957,43 +7023,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/rc-align": { - "version": "4.0.12", - "resolved": "https://registry.npmmirror.com/rc-align/-/rc-align-4.0.12.tgz", - "integrity": "sha512-3DuwSJp8iC/dgHzwreOQl52soj40LchlfUHtgACOUtwGuoFIOVh6n/sCpfqCU8kO5+iz6qR0YKvjgB8iPdE3aQ==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "dom-align": "^1.7.0", - "lodash": "^4.17.21", - "rc-util": "^5.3.0", - "resize-observer-polyfill": "^1.5.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, "node_modules/rc-cascader": { - "version": "3.6.2", - "resolved": "https://registry.npmmirror.com/rc-cascader/-/rc-cascader-3.6.2.tgz", - "integrity": "sha512-sf2otpazlROTzkD3nZVfIzXmfBLiEOBTXA5wxozGXBpS902McDpvF0bdcYBu5hN+rviEAm6Mh9cLXNQ1Ty8wKQ==", + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.24.1.tgz", + "integrity": "sha512-RgKuYgEGPx+6wCgguYFHjMsDZdCyydZd58YJRCfYQ8FObqLnZW0x/vUcEyPjhWIj1EhjV958IcR+NFPDbbj9kg==", "dependencies": { "@babel/runtime": "^7.12.5", "array-tree-filter": "^2.1.0", "classnames": "^2.3.1", - "rc-select": "~14.1.0", - "rc-tree": "~5.6.3", - "rc-util": "^5.6.1" + "rc-select": "~14.13.0", + "rc-tree": "~5.8.1", + "rc-util": "^5.37.0" }, "peerDependencies": { "react": ">=16.9.0", @@ -6001,12 +7041,13 @@ } }, "node_modules/rc-checkbox": { - "version": "2.3.2", - "resolved": "https://registry.npmmirror.com/rc-checkbox/-/rc-checkbox-2.3.2.tgz", - "integrity": "sha512-afVi1FYiGv1U0JlpNH/UaEXdh6WUJjcWokj/nUN2TgG80bfG+MDdbfHKlLcNNba94mbjy2/SXJ1HDgrOkXGAjg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.2.0.tgz", + "integrity": "sha512-8inzw4y9dAhZmv/Ydl59Qdy5tdp9CKg4oPVcRigi+ga/yKPZS5m5SyyQPtYSgbcqHRYOdUhiPSeKfktc76du1A==", "dependencies": { "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1" + "classnames": "^2.3.2", + "rc-util": "^5.25.2" }, "peerDependencies": { "react": ">=16.9.0", @@ -6014,15 +7055,14 @@ } }, "node_modules/rc-collapse": { - "version": "3.3.1", - "resolved": "https://registry.npmmirror.com/rc-collapse/-/rc-collapse-3.3.1.tgz", - "integrity": "sha512-cOJfcSe3R8vocrF8T+PgaHDrgeA1tX+lwfhwSj60NX9QVRidsILIbRNDLD6nAzmcvVC5PWiIRiR4S1OobxdhCg==", + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.7.3.tgz", + "integrity": "sha512-60FJcdTRn0X5sELF18TANwtVi7FtModq649H11mYF1jh83DniMoM4MqY627sEKRCTm4+WXfGDcB7hY5oW6xhyw==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "2.x", "rc-motion": "^2.3.4", - "rc-util": "^5.2.1", - "shallowequal": "^1.1.0" + "rc-util": "^5.27.0" }, "peerDependencies": { "react": ">=16.9.0", @@ -6030,11 +7070,12 @@ } }, "node_modules/rc-dialog": { - "version": "8.9.0", - "resolved": "https://registry.npmmirror.com/rc-dialog/-/rc-dialog-8.9.0.tgz", - "integrity": "sha512-Cp0tbJnrvPchJfnwIvOMWmJ4yjX3HWFatO6oBFD1jx8QkgsQCR0p8nUWAKdd3seLJhEC39/v56kZaEjwp9muoQ==", + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.4.0.tgz", + "integrity": "sha512-AScCexaLACvf8KZRqCPz12BJ8olszXOS4lKlkMyzDQHS1m0zj1KZMYgmMCh39ee0Dcv8kyrj8mTqxuLyhH+QuQ==", "dependencies": { "@babel/runtime": "^7.10.1", + "@rc-component/portal": "^1.0.0-8", "classnames": "^2.2.6", "rc-motion": "^2.3.0", "rc-util": "^5.21.0" @@ -6045,14 +7086,15 @@ } }, "node_modules/rc-drawer": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/rc-drawer/-/rc-drawer-5.1.0.tgz", - "integrity": "sha512-pU3Tsn99pxGdYowXehzZbdDVE+4lDXSGb7p8vA9mSmr569oc2Izh4Zw5vLKSe/Xxn2p5MSNbLVqD4tz+pK6SOw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.1.0.tgz", + "integrity": "sha512-nBE1rF5iZvpavoyqhSSz2mk/yANltA7g3aF0U45xkx381n3we/RKs9cJfNKp9mSWCedOKWt9FLEwZDaAaOGn2w==", "dependencies": { - "@babel/runtime": "^7.10.1", + "@babel/runtime": "^7.23.9", + "@rc-component/portal": "^1.1.1", "classnames": "^2.2.6", "rc-motion": "^2.6.1", - "rc-util": "^5.21.2" + "rc-util": "^5.38.1" }, "peerDependencies": { "react": ">=16.9.0", @@ -6060,13 +7102,13 @@ } }, "node_modules/rc-dropdown": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/rc-dropdown/-/rc-dropdown-4.0.1.tgz", - "integrity": "sha512-OdpXuOcme1rm45cR0Jzgfl1otzmU4vuBVb+etXM8vcaULGokAKVpKlw8p6xzspG7jGd/XxShvq+N3VNEfk/l5g==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.2.0.tgz", + "integrity": "sha512-odM8Ove+gSh0zU27DUj5cG1gNKg7mLWBYzB5E4nNLrLwBmYEgYP43vHKDGOVZcJSVElQBI0+jTQgjnq0NfLjng==", "dependencies": { "@babel/runtime": "^7.18.3", + "@rc-component/trigger": "^2.0.0", "classnames": "^2.2.6", - "rc-trigger": "^5.3.1", "rc-util": "^5.17.0" }, "peerDependencies": { @@ -6075,13 +7117,13 @@ } }, "node_modules/rc-field-form": { - "version": "1.27.1", - "resolved": "https://registry.npmmirror.com/rc-field-form/-/rc-field-form-1.27.1.tgz", - "integrity": "sha512-RShegnwFu6TH8tl2olCxn+B4Wyh5EiQH8c/7wucbkLNyue05YiH5gomUAg1vbZjp71yFKwegClctsEG5CNBWAA==", + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.44.0.tgz", + "integrity": "sha512-el7w87fyDUsca63Y/s8qJcq9kNkf/J5h+iTdqG5WsSHLH0e6Usl7QuYSmSVzJMgtp40mOVZIY/W/QP9zwrp1FA==", "dependencies": { "@babel/runtime": "^7.18.0", "async-validator": "^4.1.0", - "rc-util": "^5.8.0" + "rc-util": "^5.32.2" }, "engines": { "node": ">=8.x" @@ -6092,14 +7134,16 @@ } }, "node_modules/rc-image": { - "version": "5.7.1", - "resolved": "https://registry.npmmirror.com/rc-image/-/rc-image-5.7.1.tgz", - "integrity": "sha512-QyMfdhoUfb5W14plqXSisaYwpdstcLYnB0MjX5ccIK2rydQM9sDPuekQWu500DDGR2dBaIF5vx9XbWkNFK17Fg==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.6.0.tgz", + "integrity": "sha512-tL3Rvd1sS+frZQ01i+tkeUPaOeFz2iG9/scAt/Cfs0hyCRVA/w0Pu1J/JxIX8blalvmHE0bZQRYdOmRAzWu4Hg==", "dependencies": { "@babel/runtime": "^7.11.2", + "@rc-component/portal": "^1.0.2", "classnames": "^2.2.6", - "rc-dialog": "~8.9.0", - "rc-util": "^5.0.6" + "rc-dialog": "~9.4.0", + "rc-motion": "^2.6.2", + "rc-util": "^5.34.1" }, "peerDependencies": { "react": ">=16.9.0", @@ -6107,9 +7151,9 @@ } }, "node_modules/rc-input": { - "version": "0.0.1-alpha.7", - "resolved": "https://registry.npmmirror.com/rc-input/-/rc-input-0.0.1-alpha.7.tgz", - "integrity": "sha512-eozaqpCYWSY5LBMwlHgC01GArkVEP+XlJ84OMvdkwUnJBSv83Yxa15pZpn7vACAj84uDC4xOA2CoFdbLuqB08Q==", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.4.5.tgz", + "integrity": "sha512-AjzykhwnwYTRSwwgCu70CGKBIAv6bP2nqnFptnNTprph/TF1BAs0Qxl91mie/BR6n827WIJB6ZjaRf9iiMwAfw==", "dependencies": { "@babel/runtime": "^7.11.1", "classnames": "^2.2.1", @@ -6121,13 +7165,15 @@ } }, "node_modules/rc-input-number": { - "version": "7.3.6", - "resolved": "https://registry.npmmirror.com/rc-input-number/-/rc-input-number-7.3.6.tgz", - "integrity": "sha512-Se62oMOBn9HwF/gSag+YtAYyKZsjJzEsqmyAJHAnAvPfjZJOu7dLMlQRwBbTtELbKXM/Y5Fztcq8CW2Y9f49qA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-9.0.0.tgz", + "integrity": "sha512-RfcDBDdWFFetouWFXBA+WPEC8LzBXyngr9b+yTLVIygfFu7HiLRGn/s/v9wwno94X7KFvnb28FNynMGj9XJlDQ==", "dependencies": { "@babel/runtime": "^7.10.1", + "@rc-component/mini-decimal": "^1.0.1", "classnames": "^2.2.5", - "rc-util": "^5.23.0" + "rc-input": "~1.4.0", + "rc-util": "^5.28.0" }, "peerDependencies": { "react": ">=16.9.0", @@ -6135,16 +7181,17 @@ } }, "node_modules/rc-mentions": { - "version": "1.9.2", - "resolved": "https://registry.npmmirror.com/rc-mentions/-/rc-mentions-1.9.2.tgz", - "integrity": "sha512-uxb/lzNnEGmvraKWNGE6KXMVXvt8RQv9XW8R0Dqi3hYsyPiAZeHRCHQKdLARuk5YBhFhZ6ga55D/8XuY367g3g==", + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.11.1.tgz", + "integrity": "sha512-upb4AK1SRFql7qGnbLEvJqLMugVVIyjmwBJW9L0eLoN9po4JmJZaBzmKA4089fNtsU8k6l/tdZiVafyooeKnLw==", "dependencies": { - "@babel/runtime": "^7.10.1", + "@babel/runtime": "^7.22.5", + "@rc-component/trigger": "^2.0.0", "classnames": "^2.2.6", - "rc-menu": "~9.6.0", - "rc-textarea": "^0.3.0", - "rc-trigger": "^5.0.4", - "rc-util": "^5.22.5" + "rc-input": "~1.4.0", + "rc-menu": "~9.13.0", + "rc-textarea": "~1.6.1", + "rc-util": "^5.34.1" }, "peerDependencies": { "react": ">=16.9.0", @@ -6152,17 +7199,16 @@ } }, "node_modules/rc-menu": { - "version": "9.6.3", - "resolved": "https://registry.npmmirror.com/rc-menu/-/rc-menu-9.6.3.tgz", - "integrity": "sha512-KY9QilKWgkJZ0JSpOBgIpQF2wMRRodRxpIMYyIJ3Nd5N6xfVLOxXCxevHcBplt+Ez7MhUF+I03MuAKqWQJLZgw==", + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.13.0.tgz", + "integrity": "sha512-1l8ooCB3HcYJKCltC/s7OxRKRjgymdl9htrCeGZcXNaMct0RxZRK6OPV3lPhVksIvAGMgzPd54ClpZ5J4b8cZA==", "dependencies": { "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.0.0", "classnames": "2.x", "rc-motion": "^2.4.3", - "rc-overflow": "^1.2.0", - "rc-trigger": "^5.1.2", - "rc-util": "^5.12.0", - "shallowequal": "^1.1.0" + "rc-overflow": "^1.3.1", + "rc-util": "^5.27.0" }, "peerDependencies": { "react": ">=16.9.0", @@ -6170,9 +7216,9 @@ } }, "node_modules/rc-motion": { - "version": "2.6.2", - "resolved": "https://registry.npmmirror.com/rc-motion/-/rc-motion-2.6.2.tgz", - "integrity": "sha512-4w1FaX3dtV749P8GwfS4fYnFG4Rb9pxvCYPc/b2fw1cmlHJWNNgOFIz7ysiD+eOrzJSvnLJWlNQQncpNMXwwpg==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.0.tgz", + "integrity": "sha512-XIU2+xLkdIr1/h6ohPZXyPBMvOmuyFZQ/T0xnawz+Rh+gh4FINcnZmMT5UTIj6hgI0VLDjTaPeRd+smJeSPqiQ==", "dependencies": { "@babel/runtime": "^7.11.1", "classnames": "^2.2.1", @@ -6184,13 +7230,13 @@ } }, "node_modules/rc-notification": { - "version": "4.6.0", - "resolved": "https://registry.npmmirror.com/rc-notification/-/rc-notification-4.6.0.tgz", - "integrity": "sha512-xF3MKgIoynzjQAO4lqsoraiFo3UXNYlBfpHs0VWvwF+4pimen9/H1DYLN2mfRWhHovW6gRpla73m2nmyIqAMZQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.4.0.tgz", + "integrity": "sha512-li19y9RoYJciF3WRFvD+DvWS70jdL8Fr+Gfb/OshK+iY6iTkwzoigmSIp76/kWh5tF5i/i9im12X3nsF85GYdA==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "2.x", - "rc-motion": "^2.2.0", + "rc-motion": "^2.9.0", "rc-util": "^5.20.1" }, "engines": { @@ -6202,14 +7248,14 @@ } }, "node_modules/rc-overflow": { - "version": "1.2.8", - "resolved": "https://registry.npmmirror.com/rc-overflow/-/rc-overflow-1.2.8.tgz", - "integrity": "sha512-QJ0UItckWPQ37ZL1dMEBAdY1dhfTXFL9k6oTTcyydVwoUNMnMqCGqnRNA98axSr/OeDKqR6DVFyi8eA5RQI/uQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.3.2.tgz", + "integrity": "sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==", "dependencies": { "@babel/runtime": "^7.11.1", "classnames": "^2.2.1", "rc-resize-observer": "^1.0.0", - "rc-util": "^5.19.2" + "rc-util": "^5.37.0" }, "peerDependencies": { "react": ">=16.9.0", @@ -6217,12 +7263,13 @@ } }, "node_modules/rc-pagination": { - "version": "3.1.17", - "resolved": "https://registry.npmmirror.com/rc-pagination/-/rc-pagination-3.1.17.tgz", - "integrity": "sha512-/BQ5UxcBnW28vFAcP2hfh+Xg15W0QZn8TWYwdCApchMH1H0CxiaUUcULP8uXcFM1TygcdKWdt3JqsL9cTAfdkQ==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-4.0.4.tgz", + "integrity": "sha512-GGrLT4NgG6wgJpT/hHIpL9nELv27A1XbSZzECIuQBQTVSf4xGKxWr6I/jhpRPauYEWEbWVw22ObG6tJQqwJqWQ==", "dependencies": { "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1" + "classnames": "^2.3.2", + "rc-util": "^5.38.0" }, "peerDependencies": { "react": ">=16.9.0", @@ -6230,31 +7277,47 @@ } }, "node_modules/rc-picker": { - "version": "2.6.10", - "resolved": "https://registry.npmmirror.com/rc-picker/-/rc-picker-2.6.10.tgz", - "integrity": "sha512-9wYtw0DFWs9FO92Qh2D76P0iojUr8ZhLOtScUeOit6ks/F+TBLrOC1uze3IOu+u9gbDAjmosNWLKbBzx/Yuv2w==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.3.2.tgz", + "integrity": "sha512-2NtobLxG2YqllXn4YczbupgIH6PSqzjCfFCnGlgPIY9k0HZti8WmBPjS1OD9JKQl+Tdg0pMVUeTEc07y4X9ZRQ==", "dependencies": { "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.0.0", "classnames": "^2.2.1", - "date-fns": "2.x", - "dayjs": "1.x", - "moment": "^2.24.0", - "rc-trigger": "^5.0.4", - "rc-util": "^5.4.0", - "shallowequal": "^1.1.0" + "rc-overflow": "^1.3.2", + "rc-resize-observer": "^1.4.0", + "rc-util": "^5.38.1" }, "engines": { "node": ">=8.x" }, "peerDependencies": { + "date-fns": ">= 2.x", + "dayjs": ">= 1.x", + "luxon": ">= 3.x", + "moment": ">= 2.x", "react": ">=16.9.0", "react-dom": ">=16.9.0" + }, + "peerDependenciesMeta": { + "date-fns": { + "optional": true + }, + "dayjs": { + "optional": true + }, + "luxon": { + "optional": true + }, + "moment": { + "optional": true + } } }, "node_modules/rc-progress": { - "version": "3.3.3", - "resolved": "https://registry.npmmirror.com/rc-progress/-/rc-progress-3.3.3.tgz", - "integrity": "sha512-MDVNVHzGanYtRy2KKraEaWeZLri2ZHWIRyaE1a9MQ2MuJ09m+Wxj5cfcaoaR6z5iRpHpA59YeUxAlpML8N4PJw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-4.0.0.tgz", + "integrity": "sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.6", @@ -6266,9 +7329,9 @@ } }, "node_modules/rc-rate": { - "version": "2.9.2", - "resolved": "https://registry.npmmirror.com/rc-rate/-/rc-rate-2.9.2.tgz", - "integrity": "sha512-SaiZFyN8pe0Fgphv8t3+kidlej+cq/EALkAJAc3A0w0XcPaH2L1aggM8bhe1u6GAGuQNAoFvTLjw4qLPGRKV5g==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.12.0.tgz", + "integrity": "sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.5", @@ -6283,13 +7346,13 @@ } }, "node_modules/rc-resize-observer": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/rc-resize-observer/-/rc-resize-observer-1.2.0.tgz", - "integrity": "sha512-6W+UzT3PyDM0wVCEHfoW3qTHPTvbdSgiA43buiy8PzmeMnfgnDeb9NjdimMXMl3/TcrvvWl5RRVdp+NqcR47pQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.4.0.tgz", + "integrity": "sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==", "dependencies": { - "@babel/runtime": "^7.10.1", + "@babel/runtime": "^7.20.7", "classnames": "^2.2.1", - "rc-util": "^5.15.0", + "rc-util": "^5.38.0", "resize-observer-polyfill": "^1.5.1" }, "peerDependencies": { @@ -6298,9 +7361,9 @@ } }, "node_modules/rc-segmented": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/rc-segmented/-/rc-segmented-2.1.0.tgz", - "integrity": "sha512-hUlonro+pYoZcwrH6Vm56B2ftLfQh046hrwif/VwLIw1j3zGt52p5mREBwmeVzXnSwgnagpOpfafspzs1asjGw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.3.0.tgz", + "integrity": "sha512-I3FtM5Smua/ESXutFfb8gJ8ZPcvFR+qUgeeGFQHBOvRiRKyAk4aBE5nfqrxXx+h8/vn60DQjOt6i4RNtrbOobg==", "dependencies": { "@babel/runtime": "^7.11.1", "classnames": "^2.2.1", @@ -6313,17 +7376,17 @@ } }, "node_modules/rc-select": { - "version": "14.1.9", - "resolved": "https://registry.npmmirror.com/rc-select/-/rc-select-14.1.9.tgz", - "integrity": "sha512-DK01+Q7oCWr5jVPiEp/BTQ8xCB4rI4LfXzZtSmBWJhOMuibyZD1Vlz/DlVKCUFmtBM4SzG4/SltGHoGlcbCqiw==", + "version": "14.13.1", + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.13.1.tgz", + "integrity": "sha512-A1VHqjIOemxLnUGRxLGVqXBs8jGcJemI5NXxOJwU5PQc1wigAu1T4PRLgMkTPDOz8gPhlY9dwsPzMgakMc2QjQ==", "dependencies": { "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.1.1", "classnames": "2.x", "rc-motion": "^2.0.1", - "rc-overflow": "^1.0.0", - "rc-trigger": "^5.0.4", + "rc-overflow": "^1.3.1", "rc-util": "^5.16.1", - "rc-virtual-list": "^3.2.0" + "rc-virtual-list": "^3.5.2" }, "engines": { "node": ">=8.x" @@ -6334,14 +7397,13 @@ } }, "node_modules/rc-slider": { - "version": "10.0.1", - "resolved": "https://registry.npmmirror.com/rc-slider/-/rc-slider-10.0.1.tgz", - "integrity": "sha512-igTKF3zBet7oS/3yNiIlmU8KnZ45npmrmHlUUio8PNbIhzMcsh+oE/r2UD42Y6YD2D/s+kzCQkzQrPD6RY435Q==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-10.5.0.tgz", + "integrity": "sha512-xiYght50cvoODZYI43v3Ylsqiw14+D7ELsgzR40boDZaya1HFa1Etnv9MDkQE8X/UrXAffwv2AcNAhslgYuDTw==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.5", - "rc-util": "^5.18.1", - "shallowequal": "^1.1.0" + "rc-util": "^5.27.0" }, "engines": { "node": ">=8.x" @@ -6352,13 +7414,13 @@ } }, "node_modules/rc-steps": { - "version": "4.1.4", - "resolved": "https://registry.npmmirror.com/rc-steps/-/rc-steps-4.1.4.tgz", - "integrity": "sha512-qoCqKZWSpkh/b03ASGx1WhpKnuZcRWmvuW+ZUu4mvMdfvFzVxblTwUM+9aBd0mlEUFmt6GW8FXhMpHkK3Uzp3w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-6.0.1.tgz", + "integrity": "sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==", "dependencies": { - "@babel/runtime": "^7.10.2", + "@babel/runtime": "^7.16.7", "classnames": "^2.2.3", - "rc-util": "^5.0.1" + "rc-util": "^5.16.1" }, "engines": { "node": ">=8.x" @@ -6369,13 +7431,13 @@ } }, "node_modules/rc-switch": { - "version": "3.2.2", - "resolved": "https://registry.npmmirror.com/rc-switch/-/rc-switch-3.2.2.tgz", - "integrity": "sha512-+gUJClsZZzvAHGy1vZfnwySxj+MjLlGRyXKXScrtCTcmiYNPzxDFOxdQ/3pK1Kt/0POvwJ/6ALOR8gwdXGhs+A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-4.1.0.tgz", + "integrity": "sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==", "dependencies": { - "@babel/runtime": "^7.10.1", + "@babel/runtime": "^7.21.0", "classnames": "^2.2.1", - "rc-util": "^5.0.1" + "rc-util": "^5.30.0" }, "peerDependencies": { "react": ">=16.9.0", @@ -6383,15 +7445,16 @@ } }, "node_modules/rc-table": { - "version": "7.25.3", - "resolved": "https://registry.npmmirror.com/rc-table/-/rc-table-7.25.3.tgz", - "integrity": "sha512-McsLJ2rg8EEpRBRYN4Pf9gT7ZNYnjvF9zrBpUBBbUX/fxk+eGi5ff1iPIhMyiHsH71/BmTUzX9nc9XqupD0nMg==", + "version": "7.45.4", + "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.45.4.tgz", + "integrity": "sha512-6aSbGrnkN2GLSt3s1x+wa4f3j/VEgg1uKPpaLY5qHH1/nFyreS2V7DFJ0TfUb18allf2FQl7oVYEjTixlBXEyQ==", "dependencies": { "@babel/runtime": "^7.10.1", + "@rc-component/context": "^1.4.0", "classnames": "^2.2.5", "rc-resize-observer": "^1.1.0", - "rc-util": "^5.22.5", - "shallowequal": "^1.1.0" + "rc-util": "^5.37.0", + "rc-virtual-list": "^3.11.1" }, "engines": { "node": ">=8.x" @@ -6402,16 +7465,17 @@ } }, "node_modules/rc-tabs": { - "version": "11.16.1", - "resolved": "https://registry.npmmirror.com/rc-tabs/-/rc-tabs-11.16.1.tgz", - "integrity": "sha512-bR7Dap23YyfzZQwtKomhiFEFzZuE7WaKWo+ypNRSGB9PDKSc6tM12VP8LWYkvmmQHthgwP0WRN8nFbSJWuqLYw==", + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-14.1.1.tgz", + "integrity": "sha512-5nOr9PVpJy2SWHTLgv1+kESDOb0tFzl0cYU9r9d8LfL0Wg9i/n1B558rmkxdQHgBwMqxmwoyPSAbQROxMQe8nw==", "dependencies": { "@babel/runtime": "^7.11.2", "classnames": "2.x", - "rc-dropdown": "~4.0.0", - "rc-menu": "~9.6.0", + "rc-dropdown": "~4.2.0", + "rc-menu": "~9.13.0", + "rc-motion": "^2.6.2", "rc-resize-observer": "^1.0.0", - "rc-util": "^5.5.0" + "rc-util": "^5.34.1" }, "engines": { "node": ">=8.x" @@ -6422,15 +7486,15 @@ } }, "node_modules/rc-textarea": { - "version": "0.3.7", - "resolved": "https://registry.npmmirror.com/rc-textarea/-/rc-textarea-0.3.7.tgz", - "integrity": "sha512-yCdZ6binKmAQB13hc/oehh0E/QRwoPP1pjF21aHBxlgXO3RzPF6dUu4LG2R4FZ1zx/fQd2L1faktulrXOM/2rw==", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.6.3.tgz", + "integrity": "sha512-8k7+8Y2GJ/cQLiClFMg8kUXOOdvcFQrnGeSchOvI2ZMIVvX5a3zQpLxoODL0HTrvU63fPkRmMuqaEcOF9dQemA==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.1", + "rc-input": "~1.4.0", "rc-resize-observer": "^1.0.0", - "rc-util": "^5.7.0", - "shallowequal": "^1.1.0" + "rc-util": "^5.27.0" }, "peerDependencies": { "react": ">=16.9.0", @@ -6438,13 +7502,13 @@ } }, "node_modules/rc-tooltip": { - "version": "5.2.2", - "resolved": "https://registry.npmmirror.com/rc-tooltip/-/rc-tooltip-5.2.2.tgz", - "integrity": "sha512-jtQzU/18S6EI3lhSGoDYhPqNpWajMtS5VV/ld1LwyfrDByQpYmw/LW6U7oFXXLukjfDHQ7Ju705A82PRNFWYhg==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.2.0.tgz", + "integrity": "sha512-iS/3iOAvtDh9GIx1ulY7EFUXUtktFccNLsARo3NPgLf0QW9oT0w3dA9cYWlhqAKmD+uriEwdWz1kH0Qs4zk2Aw==", "dependencies": { "@babel/runtime": "^7.11.2", - "classnames": "^2.3.1", - "rc-trigger": "^5.0.0" + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.1" }, "peerDependencies": { "react": ">=16.9.0", @@ -6452,15 +7516,15 @@ } }, "node_modules/rc-tree": { - "version": "5.6.6", - "resolved": "https://registry.npmmirror.com/rc-tree/-/rc-tree-5.6.6.tgz", - "integrity": "sha512-HI/q4D4AHOp48OZcBUvJFWkI5OfnZivvGYI0xzI0dy0Mita2KcTGZv7/Yl6Aq3bL3od3x5AqAXq/7qxR3x4Kkg==", + "version": "5.8.5", + "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.8.5.tgz", + "integrity": "sha512-PRfcZtVDNkR7oh26RuNe1hpw11c1wfgzwmPFL0lnxGnYefe9lDAO6cg5wJKIAwyXFVt5zHgpjYmaz0CPy1ZtKg==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "2.x", "rc-motion": "^2.0.1", "rc-util": "^5.16.1", - "rc-virtual-list": "^3.4.8" + "rc-virtual-list": "^3.5.1" }, "engines": { "node": ">=10.x" @@ -6471,14 +7535,14 @@ } }, "node_modules/rc-tree-select": { - "version": "5.4.1", - "resolved": "https://registry.npmmirror.com/rc-tree-select/-/rc-tree-select-5.4.1.tgz", - "integrity": "sha512-xhXnKP8Stu2Q7wTcjJaSzSOLd4wmFtUZOwmy1cioaWyPbpiKlYdnALXA/9U49HOaV3KFXdRHE9Yi0KYED7yOAQ==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.19.0.tgz", + "integrity": "sha512-f4l5EsmSGF3ggj76YTzKNPY9SnXfFaer7ZccTSGb3urUf54L+cCqyT+UsPr+S5TAr8mZSxJ7g3CgkCe+cVQ6sw==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "2.x", - "rc-select": "~14.1.0", - "rc-tree": "~5.6.1", + "rc-select": "~14.13.0", + "rc-tree": "~5.8.1", "rc-util": "^5.16.1" }, "peerDependencies": { @@ -6486,29 +7550,10 @@ "react-dom": "*" } }, - "node_modules/rc-trigger": { - "version": "5.3.1", - "resolved": "https://registry.npmmirror.com/rc-trigger/-/rc-trigger-5.3.1.tgz", - "integrity": "sha512-5gaFbDkYSefZ14j2AdzucXzlWgU2ri5uEjkHvsf1ynRhdJbKxNOnw4PBZ9+FVULNGFiDzzlVF8RJnR9P/xrnKQ==", - "dependencies": { - "@babel/runtime": "^7.18.3", - "classnames": "^2.2.6", - "rc-align": "^4.0.0", - "rc-motion": "^2.0.0", - "rc-util": "^5.19.2" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, "node_modules/rc-upload": { - "version": "4.3.4", - "resolved": "https://registry.npmmirror.com/rc-upload/-/rc-upload-4.3.4.tgz", - "integrity": "sha512-uVbtHFGNjHG/RyAfm9fluXB6pvArAGyAx8z7XzXXyorEgVIWj6mOlriuDm0XowDHYz4ycNK0nE0oP3cbFnzxiQ==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.5.2.tgz", + "integrity": "sha512-QO3ne77DwnAPKFn0bA5qJM81QBjQi0e0NHdkvpFyY73Bea2NfITiotqJqVjHgeYPOJu5lLVR32TNGP084aSoXA==", "dependencies": { "@babel/runtime": "^7.18.3", "classnames": "^2.2.5", @@ -6520,117 +7565,156 @@ } }, "node_modules/rc-util": { - "version": "5.23.0", - "resolved": "https://registry.npmmirror.com/rc-util/-/rc-util-5.23.0.tgz", - "integrity": "sha512-lgm6diJ/pLgyfoZY59Vz7sW4mSoQCgozqbBye9IJ7/mb5w5h4T7h+i2JpXAx/UBQxscBZe68q0sP7EW+qfkKUg==", + "version": "5.39.1", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.39.1.tgz", + "integrity": "sha512-OW/ERynNDgNr4y0oiFmtes3rbEamXw7GHGbkbNd9iRr7kgT03T6fT0b9WpJ3mbxKhyOcAHnGcIoh5u/cjrC2OQ==", "dependencies": { "@babel/runtime": "^7.18.3", - "react-is": "^16.12.0", - "shallowequal": "^1.1.0" + "react-is": "^18.2.0" }, "peerDependencies": { "react": ">=16.9.0", "react-dom": ">=16.9.0" } }, + "node_modules/rc-util/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, "node_modules/rc-virtual-list": { - "version": "3.4.8", - "resolved": "https://registry.npmmirror.com/rc-virtual-list/-/rc-virtual-list-3.4.8.tgz", - "integrity": "sha512-qSN+Rv4i/E7RCTvTMr1uZo7f3crJJg/5DekoCagydo9zsXrxj07zsFSxqizqW+ldGA16lwa8So/bIbV9Ofjddg==", + "version": "3.11.4", + "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.11.4.tgz", + "integrity": "sha512-NbBi0fvyIu26gP69nQBiWgUMTPX3mr4FcuBQiVqagU0BnuX8WQkiivnMs105JROeuUIFczLrlgUhLQwTWV1XDA==", "dependencies": { + "@babel/runtime": "^7.20.0", "classnames": "^2.2.6", "rc-resize-observer": "^1.0.0", - "rc-util": "^5.15.0" + "rc-util": "^5.36.0" }, "engines": { "node": ">=8.x" }, "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/rcedit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-3.1.0.tgz", - "integrity": "sha512-WRlRdY1qZbu1L11DklT07KuHfRk42l0NFFJdaExELEu4fEQ982bP5Z6OWGPj/wLLIuKRQDCxZJGAwoFsxhZhNA==", - "dev": true, - "dependencies": { - "cross-spawn-windows-exe": "^1.1.0" - }, - "engines": { - "node": ">= 10.0.0" + "react": ">=16.9.0", + "react-dom": ">=16.9.0" } }, "node_modules/react": { - "version": "16.14.0", - "resolved": "https://registry.npmmirror.com/react/-/react-16.14.0.tgz", - "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" + "loose-envify": "^1.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/react-confirm-alert": { - "version": "2.8.0", - "resolved": "https://registry.npmmirror.com/react-confirm-alert/-/react-confirm-alert-2.8.0.tgz", - "integrity": "sha512-qvNjJWuWUpTh+q4NecUjCMIWLNDl8IwW6JRIky5pzoiFBXsLWSA2Z1VsaDsQedwgyxEpKnMEJFETkDogBpv/kA==", - "peerDependencies": { - "react": ">=16.0.0", - "react-dom": ">=16.0.0" - } - }, "node_modules/react-dom": { - "version": "16.14.0", - "resolved": "https://registry.npmmirror.com/react-dom/-/react-dom-16.14.0.tgz", - "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", "dependencies": { "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" + "scheduler": "^0.23.0" }, "peerDependencies": { - "react": "^16.14.0" + "react": "^18.2.0" } }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" }, - "node_modules/react-markdown": { - "version": "5.0.3", - "resolved": "https://registry.npmmirror.com/react-markdown/-/react-markdown-5.0.3.tgz", - "integrity": "sha512-jDWOc1AvWn0WahpjW6NK64mtx6cwjM4iSsLHJPNBqoAgGOVoIdJMqaKX4++plhOtdd4JksdqzlDibgPx6B/M2w==", + "node_modules/react-hotkeys-hook": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/react-hotkeys-hook/-/react-hotkeys-hook-4.5.0.tgz", + "integrity": "sha512-Samb85GSgAWFQNvVt3PS90LPPGSf9mkH/r4au81ZP1yOIFayLC3QAvqTgGtJ8YEDMXtPmaVBs6NgipHO6h4Mug==", + "peerDependencies": { + "react": ">=16.8.1", + "react-dom": ">=16.8.1" + } + }, + "node_modules/react-i18next": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-14.1.0.tgz", + "integrity": "sha512-3KwX6LHpbvGQ+sBEntjV4sYW3Zovjjl3fpoHbUwSgFHf0uRBcbeCBLR5al6ikncI5+W0EFb71QXZmfop+J6NrQ==", "dependencies": { - "@types/mdast": "^3.0.3", - "@types/unist": "^2.0.3", - "html-to-react": "^1.3.4", - "mdast-add-list-metadata": "1.0.1", - "prop-types": "^15.7.2", - "react-is": "^16.8.6", - "remark-parse": "^9.0.0", - "unified": "^9.0.0", - "unist-util-visit": "^2.0.0", - "xtend": "^4.0.1" + "@babel/runtime": "^7.23.9", + "html-parse-stringify": "^3.0.1" }, "peerDependencies": { - "@types/react": ">=16", - "react": ">=16" + "i18next": ">= 23.2.3", + "react": ">= 16.8.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/react-icons": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.1.0.tgz", + "integrity": "sha512-D3zug1270S4hbSlIRJ0CUS97QE1yNNKDjzQe3HqY0aefp2CBn9VgzgES27sRR2gOvFK+0CNx/BW0ggOESp6fqQ==", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-markdown": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-9.0.1.tgz", + "integrity": "sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==", + "dependencies": { + "@types/hast": "^3.0.0", + "devlop": "^1.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "html-url-attributes": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "unified": "^11.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=18", + "react": ">=18" + } + }, + "node_modules/react-merge-refs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/react-merge-refs/-/react-merge-refs-2.1.1.tgz", + "integrity": "sha512-jLQXJ/URln51zskhgppGJ2ub7b2WFKGq3cl3NYKtlHoTG+dN2q7EzWrn3hN3EgPsTMvpR9tpq5ijdp7YwFZkag==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, "node_modules/read-config-file": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.3.2.tgz", - "integrity": "sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz", + "integrity": "sha512-gx7Pgr5I56JtYz+WuqEbQHj/xWo+5Vwua2jhb1VwM4Wid5PqYmZ4i00ZB0YEGIfkVBsCv9UrjgyqCiQfS/Oosg==", "dev": true, "dependencies": { - "config-file-ts": "^0.2.4", "dotenv": "^9.0.2", "dotenv-expand": "^5.1.0", "js-yaml": "^4.1.0", @@ -6641,131 +7725,65 @@ "node": ">=12.0.0" } }, - "node_modules/read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA==", + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "dependencies": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "picomatch": "^2.2.1" }, "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==", - "dev": true, - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ==", - "dev": true, - "dependencies": { - "pify": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/readdir-glob": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", - "dev": true, - "peer": true, - "dependencies": { - "minimatch": "^5.1.0" - } - }, - "node_modules/readdir-glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/readdir-glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "peer": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/rechoir": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", - "dev": true, - "dependencies": { - "resolve": "^1.20.0" - }, - "engines": { - "node": ">= 10.13.0" + "node": ">=8.10.0" } }, "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/regl": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/regl/-/regl-1.7.0.tgz", + "integrity": "sha512-bEAtp/qrtKucxXSJkD4ebopFZYP0q1+3Vb2WECWv/T8yQEgKxDxJ7ztO285tAMaYZVR6mM1GgI6CCn8FROtL1w==" }, "node_modules/remark-parse": { - "version": "9.0.0", - "resolved": "https://registry.npmmirror.com/remark-parse/-/remark-parse-9.0.0.tgz", - "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", "dependencies": { - "mdast-util-from-markdown": "^0.8.0" + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, + "node_modules/remark-rehype": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.0.tgz", + "integrity": "sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -6775,63 +7793,16 @@ "node": ">=0.10.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/resize-observer-polyfill": { "version": "1.5.1", "resolved": "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/resolve-alpn": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/responselike": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", @@ -6843,15 +7814,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -6866,6 +7828,7 @@ "version": "3.0.2", "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, "dependencies": { "glob": "^7.1.3" }, @@ -6890,6 +7853,22 @@ "node": ">=8.0" } }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -6913,25 +7892,14 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "optional": true, + "dependencies": { + "tslib": "^2.1.0" + } }, "node_modules/safer-buffer": { "version": "2.1.2", @@ -6941,59 +7909,66 @@ }, "node_modules/sanitize-filename": { "version": "1.6.3", - "resolved": "https://registry.npmmirror.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dev": true, "dependencies": { "truncate-utf8-bytes": "^1.0.0" } }, + "node_modules/sass": { + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.75.0.tgz", + "integrity": "sha512-ShMYi3WkrDWxExyxSZPst4/okE9ts46xZmJDSawJQrnte7M1V9fScVB+uNXOVKRBt0PggHOwoZcn8mYX4trnBw==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/sax": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", - "dev": true + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" }, "node_modules/scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "loose-envify": "^1.1.0" } }, - "node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, + "node_modules/screenfull": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/screenfull/-/screenfull-5.2.0.tgz", + "integrity": "sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==", "engines": { - "node": ">= 12.13.0" + "node": ">=0.10.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/scroll-into-view-if-needed": { - "version": "2.2.29", - "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.29.tgz", - "integrity": "sha512-hxpAR6AN+Gh53AdAimHM6C8oTN1ppwVZITihix+WqalywBeFcQ6LdQP5ABNl26nX8GTEL7VT+b8lKpdqq65wXg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", + "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", "dependencies": { - "compute-scroll-into-view": "^1.0.17" + "compute-scroll-into-view": "^3.0.2" } }, "node_modules/semver": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "devOptional": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -7025,32 +8000,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -7072,48 +8037,9 @@ "node": ">=8" } }, - "node_modules/shineout": { - "version": "1.10.15", - "resolved": "https://registry.npmmirror.com/shineout/-/shineout-1.10.15.tgz", - "integrity": "sha512-buC6v5i9dj/JKFAeR6v6dAwk8Rno0kE0IICb6BeTolR0L6YULI3nMMmKLRH69ytmPj6ZIIlRjt5CAOgN5UBpHg==", - "dependencies": { - "@babel/runtime": "^7.14.6", - "classnames": "^2.2.5", - "dayjs": "^1.10.7", - "deep-eql": "^4.0.0", - "immer": "^4.0.0" - }, - "peerDependencies": { - "prop-types": "^15.6.0", - "react": ">=16.0.0", - "react-dom": ">=16.0.0" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/simple-swizzle": { "version": "0.2.2", - "resolved": "https://registry.npmmirror.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", "dependencies": { "is-arrayish": "^0.3.1" @@ -7121,31 +8047,28 @@ }, "node_modules/simple-swizzle/node_modules/is-arrayish": { "version": "0.3.2", - "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.3.2.tgz", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" }, "node_modules/simple-update-notifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", - "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", + "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", "dev": true, "dependencies": { - "semver": "^7.5.3" + "semver": "~7.0.0" }, "engines": { - "node": ">=10" + "node": ">=8.10.0" } }, - "node_modules/slash": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "semver": "bin/semver.js" } }, "node_modules/slice-ansi": { @@ -7192,26 +8115,6 @@ "node": ">=0.10.0" } }, - "node_modules/source-map-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-5.0.0.tgz", - "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==", - "dev": true, - "dependencies": { - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.72.1" - } - }, "node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", @@ -7222,38 +8125,15 @@ "source-map": "^0.6.0" } }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", - "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", - "dev": true - }, "node_modules/sprintf-js": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", @@ -7269,22 +8149,9 @@ "node": ">= 6" } }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, "node_modules/string-convert": { "version": "0.2.1", - "resolved": "https://registry.npmmirror.com/string-convert/-/string-convert-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==" }, "node_modules/string-width": { @@ -7301,19 +8168,17 @@ "node": ">=8" } }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" }, - "engines": { - "node": ">=8" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, "node_modules/strip-ansi": { @@ -7328,65 +8193,31 @@ "node": ">=8" } }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, "engines": { "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-outer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", - "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-outer/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/style-loader": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", - "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", - "dev": true, - "engines": { - "node": ">= 12.13.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" + "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/style-to-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.6.tgz", + "integrity": "sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA==", + "dependencies": { + "inline-style-parser": "0.2.3" + } + }, + "node_modules/stylis": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.1.tgz", + "integrity": "sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==" + }, "node_modules/sumchecker": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", @@ -7398,67 +8229,10 @@ "node": ">= 8.0" } }, - "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/sync-request": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/sync-request/-/sync-request-6.1.0.tgz", - "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", - "dependencies": { - "http-response-object": "^3.0.1", - "sync-rpc": "^1.2.1", - "then-request": "^6.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/sync-rpc": { - "version": "1.3.6", - "resolved": "https://registry.npmmirror.com/sync-rpc/-/sync-rpc-1.3.6.tgz", - "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", - "dependencies": { - "get-port": "^3.1.0" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dev": true, "dependencies": { "chownr": "^2.0.0", @@ -7472,36 +8246,16 @@ "node": ">=10" } }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, - "peer": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" + "bin": { + "mkdirp": "bin/cmd.js" }, "engines": { - "node": ">=6" - } - }, - "node_modules/tar-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "node": ">=10" } }, "node_modules/temp-file": { @@ -7567,135 +8321,24 @@ "node": ">=10" } }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, + "node_modules/throttle-debounce": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.0.tgz", + "integrity": "sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==", "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/then-request": { - "version": "6.0.2", - "resolved": "https://registry.npmmirror.com/then-request/-/then-request-6.0.2.tgz", - "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", - "dependencies": { - "@types/concat-stream": "^1.6.0", - "@types/form-data": "0.0.33", - "@types/node": "^8.0.0", - "@types/qs": "^6.2.31", - "caseless": "~0.12.0", - "concat-stream": "^1.6.0", - "form-data": "^2.2.0", - "http-basic": "^8.1.1", - "http-response-object": "^3.0.1", - "promise": "^8.0.0", - "qs": "^6.4.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/then-request/node_modules/@types/node": { - "version": "8.10.66", - "resolved": "https://registry.npmmirror.com/@types/node/-/node-8.10.66.tgz", - "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" - }, - "node_modules/then-request/node_modules/form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmmirror.com/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" + "node": ">=12.22" } }, "node_modules/tinycolor2": { - "version": "1.4.2", - "resolved": "https://registry.npmmirror.com/tinycolor2/-/tinycolor2-1.4.2.tgz", - "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==", - "engines": { - "node": "*" - } + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", + "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" }, "node_modules/tmp": { "version": "0.2.3", @@ -7715,6 +8358,15 @@ "tmp": "^0.2.0" } }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -7729,83 +8381,73 @@ }, "node_modules/toggle-selection": { "version": "1.0.6", - "resolved": "https://registry.npmmirror.com/toggle-selection/-/toggle-selection-1.0.6.tgz", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" }, - "node_modules/trim-repeated": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", - "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.2" - }, - "engines": { - "node": ">=0.10.0" - } + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, - "node_modules/trim-repeated/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, "node_modules/trough": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, "node_modules/truncate-utf8-bytes": { "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "dev": true, "dependencies": { "utf8-byte-length": "^1.0.1" } }, - "node_modules/ts-loader": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", - "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "enhanced-resolve": "^5.0.0", - "micromatch": "^4.0.0", - "semver": "^7.3.4", - "source-map": "^0.7.4" - }, "engines": { - "node": ">=12.0.0" + "node": ">=16" }, "peerDependencies": { - "typescript": "*", - "webpack": "^5.0.0" + "typescript": ">=4.2.0" } }, - "node_modules/ts-loader/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "engines": { - "node": ">= 8" - } + "node_modules/ts-key-enum": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/ts-key-enum/-/ts-key-enum-2.0.12.tgz", + "integrity": "sha512-Ety4IvKMaeG34AyXMp5r11XiVZNDRL+XWxXbVVJjLvq2vxKRttEANBE7Za1bxCAZRdH2/sZT6jFyyTWxXz28hw==" }, "node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, "engines": { - "node": ">=4" + "node": ">= 0.8.0" } }, "node_modules/type-fest": { @@ -7820,10 +8462,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + "node_modules/typed-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/typed-emitter/-/typed-emitter-2.1.0.tgz", + "integrity": "sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==", + "optionalDependencies": { + "rxjs": "*" + } }, "node_modules/typescript": { "version": "5.4.2", @@ -7843,66 +8488,98 @@ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" }, - "node_modules/unicorn-magic": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", - "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", - "dev": true, - "engines": { - "node": ">=18" + "node_modules/unified": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", + "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/unified": { - "version": "9.2.2", - "resolved": "https://registry.npmmirror.com/unified/-/unified-9.2.2.tgz", - "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", - "dependencies": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==" + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", + "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, "node_modules/unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", "dependencies": { - "@types/unist": "^2.0.2" + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-visit": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-visit-parents": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz", - "integrity": "sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q==" - }, - "node_modules/unist-util-visit/node_modules/unist-util-visit-parents": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, "node_modules/universalify": { @@ -7913,6 +8590,30 @@ "node": ">= 4.0.0" } }, + "node_modules/unixify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz", + "integrity": "sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==", + "dev": true, + "dependencies": { + "normalize-path": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unixify/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/update-browserslist-db": { "version": "1.0.13", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", @@ -7952,25 +8653,45 @@ "punycode": "^2.1.0" } }, + "node_modules/use-force-update": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/use-force-update/-/use-force-update-1.0.11.tgz", + "integrity": "sha512-h4SICYgTJHon8w9dFIqdqR1Vrzdgl4YaRfRwhmAh01kBGljzTICanyfaFU8C4etuEfRdYpE+04XX2ZrEhOWKXQ==", + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/CharlesStover" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/usehooks-ts": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/usehooks-ts/-/usehooks-ts-3.1.0.tgz", + "integrity": "sha512-bBIa7yUyPhE1BCc0GmR96VU/15l/9gP1Ch5mYdLcFBaFGQsdmXkvjV0TtOqW1yUd6VjIwDunm+flSciCQXujiw==", + "dependencies": { + "lodash.debounce": "^4.0.8" + }, + "engines": { + "node": ">=16.15.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18" + } + }, "node_modules/utf8-byte-length": { "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", - "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==" - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==", + "dev": true }, "node_modules/verror": { "version": "1.10.1", @@ -7995,218 +8716,160 @@ "optional": true }, "node_modules/vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmmirror.com/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", + "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, "node_modules/vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - } - }, - "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dev": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/web-streams-polyfill": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", - "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/webpack": { - "version": "5.90.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", - "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", - "dev": true, - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.21.10", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vite": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz", + "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" }, "peerDependenciesMeta": { - "webpack-cli": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { "optional": true } } }, - "node_modules/webpack-cli": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", - "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", + "node_modules/vite-electron-plugin": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/vite-electron-plugin/-/vite-electron-plugin-0.8.3.tgz", + "integrity": "sha512-3F0xdYO0oIOTNUduV1Lows6P+tq2dtnjN0d/AwCnzbL8MynSzDX9HQpilur7C2VP6zRA3Gu/Uxdhg/IKZP3blA==", "dev": true, "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^2.1.1", - "@webpack-cli/info": "^2.0.2", - "@webpack-cli/serve": "^2.0.5", - "colorette": "^2.0.14", - "commander": "^10.0.1", - "cross-spawn": "^7.0.3", - "envinfo": "^7.7.3", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^3.1.1", - "rechoir": "^0.8.0", - "webpack-merge": "^5.7.3" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "fast-glob": "^3.2.12", + "notbundle": "~0.4.0", + "vite-plugin-electron": "~0.14.1" }, "peerDependencies": { - "webpack": "5.x.x" + "acorn": "*", + "esbuild": "*" }, "peerDependenciesMeta": { - "@webpack-cli/generators": { + "acorn": { "optional": true }, - "webpack-bundle-analyzer": { - "optional": true - }, - "webpack-dev-server": { + "esbuild": { "optional": true } } }, - "node_modules/webpack-cli/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "node_modules/vite-electron-plugin/node_modules/vite-plugin-electron": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/vite-plugin-electron/-/vite-plugin-electron-0.14.1.tgz", + "integrity": "sha512-QGQ2nJ4wjMf1FaDSkdoC/UskQGiYGcAToATJqJXvqrL4Jmt0CFaZqoDjh1xLicUWEo/X7urHYjhKTqwEeP7F7g==", "dev": true, "peerDependencies": { - "ajv": "^6.9.1" + "vite-plugin-electron-renderer": "*" + }, + "peerDependenciesMeta": { + "vite-plugin-electron-renderer": { + "optional": true + } } }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "node_modules/vite-plugin-electron": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/vite-plugin-electron/-/vite-plugin-electron-0.11.2.tgz", + "integrity": "sha512-umQRmSuA80JVxKB3PfO55o8mFTrW+sEtu7kZ5TYKAnkuYpKw7qgxl4f/65gp8x5BGHJjYh/iIRIE26x3Xqc4mQ==", "dev": true }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "node_modules/vite-plugin-electron-renderer": { + "version": "0.13.14", + "resolved": "https://registry.npmjs.org/vite-plugin-electron-renderer/-/vite-plugin-electron-renderer-0.13.14.tgz", + "integrity": "sha512-H1vktJILT+e+bK9P47DQl/UKev+AqLRC+09nhlJju1dpXxB78rRYSsU4UxpCcbJB/yhBvVMcQcRYQqfmxxHMHQ==", "dev": true, + "hasInstallScript": true, "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, + "lib-esm": "~0.3.0" + } + }, + "node_modules/void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": ">=0.10.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, "node_modules/which": { @@ -8224,12 +8887,6 @@ "node": ">= 8" } }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true - }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -8247,24 +8904,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", @@ -8279,14 +8918,6 @@ "node": ">=8.0" } }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -8299,8 +8930,7 @@ "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "devOptional": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yargs": { "version": "17.7.2", @@ -8338,100 +8968,135 @@ "fd-slicer": "~1.1.0" } }, - "node_modules/zip-stream": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", - "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, - "peer": true, - "dependencies": { - "archiver-utils": "^3.0.4", - "compress-commons": "^4.1.2", - "readable-stream": "^3.6.0" - }, "engines": { - "node": ">= 10" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/zip-stream/node_modules/archiver-utils": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", - "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", - "dev": true, - "peer": true, + "node_modules/zustand": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.2.tgz", + "integrity": "sha512-2cN1tPkDVkwCy5ickKrI7vijSjPksFRfqS6237NzT0vqSsztTNnQdHw9mmN7uBdk3gceVXU0a+21jFzFzAc9+g==", "dependencies": { - "glob": "^7.2.3", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" + "use-sync-external-store": "1.2.0" }, "engines": { - "node": ">= 10" + "node": ">=12.7.0" + }, + "peerDependencies": { + "@types/react": ">=16.8", + "immer": ">=9.0.6", + "react": ">=16.8" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + } } }, - "node_modules/zip-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } } }, "dependencies": { - "@ant-design/colors": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/@ant-design/colors/-/colors-6.0.0.tgz", - "integrity": "sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==", + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true + }, + "@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, "requires": { - "@ctrl/tinycolor": "^3.4.0" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@ant-design/colors": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.0.2.tgz", + "integrity": "sha512-7KJkhTiPiLHSu+LmMJnehfJ6242OCxSlR3xHVBecYxnMW8MS/878NXct1GqYARyL59fyeFdKRxXTfvR9SnDgJg==", + "requires": { + "@ctrl/tinycolor": "^3.6.1" + } + }, + "@ant-design/cssinjs": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.19.1.tgz", + "integrity": "sha512-hgQ3wiys3X0sqDKWkqCJ6EYdF79i9JCvtavmIGwuuPUKmoJXV8Ff0sY+yQQSxk2dRmMyam/bYKo/Bwor45hnZw==", + "requires": { + "@babel/runtime": "^7.11.1", + "@emotion/hash": "^0.8.0", + "@emotion/unitless": "^0.7.5", + "classnames": "^2.3.1", + "csstype": "^3.1.3", + "rc-util": "^5.35.0", + "stylis": "^4.0.13" } }, "@ant-design/icons": { - "version": "4.7.0", - "resolved": "https://registry.npmmirror.com/@ant-design/icons/-/icons-4.7.0.tgz", - "integrity": "sha512-aoB4Z7JA431rt6d4u+8xcNPPCrdufSRMUOpxa1ab6mz1JCQZOEVolj2WVs/tDFmN62zzK30mNelEsprLYsSF3g==", + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.3.6.tgz", + "integrity": "sha512-JeWsgNjvkTTC73YDPgWOgdScRku/iHN9JU0qk39OSEmJSCiRghQMLlxGTCY5ovbRRoXjxHXnUKgQEgBDnQfKmA==", "requires": { - "@ant-design/colors": "^6.0.0", - "@ant-design/icons-svg": "^4.2.1", + "@ant-design/colors": "^7.0.0", + "@ant-design/icons-svg": "^4.4.0", "@babel/runtime": "^7.11.2", "classnames": "^2.2.6", - "rc-util": "^5.9.4" + "rc-util": "^5.31.1" } }, "@ant-design/icons-svg": { - "version": "4.2.1", - "resolved": "https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.2.1.tgz", - "integrity": "sha512-EB0iwlKDGpG93hW8f85CTJTs4SvMX7tt5ceupvhALp1IF44SeUFOMhKUOYqpsoYWQKAOuTRDMqn75rEaKDp0Xw==" + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", + "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==" }, "@ant-design/react-slick": { - "version": "0.29.2", - "resolved": "https://registry.npmmirror.com/@ant-design/react-slick/-/react-slick-0.29.2.tgz", - "integrity": "sha512-kgjtKmkGHa19FW21lHnAfyyH9AAoh35pBdcJ53rHmQ3O+cfFHGHnUbj/HFrRNJ5vIts09FKJVAD8RpaC+RaWfA==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.1.2.tgz", + "integrity": "sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==", "requires": { "@babel/runtime": "^7.10.4", "classnames": "^2.2.5", "json2mq": "^0.2.0", - "lodash": "^4.17.21", - "resize-observer-polyfill": "^1.5.1" + "resize-observer-polyfill": "^1.5.1", + "throttle-debounce": "^5.0.0" + } + }, + "@antv/algorithm": { + "version": "0.1.26", + "resolved": "https://registry.npmjs.org/@antv/algorithm/-/algorithm-0.1.26.tgz", + "integrity": "sha512-DVhcFSQ8YQnMNW34Mk8BSsfc61iC1sAnmcfYoXTAshYHuU50p/6b7x3QYaGctDNKWGvi1ub7mPcSY0bK+aN0qg==", + "requires": { + "@antv/util": "^2.0.13", + "tslib": "^2.0.0" } }, "@antv/dom-util": { "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/@antv/dom-util/-/dom-util-2.0.4.tgz", + "resolved": "https://registry.npmjs.org/@antv/dom-util/-/dom-util-2.0.4.tgz", "integrity": "sha512-2shXUl504fKwt82T3GkuT4Uoc6p9qjCKnJ8gXGLSW4T1W37dqf9AV28aCfoVPHp2BUXpSsB+PAJX2rG/jLHsLQ==", "requires": { "tslib": "^2.0.3" @@ -8439,113 +9104,164 @@ }, "@antv/event-emitter": { "version": "0.1.3", - "resolved": "https://registry.npmmirror.com/@antv/event-emitter/-/event-emitter-0.1.3.tgz", + "resolved": "https://registry.npmjs.org/@antv/event-emitter/-/event-emitter-0.1.3.tgz", "integrity": "sha512-4ddpsiHN9Pd4UIlWuKVK1C4IiZIdbwQvy9i7DUSI3xNJ89FPUFt8lxDYj8GzzfdllV0NkJTRxnG+FvLk0llidg==" }, "@antv/g-base": { - "version": "0.5.11", - "resolved": "https://registry.npmmirror.com/@antv/g-base/-/g-base-0.5.11.tgz", - "integrity": "sha512-10Hkq7XksVCqxZZrPkd6HTU9tb/+2meCVEMy/edhS4I/sokhcgC9m3fQP5bE8rA3EVKwELE7MJHZ98BEpVFqvQ==", + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/@antv/g-base/-/g-base-0.5.16.tgz", + "integrity": "sha512-jP06wggTubDPHXoKwFg3/f1lyxBX9ywwN3E/HG74Nd7DXqOXQis8tsIWW+O6dS/h9vyuXLd1/wDWkMMm3ZzXdg==", "requires": { "@antv/event-emitter": "^0.1.1", - "@antv/g-math": "^0.1.6", + "@antv/g-math": "^0.1.9", "@antv/matrix-util": "^3.1.0-beta.1", "@antv/path-util": "~2.0.5", "@antv/util": "~2.0.13", "@types/d3-timer": "^2.0.0", "d3-ease": "^1.0.5", - "d3-interpolate": "^1.3.2", + "d3-interpolate": "^3.0.1", "d3-timer": "^1.0.9", "detect-browser": "^5.1.0", "tslib": "^2.0.3" - }, - "dependencies": { - "@antv/matrix-util": { - "version": "3.1.0-beta.3", - "resolved": "https://registry.npmmirror.com/@antv/matrix-util/-/matrix-util-3.1.0-beta.3.tgz", - "integrity": "sha512-W2R6Za3A6CmG51Y/4jZUM/tFgYSq7vTqJL1VD9dKrvwxS4sE0ZcXINtkp55CdyBwJ6Cwm8pfoRpnD4FnHahN0A==", - "requires": { - "@antv/util": "^2.0.9", - "gl-matrix": "^3.4.3", - "tslib": "^2.0.3" - } - } } }, "@antv/g-canvas": { - "version": "0.5.12", - "resolved": "https://registry.npmmirror.com/@antv/g-canvas/-/g-canvas-0.5.12.tgz", - "integrity": "sha512-iJ/muwwqCCNONVlPIzv/7OL5iLguaKRj2BxNMytUO3TWwamM+kHkiyYEOkS0dPn9h/hBsHYlLUluSVz2Fp6/bw==", + "version": "0.5.17", + "resolved": "https://registry.npmjs.org/@antv/g-canvas/-/g-canvas-0.5.17.tgz", + "integrity": "sha512-sXYJMWTOlb/Ycb6sTKu00LcJqInXJY4t99+kSM40u2OfqrXYmaXDjHR7D2V0roMkbK/QWiWS9UnEidCR1VtMOA==", "requires": { - "@antv/g-base": "^0.5.3", - "@antv/g-math": "^0.1.6", + "@antv/g-base": "^0.5.12", + "@antv/g-math": "^0.1.9", "@antv/matrix-util": "^3.1.0-beta.1", "@antv/path-util": "~2.0.5", "@antv/util": "~2.0.0", "gl-matrix": "^3.0.0", "tslib": "^2.0.3" - }, - "dependencies": { - "@antv/matrix-util": { - "version": "3.1.0-beta.3", - "resolved": "https://registry.npmmirror.com/@antv/matrix-util/-/matrix-util-3.1.0-beta.3.tgz", - "integrity": "sha512-W2R6Za3A6CmG51Y/4jZUM/tFgYSq7vTqJL1VD9dKrvwxS4sE0ZcXINtkp55CdyBwJ6Cwm8pfoRpnD4FnHahN0A==", - "requires": { - "@antv/util": "^2.0.9", - "gl-matrix": "^3.4.3", - "tslib": "^2.0.3" - } - } } }, "@antv/g-math": { - "version": "0.1.7", - "resolved": "https://registry.npmmirror.com/@antv/g-math/-/g-math-0.1.7.tgz", - "integrity": "sha512-xGyXaloD1ynfp7gS4VuV+MjSptZIwHvLHr8ekXJSFAeWPYLu84yOW2wOZHDdp1bzDAIuRv6xDBW58YGHrWsFcA==", + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@antv/g-math/-/g-math-0.1.9.tgz", + "integrity": "sha512-KHMSfPfZ5XHM1PZnG42Q2gxXfOitYveNTA7L61lR6mhZ8Y/aExsYmHqaKBsSarU0z+6WLrl9C07PQJZaw0uljQ==", "requires": { "@antv/util": "~2.0.0", "gl-matrix": "^3.0.0" } }, "@antv/g-svg": { - "version": "0.5.6", - "resolved": "https://registry.npmmirror.com/@antv/g-svg/-/g-svg-0.5.6.tgz", - "integrity": "sha512-Xve1EUGk4HMbl2nq4ozR4QLh6GyoZ8Xw/+9kHYI4B5P2lIUQU95MuRsaLFfW5NNpZDx85ZeH97tqEmC9L96E7A==", + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@antv/g-svg/-/g-svg-0.5.7.tgz", + "integrity": "sha512-jUbWoPgr4YNsOat2Y/rGAouNQYGpw4R0cvlN0YafwOyacFFYy2zC8RslNd6KkPhhR3XHNSqJOuCYZj/YmLUwYw==", "requires": { - "@antv/g-base": "^0.5.3", - "@antv/g-math": "^0.1.6", + "@antv/g-base": "^0.5.12", + "@antv/g-math": "^0.1.9", "@antv/util": "~2.0.0", "detect-browser": "^5.0.0", "tslib": "^2.0.3" } }, + "@antv/g-webgpu": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@antv/g-webgpu/-/g-webgpu-0.7.2.tgz", + "integrity": "sha512-kw+oYGsdvj5qeUfy5DPb/jztZBV+2fmqBd3Vv8NlKatfBmv8AirYX/CCW74AUSdWm99rEiLyxFB1VdRZ6b/wnQ==", + "requires": { + "@antv/g-webgpu-core": "^0.7.2", + "@antv/g-webgpu-engine": "^0.7.2", + "gl-matrix": "^3.1.0", + "gl-vec2": "^1.3.0", + "lodash": "^4.17.15" + } + }, + "@antv/g-webgpu-core": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@antv/g-webgpu-core/-/g-webgpu-core-0.7.2.tgz", + "integrity": "sha512-xUMmop7f3Rs34zFYKXLqHhDR1CQTeDl/7vI7Sn3X/73BqJc3X3HIIRvm83Fg2CjVACaOzw4WeLRXNaOCp9fz9w==", + "requires": { + "eventemitter3": "^4.0.0", + "gl-matrix": "^3.1.0", + "lodash": "^4.17.15", + "probe.gl": "^3.1.1" + } + }, + "@antv/g-webgpu-engine": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@antv/g-webgpu-engine/-/g-webgpu-engine-0.7.2.tgz", + "integrity": "sha512-lx8Y93IW2cnJvdoDRKyMmTdYqSC1pOmF0nyG3PGGyA0NI9vBYVgO0KTF6hkyWjdTWVq7XDZyf/h8CJridLh3lg==", + "requires": { + "@antv/g-webgpu-core": "^0.7.2", + "gl-matrix": "^3.1.0", + "lodash": "^4.17.15", + "regl": "^1.3.11" + } + }, "@antv/g6": { - "version": "3.8.5", - "resolved": "https://registry.npmmirror.com/@antv/g6/-/g6-3.8.5.tgz", - "integrity": "sha512-q+Fomc5ogcdcJ9usgYUVHzB8lFR5XHi4+O1BBFzA4ERgaF255xtrIpP631cD2wjByDq/9MbBCSpFqeOgBg2eOg==", + "version": "4.8.24", + "resolved": "https://registry.npmjs.org/@antv/g6/-/g6-4.8.24.tgz", + "integrity": "sha512-bgj7sZ+z45JmOngIpYpwmSIg7SboMLZBoAlX0+RoAETZB3/xvZO0MXT3lCSyAhIgm5Sb68pekKi7OStuo04NyQ==", + "requires": { + "@antv/g6-pc": "0.8.24" + } + }, + "@antv/g6-core": { + "version": "0.8.24", + "resolved": "https://registry.npmjs.org/@antv/g6-core/-/g6-core-0.8.24.tgz", + "integrity": "sha512-rgI3dArAD8uoSz2+skS4ctN4x/Of33ivTIKaEYYvClxgkLZWVz9zvocy+5AWcVPBHZsAXkZcdh9zndIoWY/33A==", + "requires": { + "@antv/algorithm": "^0.1.26", + "@antv/dom-util": "^2.0.1", + "@antv/event-emitter": "~0.1.0", + "@antv/g-base": "^0.5.1", + "@antv/g-math": "^0.1.1", + "@antv/matrix-util": "^3.1.0-beta.3", + "@antv/path-util": "^2.0.3", + "@antv/util": "~2.0.5", + "ml-matrix": "^6.5.0", + "tslib": "^2.6.2" + } + }, + "@antv/g6-element": { + "version": "0.8.24", + "resolved": "https://registry.npmjs.org/@antv/g6-element/-/g6-element-0.8.24.tgz", + "integrity": "sha512-61FXkt9LY+6EOUtSam1iFTOW2AM59sPVcV1BuPj4dXiD0dluLE+R7d8B/94g1tKDw9tsjhfUQGC7hTXscJRJFw==", + "requires": { + "@antv/g-base": "^0.5.1", + "@antv/g6-core": "0.8.24", + "@antv/util": "~2.0.5", + "tslib": "^2.6.2" + } + }, + "@antv/g6-pc": { + "version": "0.8.24", + "resolved": "https://registry.npmjs.org/@antv/g6-pc/-/g6-pc-0.8.24.tgz", + "integrity": "sha512-nf0y1lrp8J5DotqRryXd2S/J30COW8spVcLF9gUqywGqQAHfE00Ywkqr+PZBnsfCZXsXCi9o0+CE9NrkWs4SBQ==", "requires": { "@ant-design/colors": "^4.0.5", + "@antv/algorithm": "^0.1.26", "@antv/dom-util": "^2.0.1", "@antv/event-emitter": "~0.1.0", "@antv/g-base": "^0.5.1", "@antv/g-canvas": "^0.5.2", "@antv/g-math": "^0.1.1", "@antv/g-svg": "^0.5.1", - "@antv/hierarchy": "^0.6.2", - "@antv/matrix-util": "^2.0.4", + "@antv/g6-core": "0.8.24", + "@antv/g6-element": "0.8.24", + "@antv/g6-plugin": "0.8.24", + "@antv/hierarchy": "^0.6.10", + "@antv/layout": "^0.3.0", + "@antv/matrix-util": "^3.1.0-beta.3", "@antv/path-util": "^2.0.3", - "@antv/scale": "^0.3.1", "@antv/util": "~2.0.5", "color": "^3.1.3", "d3-force": "^2.0.1", "dagre": "^0.8.5", "insert-css": "^2.0.0", - "ml-matrix": "^6.5.0" + "ml-matrix": "^6.5.0", + "tslib": "^2.6.2" }, "dependencies": { "@ant-design/colors": { "version": "4.0.5", - "resolved": "https://registry.npmmirror.com/@ant-design/colors/-/colors-4.0.5.tgz", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-4.0.5.tgz", "integrity": "sha512-3mnuX2prnWOWvpFTS2WH2LoouWlOgtnIpc6IarWN6GOzzLF8dW/U8UctuvIPhoboETehZfJ61XP+CGakBEPJ3Q==", "requires": { "tinycolor2": "^1.4.1" @@ -8553,39 +9269,84 @@ } } }, - "@antv/gl-matrix": { - "version": "2.7.1", - "resolved": "https://registry.npmmirror.com/@antv/gl-matrix/-/gl-matrix-2.7.1.tgz", - "integrity": "sha512-oOWcVNlpELIKi9x+Mm1Vwbz8pXfkbJKykoCIOJ/dNK79hSIANbpXJ5d3Rra9/wZqK6MC961B7sybFhPlLraT3Q==" + "@antv/g6-plugin": { + "version": "0.8.24", + "resolved": "https://registry.npmjs.org/@antv/g6-plugin/-/g6-plugin-0.8.24.tgz", + "integrity": "sha512-ZIOnwLTC7SM2bFiJZ3vYFWnkyOCWKqnU96i/fBh1qAoY5slDS3hatenZWEXUtOcqaKw1h+5A5f72MRXqBBVn0g==", + "requires": { + "@antv/dom-util": "^2.0.2", + "@antv/g-base": "^0.5.1", + "@antv/g-canvas": "^0.5.2", + "@antv/g-svg": "^0.5.2", + "@antv/g6-core": "0.8.24", + "@antv/g6-element": "0.8.24", + "@antv/matrix-util": "^3.1.0-beta.3", + "@antv/path-util": "^2.0.3", + "@antv/scale": "^0.3.4", + "@antv/util": "^2.0.9", + "insert-css": "^2.0.0" + } + }, + "@antv/graphlib": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@antv/graphlib/-/graphlib-1.2.0.tgz", + "integrity": "sha512-hhJOMThec51nU4Fe5p/viLlNIL71uDEgYFzKPajWjr2715SFG1HAgiP6AVylIeqBcAZ04u3Lw7usjl/TuI5RuQ==" }, "@antv/hierarchy": { - "version": "0.6.8", - "resolved": "https://registry.npmmirror.com/@antv/hierarchy/-/hierarchy-0.6.8.tgz", - "integrity": "sha512-wVzUl+pxny5gyGJ2mkWx8IiEypX6bnMHgr/NILgbxY6shoy0Vf4FhZpI3CY8Ez7bQT6js8fMkB2NymPW7d7i8A==", + "version": "0.6.11", + "resolved": "https://registry.npmjs.org/@antv/hierarchy/-/hierarchy-0.6.11.tgz", + "integrity": "sha512-RJVhEMCuu4vj+Dt25lXIiNdd7jaqm/fqWGYikiELha4S5tnzdJoTUaUvvpfWlxLx4B0RsS9XRwBs1bOKN71TKg==", "requires": { "@antv/util": "^2.0.7" } }, - "@antv/matrix-util": { - "version": "2.0.7", - "resolved": "https://registry.npmmirror.com/@antv/matrix-util/-/matrix-util-2.0.7.tgz", - "integrity": "sha512-bogifQY8jplWtSTZsPqBOdBlDdkM7IwDqYL8eMYL8OaSyOPCS7l9bnEQjQ9qTAwfCd7wHTuPoCnCpbiR8BYFvQ==", + "@antv/layout": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@antv/layout/-/layout-0.3.25.tgz", + "integrity": "sha512-d29Aw1PXoAavMRZy7iTB9L5rMBeChFEX0BJ9ELP4TI35ySdCu07YbmPo9ju9OH/6sG2/NB3o85Ayxrre3iwX/g==", "requires": { - "@antv/gl-matrix": "^2.7.1", - "@antv/util": "^2.0.7", - "tslib": "^1.10.0" + "@antv/g-webgpu": "0.7.2", + "@antv/graphlib": "^1.0.0", + "@antv/util": "^3.3.2", + "d3-force": "^2.1.1", + "d3-quadtree": "^2.0.0", + "dagre-compound": "^0.0.11", + "ml-matrix": "6.5.0" }, "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "@antv/util": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/@antv/util/-/util-3.3.7.tgz", + "integrity": "sha512-qqPg7rIPCsJyl7N56jAC25v/99mJ3ApVkgBsGijhiWrEeKvzXBPk1r5P77Pm9nCljpnn+hH8Z3t5AivbEoTJMg==", + "requires": { + "fast-deep-equal": "^3.1.3", + "gl-matrix": "^3.3.0", + "tslib": "^2.3.1" + } + }, + "ml-matrix": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/ml-matrix/-/ml-matrix-6.5.0.tgz", + "integrity": "sha512-sms732Dge+rs5dU4mnjE0oqLWm1WujvR2fr38LgUHRG2cjXjWlO3WJupLYaSz3++2iYr0UrGDK72OAivr3J8dg==", + "requires": { + "ml-array-rescale": "^1.3.1" + } } } }, + "@antv/matrix-util": { + "version": "3.1.0-beta.3", + "resolved": "https://registry.npmjs.org/@antv/matrix-util/-/matrix-util-3.1.0-beta.3.tgz", + "integrity": "sha512-W2R6Za3A6CmG51Y/4jZUM/tFgYSq7vTqJL1VD9dKrvwxS4sE0ZcXINtkp55CdyBwJ6Cwm8pfoRpnD4FnHahN0A==", + "requires": { + "@antv/util": "^2.0.9", + "gl-matrix": "^3.4.3", + "tslib": "^2.0.3" + } + }, "@antv/path-util": { "version": "2.0.15", - "resolved": "https://registry.npmmirror.com/@antv/path-util/-/path-util-2.0.15.tgz", + "resolved": "https://registry.npmjs.org/@antv/path-util/-/path-util-2.0.15.tgz", "integrity": "sha512-R2VLZ5C8PLPtr3VciNyxtjKqJ0XlANzpFb5sE9GE61UQqSRuSVSzIakMxjEPrpqbgc+s+y8i+fmc89Snu7qbNw==", "requires": { "@antv/matrix-util": "^3.0.4", @@ -8595,7 +9356,7 @@ "dependencies": { "@antv/matrix-util": { "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/@antv/matrix-util/-/matrix-util-3.0.4.tgz", + "resolved": "https://registry.npmjs.org/@antv/matrix-util/-/matrix-util-3.0.4.tgz", "integrity": "sha512-BAPyu6dUliHcQ7fm9hZSGKqkwcjEDVLVAstlHULLvcMZvANHeLXgHEgV7JqcAV/GIhIz8aZChIlzM1ZboiXpYQ==", "requires": { "@antv/util": "^2.0.9", @@ -8607,7 +9368,7 @@ }, "@antv/scale": { "version": "0.3.18", - "resolved": "https://registry.npmmirror.com/@antv/scale/-/scale-0.3.18.tgz", + "resolved": "https://registry.npmjs.org/@antv/scale/-/scale-0.3.18.tgz", "integrity": "sha512-GHwE6Lo7S/Q5fgaLPaCsW+CH+3zl4aXpnN1skOiEY0Ue9/u+s2EySv6aDXYkAqs//i0uilMDD/0/4n8caX9U9w==", "requires": { "@antv/util": "~2.0.3", @@ -8617,25 +9378,339 @@ }, "@antv/util": { "version": "2.0.17", - "resolved": "https://registry.npmmirror.com/@antv/util/-/util-2.0.17.tgz", + "resolved": "https://registry.npmjs.org/@antv/util/-/util-2.0.17.tgz", "integrity": "sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q==", "requires": { "csstype": "^3.0.8", "tslib": "^2.0.3" } }, - "@babel/runtime": { - "version": "7.18.9", - "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.18.9.tgz", - "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", + "@babel/code-frame": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "dev": true, "requires": { - "regenerator-runtime": "^0.13.4" + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" + } + }, + "@babel/compat-data": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", + "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", + "dev": true + }, + "@babel/core": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz", + "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.4", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.4", + "@babel/parser": "^7.24.4", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz", + "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==", + "dev": true, + "requires": { + "@babel/types": "^7.24.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "dev": true, + "requires": { + "@babel/types": "^7.24.0" + } + }, + "@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true + }, + "@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true + }, + "@babel/helpers": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz", + "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==", + "dev": true, + "requires": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0" + } + }, + "@babel/highlight": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", + "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", + "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", + "dev": true + }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.1.tgz", + "integrity": "sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.1.tgz", + "integrity": "sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.0" + } + }, + "@babel/runtime": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", + "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", + "requires": { + "regenerator-runtime": "^0.14.0" + } + }, + "@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + } + }, + "@babel/traverse": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", + "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.24.1", + "@babel/generator": "^7.24.1", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.1", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" } }, "@ctrl/tinycolor": { - "version": "3.4.1", - "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz", - "integrity": "sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==" + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==" }, "@develar/schema-utils": { "version": "2.6.5", @@ -8674,31 +9749,6 @@ } } }, - "@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true - }, - "@electron/asar": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/@electron/asar/-/asar-3.2.9.tgz", - "integrity": "sha512-Vu2P3X2gcZ3MY9W7yH72X9+AMXwUQZEJBrsPIbX0JsdllLtoh62/Q8Wg370/DawIEVKOyfD6KtTLo645ezqxUA==", - "dev": true, - "requires": { - "commander": "^5.0.0", - "glob": "^7.1.6", - "minimatch": "^3.0.4" - }, - "dependencies": { - "commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "dev": true - } - } - }, "@electron/get": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz", @@ -8721,212 +9771,272 @@ } } }, - "@electron/notarize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@electron/notarize/-/notarize-2.2.1.tgz", - "integrity": "sha512-aL+bFMIkpR0cmmj5Zgy0LMKEpgy43/hw5zadEArgmAMWWlKc5buwFvFT9G/o/YJkvXAJm5q3iuTuLaiaXW39sg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "fs-extra": "^9.0.1", - "promise-retry": "^2.0.1" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true - } - } - }, - "@electron/osx-sign": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.0.5.tgz", - "integrity": "sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==", - "dev": true, - "requires": { - "compare-version": "^0.1.2", - "debug": "^4.3.4", - "fs-extra": "^10.0.0", - "isbinaryfile": "^4.0.8", - "minimist": "^1.2.6", - "plist": "^3.0.5" - }, - "dependencies": { - "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "isbinaryfile": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", - "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true - } - } - }, "@electron/remote": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-2.1.2.tgz", "integrity": "sha512-EPwNx+nhdrTBxyCqXt/pftoQg/ybtWDW3DUWHafejvnB1ZGGfMpv6e15D8KeempocjXe78T7WreyGGb3mlZxdA==", "requires": {} }, - "@electron/universal": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.5.1.tgz", - "integrity": "sha512-kbgXxyEauPJiQQUNG2VgUeyfQNFk6hBF11ISN2PNI6agUgPl55pv4eQmaqHzTAzchBvqZ2tQuRVaPStGf0mxGw==", + "@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + }, + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, + "@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "dev": true, + "optional": true + }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, "requires": { - "@electron/asar": "^3.2.1", - "@malept/cross-spawn-promise": "^1.1.0", - "debug": "^4.3.1", - "dir-compare": "^3.0.0", - "fs-extra": "^9.0.1", - "minimatch": "^3.0.4", - "plist": "^3.0.4" + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" }, "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" + "type-fest": "^0.20.2" } }, - "universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true } } }, - "@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true + }, + "@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "requires": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true - }, - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - }, - "wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - } - } + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" } }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "dev": true + }, "@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", @@ -9053,23 +10163,121 @@ "fastq": "^1.6.0" } }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true + "@probe.gl/env": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@probe.gl/env/-/env-3.6.0.tgz", + "integrity": "sha512-4tTZYUg/8BICC3Yyb9rOeoKeijKbZHRXBEKObrfPmX4sQmYB15ZOUpoVBhAyJkOYVAM8EkPci6Uw5dLCwx2BEQ==", + "requires": { + "@babel/runtime": "^7.0.0" + } + }, + "@probe.gl/log": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@probe.gl/log/-/log-3.6.0.tgz", + "integrity": "sha512-hjpyenpEvOdowgZ1qMeCJxfRD4JkKdlXz0RC14m42Un62NtOT+GpWyKA4LssT0+xyLULCByRAtG2fzZorpIAcA==", + "requires": { + "@babel/runtime": "^7.0.0", + "@probe.gl/env": "3.6.0" + } + }, + "@probe.gl/stats": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@probe.gl/stats/-/stats-3.6.0.tgz", + "integrity": "sha512-JdALQXB44OP4kUBN/UrQgzbJe4qokbVF4Y8lkIA8iVCFnjVowWIgkD/z/0QO65yELT54tTrtepw1jScjKB+rhQ==", + "requires": { + "@babel/runtime": "^7.0.0" + } + }, + "@rc-component/color-picker": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-1.5.3.tgz", + "integrity": "sha512-+tGGH3nLmYXTalVe0L8hSZNs73VTP5ueSHwUlDC77KKRaN7G4DS4wcpG5DTDzdcV/Yas+rzA6UGgIyzd8fS4cw==", + "requires": { + "@babel/runtime": "^7.23.6", + "@ctrl/tinycolor": "^3.6.1", + "classnames": "^2.2.6", + "rc-util": "^5.38.1" + } + }, + "@rc-component/context": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-1.4.0.tgz", + "integrity": "sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==", + "requires": { + "@babel/runtime": "^7.10.1", + "rc-util": "^5.27.0" + } + }, + "@rc-component/mini-decimal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz", + "integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==", + "requires": { + "@babel/runtime": "^7.18.0" + } + }, + "@rc-component/mutate-observer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz", + "integrity": "sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==", + "requires": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + } + }, + "@rc-component/portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "requires": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + } + }, + "@rc-component/tour": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.14.2.tgz", + "integrity": "sha512-A75DZ8LVvahBIvxooj3Gvf2sxe+CGOkmzPNX7ek0i0AJHyKZ1HXe5ieIGo3m0FMdZfVOlbCJ952Duq8VKAHk6g==", + "requires": { + "@babel/runtime": "^7.18.0", + "@rc-component/portal": "^1.0.0-9", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + } + }, + "@rc-component/trigger": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.1.1.tgz", + "integrity": "sha512-UjHkedkgtEcgQu87w1VuWug1idoDJV7VUt0swxHXRcmei2uu1AuUzGBPEUlmOmXGJ+YtTgZfVLi7kuAUKoZTMA==", + "requires": { + "@babel/runtime": "^7.23.2", + "@rc-component/portal": "^1.1.0", + "classnames": "^2.3.2", + "rc-motion": "^2.0.0", + "rc-resize-observer": "^1.3.1", + "rc-util": "^5.38.0" + } }, "@sindresorhus/is": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" }, - "@sindresorhus/merge-streams": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", - "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", - "dev": true + "@stylistic/eslint-plugin-js": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-js/-/eslint-plugin-js-1.7.2.tgz", + "integrity": "sha512-ZYX7C5p7zlHbACwFLU+lISVh6tdcRP/++PWegh2Sy0UgMT5kU0XkPa2tKWEtJYzZmPhJxu9LxbnWcnE/tTwSDQ==", + "dev": true, + "requires": { + "@types/eslint": "^8.56.8", + "acorn": "^8.11.3", + "escape-string-regexp": "^4.0.0", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1" + } }, "@szmarczak/http-timer": { "version": "4.0.6", @@ -9096,24 +10304,15 @@ "@types/responselike": "^1.0.0" } }, - "@types/concat-stream": { - "version": "1.6.1", - "resolved": "https://registry.npmmirror.com/@types/concat-stream/-/concat-stream-1.6.1.tgz", - "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", - "requires": { - "@types/node": "*" - } - }, "@types/d3-timer": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/@types/d3-timer/-/d3-timer-2.0.1.tgz", - "integrity": "sha512-TF8aoF5cHcLO7W7403blM7L1T+6NF3XMyN3fxyUolq2uOcFeicG/khQg/dGxiCJWoAcmYulYN7LYSRKO54IXaA==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-2.0.3.tgz", + "integrity": "sha512-jhAJzaanK5LqyLQ50jJNIrB8fjL9gwWZTgYjevPvkDLMU+kTAZkYsobI59nYoeSrH1PucuyJEi247Pb90t6XUg==" }, "@types/debug": { "version": "4.1.12", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", - "dev": true, "requires": { "@types/ms": "*" } @@ -9122,43 +10321,31 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/@types/electron-localshortcut/-/electron-localshortcut-3.1.3.tgz", "integrity": "sha512-D+CRdDTRZ4/9UmcSaZ5qvW4uq2VyyVmqsH9cdNReB4CL6MSIgyhr9w2PKeNEb0J/ZS7db7irJM/+ZiA5uSQsLw==", - "dev": true, "requires": { "electron": "*" } }, "@types/eslint": { - "version": "8.56.5", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.5.tgz", - "integrity": "sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==", + "version": "8.56.9", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.9.tgz", + "integrity": "sha512-W4W3KcqzjJ0sHg2vAq9vfml6OhsJ53TcUjUqfzzZf/EChUtwspszj/S0pzMxnfRcO55/iGq47dscXw71Fxc4Zg==", "dev": true, "requires": { "@types/estree": "*", "@types/json-schema": "*" } }, - "@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "dev": true, - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" }, - "@types/form-data": { - "version": "0.0.33", - "resolved": "https://registry.npmmirror.com/@types/form-data/-/form-data-0.0.33.tgz", - "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "@types/estree-jsx": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", "requires": { - "@types/node": "*" + "@types/estree": "*" } }, "@types/fs-extra": { @@ -9170,14 +10357,12 @@ "@types/node": "*" } }, - "@types/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==", - "dev": true, + "@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "requires": { - "@types/minimatch": "^5.1.2", - "@types/node": "*" + "@types/unist": "*" } }, "@types/http-cache-semantics": { @@ -9200,9 +10385,9 @@ } }, "@types/mdast": { - "version": "3.0.10", - "resolved": "https://registry.npmmirror.com/@types/mdast/-/mdast-3.0.10.tgz", - "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz", + "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==", "requires": { "@types/unist": "*" } @@ -9211,18 +10396,18 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true + "dev": true, + "optional": true }, "@types/ms": { "version": "0.7.34", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", - "dev": true + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" }, "@types/node": { - "version": "20.11.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.25.tgz", - "integrity": "sha512-TBHyJxk2b7HceLVGFcpAUjsa5zIdsPWlR6XHfyGzd0SFu+/NFgQgMAl96MSDZgQDvJAvV6BKsFOrt6zIL09JDw==", + "version": "20.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", + "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", "requires": { "undici-types": "~5.26.4" } @@ -9243,27 +10428,22 @@ "resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.5.tgz", "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmmirror.com/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" - }, "@types/react": { - "version": "16.14.30", - "resolved": "https://registry.npmmirror.com/@types/react/-/react-16.14.30.tgz", - "integrity": "sha512-tG+xGtDDSuIl1l63mN0LnaROAc99knkYyN4YTheE80iPzYvSy0U8LVie+OBZkrgjVrpkQV6bMCkSphPBnVNk6g==", + "version": "18.2.79", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.79.tgz", + "integrity": "sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==", "requires": { "@types/prop-types": "*", - "@types/scheduler": "*", "csstype": "^3.0.2" } }, "@types/react-dom": { - "version": "16.9.16", - "resolved": "https://registry.npmmirror.com/@types/react-dom/-/react-dom-16.9.16.tgz", - "integrity": "sha512-Oqc0RY4fggGA3ltEgyPLc3IV9T73IGoWjkONbsyJ3ZBn+UPPCYpU2ec0i3cEbJuEdZtkqcCF2l1zf2pBdgUGSg==", + "version": "18.2.25", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.25.tgz", + "integrity": "sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==", + "dev": true, "requires": { - "@types/react": "^16" + "@types/react": "*" } }, "@types/responselike": { @@ -9274,25 +10454,15 @@ "@types/node": "*" } }, - "@types/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ==", - "dev": true, - "requires": { - "@types/glob": "*", - "@types/node": "*" - } - }, - "@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + "@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==" }, "@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" }, "@types/verror": { "version": "1.10.10", @@ -9301,6 +10471,21 @@ "dev": true, "optional": true }, + "@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, "@types/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmmirror.com/@types/yauzl/-/yauzl-2.10.0.tgz", @@ -9310,195 +10495,175 @@ "@types/node": "*" } }, - "@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "@typescript-eslint/eslint-plugin": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.0.tgz", + "integrity": "sha512-GJWR0YnfrKnsRoluVO3PRb9r5aMZriiMMM/RHj5nnTrBy1/wIgk76XCtCKcnXGjpZQJQRFtGV9/0JJ6n30uwpQ==", "dev": true, "requires": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/type-utils": "7.7.0", + "@typescript-eslint/utils": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" } }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "@typescript-eslint/parser": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.0.tgz", + "integrity": "sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/typescript-estree": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.0.tgz", + "integrity": "sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.7.0.tgz", + "integrity": "sha512-bOp3ejoRYrhAlnT/bozNQi3nio9tIgv3U5C0mVDdZC7cpcQEDZXvq8inrHYghLVwuNABRqrMW5tzAv88Vy77Sg==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "7.7.0", + "@typescript-eslint/utils": "7.7.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + } + }, + "@typescript-eslint/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz", + "integrity": "sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==", "dev": true }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", - "dev": true - }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "@typescript-eslint/typescript-estree": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz", + "integrity": "sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==", "dev": true, "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + } } }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "@typescript-eslint/utils": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.0.tgz", + "integrity": "sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.15", + "@types/semver": "^7.5.8", + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/typescript-estree": "7.7.0", + "semver": "^7.6.0" } }, - "@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "@typescript-eslint/visitor-keys": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.0.tgz", + "integrity": "sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==", "dev": true, "requires": { - "@xtuc/ieee754": "^1.2.0" + "@typescript-eslint/types": "7.7.0", + "eslint-visitor-keys": "^3.4.3" } }, - "@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + }, + "@vitejs/plugin-react": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-3.1.0.tgz", + "integrity": "sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==", "dev": true, "requires": { - "@xtuc/long": "4.2.2" + "@babel/core": "^7.20.12", + "@babel/plugin-transform-react-jsx-self": "^7.18.6", + "@babel/plugin-transform-react-jsx-source": "^7.19.6", + "magic-string": "^0.27.0", + "react-refresh": "^0.14.0" } }, - "@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "@webpack-cli/configtest": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", - "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", - "dev": true, - "requires": {} - }, - "@webpack-cli/info": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", - "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", - "dev": true, - "requires": {} - }, - "@webpack-cli/serve": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", - "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", - "dev": true, - "requires": {} - }, "@xmldom/xmldom": { "version": "0.8.10", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", "dev": true }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, "7zip-bin": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.2.0.tgz", - "integrity": "sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.1.1.tgz", + "integrity": "sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ==", "dev": true }, "acorn": { @@ -9507,10 +10672,10 @@ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true }, - "acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "requires": {} }, @@ -9523,34 +10688,20 @@ "debug": "4" } }, - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, + "ahooks": { + "version": "3.7.11", + "resolved": "https://registry.npmjs.org/ahooks/-/ahooks-3.7.11.tgz", + "integrity": "sha512-BfSq7HJ9wk/7a2vX7WbLdwzHyQHmbNe21ipX1PfIzssXIzQfAl79WVJ9GjZaqNl4PFPsJusj/Xjg2OF+gIgGaQ==", "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "requires": { - "ajv": "^8.0.0" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" + "@babel/runtime": "^7.21.0", + "dayjs": "^1.9.1", + "intersection-observer": "^0.12.0", + "js-cookie": "^2.x.x", + "lodash": "^4.17.21", + "react-fast-compare": "^3.2.2", + "resize-observer-polyfill": "^1.5.1", + "screenfull": "^5.0.0", + "tslib": "^2.4.1" } }, "ansi-regex": { @@ -9586,54 +10737,68 @@ } }, "antd": { - "version": "4.22.7", - "resolved": "https://registry.npmmirror.com/antd/-/antd-4.22.7.tgz", - "integrity": "sha512-CMf5tYHtlhP1blYjwNTRsB7G/bocwKmIFHgYYk4pZNgo1kk/XnPPI2/MKRCXWc54wuCQQlnmL/2AKtE7HWaE8g==", + "version": "5.16.2", + "resolved": "https://registry.npmjs.org/antd/-/antd-5.16.2.tgz", + "integrity": "sha512-46BC1IaCRzkdcTAs1TuIZ1D56JrIRP5yWGrlfV+kGjro1c2dVaQP7yGXA2/m29uF41TqptxOYl36opY5ydN++A==", "requires": { - "@ant-design/colors": "^6.0.0", - "@ant-design/icons": "^4.7.0", - "@ant-design/react-slick": "~0.29.1", - "@babel/runtime": "^7.18.3", - "@ctrl/tinycolor": "^3.4.0", - "classnames": "^2.2.6", - "copy-to-clipboard": "^3.2.0", - "lodash": "^4.17.21", - "memoize-one": "^6.0.0", - "moment": "^2.29.2", - "rc-cascader": "~3.6.0", - "rc-checkbox": "~2.3.0", - "rc-collapse": "~3.3.0", - "rc-dialog": "~8.9.0", - "rc-drawer": "~5.1.0", - "rc-dropdown": "~4.0.0", - "rc-field-form": "~1.27.0", - "rc-image": "~5.7.0", - "rc-input": "~0.0.1-alpha.5", - "rc-input-number": "~7.3.5", - "rc-mentions": "~1.9.1", - "rc-menu": "~9.6.3", - "rc-motion": "^2.6.1", - "rc-notification": "~4.6.0", - "rc-pagination": "~3.1.17", - "rc-picker": "~2.6.10", - "rc-progress": "~3.3.2", - "rc-rate": "~2.9.0", - "rc-resize-observer": "^1.2.0", - "rc-segmented": "~2.1.0", - "rc-select": "~14.1.1", - "rc-slider": "~10.0.0", - "rc-steps": "~4.1.0", - "rc-switch": "~3.2.0", - "rc-table": "~7.25.3", - "rc-tabs": "~11.16.0", - "rc-textarea": "~0.3.0", - "rc-tooltip": "~5.2.0", - "rc-tree": "~5.6.5", - "rc-tree-select": "~5.4.0", - "rc-trigger": "^5.2.10", - "rc-upload": "~4.3.0", - "rc-util": "^5.22.5", - "scroll-into-view-if-needed": "^2.2.25" + "@ant-design/colors": "^7.0.2", + "@ant-design/cssinjs": "^1.18.5", + "@ant-design/icons": "^5.3.6", + "@ant-design/react-slick": "~1.1.2", + "@babel/runtime": "^7.24.4", + "@ctrl/tinycolor": "^3.6.1", + "@rc-component/color-picker": "~1.5.3", + "@rc-component/mutate-observer": "^1.1.0", + "@rc-component/tour": "~1.14.2", + "@rc-component/trigger": "^2.1.1", + "classnames": "^2.5.1", + "copy-to-clipboard": "^3.3.3", + "dayjs": "^1.11.10", + "qrcode.react": "^3.1.0", + "rc-cascader": "~3.24.1", + "rc-checkbox": "~3.2.0", + "rc-collapse": "~3.7.3", + "rc-dialog": "~9.4.0", + "rc-drawer": "~7.1.0", + "rc-dropdown": "~4.2.0", + "rc-field-form": "~1.44.0", + "rc-image": "~7.6.0", + "rc-input": "~1.4.5", + "rc-input-number": "~9.0.0", + "rc-mentions": "~2.11.1", + "rc-menu": "~9.13.0", + "rc-motion": "^2.9.0", + "rc-notification": "~5.4.0", + "rc-pagination": "~4.0.4", + "rc-picker": "~4.3.2", + "rc-progress": "~4.0.0", + "rc-rate": "~2.12.0", + "rc-resize-observer": "^1.4.0", + "rc-segmented": "~2.3.0", + "rc-select": "~14.13.1", + "rc-slider": "~10.5.0", + "rc-steps": "~6.0.1", + "rc-switch": "~4.1.0", + "rc-table": "~7.45.4", + "rc-tabs": "~14.1.1", + "rc-textarea": "~1.6.3", + "rc-tooltip": "~6.2.0", + "rc-tree": "~5.8.5", + "rc-tree-select": "~5.19.0", + "rc-upload": "~4.5.2", + "rc-util": "^5.39.1", + "scroll-into-view-if-needed": "^3.1.0", + "throttle-debounce": "^5.0.0" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, "app-builder-bin": { @@ -9643,47 +10808,104 @@ "dev": true }, "app-builder-lib": { - "version": "24.13.3", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-24.13.3.tgz", - "integrity": "sha512-FAzX6IBit2POXYGnTCT8YHFO/lr5AapAII6zzhQO3Rw4cEDOgK+t1xhLc5tNcKlicTHlo9zxIwnYCX9X2DLkig==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-23.6.0.tgz", + "integrity": "sha512-dQYDuqm/rmy8GSCE6Xl/3ShJg6Ab4bZJMT8KaTKGzT436gl1DN4REP3FCWfXoh75qGTJ+u+WsdnnpO9Jl8nyMA==", "dev": true, "requires": { "@develar/schema-utils": "~2.6.5", - "@electron/notarize": "2.2.1", - "@electron/osx-sign": "1.0.5", - "@electron/universal": "1.5.1", + "@electron/universal": "1.2.1", "@malept/flatpak-bundler": "^0.4.0", - "@types/fs-extra": "9.0.13", + "7zip-bin": "~5.1.1", "async-exit-hook": "^2.0.1", "bluebird-lst": "^1.0.9", - "builder-util": "24.13.1", - "builder-util-runtime": "9.2.4", + "builder-util": "23.6.0", + "builder-util-runtime": "9.1.1", "chromium-pickle-js": "^0.2.0", "debug": "^4.3.4", - "ejs": "^3.1.8", - "electron-publish": "24.13.1", + "ejs": "^3.1.7", + "electron-osx-sign": "^0.6.0", + "electron-publish": "23.6.0", "form-data": "^4.0.0", "fs-extra": "^10.1.0", "hosted-git-info": "^4.1.0", "is-ci": "^3.0.0", - "isbinaryfile": "^5.0.0", + "isbinaryfile": "^4.0.10", "js-yaml": "^4.1.0", "lazy-val": "^1.0.5", - "minimatch": "^5.1.1", - "read-config-file": "6.3.2", + "minimatch": "^3.1.2", + "read-config-file": "6.2.0", "sanitize-filename": "^1.6.3", - "semver": "^7.3.8", - "tar": "^6.1.12", + "semver": "^7.3.7", + "tar": "^6.1.11", "temp-file": "^3.4.0" }, "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "@electron/universal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.2.1.tgz", + "integrity": "sha512-7323HyMh7KBAl/nPDppdLsC87G6RwRU02dy5FPeGB1eS7rUePh55+WNWiDPLhFQqqVPHzh77M69uhmoT8XnwMQ==", "dev": true, "requires": { - "balanced-match": "^1.0.0" + "@malept/cross-spawn-promise": "^1.1.0", + "asar": "^3.1.0", + "debug": "^4.3.1", + "dir-compare": "^2.4.0", + "fs-extra": "^9.0.1", + "minimatch": "^3.0.4", + "plist": "^3.0.4" + }, + "dependencies": { + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + } + } + }, + "buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ==", + "dev": true + }, + "commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==", + "dev": true, + "requires": { + "graceful-readlink": ">= 1.0.0" + } + }, + "dir-compare": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-2.4.0.tgz", + "integrity": "sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA==", + "dev": true, + "requires": { + "buffer-equal": "1.0.0", + "colors": "1.0.3", + "commander": "2.9.0", + "minimatch": "3.0.4" + }, + "dependencies": { + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, "fs-extra": { @@ -9707,15 +10929,6 @@ "universalify": "^2.0.0" } }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, "universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", @@ -9724,70 +10937,53 @@ } } }, - "archiver": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", - "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", - "dev": true, - "peer": true, - "requires": { - "archiver-utils": "^2.1.0", - "async": "^3.2.4", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.1.2", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dev": true, - "peer": true, - "requires": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - } - }, "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "array-tree-filter": { "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz", "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==" }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "asar": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/asar/-/asar-3.2.0.tgz", + "integrity": "sha512-COdw2ZQvKdFGFxXwX3oYh2/sOsJWJegrdJCGxnN4MZ7IULgRBp9P6665aqj9z1v9VwP4oP1hRBojRDQ//IGgAg==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "chromium-pickle-js": "^0.2.0", + "commander": "^5.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" + }, + "dependencies": { + "@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "optional": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true + } + } }, "assert-plus": { "version": "1.0.0", @@ -9817,13 +11013,14 @@ }, "async-validator": { "version": "4.2.5", - "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true }, "at-least-node": { "version": "1.0.0", @@ -9831,21 +11028,27 @@ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", "dev": true }, - "author-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/author-regex/-/author-regex-1.0.0.tgz", - "integrity": "sha512-KbWgR8wOYRAPekEmMXrYYdc7BRyhn2Ftk7KWfMUnQ43hFdojWEFRxhhRUm3/OFEdPa1r0KAvTTg9YQK57xTe0g==", - "dev": true + "axios": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "dev": true, + "requires": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } }, "bail": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==" }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, "base64-js": { "version": "1.5.1", @@ -9853,38 +11056,12 @@ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "peer": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, "bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -9910,6 +11087,7 @@ "version": "1.1.11", "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -9941,44 +11119,63 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, + "optional": true, "requires": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" }, - "buffer-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", - "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", "dev": true }, "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true }, "builder-util": { - "version": "24.13.1", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-24.13.1.tgz", - "integrity": "sha512-NhbCSIntruNDTOVI9fdXz0dihaqX2YuE1D6zZMrwiErzH4ELZHE6mdiB40wEgZNprDia+FghRFgKoAqMZRRjSA==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-23.6.0.tgz", + "integrity": "sha512-QiQHweYsh8o+U/KNCZFSvISRnvRctb8m/2rB2I1JdByzvNKxPeFLlHFRPQRXab6aYeXc18j9LpsDLJ3sGQmWTQ==", "dev": true, "requires": { "@types/debug": "^4.1.6", - "7zip-bin": "~5.2.0", + "@types/fs-extra": "^9.0.11", + "7zip-bin": "~5.1.1", "app-builder-bin": "4.0.0", "bluebird-lst": "^1.0.9", - "builder-util-runtime": "9.2.4", - "chalk": "^4.1.2", + "builder-util-runtime": "9.1.1", + "chalk": "^4.1.1", "cross-spawn": "^7.0.3", "debug": "^4.3.4", - "fs-extra": "^10.1.0", + "fs-extra": "^10.0.0", "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", + "https-proxy-agent": "^5.0.0", "is-ci": "^3.0.0", "js-yaml": "^4.1.0", "source-map-support": "^0.5.19", @@ -10016,10 +11213,9 @@ } }, "builder-util-runtime": { - "version": "9.2.4", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.4.tgz", - "integrity": "sha512-upp+biKpN/XZMLim7aguUyW8s0FUpDvOtK6sbanMFDAMBzpHDqdhgVYm6zc9HJ6nWo7u2Lxk60i2M6Jd3aiNrA==", - "dev": true, + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz", + "integrity": "sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw==", "requires": { "debug": "^4.3.4", "sax": "^1.2.4" @@ -10045,24 +11241,33 @@ } }, "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" } }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, "caniuse-lite": { "version": "1.0.30001596", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001596.tgz", "integrity": "sha512-zpkZ+kEr6We7w63ORkoJ2pOfBwBkY/bJrG/UZ90qNb45Isblu8wzDgevEOrRL1r9dWayHjYiiyCMEXPn4DweGQ==", "dev": true }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmmirror.com/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + "ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==" }, "chalk": { "version": "4.1.2", @@ -10086,19 +11291,57 @@ } }, "character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmmirror.com/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==" + }, + "character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==" }, "character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==" }, "character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==" + }, + "charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "dev": true + }, + "chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } }, "chownr": { "version": "2.0.0", @@ -10106,12 +11349,6 @@ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true - }, "chromium-pickle-js": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", @@ -10124,10 +11361,19 @@ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true }, + "cjson": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cjson/-/cjson-0.5.0.tgz", + "integrity": "sha512-D3CKJU9YnZNyerUQ1IzNUvMnToP3MGC2XbIAPi/7yqunJJW3rBwCVapousoFtaR9IbejeEM0KIshxC1n4HQcXw==", + "dev": true, + "requires": { + "json-parse-helpfulerror": "^1.0.3" + } + }, "classnames": { - "version": "2.3.1", - "resolved": "https://registry.npmmirror.com/classnames/-/classnames-2.3.1.tgz", - "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" }, "cli-truncate": { "version": "2.1.0", @@ -10151,17 +11397,6 @@ "wrap-ansi": "^7.0.0" } }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, "clone-response": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", @@ -10172,7 +11407,7 @@ }, "color": { "version": "3.2.1", - "resolved": "https://registry.npmmirror.com/color/-/color-3.2.1.tgz", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", "requires": { "color-convert": "^1.9.3", @@ -10181,7 +11416,7 @@ }, "color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "requires": { "color-name": "1.1.3" @@ -10189,32 +11424,38 @@ }, "color-name": { "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "color-string": { "version": "1.9.1", - "resolved": "https://registry.npmmirror.com/color-string/-/color-string-1.9.1.tgz", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", "requires": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" } }, - "colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", "dev": true }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, "requires": { "delayed-stream": "~1.0.0" } }, + "comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==" + }, "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -10227,133 +11468,65 @@ "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==", "dev": true }, - "compress-commons": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", - "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", - "dev": true, - "peer": true, - "requires": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, "compute-scroll-into-view": { - "version": "1.0.17", - "resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz", - "integrity": "sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz", + "integrity": "sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==" }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "config-file-ts": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/config-file-ts/-/config-file-ts-0.2.6.tgz", - "integrity": "sha512-6boGVaglwblBgJqGyxm4+xCmEGcWgnWHSWHY5jad58awQhB6gftq0G8HbzU39YqCIYHMLAiL1yjwiZ36m/CL8w==", - "dev": true, - "requires": { - "glob": "^10.3.10", - "typescript": "^5.3.3" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dev": true, - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - } - }, - "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true }, "copy-anything": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", "dev": true, + "optional": true, + "peer": true, "requires": { "is-what": "^3.14.1" } }, + "copy-files-from-to": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/copy-files-from-to/-/copy-files-from-to-3.9.1.tgz", + "integrity": "sha512-SZHxqHotMXghpWTDgjq3c2nnRWesLqYfrLcCvML3yAaSf3+iIKv4clX5jsarMZ5iI7JMf6i9/B/VFDxVELG0Fg==", + "dev": true, + "requires": { + "async": "^3.2.5", + "axios": "^1.6.2", + "chalk": "=4.1.2", + "cjson": "^0.5.0", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "is-utf8": "^0.2.1", + "lodash": "^4.17.21", + "md5": "^2.3.0", + "mkdirp": "^3.0.1", + "note-down": "=1.0.2", + "terser": "^5.24.0", + "unixify": "^1.0.0", + "yargs": "^17.7.2" + } + }, "copy-to-clipboard": { - "version": "3.3.2", - "resolved": "https://registry.npmmirror.com/copy-to-clipboard/-/copy-to-clipboard-3.3.2.tgz", - "integrity": "sha512-Vme1Z6RUDzrb6xAI7EZlVZ5uvOk2F//GaxKUxajDqm9LhOVM1inxNAD2vy+UZDYsd0uyA9s7b3/FVZPSxqrCfg==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", "requires": { "toggle-selection": "^1.0.6" } }, - "copy-webpack-plugin": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz", - "integrity": "sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==", - "dev": true, - "requires": { - "fast-glob": "^3.3.2", - "glob-parent": "^6.0.1", - "globby": "^14.0.0", - "normalize-path": "^3.0.0", - "schema-utils": "^4.2.0", - "serialize-javascript": "^6.0.2" - } - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, "crc": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", @@ -10364,34 +11537,20 @@ "buffer": "^5.1.0" } }, - "crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "dev": true, - "peer": true - }, - "crc32-stream": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", - "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", - "dev": true, - "peer": true, + "cross-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", + "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", "requires": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" + "node-fetch": "^2.6.12" }, "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "peer": true, + "node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "whatwg-url": "^5.0.0" } } } @@ -10407,62 +11566,35 @@ "which": "^2.0.1" } }, - "cross-spawn-windows-exe": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/cross-spawn-windows-exe/-/cross-spawn-windows-exe-1.2.0.tgz", - "integrity": "sha512-mkLtJJcYbDCxEG7Js6eUnUNndWjyUZwJ3H7bErmmtOYU/Zb99DyUkpamuIZE0b3bhmJyZ7D90uS6f+CGxRRjOw==", - "dev": true, - "requires": { - "@malept/cross-spawn-promise": "^1.1.0", - "is-wsl": "^2.2.0", - "which": "^2.0.2" - } - }, - "css-loader": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.10.0.tgz", - "integrity": "sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==", - "dev": true, - "requires": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.33", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.4", - "postcss-modules-scope": "^3.1.1", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.5.4" - } - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", "dev": true }, "csstype": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.0.tgz", - "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "d3-color": { - "version": "1.4.1", - "resolved": "https://registry.npmmirror.com/d3-color/-/d3-color-1.4.1.tgz", - "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==" }, "d3-dispatch": { "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/d3-dispatch/-/d3-dispatch-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==" }, "d3-ease": { "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/d3-ease/-/d3-ease-1.0.7.tgz", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz", "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" }, "d3-force": { "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/d3-force/-/d3-force-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", "requires": { "d3-dispatch": "1 - 2", @@ -10471,47 +11603,42 @@ } }, "d3-interpolate": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz", - "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "requires": { - "d3-color": "1" + "d3-color": "1 - 3" } }, "d3-quadtree": { "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/d3-quadtree/-/d3-quadtree-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==" }, "d3-timer": { "version": "1.0.10", - "resolved": "https://registry.npmmirror.com/d3-timer/-/d3-timer-1.0.10.tgz", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" }, "dagre": { "version": "0.8.5", - "resolved": "https://registry.npmmirror.com/dagre/-/dagre-0.8.5.tgz", + "resolved": "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz", "integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==", "requires": { "graphlib": "^2.1.8", "lodash": "^4.17.15" } }, - "data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "dev": true - }, - "date-fns": { - "version": "2.29.2", - "resolved": "https://registry.npmmirror.com/date-fns/-/date-fns-2.29.2.tgz", - "integrity": "sha512-0VNbwmWJDS/G3ySwFSJA3ayhbURMTJLtwM2DTxf9CWondCnh6DTNlO9JgRSq6ibf4eD0lfMJNBxUdEAHHix+bA==" + "dagre-compound": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/dagre-compound/-/dagre-compound-0.0.11.tgz", + "integrity": "sha512-UrSgRP9LtOZCYb9e5doolZXpc7xayyszgyOs7uakTK4n4KsLegLVTRRtq01GpQd/iZjYw5fWMapx9ed+c80MAQ==", + "requires": {} }, "dayjs": { - "version": "1.11.5", - "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.5.tgz", - "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==" + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" }, "debug": { "version": "4.3.4", @@ -10521,6 +11648,14 @@ "ms": "2.1.2" } }, + "decode-named-character-reference": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "requires": { + "character-entities": "^2.0.0" + } + }, "decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -10536,13 +11671,11 @@ } } }, - "deep-eql": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/deep-eql/-/deep-eql-4.1.0.tgz", - "integrity": "sha512-4YM7QHOMBoVWqGPnp3OPPK7+WCIhUR2OTpahlNQFiyTH3QEeiu9MtBiTAJBkfny4PNhpFbV/jm3lv0iCfb40MA==", - "requires": { - "type-detect": "^4.0.0" - } + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true }, "defer-to-connect": { "version": "2.0.1", @@ -10553,7 +11686,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "optional": true, "requires": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -10574,11 +11706,17 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, + "dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==" }, "detect-browser": { "version": "5.3.0", - "resolved": "https://registry.npmmirror.com/detect-browser/-/detect-browser-5.3.0.tgz", + "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==" }, "detect-node": { @@ -10587,27 +11725,42 @@ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "optional": true }, - "dir-compare": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-3.3.0.tgz", - "integrity": "sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==", + "devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "requires": { + "dequal": "^2.0.0" + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "requires": { - "buffer-equal": "^1.0.0", - "minimatch": "^3.0.4" + "path-type": "^4.0.0" + }, + "dependencies": { + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + } } }, "dmg-builder": { - "version": "24.13.3", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-24.13.3.tgz", - "integrity": "sha512-rcJUkMfnJpfCboZoOOPf4L29TRtEieHNOeAbYPWPxlaBw/Z1RKrRA86dOI9rwaI4tQSc/RD82zTNHprfUHXsoQ==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-23.6.0.tgz", + "integrity": "sha512-jFZvY1JohyHarIAlTbfQOk+HnceGjjAdFjVn3n8xlDWKsYNqbO4muca6qXEZTfGXeQMG7TYim6CeS5XKSfSsGA==", "dev": true, "requires": { - "app-builder-lib": "24.13.3", - "builder-util": "24.13.1", - "builder-util-runtime": "9.2.4", + "app-builder-lib": "23.6.0", + "builder-util": "23.6.0", + "builder-util-runtime": "9.1.1", "dmg-license": "^1.0.11", - "fs-extra": "^10.1.0", + "fs-extra": "^10.0.0", "iconv-lite": "^0.6.2", "js-yaml": "^4.1.0" }, @@ -10680,42 +11833,13 @@ } } }, - "dom-align": { - "version": "1.12.3", - "resolved": "https://registry.npmmirror.com/dom-align/-/dom-align-1.12.3.tgz", - "integrity": "sha512-Gj9hZN3a07cbR6zviMUBOMPdWxYhbMI+x+WS0NAIu2zFZmbK8ys9R79g+iG9qLnlCwpFoaB+fKy8Pdv470GsPA==" - }, - "dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, "requires": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - } - }, - "domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" - }, - "domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "requires": { - "domelementtype": "^2.3.0" - } - }, - "domutils": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/domutils/-/domutils-3.0.1.tgz", - "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", - "requires": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.1" + "esutils": "^2.0.2" } }, "dotenv": { @@ -10730,48 +11854,50 @@ "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", "dev": true }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, "ejs": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", - "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dev": true, "requires": { "jake": "^10.8.5" } }, "electron": { - "version": "29.1.1", - "resolved": "https://registry.npmjs.org/electron/-/electron-29.1.1.tgz", - "integrity": "sha512-cXN15NgCi7MkzGo5/23ZQbii+0UfhmUiDjACunmzcUofYCjF42XhFbL7JZnwgI0qtBCCeJU8qZNZt9lU91gUFw==", + "version": "23.3.13", + "resolved": "https://registry.npmjs.org/electron/-/electron-23.3.13.tgz", + "integrity": "sha512-BaXtHEb+KYKLouUXlUVDa/lj9pj4F5kiE0kwFdJV84Y2EU7euIDgPthfKtchhr5MVHmjtavRMIV/zAwEiSQ9rQ==", "requires": { "@electron/get": "^2.0.0", - "@types/node": "^20.9.0", + "@types/node": "^16.11.26", "extract-zip": "^2.0.1" + }, + "dependencies": { + "@types/node": { + "version": "16.18.96", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.96.tgz", + "integrity": "sha512-84iSqGXoO+Ha16j8pRZ/L90vDMKX04QTYMTfYeE1WrjWaZXuchBehGUZEpNgx7JnmlrIHdnABmpjrQjhCnNldQ==" + } } }, "electron-builder": { - "version": "24.13.3", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-24.13.3.tgz", - "integrity": "sha512-yZSgVHft5dNVlo31qmJAe4BVKQfFdwpRw7sFp1iQglDRCDD6r22zfRJuZlhtB5gp9FHUxCMEoWGq10SkCnMAIg==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-23.6.0.tgz", + "integrity": "sha512-y8D4zO+HXGCNxFBV/JlyhFnoQ0Y0K7/sFH+XwIbj47pqaW8S6PGYQbjoObolKBR1ddQFPt4rwp4CnwMJrW3HAw==", "dev": true, "requires": { - "app-builder-lib": "24.13.3", - "builder-util": "24.13.1", - "builder-util-runtime": "9.2.4", - "chalk": "^4.1.2", - "dmg-builder": "24.13.3", - "fs-extra": "^10.1.0", + "@types/yargs": "^17.0.1", + "app-builder-lib": "23.6.0", + "builder-util": "23.6.0", + "builder-util-runtime": "9.1.1", + "chalk": "^4.1.1", + "dmg-builder": "23.6.0", + "fs-extra": "^10.0.0", "is-ci": "^3.0.0", "lazy-val": "^1.0.5", - "read-config-file": "6.3.2", - "simple-update-notifier": "2.0.0", - "yargs": "^17.6.2" + "read-config-file": "6.2.0", + "simple-update-notifier": "^1.0.7", + "yargs": "^17.5.1" }, "dependencies": { "fs-extra": { @@ -10803,62 +11929,15 @@ } } }, - "electron-builder-squirrel-windows": { - "version": "24.13.3", - "resolved": "https://registry.npmjs.org/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-24.13.3.tgz", - "integrity": "sha512-oHkV0iogWfyK+ah9ZIvMDpei1m9ZRpdXcvde1wTpra2U8AFDNNpqJdnin5z+PM1GbQ5BoaKCWas2HSjtR0HwMg==", - "dev": true, - "peer": true, - "requires": { - "app-builder-lib": "24.13.3", - "archiver": "^5.3.1", - "builder-util": "24.13.1", - "fs-extra": "^10.1.0" - }, - "dependencies": { - "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "peer": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "peer": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "peer": true - } - } - }, "electron-is-accelerator": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/electron-is-accelerator/-/electron-is-accelerator-0.1.2.tgz", - "integrity": "sha512-fLGSAjXZtdn1sbtZxx52+krefmtNuVwnJCV2gNiVt735/ARUboMl8jnNC9fZEqQdlAv2ZrETfmBUsoQci5evJA==", - "dev": true + "integrity": "sha512-fLGSAjXZtdn1sbtZxx52+krefmtNuVwnJCV2gNiVt735/ARUboMl8jnNC9fZEqQdlAv2ZrETfmBUsoQci5evJA==" }, "electron-localshortcut": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/electron-localshortcut/-/electron-localshortcut-3.2.1.tgz", "integrity": "sha512-DWvhKv36GsdXKnaFFhEiK8kZZA+24/yFLgtTwJJHc7AFgDjNRIBJZ/jq62Y/dWv9E4ypYwrVWN2bVrCYw1uv7Q==", - "dev": true, "requires": { "debug": "^4.0.1", "electron-is-accelerator": "^0.1.0", @@ -10866,97 +11945,57 @@ "keyboardevents-areequal": "^0.2.1" } }, - "electron-packager": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-17.1.2.tgz", - "integrity": "sha512-XofXdikjYI7MVBcnXeoOvRR+yFFFHOLs3J7PF5KYQweigtgLshcH4W660PsvHr4lYZ03JBpLyEcUB8DzHZ+BNw==", + "electron-osx-sign": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz", + "integrity": "sha512-+hiIEb2Xxk6eDKJ2FFlpofCnemCbjbT5jz+BKGpVBrRNT3kWTGs4DfNX6IzGwgi33hUcXF+kFs9JW+r6Wc1LRg==", "dev": true, "requires": { - "@electron/asar": "^3.2.1", - "@electron/get": "^2.0.0", - "@electron/notarize": "^1.2.3", - "@electron/osx-sign": "^1.0.5", - "@electron/universal": "^1.3.2", - "cross-spawn-windows-exe": "^1.2.0", - "debug": "^4.0.1", - "extract-zip": "^2.0.0", - "filenamify": "^4.1.0", - "fs-extra": "^11.1.0", - "galactus": "^1.0.0", - "get-package-info": "^1.0.0", - "junk": "^3.1.0", - "parse-author": "^2.0.0", - "plist": "^3.0.0", - "rcedit": "^3.0.1", - "resolve": "^1.1.6", - "semver": "^7.1.3", - "yargs-parser": "^21.1.1" + "bluebird": "^3.5.0", + "compare-version": "^0.1.2", + "debug": "^2.6.8", + "isbinaryfile": "^3.0.2", + "minimist": "^1.2.0", + "plist": "^3.0.1" }, "dependencies": { - "@electron/notarize": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@electron/notarize/-/notarize-1.2.4.tgz", - "integrity": "sha512-W5GQhJEosFNafewnS28d3bpQ37/s91CDWqxVchHfmv2dQSTWpOzNlUVQwYzC1ay5bChRV/A9BTL68yj0Pa+TSg==", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "debug": "^4.1.1", - "fs-extra": "^9.0.1" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } + "ms": "2.0.0" } }, - "fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", "dev": true, "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "buffer-alloc": "^1.2.0" } }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true } } }, "electron-publish": { - "version": "24.13.1", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-24.13.1.tgz", - "integrity": "sha512-2ZgdEqJ8e9D17Hwp5LEq5mLQPjqU3lv/IALvgp+4W8VeNhryfGhYEQC/PgDPMrnWUp+l60Ou5SJLsu+k4mhQ8A==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-23.6.0.tgz", + "integrity": "sha512-jPj3y+eIZQJF/+t5SLvsI5eS4mazCbNYqatv5JihbqOstIM13k0d1Z3vAWntvtt13Itl61SO6seicWdioOU5dg==", "dev": true, "requires": { "@types/fs-extra": "^9.0.11", - "builder-util": "24.13.1", - "builder-util-runtime": "9.2.4", - "chalk": "^4.1.2", - "fs-extra": "^10.1.0", + "builder-util": "23.6.0", + "builder-util-runtime": "9.1.1", + "chalk": "^4.1.1", + "fs-extra": "^10.0.0", "lazy-val": "^1.0.5", "mime": "^2.5.2" }, @@ -10996,18 +12035,54 @@ "integrity": "sha512-f9iZD1t3CLy1AS6vzM5EKGa6p9pRcOeEFXRFbaG2Ta+Oe7MkfRQ3fsvPYidzHe1h4i0JvIvpcY55C+B6BZNGtQ==", "dev": true }, + "electron-updater": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-5.3.0.tgz", + "integrity": "sha512-iKEr7yQBcvnQUPnSDYGSWC9t0eF2YbZWeYYYZzYxdl+HiRejXFENjYMnYjoOm2zxyD6Cr2JTHZhp9pqxiXuCOw==", + "requires": { + "@types/semver": "^7.3.6", + "builder-util-runtime": "9.1.1", + "fs-extra": "^10.0.0", + "js-yaml": "^4.1.0", + "lazy-val": "^1.0.5", + "lodash.escaperegexp": "^4.1.2", + "lodash.isequal": "^4.5.0", + "semver": "^7.3.5", + "typed-emitter": "^2.1.0" + }, + "dependencies": { + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==" + } + } + }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -11016,62 +12091,26 @@ "once": "^1.4.0" } }, - "enhanced-resolve": { - "version": "5.15.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.1.tgz", - "integrity": "sha512-3d3JRbwsCLJsYgvb6NuWEG44jjPSOMuS73L/6+7BZuoKm3W+qXnSoIYVHi8dG7Qcg4inAY4jbzkZ7MnskePeDg==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "entities": { - "version": "4.3.1", - "resolved": "https://registry.npmmirror.com/entities/-/entities-4.3.1.tgz", - "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==" - }, "env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" }, - "envinfo": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz", - "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==", - "dev": true - }, - "err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true - }, "errno": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, "optional": true, + "peer": true, "requires": { "prr": "~1.0.1" } }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, "es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "optional": true, "requires": { "get-intrinsic": "^1.2.4" } @@ -11081,18 +12120,42 @@ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" }, - "es-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", - "dev": true - }, "es6-error": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "optional": true }, + "esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, "escalade": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", @@ -11103,16 +12166,187 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "optional": true + "devOptional": true }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "eslint-plugin-react-refresh": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.6.tgz", + "integrity": "sha512-NjGXdm7zgcKRkKMua34qVO9doI7VOxZ6ancSvBELJSSoX97jyndXcSoa8XBh69JoB31dNz3EEzlMcizZl7LaMA==", + "dev": true, + "requires": {} + }, + "eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true + }, + "espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "requires": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + } + }, + "esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } } }, "esrecurse": { @@ -11132,21 +12366,25 @@ } } }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "estree-util-is-identifier-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" }, "extend": { "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "extract-zip": { @@ -11170,8 +12408,7 @@ "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-glob": { "version": "3.3.2", @@ -11203,10 +12440,10 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, - "fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "fastq": { @@ -11228,65 +12465,16 @@ }, "fecha": { "version": "4.2.3", - "resolved": "https://registry.npmmirror.com/fecha/-/fecha-4.2.3.tgz", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" }, - "fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "requires": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - } - }, - "file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } + "flat-cache": "^3.0.4" } }, "filelist": { @@ -11318,23 +12506,6 @@ } } }, - "filename-reserved-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", - "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", - "dev": true - }, - "filenamify": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", - "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", - "dev": true, - "requires": { - "filename-reserved-regex": "^2.0.0", - "strip-outer": "^1.0.1", - "trim-repeated": "^1.0.0" - } - }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -11344,69 +12515,28 @@ "to-regex-range": "^5.0.1" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "requires": { - "locate-path": "^2.0.0" + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" } }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, - "flora-colossus": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/flora-colossus/-/flora-colossus-2.0.0.tgz", - "integrity": "sha512-dz4HxH6pOvbUzZpZ/yXhafjbR2I8cenK5xL0KtBFb7U2ADsR+OwXifnxZjij/pZWF775uSCMzWVd+jDik2H2IA==", - "dev": true, - "requires": { - "debug": "^4.3.4", - "fs-extra": "^10.1.0" - }, - "dependencies": { - "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true - } - } - }, - "foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - } + "follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "dev": true }, "form-data": { "version": "4.0.0", @@ -11419,22 +12549,6 @@ "mime-types": "^2.1.12" } }, - "formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dev": true, - "requires": { - "fetch-blob": "^3.1.2" - } - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true, - "peer": true - }, "fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -11468,52 +12582,26 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true }, "function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, - "galactus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/galactus/-/galactus-1.0.0.tgz", - "integrity": "sha512-R1fam6D4CyKQGNlvJne4dkNF+PvUUl7TAJInvTGa9fti9qAv95quQz29GXapA4d8Ec266mJJxFVh82M4GIIGDQ==", - "dev": true, - "requires": { - "debug": "^4.3.4", - "flora-colossus": "^2.0.0", - "fs-extra": "^10.1.0" - }, - "dependencies": { - "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true - } - } + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true }, "get-caller-file": { "version": "2.0.5", @@ -11533,40 +12621,6 @@ "hasown": "^2.0.0" } }, - "get-package-info": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-package-info/-/get-package-info-1.0.0.tgz", - "integrity": "sha512-SCbprXGAPdIhKAXiG+Mk6yeoFH61JlYunqdFQFHDtLjJlDjFf6x07dsS8acO+xWt52jpdVo49AlVDnUVK1sDNw==", - "dev": true, - "requires": { - "bluebird": "^3.1.1", - "debug": "^2.2.0", - "lodash.get": "^4.0.0", - "read-pkg-up": "^2.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "get-port": { - "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==" - }, "get-stream": { "version": "5.2.0", "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", @@ -11577,13 +12631,19 @@ }, "gl-matrix": { "version": "3.4.3", - "resolved": "https://registry.npmmirror.com/gl-matrix/-/gl-matrix-3.4.3.tgz", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" }, + "gl-vec2": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/gl-vec2/-/gl-vec2-1.3.0.tgz", + "integrity": "sha512-YiqaAuNsheWmUV0Sa8k94kBB0D6RWjwZztyO+trEYS8KzJ6OQB/4686gdrf59wld4hHFIvaxynO3nRxpk1Ij/A==" + }, "glob": { "version": "7.2.3", "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -11602,12 +12662,6 @@ "is-glob": "^4.0.3" } }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, "global-agent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", @@ -11622,6 +12676,12 @@ "serialize-error": "^7.0.1" } }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, "globalthis": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", @@ -11631,25 +12691,10 @@ "define-properties": "^1.1.3" } }, - "globby": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz", - "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==", - "dev": true, - "requires": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" - } - }, "gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "optional": true, "requires": { "get-intrinsic": "^1.1.3" } @@ -11677,9 +12722,21 @@ "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz", "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==", + "dev": true + }, + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, "graphlib": { "version": "2.1.8", - "resolved": "https://registry.npmmirror.com/graphlib/-/graphlib-2.1.8.tgz", + "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", "requires": { "lodash": "^4.17.15" @@ -11695,7 +12752,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "optional": true, "requires": { "es-define-property": "^1.0.0" } @@ -11718,6 +12774,36 @@ "function-bind": "^1.1.2" } }, + "hast-util-to-jsx-runtime": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.0.tgz", + "integrity": "sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==", + "requires": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^1.0.0", + "unist-util-position": "^5.0.0", + "vfile-message": "^4.0.0" + } + }, + "hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "requires": { + "@types/hast": "^3.0.0" + } + }, "hosted-git-info": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", @@ -11727,37 +12813,18 @@ "lru-cache": "^6.0.0" } }, - "html-to-react": { - "version": "1.5.0", - "resolved": "https://registry.npmmirror.com/html-to-react/-/html-to-react-1.5.0.tgz", - "integrity": "sha512-tjihXBgaJZRRYzmkrJZ/Qf9jFayilFYcb+sJxXXE2BVLk2XsNrGeuNCVvhXmvREULZb9dz6NFTBC96DTR/lQCQ==", + "html-parse-stringify": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", + "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==", "requires": { - "domhandler": "^5.0", - "htmlparser2": "^8.0", - "lodash.camelcase": "^4.3.0" + "void-elements": "3.1.0" } }, - "htmlparser2": { - "version": "8.0.1", - "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-8.0.1.tgz", - "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", - "requires": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "entities": "^4.3.0" - } - }, - "http-basic": { - "version": "8.1.3", - "resolved": "https://registry.npmmirror.com/http-basic/-/http-basic-8.1.3.tgz", - "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", - "requires": { - "caseless": "^0.12.0", - "concat-stream": "^1.6.2", - "http-response-object": "^3.0.1", - "parse-cache-control": "^1.0.1" - } + "html-url-attributes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.0.tgz", + "integrity": "sha512-/sXbVCWayk6GDVg3ctOX6nxaVj7So40FcFAnWlWGNAB1LpYKcV5Cd10APjPjW80O7zYW2MsjBV4zZ7IZO5fVow==" }, "http-cache-semantics": { "version": "4.1.1", @@ -11775,21 +12842,6 @@ "debug": "4" } }, - "http-response-object": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/http-response-object/-/http-response-object-3.0.2.tgz", - "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", - "requires": { - "@types/node": "^10.0.3" - }, - "dependencies": { - "@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmmirror.com/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" - } - } - }, "http2-wrapper": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", @@ -11809,6 +12861,30 @@ "debug": "4" } }, + "i18next": { + "version": "23.11.2", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.11.2.tgz", + "integrity": "sha512-qMBm7+qT8jdpmmDw/kQD16VpmkL9BdL+XNAK5MNbNFaf1iQQq35ZbPrSlqmnNPOSUY4m342+c0t0evinF5l7sA==", + "requires": { + "@babel/runtime": "^7.23.2" + } + }, + "i18next-browser-languagedetector": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.2.1.tgz", + "integrity": "sha512-h/pM34bcH6tbz8WgGXcmWauNpQupCGr25XPp9cZwZInR9XHSjIFDYp1SIok7zSPsTOMxdvuLyu86V+g2Kycnfw==", + "requires": { + "@babel/runtime": "^7.23.2" + } + }, + "i18next-http-backend": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-2.5.0.tgz", + "integrity": "sha512-Z/aQsGZk1gSxt2/DztXk92DuDD20J+rNudT7ZCdTrNOiK8uQppfvdjq9+DFQfpAnFPn3VZS+KQIr1S/W1KxhpQ==", + "requires": { + "cross-fetch": "4.0.0" + } + }, "iconv-corefoundation": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", @@ -11829,18 +12905,12 @@ "safer-buffer": ">= 2.1.2 < 3.0.0" } }, - "icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "requires": {} - }, "ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true + "dev": true, + "optional": true }, "ignore": { "version": "5.3.1", @@ -11853,27 +12923,51 @@ "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "immer": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/immer/-/immer-4.0.2.tgz", - "integrity": "sha512-Q/tm+yKqnKy4RIBmmtISBlhXuSDrB69e9EKTYiIenIKQkXBQir43w+kN/eGiax3wt1J0O1b2fYcNqLSbEcXA7w==" + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.0.4.tgz", + "integrity": "sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw==", + "optional": true, + "peer": true }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "immutable": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", + "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + } } }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -11882,48 +12976,57 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "inline-style-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.3.tgz", + "integrity": "sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==" }, "insert-css": { "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/insert-css/-/insert-css-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/insert-css/-/insert-css-2.0.0.tgz", "integrity": "sha512-xGq5ISgcUP5cvGkS2MMFLtPDBtrtQPSFfC6gA6U8wHKqfjTIMZLZNxOItQnoSjdOzlXOLU/yD32RKC4SvjNbtA==" }, - "interpret": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", - "dev": true + "intersection-observer": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/intersection-observer/-/intersection-observer-0.12.2.tgz", + "integrity": "sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==" }, "is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==" }, "is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", "requires": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" } }, "is-any-array": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/is-any-array/-/is-any-array-2.0.0.tgz", - "integrity": "sha512-WdPV58rT3aOWXvvyuBydnCq4S2BM1Yz8shKxlEpk/6x+GX202XRvXOycEFtNgnHVLoc46hpexPFx8Pz1/sMS0w==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-any-array/-/is-any-array-2.0.1.tgz", + "integrity": "sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ==" }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } }, "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true }, "is-ci": { "version": "3.0.1", @@ -11934,25 +13037,10 @@ "ci-info": "^3.2.0" } }, - "is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "requires": { - "hasown": "^2.0.0" - } - }, "is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==" }, "is-extglob": { "version": "2.1.1", @@ -11976,9 +13064,9 @@ } }, "is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==" }, "is-number": { "version": "7.0.0", @@ -11986,44 +13074,35 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } + "is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true }, "is-what": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "optional": true, + "peer": true }, "isbinaryfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.2.tgz", - "integrity": "sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", "dev": true }, "isexe": { @@ -12032,22 +13111,6 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true - }, - "jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dev": true, - "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" - } - }, "jake": { "version": "10.8.7", "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", @@ -12060,16 +13123,16 @@ "minimatch": "^3.1.2" } }, - "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } + "jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", + "dev": true + }, + "js-cookie": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", + "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==" }, "js-tokens": { "version": "4.0.0", @@ -12080,26 +13143,52 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, "requires": { "argparse": "^2.0.1" } }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, "json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "json-parse-helpfulerror": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", + "integrity": "sha512-XgP0FGR77+QhUxjXkwOMkC94k3WtqEBfcnjWqhRd82qTat4SWKRE+9kUnynz/shm3I4ea2+qISvTIeGTNU7kJg==", + "dev": true, + "requires": { + "jju": "^1.1.0" + } }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "json-stable-stringify": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz", + "integrity": "sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==", + "requires": { + "call-bind": "^1.0.5", + "isarray": "^2.0.5", + "jsonify": "^0.0.1", + "object-keys": "^1.1.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + } + } + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "json-stringify-safe": { @@ -12110,7 +13199,7 @@ }, "json2mq": { "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/json2mq/-/json2mq-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==", "requires": { "string-convert": "^0.2.0" @@ -12130,23 +13219,20 @@ "graceful-fs": "^4.1.6" } }, - "junk": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", - "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", - "dev": true + "jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==" }, "keyboardevent-from-electron-accelerator": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/keyboardevent-from-electron-accelerator/-/keyboardevent-from-electron-accelerator-2.0.0.tgz", - "integrity": "sha512-iQcmNA0M4ETMNi0kG/q0h/43wZk7rMeKYrXP7sqKIJbHkTU8Koowgzv+ieR/vWJbOwxx5nDC3UnudZ0aLSu4VA==", - "dev": true + "integrity": "sha512-iQcmNA0M4ETMNi0kG/q0h/43wZk7rMeKYrXP7sqKIJbHkTU8Koowgzv+ieR/vWJbOwxx5nDC3UnudZ0aLSu4VA==" }, "keyboardevents-areequal": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/keyboardevents-areequal/-/keyboardevents-areequal-0.2.2.tgz", - "integrity": "sha512-Nv+Kr33T0mEjxR500q+I6IWisOQ0lK1GGOncV0kWE6n4KFmpcu7RUX5/2B0EUtX51Cb0HjZ9VJsSY3u4cBa0kw==", - "dev": true + "integrity": "sha512-Nv+Kr33T0mEjxR500q+I6IWisOQ0lK1GGOncV0kWE6n4KFmpcu7RUX5/2B0EUtX51Cb0HjZ9VJsSY3u4cBa0kw==" }, "keyv": { "version": "4.5.4", @@ -12156,33 +13242,18 @@ "json-buffer": "3.0.1" } }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, "lazy-val": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", - "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==", - "dev": true - }, - "lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "peer": true, - "requires": { - "readable-stream": "^2.0.5" - } + "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==" }, "less": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", "dev": true, + "optional": true, + "peer": true, "requires": { "copy-anything": "^2.0.1", "errno": "^0.1.1", @@ -12201,114 +13272,57 @@ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, - "optional": true + "optional": true, + "peer": true } } }, - "less-loader": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.2.0.tgz", - "integrity": "sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==", - "dev": true, - "requires": {} - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ==", + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true - } + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" } }, - "loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "lib-esm": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/lib-esm/-/lib-esm-0.3.0.tgz", + "integrity": "sha512-P7YcG7OnoaGL2h4j46g/m0P2xHMXlYf+0iCDvVrEfzUVxLe+abytgd2VjUhj9puqEgqRGEDbT504YWj75jHacA==", "dev": true }, - "loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "dev": true, - "peer": true + "lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==" }, - "lodash.difference": { + "lodash.isequal": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", - "dev": true, - "peer": true + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true, - "peer": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true, - "peer": true - }, - "lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", - "dev": true, - "peer": true + "longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==" }, "loose-envify": { "version": "1.4.0", @@ -12327,17 +13341,26 @@ "version": "6.0.0", "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "devOptional": true, "requires": { "yallist": "^4.0.0" } }, + "magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.13" + } + }, "make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, "optional": true, + "peer": true, "requires": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -12348,7 +13371,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "optional": true + "optional": true, + "peer": true } } }, @@ -12361,41 +13385,129 @@ "escape-string-regexp": "^4.0.0" } }, - "mdast-add-list-metadata": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/mdast-add-list-metadata/-/mdast-add-list-metadata-1.0.1.tgz", - "integrity": "sha512-fB/VP4MJ0LaRsog7hGPxgOrSL3gE/2uEdZyDuSEnKCv/8IkYHiDkIQSbChiJoHyxZZXZ9bzckyRk+vNxFzh8rA==", + "md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dev": true, "requires": { - "unist-util-visit-parents": "1.1.2" + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" } }, "mdast-util-from-markdown": { - "version": "0.8.5", - "resolved": "https://registry.npmmirror.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", - "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz", + "integrity": "sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==", "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^2.0.0", - "micromark": "~2.11.0", - "parse-entities": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + } + }, + "mdast-util-mdx-expression": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz", + "integrity": "sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==", + "requires": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + } + }, + "mdast-util-mdx-jsx": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.2.tgz", + "integrity": "sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==", + "requires": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-remove-position": "^5.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + } + }, + "mdast-util-mdxjs-esm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "requires": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + } + }, + "mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "requires": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + } + }, + "mdast-util-to-hast": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.1.0.tgz", + "integrity": "sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==", + "requires": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + } + }, + "mdast-util-to-markdown": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz", + "integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==", + "requires": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" } }, "mdast-util-to-string": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", - "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==" - }, - "memoize-one": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz", - "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "requires": { + "@types/mdast": "^4.0.0" + } }, "merge2": { "version": "1.4.1", @@ -12404,14 +13516,216 @@ "dev": true }, "micromark": { - "version": "2.11.4", - "resolved": "https://registry.npmmirror.com/micromark/-/micromark-2.11.4.tgz", - "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", + "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", "requires": { + "@types/debug": "^4.0.0", "debug": "^4.0.0", - "parse-entities": "^2.0.0" + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, + "micromark-core-commonmark": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.0.tgz", + "integrity": "sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==", + "requires": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-factory-destination": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "requires": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-factory-label": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "requires": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "requires": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-factory-title": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", + "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "requires": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-factory-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "requires": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "requires": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "requires": { + "micromark-util-symbol": "^2.0.0" + } + }, + "micromark-util-classify-character": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "requires": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-util-combine-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", + "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "requires": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-util-decode-numeric-character-reference": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", + "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "requires": { + "micromark-util-symbol": "^2.0.0" + } + }, + "micromark-util-decode-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", + "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "requires": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==" + }, + "micromark-util-html-tag-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", + "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==" + }, + "micromark-util-normalize-identifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "requires": { + "micromark-util-symbol": "^2.0.0" + } + }, + "micromark-util-resolve-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "requires": { + "micromark-util-types": "^2.0.0" + } + }, + "micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "requires": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "micromark-util-subtokenize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", + "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", + "requires": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==" + }, + "micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==" + }, "micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", @@ -12431,12 +13745,14 @@ "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true }, "mime-types": { "version": "2.1.35", "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, "requires": { "mime-db": "1.52.0" } @@ -12450,6 +13766,7 @@ "version": "3.1.2", "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -12488,14 +13805,14 @@ } }, "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "dev": true }, "ml-array-max": { "version": "1.2.4", - "resolved": "https://registry.npmmirror.com/ml-array-max/-/ml-array-max-1.2.4.tgz", + "resolved": "https://registry.npmjs.org/ml-array-max/-/ml-array-max-1.2.4.tgz", "integrity": "sha512-BlEeg80jI0tW6WaPyGxf5Sa4sqvcyY6lbSn5Vcv44lp1I2GR6AWojfUvLnGTNsIXrZ8uqWmo8VcG1WpkI2ONMQ==", "requires": { "is-any-array": "^2.0.0" @@ -12503,7 +13820,7 @@ }, "ml-array-min": { "version": "1.2.3", - "resolved": "https://registry.npmmirror.com/ml-array-min/-/ml-array-min-1.2.3.tgz", + "resolved": "https://registry.npmjs.org/ml-array-min/-/ml-array-min-1.2.3.tgz", "integrity": "sha512-VcZ5f3VZ1iihtrGvgfh/q0XlMobG6GQ8FsNyQXD3T+IlstDv85g8kfV0xUG1QPRO/t21aukaJowDzMTc7j5V6Q==", "requires": { "is-any-array": "^2.0.0" @@ -12511,7 +13828,7 @@ }, "ml-array-rescale": { "version": "1.3.7", - "resolved": "https://registry.npmmirror.com/ml-array-rescale/-/ml-array-rescale-1.3.7.tgz", + "resolved": "https://registry.npmjs.org/ml-array-rescale/-/ml-array-rescale-1.3.7.tgz", "integrity": "sha512-48NGChTouvEo9KBctDfHC3udWnQKNKEWN0ziELvY3KG25GR5cA8K8wNVzracsqSW1QEkAXjTNx+ycgAv06/1mQ==", "requires": { "is-any-array": "^2.0.0", @@ -12520,19 +13837,14 @@ } }, "ml-matrix": { - "version": "6.10.2", - "resolved": "https://registry.npmmirror.com/ml-matrix/-/ml-matrix-6.10.2.tgz", - "integrity": "sha512-+yxwzMazC76DAsgEvDrdCfRMH7+lO7UdnuWllavnPeWkPD2oIBA6rLzvst7BFYUxzgRz/h6V6lLzYIYtTvINbw==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/ml-matrix/-/ml-matrix-6.11.0.tgz", + "integrity": "sha512-7jr9NmFRkaUxbKslfRu3aZOjJd2LkSitCGv+QH9PF0eJoEG7jIpjXra1Vw8/kgao8+kHCSsJONG6vfWmXQ+/Eg==", "requires": { - "is-any-array": "^2.0.0", + "is-any-array": "^2.0.1", "ml-array-rescale": "^1.3.7" } }, - "moment": { - "version": "2.29.4", - "resolved": "https://registry.npmmirror.com/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", @@ -12544,23 +13856,24 @@ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, "needle": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", "dev": true, "optional": true, + "peer": true, "requires": { "iconv-lite": "^0.6.3", "sax": "^1.2.4" } }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, "node-addon-api": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", @@ -12568,55 +13881,12 @@ "dev": true, "optional": true }, - "node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "dev": true - }, - "node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", - "dev": true, - "requires": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - } - }, "node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true - } - } - }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -12628,21 +13898,29 @@ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + "notbundle": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/notbundle/-/notbundle-0.4.0.tgz", + "integrity": "sha512-fstkCyAyt5nqHch1GESWqkW9i/D2p80SacBEAoPNoRS0U6qBT6ZSUp2BayS+dbEWTHqheSzwxQwEEK/jpPObHw==", + "dev": true, + "requires": { + "chokidar": "^3.5.3", + "fast-glob": "^3.2.12" + } }, - "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + "note-down": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/note-down/-/note-down-1.0.2.tgz", + "integrity": "sha512-TvLvdM5FJN3Lw9S09sNfcFnfFGioih49btr87VdCecHQAjOhtcRaqducIWDGnP/VJOEv5IxNxD6pmakGg9aAww==", + "dev": true, + "requires": { + "chalk": "=4.1.2" + } }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "optional": true + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, "once": { "version": "1.4.0", @@ -12652,87 +13930,69 @@ "wrappy": "1" } }, + "optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + } + }, "p-cancelable": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true - }, - "parse-author": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-author/-/parse-author-2.0.0.tgz", - "integrity": "sha512-yx5DfvkN8JsHL2xk2Os9oTia467qnvRgey4ahSm2X8epehBLx/gWLcy5KI+Y36ful5DzGbCS6RazqZGgy1gHNw==", - "dev": true, - "requires": { - "author-regex": "^1.0.0" - } - }, - "parse-cache-control": { + "parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/parse-cache-control/-/parse-cache-control-1.0.1.tgz", - "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==" + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } }, "parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", + "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==", "requires": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", - "dev": true, - "requires": { - "error-ex": "^1.2.0" + "@types/unist": "^2.0.0", + "character-entities": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "dependencies": { + "@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + } } }, "parse-node-version": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true }, "path-key": { "version": "3.1.1", @@ -12740,36 +14000,6 @@ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", - "dev": true, - "requires": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", - "dev": true - } - } - }, - "path-type": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", - "dev": true - }, "pend": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", @@ -12792,67 +14022,8 @@ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, - "optional": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - } - } + "optional": true, + "peer": true }, "plist": { "version": "3.1.0", @@ -12876,102 +14047,46 @@ "source-map-js": "^1.0.2" } }, - "postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true, - "requires": {} - }, - "postcss-modules-local-by-default": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz", - "integrity": "sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==", - "dev": true, - "requires": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-modules-scope": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.1.tgz", - "integrity": "sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.4" - } - }, - "postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, - "requires": { - "icss-utils": "^5.0.0" - } - }, - "postcss-selector-parser": { - "version": "6.0.15", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", - "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "probe.gl": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/probe.gl/-/probe.gl-3.6.0.tgz", + "integrity": "sha512-19JydJWI7+DtR4feV+pu4Mn1I5TAc0xojuxVgZdXIyfmTLfUaFnk4OloWK1bKbPtkgGKLr2lnbnCXmpZEcEp9g==", + "requires": { + "@babel/runtime": "^7.0.0", + "@probe.gl/env": "3.6.0", + "@probe.gl/log": "3.6.0", + "@probe.gl/stats": "3.6.0" + } }, "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, - "promise": { - "version": "8.1.0", - "resolved": "https://registry.npmmirror.com/promise/-/promise-8.1.0.tgz", - "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", - "requires": { - "asap": "~2.0.6" - } + "property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==" }, - "promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dev": true, - "requires": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - } - }, - "prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmmirror.com/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true, - "optional": true + "optional": true, + "peer": true }, "pump": { "version": "3.0.0", @@ -12988,13 +14103,11 @@ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true }, - "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "requires": { - "side-channel": "^1.0.4" - } + "qrcode.react": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/qrcode.react/-/qrcode.react-3.1.0.tgz", + "integrity": "sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==", + "requires": {} }, "queue-microtask": { "version": "1.2.3", @@ -13007,120 +14120,102 @@ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "rc-align": { - "version": "4.0.12", - "resolved": "https://registry.npmmirror.com/rc-align/-/rc-align-4.0.12.tgz", - "integrity": "sha512-3DuwSJp8iC/dgHzwreOQl52soj40LchlfUHtgACOUtwGuoFIOVh6n/sCpfqCU8kO5+iz6qR0YKvjgB8iPdE3aQ==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "dom-align": "^1.7.0", - "lodash": "^4.17.21", - "rc-util": "^5.3.0", - "resize-observer-polyfill": "^1.5.1" - } - }, "rc-cascader": { - "version": "3.6.2", - "resolved": "https://registry.npmmirror.com/rc-cascader/-/rc-cascader-3.6.2.tgz", - "integrity": "sha512-sf2otpazlROTzkD3nZVfIzXmfBLiEOBTXA5wxozGXBpS902McDpvF0bdcYBu5hN+rviEAm6Mh9cLXNQ1Ty8wKQ==", + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.24.1.tgz", + "integrity": "sha512-RgKuYgEGPx+6wCgguYFHjMsDZdCyydZd58YJRCfYQ8FObqLnZW0x/vUcEyPjhWIj1EhjV958IcR+NFPDbbj9kg==", "requires": { "@babel/runtime": "^7.12.5", "array-tree-filter": "^2.1.0", "classnames": "^2.3.1", - "rc-select": "~14.1.0", - "rc-tree": "~5.6.3", - "rc-util": "^5.6.1" + "rc-select": "~14.13.0", + "rc-tree": "~5.8.1", + "rc-util": "^5.37.0" } }, "rc-checkbox": { - "version": "2.3.2", - "resolved": "https://registry.npmmirror.com/rc-checkbox/-/rc-checkbox-2.3.2.tgz", - "integrity": "sha512-afVi1FYiGv1U0JlpNH/UaEXdh6WUJjcWokj/nUN2TgG80bfG+MDdbfHKlLcNNba94mbjy2/SXJ1HDgrOkXGAjg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.2.0.tgz", + "integrity": "sha512-8inzw4y9dAhZmv/Ydl59Qdy5tdp9CKg4oPVcRigi+ga/yKPZS5m5SyyQPtYSgbcqHRYOdUhiPSeKfktc76du1A==", "requires": { "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1" + "classnames": "^2.3.2", + "rc-util": "^5.25.2" } }, "rc-collapse": { - "version": "3.3.1", - "resolved": "https://registry.npmmirror.com/rc-collapse/-/rc-collapse-3.3.1.tgz", - "integrity": "sha512-cOJfcSe3R8vocrF8T+PgaHDrgeA1tX+lwfhwSj60NX9QVRidsILIbRNDLD6nAzmcvVC5PWiIRiR4S1OobxdhCg==", + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.7.3.tgz", + "integrity": "sha512-60FJcdTRn0X5sELF18TANwtVi7FtModq649H11mYF1jh83DniMoM4MqY627sEKRCTm4+WXfGDcB7hY5oW6xhyw==", "requires": { "@babel/runtime": "^7.10.1", "classnames": "2.x", "rc-motion": "^2.3.4", - "rc-util": "^5.2.1", - "shallowequal": "^1.1.0" + "rc-util": "^5.27.0" } }, "rc-dialog": { - "version": "8.9.0", - "resolved": "https://registry.npmmirror.com/rc-dialog/-/rc-dialog-8.9.0.tgz", - "integrity": "sha512-Cp0tbJnrvPchJfnwIvOMWmJ4yjX3HWFatO6oBFD1jx8QkgsQCR0p8nUWAKdd3seLJhEC39/v56kZaEjwp9muoQ==", + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.4.0.tgz", + "integrity": "sha512-AScCexaLACvf8KZRqCPz12BJ8olszXOS4lKlkMyzDQHS1m0zj1KZMYgmMCh39ee0Dcv8kyrj8mTqxuLyhH+QuQ==", "requires": { "@babel/runtime": "^7.10.1", + "@rc-component/portal": "^1.0.0-8", "classnames": "^2.2.6", "rc-motion": "^2.3.0", "rc-util": "^5.21.0" } }, "rc-drawer": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/rc-drawer/-/rc-drawer-5.1.0.tgz", - "integrity": "sha512-pU3Tsn99pxGdYowXehzZbdDVE+4lDXSGb7p8vA9mSmr569oc2Izh4Zw5vLKSe/Xxn2p5MSNbLVqD4tz+pK6SOw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.1.0.tgz", + "integrity": "sha512-nBE1rF5iZvpavoyqhSSz2mk/yANltA7g3aF0U45xkx381n3we/RKs9cJfNKp9mSWCedOKWt9FLEwZDaAaOGn2w==", "requires": { - "@babel/runtime": "^7.10.1", + "@babel/runtime": "^7.23.9", + "@rc-component/portal": "^1.1.1", "classnames": "^2.2.6", "rc-motion": "^2.6.1", - "rc-util": "^5.21.2" + "rc-util": "^5.38.1" } }, "rc-dropdown": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/rc-dropdown/-/rc-dropdown-4.0.1.tgz", - "integrity": "sha512-OdpXuOcme1rm45cR0Jzgfl1otzmU4vuBVb+etXM8vcaULGokAKVpKlw8p6xzspG7jGd/XxShvq+N3VNEfk/l5g==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.2.0.tgz", + "integrity": "sha512-odM8Ove+gSh0zU27DUj5cG1gNKg7mLWBYzB5E4nNLrLwBmYEgYP43vHKDGOVZcJSVElQBI0+jTQgjnq0NfLjng==", "requires": { "@babel/runtime": "^7.18.3", + "@rc-component/trigger": "^2.0.0", "classnames": "^2.2.6", - "rc-trigger": "^5.3.1", "rc-util": "^5.17.0" } }, "rc-field-form": { - "version": "1.27.1", - "resolved": "https://registry.npmmirror.com/rc-field-form/-/rc-field-form-1.27.1.tgz", - "integrity": "sha512-RShegnwFu6TH8tl2olCxn+B4Wyh5EiQH8c/7wucbkLNyue05YiH5gomUAg1vbZjp71yFKwegClctsEG5CNBWAA==", + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.44.0.tgz", + "integrity": "sha512-el7w87fyDUsca63Y/s8qJcq9kNkf/J5h+iTdqG5WsSHLH0e6Usl7QuYSmSVzJMgtp40mOVZIY/W/QP9zwrp1FA==", "requires": { "@babel/runtime": "^7.18.0", "async-validator": "^4.1.0", - "rc-util": "^5.8.0" + "rc-util": "^5.32.2" } }, "rc-image": { - "version": "5.7.1", - "resolved": "https://registry.npmmirror.com/rc-image/-/rc-image-5.7.1.tgz", - "integrity": "sha512-QyMfdhoUfb5W14plqXSisaYwpdstcLYnB0MjX5ccIK2rydQM9sDPuekQWu500DDGR2dBaIF5vx9XbWkNFK17Fg==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.6.0.tgz", + "integrity": "sha512-tL3Rvd1sS+frZQ01i+tkeUPaOeFz2iG9/scAt/Cfs0hyCRVA/w0Pu1J/JxIX8blalvmHE0bZQRYdOmRAzWu4Hg==", "requires": { "@babel/runtime": "^7.11.2", + "@rc-component/portal": "^1.0.2", "classnames": "^2.2.6", - "rc-dialog": "~8.9.0", - "rc-util": "^5.0.6" + "rc-dialog": "~9.4.0", + "rc-motion": "^2.6.2", + "rc-util": "^5.34.1" } }, "rc-input": { - "version": "0.0.1-alpha.7", - "resolved": "https://registry.npmmirror.com/rc-input/-/rc-input-0.0.1-alpha.7.tgz", - "integrity": "sha512-eozaqpCYWSY5LBMwlHgC01GArkVEP+XlJ84OMvdkwUnJBSv83Yxa15pZpn7vACAj84uDC4xOA2CoFdbLuqB08Q==", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.4.5.tgz", + "integrity": "sha512-AjzykhwnwYTRSwwgCu70CGKBIAv6bP2nqnFptnNTprph/TF1BAs0Qxl91mie/BR6n827WIJB6ZjaRf9iiMwAfw==", "requires": { "@babel/runtime": "^7.11.1", "classnames": "^2.2.1", @@ -13128,46 +14223,48 @@ } }, "rc-input-number": { - "version": "7.3.6", - "resolved": "https://registry.npmmirror.com/rc-input-number/-/rc-input-number-7.3.6.tgz", - "integrity": "sha512-Se62oMOBn9HwF/gSag+YtAYyKZsjJzEsqmyAJHAnAvPfjZJOu7dLMlQRwBbTtELbKXM/Y5Fztcq8CW2Y9f49qA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-9.0.0.tgz", + "integrity": "sha512-RfcDBDdWFFetouWFXBA+WPEC8LzBXyngr9b+yTLVIygfFu7HiLRGn/s/v9wwno94X7KFvnb28FNynMGj9XJlDQ==", "requires": { "@babel/runtime": "^7.10.1", + "@rc-component/mini-decimal": "^1.0.1", "classnames": "^2.2.5", - "rc-util": "^5.23.0" + "rc-input": "~1.4.0", + "rc-util": "^5.28.0" } }, "rc-mentions": { - "version": "1.9.2", - "resolved": "https://registry.npmmirror.com/rc-mentions/-/rc-mentions-1.9.2.tgz", - "integrity": "sha512-uxb/lzNnEGmvraKWNGE6KXMVXvt8RQv9XW8R0Dqi3hYsyPiAZeHRCHQKdLARuk5YBhFhZ6ga55D/8XuY367g3g==", + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.11.1.tgz", + "integrity": "sha512-upb4AK1SRFql7qGnbLEvJqLMugVVIyjmwBJW9L0eLoN9po4JmJZaBzmKA4089fNtsU8k6l/tdZiVafyooeKnLw==", "requires": { - "@babel/runtime": "^7.10.1", + "@babel/runtime": "^7.22.5", + "@rc-component/trigger": "^2.0.0", "classnames": "^2.2.6", - "rc-menu": "~9.6.0", - "rc-textarea": "^0.3.0", - "rc-trigger": "^5.0.4", - "rc-util": "^5.22.5" + "rc-input": "~1.4.0", + "rc-menu": "~9.13.0", + "rc-textarea": "~1.6.1", + "rc-util": "^5.34.1" } }, "rc-menu": { - "version": "9.6.3", - "resolved": "https://registry.npmmirror.com/rc-menu/-/rc-menu-9.6.3.tgz", - "integrity": "sha512-KY9QilKWgkJZ0JSpOBgIpQF2wMRRodRxpIMYyIJ3Nd5N6xfVLOxXCxevHcBplt+Ez7MhUF+I03MuAKqWQJLZgw==", + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.13.0.tgz", + "integrity": "sha512-1l8ooCB3HcYJKCltC/s7OxRKRjgymdl9htrCeGZcXNaMct0RxZRK6OPV3lPhVksIvAGMgzPd54ClpZ5J4b8cZA==", "requires": { "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.0.0", "classnames": "2.x", "rc-motion": "^2.4.3", - "rc-overflow": "^1.2.0", - "rc-trigger": "^5.1.2", - "rc-util": "^5.12.0", - "shallowequal": "^1.1.0" + "rc-overflow": "^1.3.1", + "rc-util": "^5.27.0" } }, "rc-motion": { - "version": "2.6.2", - "resolved": "https://registry.npmmirror.com/rc-motion/-/rc-motion-2.6.2.tgz", - "integrity": "sha512-4w1FaX3dtV749P8GwfS4fYnFG4Rb9pxvCYPc/b2fw1cmlHJWNNgOFIz7ysiD+eOrzJSvnLJWlNQQncpNMXwwpg==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.0.tgz", + "integrity": "sha512-XIU2+xLkdIr1/h6ohPZXyPBMvOmuyFZQ/T0xnawz+Rh+gh4FINcnZmMT5UTIj6hgI0VLDjTaPeRd+smJeSPqiQ==", "requires": { "@babel/runtime": "^7.11.1", "classnames": "^2.2.1", @@ -13175,55 +14272,54 @@ } }, "rc-notification": { - "version": "4.6.0", - "resolved": "https://registry.npmmirror.com/rc-notification/-/rc-notification-4.6.0.tgz", - "integrity": "sha512-xF3MKgIoynzjQAO4lqsoraiFo3UXNYlBfpHs0VWvwF+4pimen9/H1DYLN2mfRWhHovW6gRpla73m2nmyIqAMZQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.4.0.tgz", + "integrity": "sha512-li19y9RoYJciF3WRFvD+DvWS70jdL8Fr+Gfb/OshK+iY6iTkwzoigmSIp76/kWh5tF5i/i9im12X3nsF85GYdA==", "requires": { "@babel/runtime": "^7.10.1", "classnames": "2.x", - "rc-motion": "^2.2.0", + "rc-motion": "^2.9.0", "rc-util": "^5.20.1" } }, "rc-overflow": { - "version": "1.2.8", - "resolved": "https://registry.npmmirror.com/rc-overflow/-/rc-overflow-1.2.8.tgz", - "integrity": "sha512-QJ0UItckWPQ37ZL1dMEBAdY1dhfTXFL9k6oTTcyydVwoUNMnMqCGqnRNA98axSr/OeDKqR6DVFyi8eA5RQI/uQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.3.2.tgz", + "integrity": "sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==", "requires": { "@babel/runtime": "^7.11.1", "classnames": "^2.2.1", "rc-resize-observer": "^1.0.0", - "rc-util": "^5.19.2" + "rc-util": "^5.37.0" } }, "rc-pagination": { - "version": "3.1.17", - "resolved": "https://registry.npmmirror.com/rc-pagination/-/rc-pagination-3.1.17.tgz", - "integrity": "sha512-/BQ5UxcBnW28vFAcP2hfh+Xg15W0QZn8TWYwdCApchMH1H0CxiaUUcULP8uXcFM1TygcdKWdt3JqsL9cTAfdkQ==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-4.0.4.tgz", + "integrity": "sha512-GGrLT4NgG6wgJpT/hHIpL9nELv27A1XbSZzECIuQBQTVSf4xGKxWr6I/jhpRPauYEWEbWVw22ObG6tJQqwJqWQ==", "requires": { "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1" + "classnames": "^2.3.2", + "rc-util": "^5.38.0" } }, "rc-picker": { - "version": "2.6.10", - "resolved": "https://registry.npmmirror.com/rc-picker/-/rc-picker-2.6.10.tgz", - "integrity": "sha512-9wYtw0DFWs9FO92Qh2D76P0iojUr8ZhLOtScUeOit6ks/F+TBLrOC1uze3IOu+u9gbDAjmosNWLKbBzx/Yuv2w==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.3.2.tgz", + "integrity": "sha512-2NtobLxG2YqllXn4YczbupgIH6PSqzjCfFCnGlgPIY9k0HZti8WmBPjS1OD9JKQl+Tdg0pMVUeTEc07y4X9ZRQ==", "requires": { "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.0.0", "classnames": "^2.2.1", - "date-fns": "2.x", - "dayjs": "1.x", - "moment": "^2.24.0", - "rc-trigger": "^5.0.4", - "rc-util": "^5.4.0", - "shallowequal": "^1.1.0" + "rc-overflow": "^1.3.2", + "rc-resize-observer": "^1.4.0", + "rc-util": "^5.38.1" } }, "rc-progress": { - "version": "3.3.3", - "resolved": "https://registry.npmmirror.com/rc-progress/-/rc-progress-3.3.3.tgz", - "integrity": "sha512-MDVNVHzGanYtRy2KKraEaWeZLri2ZHWIRyaE1a9MQ2MuJ09m+Wxj5cfcaoaR6z5iRpHpA59YeUxAlpML8N4PJw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-4.0.0.tgz", + "integrity": "sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==", "requires": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.6", @@ -13231,9 +14327,9 @@ } }, "rc-rate": { - "version": "2.9.2", - "resolved": "https://registry.npmmirror.com/rc-rate/-/rc-rate-2.9.2.tgz", - "integrity": "sha512-SaiZFyN8pe0Fgphv8t3+kidlej+cq/EALkAJAc3A0w0XcPaH2L1aggM8bhe1u6GAGuQNAoFvTLjw4qLPGRKV5g==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.12.0.tgz", + "integrity": "sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg==", "requires": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.5", @@ -13241,20 +14337,20 @@ } }, "rc-resize-observer": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/rc-resize-observer/-/rc-resize-observer-1.2.0.tgz", - "integrity": "sha512-6W+UzT3PyDM0wVCEHfoW3qTHPTvbdSgiA43buiy8PzmeMnfgnDeb9NjdimMXMl3/TcrvvWl5RRVdp+NqcR47pQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.4.0.tgz", + "integrity": "sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==", "requires": { - "@babel/runtime": "^7.10.1", + "@babel/runtime": "^7.20.7", "classnames": "^2.2.1", - "rc-util": "^5.15.0", + "rc-util": "^5.38.0", "resize-observer-polyfill": "^1.5.1" } }, "rc-segmented": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/rc-segmented/-/rc-segmented-2.1.0.tgz", - "integrity": "sha512-hUlonro+pYoZcwrH6Vm56B2ftLfQh046hrwif/VwLIw1j3zGt52p5mREBwmeVzXnSwgnagpOpfafspzs1asjGw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.3.0.tgz", + "integrity": "sha512-I3FtM5Smua/ESXutFfb8gJ8ZPcvFR+qUgeeGFQHBOvRiRKyAk4aBE5nfqrxXx+h8/vn60DQjOt6i4RNtrbOobg==", "requires": { "@babel/runtime": "^7.11.1", "classnames": "^2.2.1", @@ -13263,137 +14359,126 @@ } }, "rc-select": { - "version": "14.1.9", - "resolved": "https://registry.npmmirror.com/rc-select/-/rc-select-14.1.9.tgz", - "integrity": "sha512-DK01+Q7oCWr5jVPiEp/BTQ8xCB4rI4LfXzZtSmBWJhOMuibyZD1Vlz/DlVKCUFmtBM4SzG4/SltGHoGlcbCqiw==", + "version": "14.13.1", + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.13.1.tgz", + "integrity": "sha512-A1VHqjIOemxLnUGRxLGVqXBs8jGcJemI5NXxOJwU5PQc1wigAu1T4PRLgMkTPDOz8gPhlY9dwsPzMgakMc2QjQ==", "requires": { "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.1.1", "classnames": "2.x", "rc-motion": "^2.0.1", - "rc-overflow": "^1.0.0", - "rc-trigger": "^5.0.4", + "rc-overflow": "^1.3.1", "rc-util": "^5.16.1", - "rc-virtual-list": "^3.2.0" + "rc-virtual-list": "^3.5.2" } }, "rc-slider": { - "version": "10.0.1", - "resolved": "https://registry.npmmirror.com/rc-slider/-/rc-slider-10.0.1.tgz", - "integrity": "sha512-igTKF3zBet7oS/3yNiIlmU8KnZ45npmrmHlUUio8PNbIhzMcsh+oE/r2UD42Y6YD2D/s+kzCQkzQrPD6RY435Q==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-10.5.0.tgz", + "integrity": "sha512-xiYght50cvoODZYI43v3Ylsqiw14+D7ELsgzR40boDZaya1HFa1Etnv9MDkQE8X/UrXAffwv2AcNAhslgYuDTw==", "requires": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.5", - "rc-util": "^5.18.1", - "shallowequal": "^1.1.0" + "rc-util": "^5.27.0" } }, "rc-steps": { - "version": "4.1.4", - "resolved": "https://registry.npmmirror.com/rc-steps/-/rc-steps-4.1.4.tgz", - "integrity": "sha512-qoCqKZWSpkh/b03ASGx1WhpKnuZcRWmvuW+ZUu4mvMdfvFzVxblTwUM+9aBd0mlEUFmt6GW8FXhMpHkK3Uzp3w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-6.0.1.tgz", + "integrity": "sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==", "requires": { - "@babel/runtime": "^7.10.2", + "@babel/runtime": "^7.16.7", "classnames": "^2.2.3", - "rc-util": "^5.0.1" + "rc-util": "^5.16.1" } }, "rc-switch": { - "version": "3.2.2", - "resolved": "https://registry.npmmirror.com/rc-switch/-/rc-switch-3.2.2.tgz", - "integrity": "sha512-+gUJClsZZzvAHGy1vZfnwySxj+MjLlGRyXKXScrtCTcmiYNPzxDFOxdQ/3pK1Kt/0POvwJ/6ALOR8gwdXGhs+A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-4.1.0.tgz", + "integrity": "sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==", "requires": { - "@babel/runtime": "^7.10.1", + "@babel/runtime": "^7.21.0", "classnames": "^2.2.1", - "rc-util": "^5.0.1" + "rc-util": "^5.30.0" } }, "rc-table": { - "version": "7.25.3", - "resolved": "https://registry.npmmirror.com/rc-table/-/rc-table-7.25.3.tgz", - "integrity": "sha512-McsLJ2rg8EEpRBRYN4Pf9gT7ZNYnjvF9zrBpUBBbUX/fxk+eGi5ff1iPIhMyiHsH71/BmTUzX9nc9XqupD0nMg==", + "version": "7.45.4", + "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.45.4.tgz", + "integrity": "sha512-6aSbGrnkN2GLSt3s1x+wa4f3j/VEgg1uKPpaLY5qHH1/nFyreS2V7DFJ0TfUb18allf2FQl7oVYEjTixlBXEyQ==", "requires": { "@babel/runtime": "^7.10.1", + "@rc-component/context": "^1.4.0", "classnames": "^2.2.5", "rc-resize-observer": "^1.1.0", - "rc-util": "^5.22.5", - "shallowequal": "^1.1.0" + "rc-util": "^5.37.0", + "rc-virtual-list": "^3.11.1" } }, "rc-tabs": { - "version": "11.16.1", - "resolved": "https://registry.npmmirror.com/rc-tabs/-/rc-tabs-11.16.1.tgz", - "integrity": "sha512-bR7Dap23YyfzZQwtKomhiFEFzZuE7WaKWo+ypNRSGB9PDKSc6tM12VP8LWYkvmmQHthgwP0WRN8nFbSJWuqLYw==", + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-14.1.1.tgz", + "integrity": "sha512-5nOr9PVpJy2SWHTLgv1+kESDOb0tFzl0cYU9r9d8LfL0Wg9i/n1B558rmkxdQHgBwMqxmwoyPSAbQROxMQe8nw==", "requires": { "@babel/runtime": "^7.11.2", "classnames": "2.x", - "rc-dropdown": "~4.0.0", - "rc-menu": "~9.6.0", + "rc-dropdown": "~4.2.0", + "rc-menu": "~9.13.0", + "rc-motion": "^2.6.2", "rc-resize-observer": "^1.0.0", - "rc-util": "^5.5.0" + "rc-util": "^5.34.1" } }, "rc-textarea": { - "version": "0.3.7", - "resolved": "https://registry.npmmirror.com/rc-textarea/-/rc-textarea-0.3.7.tgz", - "integrity": "sha512-yCdZ6binKmAQB13hc/oehh0E/QRwoPP1pjF21aHBxlgXO3RzPF6dUu4LG2R4FZ1zx/fQd2L1faktulrXOM/2rw==", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.6.3.tgz", + "integrity": "sha512-8k7+8Y2GJ/cQLiClFMg8kUXOOdvcFQrnGeSchOvI2ZMIVvX5a3zQpLxoODL0HTrvU63fPkRmMuqaEcOF9dQemA==", "requires": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.1", + "rc-input": "~1.4.0", "rc-resize-observer": "^1.0.0", - "rc-util": "^5.7.0", - "shallowequal": "^1.1.0" + "rc-util": "^5.27.0" } }, "rc-tooltip": { - "version": "5.2.2", - "resolved": "https://registry.npmmirror.com/rc-tooltip/-/rc-tooltip-5.2.2.tgz", - "integrity": "sha512-jtQzU/18S6EI3lhSGoDYhPqNpWajMtS5VV/ld1LwyfrDByQpYmw/LW6U7oFXXLukjfDHQ7Ju705A82PRNFWYhg==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.2.0.tgz", + "integrity": "sha512-iS/3iOAvtDh9GIx1ulY7EFUXUtktFccNLsARo3NPgLf0QW9oT0w3dA9cYWlhqAKmD+uriEwdWz1kH0Qs4zk2Aw==", "requires": { "@babel/runtime": "^7.11.2", - "classnames": "^2.3.1", - "rc-trigger": "^5.0.0" + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.1" } }, "rc-tree": { - "version": "5.6.6", - "resolved": "https://registry.npmmirror.com/rc-tree/-/rc-tree-5.6.6.tgz", - "integrity": "sha512-HI/q4D4AHOp48OZcBUvJFWkI5OfnZivvGYI0xzI0dy0Mita2KcTGZv7/Yl6Aq3bL3od3x5AqAXq/7qxR3x4Kkg==", + "version": "5.8.5", + "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.8.5.tgz", + "integrity": "sha512-PRfcZtVDNkR7oh26RuNe1hpw11c1wfgzwmPFL0lnxGnYefe9lDAO6cg5wJKIAwyXFVt5zHgpjYmaz0CPy1ZtKg==", "requires": { "@babel/runtime": "^7.10.1", "classnames": "2.x", "rc-motion": "^2.0.1", "rc-util": "^5.16.1", - "rc-virtual-list": "^3.4.8" + "rc-virtual-list": "^3.5.1" } }, "rc-tree-select": { - "version": "5.4.1", - "resolved": "https://registry.npmmirror.com/rc-tree-select/-/rc-tree-select-5.4.1.tgz", - "integrity": "sha512-xhXnKP8Stu2Q7wTcjJaSzSOLd4wmFtUZOwmy1cioaWyPbpiKlYdnALXA/9U49HOaV3KFXdRHE9Yi0KYED7yOAQ==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.19.0.tgz", + "integrity": "sha512-f4l5EsmSGF3ggj76YTzKNPY9SnXfFaer7ZccTSGb3urUf54L+cCqyT+UsPr+S5TAr8mZSxJ7g3CgkCe+cVQ6sw==", "requires": { "@babel/runtime": "^7.10.1", "classnames": "2.x", - "rc-select": "~14.1.0", - "rc-tree": "~5.6.1", + "rc-select": "~14.13.0", + "rc-tree": "~5.8.1", "rc-util": "^5.16.1" } }, - "rc-trigger": { - "version": "5.3.1", - "resolved": "https://registry.npmmirror.com/rc-trigger/-/rc-trigger-5.3.1.tgz", - "integrity": "sha512-5gaFbDkYSefZ14j2AdzucXzlWgU2ri5uEjkHvsf1ynRhdJbKxNOnw4PBZ9+FVULNGFiDzzlVF8RJnR9P/xrnKQ==", - "requires": { - "@babel/runtime": "^7.18.3", - "classnames": "^2.2.6", - "rc-align": "^4.0.0", - "rc-motion": "^2.0.0", - "rc-util": "^5.19.2" - } - }, "rc-upload": { - "version": "4.3.4", - "resolved": "https://registry.npmmirror.com/rc-upload/-/rc-upload-4.3.4.tgz", - "integrity": "sha512-uVbtHFGNjHG/RyAfm9fluXB6pvArAGyAx8z7XzXXyorEgVIWj6mOlriuDm0XowDHYz4ycNK0nE0oP3cbFnzxiQ==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.5.2.tgz", + "integrity": "sha512-QO3ne77DwnAPKFn0bA5qJM81QBjQi0e0NHdkvpFyY73Bea2NfITiotqJqVjHgeYPOJu5lLVR32TNGP084aSoXA==", "requires": { "@babel/runtime": "^7.18.3", "classnames": "^2.2.5", @@ -13401,90 +14486,109 @@ } }, "rc-util": { - "version": "5.23.0", - "resolved": "https://registry.npmmirror.com/rc-util/-/rc-util-5.23.0.tgz", - "integrity": "sha512-lgm6diJ/pLgyfoZY59Vz7sW4mSoQCgozqbBye9IJ7/mb5w5h4T7h+i2JpXAx/UBQxscBZe68q0sP7EW+qfkKUg==", + "version": "5.39.1", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.39.1.tgz", + "integrity": "sha512-OW/ERynNDgNr4y0oiFmtes3rbEamXw7GHGbkbNd9iRr7kgT03T6fT0b9WpJ3mbxKhyOcAHnGcIoh5u/cjrC2OQ==", "requires": { "@babel/runtime": "^7.18.3", - "react-is": "^16.12.0", - "shallowequal": "^1.1.0" + "react-is": "^18.2.0" + }, + "dependencies": { + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + } } }, "rc-virtual-list": { - "version": "3.4.8", - "resolved": "https://registry.npmmirror.com/rc-virtual-list/-/rc-virtual-list-3.4.8.tgz", - "integrity": "sha512-qSN+Rv4i/E7RCTvTMr1uZo7f3crJJg/5DekoCagydo9zsXrxj07zsFSxqizqW+ldGA16lwa8So/bIbV9Ofjddg==", + "version": "3.11.4", + "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.11.4.tgz", + "integrity": "sha512-NbBi0fvyIu26gP69nQBiWgUMTPX3mr4FcuBQiVqagU0BnuX8WQkiivnMs105JROeuUIFczLrlgUhLQwTWV1XDA==", "requires": { + "@babel/runtime": "^7.20.0", "classnames": "^2.2.6", "rc-resize-observer": "^1.0.0", - "rc-util": "^5.15.0" - } - }, - "rcedit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-3.1.0.tgz", - "integrity": "sha512-WRlRdY1qZbu1L11DklT07KuHfRk42l0NFFJdaExELEu4fEQ982bP5Z6OWGPj/wLLIuKRQDCxZJGAwoFsxhZhNA==", - "dev": true, - "requires": { - "cross-spawn-windows-exe": "^1.1.0" + "rc-util": "^5.36.0" } }, "react": { - "version": "16.14.0", - "resolved": "https://registry.npmmirror.com/react/-/react-16.14.0.tgz", - "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" + "loose-envify": "^1.1.0" } }, - "react-confirm-alert": { - "version": "2.8.0", - "resolved": "https://registry.npmmirror.com/react-confirm-alert/-/react-confirm-alert-2.8.0.tgz", - "integrity": "sha512-qvNjJWuWUpTh+q4NecUjCMIWLNDl8IwW6JRIky5pzoiFBXsLWSA2Z1VsaDsQedwgyxEpKnMEJFETkDogBpv/kA==", - "requires": {} - }, "react-dom": { - "version": "16.14.0", - "resolved": "https://registry.npmmirror.com/react-dom/-/react-dom-16.14.0.tgz", - "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", "requires": { "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" + "scheduler": "^0.23.0" } }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + }, + "react-hotkeys-hook": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/react-hotkeys-hook/-/react-hotkeys-hook-4.5.0.tgz", + "integrity": "sha512-Samb85GSgAWFQNvVt3PS90LPPGSf9mkH/r4au81ZP1yOIFayLC3QAvqTgGtJ8YEDMXtPmaVBs6NgipHO6h4Mug==", + "requires": {} + }, + "react-i18next": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-14.1.0.tgz", + "integrity": "sha512-3KwX6LHpbvGQ+sBEntjV4sYW3Zovjjl3fpoHbUwSgFHf0uRBcbeCBLR5al6ikncI5+W0EFb71QXZmfop+J6NrQ==", + "requires": { + "@babel/runtime": "^7.23.9", + "html-parse-stringify": "^3.0.1" + } + }, + "react-icons": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.1.0.tgz", + "integrity": "sha512-D3zug1270S4hbSlIRJ0CUS97QE1yNNKDjzQe3HqY0aefp2CBn9VgzgES27sRR2gOvFK+0CNx/BW0ggOESp6fqQ==", + "requires": {} }, "react-markdown": { - "version": "5.0.3", - "resolved": "https://registry.npmmirror.com/react-markdown/-/react-markdown-5.0.3.tgz", - "integrity": "sha512-jDWOc1AvWn0WahpjW6NK64mtx6cwjM4iSsLHJPNBqoAgGOVoIdJMqaKX4++plhOtdd4JksdqzlDibgPx6B/M2w==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-9.0.1.tgz", + "integrity": "sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==", "requires": { - "@types/mdast": "^3.0.3", - "@types/unist": "^2.0.3", - "html-to-react": "^1.3.4", - "mdast-add-list-metadata": "1.0.1", - "prop-types": "^15.7.2", - "react-is": "^16.8.6", - "remark-parse": "^9.0.0", - "unified": "^9.0.0", - "unist-util-visit": "^2.0.0", - "xtend": "^4.0.1" + "@types/hast": "^3.0.0", + "devlop": "^1.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "html-url-attributes": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "unified": "^11.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" } }, + "react-merge-refs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/react-merge-refs/-/react-merge-refs-2.1.1.tgz", + "integrity": "sha512-jLQXJ/URln51zskhgppGJ2ub7b2WFKGq3cl3NYKtlHoTG+dN2q7EzWrn3hN3EgPsTMvpR9tpq5ijdp7YwFZkag==" + }, + "react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "dev": true + }, "read-config-file": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.3.2.tgz", - "integrity": "sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz", + "integrity": "sha512-gx7Pgr5I56JtYz+WuqEbQHj/xWo+5Vwua2jhb1VwM4Wid5PqYmZ4i00ZB0YEGIfkVBsCv9UrjgyqCiQfS/Oosg==", "dev": true, "requires": { - "config-file-ts": "^0.2.4", "dotenv": "^9.0.2", "dotenv-expand": "^5.1.0", "js-yaml": "^4.1.0", @@ -13492,167 +14596,70 @@ "lazy-val": "^1.0.4" } }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA==", + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - }, - "dependencies": { - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ==", - "dev": true, - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "readdir-glob": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", - "dev": true, - "peer": true, - "requires": { - "minimatch": "^5.1.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "peer": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "peer": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "rechoir": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", - "dev": true, - "requires": { - "resolve": "^1.20.0" + "picomatch": "^2.2.1" } }, "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "regl": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/regl/-/regl-1.7.0.tgz", + "integrity": "sha512-bEAtp/qrtKucxXSJkD4ebopFZYP0q1+3Vb2WECWv/T8yQEgKxDxJ7ztO285tAMaYZVR6mM1GgI6CCn8FROtL1w==" }, "remark-parse": { - "version": "9.0.0", - "resolved": "https://registry.npmmirror.com/remark-parse/-/remark-parse-9.0.0.tgz", - "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", "requires": { - "mdast-util-from-markdown": "^0.8.0" + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" } }, + "remark-rehype": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.0.tgz", + "integrity": "sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==", + "requires": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, "resize-observer-polyfill": { "version": "1.5.1", "resolved": "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" }, - "resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "requires": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, "resolve-alpn": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, "responselike": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", @@ -13661,12 +14668,6 @@ "lowercase-keys": "^2.0.0" } }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true - }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -13677,6 +14678,7 @@ "version": "3.0.2", "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, "requires": { "glob": "^7.1.3" } @@ -13695,6 +14697,15 @@ "sprintf-js": "^1.1.2" } }, + "rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, "run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -13704,11 +14715,14 @@ "queue-microtask": "^1.2.2" } }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true + "rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "optional": true, + "requires": { + "tslib": "^2.1.0" + } }, "safer-buffer": { "version": "2.1.2", @@ -13718,52 +14732,54 @@ }, "sanitize-filename": { "version": "1.6.3", - "resolved": "https://registry.npmmirror.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dev": true, "requires": { "truncate-utf8-bytes": "^1.0.0" } }, + "sass": { + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.75.0.tgz", + "integrity": "sha512-ShMYi3WkrDWxExyxSZPst4/okE9ts46xZmJDSawJQrnte7M1V9fScVB+uNXOVKRBt0PggHOwoZcn8mYX4trnBw==", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, "sax": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", - "dev": true + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" }, "scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "loose-envify": "^1.1.0" } }, - "schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - } + "screenfull": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/screenfull/-/screenfull-5.2.0.tgz", + "integrity": "sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==" }, "scroll-into-view-if-needed": { - "version": "2.2.29", - "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.29.tgz", - "integrity": "sha512-hxpAR6AN+Gh53AdAimHM6C8oTN1ppwVZITihix+WqalywBeFcQ6LdQP5ABNl26nX8GTEL7VT+b8lKpdqq65wXg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", + "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", "requires": { - "compute-scroll-into-view": "^1.0.17" + "compute-scroll-into-view": "^3.0.2" } }, "semver": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "devOptional": true, "requires": { "lru-cache": "^6.0.0" } @@ -13783,29 +14799,19 @@ "type-fest": "^0.13.1" } }, - "serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "requires": { - "randombytes": "^2.1.0" + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" } }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" - }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -13821,37 +14827,9 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, - "shineout": { - "version": "1.10.15", - "resolved": "https://registry.npmmirror.com/shineout/-/shineout-1.10.15.tgz", - "integrity": "sha512-buC6v5i9dj/JKFAeR6v6dAwk8Rno0kE0IICb6BeTolR0L6YULI3nMMmKLRH69ytmPj6ZIIlRjt5CAOgN5UBpHg==", - "requires": { - "@babel/runtime": "^7.14.6", - "classnames": "^2.2.5", - "dayjs": "^1.10.7", - "deep-eql": "^4.0.0", - "immer": "^4.0.0" - } - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true - }, "simple-swizzle": { "version": "0.2.2", - "resolved": "https://registry.npmmirror.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", "requires": { "is-arrayish": "^0.3.1" @@ -13859,26 +14837,28 @@ "dependencies": { "is-arrayish": { "version": "0.3.2", - "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.3.2.tgz", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" } } }, "simple-update-notifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", - "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", + "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", "dev": true, "requires": { - "semver": "^7.5.3" + "semver": "~7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } } }, - "slash": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", - "dev": true - }, "slice-ansi": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", @@ -13910,16 +14890,6 @@ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true }, - "source-map-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-5.0.0.tgz", - "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==", - "dev": true, - "requires": { - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.2" - } - }, "source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", @@ -13930,37 +14900,10 @@ "source-map": "^0.6.0" } }, - "spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", - "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", - "dev": true + "space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==" }, "sprintf-js": { "version": "1.1.3", @@ -13974,24 +14917,9 @@ "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", "dev": true }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, "string-convert": { "version": "0.2.1", - "resolved": "https://registry.npmmirror.com/string-convert/-/string-convert-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==" }, "string-width": { @@ -14005,15 +14933,13 @@ "strip-ansi": "^6.0.1" } }, - "string-width-cjs": { - "version": "npm:string-width@4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, + "stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" } }, "strip-ansi": { @@ -14025,44 +14951,24 @@ "ansi-regex": "^5.0.1" } }, - "strip-ansi-cjs": { - "version": "npm:strip-ansi@6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, - "strip-outer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", - "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", - "dev": true, + "style-to-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.6.tgz", + "integrity": "sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA==", "requires": { - "escape-string-regexp": "^1.0.2" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - } + "inline-style-parser": "0.2.3" } }, - "style-loader": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", - "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", - "dev": true, - "requires": {} + "stylis": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.1.tgz", + "integrity": "sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==" }, "sumchecker": { "version": "3.0.1", @@ -14072,49 +14978,10 @@ "debug": "^4.1.0" } }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "sync-request": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/sync-request/-/sync-request-6.1.0.tgz", - "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", - "requires": { - "http-response-object": "^3.0.1", - "sync-rpc": "^1.2.1", - "then-request": "^6.0.0" - } - }, - "sync-rpc": { - "version": "1.3.6", - "resolved": "https://registry.npmmirror.com/sync-rpc/-/sync-rpc-1.3.6.tgz", - "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", - "requires": { - "get-port": "^3.1.0" - } - }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true - }, "tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dev": true, "requires": { "chownr": "^2.0.0", @@ -14123,33 +14990,13 @@ "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" - } - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "peer": true, - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" }, "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true } } }, @@ -14204,96 +15051,21 @@ "source-map-support": "~0.5.20" } }, - "terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.20", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true }, - "then-request": { - "version": "6.0.2", - "resolved": "https://registry.npmmirror.com/then-request/-/then-request-6.0.2.tgz", - "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", - "requires": { - "@types/concat-stream": "^1.6.0", - "@types/form-data": "0.0.33", - "@types/node": "^8.0.0", - "@types/qs": "^6.2.31", - "caseless": "~0.12.0", - "concat-stream": "^1.6.0", - "form-data": "^2.2.0", - "http-basic": "^8.1.1", - "http-response-object": "^3.0.1", - "promise": "^8.0.0", - "qs": "^6.4.0" - }, - "dependencies": { - "@types/node": { - "version": "8.10.66", - "resolved": "https://registry.npmmirror.com/@types/node/-/node-8.10.66.tgz", - "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" - }, - "form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmmirror.com/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - } - } + "throttle-debounce": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.0.tgz", + "integrity": "sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==" }, "tinycolor2": { - "version": "1.4.2", - "resolved": "https://registry.npmmirror.com/tinycolor2/-/tinycolor2-1.4.2.tgz", - "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==" + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", + "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" }, "tmp": { "version": "0.2.3", @@ -14310,6 +15082,12 @@ "tmp": "^0.2.0" } }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -14321,69 +15099,58 @@ }, "toggle-selection": { "version": "1.0.6", - "resolved": "https://registry.npmmirror.com/toggle-selection/-/toggle-selection-1.0.6.tgz", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" }, - "trim-repeated": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", - "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.2" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - } - } + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==" }, "trough": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==" }, "truncate-utf8-bytes": { "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "dev": true, "requires": { "utf8-byte-length": "^1.0.1" } }, - "ts-loader": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", - "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", + "ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", "dev": true, - "requires": { - "chalk": "^4.1.0", - "enhanced-resolve": "^5.0.0", - "micromatch": "^4.0.0", - "semver": "^7.3.4", - "source-map": "^0.7.4" - }, - "dependencies": { - "source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true - } - } + "requires": {} + }, + "ts-key-enum": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/ts-key-enum/-/ts-key-enum-2.0.12.tgz", + "integrity": "sha512-Ety4IvKMaeG34AyXMp5r11XiVZNDRL+XWxXbVVJjLvq2vxKRttEANBE7Za1bxCAZRdH2/sZT6jFyyTWxXz28hw==" }, "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } }, "type-fest": { "version": "0.13.1", @@ -14391,10 +15158,13 @@ "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", "optional": true }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + "typed-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/typed-emitter/-/typed-emitter-2.1.0.tgz", + "integrity": "sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==", + "requires": { + "rxjs": "*" + } }, "typescript": { "version": "5.4.2", @@ -14407,69 +15177,97 @@ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" }, - "unicorn-magic": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", - "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", - "dev": true - }, "unified": { - "version": "9.2.2", - "resolved": "https://registry.npmmirror.com/unified/-/unified-9.2.2.tgz", - "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", + "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", "requires": { - "bail": "^1.0.0", + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" } }, "unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==" + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "requires": { + "@types/unist": "^3.0.0" + } + }, + "unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "requires": { + "@types/unist": "^3.0.0" + } + }, + "unist-util-remove-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", + "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", + "requires": { + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + } }, "unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", "requires": { - "@types/unist": "^2.0.2" + "@types/unist": "^3.0.0" } }, "unist-util-visit": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" - }, - "dependencies": { - "unist-util-visit-parents": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" - } - } + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" } }, "unist-util-visit-parents": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz", - "integrity": "sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q==" + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "requires": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + } }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" }, + "unixify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz", + "integrity": "sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==", + "dev": true, + "requires": { + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, "update-browserslist-db": { "version": "1.0.13", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", @@ -14489,25 +15287,31 @@ "punycode": "^2.1.0" } }, + "use-force-update": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/use-force-update/-/use-force-update-1.0.11.tgz", + "integrity": "sha512-h4SICYgTJHon8w9dFIqdqR1Vrzdgl4YaRfRwhmAh01kBGljzTICanyfaFU8C4etuEfRdYpE+04XX2ZrEhOWKXQ==", + "requires": {} + }, + "use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "requires": {} + }, + "usehooks-ts": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/usehooks-ts/-/usehooks-ts-3.1.0.tgz", + "integrity": "sha512-bBIa7yUyPhE1BCc0GmR96VU/15l/9gP1Ch5mYdLcFBaFGQsdmXkvjV0TtOqW1yUd6VjIwDunm+flSciCQXujiw==", + "requires": { + "lodash.debounce": "^4.0.8" + } + }, "utf8-byte-length": { "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", - "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==", + "dev": true }, "verror": { "version": "1.10.1", @@ -14531,157 +15335,90 @@ } }, "vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmmirror.com/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", + "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" } }, "vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" } }, - "watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "vite": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz", + "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==", "dev": true, "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" + "esbuild": "^0.18.10", + "fsevents": "~2.3.2", + "postcss": "^8.4.27", + "rollup": "^3.27.1" } }, - "web-streams-polyfill": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", - "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", - "dev": true - }, - "webpack": { - "version": "5.90.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", - "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", + "vite-electron-plugin": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/vite-electron-plugin/-/vite-electron-plugin-0.8.3.tgz", + "integrity": "sha512-3F0xdYO0oIOTNUduV1Lows6P+tq2dtnjN0d/AwCnzbL8MynSzDX9HQpilur7C2VP6zRA3Gu/Uxdhg/IKZP3blA==", "dev": true, "requires": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.21.10", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" + "fast-glob": "^3.2.12", + "notbundle": "~0.4.0", + "vite-plugin-electron": "~0.14.1" }, "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "vite-plugin-electron": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/vite-plugin-electron/-/vite-plugin-electron-0.14.1.tgz", + "integrity": "sha512-QGQ2nJ4wjMf1FaDSkdoC/UskQGiYGcAToATJqJXvqrL4Jmt0CFaZqoDjh1xLicUWEo/X7urHYjhKTqwEeP7F7g==", "dev": true, "requires": {} - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } } } }, - "webpack-cli": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", - "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", - "dev": true, - "requires": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^2.1.1", - "@webpack-cli/info": "^2.0.2", - "@webpack-cli/serve": "^2.0.5", - "colorette": "^2.0.14", - "commander": "^10.0.1", - "cross-spawn": "^7.0.3", - "envinfo": "^7.7.3", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^3.1.1", - "rechoir": "^0.8.0", - "webpack-merge": "^5.7.3" - }, - "dependencies": { - "commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true - } - } - }, - "webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.0" - } - }, - "webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "vite-plugin-electron": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/vite-plugin-electron/-/vite-plugin-electron-0.11.2.tgz", + "integrity": "sha512-umQRmSuA80JVxKB3PfO55o8mFTrW+sEtu7kZ5TYKAnkuYpKw7qgxl4f/65gp8x5BGHJjYh/iIRIE26x3Xqc4mQ==", "dev": true }, + "vite-plugin-electron-renderer": { + "version": "0.13.14", + "resolved": "https://registry.npmjs.org/vite-plugin-electron-renderer/-/vite-plugin-electron-renderer-0.13.14.tgz", + "integrity": "sha512-H1vktJILT+e+bK9P47DQl/UKev+AqLRC+09nhlJju1dpXxB78rRYSsU4UxpCcbJB/yhBvVMcQcRYQqfmxxHMHQ==", + "dev": true, + "requires": { + "lib-esm": "~0.3.0" + } + }, + "void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -14691,12 +15428,6 @@ "isexe": "^2.0.0" } }, - "wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true - }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -14708,17 +15439,6 @@ "strip-ansi": "^6.0.0" } }, - "wrap-ansi-cjs": { - "version": "npm:wrap-ansi@7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", @@ -14730,11 +15450,6 @@ "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", "dev": true }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -14744,8 +15459,7 @@ "yallist": { "version": "4.0.0", "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "devOptional": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs": { "version": "17.7.2", @@ -14777,50 +15491,24 @@ "fd-slicer": "~1.1.0" } }, - "zip-stream": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", - "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", - "dev": true, - "peer": true, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + }, + "zustand": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.2.tgz", + "integrity": "sha512-2cN1tPkDVkwCy5ickKrI7vijSjPksFRfqS6237NzT0vqSsztTNnQdHw9mmN7uBdk3gceVXU0a+21jFzFzAc9+g==", "requires": { - "archiver-utils": "^3.0.4", - "compress-commons": "^4.1.2", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "archiver-utils": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", - "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", - "dev": true, - "peer": true, - "requires": { - "glob": "^7.2.3", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - } - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "use-sync-external-store": "1.2.0" } + }, + "zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==" } } } diff --git a/package.json b/package.json index b8cc2e6..d6fa175 100644 --- a/package.json +++ b/package.json @@ -1,69 +1,86 @@ { "name": "behavior3editor", - "version": "0.2.3", + "version": "1.0.0", + "main": "dist-electron/main/index.js", "description": "行为树编辑器", - "main": "./dist/main.js", + "author": "zhandouxiaojiji & codetypes", + "license": "MIT", + "private": true, + "debug": { + "env": { + "VITE_DEV_SERVER_URL": "http://127.0.0.1:7777/" + } + }, "scripts": { - "prestart": "webpack --config webpack.config.js", - "start": "electron .", - "build": "electron-packager ./ behavior3editor --platform=win32 --arch=x64 --out=./build --overwrite", - "build-mac": "electron-packager ./ behavior3editor --platform=darwin --arch=universal --out=./build --overwrite", - "dist-mac": "npm run prestart && electron-builder --dir && electron-builder --mac", - "dist": "npm run prestart && electron-builder --dir && electron-builder --win --x64" + "dev": "vite", + "build": "tsc && vite build && electron-builder", + "tsc-check:": "tsc --noEmit", + "postinstall": "copy-files-from-to" }, "repository": { "type": "git", "url": "git+ssh://git@github.com/zhandouxiaojiji/behavior3editor.git" }, - "author": "zhandouxiaojiji", - "license": "MIT", "bugs": { "url": "https://github.com/zhandouxiaojiji/behavior3editor/issues" }, - "build": { - "appId": "com.example.app", - "directories": { - "output": "build" - } - }, + "homepage": "https://github.com/zhandouxiaojiji/behavior3editor#readme", "devDependencies": { - "@types/electron-localshortcut": "^3.1.3", - "@types/glob": "^8.1.0", - "@types/node": "^20.11.25", - "@types/rimraf": "^3.0.2", - "copy-webpack-plugin": "^12.0.2", - "css-loader": "^6.10.0", - "electron": "^29.1.1", - "electron-builder": "^24.13.3", - "electron-localshortcut": "^3.2.1", - "electron-packager": "^17.1.2", - "file-loader": "^6.2.0", - "less": "^4.2.0", - "less-loader": "^12.2.0", - "node-fetch": "^3.3.2", - "source-map-loader": "^5.0.0", - "style-loader": "^3.3.4", - "ts-loader": "^9.5.1", - "typescript": "^5.3.3", - "webpack": "^5.90.3", - "webpack-cli": "^5.1.4" + "@stylistic/eslint-plugin-js": "^1.7.0", + "@types/react": "^18.0.28", + "@types/react-dom": "^18.0.11", + "@typescript-eslint/eslint-plugin": "^7.3.1", + "@typescript-eslint/parser": "^7.3.1", + "@vitejs/plugin-react": "^3.1.0", + "copy-files-from-to": "^3.9.1", + "electron": "^23.2.0", + "electron-builder": "^23.6.0", + "eslint": "^8.57.0", + "eslint-plugin-react-refresh": "^0.4.6", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "sass": "^1.60.0", + "typescript": "^5.0.2", + "vite": "^4.1.4", + "vite-electron-plugin": "^0.8.2", + "vite-plugin-electron": "^0.11.1", + "vite-plugin-electron-renderer": "^0.13.12" }, "dependencies": { - "@ant-design/icons": "^4.3.0", - "@antv/g6": "^3.8.5", + "@ant-design/icons": "^5.3.3", + "@antv/g6": "^4.8.24", "@electron/remote": "^2.1.2", - "@types/react": "^16.9.51", - "@types/react-dom": "^16.9.8", - "antd": "^4.6.6", - "lodash": "^4.17.20", - "react": "^16.13.1", - "react-confirm-alert": "^2.6.2", - "react-dom": "^16.13.1", - "react-markdown": "^5.0.2", - "rimraf": "^3.0.2", - "sanitize-filename": "^1.6.3", - "shineout": "^1.6.1", - "sync-request": "^6.1.0" - } + "@types/electron-localshortcut": "^3.1.3", + "@types/node": "^20.11.27", + "ahooks": "^3.7.10", + "antd": "^5.16.0", + "electron-localshortcut": "^3.2.1", + "electron-updater": "^5.3.0", + "i18next": "^23.10.1", + "i18next-browser-languagedetector": "^7.2.0", + "i18next-http-backend": "^2.5.0", + "json-stable-stringify": "^1.1.1", + "react-hotkeys-hook": "^4.5.0", + "react-i18next": "^14.1.0", + "react-icons": "^5.0.1", + "react-markdown": "^9.0.1", + "react-merge-refs": "^2.1.1", + "ts-key-enum": "^2.0.12", + "use-force-update": "^1.0.11", + "usehooks-ts": "^3.0.1", + "zustand": "^4.5.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "copyFilesSettings": { + "whenFileExists": "overwrite" + }, + "copyFiles": [ + { + "from": "pre-commit", + "to": ".git/hooks/pre-commit" + } + ] } diff --git a/pre-commit b/pre-commit new file mode 100644 index 0000000..8e4de50 --- /dev/null +++ b/pre-commit @@ -0,0 +1,18 @@ +#!/bin/sh +echo -e "\nValidating Javascript:\n" +# Check for eslint +which tsc &> /dev/null +if [[ "$?" == 1 ]]; then + echo -e "\t\033[41mPlease install tsc\033[0m" + exit 1 +fi + +tsc --noEmit + +if [[ "$?" == 0 ]]; then + echo -e "\033[42mCOMMIT SUCCEEDED\033[0m\n" + exit 0 +else + echo -e "\033[41mCOMMIT FAILED:\033[0m Your commit contains files that should pass ESLint but do not. Please fix the ESLint errors and try again.\n" + exit 1 +fi \ No newline at end of file diff --git a/public/electron-vite.svg b/public/electron-vite.svg new file mode 100644 index 0000000..7054266 --- /dev/null +++ b/public/electron-vite.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..e02df37833b022f9c4b4637ce7c92cdcf4c5b21c GIT binary patch literal 13788 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 literal 0 HcmV?d00001 diff --git a/static/icons/Action.svg b/public/icons/Action.svg similarity index 100% rename from static/icons/Action.svg rename to public/icons/Action.svg diff --git a/static/icons/Composite.svg b/public/icons/Composite.svg similarity index 100% rename from static/icons/Composite.svg rename to public/icons/Composite.svg diff --git a/static/icons/Condition.svg b/public/icons/Condition.svg similarity index 100% rename from static/icons/Condition.svg rename to public/icons/Condition.svg diff --git a/static/icons/Debug.svg b/public/icons/Debug.svg similarity index 100% rename from static/icons/Debug.svg rename to public/icons/Debug.svg diff --git a/static/icons/Decorator.svg b/public/icons/Decorator.svg similarity index 100% rename from static/icons/Decorator.svg rename to public/icons/Decorator.svg diff --git a/static/icons/Error.svg b/public/icons/Error.svg similarity index 100% rename from static/icons/Error.svg rename to public/icons/Error.svg diff --git a/static/icons/Other.svg b/public/icons/Other.svg similarity index 100% rename from static/icons/Other.svg rename to public/icons/Other.svg diff --git a/public/locales/en.json b/public/locales/en.json new file mode 100644 index 0000000..a4980c4 --- /dev/null +++ b/public/locales/en.json @@ -0,0 +1,129 @@ +{ + "about": "About Behavior3", + "actuaSize": "Actual Size", + "build": "Build", + "batch": "Batch Script", + "buildCompleted": "Build completed", + "cancel": "Cancel", + "copy": "Copy", + "createProject": "Create Project", + "delete": "Delete", + "deleteNode": "Delete Node", + "devTools": "Toggle Developer Tools", + "donotSave": "Don't Save", + "duplicate": "Duplicate", + "editSubtree": "Edit Subtree", + "forceReload": "Force Reload", + "fullscreen": "Toggle Full Screen", + "hide": "Hide Behavior3", + "hideOthers": "Hide Others", + "insertNode": "Insert Node", + "language": "Language", + "moveToTrash": "Move to Trash", + "newFile": "New File...", + "newFolder": "New Folder...", + "newWindow": "New Window", + "open": "Open...", + "openProject": "Open Project", + "paste": "Paste", + "quit": "Quit Behavior3", + "recent": "Recent", + "redo": "Redo", + "reload": "Reload", + "rename": "Rename...", + "replace": "Replace", + "reportIssue": "Report Issue", + "revealFileOnMac": "Reveal in Finder", + "revealFileOnWindows": "Reveal in File Explorer", + "save": "Save", + "saveAll": "Save All", + "saveAs": "Save As...", + "saveAsSubtree": "Save As Subtree", + "searchFile": "Search File", + "services": "Services", + "start": "Start", + "undo": "Undo", + "unhide": "Show All", + "zoomIn": "Zoom In", + "zoomOut": "Zoom Out", + + "menu.edit": "Edit", + "menu.file": "File", + "menu.view": "View", + "menu.window": "Window", + "menu.help": "Help", + + "workspace.saveAllOnClose": "Do you want to save the changes to the following {{count}} files?", + "workspace.saveOnClose": "Do you want to save the changes you made to '{{name}}'?", + + "explorer.deleteFile": "Are you sure you want delete '{{name}}'?", + "explorer.deleteFolder": "Are you sure you want delete '{{name}}' and its contents?", + "explorer.replaceFile": "Are you sure you want replace '{{name}}'?", + "explorer.restoreFileInfo": "You can restore this file from the Trash.", + "explorer.title": "Explorer", + + "tree.overview": "Overview", + "tree.name": "Tree name", + "tree.desc": "Tree desc", + + "regnode.input": "Input: ", + "regnode.output": "Output: ", + "regnode.args": "Args: ", + "regnode.mark": "Mark: ", + "regnode.subtree": "Subtree: ", + + "node.args": "Const arguments", + "node.codePlaceholder": "a.b * 3 > 2", + "node.debug": "Debug", + "node.deleteRootNodeDenied": "Unable to delete the root node", + "node.editSubtreeDenied": "Unable to edit the subtree node", + "node.desc": "Node desc", + "node.fileRequired": "{{field}} field is required", + "node.id": "Node id", + "node.inputVariable": "Input variables", + "node.name": "Node name", + "node.noNodeSelected": "No node selected", + "node.outputVariable": "Output variables", + "node.pasteDataError": "Paste data error", + "node.rootNodeAsSubtree": "Root node cann't be save as subtree", + "node.subtree": "Subtree", + "node.subtreePathError": "You should save the subtree inside the current workspace", + + "node.unknown.desc": "New node", + "node.alwaysFail.desc": "Always return failure", + "node.alwaysFail.doc": "+ Only one child node, multiple child nodes will be executed first\n+ If any child node fails, return failure", + "node.alwaysSuccess.desc": "Always return success", + "node.alwaysSuccess.doc": "+ Only one child node, multiple child nodes will be executed first\n+ If any child node fails, return success", + "node.check.arg1.desc": "Expression", + "node.check.desc": "Evaluate expression", + "node.check.doc": "+ Do simple calculation, return success or failure", + "node.clear.desc": "Clear variable", + "node.clear.output1": "Variable name", + "node.forEach.desc": "Iterate array", + "node.forEach.input1": "Array", + "node.forEach.output1": "Variable name", + "node.forEach.doc": "+ Before executing each child node, set the current variable to the output\n+ Execute all child nodes\n+ Return success or running", + "node.getTime.desc": "Get current time", + "node.getTime.output1": "Current time", + "node.isNull.desc": "Check variable is null", + "node.isNull.input1": "Variable", + "node.log.desc": "Print log", + "node.log.arg1.desc": "Log content", + "node.loop.desc": "Loop execute", + "node.loop.arg1.desc": "Loop times", + "node.loop.input1": "Loop times", + "node.not.desc": "Invert", + "node.not.doc": "+ Invert the return value", + "node.notNull.desc": "Check variable is not null", + "node.notNull.input1": "Variable", + "node.once.desc": "Execute once", + "node.once.doc": "+ Execute all child nodes\n+ Return success or running", + "node.parallel.desc": "Parallel execute", + "node.parallel.doc": "+ Execute all child nodes\n+ Return success", + "node.selector.desc": "Selector execute", + "node.selector.doc": "+ Execute all child nodes\n+ Return success or failure", + "node.sequence.desc": "Sequence execute", + "node.sequence.doc": "+ Execute all child nodes\n+ Return success or failure", + "node.wait.desc": "Wait", + "node.wait.arg1.desc": "Wait time" +} diff --git a/public/locales/zh.json b/public/locales/zh.json new file mode 100644 index 0000000..85f6924 --- /dev/null +++ b/public/locales/zh.json @@ -0,0 +1,129 @@ +{ + "about": "关于 Behavior3", + "actualSize": "实际大小", + "build": "构建", + "batch": "批处理脚本", + "buildCompleted": "构建完成", + "cancel": "取消", + "copy": "复制", + "createProject": "新建项目", + "delete": "删除", + "deleteNode": "删除节点", + "devTools": "切换开发者工具", + "donotSave": "不保存", + "duplicate": "复制", + "editSubtree": "编辑子树", + "forceReload": "强制重新加载", + "fullscreen": "切换全屏", + "hide": "隐藏 Behavior3", + "hideOthers": "隐藏其它", + "insertNode": "插入节点", + "language": "语言", + "moveToTrash": "移至回收站", + "newFile": "新建行为树...", + "newFolder": "新建目录...", + "newWindow": "新建窗口", + "open": "打开...", + "openProject": "打开项目", + "paste": "粘贴", + "quit": "退出 Behavior3", + "recent": "最近打开", + "redo": "重做", + "reload": "重新加载", + "rename": "重命名...", + "replace": "替换", + "reportIssue": "问题反馈", + "revealFileOnMac": "在 Finder 中显示", + "revealFileOnWindows": "在文件管理器中打开", + "save": "保存", + "saveAll": "保存全部", + "saveAs": "另存为...", + "saveAsSubtree": "另存为子树", + "searchFile": "搜索文件", + "services": "服务", + "start": "开始", + "undo": "撤销", + "unhide": "显示所有", + "zoomIn": "放大", + "zoomOut": "缩小", + + "menu.file": "文件", + "menu.edit": "编辑", + "menu.view": "视图", + "menu.window": "窗口", + "menu.help": "帮助", + + "workspace.saveAllOnClose": "你需要保存对以下 {{count}} 个文件的修改吗?", + "workspace.saveOnClose": "你需要保存对文件 {{name}} 的修改吗?", + + "explorer.deleteFile": "你确定要删除文件 '{{name}}'?", + "explorer.deleteFolder": "你确定要删除目录 '{{name}}'?", + "explorer.replaceFile": "你确定要替换文件 '{{name}}'?", + "explorer.restoreFileInfo": "你可以从回收站恢复此文件。", + "explorer.title": "资源浏览", + + "tree.overview": "概况", + "tree.name": "行为树", + "tree.desc": "说明", + + "regnode.input": "输入:", + "regnode.output": "输出:", + "regnode.args": "参数:", + "regnode.mark": "备注:", + "regnode.subtree": "子树:", + + "node.args": "常量参数", + "node.codePlaceholder": "a.b * 3 > 2", + "node.debug": "调试", + "node.deleteRootNodeDenied": "不能删除根节点", + "node.editSubtreeDenied": "不能编辑子树节点", + "node.desc": "节点说明", + "node.fileRequired": "字段{{field}}必填", + "node.id": "节点标识", + "node.inputVariable": "输入变量", + "node.name": "节点名称", + "node.noNodeSelected": "未选择任务节点", + "node.outputVariable": "输出变量", + "node.pasteDataError": "粘贴数据出错", + "node.rootNodeAsSubtree": "根节点不能保存为子树", + "node.subtree": "子树", + "node.subtreePathError": "子树必须保存在当前工作区的目录内", + + "node.unknown.desc": "新建节点", + "node.alwaysFail.desc": "始终返回失败", + "node.alwaysFail.doc": "+ 只能有一个子节点,多个仅执行第一个\n+ 不管子节点是否成功都返回失败", + "node.alwaysSuccess.desc": "始终返回成功", + "node.alwaysSuccess.doc": "+ 只能有一个子节点,多个仅执行第一个\n+ 不管子节点是否成功都返回成功", + "node.check.arg1.desc": "表达式", + "node.check.desc": "对表达式进行求值", + "node.check.doc": "+ 做简单数值公式判定,返回成功或失败", + "node.clear.desc": "清除变量", + "node.clear.output1": "清除的变量名", + "node.forEach.desc": "遍历数组", + "node.forEach.input1": "数组", + "node.forEach.output1": "变量名", + "node.forEach.doc": "+ 每次执行子节点前会设置当前遍历到的变量\n+ 会执行所有子节点\n+ 永远返回成功/正在运行", + "node.getTime.desc": "获取当前时间", + "node.getTime.output1": "当前时间", + "node.isNull.desc": "判断变量是否为空", + "node.isNull.input1": "判断的变量", + "node.log.desc": "打印日志", + "node.log.arg1.desc": "日志内容", + "node.loop.desc": "循环执行", + "node.loop.arg1.desc": "循环次数", + "node.loop.input1": "循环次数", + "node.not.desc": "取反", + "node.not.doc": "+ 将子节点的返回值取反", + "node.notNull.desc": "判断变量是否存在", + "node.notNull.input1": "判断的变量", + "node.once.desc": "只执行一次", + "node.once.doc": "+ 可以接多个子节点,子节点默认全部执行\n+ 被打断后该节点后的子节点依旧不会执行\n+ 该节点执行后永远返回成功", + "node.parallel.desc": "并行执行", + "node.parallel.doc": "+ 执行所有子节点并返回成功", + "node.selector.desc": "选择执行", + "node.selector.doc": "+ 一直往下执行,有子节点返回成功则返回成功,若全部节点返回失败则返回失败\n+ 子节点是或 (OR) 的关系", + "node.sequence.desc": "顺序执行", + "node.sequence.doc": "+ 一直往下执行,只有当所有子节点都返回成功, 才返回成功\n+ 子节点是与(AND)的关系", + "node.wait.desc": "等待", + "node.wait.arg1.desc": "等待时间" +} diff --git a/public/logo.svg b/public/logo.svg new file mode 100644 index 0000000..7054266 --- /dev/null +++ b/public/logo.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/render-process/Editor/Editor.css b/render-process/Editor/Editor.css deleted file mode 100644 index 53434a6..0000000 --- a/render-process/Editor/Editor.css +++ /dev/null @@ -1,28 +0,0 @@ -.editor { - width : 100%; - height : 100%; - overflow: hidden; -} - -.editorBd { - width : 100%; - height : 100%; - display: flex; - -} - -.editorContent { - /* min-width: 500px; */ - height : 100%; -} - -.editorSidebar { - /* min-width: 500px; */ - height : 100%; - overflow-y: auto; -} - -.mind { - width : 100%; - height: 800px; -} \ No newline at end of file diff --git a/render-process/Editor/NodePanel.tsx b/render-process/Editor/NodePanel.tsx deleted file mode 100644 index 79875f2..0000000 --- a/render-process/Editor/NodePanel.tsx +++ /dev/null @@ -1,349 +0,0 @@ -import React from "react"; -import { - Card, - Divider, - Form, - Input, - AutoComplete, - Select, - Switch, - InputNumber, - notification, - message, -} from "antd"; -import { INode } from "@antv/g6/lib/interface/item"; -import { - BehaviorNodeModel, - BehaviorNodeTypeModel, - ArgsDefType, -} from "../../common/BehaviorTreeModel"; -import Settings from "../../main-process/Settings"; -import { FormInstance } from "antd/lib/form"; -import Markdown from "react-markdown"; - -const { Item } = Form; -const { Option } = Select; - -interface NodePanelProps { - isSubtreeNode: boolean; - model: BehaviorNodeModel; - settings: Settings; - updateNode: (id: string, forceUpdate: boolean) => void; - pushUndoStack: () => void; -} - -interface NodePanelState {} - -export default class NodePanel extends React.Component { - formRef = React.createRef(); - - componentDidUpdate() { - this.formRef.current.resetFields(); - this.formRef.current.setFieldsValue(this.getInitialValues()); - } - - getInitialValues() { - const { model } = this.props; - const initialValues: any = { - name: model.name, - desc: model.desc, - debug: model.debug, - path: model.path, - customArgs: model.args ? JSON.stringify(model.args, null, " ") : "", - }; - if (model.args) { - for (let k in model.args) { - initialValues[`args.${k}`] = model.args[k]; - } - } - if (model.input) { - model.input.forEach((v, i) => { - initialValues[`input.${i}`] = v; - }); - } - if (model.output) { - model.output.forEach((v, i) => { - initialValues[`output.${i}`] = v; - }); - } - return initialValues; - } - - onFinish = (values: any) => { - console.log("Success:", values); - const { updateNode, pushUndoStack, model, settings } = this.props; - const conf = settings.getNodeConf(values.name); - if (!conf) { - notification.warn({ message: `节点${values.name}未定义` }); - return; - } - var args: any = {}; - if (values.customArgs) { - try { - args = JSON.parse(values.customArgs); - } catch (e) { - message.warn(`您输入的自定义参数不符合json格式${values.customArgs}`); - return; - } - } - - pushUndoStack(); - - var forceUpdate = false; - if (model.name != values.name) { - model.name = values.name; - forceUpdate = true; - } - model.desc = values.desc; - model.debug = values.debug; - - if (model.path !== values.path) { - model.path = values.path; - forceUpdate = true; - } - - if (conf.args) { - conf.args.forEach((e) => { - const k = "args." + e.name; - if (e.type.indexOf("number") > 0) { - args[e.name] = Number(values[k]); - } else { - args[e.name] = values[k]; - } - }); - } - - model.args = args; - this.formRef.current.setFieldsValue({ - customArgs: model.args ? JSON.stringify(model.args, null, " ") : "", - }); - - if (conf.input) { - model.input = []; - conf.input.forEach((e, i) => { - model.input.push(values["input." + i] || ""); - }); - } else { - model.input = null; - } - - if (conf.output) { - model.output = []; - conf.output.forEach((e, i) => { - model.output.push(values["output." + i] || ""); - }); - } else { - model.output = null; - } - - if (forceUpdate) { - this.forceUpdate(); - } - updateNode(model.id.toString(), forceUpdate); - }; - - onFinishFailed = (errorInfo: any) => { - console.log("Failed:", errorInfo); - }; - - handleSubmit = () => { - console.log("handleSubmit"); - this.formRef.current.submit(); - }; - - render() { - const { model, settings, isSubtreeNode } = this.props; - const conf = settings.getNodeConf(model.name); - const title = conf.desc; - - const options: any = []; - settings.nodeConfig.map((e) => { - options.push({ label: `${e.name}(${e.desc})`, value: e.name }); - }); - - const layout = { - labelCol: { span: 6 }, - wrapperCol: { span: 18 }, - }; - return ( - -
- - - - - { - return ( - option.label.toUpperCase().indexOf(inputValue.toUpperCase()) !== - -1 - ); - }} - /> - - - - - - - - - - - - {this.renderInputs(conf, isSubtreeNode)} - {this.renderArgs(conf, isSubtreeNode)} - {this.renderOutputs(conf, isSubtreeNode)} - -
- ); - } - - renderArgs(conf: BehaviorNodeTypeModel, isSubtreeNode: boolean) { - if (!conf || !conf.args || conf.args.length == 0) { - return null; - } - - // 普通参数 - const normalArgs = (e: ArgsDefType) => { - const required = e.type.indexOf("?") == -1; - if (e.type.indexOf("string") >= 0) { - return ; - } else if (e.type.indexOf("int") >= 0) { - return ( - - ); - } else if (e.type.indexOf("float") >= 0) { - return ( - - ); - } else if (e.type.indexOf("boolean") >= 0) { - return ; - } else if (e.type.indexOf("code") >= 0) { - return ( - - ); - } else if (e.type.indexOf("enum") >= 0) { - return ( - - ); - } - }; - - // 自定义参数 - const customArgs = () => { - return ( - - - - ); - }; - - return ( -
- -

常量参数

-
- {conf && - conf.args && - conf.args.map((e, i: number) => { - const required = e.type.indexOf("?") == -1; - return ( - = 0 ? "checked" : undefined - } - rules={[{ required, message: `${e.desc}(${e.name})为必填字段` }]} - > - {normalArgs(e)} - - ); - })} - {customArgs()} -
- ); - } - - renderInputs(conf: BehaviorNodeTypeModel, isSubtreeNode: boolean) { - if (!conf.input || !conf.input || conf.input.length == 0) { - return null; - } - - return ( -
- -

输入变量

-
- {conf.input.map((e, i) => { - return ( - - - - ); - })} -
- ); - } - - renderOutputs(conf: BehaviorNodeTypeModel, isSubtreeNode: boolean) { - if (!conf.output || !conf.output || conf.output.length == 0) { - return null; - } - return ( -
- -

输出变量

-
- {conf.output.map((e, i) => { - return ( - - - - ); - })} -
- ); - } -} diff --git a/render-process/Editor/TreePanel.tsx b/render-process/Editor/TreePanel.tsx deleted file mode 100644 index 6120d2f..0000000 --- a/render-process/Editor/TreePanel.tsx +++ /dev/null @@ -1,89 +0,0 @@ -import React from "react"; -import { Button, Card, Form, Input } from "antd"; -import { BehaviorTreeModel } from "../../common/BehaviorTreeModel"; -import { FormInstance } from "antd/lib/form"; - -const { Item } = Form; - -interface TreePanelProps { - model?: BehaviorTreeModel; - onRenameTree: (name: string) => void; - onRemoveTree: () => void; - onChangeTreeDesc: (desc: string) => void; -} - -interface TreePanelState { -} - -const inlineFormItemLayout = { - labelCol: { - sm: { span: 4 }, - }, - wrapperCol: { - sm: { span: 12 }, - }, -}; - -export default class TreePanel extends React.Component { - name: string = ''; - desc: string = ''; - formRef = React.createRef(); - - componentDidMount() { - const { model } = this.props; - this.name = model.name; - this.desc = model.desc; - this.formRef.current.resetFields(); - this.formRef.current.setFieldsValue({ - name: model.name, - desc: model.desc, - }) - } - - render() { - const { model } = this.props; - if (!model) { - return
; - } - return ( - -
- - - - - - - {/* - - */} -
-
- ); - } - - handleSubmit = () => { - const { model, onRenameTree, onChangeTreeDesc } = this.props; - const name = this.formRef.current.getFieldValue("name"); - const desc = this.formRef.current.getFieldValue("desc"); - if (name != this.name) { - console.log("change name", name); - this.name = name; - model.name = name; - onRenameTree(name); - } - if (desc != this.desc) { - console.log("change desc", desc); - this.desc = desc; - model.desc = desc; - onChangeTreeDesc(desc); - } - } - - handleRemoveTree = () => { - this.props.onRemoveTree(); - } -} diff --git a/render-process/Editor/index.tsx b/render-process/Editor/index.tsx deleted file mode 100644 index 50a85ce..0000000 --- a/render-process/Editor/index.tsx +++ /dev/null @@ -1,690 +0,0 @@ -import G6, { TreeGraph } from "@antv/g6"; -import { G6GraphEvent } from "@antv/g6/lib/interface/behavior"; -import { Col, Row, message } from "antd"; -import * as fs from "fs"; -import * as path from "path"; -import * as React from "react"; -import { - BehaviorNodeModel, - BehaviorTreeModel, - GraphNodeModel, -} from "../../common/BehaviorTreeModel"; -import * as Utils from "../../common/Utils"; -import Settings from "../../main-process/Settings"; -import NodePanel from "./NodePanel"; -import TreePanel from "./TreePanel"; - -import { Item, Matrix } from "@antv/g6/lib/types"; -import { clipboard } from "electron"; -import "./Editor.css"; - -export interface EditorProps { - filepath: string; - onChangeSaveState: (unsave: boolean) => void; - onOpenSubtree: (path: string) => void; -} - -interface EditorState { - curNodeId?: string; - blockNodeSelectChange?: boolean; - viewportMatrix?: Matrix; -} - -export default class Editor extends React.Component { - private ref: React.RefObject; - state: EditorState = {}; - isInEditor: boolean = false; - - private graph: TreeGraph; - private dragSrcId: string; - private dragDstId: string; - private autoId: number; - private undoStack: BehaviorNodeModel[] = []; - private redoStack: BehaviorNodeModel[] = []; - private treeModel: BehaviorTreeModel; - private settings: Settings; - private data: GraphNodeModel; - private unsave: boolean = false; - - constructor(props: EditorProps) { - super(props); - this.ref = React.createRef(); - - this.settings = Utils.getRemoteSettings(); - const str = fs.readFileSync(this.props.filepath, "utf8"); - this.treeModel = JSON.parse(str); - this.data = Utils.createTreeData(this.treeModel.root, this.settings); - this.autoId = Utils.refreshNodeId(this.data); - } - - shouldComponentUpdate(nextProps: EditorProps, nextState: EditorState) { - return ( - this.props.filepath != nextProps.filepath || this.state.curNodeId != nextState.curNodeId - ); - } - - setItemState(item: string | Item, state: string, value: string | boolean) { - if (typeof item === "string") { - item = this.graph.findById(item); - } - if (item) { - this.graph.setItemState(item, state, value); - } - } - - findParent(node: GraphNodeModel) { - if (node.parent) { - return this.graph.findDataById(node.parent) as GraphNodeModel; - } else { - return null; - } - } - - findSubtree(node?: GraphNodeModel): GraphNodeModel | null { - if (node?.path) { - return node; - } else if (node?.parent) { - return this.findSubtree(this.findParent(node)); - } else { - return null; - } - } - - isSubtreeNode(node?: GraphNodeModel): boolean { - if (node?.path) { - return true; - } else if (node?.parent) { - return this.isSubtreeNode(this.findParent(node)); - } else { - return false; - } - } - - isAncestor(ancestor: GraphNodeModel, node: GraphNodeModel): boolean { - if (ancestor.id === node.parent) { - return true; - } else if (node.parent) { - return this.isAncestor( - ancestor, - this.graph.findDataById(node.parent) as GraphNodeModel - ); - } else { - return false; - } - } - - componentDidMount() { - const graph = new TreeGraph({ - container: this.ref.current, - width: window.screen.width * 0.66, - height: window.screen.height, - animate: false, - maxZoom: 2, - // fitCenter: true, - modes: { - default: ["drag-canvas", "zoom-canvas", "click-select", "hover"], - }, - defaultEdge: { - type: "cubic-horizontal", - style: { - stroke: "#A3B1BF", - }, - }, - defaultNode: { - type: "TreeNode", - }, - layout: { - type: "compactBox", - direction: "LR", - getHGap: () => 50, - getWidth: (d: GraphNodeModel) => { - return 150; - }, - getHeight: (d: GraphNodeModel) => { - if (d.size) { - return d.size[1]; - } else { - return 50; - } - }, - }, - }); - - graph.on("viewportchange", (data: any) => { - if (data.action == "translate" || data.action == "zoom") { - this.state.viewportMatrix = data.matrix; - } - }); - - graph.on("contextmenu", (e: G6GraphEvent) => { - require("@electron/remote").Menu.getApplicationMenu().popup(); - }); - - graph.on("canvas:mouseover", () => { - this.isInEditor = true; - }); - - graph.on("canvas:mouseleave", () => { - this.isInEditor = false; - }); - - graph.on("node:click", (e: G6GraphEvent) => { - if (e.shape.cfg.name === "collapse-icon") { - const item = e.item; - this.onSelectNode(item.getID()); - const data = item.getModel(); - if ((data as unknown as GraphNodeModel).children?.length > 0) { - data.collapsed = !data.collapsed; - graph.setItemState(item, "collapsed", data.collapsed as boolean); - e.shape.attr("symbol", data.collapsed ? G6.Marker.expand : G6.Marker.collapse); - this.graph.layout(); - } - } - }); - - graph.on("node:dblclick", (e: G6GraphEvent) => { - const data = this.findSubtree(e.item.getModel() as unknown as GraphNodeModel); - if (data) { - this.props.onOpenSubtree(data.path); - } - }); - - graph.on("node:mouseenter", (e: G6GraphEvent) => { - const { item } = e; - if (item.hasState("selected")) { - return; - } - this.setItemState(item, "hover", true); - }); - - graph.on("node:mouseleave", (e: G6GraphEvent) => { - const { item } = e; - if (item.hasState("selected")) { - return; - } - this.setItemState(item, "hover", false); - }); - - graph.on("nodeselectchange", (e: G6GraphEvent) => { - if (this.state.blockNodeSelectChange) { - // ** 重置选中效果 - this.onSelectNode(this.state.curNodeId); - return; - } - if (e.target) { - this.onSelectNode(e.target.getID()); - } else { - this.onSelectNode(null); - } - }); - - const clearDragDstState = () => { - if (this.dragDstId) { - this.setItemState(this.dragDstId, "dragRight", false); - this.setItemState(this.dragDstId, "dragDown", false); - this.setItemState(this.dragDstId, "dragUp", false); - this.dragDstId = null; - } - }; - - const clearDragSrcState = () => { - if (this.dragSrcId) { - this.setItemState(this.dragSrcId, "dragSrc", false); - this.dragSrcId = null; - } - }; - - graph.on("node:dragstart", (e: G6GraphEvent) => { - this.dragSrcId = e.item.getID(); - this.setItemState(this.dragSrcId, "dragSrc", true); - }); - graph.on("node:dragend", (e: G6GraphEvent) => { - if (this.dragSrcId) { - this.setItemState(this.dragSrcId, "dragSrc", false); - this.dragSrcId = null; - } - }); - - graph.on("node:dragover", (e: G6GraphEvent) => { - const dstNodeId = e.item.getID(); - if (dstNodeId == this.dragSrcId) { - return; - } - - if (this.dragDstId) { - this.setItemState(this.dragDstId, "dragRight", false); - this.setItemState(this.dragDstId, "dragDown", false); - this.setItemState(this.dragDstId, "dragUp", false); - } - - const box = e.item.getBBox(); - if (e.x > box.minX + box.width * 0.6) { - this.setItemState(dstNodeId, "dragRight", true); - } else if (e.y > box.minY + box.height * 0.5) { - this.setItemState(dstNodeId, "dragDown", true); - } else { - this.setItemState(dstNodeId, "dragUp", true); - } - this.dragDstId = dstNodeId; - }); - - graph.on("node:dragleave", (e: G6GraphEvent) => { - clearDragDstState(); - }); - - graph.on("node:drop", (e: G6GraphEvent) => { - const srcNodeId = this.dragSrcId; - const dstNode = e.item; - - var dragDir; - if (dstNode.hasState("dragRight")) { - dragDir = "dragRight"; - } else if (dstNode.hasState("dragDown")) { - dragDir = "dragDown"; - } else if (dstNode.hasState("dragUp")) { - dragDir = "dragUp"; - } - - clearDragSrcState(); - clearDragDstState(); - - if (!srcNodeId) { - console.log("no drag src"); - return; - } - - if (srcNodeId == dstNode.getID()) { - console.log("drop same node"); - return; - } - - const rootData = graph.findDataById("1"); - const srcData = graph.findDataById(srcNodeId) as GraphNodeModel; - const srcParent = this.findParent(srcData); - const dstData = graph.findDataById(dstNode.getID()) as GraphNodeModel; - const dstParent = this.findParent(dstData); - if (!srcParent) { - console.log("no parent!"); - return; - } - - if (this.isAncestor(srcData, dstData)) { - // 不能将父节点拖到自已的子孙节点 - console.log("cannot move to child"); - return; - } - - const removeSrc = () => { - this.pushUndoStack(); - srcParent.children = srcParent.children.filter((e) => e.id != srcData.id); - }; - console.log("dstNode", dstNode); - if (dragDir == "dragRight") { - removeSrc(); - if (!dstData.children) { - dstData.children = []; - } - srcData.parent = dstData.id; - dstData.children.push(srcData); - } else if (dragDir == "dragUp") { - if (!dstParent) { - return; - } - removeSrc(); - const idx = dstParent.children.findIndex((e) => e.id == dstData.id); - srcData.parent = dstParent.id; - dstParent.children.splice(idx, 0, srcData); - } else if (dragDir == "dragDown") { - if (!dstParent) { - return; - } - removeSrc(); - const idx = dstParent.children.findIndex((e) => e.id == dstData.id); - srcData.parent = dstParent.id; - dstParent.children.splice(idx + 1, 0, srcData); - } else { - return; - } - - // console.log("cur data", graph.findDataById('1')); - this.changeWithoutAnim(); - }); - - graph.data(this.data); - graph.render(); - graph.fitCenter(); - graph.set("animate", true); - - this.graph = graph; - - this.forceUpdate(); - } - - /** - * remember the last matrix that triggered by Translate or Zoom action , and restore that matrix where the graph is reconstruct. - */ - restoreViewport() { - if (this.state.viewportMatrix) { - this.graph.getGroup().setMatrix(this.state.viewportMatrix); - } - } - - onSelectNode(curNodeId: string | null) { - const graph = this.graph; - - if (this.state.curNodeId) { - this.setItemState(this.state.curNodeId, "selected", false); - this.setItemState(this.state.curNodeId, "hover", false); - } - - this.setState({ curNodeId }); - if (this.state.curNodeId) { - this.setItemState(this.state.curNodeId, "selected", true); - } - } - - createNode(name: string) { - if (!this.isInEditor) { - return; - } - - console.log("editor create node", name); - const { curNodeId } = this.state; - if (!curNodeId) { - message.warn("未选中节点"); - return; - } - this.pushUndoStack(); - const curNodeData = this.graph.findDataById(curNodeId); - const newNodeData: BehaviorNodeModel = { - id: this.autoId++, - name: name, - }; - if (!curNodeData.children) { - curNodeData.children = []; - } - curNodeData.children.push(Utils.createTreeData(newNodeData, this.settings, curNodeId)); - this.changeWithoutAnim(); - } - - deleteNode() { - console.log("editor delete node"); - const { curNodeId } = this.state; - if (!curNodeId) { - return; - } - - if (curNodeId === "1") { - message.warn("根节点不能删除!"); - return; - } - - this.onSelectNode(null); - this.pushUndoStack(); - const parentData = this.findParent(this.graph.findDataById(curNodeId) as GraphNodeModel); - parentData.children = parentData.children.filter((e) => e.id != curNodeId); - this.changeWithoutAnim(); - } - - changeWithoutAnim() { - this.graph.set("animate", false); - this.graph.changeData(); - this.graph.layout(); - this.graph.set("animate", true); - - this.props.onChangeSaveState(true); - this.unsave = true; - } - - save() { - if (!this.unsave) { - return; - } - const { filepath } = this.props; - const data = this.graph.findDataById("1") as GraphNodeModel; - this.autoId = Utils.refreshNodeId(data); - const root = Utils.createFileData(data); - const treeModel = { - name: path.basename(filepath).slice(0, -5), - root, - desc: this.treeModel.desc, - } as BehaviorTreeModel; - fs.writeFileSync(filepath, JSON.stringify(treeModel, null, 2)); - this.props.onChangeSaveState(false); - this.unsave = false; - - const treeData = Utils.createTreeData(root, this.settings); - this.autoId = Utils.refreshNodeId(treeData); - - this.graph.set("animate", false); - this.graph.changeData(treeData); - this.graph.layout(); - this.restoreViewport(); - this.graph.set("animate", true); - } - - saveAsSubtree(subpath: string) { - const { curNodeId } = this.state; - if (!curNodeId) { - message.warn("未选择一个节点"); - return; - } else if (curNodeId == "1") { - message.warn("根节点不能保存为子树"); - return; - } - const workdir = this.settings.workdir; - if (subpath.indexOf(workdir) == -1) { - message.warn("请保存在工作区中"); - return; - } - const data = this.graph.findDataById(curNodeId) as GraphNodeModel; - const subroot = Utils.createFileData(data); - const subtreeModel = { - name: path.basename(subpath).slice(0, -5), - root: subroot, - desc: data.desc, - } as BehaviorTreeModel; - fs.writeFileSync(subpath, JSON.stringify(subtreeModel, null, 2)); - this.pushUndoStack(); - data.path = subpath.substring(workdir.length + 1); - this.unsave = true; - this.save(); - } - - reload() { - if (!this.unsave) { - const data = this.graph.findDataById("1") as GraphNodeModel; - this.autoId = Utils.refreshNodeId(data); - const root = Utils.createFileData(data); - const treeData = Utils.createTreeData(root, this.settings); - this.autoId = Utils.refreshNodeId(treeData); - this.graph.set("animate", false); - this.graph.changeData(treeData); - this.graph.layout(); - this.restoreViewport(); - this.graph.set("animate", true); - } - } - - getTreeModel() { - const { filepath } = this.props; - const data = this.graph.findDataById("1") as GraphNodeModel; - this.autoId = Utils.refreshNodeId(data); - const root = Utils.createFileData(data); - return { - name: path.basename(filepath).slice(0, -5), - root, - desc: this.treeModel.desc, - } as BehaviorTreeModel; - } - - copyNode() { - if (!this.isInEditor) { - return; - } - - console.log("editor copy node"); - const { curNodeId } = this.state; - if (!curNodeId) { - return; - } - const data = this.graph.findDataById(curNodeId) as GraphNodeModel; - if (data) { - const str = JSON.stringify(Utils.cloneNodeData(data), null, 2); - console.log("copy:", str); - clipboard.writeText(str); - } - } - - pasteNode() { - if (!this.isInEditor) { - return; - } - - const { curNodeId } = this.state; - if (!curNodeId) { - message.warn("未选中节点"); - return; - } - - const curNodeData = this.graph.findDataById(curNodeId); - try { - const str = clipboard.readText(); - if (!str || str == "") { - return; - } - console.log("paste:", str); - const data = Utils.createTreeData(JSON.parse(str), this.settings, curNodeId); - this.autoId = Utils.refreshNodeId(data, this.autoId); - this.onSelectNode(null); - if (!curNodeData.children) { - curNodeData.children = []; - } - this.pushUndoStack(); - curNodeData.children.push(data); - // this.autoId = Utils.refreshNodeId(this.graph.findDataById("1") as GraphNodeModel); - this.changeWithoutAnim(); - } catch (error) { - // message.error("粘贴数据有误"); - console.log(error); - } - } - - useStackData(data: BehaviorNodeModel) { - this.graph.set("animate", false); - this.data = Utils.createTreeData(data, this.settings); - this.autoId = Utils.refreshNodeId(this.data); - this.graph.changeData(this.data); - this.graph.layout(); - this.restoreViewport(); - this.graph.set("animate", true); - - this.props.onChangeSaveState(true); - this.unsave = true; - } - - pushUndoStack(keepRedo?: boolean) { - this.undoStack.push(Utils.cloneNodeData(this.graph.findDataById("1") as GraphNodeModel)); - console.log("push undo", this.undoStack); - if (!keepRedo) { - this.redoStack = []; - } - } - - pushRedoStack() { - this.redoStack.push(Utils.cloneNodeData(this.graph.findDataById("1") as GraphNodeModel)); - console.log("push redo", this.redoStack); - } - - undo() { - if (this.undoStack.length == 0) { - return; - } - const data = this.undoStack.pop(); - this.pushRedoStack(); - this.useStackData(data); - } - - redo() { - if (this.redoStack.length == 0) { - return; - } - const data = this.redoStack.pop(); - this.pushUndoStack(true); - this.useStackData(data); - } - - changeTreeDesc(desc: string) { - this.treeModel.desc = desc; - this.settings.setTreeDesc(this.props.filepath, desc); - this.unsave = true; - this.save(); - } - - render() { - const { curNodeId } = this.state; - console.log("render tree", curNodeId); - var curNode: any; - if (curNodeId) { - curNode = this.graph.findDataById(curNodeId); - } - - return ( -
- - { - this.state.blockNodeSelectChange = false; - }} - /> - { - this.state.blockNodeSelectChange = true; - }} - > - {curNode ? ( - { - if (forceUpdate) { - const data: GraphNodeModel = this.graph.findDataById( - id - ) as GraphNodeModel; - data.conf = this.settings.getNodeConf(data.name); - data.size = Utils.calcTreeNodeSize(data); - this.changeWithoutAnim(); - this.save(); - return; - } - const item = this.graph.findById(id); - item.draw(); - this.props.onChangeSaveState(true); - this.unsave = true; - }} - pushUndoStack={() => { - this.pushUndoStack(); - }} - /> - ) : ( - {}} - onRemoveTree={() => {}} - onChangeTreeDesc={(desc) => { - this.changeTreeDesc(desc); - }} - /> - )} - - -
- ); - } -} diff --git a/render-process/Explorer.tsx b/render-process/Explorer.tsx deleted file mode 100644 index 4b2ba76..0000000 --- a/render-process/Explorer.tsx +++ /dev/null @@ -1,432 +0,0 @@ -import React, { ChangeEvent, Component } from "react"; -import { Input } from "antd"; -import { Tree } from "shineout"; -import { FolderOutlined, FileOutlined, FolderOpenOutlined } from "@ant-design/icons"; -import * as fs from "fs"; -import * as path from "path"; -import { ipcRenderer } from "electron"; -import MainEventType from "../common/MainEventType"; -import Settings from "../main-process/Settings"; -import * as Utils from "../common/Utils"; - -const { Search } = Input; -const DirectoryTree = Tree; - - -class FileDataNode { - name: string; //display name - desc: string; //describe - filepath: string; //file full path - isFolder: boolean; - - settings: Settings; - - parent: FileDataNode; - visible: boolean = true; - children: FileDataNode[]; - - public constructor(init?: Partial, settings?: Settings) { - Object.assign(this, init); - this.settings = settings; - } - - get id() { - return this.filepath; - } - - get text() { - if (!this.desc) { - return this.name; - } - return `${this.name}(${this.desc})`; - } - - get path() { - return this.filepath; - } - - public getRenderData() { - if (!this.visible) { - return null; - } - let ret = new FileDataNode({ - name: this.name, - desc: this.isFolder ? undefined : this.settings.getTreeDesc(this.filepath), - filepath: this.filepath, - isFolder: this.isFolder, - children: new Array(), - }, this.settings); - - for (const child of this.children) { - const data = child.getRenderData(); - if (data) { - ret.children.push(data); - } - } - return ret; - } - - loadChilds(recursive?: boolean) { - const folder = this.path; - if (folder == "" || !fs.existsSync(folder)) { - return []; - } - const files = fs.readdirSync(folder).filter((f) => { - return f.endsWith(".json"); - }); - const list: FileDataNode[] = []; - files.forEach((filename) => { - const fullPath = path.join(folder, filename); - const stat = fs.statSync(fullPath); - const isFolder = stat.isDirectory(); - const name = isFolder ? filename : filename.slice(0, -5); - const node = new FileDataNode({ - name: name, - desc: isFolder ? undefined : this.settings.getTreeDesc(fullPath), - filepath: fullPath, - isFolder: isFolder, - parent: this, - }, this.settings); - - (node.children = - isFolder && recursive ? (node.loadChilds(recursive) as FileDataNode[]) : []), - list.push(node); - }); - list.sort((a, b) => { - const av = a.isFolder ? 100 : 0; - const bv = b.isFolder ? 100 : 0; - return bv - av; - }); - return list; - } - - addChild(filePath: string) { - const isDir = fs.statSync(filePath).isDirectory(); - const newNode = new FileDataNode({ - name: path.basename(filePath), - filepath: filePath, - isFolder: isDir, - parent: this, - children: [], - }, this.settings); - this.children = [newNode, ...this.children]; - } - - removeFromParent() { - const parent = this.parent; - if (parent) { - const index = parent.children.indexOf(this); - parent.children.splice(index, 1); - } - } - - expandSelf(recursive: boolean = true) { - if (this.isFolder) { - this.children = this.loadChilds(recursive); - } - } - - findChild(id: string): FileDataNode { - for (const child of this.children) { - if (child.id == id) { - return child; - } else { - const ret = child.findChild(id); - if (ret) { - return ret; - } - } - } - return null; - } - - getList(): FileDataNode[] { - let ret = new Array(this); - for (const child of this.children) { - const childList = child.getList(); - ret.push(...childList); - } - return ret; - } - - setVisible(keyWord: string) { - let ret = false; - for (let i = this.children.length - 1; i >= 0; i--) { - const child = this.children[i]; - if (!child.isFolder) { - const keyStr = child.text; - child.visible = keyStr.includes(keyWord); - } else { - child.visible = child.setVisible(keyWord); - } - ret = child.visible || ret; - } - return ret; - } - - // name:string; - // path: string; - // isFolder : boolean; - // isEditing?: boolean; - // children?: NodeData[]; -} - -const NodeActions: { [x: string]: string } = { - ["create"]: "New Tree", - ["createFolder"]: "New Folder", - ["rename"]: "Rename", - ["delete"]: "Delete", - ["reveal_in_explorer"]: "Reveal In File Explorer", -}; - -interface ExplorerNodeProps { - visible: boolean; - title: string; - selected: boolean; - expended: boolean; - isLeaf: boolean; - searchKey: string; -} -class ExplorerNode extends Component { - shouldComponentUpdate(nextProps: ExplorerNodeProps) { - return JSON.stringify(this.props) != JSON.stringify(nextProps); - } - - render() { - const { title, visible, selected, expended, isLeaf, searchKey } = this.props; - if (!visible) { - return null; - } - - const index = title.indexOf(searchKey); - const beforeStr = title.substr(0, index); - const afterStr = title.substr(index + searchKey.length); - - return ( -
- {!isLeaf ? (expended ? : ) : } - {isLeaf && index > -1 ? ( - - {beforeStr} - {searchKey} - {afterStr} - - ) : ( - {title} - )} -
- ); - } -} - -export interface ExplorerProps { - workdir: string; - onOpenTree: (path: string) => void; - onDeleteTree: (path: string) => void; -} - - -interface ExplorerState { - root: FileDataNode; - searchKey: string; - selectedKey: string; - defaultExpandedKeys: string[]; - expandedKeys: string[]; - autoExpandParent: boolean; - rightClickNode: { - pageX: number; - pageY: number; - key: string; - }; -} - -export default class Explorer extends Component { - state: ExplorerState = { - root: this.getRootNode(this.props.workdir), - searchKey: "", - selectedKey: "", - rightClickNode: null, - expandedKeys: [], - defaultExpandedKeys: [], - autoExpandParent: true, - }; - - curWorkdir: string = ""; - settings: Settings; - - shouldComponentUpdate(nextProps: ExplorerProps) { - const shouldUpdate = this.curWorkdir != nextProps.workdir; - this.curWorkdir = nextProps.workdir; - return shouldUpdate; - } - - componentDidMount() { - this.settings = Utils.getRemoteSettings(); - ipcRenderer.on(MainEventType.CREATE_TREE, (event: any, path: string) => { - console.log("on Create tree", path); - this.props.onOpenTree(path); - this.state.root.expandSelf(); - this.forceUpdate(); - }); - - ipcRenderer.on(MainEventType.OPEN_DIR, (event: any, workdir: any, workspace: string) => { - console.log("prop on open workspace", workspace); - this.updateRoot(); - this.forceUpdate(); - }); - - this.updateRoot(); - } - - updateRoot() { - var workdir = this.props.workdir; - if (!workdir || workdir === "") { - return; - } - const root = this.getRootNode(workdir); - root.expandSelf() - this.setState({ - root: root, - expandedKeys: [root.id], - defaultExpandedKeys: [root.id], - }); - - this.forceUpdate(); - } - - getRootNode(workdir: string) { - if (workdir && workdir !== "") { - return new FileDataNode({ - name: path.basename(workdir), - filepath: workdir, - isFolder: true, - parent: null, - children: [] - }, this.settings); - } else { - return null; - } - } - - // renderContextMeun(selectedNode: FileDataNode) { - // const actions = Object.keys(NodeActions); - // return ( - // - // {actions.map((action) => { - // const displayName: string = NodeActions[action]; - // return ( - // { - // //this.handleContextMenu({ node: selectedNode, action:{action} }); - // }} - // >{displayName} - // - // ); - // })} - // - // ); - // } - - handleOnSearch(value: string) { - const expandedKeys = this.state.root - .getList() - .map((item) => { - if (item.isFolder) return null; - const title = item.text; - if (title.includes(value) && item.parent) { - return item.parent.id; - } - return null; - }) - .filter((item, i, self) => item && self.indexOf(item) === i); - - const root = this.state.root; - root.setVisible(value || ""); - if (value && value.length > 0) { - this.setState({ - root: root, - searchKey: value, - expandedKeys: expandedKeys, - autoExpandParent: true, - }); - } else { - this.setState({ - root: root, - searchKey: "", - expandedKeys: this.state.defaultExpandedKeys, - autoExpandParent: false, - }); - } - - this.forceUpdate(); - } - - selectNode(id: string) { - this.setState({ - selectedKey: id - }); - this.forceUpdate(); - } - - renderItem(node: FileDataNode) { - return (); - } - - render() { - console.log("render Explorer"); - const { onOpenTree, onDeleteTree, workdir } = this.props; - - const root = this.state.root; - if (!workdir || workdir === "" || !root) { - return `请打开workspace.json文件`; - } - - const nodes = [root.getRenderData()]; - - return ( -
- { - // const value = e.target.value?.toLowerCase(); - // this.handleOnSearch(value); - // }} - onSearch={(value, event) => { - this.handleOnSearch(value?.toLowerCase()); - }} - /> - - { - this.setState({ expandedKeys: expanded }) - this.forceUpdate(); - }} - renderItem={this.renderItem.bind(this)} - onClick={(node: FileDataNode) => { - if (!node.isFolder) { - onOpenTree(node.path); - } - }} - > -
- ); - } -} diff --git a/render-process/RegisterNode.ts b/render-process/RegisterNode.ts deleted file mode 100644 index 444bbce..0000000 --- a/render-process/RegisterNode.ts +++ /dev/null @@ -1,355 +0,0 @@ -import G6 from "@antv/g6"; -import { toBreakWord } from "../common/Utils"; -import Settings from "../main-process/Settings"; -import { BehaviorNodeTypeModel } from "../common/BehaviorTreeModel"; - -const NODE_COLORS: any = { - ["Composite"]: "rgb(91,237,32)", - ["Decorator"]: "rgb(218,167,16)", - ["Condition"]: "rgb(228,20,139)", - ["Action"]: "rgb(91,143,249)", - ["Other"]: "rgb(112,112,112)", - ["Error"]: "rgb(255,0,0)", -}; - -const SELECTED_LINE_WIDTH = 4; - -export default function (settings: Settings) { - const collapseStyle: any = { - "collapse-icon": { - // symbol: G6.Marker.expand, - fill: "blue", - }, - }; - G6.registerNode( - "TreeNode", - { - options: { - type: "rect", - anchorPoints: [ - [0, 0.5], - [1, 0.5], - ], - labelCfg: { - style: { - fill: "blue", - fontSize: 10, - }, - }, - style: { - fill: "white", - }, - stateStyles: { - selected: { - "main-box": { - stroke: "yellow", - lineWidth: SELECTED_LINE_WIDTH, - }, - "name-bg-selected": { - fill: "yellow", - }, - }, - hover: { - stroke: "white", - lineWidth: 3, - }, - dragSrc: { - fill: "gray", - }, - dragRight: { - "drag-right": { - fillOpacity: 0.7, - }, - }, - dragUp: { - "drag-up": { - fillOpacity: 0.7, - }, - }, - dragDown: { - "drag-down": { - fillOpacity: 0.7, - }, - }, - }, - }, - draw(cfg, group) { - const nodeConf = settings.getNodeConf(cfg.name as string); - let classify = nodeConf.type || "Other"; - if ( - !settings.hasNodeConf(cfg.name as string) || - (cfg.path && (!cfg.children || (cfg.children as []).length == 0)) - ) { - classify = "Error"; - } - const color = NODE_COLORS[classify] || "Other"; - var size = cfg.size ? (cfg.size as number[]) : [150, 40]; - const w = size[0]; - const h = size[1]; - const r = 4; - const shape = group.addShape("rect", { - attrs: { - x: 0, - y: 0, - width: w, - height: h, - stroke: color, - lineWidth: 2, - fill: "white", - radius: r, - }, - name: "main-box", - draggable: true, - }); - - // is subtree - if (cfg.path && cfg.id !== "1") { - group.addShape("rect", { - attrs: { - x: -10, - y: -10, - width: w + 20, - height: h + 20, - stroke: "white", - lineWidth: 2.5, - lineDash: [5, 5], - radius: [r, r, r, r], - }, - name: "subtree", - draggable: true, - }); - } - - // name bg - group.addShape("rect", { - attrs: { - x: 0, - y: 0, - width: w, - height: 20, - fill: color, - radius: [r, r, 0, 0], - }, - name: "name-bg-selected", - draggable: true, - }); - group.addShape("rect", { - attrs: { - x: SELECTED_LINE_WIDTH / 2, - y: SELECTED_LINE_WIDTH / 2, - width: w - 5, - height: 20 - SELECTED_LINE_WIDTH / 2, - fill: color, - radius: [r, r, 0, 0], - }, - name: "name-bg", - draggable: true, - }); - - // id text - group.addShape("text", { - attrs: { - textBaseline: "top", - x: -3, - y: h / 2 - 8, - fontSize: 20, - lineHeight: 20, - text: cfg.id, - textAlign: "right", - fill: "white", - stroke: "black", - lineWidth: 2, - }, - name: "id-text", - }); - - // icon - var img = `./static/icons/${classify}.svg`; - group.addShape("image", { - attrs: { - x: 5, - y: 2, - height: 14, - width: 14, - img, - }, - name: "node-icon", - }); - - // debug - if (cfg.debug) { - group.addShape("image", { - attrs: { - x: 182, - y: 2, - height: 14, - width: 14, - img: `./static/icons/Debug.svg`, - }, - name: "node-icon", - }); - } - - // name text - group.addShape("text", { - attrs: { - textBaseline: "top", - x: 22, - y: 3, - fontWeight: 800, - lineHeight: 20, - text: cfg.name, - fill: "black", - }, - name: "name-text", - }); - - var x = 5; - var y = 24; - // desc text - const desc = cfg.desc || nodeConf.desc; - if (desc) { - group.addShape("text", { - attrs: { - textBaseline: "top", - x, - y, - lineHeight: 20, - fontWeight: 800, - text: `备注:${desc}`, - fill: "black", - }, - name: "desc-text", - }); - } - - const args: any = cfg.args; - if (nodeConf.args && args && Object.keys(args).length > 0) { - const { str, line } = toBreakWord(`参数:${JSON.stringify(args)}`, 34); - group.addShape("text", { - attrs: { - textBaseline: "top", - x, - y: y + 20, - w, - lineHeight: 20, - text: str, - fill: "black", - }, - name: "args-text", - }); - y += 20 * line; - } - - const input: [] = cfg.input ? (cfg.input as []) : []; - if (nodeConf.input && input.length > 0) { - const { str, line } = toBreakWord(`输入:${JSON.stringify(input)}`, 35); - group.addShape("text", { - attrs: { - textBaseline: "top", - x, - y: y + 20, - lineHeight: 20, - text: str, - fill: "black", - }, - name: "input-text", - }); - y += 20 * line; - } - - const output: [] = cfg.output ? (cfg.output as []) : []; - if (nodeConf.output && output.length > 0) { - const { str, line } = toBreakWord(`输出:${JSON.stringify(output)}`, 35); - group.addShape("text", { - attrs: { - textBaseline: "top", - x, - y: y + 20, - lineHeight: 20, - text: str, - fill: "black", - }, - name: "output-text", - }); - y += 20 * line; - } - - if (cfg.path) { - group.addShape("text", { - attrs: { - textBaseline: "top", - x, - y: y + 20, - lineHeight: 20, - text: `子树:${cfg.path}`, - fill: "black", - }, - name: "subtree-text", - }); - y += 20; - } - - group.addShape("rect", { - name: "drag-up", - attrs: { - x: 0, - y: 0, - width: w, - height: h / 2, - fill: "blue", - fillOpacity: 0, - radius: [r, r, 0, 0], - }, - draggable: true, - }); - - group.addShape("rect", { - name: "drag-down", - attrs: { - x: 0, - y: h / 2, - width: w, - height: h / 2, - fill: "blue", - fillOpacity: 0, - radius: [0, 0, r, r], - }, - draggable: true, - }); - - group.addShape("rect", { - name: "drag-right", - attrs: { - x: w / 2, - y: 0, - width: w / 2, - height: h, - fill: "blue", - fillOpacity: 0, - radius: [0, r, r, 0], - }, - draggable: true, - }); - - if (Array.isArray(cfg.children) && cfg.children.length > 0) { - group.addShape("marker", { - attrs: { - x: w, - y: h / 2, - r: 6, - symbol: G6.Marker.collapse, - stroke: "#666", - lineWidth: 1, - fill: "#fff", - }, - name: "collapse-icon", - }); - } - - return shape; - }, - }, - "single-node" - ); -} diff --git a/render-process/TreeTabs.tsx b/render-process/TreeTabs.tsx deleted file mode 100644 index a2dc5f0..0000000 --- a/render-process/TreeTabs.tsx +++ /dev/null @@ -1,218 +0,0 @@ -import { Tabs, message } from "antd"; -import { ipcRenderer } from "electron"; -import * as fs from "fs"; -import * as path from "path"; -import React, { Component } from "react"; -import * as Utils from "../common/Utils"; -import Editor from "./Editor"; - -import "antd/dist/antd.dark.css"; -import { BehaviorTreeModel } from "../common/BehaviorTreeModel"; -import MainEventType from "../common/MainEventType"; - -const { TabPane } = Tabs; - -interface TreeTabsProps { - onTabSelected: (path: string) => void; -} - -interface TreeInfo { - filepath: string; - unsave?: boolean; -} - -interface TreeTabsState { - trees: TreeInfo[]; - curTree?: string; -} - -export default class TreeTabs extends Component { - state: TreeTabsState = { - trees: [], - }; - - editors: { [path: string]: Editor } = {}; - - componentDidMount() { - ipcRenderer.on(MainEventType.CREATE_NODE, (event: any, name: any) => { - const editor = this.getCurEditor(); - editor?.createNode(name); - }); - - ipcRenderer.on(MainEventType.DELETE_NODE, () => { - const editor = this.getCurEditor(); - editor?.deleteNode(); - }); - - ipcRenderer.on(MainEventType.COPY_NODE, () => { - const editor = this.getCurEditor(); - editor?.copyNode(); - }); - - ipcRenderer.on(MainEventType.PASTE_NODE, () => { - const editor = this.getCurEditor(); - editor?.pasteNode(); - }); - - ipcRenderer.on(MainEventType.SAVE, (event: any) => { - const { curTree: curPath } = this.state; - if (!curPath) { - return; - } - const editor = this.editors[curPath]; - editor.save(); - message.success("已保存"); - }); - - ipcRenderer.on(MainEventType.SAVE_AS_SUBTREE, (event: any, path: string) => { - const { curTree: curPath } = this.state; - if (!curPath) { - return; - } - const editor = this.editors[curPath]; - editor.saveAsSubtree(path); - }); - - ipcRenderer.on(MainEventType.SAVE_ALL, (event: any) => { - for (let k in this.editors) { - let editor = this.editors[k]; - editor.save(); - } - message.success("已保存所有行为树"); - }); - - ipcRenderer.on(MainEventType.BUILD, async (event, buildDir: string) => { - for (let k in this.editors) { - let editor = this.editors[k]; - editor.save(); - } - - const settings = Utils.getRemoteSettings(); - const files = fs.readdirSync(settings.workdir).filter((f) => { - return f.endsWith(".json"); - }); - for (const path of files) { - const buildpath = buildDir + "/" + path; - console.log("build:", buildpath); - const treeModel = Utils.createBuildData(path, settings); - fs.writeFileSync(buildpath, JSON.stringify(treeModel, null, 2)); - } - message.success("已构建所有行为树"); - }); - - ipcRenderer.on(MainEventType.UNDO, () => { - const editor = this.getCurEditor(); - if (editor?.isInEditor) { - editor.undo(); - } - }); - - ipcRenderer.on(MainEventType.REDO, () => { - const editor = this.getCurEditor(); - if (editor?.isInEditor) { - editor.redo(); - } - }); - } - - componentDidUpdate() { - setTimeout(() => { - this.props.onTabSelected(this.state.curTree); - }, 500); - } - - getOpenTreesModel() { - const trees: BehaviorTreeModel[] = []; - for (let k in this.editors) { - let editor = this.editors[k]; - if (editor) { - editor.save(); - trees.push(editor.getTreeModel()); - } - } - return trees; - } - - getCurEditor() { - const { curTree: curPath } = this.state; - if (!curPath) { - return; - } - return this.editors[curPath]; - } - - openFile(path: string) { - if (!this.state.trees.find((e) => e.filepath == path)) { - const trees = this.state.trees; - trees.push({ filepath: path }); - this.setState({ trees, curTree: path }); - } else { - this.setState({ curTree: path }); - } - } - - closeFile(path: string) { - let trees = this.state.trees; - trees = trees.filter((tree) => tree.filepath != path); - const length = trees.length; - this.setState({ trees: trees, curTree: length > 0 ? trees[0].filepath : null }); - if (length > 0) { - const editor = this.editors[trees[0].filepath]; - editor?.reload(); - } - } - - render() { - const { trees, curTree } = this.state; - console.log("render tabs", trees); - if (!curTree) { - return
; - } - this.editors = {}; - return ( - { - const editor = this.editors[activeKey]; - editor?.reload(); - this.setState({ curTree: activeKey }); - }} - onEdit={(targetKey, action) => { - if (action == "remove") { - this.closeFile(targetKey as string); - } - }} - > - {trees.map((tree) => { - return ( - - { - if (tree.unsave != unsave) { - tree.unsave = unsave; - this.forceUpdate(); - } - }} - onOpenSubtree={(path) => { - const settings = Utils.getRemoteSettings(); - this.openFile(settings.workdir + "/" + path); - }} - ref={(ref) => { - this.editors[tree.filepath] = ref; - }} - /> - - ); - })} - - ); - } -} diff --git a/render-process/index.css b/render-process/index.css deleted file mode 100644 index b1db530..0000000 --- a/render-process/index.css +++ /dev/null @@ -1,97 +0,0 @@ -body { - /* background-color: #242424; */ - background-color: rgb(20, 20, 20); - padding : 0px; -} - -.body { - width : 100%; - height : 100%; - position: fixed; -} - -.ant-layout { - flex-wrap: wrap; -} - -.sider { - height : 100%; - overflow-y : auto; - overflow-x : hidden; - transition : all 0s; -} - -.sider:hover { - overflow-y : auto; -} - -#sizer-hint-bar { - position : absolute; - width : 10px; - height : 100vh; - background : #66ccff; - top : 0; - left : 245px; - opacity : 0; - transition : opacity 0.3s; - cursor : col-resize; - z-index : 10; -} - -.content { - width : 100%; - height : 100%; - display: flex; - /* background-color: #242424; */ - background-color: rgb(20, 20, 20); - -} - -.tabs { - width: 100%; - padding: 0; -} - -::-webkit-scrollbar { - background-color: rgb(20, 20, 20); -} - -::-webkit-scrollbar-thumb { - height : 50px; - background-color: #818181; -} - - -[data-theme="dark"] .site-tree-search-value { - color: #d84a1b; - } - - -.explorer-node { - margin: 0; - padding: 0; - line-height: 20px; - white-space: nowrap; - list-style: none; - outline: 0; - color: #ffffff; -} - -.explorer-node-selected { - margin: 0; - padding: 0; - line-height: 20px; - white-space: nowrap; - list-style: none; - outline: 0; - color: #ffffff; - background-color: #818181; -} - -.explorer-node-title { - color: #ffffff; -} - -.explorer-node-search-value { - color: #f50; -} diff --git a/render-process/index.tsx b/render-process/index.tsx deleted file mode 100644 index fe67df5..0000000 --- a/render-process/index.tsx +++ /dev/null @@ -1,196 +0,0 @@ -import * as ReactDOM from "react-dom"; -import SyncRequest from "sync-request"; -import React, { Component } from "react"; -import { Layout, message, Tabs } from "antd"; -import * as Utils from "../common/Utils"; -import MainEventType from "../common/MainEventType"; -import Settings from "../main-process/Settings"; -import { ipcRenderer } from "electron"; -import "antd/dist/antd.dark.css"; -import "./index.css"; -import RegisterNode from "./RegisterNode"; -import TreeTabs from "./TreeTabs"; -import Explorer from "./Explorer"; -import BatchExec from "../common/BatchExec"; - -const { Sider, Content } = Layout; - -interface MainState { - workdir: string; - workspace: string; -} - -export default class Main extends Component { - state: MainState = { - workdir: "", - workspace: "", - }; - - settings: Settings; - tabs: TreeTabs; - explorer: Explorer; - session = 0; - - componentDidMount() { - this.updateSettings(); - RegisterNode(this.settings); - - ipcRenderer.on(MainEventType.OPEN_FILE, (event: any, path: any) => { - this.setState({ curPath: path }); - }); - - ipcRenderer.on(MainEventType.OPEN_DIR, (event: any, workdir: any, workspace: string) => { - console.log("on open workspace", workspace); - document.title = workspace; - this.setState({ workdir, workspace }); - }); - - ipcRenderer.on(MainEventType.RELOAD_SERVER, () => { - const serverModel = this.settings.serverModel; - if (!serverModel) { - message.warning("没有配置服务器"); - return; - } - SyncRequest("POST", serverModel.host, { - body: JSON.stringify({ - cmd: "btree.reload", - data: { - trees: this.tabs.getOpenTreesModel(), - }, - session: this.session++, - timestamp: Date.now(), - }), - }); - message.success("服务器已更新"); - }); - - ipcRenderer.on(MainEventType.BATCH_EXEC, (event: any, path: string) => { - BatchExec(path, this.state.workdir); - }); - - console.log("workdir", this.settings.curWorkspace.getWorkdir()); - setTimeout(() => { - this.setState({ - workdir: this.settings.curWorkspace.getWorkdir(), - workspace: this.settings.curWorkspace.getFilepath(), - }); - }, 50); - - this.setReSizer(); - } - - setReSizer() { - let startX: number; - let startWidth: number; - - const sider: any = document.getElementsByClassName("sider")[0]; - const reSizerParent: any = document.getElementsByClassName("ant-layout-sider-children")[0]; - const reSizer: any = document.getElementById("sizer-hint-bar"); - const content: any = document.getElementsByClassName("ant-layout-content content")[0]; - - function initDrag(e: DragEvent) { - startX = e.clientX; - startWidth = parseInt(document.defaultView.getComputedStyle(reSizerParent).width, 10); - document.documentElement.addEventListener("mousemove", doDrag, false); - document.documentElement.addEventListener("mouseup", stopDrag, false); - } - - function doDrag(e: DragEvent) { - const calcWidth = startWidth + e.clientX - startX; - setWidth(calcWidth); - } - - function setWidth(width: number) { - const maxValue = window.innerWidth * 0.8; - const minValue = 100; - if (width > maxValue) { - width = maxValue; - } else if (width < minValue) { - width = minValue; - } - reSizerParent.style.width = width + "px"; - sider.style.width = width + "px"; - sider.style.maxWidth = width + "px"; - sider.style.minWidth = "0px"; - sider.style.flex = ""; - reSizer.style.left = width - 5 + "px"; - content.style.width = window.innerWidth - width + "px"; - } - - function stopDrag(e: DragEvent) { - document.documentElement.removeEventListener("mousemove", doDrag, false); - document.documentElement.removeEventListener("mouseup", stopDrag, false); - } - - reSizer.addEventListener( - "mouseover", - function () { - reSizer.style.opacity = "1"; - reSizer.addEventListener("mousedown", initDrag, false); - reSizer.addEventListener( - "mouseout", - function init() { - reSizer.style.opacity = "0"; - }, - false - ); - }, - false - ); - - window.addEventListener("resize", function () { - const currentWidth = parseInt( - document.defaultView.getComputedStyle(reSizerParent).width, - 10 - ); - setWidth(currentWidth); - }); - - setWidth(250); - } - - updateSettings() { - this.settings = Utils.getRemoteSettings(); - } - - render() { - console.log("render main"); - const { workdir, workspace } = this.state; - document.title = `行为树编辑器 - ${workspace}`; - return ( - - - {workdir !== "" ? ( - { - this.explorer = ref; - }} - workdir={workdir} - onOpenTree={(path) => { - this.tabs.openFile(path); - }} - onDeleteTree={(path) => { - this.tabs.closeFile(path); - }} - /> - ) : ( - "Please Open Workspace" - )} - -
- - { - this.tabs = ref; - }} - onTabSelected={(path) => { - this.explorer.selectNode(path); - }} - /> - - - ); - } -} - -ReactDOM.render(
, document.getElementById("root") as HTMLElement); diff --git a/sample/node-config.b3-setting b/sample/node-config.b3-setting new file mode 100644 index 0000000..d0d9381 --- /dev/null +++ b/sample/node-config.b3-setting @@ -0,0 +1,236 @@ +[ + { + "name": "AlwaysFail", + "type": "Decorator", + "doc": "+ 只能有一个子节点,多个仅执行第一个\n+ 不管子节点是否成功都返回失败\n", + "desc": "始终返回失败" + }, + { + "name": "AlwaysSuccess", + "type": "Decorator", + "doc": "+ 只能有一个子节点,多个仅执行第一个\n+ 不管子节点是否成功都返回成功\n", + "desc": "始终返回成功" + }, + { + "name": "Attack", + "type": "Action", + "input": [ + "{目标}" + ], + "desc": "攻击" + }, + { + "name": "Cmp", + "type": "Condition", + "doc": "+ 若值为空,返回失败\n+ 非整数类型可能会报错\n", + "input": [ + "值(int)" + ], + "args": [ + { + "name": "value", + "desc": "值", + "type": "code?" + }, + { + "name": "gt", + "desc": ">", + "type": "int?" + }, + { + "name": "ge", + "desc": ">=", + "type": "int?" + }, + { + "name": "eq", + "desc": "==", + "type": "int?" + }, + { + "name": "le", + "desc": "<=", + "type": "int?" + }, + { + "name": "lt", + "desc": "<", + "type": "int?" + } + ], + "desc": "比较值大小" + }, + { + "name": "FindEnemy", + "output": [ + "目标单位" + ], + "type": "Condition", + "doc": "+ 没找到返回失败\n", + "args": [ + { + "name": "x", + "desc": "x", + "type": "int?" + }, + { + "name": "y", + "desc": "y", + "type": "int?" + }, + { + "name": "w", + "desc": "宽", + "type": "int?" + }, + { + "name": "h", + "desc": "高", + "type": "int?" + }, + { + "name": "count", + "desc": "查找上限", + "type": "string?" + } + ], + "desc": "查找敌人" + }, + { + "name": "GetHp", + "output": [ + "生命值" + ], + "type": "Action", + "desc": "获取生命值" + }, + { + "name": "Idle", + "type": "Action", + "desc": "待机" + }, + { + "name": "Log", + "type": "Action", + "args": [ + { + "name": "str", + "desc": "日志", + "type": "string" + } + ], + "desc": "打印日志" + }, + { + "name": "MoveToPos", + "type": "Action", + "args": [ + { + "name": "x", + "desc": "x", + "type": "int" + }, + { + "name": "y", + "desc": "y", + "type": "int" + } + ], + "desc": "移动到坐标" + }, + { + "name": "MoveToTarget", + "type": "Action", + "input": [ + "{目标}" + ], + "desc": "移动到目标" + }, + { + "name": "Not", + "type": "Decorator", + "doc": "+ 将子节点的返回值取反\n", + "desc": "取反" + }, + { + "name": "Parallel", + "type": "Composite", + "doc": "执行所有子节点并返回成功\n", + "desc": "并行执行" + }, + { + "name": "Selector", + "type": "Composite", + "doc": "+ 一直往下执行,有子节点返回成功则返回成功,若全部节点返回失败则返回失败\n+ 子节点是或的关系\n", + "desc": "选择执行" + }, + { + "name": "Sequence", + "type": "Composite", + "doc": "+ 一直往下执行,有子节点返回成功则返回成功,若全部节点返回失败则返回失败\n+ 子节点是或的关系\n", + "desc": "顺序执行" + }, + { + "name": "Wait", + "type": "Action", + "args": [ + { + "name": "time", + "desc": "时间/tick", + "type": "int" + } + ], + "desc": "等待" + }, + { + "name": "TestB3", + "type": "Action", + "args": [ + { + "name": "time", + "desc": "时间", + "type": "int" + }, + { + "name": "random", + "desc": "随机", + "type": "float?" + }, + { + "name": "open", + "desc": "打开来", + "type": "boolean" + }, + { + "name": "check", + "desc": "检查", + "type": "code" + }, + { + "name": "name", + "desc": "检查", + "type": "string" + }, + { + "name": "status", + "desc": "状态", + "type": "enum", + "options": [ + { + "name": "成功", + "value": "SUCCESS" + }, + { + "name": "失败", + "value": "FAILURE" + }, + { + "name": "运行中", + "value": "RUNNING" + } + ] + } + ], + "desc": "等待" + } +] diff --git a/sample/node-config.json b/sample/node-config.json deleted file mode 100644 index ccbef76..0000000 --- a/sample/node-config.json +++ /dev/null @@ -1 +0,0 @@ -[{"name":"AlwaysFail","type":"Decorator","doc":"+ 只能有一个子节点,多个仅执行第一个\n+ 不管子节点是否成功都返回失败\n","desc":"始终返回失败"},{"name":"AlwaysSuccess","type":"Decorator","doc":"+ 只能有一个子节点,多个仅执行第一个\n+ 不管子节点是否成功都返回成功\n","desc":"始终返回成功"},{"name":"Attack","type":"Action","input":["{目标}"],"desc":"攻击"},{"name":"Cmp","type":"Condition","doc":"+ 若值为空,返回失败\n+ 非整数类型可能会报错\n","input":["值(int)"],"args":[{"name":"value","desc":"值","type":"code?"},{"name":"gt","desc":">","type":"int?"},{"name":"ge","desc":">=","type":"int?"},{"name":"eq","desc":"==","type":"int?"},{"name":"le","desc":"<=","type":"int?"},{"name":"lt","desc":"<","type":"int?"}],"desc":"比较值大小"},{"name":"FindEnemy","output":["目标单位"],"type":"Condition","doc":"+ 没找到返回失败\n","args":[{"name":"x","desc":"x","type":"int?"},{"name":"y","desc":"y","type":"int?"},{"name":"w","desc":"宽","type":"int?"},{"name":"h","desc":"高","type":"int?"},{"name":"count","desc":"查找上限","type":"string?"}],"desc":"查找敌人"},{"name":"GetHp","output":["生命值"],"type":"Action","desc":"获取生命值"},{"name":"Idle","type":"Action","desc":"待机"},{"name":"Log","type":"Action","args":[{"name":"str","desc":"日志","type":"string"}],"desc":"打印日志"},{"name":"MoveToPos","type":"Action","args":[{"name":"x","desc":"x","type":"int"},{"name":"y","desc":"y","type":"int"}],"desc":"移动到坐标"},{"name":"MoveToTarget","type":"Action","input":["{目标}"],"desc":"移动到目标"},{"name":"Not","type":"Decorator","doc":"+ 将子节点的返回值取反\n","desc":"取反"},{"name":"Parallel","type":"Composite","doc":"执行所有子节点并返回成功\n","desc":"并行执行"},{"name":"Selector","type":"Composite","doc":"+ 一直往下执行,有子节点返回成功则返回成功,若全部节点返回失败则返回失败\n+ 子节点是或的关系\n","desc":"选择执行"},{"name":"Sequence","type":"Composite","doc":"+ 一直往下执行,有子节点返回成功则返回成功,若全部节点返回失败则返回失败\n+ 子节点是或的关系\n","desc":"顺序执行"},{"name":"Wait","type":"Action","args":[{"name":"time","desc":"时间/tick","type":"int"}],"desc":"等待"}] \ No newline at end of file diff --git a/sample/workdir/monster.json b/sample/workdir/monster.json index d675192..fb6790a 100644 --- a/sample/workdir/monster.json +++ b/sample/workdir/monster.json @@ -24,13 +24,12 @@ "id": 4, "name": "Sequence", "desc": "新建行为树", - "args": {}, - "path": "subtree2.json" + "path": "workdir/subtree2.json" } ] }, { - "id": 6, + "id": 7, "name": "Cmp", "args": { "gt": 50, @@ -41,24 +40,23 @@ ] }, { - "id": 7, - "name": "Log", + "id": 8, + "name": "TestB3", "desc": "攻击", "args": { "str": "Attack!" - }, - "children": [] + } }, { - "id": 8, + "id": 9, "name": "Sequence", "desc": "新建行为树", - "path": "subtree1.json" + "path": "workdir/subtree1.json" } ] }, { - "id": 11, + "id": 12, "name": "Log", "desc": "逃跑", "args": { diff --git a/sample/workdir/sub/subtree1.json b/sample/workdir/sub/subtree1.json new file mode 100644 index 0000000..afc8a15 --- /dev/null +++ b/sample/workdir/sub/subtree1.json @@ -0,0 +1,31 @@ +{ + "name": "subtree1", + "root": { + "id": 1, + "name": "Sequence", + "desc": "新建行为树", + "children": [ + { + "id": 2, + "name": "Log", + "args": { + "str": "hello" + } + }, + { + "id": 3, + "name": "Wait", + "args": { + "time": 1 + }, + "children": [ + { + "id": 4, + "name": "unknow" + } + ] + } + ] + }, + "desc": "子树1" +} \ No newline at end of file diff --git a/sample/workdir/sub/subtree2.json b/sample/workdir/sub/subtree2.json new file mode 100644 index 0000000..67cd082 --- /dev/null +++ b/sample/workdir/sub/subtree2.json @@ -0,0 +1,26 @@ +{ + "name": "subtree2", + "root": { + "id": 1, + "name": "Sequence", + "desc": "新建行为树", + "children": [ + { + "id": 2, + "name": "Cmp", + "args": {}, + "input": [ + "" + ] + }, + { + "id": 3, + "name": "Attack", + "input": [ + "in" + ] + } + ] + }, + "desc": "子树2" +} \ No newline at end of file diff --git a/sample/workdir/subtree1.json b/sample/workdir/subtree1.json index b2b9954..08be034 100644 --- a/sample/workdir/subtree1.json +++ b/sample/workdir/subtree1.json @@ -1,5 +1,5 @@ { - "name": "subtree", + "name": "subtree1", "root": { "id": 1, "name": "Sequence", diff --git a/sample/workspace.json b/sample/workspace.b3-workspace similarity index 100% rename from sample/workspace.json rename to sample/workspace.b3-workspace diff --git a/src/assets/node.svg b/src/assets/node.svg new file mode 100644 index 0000000..38d4eaa --- /dev/null +++ b/src/assets/node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/editor.tsx b/src/components/editor.tsx new file mode 100644 index 0000000..4fe56f3 --- /dev/null +++ b/src/components/editor.tsx @@ -0,0 +1,936 @@ +import { + EditEvent, + EditNode, + EditTree, + EditorStore, + useWorkspace, +} from "@/contexts/workspace-context"; +import { NodeModel, TreeGraphData, TreeModel } from "@/misc/b3type"; +import * as b3util from "@/misc/b3util"; +import { message } from "@/misc/hooks"; +import { Hotkey, isHotkeyPressed, useHotkeys } from "@/misc/keys"; +import Path from "@/misc/path"; +import G6, { G6GraphEvent, Item, TreeGraph } from "@antv/g6"; +import { dialog } from "@electron/remote"; +import { useSize } from "ahooks"; +import { Dropdown, Flex, FlexProps, MenuProps } from "antd"; +import { clipboard } from "electron"; +import * as fs from "fs"; +import React, { FC, useCallback, useEffect, useMemo, useRef } from "react"; +import { useTranslation } from "react-i18next"; +import { FiDelete } from "react-icons/fi"; +import { IoMdReturnLeft } from "react-icons/io"; +import { mergeRefs } from "react-merge-refs"; +import "./register-node"; + +export interface EditorProps extends React.HTMLAttributes { + data: EditorStore; + onUpdate: () => void; +} + +export const Editor: FC = ({ onUpdate: updateState, data: editor, ...props }) => { + const workspace = { + editing: useWorkspace((state) => state.editing), + onEditingNode: useWorkspace((state) => state.onEditingNode), + onEditingTree: useWorkspace((state) => state.onEditingTree), + open: useWorkspace((state) => state.open), + workdir: useWorkspace((state) => state.workdir), + }; + const graphRef = useRef(null); + const sizeRef = useRef(null); + const editorSize = useSize(sizeRef); + const { t } = useTranslation(); + + const onChange = () => { + if (!editor.unsave) { + editor.unsave = true; + updateState(); + } + }; + + const findParent = (node: TreeGraphData) => { + if (node.parent) { + return findDataById(node.parent); + } else { + return null; + } + }; + + const findHightlight = (node: TreeGraphData, highlight: string[], changed?: TreeGraphData[]) => { + changed ||= []; + if (node.highlightInput || node.highlightOutput) { + node.highlightInput = false; + node.highlightOutput = false; + changed.push(node); + } + + if (node.input) { + for (const v of node.input) { + if (highlight.includes(v)) { + node.highlightInput = true; + changed.push(node); + break; + } + } + } + + if (node.output) { + for (const v of node.output) { + if (highlight.includes(v)) { + node.highlightOutput = true; + changed.push(node); + break; + } + } + } + + node.children?.forEach((child: TreeGraphData) => findHightlight(child, highlight, changed)); + + return changed; + }; + + const findDataById = (id: string) => { + return editor.graph.findDataById(id) as TreeGraphData; + }; + + const isAncestor = (ancestor: TreeGraphData, node: TreeGraphData): boolean => { + if (ancestor.id === node.parent) { + return true; + } else if (node.parent) { + return isAncestor(ancestor, findDataById(node.parent)); + } else { + return false; + } + }; + + const isSubtreeNode = (node: TreeGraphData | null): boolean => { + if (node?.path) { + return true; + } else if (node?.parent) { + return isSubtreeNode(findParent(node)); + } else { + return false; + } + }; + + const findSubtree = (node: TreeGraphData | null): TreeGraphData | null => { + if (node?.path) { + return node; + } else if (node?.parent) { + return findSubtree(findParent(node)); + } else { + return null; + } + }; + + const reload = () => { + const rootData = findDataById("1"); + const rootNode = b3util.createNode(rootData); + editor.data = b3util.createTreeData(rootNode); + editor.autoId = b3util.refreshTreeDataId(editor.data); + editor.graph.changeData(editor.data); + editor.graph.layout(); + restoreViewport(); + }; + + const checkSubtree = () => { + if (editor.graph) { + const data = findDataById("1"); + if (b3util.isSubtreeUpdated(data)) { + reload(); + pushHistory(); + onChange(); + } + } + }; + + const clearDragDstState = () => { + if (editor.dragDstId) { + setItemState(editor.dragDstId, "dragRight", false); + setItemState(editor.dragDstId, "dragDown", false); + setItemState(editor.dragDstId, "dragUp", false); + editor.dragDstId = undefined; + } + }; + + const clearDragSrcState = () => { + if (editor.dragSrcId) { + setItemState(editor.dragSrcId, "dragSrc", false); + editor.dragSrcId = undefined; + } + }; + + const setItemState = (item: string | Item, state: string, value: string | boolean) => { + if (typeof item === "string") { + item = editor.graph.findById(item); + } + if (item) { + editor.graph.setItemState(item, state, value); + } + }; + + const updateNode = (editNode: EditNode) => { + const newNode = editNode.data; + const data = findDataById(editNode.data.id.toString()); + const oldNode = b3util.createNode(data, false); + if (b3util.isNodeEqual(oldNode, newNode)) { + return; + } + b3util.copyFromNode(data, newNode); + data.size = b3util.calcTreeDataSize(data); + if (oldNode.path !== newNode.path) { + reload(); + selectNode(null); + selectNode(data.id); + } else { + const item = editor.graph.findById(data.id); + item.draw(); + } + pushHistory(); + onChange(); + }; + + const updateTree = (editTree: EditTree) => { + if (editor.desc !== editTree.data.desc) { + editor.desc = editTree.data.desc || ""; + onChange(); + } + }; + + const selectNode = (id: string | null) => { + if (id && id === editor.selectedId) { + setItemState(editor.selectedId, "selected", true); + setItemState(editor.selectedId, "hover", false); + return; + } + + if (editor.selectedId) { + setItemState(editor.selectedId, "selected", false); + setItemState(editor.selectedId, "hover", false); + } + + editor.selectedId = id; + + if (editor.selectedId) { + const data = findDataById(editor.selectedId); + workspace.onEditingTree(null); + workspace.onEditingNode({ + data: b3util.createNode(data, false), + editable: !isSubtreeNode(data), + }); + setItemState(editor.selectedId, "selected", true); + } else { + workspace.onEditingTree({ + data: { + name: editor.name, + desc: editor.desc, + root: null!, + }, + }); + } + }; + + const restoreViewport = () => { + if (editor.graphMatrix) { + editor.graph.getGroup().setMatrix(editor.graphMatrix); + } + }; + + const pushHistory = () => { + editor.historyStack.length = ++editor.historyIndex; + editor.historyStack.push(b3util.createNode(findDataById("1"))); + }; + + const copyNode = () => { + if (editor.selectedId) { + const data = findDataById(editor.selectedId); + if (data) { + const str = JSON.stringify(b3util.createNode(data), null, 2); + clipboard.writeText(str); + } + } + }; + + const pasteNode = () => { + if (!editor.selectedId) { + message.warning(t("node.noNodeSelected")); + return; + } + + if (isSubtreeNode(findDataById(editor.selectedId))) { + message.warning(t("node.editSubtreeDenied")); + return; + } + + try { + const str = clipboard.readText(); + if (!str || str == "") { + return; + } + const curNodeData = findDataById(editor.selectedId); + const data = b3util.createTreeData(JSON.parse(str), editor.selectedId); + editor.autoId = b3util.refreshTreeDataId(data, editor.autoId); + selectNode(null); + curNodeData.children ||= []; + curNodeData.children.push(data); + updateGrahp(); + pushHistory(); + onChange(); + } catch (error) { + message.error(t("node.pasteDataError")); + console.log(error); + } + }; + + const replaceNode = () => { + if (!editor.selectedId) { + message.warning(t("node.noNodeSelected")); + return; + } + + if (isSubtreeNode(findDataById(editor.selectedId))) { + message.warning(t("node.editSubtreeDenied")); + return; + } + + try { + const str = clipboard.readText(); + if (!str || str == "") { + return; + } + const curNodeData = findDataById(editor.selectedId); + if (curNodeData.parent) { + const parentData = findDataById(curNodeData.parent); + const idx = parentData.children!.indexOf(curNodeData); + const data = b3util.createTreeData(JSON.parse(str), editor.selectedId); + editor.autoId = b3util.refreshTreeDataId(data, editor.autoId); + parentData.children![idx] = data; + updateGrahp(); + } else { + editor.data = b3util.createTreeData(JSON.parse(str), editor.selectedId); + editor.autoId = b3util.refreshTreeDataId(editor.data); + editor.graph.changeData(editor.data); + editor.graph.render(); + editor.graph.layout(); + } + selectNode(null); + pushHistory(); + onChange(); + } catch (error) { + message.error(t("node.pasteDataError")); + console.log(error); + } + }; + + const createNode = () => { + if (!editor.selectedId) { + message.warning(t("node.noNodeSelected")); + return; + } + + if (isSubtreeNode(findDataById(editor.selectedId))) { + message.warning(t("node.editSubtreeDenied")); + return; + } + + const curNodeData = findDataById(editor.selectedId); + const newNodeData: NodeModel = { + id: editor.autoId++, + name: "unknow", + }; + curNodeData.children ||= []; + curNodeData.children.push(b3util.createTreeData(newNodeData, editor.selectedId)); + updateGrahp(); + pushHistory(); + onChange(); + }; + + const deleteNode = () => { + if (!editor.selectedId) { + return; + } + + if (editor.selectedId === "1") { + message.warning(t("node.deleteRootNodeDenied")); + return; + } + + if (isSubtreeNode(findDataById(editor.selectedId))) { + message.warning(t("node.editSubtreeDenied")); + return; + } + + const parentData = findParent(findDataById(editor.selectedId))!; + parentData.children = parentData.children!.filter((e) => e.id != editor.selectedId); + selectNode(null); + updateGrahp(); + pushHistory(); + onChange(); + }; + + const useStackData = (data: NodeModel) => { + editor.data = b3util.createTreeData(data); + editor.autoId = b3util.refreshTreeDataId(editor.data); + editor.graph.changeData(editor.data); + editor.graph.layout(); + restoreViewport(); + onChange(); + }; + + const updateGrahp = () => { + editor.graph.changeData(); + editor.graph.layout(); + }; + + const undo = () => { + if (editor.historyIndex > 0) { + const data = editor.historyStack[--editor.historyIndex]; + useStackData(data); + } + }; + + const redo = () => { + if (editor.historyIndex < editor.historyStack.length - 1) { + const data = editor.historyStack[++editor.historyIndex]; + useStackData(data); + } + }; + + const rename = (newPath: string) => { + editor.path = newPath; + editor.size.width = 0; + editor.size.height = 0; + }; + + const save = () => { + if (editor.unsave || !fs.existsSync(editor.path)) { + const path = editor.path; + const data = findDataById("1"); + editor.autoId = b3util.refreshTreeDataId(data); + const root = b3util.createFileData(data); + const treeModel = { + name: Path.basenameWithoutExt(path), + root, + desc: editor.desc, + } as TreeModel; + fs.writeFileSync(path, JSON.stringify(treeModel, null, 2)); + editor.unsave = false; + + editor.data = b3util.createTreeData(root); + editor.autoId = b3util.refreshTreeDataId(editor.data); + editor.graph.changeData(editor.data); + editor.graph.layout(); + restoreViewport(); + + updateState(); + } + }; + + const editSubtree = () => { + if (!editor.selectedId) { + message.warning(t("node.noNodeSelected")); + return; + } + const d1 = findDataById(editor.selectedId); + const data = findSubtree(findDataById(editor.selectedId)); + if (data?.path) { + const path = `${workspace.workdir}/${data.path}`; + workspace.open(path); + } + }; + + const saveAsSubtree = () => { + if (!editor.selectedId) { + message.warning(t("node.noNodeSelected")); + return; + } + if (editor.selectedId === "1") { + message.warning(t("node.saveAsSubtree")); + return; + } + setTimeout(() => { + const subpath = dialog.showSaveDialogSync({ + defaultPath: workspace.workdir, + properties: ["showOverwriteConfirmation"], + filters: [{ name: "Json", extensions: ["json"] }], + }); + if (!subpath) { + return; + } + if (subpath.indexOf(workspace.workdir) == -1) { + message.warning(t("node.subtreePathError")); + return; + } + const data = findDataById(editor.selectedId!); + const subroot = b3util.createFileData(data); + const subtreeModel = { + name: Path.basename(subpath).slice(0, -5), + root: subroot, + desc: data.desc, + } as TreeModel; + fs.writeFileSync(subpath, JSON.stringify(subtreeModel, null, 2)); + data.path = subpath.substring(workspace.workdir.length + 1); + reload(); + pushHistory(); + onChange(); + }, 200); + }; + + const destroyGraph = () => { + if (editor.graph) { + editor.graph.destroy(); + editor.graph = undefined!; + } + }; + + const createGraph = (ref: React.MutableRefObject) => { + editor.graph = new TreeGraph({ + container: ref.current!, + animate: false, + maxZoom: 2, + minZoom: 0.4, + modes: { + default: [ + "drag-canvas", + "zoom-canvas", + "click-select", + "hover", + { + type: "collapse-expand", + trigger: "dblclick", + onChange: (item, collapsed) => { + if (!item) { + return; + } + selectNode(item.getID()); + const data = item.getModel(); + data.collapsed = collapsed; + setItemState(item, "collapsed", data.collapsed as boolean); + const icon = data.collapsed ? G6.Marker.expand : G6.Marker.collapse; + const marker = item + .get("group") + .find((ele: any) => ele.get("name") === "collapse-icon"); + editor.graph.refresh(); + marker.attr("symbol", icon); + return true; + }, + }, + ], + }, + defaultEdge: { + type: "cubic-horizontal", + size: 2.5, + style: { + stroke: "#A3B1BF", + }, + }, + defaultNode: { + type: "TreeNode", + }, + layout: { + type: "compactBox", + direction: "LR", + getHGap: () => 60, + getWidth: (d: TreeGraphData) => { + return 150; + }, + getHeight: (d: TreeGraphData) => { + if (d.size) { + return d.size[1]; + } else { + return 50; + } + }, + }, + }); + + editor.graph.on("viewportchange", (data: any) => { + if (data.action == "translate" || data.action == "zoom") { + editor.graphMatrix = data.matrix; + } + }); + + editor.graph.on("node:click", (e: G6GraphEvent) => { + const highlight: string[] = []; + if (e.shape.cfg.name === "input-text") { + const data = findDataById(e.item.getID()); + data.input?.forEach((v) => v && highlight.push(v)); + } else if (e.shape.cfg.name === "output-text") { + const data = findDataById(e.item.getID()); + data.output?.forEach((v) => v && highlight.push(v)); + } + const changed = findHightlight(findDataById("1"), highlight); + changed.forEach((v) => { + const item = editor.graph.findById(v.id); + item.draw(); + }); + }); + + editor.graph.on("node:contextmenu", (e: G6GraphEvent) => { + selectNode(e.item.getID()); + }); + + editor.graph.on("node:mouseenter", (e: G6GraphEvent) => { + if (!e.item.hasState("selected")) { + setItemState(e.item, "hover", true); + } + }); + + editor.graph.on("node:mouseleave", (e: G6GraphEvent) => { + if (!e.item.hasState("selected")) { + setItemState(e.item, "hover", false); + } + }); + + editor.graph.on("nodeselectchange", (e: G6GraphEvent) => { + if (e.target) { + selectNode((e.target as unknown as Item).getID()); + } else { + selectNode(null); + } + }); + + editor.graph.on("node:dragstart", (e: G6GraphEvent) => { + editor.dragSrcId = e.item.getID(); + setItemState(editor.dragSrcId, "dragSrc", true); + }); + + editor.graph.on("node:dragend", (e: G6GraphEvent) => { + if (editor.dragSrcId) { + setItemState(editor.dragSrcId, "dragSrc", false); + editor.dragSrcId = undefined; + } + }); + + editor.graph.on("node:dragover", (e: G6GraphEvent) => { + const dstNodeId = e.item.getID(); + if (dstNodeId === editor.dragSrcId) { + return; + } + + clearDragDstState(); + + const box = e.item.getBBox(); + if (e.x > box.minX + box.width * 0.6) { + setItemState(dstNodeId, "dragRight", true); + } else if (e.y > box.minY + box.height * 0.5) { + setItemState(dstNodeId, "dragDown", true); + } else { + setItemState(dstNodeId, "dragUp", true); + } + editor.dragDstId = dstNodeId; + }); + + editor.graph.on("node:dragleave", (e: G6GraphEvent) => { + clearDragDstState(); + }); + + editor.graph.on("node:drop", (e: G6GraphEvent) => { + const srcNodeId = editor.dragSrcId; + const dstNode = e.item; + + let dragDir; + if (dstNode.hasState("dragRight")) { + dragDir = "dragRight"; + } else if (dstNode.hasState("dragDown")) { + dragDir = "dragDown"; + } else if (dstNode.hasState("dragUp")) { + dragDir = "dragUp"; + } + + clearDragSrcState(); + clearDragDstState(); + + if (!srcNodeId) { + console.log("no drag src"); + return; + } + + if (srcNodeId == dstNode.getID()) { + console.log("drop same node"); + return; + } + + const srcData = findDataById(srcNodeId); + const srcParent = findParent(srcData); + const dstData = findDataById(dstNode.getID()); + const dstParent = findParent(dstData); + if (!srcParent) { + console.log("no parent!"); + return; + } + + if (isAncestor(srcData, dstData)) { + console.log("cannot move to child"); + return; + } + + const removeSrc = () => { + srcParent.children = srcParent.children!.filter((value) => value.id != srcData.id); + }; + + if (dragDir == "dragRight") { + removeSrc(); + if (!dstData.children) { + dstData.children = []; + } + srcData.parent = dstData.id; + dstData.children.push(srcData); + } else if (dragDir == "dragUp") { + if (!dstParent) { + return; + } + removeSrc(); + const idx = dstParent.children!.findIndex((value) => value.id == dstData.id); + srcData.parent = dstParent.id; + dstParent.children!.splice(idx, 0, srcData); + } else if (dragDir == "dragDown") { + if (!dstParent) { + return; + } + removeSrc(); + const idx = dstParent.children!.findIndex((value) => value.id == dstData.id); + srcData.parent = dstParent.id; + dstParent.children!.splice(idx + 1, 0, srcData); + } else { + return; + } + + updateGrahp(); + pushHistory(); + onChange(); + }); + + editor.graph.data(editor.data); + editor.graph.render(); + if (editor.graphMatrix) { + restoreViewport(); + } else { + editor.graph.fitCenter(); + } + }; + + const keysRef = useHotkeys( + [ + Hotkey.Copy, + Hotkey.Paste, + Hotkey.Save, + Hotkey.Replace, + Hotkey.Undo, + Hotkey.Redo, + Hotkey.Insert, + Hotkey.Delete, + Hotkey.Enter, + Hotkey.Backspace, + ], + (event) => { + event.preventDefault(); + if (isHotkeyPressed(Hotkey.Copy)) { + copyNode(); + } else if (isHotkeyPressed(Hotkey.Replace)) { + replaceNode(); + } else if (isHotkeyPressed(Hotkey.Paste)) { + pasteNode(); + } else if (isHotkeyPressed(Hotkey.Redo)) { + redo(); + } else if (isHotkeyPressed(Hotkey.Undo)) { + undo(); + } else if (isHotkeyPressed(Hotkey.Insert) || isHotkeyPressed(Hotkey.Enter)) { + createNode(); + } else if (isHotkeyPressed(Hotkey.Delete) || isHotkeyPressed(Hotkey.Backspace)) { + deleteNode(); + } + } + ); + + if (!editor.dispatch) { + editor.dispatch = (event: EditEvent, data: unknown) => { + switch (event) { + case "copy": { + copyNode(); + break; + } + case "paste": { + pasteNode(); + break; + } + case "delete": { + deleteNode(); + break; + } + case "insert": { + createNode(); + break; + } + case "replace": { + replaceNode(); + break; + } + case "save": { + save(); + break; + } + case "undo": { + undo(); + break; + } + case "redo": { + redo(); + break; + } + case "reload": { + reload(); + break; + } + case "rename": { + rename(data as string); + break; + } + case "updateTree": { + updateTree(data as EditTree); + break; + } + case "updateNode": { + updateNode(data as EditNode); + break; + } + case "editSubtree": { + editSubtree(); + break; + } + case "saveAsSubtree": { + saveAsSubtree(); + break; + } + } + }; + } + + useEffect(() => { + if (!editorSize || (editorSize.width === 0 && editorSize.height === 0)) { + return; + } + + if (editor.size.width !== editorSize.width || editor.size.height !== editorSize.height) { + destroyGraph(); + } + + if (!editor.graph) { + createGraph(graphRef); + editor.size.width = editorSize.width; + editor.size.height = editorSize.height; + } + }); + + useEffect(() => { + if (workspace.editing === editor) { + checkSubtree(); + } + }, [workspace.editing]); + + const menuItems = useMemo(() => { + const MenuItem: FC = (itemProps) => { + return ( + + ); + }; + const isMac = process.platform === "darwin"; + const arr: MenuProps["items"] = [ + { + label: ( + +
{t("copy")}
+
{isMac ? "⌘ C" : "Ctrl+C"}
+
+ ), + key: "copy", + }, + { + label: ( + +
{t("paste")}
+
{isMac ? "⌘ V" : "Ctrl+V"}
+
+ ), + key: "paste", + }, + { + label: ( + +
{t("replace")}
+
{isMac ? "⇧ ⌘ V" : "Ctrl+Shift+V"}
+
+ ), + key: "replace", + }, + { + label: ( + +
{t("insertNode")}
+
{isMac ? : "Enter"}
+
+ ), + key: "insert", + }, + { + label: ( + +
{t("deleteNode")}
+
{isMac ? : "Backspace"}
+
+ ), + key: "delete", + }, + { + label: ( + +
{t("editSubtree")}
+
+
+ ), + key: "editSubtree", + }, + { + label: ( + +
{t("saveAsSubtree")}
+
+
+ ), + key: "saveAsSubtree", + }, + ]; + return arr; + }, [t]); + + useEffect(() => { + if (editor.graph) { + editor.graph.changeData(editor.data); + editor.graph.layout(); + restoreViewport(); + } + }, [t]); + + type MenuInfo = Parameters>[0]; + const onClick = useCallback((info: MenuInfo) => { + editor.dispatch?.(info.key as EditEvent); + }, []); + + return ( +
+ +
+ +
+ ); +}; diff --git a/src/components/explorer.tsx b/src/components/explorer.tsx new file mode 100644 index 0000000..008ab56 --- /dev/null +++ b/src/components/explorer.tsx @@ -0,0 +1,738 @@ +import { FileModel, useWorkspace } from "@/contexts/workspace-context"; +import * as b3util from "@/misc/b3util"; +import { modal } from "@/misc/hooks"; +import { Hotkey, isHotkeyPressed, isMacos, useHotkeys } from "@/misc/keys"; +import Path from "@/misc/path"; +import { DownOutlined } from "@ant-design/icons"; +import { Button, Dropdown, Flex, FlexProps, Input, MenuProps, Space, Tree } from "antd"; +import { ItemType } from "antd/es/menu/hooks/useItems"; +import { ipcRenderer, shell } from "electron"; +import * as fs from "fs"; +import React, { FC, useEffect, useMemo, useState } from "react"; +import { useTranslation } from "react-i18next"; +import { FaExclamationTriangle, FaSwatchbook } from "react-icons/fa"; +import { FiCommand, FiDelete } from "react-icons/fi"; +import { IoMdReturnLeft } from "react-icons/io"; + +const { DirectoryTree } = Tree; + +type MenuInfo = Parameters>[0]; +type MenuEvent = + | "open" + | "newFile" + | "newFolder" + | "revealFile" + | "rename" + | "delete" + | "paste" + | "copy" + | "move" + | "duplicate"; + +const findFile = (path: string | undefined, node: FileModel): FileModel | undefined => { + if (!path) { + return; + } else if (node.path === path) { + return node; + } + if (node.children) { + for (const child of node.children) { + const ret = findFile(path, child); + if (ret) { + return ret; + } + } + } +}; + +const findParent = (node: FileModel, parent?: FileModel): FileModel | undefined => { + if (parent && parent.children) { + if (parent.children?.indexOf(node) >= 0) { + return parent; + } + for (const child of parent.children) { + const v = findParent(node, child); + if (v) { + return v; + } + } + } +}; + +const resolveKeys = (path: string, node: FileModel, keys: React.Key[]) => { + if (node.path === path) { + return true; + } + if (node.children) { + keys.push(node.path); + for (const child of node.children) { + if (resolveKeys(path, child, keys)) { + return true; + } + } + keys.pop(); + } + return false; +}; + +// rename file +const renameFile = (oldPath: string, newPath: string) => { + const workspace = useWorkspace.getState(); + if (fs.existsSync(newPath)) { + return false; + } else if (oldPath !== newPath) { + try { + fs.renameSync(oldPath, newPath); + const isDirectory = fs.statSync(newPath).isDirectory(); + for (const editor of workspace.editors) { + if (isDirectory) { + if (editor.path.startsWith(oldPath)) { + editor.dispatch?.("rename", editor.path.replace(oldPath, newPath)); + } + } else { + if (editor.path === oldPath) { + editor.dispatch?.("rename", newPath); + } + } + } + return true; + } catch (e) { + console.error(e); + } + } + return false; +}; + +export const Explorer: FC = () => { + const workspace = { + close: useWorkspace((state) => state.close), + editing: useWorkspace((state) => state.editing), + editors: useWorkspace((state) => state.editors), + open: useWorkspace((state) => state.open), + fileTree: useWorkspace((state) => state.fileTree), + }; + const { t } = useTranslation(); + const [selectedKeys, setSelectedKeys] = useState([]); + const [expandedKeys, setExpandedKeys] = useState( + workspace.fileTree?.path ? [workspace.fileTree.path] : [] + ); + const [copyFile, setCopyFile] = useState(""); + const [newName, setNewName] = useState(null); + const [contextMenu, setContextMenu] = useState([]); + + if (workspace.fileTree) { + workspace.fileTree.icon = ; + } + + useEffect(() => { + if (workspace.editing) { + const keys: React.Key[] = []; + resolveKeys(workspace.editing.path, workspace.fileTree!, keys); + for (const k of expandedKeys) { + if (keys.indexOf(k) === -1) { + keys.push(k); + } + } + setExpandedKeys(keys); + setSelectedKeys([workspace.editing.path]); + } + }, [workspace.editing]); + + const keysRef = useHotkeys( + [ + Hotkey.F2, + Hotkey.Enter, + Hotkey.Copy, + Hotkey.Paste, + Hotkey.Delete, + Hotkey.MacDelete, + Hotkey.Escape, + Hotkey.Duplicate, + ], + (event) => { + event.preventDefault(); + const node = findFile(selectedKeys[0], workspace.fileTree!); + if (isHotkeyPressed(Hotkey.F2) || (isMacos && isHotkeyPressed(Hotkey.Enter))) { + if (node && node !== workspace.fileTree) { + node.editing = true; + setNewName(""); + } + } else if (isHotkeyPressed(Hotkey.Delete) || isHotkeyPressed(Hotkey.MacDelete)) { + if (node && node !== workspace.fileTree) { + dispatch("delete", node); + } + } else if (isHotkeyPressed(Hotkey.Escape)) { + if (node) { + node.editing = false; + setNewName(null); + } + } else if (isHotkeyPressed(Hotkey.Duplicate)) { + if (node && node.isLeaf) { + dispatch("duplicate", node); + } + } else if (isHotkeyPressed(Hotkey.Copy)) { + if (node && node.isLeaf) { + dispatch("copy", node); + } + } else if (isHotkeyPressed(Hotkey.Paste)) { + if (node) { + dispatch("paste", node); + } + } + } + ); + + const submitRename = (node: FileModel) => { + if (!newName) { + if (fs.existsSync(node.path)) { + node.editing = false; + } else { + const parent = findParent(node, workspace.fileTree); + if (parent && parent.children) { + parent.children = parent.children.filter((v) => v !== node); + } + } + setNewName(null); + return; + } + if (node.path.endsWith("/:")) { + node.path = Path.dirname(node.path) + "/" + newName.replace(/[^\w. _-]+/g, ""); + node.title = Path.basename(node.path); + fs.mkdirSync(node.path); + } else if (node.path.endsWith("/.json")) { + node.path = Path.dirname(node.path) + "/" + newName.replace(/[^\w. _-]+/g, "") + ".json"; + node.title = Path.basename(node.path); + fs.writeFileSync(node.path, JSON.stringify(b3util.createNewTree(node.title), null, 2)); + workspace.open(node.path); + } else { + const newpath = Path.dirname(node.path) + "/" + newName + Path.extname(node.path); + if (renameFile(node.path, newpath)) { + setSelectedKeys([newpath]); + } + } + node.editing = false; + setNewName(null); + }; + + const dispatch = (event: MenuEvent, node: FileModel, dest?: FileModel) => { + switch (event) { + case "open": { + workspace.open(node.path); + break; + } + case "newFolder": { + const folderNode: FileModel = { + path: node.path + "/:", + title: "", + children: [], + editing: true, + }; + node.children?.unshift(folderNode); + setNewName(""); + if (expandedKeys.indexOf(node.path) === -1) { + setExpandedKeys([node.path, ...expandedKeys]); + } + break; + } + case "newFile": { + const folderNode: FileModel = { + path: node.path + "/.json", + title: "", + isLeaf: true, + editing: true, + }; + node.children?.unshift(folderNode); + setNewName(""); + if (expandedKeys.indexOf(node.path) === -1) { + setExpandedKeys([node.path, ...expandedKeys]); + } + break; + } + case "paste": { + if (copyFile) { + let folder = node.path; + if (node.isLeaf) { + folder = Path.dirname(node.path); + } + const newPath = folder + "/" + Path.basename(copyFile); + if (fs.existsSync(newPath)) { + if (node.path === newPath) { + dispatch("duplicate", node); + } else { + const alert = modal.confirm({ + centered: true, + content: ( + +
+ +
+
{t("explorer.replaceFile", { name: Path.basename(copyFile) })}
+
+ ), + footer: ( + + + + + + + ), + }); + } + } else { + fs.copyFileSync(copyFile, newPath); + } + } + break; + } + case "copy": { + setCopyFile(node.path); + break; + } + case "duplicate": { + for (let i = 1; ; i++) { + const dupName = Path.basenameWithoutExt(node.path) + " " + i + ".json"; + const dupPath = Path.dirname(node.path) + "/" + dupName; + if (!fs.existsSync(dupPath)) { + fs.copyFileSync(node.path, dupPath); + setSelectedKeys([dupPath]); + break; + } + } + break; + } + case "delete": { + if (node === workspace.fileTree) { + return; + } + if (node.isLeaf) { + const alert = modal.confirm({ + centered: true, + content: ( + +
+ +
+
{t("explorer.deleteFile", { name: node.title })}
+
+ ), + footer: ( + + + + + +
+ {t("explorer.restoreFileInfo")} +
+
+ ), + }); + } else { + const alert = modal.confirm({ + centered: true, + content: ( + +
+ +
+
{t("explorer.deleteFolder", { name: node.title })}
+
+ ), + footer: ( + + + + + +
+ {t("explorer.restoreFileInfo")} +
+
+ ), + }); + } + break; + } + case "move": { + try { + const newPath = dest!.path + "/" + Path.basename(node.path); + const doMove = () => { + fs.renameSync(node.path, newPath); + for (const editor of workspace.editors) { + if (editor.path.startsWith(node.path)) { + editor.dispatch?.("rename", dest!.path + "/" + Path.basename(editor.path)); + } + console.log("editor move", editor.path === newPath, editor.path, newPath); + if (editor.path.startsWith(newPath)) { + console.log("editor reload", editor.path === newPath, editor.path, newPath); + editor.dispatch?.("reload"); + } + } + }; + if (fs.existsSync(newPath)) { + const alert = modal.confirm({ + centered: true, + content: ( + +
+ +
+
{t("explorer.replaceFile", { name: Path.basename(node.path) })}
+
+ ), + footer: ( + + + + + + + ), + }); + } else { + doMove(); + } + } catch (error) { + console.error("move file:", error); + } + break; + } + case "revealFile": + shell.showItemInFolder(node.path.replaceAll("/", Path.sep)); + break; + case "rename": { + node.editing = true; + setNewName(""); + break; + } + } + }; + + // context menu + const fileContextMenu = useMemo(() => { + const MenuItem: FC = (itemProps) => { + return ( + + ); + }; + const isMac = process.platform === "darwin"; + const arr: MenuProps["items"] = [ + { + label: ( + +
{t("open")}
+
+ ), + key: "open", + }, + { + label: ( + +
{t("copy")}
+
{isMac ? "⌘ C" : "Ctrl+C"}
+
+ ), + key: "copy", + }, + { + label: ( + +
{t("duplicate")}
+
{isMac ? "⌘ D" : "Ctrl+D"}
+
+ ), + key: "duplicate", + }, + { + label: ( + +
{isMac ? t("revealFileOnMac") : t("revealFileOnWindows")}
+
+ ), + key: "revealFile", + }, + { + label: ( + +
{t("rename")}
+ {isMac && } + {!isMac &&
F2
} +
+ ), + key: "rename", + }, + { + label: ( + +
{t("delete")}
+ {isMac && ( + + + + + )} +
+ ), + key: "delete", + }, + ]; + return arr; + }, [t]); + + const directoryContextMenu = useMemo(() => { + const MenuItem: FC = (itemProps) => { + return ( + + ); + }; + const isMac = process.platform === "darwin"; + const arr: MenuProps["items"] = [ + { + label: ( + +
{t("newFile")}
+
+ ), + key: "newFile", + }, + { + label: ( + +
{t("newFolder")}
+
+ ), + key: "newFolder", + }, + { + label: ( + +
{isMac ? t("revealFileOnMac") : t("revealFileOnWindows")}
+
+ ), + key: "revealFile", + }, + { + label: ( + +
{t("paste")}
+
{isMac ? "⌘ V" : "Ctrl+V"}
+
+ ), + key: "paste", + }, + { + label: ( + +
{t("rename")}
+ {isMac && } + {!isMac &&
F2
} +
+ ), + key: "rename", + }, + { + label: ( + +
{t("delete")}
+ {isMac && ( + + + + + )} +
+ ), + key: "delete", + }, + ]; + return arr; + }, [t, copyFile]); + + const onClick = (info: MenuInfo) => { + const node = findFile(selectedKeys[0], workspace.fileTree!) ?? workspace.fileTree; + if (node) { + dispatch(info.key as MenuEvent, node); + } + }; + + if (!workspace.fileTree) { + return null; + } + + return ( +
{ + setContextMenu(directoryContextMenu); + }} + onContextMenu={(e) => { + if (workspace.fileTree) { + // setSelectedKeys([workspace.fileTree.path]); + } + }} + > +
+ {t("explorer.title")} +
+ + +
+ { + setExpandedKeys(keys); + }} + onRightClick={(info) => { + if (info.node.isLeaf) { + setContextMenu(fileContextMenu); + } + setSelectedKeys([info.node.path]); + }} + onSelect={(_, info) => { + const node = info.selectedNodes.at(0); + if (node) { + if (!node.children) { + workspace.open(node.path); + } + setSelectedKeys([node.path]); + } + if (node && !node.children) { + workspace.open(node.path); + } + }} + onDrop={(info) => { + dispatch("move", info.dragNode, info.node); + }} + titleRender={(node) => { + if (node.editing) { + return ( +
+ e.target.select()} + onChange={(e) => setNewName(e.target.value)} + onPressEnter={() => { + if (newName) { + submitRename(node); + } + }} + onClick={(e) => e.stopPropagation()} + onKeyUp={(e) => { + if (e.code === Hotkey.Escape) { + if (!fs.existsSync(node.path)) { + const parent = findParent(node, workspace.fileTree); + if (parent && parent.children) { + parent.children = parent.children.filter((v) => v !== node); + } + } + node.editing = false; + setNewName(null); + } + }} + onBlur={() => submitRename(node)} + > +
+ ); + } else { + return {node.title}; + } + }} + allowDrop={(options) => { + return !options.dropNode.isLeaf; + }} + defaultExpandedKeys={[workspace.fileTree.path]} + draggable={newName !== null ? false : { icon: false }} + expandedKeys={expandedKeys} + switcherIcon={} + selectedKeys={selectedKeys} + /> +
+
+
+
+ ); +}; diff --git a/src/components/inspector.tsx b/src/components/inspector.tsx new file mode 100644 index 0000000..1957f2c --- /dev/null +++ b/src/components/inspector.tsx @@ -0,0 +1,359 @@ +import { EditNode, EditTree, FileModel, useWorkspace } from "@/contexts/workspace-context"; +import { NodeModel, TreeGraphData, TreeModel } from "@/misc/b3type"; +import { Hotkey } from "@/misc/keys"; +import Path from "@/misc/path"; +import { AutoComplete, Divider, Flex, Form, Input, InputNumber, Select, Switch } from "antd"; +import { DefaultOptionType } from "antd/es/select"; +import { FC, useEffect, useMemo } from "react"; +import { useTranslation } from "react-i18next"; +import Markdown from "react-markdown"; + +interface OptionType extends DefaultOptionType {} + +export const Inspector: FC = () => { + const workspace = { + editing: useWorkspace((state) => state.editing), + editingNode: useWorkspace((state) => state.editingNode), + editingTree: useWorkspace((state) => state.editingTree), + getNodeDef: useWorkspace((state) => state.getNodeDef), + nodeDefs: useWorkspace((state) => state.nodeDefs), + onEditingNode: useWorkspace((state) => state.onEditingNode), + allFiles: useWorkspace((state) => state.allFiles), + fileTree: useWorkspace((state) => state.fileTree), + }; + const { t } = useTranslation(); + const [form] = Form.useForm(); + + // set form values + useEffect(() => { + if (workspace.editingTree) { + const data = workspace.editingTree.data; + form.resetFields(); + form.setFieldValue("name", data.name); + form.setFieldValue("desc", data.desc); + } else if (workspace.editingNode) { + const data = workspace.editingNode.data; + const def = workspace.getNodeDef(workspace.editingNode.data.name); + form.resetFields(); + form.setFieldValue("id", data.id); + form.setFieldValue("name", data.name); + form.setFieldValue("desc", data.desc); + form.setFieldValue("debug", data.debug); + form.setFieldValue("path", data.path); + def.args?.forEach((v) => { + form.setFieldValue(`args.${v.name}`, data.args?.[v.name]); + }); + def.input?.forEach((_, i) => { + form.setFieldValue(`input.${i}`, data.input?.[i]); + }); + def.output?.forEach((_, i) => { + form.setFieldValue(`output.${i}`, data.output?.[i]); + }); + } + }, [workspace.editingNode, workspace.editingTree]); + + // auto complete for node + const nodeOptions = useMemo(() => { + const options: OptionType[] = []; + workspace.nodeDefs.forEach((e) => { + options.push({ label: `${e.name}(${e.desc})`, value: e.name }); + }); + return options; + }, [workspace.nodeDefs]); + + // auto complete for input and output + const inoutVarOptions = useMemo(() => { + const options: OptionType[] = []; + const collect = (node?: TreeGraphData) => { + if (node) { + node.input?.forEach((v, i) => { + const desc = node.def.input?.[i] ?? ""; + if (v && !options.find((option) => option.value !== v)) { + options.push({ label: `${v}(${desc})`, value: v }); + } + }); + node.output?.forEach((v, i) => { + const desc = node.def.output?.[i] ?? ""; + if (v && !options.find((option) => option.value !== v)) { + options.push({ label: `${v}(${desc})`, value: v }); + } + }); + node.children?.forEach((child) => collect(child)); + } + }; + collect(workspace.editing?.data); + return options; + }, [workspace.editing]); + + // auto complete for subtree + const subtreeOptions = useMemo(() => { + const options: OptionType[] = []; + workspace.allFiles.forEach((path) => { + const value = Path.relative(workspace.fileTree!.path, path); + const desc = ""; //fileNode.desc ? `(${fileNode.desc})` : ""; + options.push({ + label: `${value}${desc}`, + value: value, + }); + }); + return options; + }, [workspace.allFiles, workspace.fileTree]); + + if (workspace.editingTree) { + const finish = (values: any) => { + const data = {} as TreeModel; + data.name = values.name; + data.desc = values.desc || undefined; + workspace.editing?.dispatch?.("updateTree", { + data: { + name: values.name, + desc: values.desc || undefined, + }, + } as EditTree); + }; + return ( + +
+ {t("tree.overview")} +
+
+
+ + + + + + +
+
+
+ ); + } else if (workspace.editingNode) { + const editingNode = workspace.editingNode; + const def = workspace.getNodeDef(editingNode.data.name); + const disabled = !editingNode.editable; + + // update value + const finish = (values: any) => { + const data = {} as NodeModel; + data.id = editingNode.data.id; + data.name = values.name; + data.debug = values.debug || undefined; + data.desc = values.desc || undefined; + data.path = values.path || undefined; + + def.args?.forEach((arg) => { + const v = values[`args.${arg.name}`]; + if (v !== null && v !== undefined && v !== "") { + data.args ||= {}; + data.args[arg.name] = v; + } + }); + + def.input?.forEach((_, i) => { + const v = values[`input.${i}`]; + data.input ||= []; + data.input.push(v ?? ""); + }); + + def.output?.forEach((_, i) => { + const v = values[`output.${i}`]; + data.output ||= []; + data.output!.push(v ?? ""); + }); + workspace.editing?.dispatch?.("updateNode", { + data: data, + } as EditNode); + }; + + // change node def + const changeNodeDef = (newname: string) => { + if (editingNode.data.name !== newname) { + editingNode.data = { + id: editingNode.data.id, + name: workspace.nodeDefs.get(newname)?.name ?? newname, + desc: editingNode.data.desc, + debug: editingNode.data.debug, + }; + workspace.onEditingNode(editingNode); + form.submit(); + } else { + form.submit(); + } + }; + + const changeSubtree = () => { + if (form.getFieldValue("path") !== editingNode.data.path) { + finish(form.getFieldsValue()); + } else { + form.submit(); + } + }; + + return ( + +
+ {def.desc} +
+
+
+ {t("node.id")}
+ } + > + + + + changeNodeDef(form.getFieldValue("name"))} + onSelect={changeNodeDef} + onInputKeyDown={(e) => e.code === Hotkey.Escape && e.preventDefault()} + filterOption={(inputValue: string, option?: OptionType) => { + const label = option!.label as string; + return label.toUpperCase().indexOf(inputValue.toUpperCase()) !== -1; + }} + /> + + + + + + + + + e.code === Hotkey.Escape && e.preventDefault()} + filterOption={(inputValue: string, option?: OptionType) => { + const label = option!.label as string; + return label.toUpperCase().indexOf(inputValue.toUpperCase()) !== -1; + }} + /> + + {def.doc} + {def.input?.length && ( + <> + +

{t("node.inputVariable")}

+
+ {def.input.map((v, i) => { + const required = v.indexOf("?") == -1; + const desc = v.replace("?", ""); + return ( + + e.code === Hotkey.Escape && e.preventDefault()} + filterOption={(inputValue: string, option?: OptionType) => { + const label = option!.label as string; + return label.toUpperCase().indexOf(inputValue.toUpperCase()) !== -1; + }} + /> + + ); + })} + + )} + {def.args?.length && ( + <> + +

{t("node.args")}

+
+ {def.args.map((v) => { + const required = v.type.indexOf("?") == -1; + return ( + = 0 ? "checked" : undefined} + rules={[{ required, message: t("node.fileRequired", { field: v.desc }) }]} + > + {v.type.indexOf("string") >= 0 && ( + + )} + {v.type.indexOf("int") >= 0 && ( + + )} + {v.type.indexOf("float") >= 0 && ( + + )} + {v.type.indexOf("boolean") >= 0 && ( + + )} + {v.type.indexOf("code") >= 0 && ( + + )} + {v.type.indexOf("enum") >= 0 && ( + + )} + + ); + })} + + )} + {def.output?.length && ( + <> + +

{t("node.outputVariable")}

+
+ {def.output.map((v, i) => { + const required = v.indexOf("?") == -1; + const desc = v.replace("?", ""); + return ( + + e.code === Hotkey.Escape && e.preventDefault()} + filterOption={(inputValue: string, option?: OptionType) => { + const label = option!.label as string; + return label.toUpperCase().indexOf(inputValue.toUpperCase()) !== -1; + }} + /> + + ); + })} + + )} + +
+ + ); + } else { + return null; + } +}; diff --git a/src/components/menu.tsx b/src/components/menu.tsx new file mode 100644 index 0000000..2d67bb4 --- /dev/null +++ b/src/components/menu.tsx @@ -0,0 +1,457 @@ +import { useSetting } from "@/contexts/setting-context"; +import { useWorkspace } from "@/contexts/workspace-context"; +import * as b3util from "@/misc/b3util"; +import i18n from "@/misc/i18n"; +import { Hotkey, sendInputEvent } from "@/misc/keys"; +import { CheckOutlined } from "@ant-design/icons"; +import { Menu as AppMenu, BrowserWindow, app, dialog } from "@electron/remote"; +import { Button, DropDownProps, Dropdown, Flex, FlexProps, LayoutProps, Space } from "antd"; +import { ItemType } from "antd/es/menu/hooks/useItems"; +import { ipcRenderer } from "electron"; +import { MenuItemConstructorOptions } from "electron/renderer"; +import * as fs from "fs"; +import { FC, useMemo, useState } from "react"; +import { useTranslation } from "react-i18next"; +import { PiTreeStructureFill } from "react-icons/pi"; + +const MenuItemLabel: FC = (itemProps) => { + return ( + + ); +}; + +const getFocusedWebContents = () => { + return BrowserWindow.getFocusedWindow()?.webContents; +}; + +ipcRenderer.on("open-project", (_, dir) => { + useWorkspace.getState().init(dir); +}); + +ipcRenderer.on("refresh-app-men", () => { + // trigger refresh + useSetting.getState().load(); +}); + +export const Menu: FC = () => { + const { t } = useTranslation(); + const [trigger, setTrigger] = useState(["click"]); + const workspace = { + allFiles: useWorkspace((state) => state.allFiles), + batchProject: useWorkspace((state) => state.batchProject), + buildProject: useWorkspace((state) => state.buildProject), + createProject: useWorkspace((state) => state.createProject), + editing: useWorkspace((state) => state.editing), + editors: useWorkspace((state) => state.editors), + init: useWorkspace((state) => state.init), + open: useWorkspace((state) => state.open), + openProject: useWorkspace((state) => state.openProject), + path: useWorkspace((state) => state.path), + save: useWorkspace((state) => state.save), + saveAll: useWorkspace((state) => state.saveAll), + workdir: useWorkspace((state) => state.workdir), + }; + const enabled = !!workspace.workdir; + const homedir = app.getPath("home"); + const settings = { + recent: useSetting((state) => state.recent), + }; + + const isMac = process.platform === "darwin"; + const menuTemplate: MenuItemConstructorOptions[] = useMemo(() => { + const recentWorkspaces: MenuItemConstructorOptions[] = settings.recent.map((path, i) => ({ + id: "menu.file.recent" + i, + label: path.replace(homedir, "~"), + click: () => workspace.openProject(path), + })); + return [ + // { role: 'appMenu' } + ...(isMac + ? [ + { + id: "menu.app", + label: app.name, + submenu: [ + { label: t("about"), role: "about" }, + { type: "separator" }, + { label: t("services"), role: "services" }, + { type: "separator" }, + { label: t("hide"), role: "hide" }, + { label: t("hideOthers"), role: "hideOthers" }, + { label: t("unhide"), role: "unhide" }, + { type: "separator" }, + { label: t("quit"), role: "quit" }, + ], + }, + ] + : []), + { + id: "menu.file", + label: t("menu.file"), + submenu: [ + { + id: "menu.file.newFile", + label: t("newFile"), + accelerator: "CmdOrCtrl+N", + enabled: enabled, + click: () => { + console.log("newFile"); + const path = dialog.showSaveDialogSync({ + properties: ["showOverwriteConfirmation"], + filters: [{ name: "Json", extensions: ["json"] }], + }); + if (path) { + fs.writeFileSync(path, JSON.stringify(b3util.createNewTree(path), null, 2)); + workspace.open(path); + } + }, + }, + { + id: "menu.file.newWindow", + label: t("newWindow"), + click: () => { + ipcRenderer.invoke("open-win"); + }, + }, + { type: "separator" }, + { + id: "menu.file.openProject", + label: t("openProject"), + click: () => workspace.openProject(), + }, + { + id: "menu.file.createProject", + label: t("createProject"), + click: () => workspace.createProject(), + }, + { id: "menu.file.recent", label: t("recent"), submenu: recentWorkspaces }, + { type: "separator" }, + { + id: "menu.file.save", + label: t("save"), + accelerator: "CmdOrCtrl+S", + enabled: enabled, + click: () => { + console.log("save1"); + workspace.save(); + }, + }, + { + id: "menu.file.saveAs", + label: t("saveAs"), + accelerator: "Shift+CmdOrCtrl+S", + enabled: enabled, + }, + { + id: "menu.file.saveAll", + label: t("saveAll"), + accelerator: "Alt+CmdOrCtrl+S", + enabled: enabled, + click: () => workspace.saveAll(), + }, + { type: "separator" }, + { + id: "menu.file.build", + label: t("build"), + accelerator: "CmdOrCtrl+B", + enabled: enabled, + click: () => { + workspace.buildProject(); + }, + }, + { + id: "menu.file.batch", + label: t("batch"), + enabled: enabled, + click: () => workspace.batchProject(), + }, + ], + }, + { + id: "menu.edit", + label: t("menu.edit"), + submenu: [ + { + id: "menu.edit.undo", + label: t("undo"), + enabled: enabled, + accelerator: Hotkey.Undo, + click: () => { + sendInputEvent(Hotkey.Undo); + getFocusedWebContents()?.undo(); + }, + }, + { + id: "menu.edit.redo", + label: t("redo"), + enabled: enabled, + accelerator: Hotkey.Redo, + click: () => { + sendInputEvent(Hotkey.Redo); + getFocusedWebContents()?.redo(); + }, + }, + { type: "separator" }, + { + id: "menu.edit.copy", + label: t("copy"), + enabled: enabled, + accelerator: Hotkey.Copy, + click: () => { + sendInputEvent(Hotkey.Copy); + getFocusedWebContents()?.copy(); + }, + }, + { + id: "menu.edit.paste", + label: t("paste"), + enabled: enabled, + accelerator: Hotkey.Paste, + click: () => { + sendInputEvent(Hotkey.Paste); + getFocusedWebContents()?.paste(); + }, + }, + { type: "separator" }, + { + id: "menu.edit.insertNode", + label: t("insertNode"), + enabled: enabled, + click: () => { + workspace.editing?.dispatch?.("insert"); + }, + }, + { + id: "menu.edit.deleteNode", + label: t("deleteNode"), + enabled: enabled, + click: () => { + workspace.editing?.dispatch?.("delete"); + }, + }, + ], + }, + // { role: 'viewMenu' } + { + id: "menu.view", + label: t("menu.view"), + submenu: [ + { + id: "menu.view.reload", + label: t("reload"), + accelerator: "CmdOrCtrl+R", + click: () => { + const path = workspace.path; + getFocusedWebContents()?.reload(); + workspace.init(path); + }, + }, + { + id: "menu.view.devTools", + label: t("devTools"), + accelerator: "Alt+CmdOrCtrl+I", + click: () => { + getFocusedWebContents()?.openDevTools(); + }, + }, + { type: "separator" }, + { + id: "menu.view.actualSize", + label: t("actualSize"), + click: () => { + const webContents = getFocusedWebContents(); + if (webContents) { + webContents.setZoomFactor(1); + } + }, + }, + { + id: "menu.view.zoomIn", + label: t("zoomIn"), + role: "zoomIn", + click: () => { + const webContents = getFocusedWebContents(); + if (webContents) { + webContents.setZoomFactor(webContents.getZoomFactor() + 0.1); + } + }, + }, + { + id: "menu.view.zoomOut", + label: t("zoomOut"), + click: () => { + const webContents = getFocusedWebContents(); + if (webContents) { + webContents.setZoomFactor(webContents.getZoomFactor() - 0.1); + } + }, + }, + { type: "separator" }, + { + id: "menu.view.fullscreen", + label: t("fullscreen"), + click: () => { + const window = BrowserWindow.getFocusedWindow(); + if (window) { + window.setFullScreen(!window.isFullScreen()); + } + }, + }, + { type: "separator" }, + { + id: "menu.view.language", + label: t("language"), + submenu: [ + { + id: "menu.view.language.english", + label: "English", + type: "radio", + checked: i18n.language?.startsWith("en"), + click: () => { + i18n.changeLanguage("en"); + }, + }, + { + id: "menu.view.language.chinese", + label: "简体中文", + type: "radio", + checked: i18n.language?.startsWith("zh"), + click: () => { + i18n.changeLanguage("zh"); + }, + }, + ], + }, + ], + }, + { + id: "menu.help", + label: t("menu.help"), + submenu: [ + { + id: "menu.help.about", + label: t("reportIssue"), + click: () => { + window.open("https://github.com/zhandouxiaojiji/behavior3editor"); + }, + }, + ], + }, + // { + // id: "menu.window", + // label: t("menu.window"), + // submenu: [ + // { id: "menu.window.minimize", role: "minimize" }, + // { id: "menu.window.zoom", role: "zoom" }, + // ...(isMac + // ? [ + // { type: "separator" }, + // { id: "menu.window.front", role: "front" }, + // { type: "separator" }, + // { id: "menu.window.window", role: "window" }, + // ] + // : [{ id: "menu.window.close", role: "close" }]), + // ], + // }, + ] as MenuItemConstructorOptions[]; + }, [t, workspace.workdir, settings.recent, workspace.editing]); + + if (isMac) { + const menu = AppMenu.buildFromTemplate(menuTemplate); + AppMenu.setApplicationMenu(menu); + } + + if (!process.env.VITE_DEV_SERVER_URL && isMac) { + return
; + } + + return ( + + + + {menuTemplate.map((item, index) => { + const items = item.submenu as MenuItemConstructorOptions[]; + if (item.label === app.name) { + return undefined; + } + const createItem = (option: MenuItemConstructorOptions): ItemType => { + if (option.type === "separator") { + return { + type: "divider", + }; + } + const keys = (option.accelerator?.split("+") ?? []).map((key) => { + const lowerKey = key.toLowerCase(); + if (lowerKey.indexOf("alt") !== -1) { + return isMac ? "⌥" : "Alt"; + } else if ( + lowerKey.indexOf("cmdorctrl") !== -1 || + lowerKey.indexOf("ctrl") !== -1 || + lowerKey.indexOf("meta") !== -1 + ) { + return isMac ? "⌘" : "Ctrl"; + } else if (lowerKey.indexOf("shift") !== -1) { + return isMac ? "⇧" : "Shift"; + } else { + return key.toUpperCase().replace("=", "+"); + } + }); + const ctrl = keys.indexOf("ctrl"); + if (ctrl >= 0) { + keys.splice(ctrl, 1); + keys.unshift("Ctrl"); + } + const subItems = option.submenu as MenuItemConstructorOptions[] | undefined; + return { + label: ( + +
+ {option.type === "radio" && option.checked && ( + + )} + {option.type === "radio" && !option.checked && ( +
+ )} + {option.label} +
+
{keys.join(isMac ? " " : "+")}
+
+ ), + key: option.id ?? "", + disabled: option.enabled === false, + onClick: () => { + option.click?.(null!, null!, null!); + }, + children: subItems?.map((subOption) => createItem(subOption)), + }; + }; + return ( + { + return
{node}
; + }} + menu={{ + items: items.map((value) => createItem(value)), + }} + > + +
+ ); + })} +
+
+ ); +}; diff --git a/src/components/register-node.ts b/src/components/register-node.ts new file mode 100644 index 0000000..683ea86 --- /dev/null +++ b/src/components/register-node.ts @@ -0,0 +1,412 @@ +import { useWorkspace } from "@/contexts/workspace-context"; +import { toBreakWord } from "@/misc/b3util"; +import i18n from "@/misc/i18n"; +import G6 from "@antv/g6"; + +const NODE_COLORS: any = { + ["Composite"]: "rgb(91,237,32)", + ["Decorator"]: "rgb(218,167,16)", + ["Condition"]: "rgb(228,20,139)", + ["Action"]: "rgb(91,143,249)", + ["Other"]: "rgb(112,112,112)", + ["Error"]: "rgb(255,0,0)", +}; + +const SELECTED_LINE_WIDTH = 4; + +G6.registerNode( + "TreeNode", + { + options: { + type: "rect", + anchorPoints: [ + [0, 0.5], + [1, 0.5], + ], + labelCfg: { + style: { + fill: "blue", + fontSize: 10, + }, + }, + style: { + fill: "white", + }, + stateStyles: { + selected: { + "main-box": { + stroke: "yellow", + lineWidth: SELECTED_LINE_WIDTH, + }, + "name-bg-selected": { + fill: "yellow", + }, + }, + hover: { + stroke: "white", + lineWidth: 3, + }, + dragSrc: { + fill: "gray", + }, + dragRight: { + "drag-right": { + fillOpacity: 1, + strokeOpacity: 1, + }, + }, + dragUp: { + "drag-up": { + fillOpacity: 1, + strokeOpacity: 1, + }, + }, + dragDown: { + "drag-down": { + fillOpacity: 1, + strokeOpacity: 1, + }, + }, + }, + }, + draw(cfg, group) { + const workspace = useWorkspace.getState(); + const nodeDef = workspace.getNodeDef(cfg.name as string); + let classify = nodeDef.type || "Other"; + let color = nodeDef.color || NODE_COLORS[classify] || NODE_COLORS["Other"]; + if ( + !workspace.hasNodeDef(cfg.name as string) || + (cfg.path && (!cfg.children || (cfg.children as []).length == 0)) + ) { + classify = "Error"; + color = NODE_COLORS[classify]; + } + const size = cfg.size ? (cfg.size as number[]) : [150, 40]; + const w = size[0]; + const h = size[1]; + const r = 4; + + type ShapeCfg = Parameters[1]; + const addShape = (type: string, shapeCfg: ShapeCfg, clickEnabled: boolean = false) => { + shapeCfg.draggable = clickEnabled; + shapeCfg.capture = clickEnabled; + return group.addShape(type, shapeCfg); + }; + + const shape = addShape( + "rect", + { + attrs: { + x: 0, + y: 0, + width: w, + height: h, + stroke: color, + lineWidth: 2, + fill: "white", + radius: r, + }, + name: "main-box", + draggable: true, + }, + true + ); + + // is subtree + if (cfg.path && cfg.id !== "1") { + addShape("rect", { + attrs: { + x: -10, + y: -10, + width: w + 20, + height: h + 20, + stroke: "white", + lineWidth: 2.5, + lineDash: [5, 5], + radius: [r, r, r, r], + }, + name: "subtree", + draggable: true, + }); + } + + // name bg + addShape("rect", { + attrs: { + x: 0, + y: 0, + width: w, + height: 20, + fill: color, + radius: [r, r, 0, 0], + }, + name: "name-bg-selected", + draggable: true, + }); + addShape("rect", { + attrs: { + x: SELECTED_LINE_WIDTH / 2, + y: SELECTED_LINE_WIDTH / 2, + width: w - 4, + height: 20 - SELECTED_LINE_WIDTH / 2, + fill: color, + radius: [r, r, 0, 0], + }, + name: "name-bg", + draggable: true, + }); + + // id text + addShape("text", { + attrs: { + textBaseline: "top", + x: -3, + y: h / 2 - 8, + fontSize: 20, + lineHeight: 20, + text: cfg.id, + textAlign: "right", + fill: "white", + stroke: "black", + lineWidth: 2, + }, + name: "id-text", + }); + + // icon + const img = `./icons/${classify}.svg`; + addShape("image", { + attrs: { + x: 5, + y: 2, + height: 14, + width: 14, + img, + }, + name: "node-icon", + }); + + // debug + if (cfg.debug) { + addShape("image", { + attrs: { + x: 182, + y: 2, + height: 14, + width: 14, + img: `./icons/Debug.svg`, + }, + name: "node-icon", + }); + } + + // name text + addShape("text", { + attrs: { + textBaseline: "top", + x: 22, + y: 3, + fontWeight: 800, + lineHeight: 20, + text: cfg.name, + fill: "black", + }, + name: "name-text", + }); + + const x = 5; + let y = 24; + // desc text + const desc = cfg.desc || nodeDef.desc; + if (desc) { + addShape("text", { + attrs: { + textBaseline: "top", + x, + y, + lineHeight: 20, + fontWeight: 800, + text: `${i18n.t("regnode.mark")}${desc}`, + fill: "black", + }, + name: "desc-text", + }); + } + + const args: any = cfg.args; + if (nodeDef.args && args && Object.keys(args).length > 0) { + const { str, line } = toBreakWord(`${i18n.t("regnode.args")}${JSON.stringify(args)}`, 34); + addShape("text", { + attrs: { + textBaseline: "top", + x, + y: y + 20, + w, + lineHeight: 20, + text: str, + fill: "black", + }, + name: "args-text", + }); + y += 20 * line; + } + + const input: [] = cfg.input ? (cfg.input as []) : []; + if (nodeDef.input && input.length > 0) { + const { str, line } = toBreakWord(`${i18n.t("regnode.input")}${JSON.stringify(input)}`, 35); + if (cfg.highlightInput) { + addShape("rect", { + attrs: { + x: x - 2, + y: y + 17, + width: w - 6, + height: 18, + fill: "#0d1117", + radius: [r, r, r, r], + }, + name: "input-text-bg", + }); + } + addShape( + "text", + { + attrs: { + textBaseline: "top", + x, + y: y + 20, + lineHeight: 20, + text: str, + fill: cfg.highlightInput ? "white" : "black", + fontWeight: cfg.highlightInput ? "bolder" : undefined, + }, + name: "input-text", + }, + true + ); + y += 20 * line; + } + + const output: [] = cfg.output ? (cfg.output as []) : []; + if (nodeDef.output && output.length > 0) { + const { str, line } = toBreakWord( + `${i18n.t("regnode.output")}${JSON.stringify(output)}`, + 35 + ); + if (cfg.highlightOutput) { + addShape("rect", { + attrs: { + x: x - 2, + y: y + 17, + width: w - 6, + height: 18, + fill: "#0d1117", + radius: [r, r, r, r], + }, + name: "output-text-bg", + }); + } + addShape( + "text", + { + attrs: { + textBaseline: "top", + x, + y: y + 20, + lineHeight: 20, + text: str, + fill: cfg.highlightOutput ? "white" : "black", + fontWeight: cfg.highlightOutput ? "bolder" : undefined, + }, + name: "output-text", + }, + true + ); + y += 20 * line; + } + + if (cfg.path) { + addShape("text", { + attrs: { + textBaseline: "top", + x, + y: y + 20, + lineHeight: 20, + text: `${i18n.t("regnode.subtree")}${cfg.path}`, + fill: "black", + }, + name: "subtree-text", + }); + y += 20; + } + + addShape("rect", { + name: "drag-up", + attrs: { + x: 0, + y: 0, + width: w, + height: h / 2, + lineWidth: 2, + stroke: "#1668dc", + strokeOpacity: 0, + fill: "#1668dc", + fillOpacity: 0, + radius: [r, r, 0, 0], + }, + draggable: true, + }); + + addShape("rect", { + name: "drag-down", + attrs: { + x: 0, + y: h / 2, + width: w, + height: h / 2, + lineWidth: 2, + stroke: "#1668dc", + strokeOpacity: 0, + fill: "#1668dc", + fillOpacity: 0, + radius: [0, 0, r, r], + }, + draggable: true, + }); + + addShape("rect", { + name: "drag-right", + attrs: { + x: w / 2, + y: 0, + width: w / 2, + height: h, + lineWidth: 2, + stroke: "#1668dc", + strokeOpacity: 0, + fill: "#1668dc", + fillOpacity: 0, + radius: [0, r, r, 0], + }, + draggable: true, + }); + + if (Array.isArray(cfg.children) && cfg.children.length > 0) { + addShape("marker", { + attrs: { + x: w, + y: h / 2, + r: 6, + symbol: G6.Marker.collapse, + stroke: "#666", + lineWidth: 1, + fill: "#fff", + }, + name: "collapse-icon", + }); + } + + return shape; + }, + }, + "single-node" +); diff --git a/src/components/setup.tsx b/src/components/setup.tsx new file mode 100644 index 0000000..1993dfe --- /dev/null +++ b/src/components/setup.tsx @@ -0,0 +1,11 @@ +import { useSetting } from "@/contexts/setting-context"; +import { message, setGlobalHooks } from "@/misc/hooks"; +import { FC } from "react"; + +export const Setup: FC = () => { + if (!message) { + useSetting().load(); + } + setGlobalHooks(); + return
; +}; diff --git a/src/components/titlebar.tsx b/src/components/titlebar.tsx new file mode 100644 index 0000000..4b1ea0e --- /dev/null +++ b/src/components/titlebar.tsx @@ -0,0 +1,117 @@ +import { useWorkspace } from "@/contexts/workspace-context"; +import { Hotkey } from "@/misc/keys"; +import Path from "@/misc/path"; +import { SearchOutlined } from "@ant-design/icons"; +import { Button, Flex, LayoutProps, Select } from "antd"; +import React, { FC, useMemo } from "react"; +import { Menu } from "./menu"; + +interface OptionType { + label: string | React.ReactNode; + value: string; + path: string; +} + +export const TitleBar: FC = () => { + const workspace = { + allFiles: useWorkspace((state) => state.allFiles), + fileTree: useWorkspace((state) => state.fileTree), + isShowingSearch: useWorkspace((state) => state.isShowingSearch), + onShowingSearch: useWorkspace((state) => state.onShowingSearch), + open: useWorkspace((state) => state.open), + name: useWorkspace((state) => state.path), + }; + const searchOptions = useMemo(() => { + const options: OptionType[] = []; + workspace.allFiles.forEach((path) => { + const value = Path.relative(workspace.fileTree!.path, path); + options.push({ + label: ( +
+ {Path.basename(value)} + + {Path.dirname(value)} +
+ ), + value: value, + path: path, + }); + }); + return options; + }, [workspace.allFiles, workspace.fileTree]); + return ( + +
+
{process.platform !== "darwin" && }
+ + + {workspace.isShowingSearch && ( +