From 6f57f80f578c621e21d7f3150bc6bf23bcdb61e3 Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Thu, 20 Jul 2023 00:57:42 +0800 Subject: [PATCH] perf: remove admin-old to reduce image size --- docker/admin-old.yml | 20 - package.json | 4 +- pnpm-lock.yaml | 1767 +---------------- pnpm-workspace.yaml | 1 - server/admin-old/.gitignore | 7 - server/admin-old/README.md | 53 - server/admin-old/app/entry.client.tsx | 23 - server/admin-old/app/entry.server.tsx | 111 -- server/admin-old/app/ra/App.tsx | 74 - server/admin-old/app/ra/authProvider.ts | 65 - .../app/ra/components/ButtonWithConfirm.tsx | 47 - .../admin-old/app/ra/components/ChipItems.tsx | 17 - .../app/ra/components/DangerButton.tsx | 17 - .../app/ra/components/FilesizeField.tsx | 47 - .../app/ra/components/GroupField.tsx | 12 - server/admin-old/app/ra/components/Image.tsx | 9 - .../ra/components/PostListActionToolbar.tsx | 6 - .../admin-old/app/ra/components/UserField.tsx | 29 - .../app/ra/dashboard/CardWithIcon.tsx | 69 - server/admin-old/app/ra/dashboard/Welcome.tsx | 80 - .../admin-old/app/ra/dashboard/cartouche.png | Bin 1117 -> 0 bytes .../app/ra/dashboard/cartoucheDark.png | Bin 1117 -> 0 bytes server/admin-old/app/ra/dashboard/index.tsx | 80 - server/admin-old/app/ra/dashboard/logo.svg | 17 - server/admin-old/app/ra/i18n/builtin.ts | 164 -- server/admin-old/app/ra/i18n/custom.ts | 157 -- server/admin-old/app/ra/i18n/index.ts | 37 - server/admin-old/app/ra/i18n/resources.ts | 123 -- server/admin-old/app/ra/layout/Menu.tsx | 45 - server/admin-old/app/ra/layout/index.tsx | 8 - server/admin-old/app/ra/request.ts | 46 - server/admin-old/app/ra/resources/chat.tsx | 77 - server/admin-old/app/ra/resources/file.tsx | 17 - server/admin-old/app/ra/resources/group.tsx | 139 -- server/admin-old/app/ra/resources/user.tsx | 132 -- .../admin-old/app/ra/routes/network/index.tsx | 98 - server/admin-old/app/ra/routes/socketio.tsx | 44 - .../admin-old/app/ra/routes/system/index.tsx | 205 -- server/admin-old/app/ra/theme.ts | 22 - server/admin-old/app/ra/utils/hooks.ts | 15 - server/admin-old/app/ra/utils/index.ts | 13 - server/admin-old/app/root.tsx | 32 - server/admin-old/app/routes/admin/$.tsx | 8 - server/admin-old/app/routes/admin/index.tsx | 8 - server/admin-old/app/routes/index.tsx | 6 - server/admin-old/app/server/broker.ts | 28 - server/admin-old/app/server/index.ts | 88 - .../admin-old/app/server/middleware/auth.ts | 39 - server/admin-old/app/server/router/api.ts | 90 - server/admin-old/app/server/router/config.ts | 38 - server/admin-old/app/server/router/file.ts | 60 - server/admin-old/app/server/router/network.ts | 37 - server/admin-old/app/styles/app.css | 3 - server/admin-old/nodemon.json | 7 - server/admin-old/package.json | 60 - server/admin-old/public/favicon.ico | Bin 17550 -> 0 bytes server/admin-old/remix.config.js | 8 - server/admin-old/remix.env.d.ts | 2 - server/admin-old/server.ts | 5 - server/admin-old/test/docker-compose.yml | 26 - server/admin-old/tsconfig.json | 23 - website/docs/deployment/admin.md | 6 +- .../current/deployment/admin.md | 5 +- 63 files changed, 85 insertions(+), 4391 deletions(-) delete mode 100644 docker/admin-old.yml delete mode 100644 server/admin-old/.gitignore delete mode 100644 server/admin-old/README.md delete mode 100644 server/admin-old/app/entry.client.tsx delete mode 100644 server/admin-old/app/entry.server.tsx delete mode 100644 server/admin-old/app/ra/App.tsx delete mode 100644 server/admin-old/app/ra/authProvider.ts delete mode 100644 server/admin-old/app/ra/components/ButtonWithConfirm.tsx delete mode 100644 server/admin-old/app/ra/components/ChipItems.tsx delete mode 100644 server/admin-old/app/ra/components/DangerButton.tsx delete mode 100644 server/admin-old/app/ra/components/FilesizeField.tsx delete mode 100644 server/admin-old/app/ra/components/GroupField.tsx delete mode 100644 server/admin-old/app/ra/components/Image.tsx delete mode 100644 server/admin-old/app/ra/components/PostListActionToolbar.tsx delete mode 100644 server/admin-old/app/ra/components/UserField.tsx delete mode 100644 server/admin-old/app/ra/dashboard/CardWithIcon.tsx delete mode 100644 server/admin-old/app/ra/dashboard/Welcome.tsx delete mode 100644 server/admin-old/app/ra/dashboard/cartouche.png delete mode 100644 server/admin-old/app/ra/dashboard/cartoucheDark.png delete mode 100644 server/admin-old/app/ra/dashboard/index.tsx delete mode 100644 server/admin-old/app/ra/dashboard/logo.svg delete mode 100644 server/admin-old/app/ra/i18n/builtin.ts delete mode 100644 server/admin-old/app/ra/i18n/custom.ts delete mode 100644 server/admin-old/app/ra/i18n/index.ts delete mode 100644 server/admin-old/app/ra/i18n/resources.ts delete mode 100644 server/admin-old/app/ra/layout/Menu.tsx delete mode 100644 server/admin-old/app/ra/layout/index.tsx delete mode 100644 server/admin-old/app/ra/request.ts delete mode 100644 server/admin-old/app/ra/resources/chat.tsx delete mode 100644 server/admin-old/app/ra/resources/file.tsx delete mode 100644 server/admin-old/app/ra/resources/group.tsx delete mode 100644 server/admin-old/app/ra/resources/user.tsx delete mode 100644 server/admin-old/app/ra/routes/network/index.tsx delete mode 100644 server/admin-old/app/ra/routes/socketio.tsx delete mode 100644 server/admin-old/app/ra/routes/system/index.tsx delete mode 100644 server/admin-old/app/ra/theme.ts delete mode 100644 server/admin-old/app/ra/utils/hooks.ts delete mode 100644 server/admin-old/app/ra/utils/index.ts delete mode 100644 server/admin-old/app/root.tsx delete mode 100644 server/admin-old/app/routes/admin/$.tsx delete mode 100644 server/admin-old/app/routes/admin/index.tsx delete mode 100644 server/admin-old/app/routes/index.tsx delete mode 100644 server/admin-old/app/server/broker.ts delete mode 100644 server/admin-old/app/server/index.ts delete mode 100644 server/admin-old/app/server/middleware/auth.ts delete mode 100644 server/admin-old/app/server/router/api.ts delete mode 100644 server/admin-old/app/server/router/config.ts delete mode 100644 server/admin-old/app/server/router/file.ts delete mode 100644 server/admin-old/app/server/router/network.ts delete mode 100644 server/admin-old/app/styles/app.css delete mode 100644 server/admin-old/nodemon.json delete mode 100644 server/admin-old/package.json delete mode 100644 server/admin-old/public/favicon.ico delete mode 100644 server/admin-old/remix.config.js delete mode 100644 server/admin-old/remix.env.d.ts delete mode 100644 server/admin-old/server.ts delete mode 100644 server/admin-old/test/docker-compose.yml delete mode 100644 server/admin-old/tsconfig.json diff --git a/docker/admin-old.yml b/docker/admin-old.yml deleted file mode 100644 index e59dcd2b495..00000000000 --- a/docker/admin-old.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: "3.3" - -services: - # 后台应用 - tailchat-admin-old: - build: - context: ../ - image: tailchat - restart: unless-stopped - env_file: docker-compose.env - depends_on: - - mongo - - redis - labels: - - "traefik.enable=true" - - "traefik.http.routers.admin-old.rule=PathPrefix(`/admin`)" - - "traefik.http.services.admin-old.loadbalancer.server.port=3000" - networks: - - internal - command: pnpm start:admin-old diff --git a/package.json b/package.json index a500a43c43f..9d81164392a 100644 --- a/package.json +++ b/package.json @@ -11,12 +11,10 @@ "dev:admin": "cd server/admin && pnpm dev", "start:service": "cd server && pnpm start:service", "start:admin": "cd server/admin && pnpm start", - "start:admin-old": "cd server/admin-old && pnpm start", - "build": "concurrently npm:build:web npm:build:server npm:build:admin npm:build:admin-old && cp -r client/web/dist/* server/dist/public", + "build": "concurrently npm:build:web npm:build:server npm:build:admin && cp -r client/web/dist/* server/dist/public", "build:web": "cd client/web && pnpm build", "build:server": "cd server && pnpm build && echo \"Install server side plugin:\" && pnpm run plugin:install com.msgbyte.tasks com.msgbyte.linkmeta com.msgbyte.github com.msgbyte.simplenotify com.msgbyte.topic com.msgbyte.agora com.msgbyte.wxpusher com.msgbyte.welcome com.msgbyte.iam com.msgbyte.discover && mkdir -p ./dist/public && cp -r ./public/plugins ./dist/public && cp ./public/registry-be.json ./dist/public", "build:admin": "cd server/admin && pnpm build", - "build:admin-old": "cd server/admin-old && pnpm build", "check:type": "concurrently npm:check:type:client npm:check:type:server", "check:type:client": "cd client/web && tsc --noEmit", "check:type:server": "cd server && tsc --noEmit", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4253174515b..71b36206bcb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1657,130 +1657,6 @@ importers: specifier: ^4.2.0 version: 4.2.0(@types/node@18.11.9) - server/admin-old: - dependencies: - '@fastify/busboy': - specifier: ^1.1.0 - version: 1.1.0 - '@mui/icons-material': - specifier: ^5.11.0 - version: 5.11.0(@mui/material@5.11.3)(@types/react@18.0.20)(react@18.2.0) - '@mui/lab': - specifier: 5.0.0-alpha.122 - version: 5.0.0-alpha.122(@emotion/react@11.10.4)(@mui/material@5.11.3)(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) - '@mui/material': - specifier: ^5.11.3 - version: 5.11.3(@emotion/react@11.10.4)(@emotion/styled@11.10.4)(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) - '@remix-run/express': - specifier: ^1.9.0 - version: 1.9.0(express@4.18.2)(react-dom@18.2.0)(react@18.2.0) - '@remix-run/node': - specifier: ^1.9.0 - version: 1.9.0(react-dom@18.2.0)(react@18.2.0) - '@remix-run/react': - specifier: ^1.9.0 - version: 1.9.0(react-dom@18.2.0)(react@18.2.0) - '@types/md5': - specifier: ^2.3.2 - version: 2.3.2 - ahooks: - specifier: ^3.7.4 - version: 3.7.4(react@18.2.0) - axios: - specifier: ^1.2.2 - version: 1.4.0 - body-parser: - specifier: ^1.20.1 - version: 1.20.1 - compression: - specifier: ^1.7.4 - version: 1.7.4 - express: - specifier: ^4.18.2 - version: 4.18.2 - express-mongoose-ra-json-server: - specifier: ^0.1.0 - version: 0.1.0(express@4.18.2)(mongoose@6.1.1) - filesize: - specifier: ^8.0.7 - version: 8.0.7 - isbot: - specifier: ^3.6.5 - version: 3.6.5 - jsonwebtoken: - specifier: ^8.5.1 - version: 8.5.1 - lodash: - specifier: ^4.17.21 - version: 4.17.21 - md5: - specifier: ^2.3.0 - version: 2.3.0 - morgan: - specifier: ^1.10.0 - version: 1.10.0 - ra-data-json-server: - specifier: ^4.7.0 - version: 4.7.0(history@5.3.0)(react-dom@18.2.0)(react-hook-form@7.41.5)(react-router-dom@6.11.0)(react-router@6.11.0)(react@18.2.0) - ra-i18n-polyglot: - specifier: ^4.7.0 - version: 4.7.0(history@5.3.0)(react-dom@18.2.0)(react-hook-form@7.41.5)(react-router-dom@6.11.0)(react-router@6.11.0)(react@18.2.0) - ra-language-english: - specifier: ^4.7.0 - version: 4.7.0(history@5.3.0)(react-dom@18.2.0)(react-hook-form@7.41.5)(react-router-dom@6.11.0)(react-router@6.11.0)(react@18.2.0) - react: - specifier: ^18.2.0 - version: 18.2.0 - react-admin: - specifier: ^4.7.0 - version: 4.7.1(@babel/core@7.21.0)(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) - react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) - react-router-dom: - specifier: 6.11.0 - version: 6.11.0(react-dom@18.2.0)(react@18.2.0) - tailchat-server-sdk: - specifier: workspace:^0.0.14 - version: link:../packages/sdk - ts-node: - specifier: 10.9.1 - version: 10.9.1(@types/node@18.11.9)(typescript@4.9.4) - devDependencies: - '@remix-run/dev': - specifier: ^1.9.0 - version: 1.9.0(react-dom@18.2.0)(react@18.2.0) - '@types/compression': - specifier: ^1.7.2 - version: 1.7.2 - '@types/express': - specifier: ^4.17.15 - version: 4.17.15 - '@types/morgan': - specifier: ^1.9.4 - version: 1.9.4 - '@types/react': - specifier: 18.0.20 - version: 18.0.20 - '@types/react-dom': - specifier: ^18.0.8 - version: 18.0.11 - cross-env: - specifier: ^7.0.3 - version: 7.0.3 - dotenv: - specifier: ^16.0.3 - version: 16.0.3 - nodemon: - specifier: ^2.0.20 - version: 2.0.20 - npm-run-all: - specifier: ^4.1.5 - version: 4.1.5 - typescript: - specifier: 4.9.4 - version: 4.9.4 - server/packages/sdk: dependencies: '@fastify/busboy': @@ -3636,16 +3512,6 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-syntax-flow@7.18.6(@babel/core@7.21.0): - resolution: {integrity: sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.21.0 - '@babel/helper-plugin-utils': 7.20.2 - dev: true - /@babel/plugin-syntax-import-assertions@7.20.0(@babel/core@7.18.13): resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==} engines: {node: '>=6.9.0'} @@ -4109,17 +3975,6 @@ packages: '@babel/plugin-syntax-flow': 7.18.6(@babel/core@7.18.13) dev: true - /@babel/plugin-transform-flow-strip-types@7.18.9(@babel/core@7.21.0): - resolution: {integrity: sha512-+G6rp2zRuOAInY5wcggsx4+QVao1qPM0osC9fTUVlAV3zOrzTCnrMAFVnR6+a3T8wz1wFIH7KhYMcMB3u1n80A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.21.0 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-flow': 7.18.6(@babel/core@7.21.0) - dev: true - /@babel/plugin-transform-for-of@7.21.0(@babel/core@7.18.13): resolution: {integrity: sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==} engines: {node: '>=6.9.0'} @@ -4924,18 +4779,6 @@ packages: '@babel/plugin-transform-flow-strip-types': 7.18.9(@babel/core@7.18.13) dev: true - /@babel/preset-flow@7.18.6(@babel/core@7.21.0): - resolution: {integrity: sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.21.0 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-validator-option': 7.21.0 - '@babel/plugin-transform-flow-strip-types': 7.18.9(@babel/core@7.21.0) - dev: true - /@babel/preset-modules@0.1.5(@babel/core@7.18.13): resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} peerDependencies: @@ -6311,26 +6154,6 @@ packages: stylis: 4.0.13 dev: false - /@emotion/babel-plugin@11.10.2(@babel/core@7.21.0): - resolution: {integrity: sha512-xNQ57njWTFVfPAc3cjfuaPdsgLp5QOSuRsj9MA6ndEhH/AzuZM86qIQzt6rq+aGBwj3n5/TkLmU5lhAfdRmogA==} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.21.0 - '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.21.0) - '@babel/runtime': 7.21.0 - '@emotion/hash': 0.9.0 - '@emotion/memoize': 0.8.0 - '@emotion/serialize': 1.1.0 - babel-plugin-macros: 3.1.0 - convert-source-map: 1.9.0 - escape-string-regexp: 4.0.0 - find-root: 1.1.0 - source-map: 0.5.7 - stylis: 4.0.13 - dev: false - /@emotion/cache@11.10.5: resolution: {integrity: sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==} dependencies: @@ -6394,31 +6217,6 @@ packages: react: 18.2.0 dev: false - /@emotion/react@11.10.4(@babel/core@7.21.0)(@types/react@18.0.20)(react@18.2.0): - resolution: {integrity: sha512-j0AkMpr6BL8gldJZ6XQsQ8DnS9TxEQu1R+OGmDZiWjBAJtCcbt0tS3I/YffoqHXxH6MjgI7KdMbYKw3MEiU9eA==} - peerDependencies: - '@babel/core': ^7.0.0 - '@types/react': '*' - react: '>=16.8.0' - peerDependenciesMeta: - '@babel/core': - optional: true - '@types/react': - optional: true - dependencies: - '@babel/core': 7.21.0 - '@babel/runtime': 7.21.0 - '@emotion/babel-plugin': 11.10.2(@babel/core@7.21.0) - '@emotion/cache': 11.10.5 - '@emotion/serialize': 1.1.0 - '@emotion/use-insertion-effect-with-fallbacks': 1.0.0(react@18.2.0) - '@emotion/utils': 1.2.0 - '@emotion/weak-memoize': 0.3.0 - '@types/react': 18.0.20 - hoist-non-react-statics: 3.3.2 - react: 18.2.0 - dev: false - /@emotion/serialize@1.1.0: resolution: {integrity: sha512-F1ZZZW51T/fx+wKbVlwsfchr5q97iW8brAnXmsskz4d0hVB4O3M/SiA3SaeH06x02lSNzkkQv+n3AX3kCXKSFA==} dependencies: @@ -6458,31 +6256,6 @@ packages: react: 18.2.0 dev: false - /@emotion/styled@11.10.4(@babel/core@7.21.0)(@emotion/react@11.10.4)(@types/react@18.0.20)(react@18.2.0): - resolution: {integrity: sha512-pRl4R8Ez3UXvOPfc2bzIoV8u9P97UedgHS4FPX594ntwEuAMA114wlaHvOK24HB48uqfXiGlYIZYCxVJ1R1ttQ==} - peerDependencies: - '@babel/core': ^7.0.0 - '@emotion/react': ^11.0.0-rc.0 - '@types/react': '*' - react: '>=16.8.0' - peerDependenciesMeta: - '@babel/core': - optional: true - '@types/react': - optional: true - dependencies: - '@babel/core': 7.21.0 - '@babel/runtime': 7.21.0 - '@emotion/babel-plugin': 11.10.2(@babel/core@7.21.0) - '@emotion/is-prop-valid': 1.2.0 - '@emotion/react': 11.10.4(@babel/core@7.21.0)(@types/react@18.0.20)(react@18.2.0) - '@emotion/serialize': 1.1.0 - '@emotion/use-insertion-effect-with-fallbacks': 1.0.0(react@18.2.0) - '@emotion/utils': 1.2.0 - '@types/react': 18.0.20 - react: 18.2.0 - dev: false - /@emotion/stylis@0.8.5: resolution: {integrity: sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==} @@ -6509,16 +6282,6 @@ packages: resolution: {integrity: sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==} dev: false - /@esbuild-plugins/node-modules-polyfill@0.1.4(esbuild@0.16.3): - resolution: {integrity: sha512-uZbcXi0zbmKC/050p3gJnne5Qdzw8vkXIv+c2BW0Lsc1ji1SkrxbKPUy5Efr0blbTu1SL8w4eyfpnSdPg3G0Qg==} - peerDependencies: - esbuild: '*' - dependencies: - esbuild: 0.16.3 - escape-string-regexp: 4.0.0 - rollup-plugin-node-polyfills: 0.2.1 - dev: true - /@esbuild/android-arm64@0.16.17: resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==} engines: {node: '>=12'} @@ -6528,15 +6291,6 @@ packages: dev: true optional: true - /@esbuild/android-arm64@0.16.3: - resolution: {integrity: sha512-RolFVeinkeraDvN/OoRf1F/lP0KUfGNb5jxy/vkIMeRRChkrX/HTYN6TYZosRJs3a1+8wqpxAo5PI5hFmxyPRg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm64@0.17.18: resolution: {integrity: sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==} engines: {node: '>=12'} @@ -6562,15 +6316,6 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.16.3: - resolution: {integrity: sha512-mueuEoh+s1eRbSJqq9KNBQwI4QhQV6sRXIfTyLXSHGMpyew61rOK4qY21uKbXl1iBoMb0AdL1deWFCQVlN2qHA==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm@0.17.18: resolution: {integrity: sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==} engines: {node: '>=12'} @@ -6588,15 +6333,6 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.16.3: - resolution: {integrity: sha512-SFpTUcIT1bIJuCCBMCQWq1bL2gPTjWoLZdjmIhjdcQHaUfV41OQfho6Ici5uvvkMmZRXIUGpM3GxysP/EU7ifQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-x64@0.17.18: resolution: {integrity: sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==} engines: {node: '>=12'} @@ -6614,15 +6350,6 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.16.3: - resolution: {integrity: sha512-DO8WykMyB+N9mIDfI/Hug70Dk1KipavlGAecxS3jDUwAbTpDXj0Lcwzw9svkhxfpCagDmpaTMgxWK8/C/XcXvw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-arm64@0.17.18: resolution: {integrity: sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==} engines: {node: '>=12'} @@ -6640,15 +6367,6 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.16.3: - resolution: {integrity: sha512-uEqZQ2omc6BvWqdCiyZ5+XmxuHEi1SPzpVxXCSSV2+Sh7sbXbpeNhHIeFrIpRjAs0lI1FmA1iIOxFozKBhKgRQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-x64@0.17.18: resolution: {integrity: sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==} engines: {node: '>=12'} @@ -6666,15 +6384,6 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.16.3: - resolution: {integrity: sha512-nJansp3sSXakNkOD5i5mIz2Is/HjzIhFs49b1tjrPrpCmwgBmH9SSzhC/Z1UqlkivqMYkhfPwMw1dGFUuwmXhw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-arm64@0.17.18: resolution: {integrity: sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==} engines: {node: '>=12'} @@ -6692,15 +6401,6 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.16.3: - resolution: {integrity: sha512-TfoDzLw+QHfc4a8aKtGSQ96Wa+6eimljjkq9HKR0rHlU83vw8aldMOUSJTUDxbcUdcgnJzPaX8/vGWm7vyV7ug==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-x64@0.17.18: resolution: {integrity: sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==} engines: {node: '>=12'} @@ -6718,15 +6418,6 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.16.3: - resolution: {integrity: sha512-7I3RlsnxEFCHVZNBLb2w7unamgZ5sVwO0/ikE2GaYvYuUQs9Qte/w7TqWcXHtCwxvZx/2+F97ndiUQAWs47ZfQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm64@0.17.18: resolution: {integrity: sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==} engines: {node: '>=12'} @@ -6744,15 +6435,6 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.16.3: - resolution: {integrity: sha512-VwswmSYwVAAq6LysV59Fyqk3UIjbhuc6wb3vEcJ7HEJUtFuLK9uXWuFoH1lulEbE4+5GjtHi3MHX+w1gNHdOWQ==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm@0.17.18: resolution: {integrity: sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==} engines: {node: '>=12'} @@ -6770,15 +6452,6 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.16.3: - resolution: {integrity: sha512-X8FDDxM9cqda2rJE+iblQhIMYY49LfvW4kaEjoFbTTQ4Go8G96Smj2w3BRTwA8IHGoi9dPOPGAX63dhuv19UqA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ia32@0.17.18: resolution: {integrity: sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==} engines: {node: '>=12'} @@ -6804,15 +6477,6 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.16.3: - resolution: {integrity: sha512-hIbeejCOyO0X9ujfIIOKjBjNAs9XD/YdJ9JXAy1lHA+8UXuOqbFe4ErMCqMr8dhlMGBuvcQYGF7+kO7waj2KHw==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-loong64@0.17.18: resolution: {integrity: sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==} engines: {node: '>=12'} @@ -6830,15 +6494,6 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.16.3: - resolution: {integrity: sha512-znFRzICT/V8VZQMt6rjb21MtAVJv/3dmKRMlohlShrbVXdBuOdDrGb+C2cZGQAR8RFyRe7HS6klmHq103WpmVw==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-mips64el@0.17.18: resolution: {integrity: sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==} engines: {node: '>=12'} @@ -6856,15 +6511,6 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.16.3: - resolution: {integrity: sha512-EV7LuEybxhXrVTDpbqWF2yehYRNz5e5p+u3oQUS2+ZFpknyi1NXxr8URk4ykR8Efm7iu04//4sBg249yNOwy5Q==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ppc64@0.17.18: resolution: {integrity: sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==} engines: {node: '>=12'} @@ -6882,15 +6528,6 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.16.3: - resolution: {integrity: sha512-uDxqFOcLzFIJ+r/pkTTSE9lsCEaV/Y6rMlQjUI9BkzASEChYL/aSQjZjchtEmdnVxDKETnUAmsaZ4pqK1eE5BQ==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-riscv64@0.17.18: resolution: {integrity: sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==} engines: {node: '>=12'} @@ -6908,15 +6545,6 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.16.3: - resolution: {integrity: sha512-NbeREhzSxYwFhnCAQOQZmajsPYtX71Ufej3IQ8W2Gxskfz9DK58ENEju4SbpIj48VenktRASC52N5Fhyf/aliQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-s390x@0.17.18: resolution: {integrity: sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==} engines: {node: '>=12'} @@ -6934,15 +6562,6 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.16.3: - resolution: {integrity: sha512-SDiG0nCixYO9JgpehoKgScwic7vXXndfasjnD5DLbp1xltANzqZ425l7LSdHynt19UWOcDjG9wJJzSElsPvk0w==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-x64@0.17.18: resolution: {integrity: sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==} engines: {node: '>=12'} @@ -6960,15 +6579,6 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.16.3: - resolution: {integrity: sha512-AzbsJqiHEq1I/tUvOfAzCY15h4/7Ivp3ff/o1GpP16n48JMNAtbW0qui2WCgoIZArEHD0SUQ95gvR0oSO7ZbdA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/netbsd-x64@0.17.18: resolution: {integrity: sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==} engines: {node: '>=12'} @@ -6986,15 +6596,6 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.16.3: - resolution: {integrity: sha512-gSABi8qHl8k3Cbi/4toAzHiykuBuWLZs43JomTcXkjMZVkp0gj3gg9mO+9HJW/8GB5H89RX/V0QP4JGL7YEEVg==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/openbsd-x64@0.17.18: resolution: {integrity: sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==} engines: {node: '>=12'} @@ -7012,15 +6613,6 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.16.3: - resolution: {integrity: sha512-SF9Kch5Ete4reovvRO6yNjMxrvlfT0F0Flm+NPoUw5Z4Q3r1d23LFTgaLwm3Cp0iGbrU/MoUI+ZqwCv5XJijCw==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - /@esbuild/sunos-x64@0.17.18: resolution: {integrity: sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==} engines: {node: '>=12'} @@ -7038,15 +6630,6 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.16.3: - resolution: {integrity: sha512-u5aBonZIyGopAZyOnoPAA6fGsDeHByZ9CnEzyML9NqntK6D/xl5jteZUKm/p6nD09+v3pTM6TuUIqSPcChk5gg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-arm64@0.17.18: resolution: {integrity: sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==} engines: {node: '>=12'} @@ -7064,15 +6647,6 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.16.3: - resolution: {integrity: sha512-GlgVq1WpvOEhNioh74TKelwla9KDuAaLZrdxuuUgsP2vayxeLgVc+rbpIv0IYF4+tlIzq2vRhofV+KGLD+37EQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-ia32@0.17.18: resolution: {integrity: sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==} engines: {node: '>=12'} @@ -7090,15 +6664,6 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.16.3: - resolution: {integrity: sha512-5/JuTd8OWW8UzEtyf19fbrtMJENza+C9JoPIkvItgTBQ1FO2ZLvjbPO6Xs54vk0s5JB5QsfieUEshRQfu7ZHow==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-x64@0.17.18: resolution: {integrity: sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==} engines: {node: '>=12'} @@ -7654,84 +7219,10 @@ packages: react-is: 18.2.0 dev: false - /@mui/base@5.0.0-alpha.120(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-UoIXLjbl8ghK7OSD1dYzHIj79sx9v5S2J7vYeuhxUS0QR0FwGZ3WLHd31TQ2CT2faPX/AXsHQeFn93wKSnjPUQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.21.0 - '@emotion/is-prop-valid': 1.2.0 - '@mui/types': 7.2.3(@types/react@18.0.20) - '@mui/utils': 5.11.12(react@18.2.0) - '@popperjs/core': 2.11.7 - '@types/react': 18.0.20 - clsx: 1.2.1 - prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-is: 18.2.0 - dev: false - /@mui/core-downloads-tracker@5.11.3: resolution: {integrity: sha512-Bgb6//KtxY7IC7M5Pa5RKFX1wttc213mqpKqydnz3wn4BGDXfA5c0vf5nTu5zqsJeB4T3ysAJTRJhQ/E1GsZDQ==} dev: false - /@mui/icons-material@5.11.0(@mui/material@5.11.3)(@types/react@18.0.20)(react@18.2.0): - resolution: {integrity: sha512-I2LaOKqO8a0xcLGtIozC9xoXjZAto5G5gh0FYUMAlbsIHNHIjn4Xrw9rvjY20vZonyiGrZNMAlAXYkY6JvhF6A==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@mui/material': ^5.0.0 - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.21.0 - '@mui/material': 5.11.3(@emotion/react@11.10.4)(@emotion/styled@11.10.4)(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.0.20 - react: 18.2.0 - dev: false - - /@mui/lab@5.0.0-alpha.122(@emotion/react@11.10.4)(@mui/material@5.11.3)(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-rJyu9llUWAluUQgDEmN0WrpcFxeTdJgu+XYriJtp/MchdvKl/qVTlx+vhnIhqas2bySj5N1VQnkI6qOvfXiYvQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@emotion/react': ^11.5.0 - '@emotion/styled': ^11.3.0 - '@mui/material': ^5.0.0 - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@emotion/react': - optional: true - '@emotion/styled': - optional: true - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.21.0 - '@emotion/react': 11.10.4(@babel/core@7.21.0)(@types/react@18.0.20)(react@18.2.0) - '@mui/base': 5.0.0-alpha.120(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) - '@mui/material': 5.11.3(@emotion/react@11.10.4)(@emotion/styled@11.10.4)(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) - '@mui/system': 5.11.12(@emotion/react@11.10.4)(@emotion/styled@11.10.4)(@types/react@18.0.20)(react@18.2.0) - '@mui/types': 7.2.3(@types/react@18.0.20) - '@mui/utils': 5.11.12(react@18.2.0) - '@types/react': 18.0.20 - clsx: 1.2.1 - prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-is: 18.2.0 - dev: false - /@mui/material@5.11.3(@emotion/react@11.10.4)(@emotion/styled@11.10.4)(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Oz+rMFiMtxzzDLUxKyyj4mSxF9ShmsBoJ9qvglXCYqklgSrEl1R/Z4hfPZ+2pWd5CriO8U/0CFHr4DksrlTiCw==} engines: {node: '>=12.0.0'} @@ -7750,8 +7241,8 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.0 - '@emotion/react': 11.10.4(@babel/core@7.21.0)(@types/react@18.0.20)(react@18.2.0) - '@emotion/styled': 11.10.4(@babel/core@7.21.0)(@emotion/react@11.10.4)(@types/react@18.0.20)(react@18.2.0) + '@emotion/react': 11.10.4(@babel/core@7.18.13)(@types/react@18.0.20)(react@18.2.0) + '@emotion/styled': 11.10.4(@babel/core@7.18.13)(@emotion/react@11.10.4)(@types/react@18.0.20)(react@18.2.0) '@mui/base': 5.0.0-alpha.112(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) '@mui/core-downloads-tracker': 5.11.3 '@mui/system': 5.11.12(@emotion/react@11.10.4)(@emotion/styled@11.10.4)(@types/react@18.0.20)(react@18.2.0) @@ -7800,8 +7291,8 @@ packages: dependencies: '@babel/runtime': 7.21.0 '@emotion/cache': 11.10.5 - '@emotion/react': 11.10.4(@babel/core@7.21.0)(@types/react@18.0.20)(react@18.2.0) - '@emotion/styled': 11.10.4(@babel/core@7.21.0)(@emotion/react@11.10.4)(@types/react@18.0.20)(react@18.2.0) + '@emotion/react': 11.10.4(@babel/core@7.18.13)(@types/react@18.0.20)(react@18.2.0) + '@emotion/styled': 11.10.4(@babel/core@7.18.13)(@emotion/react@11.10.4)(@types/react@18.0.20)(react@18.2.0) csstype: 3.1.1 prop-types: 15.8.1 react: 18.2.0 @@ -7824,8 +7315,8 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.0 - '@emotion/react': 11.10.4(@babel/core@7.21.0)(@types/react@18.0.20)(react@18.2.0) - '@emotion/styled': 11.10.4(@babel/core@7.21.0)(@emotion/react@11.10.4)(@types/react@18.0.20)(react@18.2.0) + '@emotion/react': 11.10.4(@babel/core@7.18.13)(@types/react@18.0.20)(react@18.2.0) + '@emotion/styled': 11.10.4(@babel/core@7.18.13)(@emotion/react@11.10.4)(@types/react@18.0.20)(react@18.2.0) '@mui/private-theming': 5.11.12(@types/react@18.0.20)(react@18.2.0) '@mui/styled-engine': 5.11.11(@emotion/react@11.10.4)(@emotion/styled@11.10.4)(react@18.2.0) '@mui/types': 7.2.3(@types/react@18.0.20) @@ -7901,13 +7392,6 @@ packages: rimraf: 3.0.2 dev: true - /@npmcli/package-json@2.0.0: - resolution: {integrity: sha512-42jnZ6yl16GzjWSH7vtrmWyJDGVa/LXPdpN2rcUWolFjc9ON2N3uz0qdBbQACfmhuJZ2lbKYtmK5qx68ZPLHMA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - json-parse-even-better-errors: 2.3.1 - dev: true - /@ocavue/svgmoji-cjs@0.1.1: resolution: {integrity: sha512-tCP6ggbtgIL4hPM5goVFSjL51jH/BLl/yBLy98wAV9a2L/Sn9iS3abfprPeQw6/nan5lLaz4Vz8ZP37LKh+xfQ==} dependencies: @@ -9855,176 +9339,11 @@ packages: type-fest: 2.19.0 dev: false - /@remix-run/dev@1.9.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-4EEctL2lo7eLPbVkzVBuRW+TX1B9yNdR9Ug7z7PYwFvJF0Oy9PovGx7ooVIypNiWLGOztKgN+K3c9jdffsrYYQ==} - engines: {node: '>=14'} - hasBin: true - peerDependencies: - '@remix-run/serve': ^1.9.0 - peerDependenciesMeta: - '@remix-run/serve': - optional: true - dependencies: - '@babel/core': 7.21.0 - '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.21.0) - '@babel/plugin-syntax-typescript': 7.20.0(@babel/core@7.21.0) - '@babel/preset-env': 7.20.2(@babel/core@7.21.0) - '@babel/preset-typescript': 7.21.0(@babel/core@7.21.0) - '@babel/types': 7.21.2 - '@esbuild-plugins/node-modules-polyfill': 0.1.4(esbuild@0.16.3) - '@npmcli/package-json': 2.0.0 - '@remix-run/server-runtime': 1.9.0(react-dom@18.2.0)(react@18.2.0) - arg: 5.0.2 - cacache: 15.3.0 - chalk: 4.1.2 - chokidar: 3.5.3 - dotenv: 16.0.3 - esbuild: 0.16.3 - execa: 5.1.1 - exit-hook: 2.2.1 - express: 4.18.2 - fast-glob: 3.2.11 - fs-extra: 10.1.0 - get-port: 5.1.1 - gunzip-maybe: 1.4.2 - inquirer: 8.2.5 - jscodeshift: 0.13.1(@babel/preset-env@7.20.2) - jsesc: 3.0.2 - json5: 2.2.3 - lodash: 4.17.21 - lodash.debounce: 4.0.8 - minimatch: 3.1.2 - node-fetch: 2.6.9 - ora: 5.4.1 - prettier: 2.7.1 - pretty-ms: 7.0.1 - proxy-agent: 5.0.0 - recast: 0.21.5 - remark-frontmatter: 4.0.1 - remark-mdx-frontmatter: 1.1.1 - semver: 7.3.8 - sort-package-json: 1.57.0 - tar-fs: 2.1.1 - tsconfig-paths: 4.2.0 - ws: 7.5.9 - xdm: 2.1.0 - transitivePeerDependencies: - - bluebird - - bufferutil - - encoding - - react - - react-dom - - supports-color - - utf-8-validate - dev: true - - /@remix-run/express@1.9.0(express@4.18.2)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-kWLINQNx4D2ypBzfgUiTwEvsM/GFTtpnjK1aHBKH/PCN1JH0yDpbr6VGlUbj0Mmnfy9Qg2yPlwTlgHNox++a4g==} - engines: {node: '>=14'} - peerDependencies: - express: ^4.17.1 - dependencies: - '@remix-run/node': 1.9.0(react-dom@18.2.0)(react@18.2.0) - express: 4.18.2 - transitivePeerDependencies: - - react - - react-dom - dev: false - - /@remix-run/node@1.9.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-LKbzMieBEE1oxeEoR3qyAFd29o/dQvRZvxQyB0LLy1IdAfrMTrADCRK8YZ7xVtJeUzWnNpn9abslotQN82Oz7g==} - engines: {node: '>=14'} - dependencies: - '@remix-run/server-runtime': 1.9.0(react-dom@18.2.0)(react@18.2.0) - '@remix-run/web-fetch': 4.3.2 - '@remix-run/web-file': 3.0.2 - '@remix-run/web-stream': 1.0.3 - '@web3-storage/multipart-parser': 1.0.0 - abort-controller: 3.0.0 - cookie-signature: 1.2.0 - source-map-support: 0.5.21 - stream-slice: 0.1.2 - transitivePeerDependencies: - - react - - react-dom - dev: false - - /@remix-run/react@1.9.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Rtm6qqdKMD0AMsJuzCFwpz40/o6LXQq20smHyyvH8EMHJRPrms44By28uMW0kmc+M9q0wa0gBfMzWFfZnCSFwg==} - engines: {node: '>=14'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - dependencies: - '@remix-run/router': 1.1.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-router-dom: 6.11.0(react-dom@18.2.0)(react@18.2.0) - dev: false - - /@remix-run/router@1.1.0: - resolution: {integrity: sha512-rGl+jH/7x1KBCQScz9p54p0dtPLNeKGb3e0wD2H5/oZj41bwQUnXdzbj2TbUAFhvD7cp9EyEQA4dEgpUFa1O7Q==} - engines: {node: '>=14'} - /@remix-run/router@1.6.0: resolution: {integrity: sha512-N13NRw3T2+6Xi9J//3CGLsK2OqC8NMme3d/YX+nh05K9YHWGcv8DycHJrqGScSP4T75o8IN6nqIMhVFU8ohg8w==} engines: {node: '>=14'} dev: false - /@remix-run/server-runtime@1.9.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-HNJGAzdp4JZqBtDqhi9tEtTxWztuQYruuMPyTlJmSWQhK3MdaOs7F9DJtfFKAhy8LBOqniwpE5w27dkCx7trOg==} - engines: {node: '>=14'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - dependencies: - '@remix-run/router': 1.1.0 - '@types/cookie': 0.4.1 - '@web3-storage/multipart-parser': 1.0.0 - cookie: 0.4.2 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - set-cookie-parser: 2.5.1 - source-map: 0.7.4 - - /@remix-run/web-blob@3.0.4: - resolution: {integrity: sha512-AfegzZvSSDc+LwnXV+SwROTrDtoLiPxeFW+jxgvtDAnkuCX1rrzmVJ6CzqZ1Ai0bVfmJadkG5GxtAfYclpPmgw==} - dependencies: - '@remix-run/web-stream': 1.0.3 - web-encoding: 1.1.5 - dev: false - - /@remix-run/web-fetch@4.3.2: - resolution: {integrity: sha512-aRNaaa0Fhyegv/GkJ/qsxMhXvyWGjPNgCKrStCvAvV1XXphntZI0nQO/Fl02LIQg3cGL8lDiOXOS1gzqDOlG5w==} - engines: {node: ^10.17 || >=12.3} - dependencies: - '@remix-run/web-blob': 3.0.4 - '@remix-run/web-form-data': 3.0.4 - '@remix-run/web-stream': 1.0.3 - '@web3-storage/multipart-parser': 1.0.0 - abort-controller: 3.0.0 - data-uri-to-buffer: 3.0.1 - mrmime: 1.0.1 - dev: false - - /@remix-run/web-file@3.0.2: - resolution: {integrity: sha512-eFC93Onh/rZ5kUNpCQersmBtxedGpaXK2/gsUl49BYSGK/DvuPu3l06vmquEDdcPaEuXcsdGP0L7zrmUqrqo4A==} - dependencies: - '@remix-run/web-blob': 3.0.4 - dev: false - - /@remix-run/web-form-data@3.0.4: - resolution: {integrity: sha512-UMF1jg9Vu9CLOf8iHBdY74Mm3PUvMW8G/XZRJE56SxKaOFWGSWlfxfG+/a3boAgHFLTkP7K4H1PxlRugy1iQtw==} - dependencies: - web-encoding: 1.1.5 - dev: false - - /@remix-run/web-stream@1.0.3: - resolution: {integrity: sha512-wlezlJaA5NF6SsNMiwQnnAW6tnPzQ5I8qk0Y0pSohm0eHKa2FQ1QhEKLVVcDDu02TmkfHgnux0igNfeYhDOXiA==} - dependencies: - web-streams-polyfill: 3.2.1 - dev: false - /@rollup/plugin-babel@5.3.1(@babel/core@7.21.0)(rollup@2.79.1): resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} @@ -12219,12 +11538,6 @@ packages: '@types/node': 18.11.9 dev: true - /@types/acorn@4.0.6: - resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} - dependencies: - '@types/estree': 1.0.0 - dev: true - /@types/aria-query@4.2.2: resolution: {integrity: sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==} dev: true @@ -12345,6 +11658,7 @@ packages: /@types/cookie@0.4.1: resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} + dev: false /@types/cookies@0.7.7: resolution: {integrity: sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==} @@ -12429,6 +11743,7 @@ packages: resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==} dependencies: '@types/ms': 0.7.31 + dev: false /@types/direction@1.0.0: resolution: {integrity: sha512-et1wmqXm/5smJ8lTJfBnwD12/2Y7eVJLKbuaRT0h2xaKAoo1h8Dz2Io22GObDLFwxY1ddXRTLH3Gq5v44Fl/2w==} @@ -12471,18 +11786,6 @@ packages: '@types/estree': 1.0.0 '@types/json-schema': 7.0.11 - /@types/estree-jsx@0.0.1: - resolution: {integrity: sha512-gcLAYiMfQklDCPjQegGn0TBAn9it05ISEsEhlKQUddIk7o2XDokOcTN7HBO8tznM0D9dGezvHEfRZBfZf6me0A==} - dependencies: - '@types/estree': 1.0.0 - dev: true - - /@types/estree-jsx@1.0.0: - resolution: {integrity: sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==} - dependencies: - '@types/estree': 1.0.0 - dev: true - /@types/estree@0.0.39: resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} @@ -12777,16 +12080,13 @@ packages: /@types/md5@2.3.2: resolution: {integrity: sha512-v+JFDu96+UYJ3/UWzB0mEglIS//MZXgRaJ4ubUPwOM0gvLc/kcQ3TWNYwENEK7/EcXGQVrW8h/XqednSjBd/Og==} + dev: true /@types/mdast@3.0.11: resolution: {integrity: sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==} dependencies: '@types/unist': 2.0.6 - /@types/mdurl@1.0.2: - resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==} - dev: true - /@types/mime@1.3.2: resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==} dev: true @@ -12854,6 +12154,7 @@ packages: /@types/ms@0.7.31: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} + dev: false /@types/node-fetch@2.6.2: resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==} @@ -13503,9 +12804,6 @@ packages: - supports-color dev: true - /@web3-storage/multipart-parser@1.0.0: - resolution: {integrity: sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==} - /@webassemblyjs/ast@1.11.1: resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==} dependencies: @@ -14161,6 +13459,7 @@ packages: /arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: false /argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -14292,18 +13591,6 @@ packages: es-shim-unscopables: 1.0.0 dev: true - /array.prototype.foreach@1.0.4: - resolution: {integrity: sha512-OYqqGR/56CopyheXNwdlJvFtbSvf2Z9RGvL20X6GvAuKePJ76L/D46BqZn3bITd36QA2Ti7Iy0UwVJaD/YwXZA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 - es-array-method-boxes-properly: 1.0.0 - get-intrinsic: 1.2.0 - is-string: 1.0.7 - dev: false - /array.prototype.map@1.0.4: resolution: {integrity: sha512-Qds9QnX7A0qISY7JT5WuJO0NJPE9CMlC6JzHQfhpqAAQQzufVRoeH7EzUY5GcPTx72voG8LV/5eo+b8Qi8hmhA==} engines: {node: '>= 0.4'} @@ -14403,22 +13690,10 @@ packages: tslib: 2.5.0 dev: true - /ast-types@0.15.2: - resolution: {integrity: sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==} - engines: {node: '>=4'} - dependencies: - tslib: 2.5.0 - dev: true - /astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} - /astring@1.8.4: - resolution: {integrity: sha512-97a+l2LBU3Op3bBQEff79i/E4jMD2ZLFD8rHx9B6mXyB2uQwhJQYfiDqUwtfjF4QA1F2qs//N6Cw8LetMbQjcw==} - hasBin: true - dev: true - /async-retry@1.3.3: resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} dependencies: @@ -14450,11 +13725,6 @@ packages: engines: {node: '>=8.0.0'} dev: false - /attr-accept@2.2.2: - resolution: {integrity: sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==} - engines: {node: '>=4'} - dev: false - /auto-bind@4.0.0: resolution: {integrity: sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==} engines: {node: '>=8'} @@ -14488,12 +13758,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /autosuggest-highlight@3.3.4: - resolution: {integrity: sha512-j6RETBD2xYnrVcoV1S5R4t3WxOlWZKyDQjkwnggDPSjF5L4jV98ZltBpvPvbkM1HtoSe5o+bNrTHyjPbieGeYA==} - dependencies: - remove-accents: 0.4.2 - dev: false - /available-typed-arrays@1.0.5: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} @@ -14582,14 +13846,6 @@ packages: resolution: {integrity: sha512-FLP1oaszKCOmDr1jv7yNAs7fTeEo6RFJhKre3jHbVi++jKZOZOMdhpDyTCh7jdndK7uoKRBznfdYnVh3VYdojg==} dev: false - /babel-core@7.0.0-bridge.0(@babel/core@7.21.0): - resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.21.0 - dev: true - /babel-jest@27.5.1(@babel/core@7.21.0): resolution: {integrity: sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -14883,6 +14139,7 @@ packages: /bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + dev: false /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -14948,6 +14205,8 @@ packages: /big-integer@1.6.51: resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} engines: {node: '>=0.6'} + dev: true + optional: true /big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} @@ -14956,14 +14215,6 @@ packages: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} - /bindings@1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - requiresBuild: true - dependencies: - file-uri-to-path: 1.0.0 - dev: true - optional: true - /bl@1.2.3: resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} dependencies: @@ -15155,19 +14406,6 @@ packages: dependencies: fill-range: 7.0.1 - /broadcast-channel@3.7.0: - resolution: {integrity: sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==} - dependencies: - '@babel/runtime': 7.21.0 - detect-node: 2.1.0 - js-sha3: 0.8.0 - microseconds: 0.2.0 - nano-time: 1.0.0 - oblivious-set: 1.0.0 - rimraf: 3.0.2 - unload: 2.2.0 - dev: false - /brorand@1.1.0: resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} dev: false @@ -15229,12 +14467,6 @@ packages: safe-buffer: 5.2.1 dev: false - /browserify-zlib@0.1.4: - resolution: {integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==} - dependencies: - pako: 0.2.9 - dev: true - /browserslist@4.21.3: resolution: {integrity: sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -15710,26 +14942,25 @@ packages: /character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + dev: false /character-entities-legacy@1.1.4: resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} /character-entities-legacy@3.0.0: resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + dev: false /character-entities@1.2.4: resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} /character-entities@2.0.2: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + dev: false /character-reference-invalid@1.1.4: resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} - /character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - dev: true - /chardet@0.4.2: resolution: {integrity: sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg==} dev: false @@ -15795,6 +15026,7 @@ packages: /chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + dev: false /chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} @@ -16133,6 +15365,7 @@ packages: /comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + dev: false /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -16686,14 +15919,10 @@ packages: /cookie-signature@1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - /cookie-signature@1.2.0: - resolution: {integrity: sha512-R0BOPfLGTitaKhgKROKZQN6iyq2iDQcH1DOF8nJoaWapguX5bC2w+Q/I9NmmM5lfcvEarnLZr+cCvmEYYSXvYA==} - engines: {node: '>=6.6.0'} - dev: false - /cookie@0.4.2: resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} engines: {node: '>= 0.6'} + dev: false /cookie@0.5.0: resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} @@ -17099,10 +16328,6 @@ packages: webpack: 5.75.0(esbuild@0.12.29)(webpack-cli@4.10.0) dev: false - /css-mediaquery@0.1.2: - resolution: {integrity: sha512-COtn4EROW5dBGlE/4PiKnh6rZpAPxDeFLaEEwt4i10jpDMFt2EhQGS79QmmrO+iKCHv0PU/HrOWEhijFd1x99Q==} - dev: false - /css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.2)(esbuild@0.15.18)(webpack@5.75.0): resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==} engines: {node: '>= 14.15.0'} @@ -17480,6 +16705,7 @@ packages: /data-uri-to-buffer@3.0.1: resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} engines: {node: '>= 6'} + dev: true /data-uri-to-buffer@4.0.1: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} @@ -17514,16 +16740,6 @@ packages: /dayjs@1.11.7: resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==} - /deasync@0.1.28: - resolution: {integrity: sha512-QqLF6inIDwiATrfROIyQtwOQxjZuek13WRYZ7donU5wJPLoP67MnYxA6QtqdvdBy2mMqv5m3UefBVdJjvevOYg==} - engines: {node: '>=0.11.0'} - requiresBuild: true - dependencies: - bindings: 1.5.0 - node-addon-api: 1.7.2 - dev: true - optional: true - /debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -17594,6 +16810,7 @@ packages: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} dependencies: character-entities: 2.0.2 + dev: false /decode-uri-component@0.2.2: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} @@ -17840,6 +17057,7 @@ packages: /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} + dev: false /des.js@1.0.1: resolution: {integrity: sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==} @@ -17866,11 +17084,6 @@ packages: engines: {node: '>=0.10.0'} dev: false - /detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - dev: true - /detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} @@ -17953,6 +17166,7 @@ packages: /diff@5.1.0: resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} engines: {node: '>=0.3.1'} + dev: false /diffie-hellman@5.0.3: resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} @@ -18198,6 +17412,7 @@ packages: /dotenv@16.0.3: resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} engines: {node: '>=12'} + dev: false /dotenv@8.6.0: resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} @@ -18850,36 +18065,6 @@ packages: '@esbuild/win32-x64': 0.16.17 dev: true - /esbuild@0.16.3: - resolution: {integrity: sha512-71f7EjPWTiSguen8X/kxEpkAS7BFHwtQKisCDDV3Y4GLGWBaoSCyD5uXkaUew6JDzA9FEN1W23mdnSwW9kqCeg==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.16.3 - '@esbuild/android-arm64': 0.16.3 - '@esbuild/android-x64': 0.16.3 - '@esbuild/darwin-arm64': 0.16.3 - '@esbuild/darwin-x64': 0.16.3 - '@esbuild/freebsd-arm64': 0.16.3 - '@esbuild/freebsd-x64': 0.16.3 - '@esbuild/linux-arm': 0.16.3 - '@esbuild/linux-arm64': 0.16.3 - '@esbuild/linux-ia32': 0.16.3 - '@esbuild/linux-loong64': 0.16.3 - '@esbuild/linux-mips64el': 0.16.3 - '@esbuild/linux-ppc64': 0.16.3 - '@esbuild/linux-riscv64': 0.16.3 - '@esbuild/linux-s390x': 0.16.3 - '@esbuild/linux-x64': 0.16.3 - '@esbuild/netbsd-x64': 0.16.3 - '@esbuild/openbsd-x64': 0.16.3 - '@esbuild/sunos-x64': 0.16.3 - '@esbuild/win32-arm64': 0.16.3 - '@esbuild/win32-ia32': 0.16.3 - '@esbuild/win32-x64': 0.16.3 - dev: true - /esbuild@0.17.18: resolution: {integrity: sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==} engines: {node: '>=12'} @@ -19145,42 +18330,6 @@ packages: - supports-color dev: true - /estree-util-attach-comments@2.1.0: - resolution: {integrity: sha512-rJz6I4L0GaXYtHpoMScgDIwM0/Vwbu5shbMeER596rB2D1EWF6+Gj0e0UKzJPZrpoOc87+Q2kgVFHfjAymIqmw==} - dependencies: - '@types/estree': 1.0.0 - dev: true - - /estree-util-build-jsx@2.2.0: - resolution: {integrity: sha512-apsfRxF9uLrqosApvHVtYZjISPvTJ+lBiIydpC+9wE6cF6ssbhnjyQLqaIjgzGxvC2Hbmec1M7g91PoBayYoQQ==} - dependencies: - '@types/estree-jsx': 1.0.0 - estree-util-is-identifier-name: 2.0.1 - estree-walker: 3.0.2 - dev: true - - /estree-util-is-identifier-name@1.1.0: - resolution: {integrity: sha512-OVJZ3fGGt9By77Ix9NhaRbzfbDV/2rx9EP7YIDJTmsZSEc5kYn2vWcNccYyahJL2uAQZK2a5Or2i0wtIKTPoRQ==} - dev: true - - /estree-util-is-identifier-name@2.0.1: - resolution: {integrity: sha512-rxZj1GkQhY4x1j/CSnybK9cGuMFQYFPLq0iNyopqf14aOVLFtMv7Esika+ObJWPWiOHuMOAHz3YkWoLYYRnzWQ==} - dev: true - - /estree-util-value-to-estree@1.3.0: - resolution: {integrity: sha512-Y+ughcF9jSUJvncXwqRageavjrNPAI+1M/L3BI3PyLp1nmgYTGUXU6t5z1Y7OWuThoDdhPME07bQU+d5LxdJqw==} - engines: {node: '>=12.0.0'} - dependencies: - is-plain-obj: 3.0.0 - dev: true - - /estree-util-visit@1.2.0: - resolution: {integrity: sha512-wdsoqhWueuJKsh5hqLw3j8lwFqNStm92VcwtAOAny8g/KS/l5Y8RISjR4k5W6skCj3Nirag/WUCMS0Nfy3sgsg==} - dependencies: - '@types/estree-jsx': 1.0.0 - '@types/unist': 2.0.6 - dev: true - /estree-walker@0.2.1: resolution: {integrity: sha512-6/I1dwNKk0N9iGOU3ydzAAurz4NPo/ttxZNCqgIVbWFvWyzWBSNonRrJ5CpjDuyBfmM7ENN7WCzUi9aT/UPXXQ==} dev: true @@ -19195,10 +18344,6 @@ packages: /estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - /estree-walker@3.0.2: - resolution: {integrity: sha512-C03BvXCQIH/po+PNPONx/zSM9ziPr9weX8xNhYb/IJtdJ9z+L4z9VKPTB+UTHdmhnIopA2kc419ueyVyHVktwA==} - dev: true - /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -19313,11 +18458,6 @@ packages: engines: {node: '>= 0.10.0'} dev: true - /exit-hook@2.2.1: - resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} - engines: {node: '>=6'} - dev: true - /exit@0.1.2: resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} engines: {node: '>= 0.8.0'} @@ -19535,17 +18675,6 @@ packages: - supports-color dev: true - /fast-glob@3.2.11: - resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - dev: true - /fast-glob@3.2.12: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} engines: {node: '>=8.6.0'} @@ -19607,12 +18736,6 @@ packages: dependencies: reusify: 1.0.4 - /fault@2.0.1: - resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} - dependencies: - format: 0.2.2 - dev: true - /faye-websocket@0.11.4: resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} engines: {node: '>=0.8.0'} @@ -19717,13 +18840,6 @@ packages: schema-utils: 3.1.1 webpack: 5.75.0(esbuild@0.12.29)(webpack-cli@4.10.0) - /file-selector@0.5.0: - resolution: {integrity: sha512-s8KNnmIDTBoD0p9uJ9uD0XY38SCeBOtj0UMXyQSLg1Ypfrfj8+dAvwsLjYQkQ2GjhVtp2HrnF5cJzMhBjfD8HA==} - engines: {node: '>= 10'} - dependencies: - tslib: 2.5.0 - dev: false - /file-system-cache@1.1.0: resolution: {integrity: sha512-IzF5MBq+5CR0jXx5RxPe4BICl/oEhBSXKaL9fLhAXrIfIUS77Hr4vzrYyqYMHN6uTt+BOqi3fDCTjjEBCjERKw==} dependencies: @@ -19765,12 +18881,6 @@ packages: engines: {node: '>=6'} dev: true - /file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - requiresBuild: true - dev: true - optional: true - /file-uri-to-path@2.0.0: resolution: {integrity: sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==} engines: {node: '>= 6'} @@ -19947,11 +19057,6 @@ packages: /flatted@3.2.7: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} - /flow-parser@0.196.3: - resolution: {integrity: sha512-R8wj12eHW6og+IBWeRS6aihkdac1Prh4zw1bfxtt/aeu8r5OFmQEZjnmINcjO/5Q+OKvI4Eg367ygz2SHvtH+w==} - engines: {node: '>=0.4.0'} - dev: true - /flush-write-stream@1.1.1: resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==} dependencies: @@ -20119,11 +19224,6 @@ packages: combined-stream: 1.0.8 mime-types: 2.1.35 - /format@0.2.2: - resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} - engines: {node: '>=0.4.x'} - dev: true - /formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} @@ -20346,11 +19446,6 @@ packages: yargs: 16.2.0 dev: true - /get-port@5.1.1: - resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} - engines: {node: '>=8'} - dev: true - /get-proxy@2.1.0: resolution: {integrity: sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==} engines: {node: '>=4'} @@ -20430,10 +19525,6 @@ packages: resolution: {integrity: sha512-zs9rlfa7HyaJAKG9o+V7C6qfMzyc+tb1IIXdUFcOBcR1U7siKy/uPdauLlrH1mc0vOgUwIv4BF+QxPiiTYz3Rw==} dev: true - /git-hooks-list@1.0.3: - resolution: {integrity: sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ==} - dev: true - /git-raw-commits@2.0.11: resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} engines: {node: '>=10'} @@ -20647,20 +19738,6 @@ packages: dependencies: define-properties: 1.2.0 - /globby@10.0.0: - resolution: {integrity: sha512-3LifW9M4joGZasyYPz2A1U74zbC/45fvpXUvO/9KbSa+VV0aGZarWkfdgKyR9sExNP0t0x0ss/UMJpNpcaTspw==} - engines: {node: '>=8'} - dependencies: - '@types/glob': 7.2.0 - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.2.12 - glob: 7.2.3 - ignore: 5.2.4 - merge2: 1.4.1 - slash: 3.0.0 - dev: true - /globby@10.0.1: resolution: {integrity: sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==} engines: {node: '>=8'} @@ -20769,18 +19846,6 @@ packages: through2: 2.0.5 dev: true - /gunzip-maybe@1.4.2: - resolution: {integrity: sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==} - hasBin: true - dependencies: - browserify-zlib: 0.1.4 - is-deflate: 1.0.0 - is-gzip: 1.0.0 - peek-stream: 1.1.3 - pumpify: 1.5.1 - through2: 2.0.5 - dev: true - /gzip-size@6.0.0: resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} engines: {node: '>=10'} @@ -21038,28 +20103,6 @@ packages: '@types/hast': 2.3.4 dev: false - /hast-util-to-estree@2.1.0: - resolution: {integrity: sha512-Vwch1etMRmm89xGgz+voWXvVHba2iiMdGMKmaMfYt35rbVtFDq8JNwwAIvi8zHMkO6Gvqo9oTMwJTmzVRfXh4g==} - dependencies: - '@types/estree': 1.0.0 - '@types/estree-jsx': 1.0.0 - '@types/hast': 2.3.4 - '@types/unist': 2.0.6 - comma-separated-tokens: 2.0.3 - estree-util-attach-comments: 2.1.0 - estree-util-is-identifier-name: 2.0.1 - hast-util-whitespace: 2.0.1 - mdast-util-mdx-expression: 1.3.1 - mdast-util-mdxjs-esm: 1.3.0 - property-information: 6.2.0 - space-separated-tokens: 2.0.2 - style-to-object: 0.3.0 - unist-util-position: 4.0.4 - zwitch: 2.0.4 - transitivePeerDependencies: - - supports-color - dev: true - /hast-util-to-html@8.0.4: resolution: {integrity: sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==} dependencies: @@ -21098,6 +20141,7 @@ packages: /hast-util-whitespace@2.0.1: resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} + dev: false /hastscript@6.0.0: resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} @@ -21164,12 +20208,6 @@ packages: value-equal: 1.0.1 dev: false - /history@5.3.0: - resolution: {integrity: sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==} - dependencies: - '@babel/runtime': 7.21.0 - dev: false - /hmac-drbg@1.0.1: resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} dependencies: @@ -21698,11 +20736,6 @@ packages: engines: {node: '>=12'} dev: false - /inflection@1.12.0: - resolution: {integrity: sha512-lRy4DxuIFWXlJU7ed8UiTJOSTqStqYdEb4CEbtXfNbkdj3nH1L+reUWiE10VWcJS2yR7tge8Z74pJjtBjNwj0w==} - engines: {'0': node >= 0.4.0} - dev: false - /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: @@ -22016,23 +21049,12 @@ packages: /is-alphabetical@1.0.4: resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} - /is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - dev: true - /is-alphanumerical@1.0.4: resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} dependencies: is-alphabetical: 1.0.4 is-decimal: 1.0.4 - /is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - dependencies: - is-alphabetical: 2.0.1 - is-decimal: 2.0.1 - dev: true - /is-arguments@1.1.1: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} @@ -22149,14 +21171,6 @@ packages: /is-decimal@1.0.4: resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} - /is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - dev: true - - /is-deflate@1.0.0: - resolution: {integrity: sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==} - dev: true - /is-descriptor@0.1.6: resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==} engines: {node: '>=0.10.0'} @@ -22262,18 +21276,9 @@ packages: dependencies: is-extglob: 2.1.1 - /is-gzip@1.0.0: - resolution: {integrity: sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==} - engines: {node: '>=0.10.0'} - dev: true - /is-hexadecimal@1.0.4: resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} - /is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - dev: true - /is-hotkey@0.2.0: resolution: {integrity: sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==} dev: false @@ -22402,6 +21407,7 @@ packages: /is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} + dev: false /is-plain-object@2.0.4: resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} @@ -22427,12 +21433,6 @@ packages: dependencies: '@types/estree': 1.0.0 - /is-reference@3.0.1: - resolution: {integrity: sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==} - dependencies: - '@types/estree': 1.0.0 - dev: true - /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -22614,11 +21614,6 @@ packages: engines: {node: '>= 8.0.0'} dev: false - /isbot@3.6.5: - resolution: {integrity: sha512-BchONELXt6yMad++BwGpa0oQxo/uD0keL7N15cYVf0A1oMIoNQ79OqeYdPMFWDrNhCqCbRuw9Y9F3QBjvAxZ5g==} - engines: {node: '>=12'} - dev: false - /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -23374,10 +22369,6 @@ packages: /js-sdsl@4.3.0: resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==} - /js-sha3@0.8.0: - resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} - dev: false - /js-string-escape@1.0.1: resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==} engines: {node: '>= 0.8'} @@ -23403,36 +22394,6 @@ packages: resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} dev: true - /jscodeshift@0.13.1(@babel/preset-env@7.20.2): - resolution: {integrity: sha512-lGyiEbGOvmMRKgWk4vf+lUrCWO/8YR8sUR3FKF1Cq5fovjZDlIcw3Hu5ppLHAnEXshVffvaM0eyuY/AbOeYpnQ==} - hasBin: true - peerDependencies: - '@babel/preset-env': ^7.1.6 - dependencies: - '@babel/core': 7.21.0 - '@babel/parser': 7.21.2 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.21.0) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.21.0) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.21.0) - '@babel/plugin-transform-modules-commonjs': 7.21.2(@babel/core@7.21.0) - '@babel/preset-env': 7.20.2(@babel/core@7.21.0) - '@babel/preset-flow': 7.18.6(@babel/core@7.21.0) - '@babel/preset-typescript': 7.21.0(@babel/core@7.21.0) - '@babel/register': 7.18.9(@babel/core@7.21.0) - babel-core: 7.0.0-bridge.0(@babel/core@7.21.0) - chalk: 4.1.2 - flow-parser: 0.196.3 - graceful-fs: 4.2.10 - micromatch: 3.1.10 - neo-async: 2.6.2 - node-dir: 0.1.17 - recast: 0.20.5 - temp: 0.8.4 - write-file-atomic: 2.4.3 - transitivePeerDependencies: - - supports-color - dev: true - /jsdom@16.7.0: resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==} engines: {node: '>=10'} @@ -23488,6 +22449,7 @@ packages: resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} engines: {node: '>=6'} hasBin: true + dev: false /json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -24197,6 +23159,7 @@ packages: /longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + dev: false /loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} @@ -24343,11 +23306,6 @@ packages: /markdown-escapes@1.0.4: resolution: {integrity: sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==} - /markdown-extensions@1.1.1: - resolution: {integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==} - engines: {node: '>=0.10.0'} - dev: true - /markdown-table@3.0.3: resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} dev: false @@ -24401,6 +23359,7 @@ packages: '@types/mdast': 3.0.11 '@types/unist': 2.0.6 unist-util-visit: 4.1.2 + dev: false /mdast-util-find-and-replace@2.2.2: resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==} @@ -24428,12 +23387,7 @@ packages: uvu: 0.5.6 transitivePeerDependencies: - supports-color - - /mdast-util-frontmatter@1.0.0: - resolution: {integrity: sha512-7itKvp0arEVNpCktOET/eLFAYaZ+0cNjVtFtIPxgQ5tV+3i+D4SDDTjTzPWl44LT59PC+xdx+glNTawBdF98Mw==} - dependencies: - micromark-extension-frontmatter: 1.0.0 - dev: true + dev: false /mdast-util-gfm-autolink-literal@1.0.3: resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==} @@ -24491,58 +23445,12 @@ packages: - supports-color dev: false - /mdast-util-mdx-expression@1.3.1: - resolution: {integrity: sha512-TTb6cKyTA1RD+1su1iStZ5PAv3rFfOUKcoU5EstUpv/IZo63uDX03R8+jXjMEhcobXnNOiG6/ccekvVl4eV1zQ==} - dependencies: - '@types/estree-jsx': 1.0.0 - '@types/hast': 2.3.4 - '@types/mdast': 3.0.11 - mdast-util-from-markdown: 1.3.0 - mdast-util-to-markdown: 1.5.0 - transitivePeerDependencies: - - supports-color - dev: true - - /mdast-util-mdx-jsx@1.2.0: - resolution: {integrity: sha512-5+ot/kfxYd3ChgEMwsMUO71oAfYjyRI3pADEK4I7xTmWLGQ8Y7ghm1CG36zUoUvDPxMlIYwQV/9DYHAUWdG4dA==} - dependencies: - '@types/estree-jsx': 0.0.1 - '@types/mdast': 3.0.11 - mdast-util-to-markdown: 1.5.0 - parse-entities: 4.0.0 - stringify-entities: 4.0.3 - unist-util-remove-position: 4.0.1 - unist-util-stringify-position: 3.0.3 - vfile-message: 3.1.4 - dev: true - - /mdast-util-mdx@1.1.0: - resolution: {integrity: sha512-leKb9uG7laXdyFlTleYV4ZEaCpsxeU1LlkkR/xp35pgKrfV1Y0fNCuOw9vaRc2a9YDpH22wd145Wt7UY5yzeZw==} - dependencies: - mdast-util-mdx-expression: 1.3.1 - mdast-util-mdx-jsx: 1.2.0 - mdast-util-mdxjs-esm: 1.3.0 - transitivePeerDependencies: - - supports-color - dev: true - - /mdast-util-mdxjs-esm@1.3.0: - resolution: {integrity: sha512-7N5ihsOkAEGjFotIX9p/YPdl4TqUoMxL4ajNz7PbT89BqsdWJuBC9rvgt6wpbwTZqWWR0jKWqQbwsOWDBUZv4g==} - dependencies: - '@types/estree-jsx': 1.0.0 - '@types/hast': 2.3.4 - '@types/mdast': 3.0.11 - mdast-util-from-markdown: 1.3.0 - mdast-util-to-markdown: 1.5.0 - transitivePeerDependencies: - - supports-color - dev: true - /mdast-util-phrasing@3.0.0: resolution: {integrity: sha512-S+QYsDRLkGi8U7o5JF1agKa/sdP+CNGXXLqC17pdTVL8FHHgQEiwFGa9yE5aYtUxNiFGYoaDy9V1kC85Sz86Gg==} dependencies: '@types/mdast': 3.0.11 unist-util-is: 5.2.0 + dev: false /mdast-util-to-hast@10.0.1: resolution: {integrity: sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==} @@ -24556,20 +23464,6 @@ packages: unist-util-position: 3.1.0 unist-util-visit: 2.0.3 - /mdast-util-to-hast@11.3.0: - resolution: {integrity: sha512-4o3Cli3hXPmm1LhB+6rqhfsIUBjnKFlIUZvudaermXB+4/KONdd/W4saWWkC+LBLbPMqhFSSTSRgafHsT5fVJw==} - dependencies: - '@types/hast': 2.3.4 - '@types/mdast': 3.0.11 - '@types/mdurl': 1.0.2 - mdast-util-definitions: 5.1.2 - mdurl: 1.0.1 - unist-builder: 3.0.0 - unist-util-generated: 2.0.1 - unist-util-position: 4.0.4 - unist-util-visit: 4.1.2 - dev: true - /mdast-util-to-hast@12.3.0: resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} dependencies: @@ -24594,6 +23488,7 @@ packages: micromark-util-decode-string: 1.0.2 unist-util-visit: 4.1.2 zwitch: 2.0.4 + dev: false /mdast-util-to-string@1.1.0: resolution: {integrity: sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==} @@ -24607,6 +23502,7 @@ packages: resolution: {integrity: sha512-tGvhT94e+cVnQt8JWE9/b3cUQZWS732TJxXHktvP+BYo62PpYD53Ls/6cC60rW21dW+txxiM4zMdc6abASvZKA==} dependencies: '@types/mdast': 3.0.11 + dev: false /mdn-data@2.0.14: resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} @@ -24679,11 +23575,6 @@ packages: resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==} optional: true - /memorystream@0.3.1: - resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} - engines: {node: '>= 0.10.0'} - dev: true - /meow@3.7.0: resolution: {integrity: sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==} engines: {node: '>=0.10.0'} @@ -24784,14 +23675,7 @@ packages: micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 uvu: 0.5.6 - - /micromark-extension-frontmatter@1.0.0: - resolution: {integrity: sha512-EXjmRnupoX6yYuUJSQhrQ9ggK0iQtQlpi6xeJzVD5xscyAI+giqco5fdymayZhJMbIFecjnE2yz85S9NzIgQpg==} - dependencies: - fault: 2.0.1 - micromark-util-character: 1.1.0 - micromark-util-symbol: 1.0.1 - dev: true + dev: false /micromark-extension-gfm-autolink-literal@1.0.3: resolution: {integrity: sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==} @@ -24866,70 +23750,13 @@ packages: micromark-util-types: 1.0.2 dev: false - /micromark-extension-mdx-expression@1.0.3: - resolution: {integrity: sha512-TjYtjEMszWze51NJCZmhv7MEBcgYRgb3tJeMAJ+HQCAaZHHRBaDCccqQzGizR/H4ODefP44wRTgOn2vE5I6nZA==} - dependencies: - micromark-factory-mdx-expression: 1.0.6 - micromark-factory-space: 1.0.0 - micromark-util-character: 1.1.0 - micromark-util-events-to-acorn: 1.2.0 - micromark-util-symbol: 1.0.1 - micromark-util-types: 1.0.2 - uvu: 0.5.6 - dev: true - - /micromark-extension-mdx-jsx@1.0.3: - resolution: {integrity: sha512-VfA369RdqUISF0qGgv2FfV7gGjHDfn9+Qfiv5hEwpyr1xscRj/CiVRkU7rywGFCO7JwJ5L0e7CJz60lY52+qOA==} - dependencies: - '@types/acorn': 4.0.6 - estree-util-is-identifier-name: 2.0.1 - micromark-factory-mdx-expression: 1.0.6 - micromark-factory-space: 1.0.0 - micromark-util-character: 1.1.0 - micromark-util-symbol: 1.0.1 - micromark-util-types: 1.0.2 - uvu: 0.5.6 - vfile-message: 3.1.4 - dev: true - - /micromark-extension-mdx-md@1.0.0: - resolution: {integrity: sha512-xaRAMoSkKdqZXDAoSgp20Azm0aRQKGOl0RrS81yGu8Hr/JhMsBmfs4wR7m9kgVUIO36cMUQjNyiyDKPrsv8gOw==} - dependencies: - micromark-util-types: 1.0.2 - dev: true - - /micromark-extension-mdxjs-esm@1.0.3: - resolution: {integrity: sha512-2N13ol4KMoxb85rdDwTAC6uzs8lMX0zeqpcyx7FhS7PxXomOnLactu8WI8iBNXW8AVyea3KIJd/1CKnUmwrK9A==} - dependencies: - micromark-core-commonmark: 1.0.6 - micromark-util-character: 1.1.0 - micromark-util-events-to-acorn: 1.2.0 - micromark-util-symbol: 1.0.1 - micromark-util-types: 1.0.2 - unist-util-position-from-estree: 1.1.1 - uvu: 0.5.6 - vfile-message: 3.1.4 - dev: true - - /micromark-extension-mdxjs@1.0.0: - resolution: {integrity: sha512-TZZRZgeHvtgm+IhtgC2+uDMR7h8eTKF0QUX9YsgoL9+bADBpBY6SiLvWqnBlLbCEevITmTqmEuY3FoxMKVs1rQ==} - dependencies: - acorn: 8.8.2 - acorn-jsx: 5.3.2(acorn@8.8.2) - micromark-extension-mdx-expression: 1.0.3 - micromark-extension-mdx-jsx: 1.0.3 - micromark-extension-mdx-md: 1.0.0 - micromark-extension-mdxjs-esm: 1.0.3 - micromark-util-combine-extensions: 1.0.0 - micromark-util-types: 1.0.2 - dev: true - /micromark-factory-destination@1.0.0: resolution: {integrity: sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==} dependencies: micromark-util-character: 1.1.0 micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 + dev: false /micromark-factory-label@1.0.2: resolution: {integrity: sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==} @@ -24938,25 +23765,14 @@ packages: micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 uvu: 0.5.6 - - /micromark-factory-mdx-expression@1.0.6: - resolution: {integrity: sha512-WRQIc78FV7KrCfjsEf/sETopbYjElh3xAmNpLkd1ODPqxEngP42eVRGbiPEQWpRV27LzqW+XVTvQAMIIRLPnNA==} - dependencies: - micromark-factory-space: 1.0.0 - micromark-util-character: 1.1.0 - micromark-util-events-to-acorn: 1.2.0 - micromark-util-symbol: 1.0.1 - micromark-util-types: 1.0.2 - unist-util-position-from-estree: 1.1.1 - uvu: 0.5.6 - vfile-message: 3.1.4 - dev: true + dev: false /micromark-factory-space@1.0.0: resolution: {integrity: sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==} dependencies: micromark-util-character: 1.1.0 micromark-util-types: 1.0.2 + dev: false /micromark-factory-title@1.0.2: resolution: {integrity: sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==} @@ -24966,6 +23782,7 @@ packages: micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 uvu: 0.5.6 + dev: false /micromark-factory-whitespace@1.0.0: resolution: {integrity: sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==} @@ -24974,17 +23791,20 @@ packages: micromark-util-character: 1.1.0 micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 + dev: false /micromark-util-character@1.1.0: resolution: {integrity: sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==} dependencies: micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 + dev: false /micromark-util-chunked@1.0.0: resolution: {integrity: sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==} dependencies: micromark-util-symbol: 1.0.1 + dev: false /micromark-util-classify-character@1.0.0: resolution: {integrity: sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==} @@ -24992,17 +23812,20 @@ packages: micromark-util-character: 1.1.0 micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 + dev: false /micromark-util-combine-extensions@1.0.0: resolution: {integrity: sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==} dependencies: micromark-util-chunked: 1.0.0 micromark-util-types: 1.0.2 + dev: false /micromark-util-decode-numeric-character-reference@1.0.0: resolution: {integrity: sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==} dependencies: micromark-util-symbol: 1.0.1 + dev: false /micromark-util-decode-string@1.0.2: resolution: {integrity: sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==} @@ -25011,34 +23834,27 @@ packages: micromark-util-character: 1.1.0 micromark-util-decode-numeric-character-reference: 1.0.0 micromark-util-symbol: 1.0.1 + dev: false /micromark-util-encode@1.0.1: resolution: {integrity: sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==} - - /micromark-util-events-to-acorn@1.2.0: - resolution: {integrity: sha512-WWp3bf7xT9MppNuw3yPjpnOxa8cj5ACivEzXJKu0WwnjBYfzaBvIAT9KfeyI0Qkll+bfQtfftSwdgTH6QhTOKw==} - dependencies: - '@types/acorn': 4.0.6 - '@types/estree': 1.0.0 - estree-util-visit: 1.2.0 - micromark-util-types: 1.0.2 - uvu: 0.5.6 - vfile-location: 4.0.1 - vfile-message: 3.1.4 - dev: true + dev: false /micromark-util-html-tag-name@1.1.0: resolution: {integrity: sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==} + dev: false /micromark-util-normalize-identifier@1.0.0: resolution: {integrity: sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==} dependencies: micromark-util-symbol: 1.0.1 + dev: false /micromark-util-resolve-all@1.0.0: resolution: {integrity: sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==} dependencies: micromark-util-types: 1.0.2 + dev: false /micromark-util-sanitize-uri@1.1.0: resolution: {integrity: sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg==} @@ -25046,6 +23862,7 @@ packages: micromark-util-character: 1.1.0 micromark-util-encode: 1.0.1 micromark-util-symbol: 1.0.1 + dev: false /micromark-util-subtokenize@1.0.2: resolution: {integrity: sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==} @@ -25054,12 +23871,15 @@ packages: micromark-util-symbol: 1.0.1 micromark-util-types: 1.0.2 uvu: 0.5.6 + dev: false /micromark-util-symbol@1.0.1: resolution: {integrity: sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==} + dev: false /micromark-util-types@1.0.2: resolution: {integrity: sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==} + dev: false /micromark@3.1.0: resolution: {integrity: sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==} @@ -25083,6 +23903,7 @@ packages: uvu: 0.5.6 transitivePeerDependencies: - supports-color + dev: false /micromatch@3.1.10: resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} @@ -25112,10 +23933,6 @@ packages: braces: 3.0.2 picomatch: 2.3.1 - /microseconds@0.2.0: - resolution: {integrity: sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==} - dev: false - /miller-rabin@4.0.1: resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==} hasBin: true @@ -25381,6 +24198,7 @@ packages: /mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + dev: false /mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} @@ -25725,6 +24543,7 @@ packages: /mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} + dev: false /mrmime@1.0.1: resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} @@ -25826,12 +24645,6 @@ packages: stylis: 4.1.3 dev: false - /nano-time@1.0.0: - resolution: {integrity: sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA==} - dependencies: - big-integer: 1.6.51 - dev: false - /nanoclone@0.2.1: resolution: {integrity: sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==} dev: false @@ -25962,11 +24775,6 @@ packages: - supports-color dev: true - /node-addon-api@1.7.2: - resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} - dev: true - optional: true - /node-dir@0.1.17: resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} engines: {node: '>= 0.10.5'} @@ -26074,16 +24882,6 @@ packages: upper-case: 2.0.2 dev: false - /node-polyglot@2.4.2: - resolution: {integrity: sha512-AgTVpQ32BQ5XPI+tFHJ9bCYxWwSLvtmEodX8ooftFhEuyCgBG6ijWulIVb7pH3THigtgvc9uLiPn0IO51KHpkg==} - dependencies: - array.prototype.foreach: 1.0.4 - has: 1.0.3 - object.entries: 1.1.6 - string.prototype.trim: 1.2.7 - warning: 4.0.3 - dev: false - /node-releases@2.0.10: resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} @@ -26198,22 +24996,6 @@ packages: pify: 3.0.0 dev: true - /npm-run-all@4.1.5: - resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} - engines: {node: '>= 4'} - hasBin: true - dependencies: - ansi-styles: 3.2.1 - chalk: 2.4.2 - cross-spawn: 6.0.5 - memorystream: 0.3.1 - minimatch: 3.1.2 - pidtree: 0.3.1 - read-pkg: 3.0.0 - shell-quote: 1.8.0 - string.prototype.padend: 3.1.3 - dev: true - /npm-run-path@2.0.2: resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} engines: {node: '>=4'} @@ -26353,6 +25135,7 @@ packages: call-bind: 1.0.2 define-properties: 1.2.0 es-abstract: 1.21.1 + dev: true /object.fromentries@2.0.6: resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} @@ -26412,10 +25195,6 @@ packages: resolution: {integrity: sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==} dev: true - /oblivious-set@1.0.0: - resolution: {integrity: sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==} - dev: false - /obuf@1.1.2: resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} @@ -26849,10 +25628,6 @@ packages: semver: 7.3.8 dev: true - /pako@0.2.9: - resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} - dev: true - /param-case@2.1.1: resolution: {integrity: sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==} dependencies: @@ -26895,19 +25670,6 @@ packages: is-decimal: 1.0.4 is-hexadecimal: 1.0.4 - /parse-entities@4.0.0: - resolution: {integrity: sha512-5nk9Fn03x3rEhGaX1FU6IDwG/k+GxLXlFAkgrbM1asuAFl3BhdQWvASaIsmwWypRNcZKHPYnIuOSfIWEyEQnPQ==} - dependencies: - '@types/unist': 2.0.6 - character-entities: 2.0.2 - character-entities-legacy: 3.0.0 - character-reference-invalid: 2.0.1 - decode-named-character-reference: 1.0.2 - is-alphanumerical: 2.0.1 - is-decimal: 2.0.1 - is-hexadecimal: 2.0.1 - dev: true - /parse-exponential@1.0.1: resolution: {integrity: sha512-QUa7PaOc7O6ei3hb0NmADJGrDYLbPBdcSKFUBGfwlMdHsrg8LOsliPEkpP0qHSKQOyzyyxCB00fxJKcP75Gl7w==} engines: {node: '>=0.10.0'} @@ -26949,6 +25711,7 @@ packages: /parse-ms@2.1.0: resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} engines: {node: '>=6'} + dev: false /parse-node-version@1.0.1: resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} @@ -27158,14 +25921,6 @@ packages: engines: {node: '>=8'} dev: true - /peek-stream@1.1.3: - resolution: {integrity: sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==} - dependencies: - buffer-from: 1.1.2 - duplexify: 3.7.1 - through2: 2.0.5 - dev: true - /pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} dev: true @@ -27174,13 +25929,6 @@ packages: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} dev: true - /periscopic@3.0.4: - resolution: {integrity: sha512-SFx68DxCv0Iyo6APZuw/AKewkkThGwssmU0QWtTlvov3VAtPX+QJ4CadwSaz8nrT5jPIuxdvJWB4PnD2KNDxQg==} - dependencies: - estree-walker: 3.0.2 - is-reference: 3.0.1 - dev: true - /picocolors@0.2.1: resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==} @@ -27191,12 +25939,6 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - /pidtree@0.3.1: - resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} - engines: {node: '>=0.10'} - hasBin: true - dev: true - /pidtree@0.6.0: resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} engines: {node: '>=0.10'} @@ -28213,6 +26955,7 @@ packages: engines: {node: '>=10'} dependencies: parse-ms: 2.1.0 + dev: false /pretty-time@1.1.0: resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} @@ -28389,6 +27132,7 @@ packages: /property-information@6.2.0: resolution: {integrity: sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==} + dev: false /prosemirror-collab@1.3.0: resolution: {integrity: sha512-+S/IJ69G2cUu2IM5b3PBekuxs94HO1CxJIWOFrLQXUaUDKL/JfBx+QcH31ldBlBXyDEUl+k3Vltfi1E1MKp2mA==} @@ -28742,116 +27486,6 @@ packages: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} - /ra-core@4.10.3(history@5.3.0)(react-dom@18.2.0)(react-hook-form@7.41.5)(react-router-dom@6.11.0)(react-router@6.11.0)(react@18.2.0): - resolution: {integrity: sha512-ai3ekdnkYmNWRP6m79zCs03+O3zBQsRxon/br5rsWodAtTa0j1oqjXNEVoQNipvXBmeCjnKENN9Gzc3wtUUZjA==} - peerDependencies: - history: ^5.1.0 - react: ^16.9.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 - react-hook-form: ^7.40.0 - react-router: ^6.1.0 - react-router-dom: ^6.1.0 - dependencies: - clsx: 1.2.1 - date-fns: 2.29.3 - eventemitter3: 4.0.7 - history: 5.3.0 - inflection: 1.12.0 - jsonexport: 3.2.0 - lodash: 4.17.21 - prop-types: 15.8.1 - query-string: 7.1.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-hook-form: 7.41.5(react@18.2.0) - react-is: 17.0.2 - react-query: 3.39.2(react-dom@18.2.0)(react@18.2.0) - react-router: 6.11.0(react@18.2.0) - react-router-dom: 6.11.0(react-dom@18.2.0)(react@18.2.0) - transitivePeerDependencies: - - react-native - dev: false - - /ra-data-json-server@4.7.0(history@5.3.0)(react-dom@18.2.0)(react-hook-form@7.41.5)(react-router-dom@6.11.0)(react-router@6.11.0)(react@18.2.0): - resolution: {integrity: sha512-jUNhmpHPEgiG9UjSXI3eFDPNoAJYzyKaAx2Q9c2xcxIpiErBASvsQDnBrEgAD8OIlhpnhqHi4dCp3r399hR+Zg==} - dependencies: - query-string: 7.1.3 - ra-core: 4.10.3(history@5.3.0)(react-dom@18.2.0)(react-hook-form@7.41.5)(react-router-dom@6.11.0)(react-router@6.11.0)(react@18.2.0) - transitivePeerDependencies: - - history - - react - - react-dom - - react-hook-form - - react-native - - react-router - - react-router-dom - dev: false - - /ra-i18n-polyglot@4.7.0(history@5.3.0)(react-dom@18.2.0)(react-hook-form@7.41.5)(react-router-dom@6.11.0)(react-router@6.11.0)(react@18.2.0): - resolution: {integrity: sha512-PUuG5i6ZYec62qvqrrcoI+ySEP4OXmy9XiqtWG4uNRMCI9Ib0lZiqfQQXR7MRIY3Wtv4CUMGGT2tjwxx5EL4FQ==} - dependencies: - node-polyglot: 2.4.2 - ra-core: 4.10.3(history@5.3.0)(react-dom@18.2.0)(react-hook-form@7.41.5)(react-router-dom@6.11.0)(react-router@6.11.0)(react@18.2.0) - transitivePeerDependencies: - - history - - react - - react-dom - - react-hook-form - - react-native - - react-router - - react-router-dom - dev: false - - /ra-language-english@4.7.0(history@5.3.0)(react-dom@18.2.0)(react-hook-form@7.41.5)(react-router-dom@6.11.0)(react-router@6.11.0)(react@18.2.0): - resolution: {integrity: sha512-vRu43vyULdWXzjyTBJP/lF+7WOJmZnhG/q+muY74o+bHsb4ZJZhdY1j2ZdLUtaLgtD6DKz/N4AoTTwgLK7gFGg==} - dependencies: - ra-core: 4.10.3(history@5.3.0)(react-dom@18.2.0)(react-hook-form@7.41.5)(react-router-dom@6.11.0)(react-router@6.11.0)(react@18.2.0) - transitivePeerDependencies: - - history - - react - - react-dom - - react-hook-form - - react-native - - react-router - - react-router-dom - dev: false - - /ra-ui-materialui@4.7.1(@mui/icons-material@5.11.0)(@mui/material@5.11.3)(ra-core@4.10.3)(react-dom@18.2.0)(react-hook-form@7.41.5)(react-router-dom@6.11.0)(react-router@6.11.0)(react@18.2.0): - resolution: {integrity: sha512-2Avn+w/wcW5Y6zyEbHMOhabZQBLlLWdJarTXmV7KxHqUcEvJcR7CqcrBwmIx+etqkjF3t9VHeb+9tOn4G4Zv8A==} - peerDependencies: - '@mui/icons-material': ^5.0.1 - '@mui/material': ^5.0.2 - ra-core: ^4.0.0 - react: ^16.9.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 - react-hook-form: '*' - react-router: ^6.1.0 - react-router-dom: ^6.1.0 - dependencies: - '@mui/icons-material': 5.11.0(@mui/material@5.11.3)(@types/react@18.0.20)(react@18.2.0) - '@mui/material': 5.11.3(@emotion/react@11.10.4)(@emotion/styled@11.10.4)(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) - autosuggest-highlight: 3.3.4 - clsx: 1.2.1 - css-mediaquery: 0.1.2 - inflection: 1.12.0 - jsonexport: 3.2.0 - lodash: 4.17.21 - prop-types: 15.8.1 - query-string: 7.1.3 - ra-core: 4.10.3(history@5.3.0)(react-dom@18.2.0)(react-hook-form@7.41.5)(react-router-dom@6.11.0)(react-router@6.11.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-dropzone: 12.1.0(react@18.2.0) - react-error-boundary: 3.1.4(react@18.2.0) - react-hook-form: 7.41.5(react@18.2.0) - react-query: 3.39.2(react-dom@18.2.0)(react@18.2.0) - react-router: 6.11.0(react@18.2.0) - react-router-dom: 6.11.0(react-dom@18.2.0)(react@18.2.0) - react-transition-group: 4.4.5(react-dom@18.2.0)(react@18.2.0) - transitivePeerDependencies: - - react-native - dev: false - /ramda-adjunct@2.36.0(ramda@0.27.1): resolution: {integrity: sha512-8w+/Hx73oByS+vo+BfAPOG3HYL2ay6O5fjrJpR7NFxMoFWksKz6vSOtvjqdfMM6MfAimHizq9tpdI0OD4xbKog==} engines: {node: '>=0.10.3'} @@ -29456,32 +28090,6 @@ packages: minimist: 1.2.8 strip-json-comments: 2.0.1 - /react-admin@4.7.1(@babel/core@7.21.0)(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-dxKhIFfBHHUMNavzBJGdWWmz52d465T5h7WY5eb8CPfFmHGY8m92E4t8Qcw1evdnJVswWOogxQpdKm+hL0qoZQ==} - peerDependencies: - react: ^16.9.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@emotion/react': 11.10.4(@babel/core@7.21.0)(@types/react@18.0.20)(react@18.2.0) - '@emotion/styled': 11.10.4(@babel/core@7.21.0)(@emotion/react@11.10.4)(@types/react@18.0.20)(react@18.2.0) - '@mui/icons-material': 5.11.0(@mui/material@5.11.3)(@types/react@18.0.20)(react@18.2.0) - '@mui/material': 5.11.3(@emotion/react@11.10.4)(@emotion/styled@11.10.4)(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) - history: 5.3.0 - ra-core: 4.10.3(history@5.3.0)(react-dom@18.2.0)(react-hook-form@7.41.5)(react-router-dom@6.11.0)(react-router@6.11.0)(react@18.2.0) - ra-i18n-polyglot: 4.7.0(history@5.3.0)(react-dom@18.2.0)(react-hook-form@7.41.5)(react-router-dom@6.11.0)(react-router@6.11.0)(react@18.2.0) - ra-language-english: 4.7.0(history@5.3.0)(react-dom@18.2.0)(react-hook-form@7.41.5)(react-router-dom@6.11.0)(react-router@6.11.0)(react@18.2.0) - ra-ui-materialui: 4.7.1(@mui/icons-material@5.11.0)(@mui/material@5.11.3)(ra-core@4.10.3)(react-dom@18.2.0)(react-hook-form@7.41.5)(react-router-dom@6.11.0)(react-router@6.11.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-hook-form: 7.41.5(react@18.2.0) - react-router: 6.11.0(react@18.2.0) - react-router-dom: 6.11.0(react-dom@18.2.0)(react@18.2.0) - transitivePeerDependencies: - - '@babel/core' - - '@types/react' - - react-native - dev: false - /react-base16-styling@0.6.0: resolution: {integrity: sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ==} dependencies: @@ -29656,18 +28264,6 @@ packages: react: 18.2.0 scheduler: 0.23.0 - /react-dropzone@12.1.0(react@18.2.0): - resolution: {integrity: sha512-iBYHA1rbopIvtzokEX4QubO6qk5IF/x3BtKGu74rF2JkQDXnwC4uO/lHKpaw4PJIV6iIAYOlwLv2FpiGyqHNog==} - engines: {node: '>= 10.13'} - peerDependencies: - react: '>= 16.8' - dependencies: - attr-accept: 2.2.2 - file-selector: 0.5.0 - prop-types: 15.8.1 - react: 18.2.0 - dev: false - /react-easy-crop@5.0.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-ppYg3E0jxpDW+HdgLa65lCykZSsGMuusBuKD3HeTMs/Aod4xiWyAH5jZn5iHlllLUV2c0PPT6FznvdNeLhO2wA==} peerDependencies: @@ -29701,6 +28297,7 @@ packages: dependencies: '@babel/runtime': 7.21.0 react: 18.2.0 + dev: true /react-error-overlay@6.0.11: resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==} @@ -29780,15 +28377,6 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /react-hook-form@7.41.5(react@18.2.0): - resolution: {integrity: sha512-DAKjSJ7X9f16oQrP3TW2/eD9N6HOgrmIahP4LOdFphEWVfGZ2LulFd6f6AQ/YS/0cx/5oc4j8a1PXxuaurWp/Q==} - engines: {node: '>=12.22.0'} - peerDependencies: - react: ^16.8.0 || ^17 || ^18 - dependencies: - react: 18.2.0 - dev: false - /react-i18next@11.18.6(i18next@21.9.2)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-yHb2F9BiT0lqoQDt8loZ5gWP331GwctHz9tYQ8A2EIEUu+CcEdjBLQWli1USG3RdWQt3W+jqQLg/d4rrQR96LA==} peerDependencies: @@ -29845,6 +28433,7 @@ packages: /react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + dev: true /react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} @@ -29948,25 +28537,6 @@ packages: resolution: {integrity: sha512-kzmNjIgU32mO4mmH5+iUyrqlpFQhF8K2k7eZ4fdLSOPFrD1XgEuSBv9LDEgxRXTMBqMd8ppT0x6TIzqE5pdGdw==} dev: false - /react-query@3.39.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-F6hYDKyNgDQfQOuR1Rsp3VRzJnWHx6aRnnIZHMNGGgbL3SBgpZTDg8MQwmxOgpCAoqZJA+JSNCydF1xGJqKOCA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: '*' - react-native: '*' - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true - dependencies: - '@babel/runtime': 7.21.0 - broadcast-channel: 3.7.0 - match-sorter: 6.3.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /react-reconciler@0.26.2(react@18.2.0): resolution: {integrity: sha512-nK6kgY28HwrMNwDnMui3dvm3rCFjZrcGiuwLc5COUipBK5hWHLOxMJhSnSomirqWwjPBJKV1QcbkI0VJr7Gl1Q==} engines: {node: '>=0.10.0'} @@ -30371,26 +28941,6 @@ packages: resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} dev: false - /recast@0.20.5: - resolution: {integrity: sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==} - engines: {node: '>= 4'} - dependencies: - ast-types: 0.14.2 - esprima: 4.0.1 - source-map: 0.6.1 - tslib: 2.5.0 - dev: true - - /recast@0.21.5: - resolution: {integrity: sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==} - engines: {node: '>= 4'} - dependencies: - ast-types: 0.15.2 - esprima: 4.0.1 - source-map: 0.6.1 - tslib: 2.5.0 - dev: true - /recharts-scale@0.4.5: resolution: {integrity: sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==} dependencies: @@ -30697,15 +29247,6 @@ packages: /remark-footnotes@2.0.0: resolution: {integrity: sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==} - /remark-frontmatter@4.0.1: - resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==} - dependencies: - '@types/mdast': 3.0.11 - mdast-util-frontmatter: 1.0.0 - micromark-extension-frontmatter: 1.0.0 - unified: 10.1.2 - dev: true - /remark-gfm@3.0.1: resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} dependencies: @@ -30717,16 +29258,6 @@ packages: - supports-color dev: false - /remark-mdx-frontmatter@1.1.1: - resolution: {integrity: sha512-7teX9DW4tI2WZkXS4DBxneYSY7NHiXl4AKdWDO9LXVweULlCT8OPWsOjLEnMIXViN1j+QcY8mfbq3k0EK6x3uA==} - engines: {node: '>=12.2.0'} - dependencies: - estree-util-is-identifier-name: 1.1.0 - estree-util-value-to-estree: 1.3.0 - js-yaml: 4.1.0 - toml: 3.0.0 - dev: true - /remark-mdx@1.6.22: resolution: {integrity: sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==} dependencies: @@ -30749,6 +29280,7 @@ packages: unified: 10.1.2 transitivePeerDependencies: - supports-color + dev: false /remark-parse@8.0.3: resolution: {integrity: sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==} @@ -30779,15 +29311,6 @@ packages: unified: 10.1.2 dev: false - /remark-rehype@9.1.0: - resolution: {integrity: sha512-oLa6YmgAYg19zb0ZrBACh40hpBLteYROaPLhBXzLgjqyHQrN+gVP9N/FJvfzuNNuzCutktkroXEZBrxAxKhh7Q==} - dependencies: - '@types/hast': 2.3.4 - '@types/mdast': 3.0.11 - mdast-util-to-hast: 11.3.0 - unified: 10.1.2 - dev: true - /remark-slug@6.1.0: resolution: {integrity: sha512-oGCxDF9deA8phWvxFuyr3oSJsdyUAxMFbA0mZ7Y1Sas+emILtO+e5WutF9564gDsEN4IXaQXm5pFo6MLH+YmwQ==} dependencies: @@ -31137,13 +29660,6 @@ packages: /rgba-regex@1.0.0: resolution: {integrity: sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg==} - /rimraf@2.6.3: - resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} - hasBin: true - dependencies: - glob: 7.2.3 - dev: true - /rimraf@2.7.1: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} hasBin: true @@ -31198,15 +29714,6 @@ packages: magic-string: 0.25.9 dev: true - /rollup-plugin-inject@3.0.2: - resolution: {integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==} - deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject. - dependencies: - estree-walker: 0.6.1 - magic-string: 0.25.9 - rollup-pluginutils: 2.8.2 - dev: true - /rollup-plugin-less@1.1.3: resolution: {integrity: sha512-gvJFXpEeU5Opyz514ZO4JGj9kvFTChZEDMR3LSkSIyFfWaeE5NJMFzxPpo+MZK3CY/0j7+AotDeRofyQt9rTew==} dependencies: @@ -31219,12 +29726,6 @@ packages: rollup-pluginutils: 1.5.2 dev: true - /rollup-plugin-node-polyfills@0.2.1: - resolution: {integrity: sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==} - dependencies: - rollup-plugin-inject: 3.0.2 - dev: true - /rollup-plugin-polyfill-node@0.9.0(rollup@2.78.1): resolution: {integrity: sha512-cVqm7LjgBqtZ77M9hLYayXrLz18nLIVPp3MPqNi2suStrFDg1LsA2cSdMIighr2yeuAQrphu8ymXTAsJNVABow==} peerDependencies: @@ -31408,6 +29909,7 @@ packages: engines: {node: '>=6'} dependencies: mri: 1.2.0 + dev: false /safari-14-idb-fix@1.0.6: resolution: {integrity: sha512-oTEQOdMwRX+uCtWCKT1nx2gAeSdpr8elg/2gcaKUH00SJU2xWESfkx11nmXwTRHy7xfQoj1o4TTQvdmuBosTnA==} @@ -31725,9 +30227,6 @@ packages: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: true - /set-cookie-parser@2.5.1: - resolution: {integrity: sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==} - /set-harmonic-interval@1.0.1: resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==} engines: {node: '>=6.9'} @@ -32146,22 +30645,6 @@ packages: is-plain-obj: 1.1.0 dev: true - /sort-object-keys@1.1.3: - resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} - dev: true - - /sort-package-json@1.57.0: - resolution: {integrity: sha512-FYsjYn2dHTRb41wqnv+uEqCUvBpK3jZcTp9rbz2qDTmel7Pmdtf+i2rLaaPMRZeSVM60V3Se31GyWFpmKs4Q5Q==} - hasBin: true - dependencies: - detect-indent: 6.1.0 - detect-newline: 3.1.0 - git-hooks-list: 1.0.3 - globby: 10.0.0 - is-plain-obj: 2.1.0 - sort-object-keys: 1.1.3 - dev: true - /sortobject@4.16.0: resolution: {integrity: sha512-jdcWhqJjxyYxRcXa30qImF3PZea1GpNwdKxUac28T28+GodptH4XihPuRlgCY0hITIEQVnw8DtQ81Fb6fomBaw==} engines: {node: '>=10'} @@ -32259,6 +30742,7 @@ packages: /space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + dev: false /sparse-bitfield@3.0.3: resolution: {integrity: sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==} @@ -32488,10 +30972,6 @@ packages: resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} dev: true - /stream-slice@0.1.2: - resolution: {integrity: sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA==} - dev: false - /strict-uri-encode@2.0.0: resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} engines: {node: '>=4'} @@ -32575,15 +31055,6 @@ packages: es-abstract: 1.21.1 dev: true - /string.prototype.trim@1.2.7: - resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.1 - dev: false - /string.prototype.trimend@1.0.6: resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} dependencies: @@ -32617,6 +31088,7 @@ packages: dependencies: character-entities-html4: 2.1.0 character-entities-legacy: 3.0.0 + dev: false /stringify-object@3.3.0: resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} @@ -33225,15 +31697,6 @@ packages: tar-stream: 2.2.0 dev: false - /tar-fs@2.1.1: - resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} - dependencies: - chownr: 1.1.4 - mkdirp-classic: 0.5.3 - pump: 3.0.0 - tar-stream: 2.2.0 - dev: true - /tar-stream@1.6.2: resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==} engines: {node: '>= 0.8.0'} @@ -33256,6 +31719,7 @@ packages: fs-constants: 1.0.0 inherits: 2.0.4 readable-stream: 3.6.1 + dev: false /tar@6.1.13: resolution: {integrity: sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==} @@ -33287,13 +31751,6 @@ packages: engines: {node: '>=8'} dev: true - /temp@0.8.4: - resolution: {integrity: sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==} - engines: {node: '>=6.0.0'} - dependencies: - rimraf: 2.6.3 - dev: true - /tempy@0.6.0: resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==} engines: {node: '>=10'} @@ -33623,10 +32080,6 @@ packages: ieee754: 1.2.1 dev: true - /toml@3.0.0: - resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} - dev: true - /toposort@2.0.2: resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} dev: false @@ -33720,6 +32173,7 @@ packages: /trough@2.1.0: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} + dev: false /ts-dedent@2.2.0: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} @@ -34242,6 +32696,7 @@ packages: is-plain-obj: 4.1.0 trough: 2.1.0 vfile: 5.3.7 + dev: false /unified@9.2.0: resolution: {integrity: sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==} @@ -34317,29 +32772,19 @@ packages: /unist-builder@2.0.3: resolution: {integrity: sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==} - /unist-builder@3.0.0: - resolution: {integrity: sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ==} - dependencies: - '@types/unist': 2.0.6 - dev: true - /unist-util-generated@1.1.6: resolution: {integrity: sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==} /unist-util-generated@2.0.1: resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==} + dev: false /unist-util-is@4.1.0: resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} /unist-util-is@5.2.0: resolution: {integrity: sha512-Glt17jWwZeyqrFqOK0pF1Ded5U3yzJnFr8CG1GMjCWTp9zDo2p+cmD6pWbZU8AgM5WU3IzRv6+rBwhzsGh6hBQ==} - - /unist-util-position-from-estree@1.1.1: - resolution: {integrity: sha512-xtoY50b5+7IH8tFbkw64gisG9tMSpxDjhX9TmaJJae/XuxQ9R/Kc8Nv1eOsf43Gt4KV/LkriMy9mptDr7XLcaw==} - dependencies: - '@types/unist': 2.0.6 - dev: true + dev: false /unist-util-position@3.1.0: resolution: {integrity: sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==} @@ -34348,19 +32793,13 @@ packages: resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==} dependencies: '@types/unist': 2.0.6 + dev: false /unist-util-remove-position@2.0.1: resolution: {integrity: sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==} dependencies: unist-util-visit: 2.0.3 - /unist-util-remove-position@4.0.1: - resolution: {integrity: sha512-0yDkppiIhDlPrfHELgB+NLQD5mfjup3a8UYclHruTJWmY74je8g+CIFr79x5f6AkmzSwlvKLbs63hC0meOMowQ==} - dependencies: - '@types/unist': 2.0.6 - unist-util-visit: 4.1.2 - dev: true - /unist-util-remove@2.1.0: resolution: {integrity: sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==} dependencies: @@ -34375,6 +32814,7 @@ packages: resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} dependencies: '@types/unist': 2.0.6 + dev: false /unist-util-visit-parents@3.1.1: resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} @@ -34387,6 +32827,7 @@ packages: dependencies: '@types/unist': 2.0.6 unist-util-is: 5.2.0 + dev: false /unist-util-visit@2.0.3: resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} @@ -34401,6 +32842,7 @@ packages: '@types/unist': 2.0.6 unist-util-is: 5.2.0 unist-util-visit-parents: 5.1.3 + dev: false /universal-github-app-jwt@1.1.0: resolution: {integrity: sha512-3b+ocAjjz4JTyqaOT+NNBd5BtTuvJTxWElIoeHSVelUV9J3Jp7avmQTdLKCaoqi/5Ox2o/q+VK19TJ233rVXVQ==} @@ -34426,13 +32868,6 @@ packages: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} - /unload@2.2.0: - resolution: {integrity: sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==} - dependencies: - '@babel/runtime': 7.21.0 - detect-node: 2.1.0 - dev: false - /unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} @@ -34839,6 +33274,7 @@ packages: diff: 5.1.0 kleur: 4.1.5 sade: 1.8.1 + dev: false /v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -34911,6 +33347,7 @@ packages: dependencies: '@types/unist': 2.0.6 vfile: 5.3.7 + dev: false /vfile-message@2.0.4: resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} @@ -34923,6 +33360,7 @@ packages: dependencies: '@types/unist': 2.0.6 unist-util-stringify-position: 3.0.3 + dev: false /vfile@4.2.1: resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} @@ -34939,6 +33377,7 @@ packages: is-buffer: 2.0.5 unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 + dev: false /victory-vendor@36.6.10: resolution: {integrity: sha512-7YqYGtsA4mByokBhCjk+ewwPhUfzhR1I3Da6/ZsZUv/31ceT77RKoaqrxRq5Ki+9we4uzf7+A+7aG2sfYhm7nA==} @@ -35112,12 +33551,6 @@ packages: wrap-fn: 0.1.5 dev: true - /warning@4.0.3: - resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} - dependencies: - loose-envify: 1.4.0 - dev: false - /watchpack@2.4.0: resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} engines: {node: '>=10.13.0'} @@ -35153,6 +33586,7 @@ packages: /web-streams-polyfill@3.2.1: resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} engines: {node: '>= 8'} + dev: true /web-vitals@3.1.1: resolution: {integrity: sha512-qvllU+ZeQChqzBhZ1oyXmWsjJ8a2jHYpH8AMaVuf29yscOPZfTQTjQFRX6+eADTdsDE8IanOZ0cetweHMs8/2A==} @@ -35796,14 +34230,6 @@ packages: imurmurhash: 0.1.4 slide: 1.1.6 - /write-file-atomic@2.4.3: - resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} - dependencies: - graceful-fs: 4.2.10 - imurmurhash: 0.1.4 - signal-exit: 3.0.7 - dev: true - /write-file-atomic@3.0.3: resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} dependencies: @@ -35877,36 +34303,6 @@ packages: engines: {node: '>=12'} dev: true - /xdm@2.1.0: - resolution: {integrity: sha512-3LxxbxKcRogYY7cQSMy1tUuU1zKNK9YPqMT7/S0r7Cz2QpyF8O9yFySGD7caOZt+LWUOQioOIX+6ZzCoBCpcAA==} - dependencies: - '@rollup/pluginutils': 4.2.1 - '@types/estree-jsx': 0.0.1 - astring: 1.8.4 - estree-util-build-jsx: 2.2.0 - estree-util-is-identifier-name: 2.0.1 - estree-walker: 3.0.2 - got: 11.8.3 - hast-util-to-estree: 2.1.0 - loader-utils: 2.0.4 - markdown-extensions: 1.1.1 - mdast-util-mdx: 1.1.0 - micromark-extension-mdxjs: 1.0.0 - periscopic: 3.0.4 - remark-parse: 10.0.1 - remark-rehype: 9.1.0 - source-map: 0.7.4 - unified: 10.1.2 - unist-util-position-from-estree: 1.1.1 - unist-util-stringify-position: 3.0.3 - unist-util-visit: 4.1.2 - vfile: 5.3.7 - optionalDependencies: - deasync: 0.1.28 - transitivePeerDependencies: - - supports-color - dev: true - /xml-js@1.6.11: resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} hasBin: true @@ -36166,3 +34562,4 @@ packages: /zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + dev: false diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index c12bcf8c660..07fed42c217 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -7,7 +7,6 @@ packages: - 'client/packages/**' - 'server' - 'server/admin' - - 'server/admin-old' - 'server/packages/**' - 'server/plugins/**' - 'server/test/demo/**' diff --git a/server/admin-old/.gitignore b/server/admin-old/.gitignore deleted file mode 100644 index 66abb8e00bf..00000000000 --- a/server/admin-old/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules - -/.cache -/build -/public/build -/public/admin -.env diff --git a/server/admin-old/README.md b/server/admin-old/README.md deleted file mode 100644 index 9659e785e03..00000000000 --- a/server/admin-old/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# Welcome to Remix! - -- [Remix Docs](https://remix.run/docs) - -## Development - -From your terminal: - -```sh -npm run dev -``` - -This starts your app in development mode, rebuilding assets on file changes. - -## Deployment - -First, build your app for production: - -```sh -npm run build -``` - -Then run the app in production mode: - -```sh -npm start -``` - -Now you'll need to pick a host to deploy it to. - -### DIY - -If you're familiar with deploying node applications, the built-in Remix app server is production-ready. - -Make sure to deploy the output of `remix build` - -- `build/` -- `public/build/` - -### Using a Template - -When you ran `npx create-remix@latest` there were a few choices for hosting. You can run that again to create a new project, then copy over your `app/` folder to the new project that's pre-configured for your target server. - -```sh -cd .. -# create a new project, and pick a pre-configured host -npx create-remix@latest -cd my-new-remix-app -# remove the new project's app (not the old one!) -rm -rf app -# copy your app over -cp -R ../my-old-remix-app/app app -``` diff --git a/server/admin-old/app/entry.client.tsx b/server/admin-old/app/entry.client.tsx deleted file mode 100644 index 634d75152a6..00000000000 --- a/server/admin-old/app/entry.client.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { RemixBrowser } from '@remix-run/react'; -import React from 'react'; -import { startTransition, StrictMode } from 'react'; -import { hydrateRoot } from 'react-dom/client'; - -function hydrate() { - startTransition(() => { - hydrateRoot( - document, - - - - ); - }); -} - -if (typeof requestIdleCallback === 'function') { - requestIdleCallback(hydrate); -} else { - // Safari doesn't support requestIdleCallback - // https://caniuse.com/requestidlecallback - setTimeout(hydrate, 1); -} diff --git a/server/admin-old/app/entry.server.tsx b/server/admin-old/app/entry.server.tsx deleted file mode 100644 index 4d9320f829c..00000000000 --- a/server/admin-old/app/entry.server.tsx +++ /dev/null @@ -1,111 +0,0 @@ -import { PassThrough } from 'stream'; -import type { EntryContext } from '@remix-run/node'; -import { Response } from '@remix-run/node'; -import { RemixServer } from '@remix-run/react'; -import isbot from 'isbot'; -import { renderToPipeableStream } from 'react-dom/server'; - -const ABORT_DELAY = 5000; - -export default function handleRequest( - request: Request, - responseStatusCode: number, - responseHeaders: Headers, - remixContext: EntryContext -) { - return isbot(request.headers.get('user-agent')) - ? handleBotRequest( - request, - responseStatusCode, - responseHeaders, - remixContext - ) - : handleBrowserRequest( - request, - responseStatusCode, - responseHeaders, - remixContext - ); -} - -function handleBotRequest( - request: Request, - responseStatusCode: number, - responseHeaders: Headers, - remixContext: EntryContext -) { - return new Promise((resolve, reject) => { - let didError = false; - - const { pipe, abort } = renderToPipeableStream( - , - { - onAllReady() { - const body = new PassThrough(); - - responseHeaders.set('Content-Type', 'text/html'); - - resolve( - new Response(body, { - headers: responseHeaders, - status: didError ? 500 : responseStatusCode, - }) - ); - - pipe(body); - }, - onShellError(error: unknown) { - reject(error); - }, - onError(error: unknown) { - didError = true; - - console.error(error); - }, - } - ); - - setTimeout(abort, ABORT_DELAY); - }); -} - -function handleBrowserRequest( - request: Request, - responseStatusCode: number, - responseHeaders: Headers, - remixContext: EntryContext -) { - return new Promise((resolve, reject) => { - let didError = false; - - const { pipe, abort } = renderToPipeableStream( - , - { - onShellReady() { - const body = new PassThrough(); - - responseHeaders.set('Content-Type', 'text/html'); - - resolve( - new Response(body, { - headers: responseHeaders, - status: didError ? 500 : responseStatusCode, - }) - ); - - pipe(body); - }, - onShellError(err: unknown) { - reject(err); - }, - onError(error: unknown) { - didError = true; - - console.error(error); - }, - } - ); - - setTimeout(abort, ABORT_DELAY); - }); -} diff --git a/server/admin-old/app/ra/App.tsx b/server/admin-old/app/ra/App.tsx deleted file mode 100644 index 08fd00c059c..00000000000 --- a/server/admin-old/app/ra/App.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import { Admin, Resource, ShowGuesser, CustomRoutes } from 'react-admin'; -import jsonServerProvider from 'ra-data-json-server'; -import { authProvider } from './authProvider'; -import { UserEdit, UserList, UserShow } from './resources/user'; -import React from 'react'; -import { GroupList, GroupShow } from './resources/group'; -import { MessageList, MessageShow } from './resources/chat'; -import { FileList } from './resources/file'; -import PersonIcon from '@mui/icons-material/Person'; -import MessageIcon from '@mui/icons-material/Message'; -import GroupIcon from '@mui/icons-material/Group'; -import AttachFileIcon from '@mui/icons-material/AttachFile'; -import { theme } from './theme'; -import { Dashboard } from './dashboard'; -import { Route } from 'react-router-dom'; -import { TailchatNetwork } from './routes/network'; -import { TailchatLayout } from './layout'; -import { i18nProvider } from './i18n/index'; -import { httpClient } from './request'; -import { SocketIOAdmin } from './routes/socketio'; -import { SystemConfig } from './routes/system'; - -const dataProvider = jsonServerProvider( - // 'https://jsonplaceholder.typicode.com' - '/admin/api', - httpClient -); - -export const App = () => ( - - - - - - - - {/* 添加完毕以后还需要到 layout/Menu 增加侧边栏 */} - } /> - } /> - } /> - - -); diff --git a/server/admin-old/app/ra/authProvider.ts b/server/admin-old/app/ra/authProvider.ts deleted file mode 100644 index e9bc45cc205..00000000000 --- a/server/admin-old/app/ra/authProvider.ts +++ /dev/null @@ -1,65 +0,0 @@ -import type { AuthProvider } from 'react-admin'; - -export const authStorageKey = 'tailchat:admin:auth'; - -export const authProvider: AuthProvider = { - login: ({ username, password }) => { - const request = new Request('/admin/api/login', { - method: 'POST', - body: JSON.stringify({ username, password }), - headers: new Headers({ 'Content-Type': 'application/json' }), - }); - return fetch(request) - .then((response) => { - return response.json(); - }) - .then((auth) => { - console.log(auth); - localStorage.setItem(authStorageKey, JSON.stringify(auth)); - }) - .catch(() => { - throw new Error('Login Failed'); - }); - }, - logout: () => { - localStorage.removeItem(authStorageKey); - return Promise.resolve(); - }, - checkAuth: () => { - const auth = localStorage.getItem(authStorageKey); - if (auth) { - try { - const obj = JSON.parse(auth); - if (obj.expiredAt && Date.now() < obj.expiredAt) { - return Promise.resolve(); - } - } catch (err) {} - } - - return Promise.reject(); - }, - checkError: (error) => { - const status = error.status; - if (status === 401 || status === 403) { - localStorage.removeItem(authStorageKey); - return Promise.reject(); - } - - // other error code (404, 500, etc): no need to log out - return Promise.resolve(); - }, - getIdentity: () => { - const { username } = JSON.parse( - localStorage.getItem(authStorageKey) ?? '{}' - ); - if (!username) { - return Promise.reject(); - } - - return Promise.resolve({ - id: username, - fullName: username, - }); - }, - getPermissions: () => Promise.resolve(''), -}; diff --git a/server/admin-old/app/ra/components/ButtonWithConfirm.tsx b/server/admin-old/app/ra/components/ButtonWithConfirm.tsx deleted file mode 100644 index c3893a8abe7..00000000000 --- a/server/admin-old/app/ra/components/ButtonWithConfirm.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import React, { useState } from 'react'; -import { Button, ButtonProps, Confirm, useTranslate } from 'react-admin'; - -interface Props extends Pick { - component?: React.ComponentType; - confirmTitle?: string; - confirmContent?: string; - onConfirm?: () => void; -} -export const ButtonWithConfirm: React.FC = React.memo((props) => { - const translate = useTranslate(); - - const { - component: ButtonComponent = Button, - confirmTitle = translate('custom.common.confirmTitle'), - confirmContent = translate('custom.common.confirmContent'), - } = props; - const [open, setOpen] = useState(false); - const [loading, setLoading] = useState(false); - - return ( - <> - { - setOpen(true); - }} - label={props.label} - /> - { - setLoading(true); - props.onConfirm?.(); - setLoading(false); - setOpen(false); - }} - onClose={() => { - setOpen(false); - }} - /> - - ); -}); -ButtonWithConfirm.displayName = 'ButtonWithConfirm'; diff --git a/server/admin-old/app/ra/components/ChipItems.tsx b/server/admin-old/app/ra/components/ChipItems.tsx deleted file mode 100644 index 47076979b43..00000000000 --- a/server/admin-old/app/ra/components/ChipItems.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react'; -import { Chip, Grid } from '@mui/material'; - -export const ChipItems: React.FC<{ - items: string[]; -}> = React.memo((props) => { - return ( - - {props.items.map((item) => ( - - - - ))} - - ); -}); -ChipItems.displayName = 'ChipItems'; diff --git a/server/admin-old/app/ra/components/DangerButton.tsx b/server/admin-old/app/ra/components/DangerButton.tsx deleted file mode 100644 index 0b563a52e2b..00000000000 --- a/server/admin-old/app/ra/components/DangerButton.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { styled, alpha } from '@mui/material'; -import { Button } from 'react-admin'; - -export const DangerButton = styled(Button, { - name: 'DangerBtn', - overridesResolver: (props, styles) => styles.root, -})(({ theme }) => ({ - color: theme.palette.error.main, - '&:hover': { - backgroundColor: alpha(theme.palette.error.main, 0.12), - // Reset on mouse devices - '@media (hover: none)': { - backgroundColor: 'transparent', - }, - }, -})); -DangerButton.displayName = 'DangerButton'; diff --git a/server/admin-old/app/ra/components/FilesizeField.tsx b/server/admin-old/app/ra/components/FilesizeField.tsx deleted file mode 100644 index dca9c84544b..00000000000 --- a/server/admin-old/app/ra/components/FilesizeField.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import React from 'react'; -import filesize from 'filesize'; -import { - NumberFieldProps, - sanitizeFieldRestProps, - useRecordContext, - useTranslate, -} from 'react-admin'; -import get from 'lodash/get'; -import { Typography } from '@mui/material'; - -export const FilesizeField: React.FC = React.memo((props) => { - const { className, emptyText, source, locales, options, textAlign, ...rest } = - props; - const record = useRecordContext(props); - const translate = useTranslate(); - - if (!record) { - return null; - } - const value = get(record, source!); - - if (value == null) { - return emptyText ? ( - - {emptyText && translate(emptyText, { _: emptyText })} - - ) : null; - } - - return ( - - {filesize(value)} - - ); -}); -FilesizeField.displayName = 'FilesizeField'; diff --git a/server/admin-old/app/ra/components/GroupField.tsx b/server/admin-old/app/ra/components/GroupField.tsx deleted file mode 100644 index 145f4968054..00000000000 --- a/server/admin-old/app/ra/components/GroupField.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import React from 'react'; -import { ReferenceField, ReferenceFieldProps, TextField } from 'react-admin'; - -export const GroupField: React.FC> = - React.memo((props) => { - return ( - - - - ); - }); -GroupField.displayName = 'GroupField'; diff --git a/server/admin-old/app/ra/components/Image.tsx b/server/admin-old/app/ra/components/Image.tsx deleted file mode 100644 index 59ad66423b8..00000000000 --- a/server/admin-old/app/ra/components/Image.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import React, { ImgHTMLAttributes } from 'react'; -import { parseUrlStr } from '../utils'; - -export const Image: React.FC> = React.memo( - (props) => { - return ; - } -); -Image.displayName = 'Image'; diff --git a/server/admin-old/app/ra/components/PostListActionToolbar.tsx b/server/admin-old/app/ra/components/PostListActionToolbar.tsx deleted file mode 100644 index eb9facc0800..00000000000 --- a/server/admin-old/app/ra/components/PostListActionToolbar.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import React from 'react'; -import { Box } from '@mui/material'; - -export const PostListActionToolbar = ({ children, ...props }) => ( - {children} -); diff --git a/server/admin-old/app/ra/components/UserField.tsx b/server/admin-old/app/ra/components/UserField.tsx deleted file mode 100644 index 518d499862d..00000000000 --- a/server/admin-old/app/ra/components/UserField.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import React from 'react'; -import { - ReferenceField, - ReferenceFieldProps, - TextField, - useRecordContext, -} from 'react-admin'; - -const SYSTEM_USERID = '000000000000000000000000'; - -export const UserField: React.FC> = - React.memo((props) => { - const record = useRecordContext(props); - if (props.source && record) { - if (record[props.source] === SYSTEM_USERID) { - return
System
; - } - } - - return ( - - <> - - () - - - ); - }); -UserField.displayName = 'UserField'; diff --git a/server/admin-old/app/ra/dashboard/CardWithIcon.tsx b/server/admin-old/app/ra/dashboard/CardWithIcon.tsx deleted file mode 100644 index 579e4dd3b70..00000000000 --- a/server/admin-old/app/ra/dashboard/CardWithIcon.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import { FC, createElement } from 'react'; -import { Card, Box, Typography, Divider } from '@mui/material'; -import { Link, To } from 'react-router-dom'; -import type { ReactNode } from 'react'; -import { LoadingIndicator } from 'react-admin'; - -import cartouche from './cartouche.png'; -import cartoucheDark from './cartoucheDark.png'; - -interface Props { - icon: FC; - to: To; - title?: string; - subtitle?: string | number; - children?: ReactNode; -} - -const CardWithIcon = (props: Props) => { - const { icon, title, subtitle, to, children } = props; - - return ( - - - - `url(${ - theme.palette.mode === 'dark' ? cartoucheDark : cartouche - }) no-repeat`, - display: 'flex', - justifyContent: 'space-between', - alignItems: 'center', - '& .icon': { - color: (theme) => - theme.palette.mode === 'dark' ? 'inherit' : '#dc2440', - }, - }} - > - - {createElement(icon, { fontSize: 'large' })} - - - {title} - - {subtitle ?? } - - - - - {children && } - {children} - - ); -}; - -export default CardWithIcon; diff --git a/server/admin-old/app/ra/dashboard/Welcome.tsx b/server/admin-old/app/ra/dashboard/Welcome.tsx deleted file mode 100644 index 8ebd7f52b54..00000000000 --- a/server/admin-old/app/ra/dashboard/Welcome.tsx +++ /dev/null @@ -1,80 +0,0 @@ -import React from 'react'; -import { useTranslate } from 'react-admin'; -import { Card, Box, Typography, CardActions, Button } from '@mui/material'; -import HomeIcon from '@mui/icons-material/Home'; -import CodeIcon from '@mui/icons-material/Code'; -import logoSvg from './logo.svg'; - -export const Welcome: React.FC = React.memo(() => { - const translate = useTranslate(); - - return ( - - theme.palette.mode === 'dark' - ? '#535353' - : `linear-gradient(to right, #1a1d26 0%, #232c50 35%)`, - - color: '#fff', - padding: '20px', - marginTop: 2, - marginBottom: '1em', - }} - > - - - - {translate('custom.dashboard.welcomeTitle')} - - - - {translate('custom.dashboard.welcomeDesc')} - - - - - - - - - - - ); -}); -Welcome.displayName = 'Welcome'; diff --git a/server/admin-old/app/ra/dashboard/cartouche.png b/server/admin-old/app/ra/dashboard/cartouche.png deleted file mode 100644 index 06de31c0a16cb7e975857aae50539493fb8feabf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1117 zcmW+#e^Aq993IH;UnN7~yeq^GoF|@g5DQ`vb2w(Y5x+VznVAJxCk6|xH9!J!Knjva z3|znr5)3`PI2p}d$8SPlt~n4^5!>GH_q(wH-{IJI1A50F@AE#N&wZZf`MiI;!c;cX z-)D~xiA3^er7+S+Bo_>?7$m+U+)BvDHU zY%Zmq$VhfzMh9Xf^aj{~#Ezm6Um}PD#qfm%0y9`p)Q%Y(7`CoA*mXJr!)&O*uGbT& zQw8OA)QON2P_ENCfDsPcfx!lwh*2(=+o2X12{?&i&NviX(JU^_&A|@zCxBD94sGE8 zVzewS!qR~t1d3Tvqg9XC5rYE&2WGIL=qmJwCVIUy5yNI?W}t%u?yN&pDiwiX4#cpG zAnSVMr4~SLhfBhU?OYsylRJPKzLUdCW2bK|M3anhOH^=B9sH#E;@gwew4qNI3;#Pe z7JpNpSUK#KkYE2ui-!l)P1Gt=DtZo$oSgdT!}~1Vwf%R~>|FnuAJ`s>rm%u6$>Z_a z@M_T#Wyd-<0c6WJ5TEgPXDzUJ=k{wX>8 zmeK5u-IJBM#NWAdgj(viR2Rd^|5!nD(=imvXM-}gp$vs`g={)N39k{e#f1e)VW%y; z7c%$C3Wf3^-*22E>5MkLN!jlD`JUie!%fONoSFXM%jB^JlXHr)*Mf`TlezP znVeuv%{1%vjhpZ~GG&hng(Y(|-?%6Rb^cKu znJiFl7k%$OJRhYnKh6!?A3>b9MrsEc95@_C>||Kppmf9~D!X@+Z*$CO`)# zYd2Xiu&uToKBYR_j&E7Ih8SSHsjD&u?CFzMGQjy6CrYi-a$T1o~0}PMTBo!u3i%zj+9olwshF$ zf9HFCQy0VS1L7<11U;pi`#)$6PQpD+{z(3}MLnXt$r4x1+UEytRX0qF^tQLwJAYl8G7Zor_tqQl|MR4u3*TtJ#tcKg@7ncgQ&a5qS(E-(W8#2u-FL!lB5bI|1ZK<9->b}W*06ztZmCR=J I(9e|r58|kj>;M1& diff --git a/server/admin-old/app/ra/dashboard/cartoucheDark.png b/server/admin-old/app/ra/dashboard/cartoucheDark.png deleted file mode 100644 index 98d1f76e8eab69c21d0317701b14fea3195ece3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1117 zcmeAS@N?(olHy`uVBq!ia0y~yVEh7PM{+O&$^U=VY=9JFage(ch~s;u;JF0RaI(fj}?-3i$i`14(yx_n@F4KR-Vp36z1bA+p}y z-arOiJwz5r0>yzwLBt`XgM$N*0aT0zJUu;uDuIF!!-2K{Ed{Fd^74YKhX?`{`1<-n z1U)=FfLefT2(Y%ch8PP}qphtCG0n}*4afj$fp8%zfo!0SS#vwwfd2F^3Gxg6|InD> zjpbYO=i1lB_suS_KG$V?H1%=Oqm+|Ylb+eP9^Gsw5-!T?t4Ba zYQ5*v4)v8mzvFptOz~s8I8!k{Z1Ij$H$R9*vX!JTFfgt2ba4!+nDh4T^)L}f3D<{A zjfM+n9AjD3R2Xt5@{HG)zw*bq->+W1`}}^tsc+tMzFM=lfzfKo5(D#kp0^WB{4*0T z+Oj-#xp?`~k-aQOLoQzaDEv-SL$!OJ-@KxHN5$ALCAapnwzgcnys4V!l*Z!a#_vou zlzQi#+x2`wi`lQPYCf-w#mkG|*=i{C%{#Z7ec^1YU##C1N`l?}#qV}s@Ra*IsanwL z3JZoOkl``4asu@Z)ndYP{ojXncbhe7628i7CeV41rbH3@PTwR{W zZ3B_(uAX8wdH(OqEmoK3o+4W>n?IjveD$*X^Or$aC!0UFEc!ax{dwoaufgWeZ*JfX zaDT3Ofmgu%dF6ZE3ue!oPN-!p{>(RB&13fGZOhCwW`B;`=EgDmGuyGS7qdREyP9@l z*5|ONWh-WV{`aM=W0t@Wt_Y5g#RbU^?4J|roa1~+z@zD-nL9$-nl39-;vr19%GxI*Mh&_G`w)($@zJ^ z{re8Ksn&nIRGZgh@M86!slTsCEUo`^J^xPnF%R4B{k7lk)h6{^)Bf4s|L(EVLW>{E z*S diff --git a/server/admin-old/app/ra/dashboard/index.tsx b/server/admin-old/app/ra/dashboard/index.tsx deleted file mode 100644 index 0aa7ed8a777..00000000000 --- a/server/admin-old/app/ra/dashboard/index.tsx +++ /dev/null @@ -1,80 +0,0 @@ -import React from 'react'; -import CardWithIcon from './CardWithIcon'; -import { Welcome } from './Welcome'; -import PersonIcon from '@mui/icons-material/Person'; -import MessageIcon from '@mui/icons-material/Message'; -import GroupIcon from '@mui/icons-material/Group'; -import AttachFileIcon from '@mui/icons-material/AttachFile'; -import { useGetList, useTranslate } from 'react-admin'; -import { Grid } from '@mui/material'; - -export const Dashboard: React.FC = React.memo(() => { - const { total: usersNum } = useGetList('users', { - pagination: { page: 1, perPage: 1 }, - }); - const { total: tempUsersNum } = useGetList('users', { - filter: { temporary: true }, - pagination: { page: 1, perPage: 1 }, - }); - const { total: messageNum } = useGetList('messages', { - pagination: { page: 1, perPage: 1 }, - }); - const { total: groupNum } = useGetList('groups', { - pagination: { page: 1, perPage: 1 }, - }); - const { total: fileNum } = useGetList('file', { - pagination: { page: 1, perPage: 1 }, - }); - - const translate = useTranslate(); - - return ( -
- - - - - - - - - - - - - - - - - - - -
- ); -}); -Dashboard.displayName = 'Dashboard'; diff --git a/server/admin-old/app/ra/dashboard/logo.svg b/server/admin-old/app/ra/dashboard/logo.svg deleted file mode 100644 index b2c7ed9f258..00000000000 --- a/server/admin-old/app/ra/dashboard/logo.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/server/admin-old/app/ra/i18n/builtin.ts b/server/admin-old/app/ra/i18n/builtin.ts deleted file mode 100644 index 9186f746996..00000000000 --- a/server/admin-old/app/ra/i18n/builtin.ts +++ /dev/null @@ -1,164 +0,0 @@ -export const defaultChineseMessages = { - ra: { - action: { - add_filter: '增加检索', - add: '增加', - back: '回退', - bulk_actions: '选中%{smart_count}项', - cancel: '取消', - clear_input_value: '清空输入', - clone: '克隆', - confirm: '确认', - create: '新建', - create_item: '新建 %{item}', - delete: '删除', - edit: '编辑', - export: '导出', - list: '列表', - refresh: '刷新', - remove_filter: '移除检索', - remove: '删除', - save: '保存', - search: '检索', - select_all: '选中全部', - select_row: '选中这行', - show: '查看', - sort: '排序', - undo: '撤销', - unselect: '反选', - expand: '展开', - close: '关闭', - open_menu: '打开菜单', - close_menu: '关闭菜单', - update: '更新', - move_up: '上移', - move_down: '下移', - open: '打开', - toggle_theme: '切换主题', - }, - boolean: { - true: '是', - false: '否', - null: ' ', - }, - page: { - create: '新建 %{name}', - dashboard: '概览', - edit: '%{name} #%{id}', - error: '出现错误', - list: '%{name} 列表', - loading: '加载中', - not_found: '未发现', - show: '%{name} #%{id}', - empty: '无 %{name} ', - invite: '要增加吗?', - }, - input: { - file: { - upload_several: '将文件集合拖拽到这里, 或点击这里选择文件集合.', - upload_single: '将文件拖拽到这里, 或点击这里选择文件.', - }, - image: { - upload_several: '将图片文件集合拖拽到这里, 或点击这里选择图片文件集合.', - upload_single: '将图片文件拖拽到这里, 或点击这里选择图片文件.', - }, - references: { - all_missing: '未找到参考数据.', - many_missing: '至少有一条参考数据不再可用.', - single_missing: '关联的参考数据不再可用.', - }, - password: { - toggle_visible: '隐藏密码', - toggle_hidden: '显示密码', - }, - }, - message: { - about: '关于', - are_you_sure: '您确定操作?', - bulk_delete_title: '删除 %{name} |||| 删除 %{smart_count}项 %{name} ', - bulk_delete_content: - '您确定要删除 %{name}? |||| 您确定要删除 %{smart_count} 项?', - bulk_update_content: - '你确定要更新 %{name}? |||| 你确定想更新 %{smart_count} 项?', - bulk_update_title: '更新 %{name} |||| 您确定更新 %{smart_count} %{name}', - delete_content: '您确定要删除该条目?', - delete_title: '删除 %{name} #%{id}', - details: '详情', - error: '客户端错误导致请求未完成.', - invalid_form: '表单输入无效. 请检查错误提示', - loading: '正在加载页面, 请稍候', - no: '否', - not_found: '您输入了错误的URL或者错误的链接.', - yes: '是', - unsaved_changes: '修改未保存. 放弃修改吗?', - }, - navigation: { - no_results: '结果为空', - no_more_results: '页码 %{page} 超出边界. 试试上一页.', - page_out_of_boundaries: '页码 %{page} 超出边界', - page_out_from_end: '已到最末页', - page_out_from_begin: '已到最前页', - page_range_info: '%{offsetBegin}-%{offsetEnd} / %{total}', - partial_page_range_info: - '%{offsetBegin}-%{offsetEnd} of more than %{offsetEnd}', - current_page: '页码 %{page}', - page: '跳转到 %{page}', - prev: '向前', - first: '第一页', - last: '最后一页', - next: '向后', - previous: '先前第一页', - page_rows_per_page: '每页行数:', - skip_nav: '跳到内容', - }, - sort: { - sort_by: '按 %{field} %{order}', - ASC: '升序', - DESC: '降序', - }, - auth: { - auth_check_error: '请登录以继续', - user_menu: '设置', - username: '用户名', - password: '密码', - sign_in: '登录', - sign_in_error: '验证失败, 请重试', - logout: '退出', - }, - notification: { - updated: '条目已更新 |||| %{smart_count} 项条目已更新', - created: '条目已新建', - deleted: '条目已删除 |||| %{smart_count} 项条目已删除', - bad_item: '不正确的条目', - item_doesnt_exist: '条目不存在', - http_error: '与服务通信出错', - canceled: '取消动作', - data_provider_error: 'dataProvider错误. 请检查console的详细信息.', - i18n_error: '无法加载指定语言包', - logged_out: '会话失效, 请重连.', - not_authorized: '您无权访问此资源.', - }, - validation: { - required: '必填', - minLength: '必须不少于 %{min} 个字符', - maxLength: '必须不多于 %{max} 个字符', - minValue: '必须不小于 %{min}', - maxValue: '必须不大于 %{max}', - number: '必须为数字', - email: '必须是有效的邮箱', - oneOf: '必须为: %{options}其中一项', - regex: '必须符合指定的格式 (regexp): %{pattern}', - }, - saved_queries: { - label: '保存查询', - query_name: '搜索名称', - new_label: '保存当前的查询...', - new_dialog_title: '将当前查询另存为', - remove_label: '删除保存的查询', - remove_label_with_name: '删除查询 "%{name}"', - remove_dialog_title: '是否删除保存的查询?', - remove_message: '确实要从保存的查询列表中删除该项吗?', - help: '筛选列表并保存此查询以备将来使用', - }, - }, -}; diff --git a/server/admin-old/app/ra/i18n/custom.ts b/server/admin-old/app/ra/i18n/custom.ts deleted file mode 100644 index 43ec957229d..00000000000 --- a/server/admin-old/app/ra/i18n/custom.ts +++ /dev/null @@ -1,157 +0,0 @@ -export const englishCustom = { - custom: { - common: { - summary: 'Summary', - panel: 'Panel', - name: 'Name', - permission: 'Permission', - confirmTitle: 'Are you sure you want to perform this operation?', - confirmContent: 'This action cannot be undone', - errorOccurred: 'some errors occurred', - operateSuccess: 'Operate Success', - operateFailed: 'Operate Failed', - upload: 'Upload', - delete: 'Delete', - }, - menu: { - network: 'Tailchat Network', - socket: 'Socket.IO TCP', - system: 'System Config', - }, - dashboard: { - welcomeTitle: 'Welcome to Tailchat Admin', - welcomeDesc: - 'Tailchat is a completely open source instant messaging application', - welcomeHomepage: 'Visit the official website', - welcomeSourcecode: 'Browse the source code', - userCount: 'User Count', - tempUserCount: 'Temp User Count', - messageCount: 'Message Count', - groupCount: 'Group Count', - fileCount: 'File Count', - }, - users: { - search: 'Search nickname or email', - resetPassword: 'Reset Password', - resetPasswordTip: - 'After resetting the password, the password becomes: 123456789, please change the password in time', - }, - messages: { - search: 'Search Message Content', - searchConverseId: 'Search Converse ID', - }, - groups: { - noAvatar: 'No Avatar', - 'panels.name': 'Panel Name', - 'panels.type': 'Panel Type', - 'panels.provider': 'Panel Provider', - 'panels.pluginPanelName': 'Panel Name', - 'panels.meta': 'Panel Meta', - 'panels.parentId': 'Panel Parent', - textPanel: 'Text Panel', - groupPanel: 'Panel Group', - pluginPanel: 'Plugin Panel', - }, - network: { - nodeList: 'Node List', - id: 'ID', - hostname: 'Host Name', - cpuUsage: 'CPU Usage', - ipList: 'IP List', - sdkVersion: 'SDK Version', - serviceList: 'Service List', - actionList: 'Action List', - eventList: 'Event List', - }, - socketio: { - tip1: 'The server URL is:', - tip2: 'The account password is the account password of Tailchat Admin', - tip3: 'NOTICE: please check "Advanced options" then select "websocket only" and "MessagePack parser"', - btn: 'Open the Admin platform', - }, - config: { - uploadFileLimit: 'Upload file limit (Byte)', - emailVerification: 'Mandatory Email Verification', - serverName: 'Server Name', - serverEntryImage: 'Server Entry Page Image', - }, - }, -}; - -export const chineseCustom = { - custom: { - common: { - summary: '概述', - panel: '面板', - name: '名称', - permission: '权限', - confirmTitle: '确认要进行该操作么?', - confirmContent: '该操作不可撤回', - errorOccurred: '发生了一些错误', - operateSuccess: '操作成功', - operateFailed: '操作失败', - upload: '上传', - delete: '删除', - }, - menu: { - network: 'Tailchat 网络', - socket: 'Socket.IO 长链接', - system: '系统设置', - }, - dashboard: { - welcomeTitle: '欢迎使用 Tailchat 后台管理程序', - welcomeDesc: 'Tailchat 是一个完全开源的即时通讯应用', - welcomeHomepage: '访问官网', - welcomeSourcecode: '浏览源码', - userCount: '用户数', - tempUserCount: '临时用户数', - messageCount: '总消息数', - groupCount: '总群组数', - fileCount: '总文件数', - }, - users: { - search: '搜索昵称或邮箱', - resetPassword: '重置密码', - resetPasswordTip: '重置密码后密码变为: 123456789, 请及时修改密码', - }, - messages: { - search: '搜索消息内容', - searchConverseId: '搜索会话ID', - }, - groups: { - noAvatar: '无头像', - 'panels.name': '面板名', - 'panels.type': '面板类型', - 'panels.provider': '面板供应插件', - 'panels.pluginPanelName': '插件面板名', - 'panels.meta': '面板元信息', - 'panels.parentId': '面板父级', - textPanel: '文本频道', - groupPanel: '面板分组', - pluginPanel: '插件面板', - }, - network: { - nodeList: '节点列表', - id: 'ID', - hostname: '主机名', - cpuUsage: 'CPU占用', - ipList: 'IP地址列表', - sdkVersion: 'SDK版本', - serviceList: '服务列表', - actionList: '操作列表', - eventList: '事件列表', - }, - socketio: { - tip1: '服务器URL为:', - tip2: '账号密码为Tailchat后台的账号密码', - tip3: '注意: 请打开 "Advanced options" 并选中 "websocket only" 与 "MessagePack parser"', - btn: '打开管理平台', - }, - config: { - uploadFileLimit: '上传文件限制(Byte)', - emailVerification: '邮箱强制验证', - serverName: '服务器名', - serverEntryImage: '服务器登录图', - }, - }, -}; diff --git a/server/admin-old/app/ra/i18n/index.ts b/server/admin-old/app/ra/i18n/index.ts deleted file mode 100644 index 3bbfcdd719c..00000000000 --- a/server/admin-old/app/ra/i18n/index.ts +++ /dev/null @@ -1,37 +0,0 @@ -import type { TranslationMessages } from 'react-admin'; -import _merge from 'lodash/merge'; -import defaultEnglishMessages from 'ra-language-english'; -import polyglotI18nProvider from 'ra-i18n-polyglot'; -import { chineseResources, englishResources } from './resources'; -import { chineseCustom, englishCustom } from './custom'; -import { defaultChineseMessages } from './builtin'; - -const chineseMessages: TranslationMessages = _merge( - {}, - defaultEnglishMessages, - defaultChineseMessages, - chineseResources, - chineseCustom -); - -const englishMessages = _merge( - {}, - defaultEnglishMessages, - englishResources, - englishCustom -); - -export const i18nProvider = polyglotI18nProvider( - (locale: string) => { - if (locale === 'ch') { - return chineseMessages; - } else { - return englishMessages; - } - }, - 'en', - [ - { locale: 'en', name: 'English' }, - { locale: 'ch', name: '简体中文' }, - ] -); diff --git a/server/admin-old/app/ra/i18n/resources.ts b/server/admin-old/app/ra/i18n/resources.ts deleted file mode 100644 index 000f6cc48c5..00000000000 --- a/server/admin-old/app/ra/i18n/resources.ts +++ /dev/null @@ -1,123 +0,0 @@ -export const englishResources = { - resources: { - users: { - name: 'User', - fields: { - id: 'ID', - email: 'Email', - avatar: 'Avatar', - username: 'Username', - password: 'Password', - nickname: 'Nick Name', - discriminator: 'Discriminator', - temporary: 'is Template User', - type: 'User Type', - settings: 'User Settings', - createdAt: 'Create Time', - }, - }, - messages: { - name: 'Messages', - fields: { - content: 'Content', - author: 'Author', - groupId: 'Group ID', - converseId: 'Converse ID', - hasRecall: 'Recall', - reactions: 'Reactions', - createdAt: 'Create Time', - }, - }, - groups: { - name: 'Group', - fields: { - id: 'Group ID', - name: 'Group Name', - avatar: 'Avatar', - owner: 'Owner', - members: 'Member List', - 'members.length': 'Member count', - 'panels.length': 'Panel count', - roles: 'Roles', - config: 'Config', - panels: 'Group Panels', - fallbackPermissions: 'Default Permission', - createdAt: 'Create Time', - updatedAt: 'Update Time', - }, - }, - file: { - name: 'File', - fields: { - objectName: 'Object Name', - url: 'Path', - size: 'Size', - 'metaData.content-type': 'Type', - userId: 'Storage User', - createdAt: 'Create Time', - }, - }, - }, -}; - -export const chineseResources = { - resources: { - users: { - name: '用户管理', - fields: { - id: '用户ID', - email: '邮箱', - avatar: '头像', - username: '用户名', - password: '密码', - nickname: '昵称', - discriminator: '标识符', - temporary: '是否游客', - type: '用户类型', - settings: '用户设置', - createdAt: '创建时间', - }, - }, - messages: { - name: '消息管理', - fields: { - content: '内容', - author: '作者', - groupId: '群组ID', - converseId: '会话ID', - hasRecall: '撤回', - reactions: '消息反应', - createdAt: '创建时间', - }, - }, - groups: { - name: '群组管理', - fields: { - id: '群组ID', - name: '群组名称', - avatar: '头像', - owner: '管理员', - members: '成员列表', - 'members.length': '成员数量', - 'panels.length': '面板数量', - roles: '角色', - config: '配置信息', - panels: '群组面板', - fallbackPermissions: '默认权限', - createdAt: '创建时间', - updatedAt: '更新时间', - }, - }, - file: { - name: '文件管理', - fields: { - objectName: '对象存储名', - url: '文件路径', - size: '文件大小', - 'metaData.content-type': '文件类型', - userId: '存储用户', - createdAt: '创建时间', - }, - }, - }, -}; diff --git a/server/admin-old/app/ra/layout/Menu.tsx b/server/admin-old/app/ra/layout/Menu.tsx deleted file mode 100644 index 1a286ad57aa..00000000000 --- a/server/admin-old/app/ra/layout/Menu.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import React from 'react'; -import { - Menu, - MenuProps, - ResourceMenuItem, - useResourceDefinitions, - useTranslate, -} from 'react-admin'; -import FilterDramaIcon from '@mui/icons-material/FilterDrama'; -import LinkIcon from '@mui/icons-material/Link'; -import SettingsIcon from '@mui/icons-material/Settings'; - -export const TailchatMenu: React.FC = React.memo((props) => { - const resources = useResourceDefinitions(); - const translate = useTranslate(); - - return ( - - - - {...Object.keys(resources) - .filter((name) => resources[name].hasList) - .map((name) => )} - - } - /> - - } - /> - - } - /> - - ); -}); -TailchatMenu.displayName = 'TailchatMenu'; diff --git a/server/admin-old/app/ra/layout/index.tsx b/server/admin-old/app/ra/layout/index.tsx deleted file mode 100644 index 1cefc4bdfcf..00000000000 --- a/server/admin-old/app/ra/layout/index.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import type { LayoutComponent } from 'react-admin'; -import { Layout } from 'react-admin'; -import { TailchatMenu } from './Menu'; - -export const TailchatLayout: LayoutComponent = (props) => ( - -); diff --git a/server/admin-old/app/ra/request.ts b/server/admin-old/app/ra/request.ts deleted file mode 100644 index b7390826f11..00000000000 --- a/server/admin-old/app/ra/request.ts +++ /dev/null @@ -1,46 +0,0 @@ -import axios from 'axios'; -import { authStorageKey } from './authProvider'; -import _set from 'lodash/set'; -import { fetchUtils } from 'react-admin'; - -/** - * 创建请求实例 - */ -function createRequest() { - const ins = axios.create({ - baseURL: '/admin/api', - }); - - ins.interceptors.request.use(async (val) => { - try { - const { token } = JSON.parse( - window.localStorage.getItem(authStorageKey) ?? '{}' - ); - _set(val, ['headers', 'Authorization'], `Bearer ${token}`); - - return val; - } catch (err) { - throw err; - } - }); - - return ins; -} - -export const request = createRequest(); - -export const httpClient: typeof fetchUtils.fetchJson = (url, options = {}) => { - try { - if (!options.headers) { - options.headers = new Headers({ Accept: 'application/json' }); - } - const { token } = JSON.parse( - window.localStorage.getItem(authStorageKey) ?? '{}' - ); - (options.headers as Headers).set('Authorization', `Bearer ${token}`); - - return fetchUtils.fetchJson(url, options); - } catch (err) { - return Promise.reject(); - } -}; diff --git a/server/admin-old/app/ra/resources/chat.tsx b/server/admin-old/app/ra/resources/chat.tsx deleted file mode 100644 index 8bd90fd72e4..00000000000 --- a/server/admin-old/app/ra/resources/chat.tsx +++ /dev/null @@ -1,77 +0,0 @@ -import { - BooleanField, - Datagrid, - DateField, - List, - TextField, - SearchInput, - useTranslate, - BulkDeleteButton, - ShowButton, - ReferenceInput, - SelectInput, - Show, - SimpleShowLayout, - ReferenceField, -} from 'react-admin'; -import { GroupField } from '../components/GroupField'; -import { PostListActionToolbar } from '../components/PostListActionToolbar'; -import { UserField } from '../components/UserField'; - -export const MessageList: React.FC = () => { - const translate = useTranslate(); - - return ( - , - - - , - , - ]} - > - } - > - - - - - - - - - - - - - - ); -}; -MessageList.displayName = 'MessageList'; - -export const MessageShow: React.FC = () => ( - - - - - - - - - - - - -); -MessageShow.displayName = 'MessageShow'; diff --git a/server/admin-old/app/ra/resources/file.tsx b/server/admin-old/app/ra/resources/file.tsx deleted file mode 100644 index 84ede1a61e4..00000000000 --- a/server/admin-old/app/ra/resources/file.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { Datagrid, DateField, List, TextField, UrlField } from 'react-admin'; -import { FilesizeField } from '../components/FilesizeField'; -import { UserField } from '../components/UserField'; - -export const FileList: React.FC = () => ( - - - - - - - - - - - -); diff --git a/server/admin-old/app/ra/resources/group.tsx b/server/admin-old/app/ra/resources/group.tsx deleted file mode 100644 index c57bfd248ba..00000000000 --- a/server/admin-old/app/ra/resources/group.tsx +++ /dev/null @@ -1,139 +0,0 @@ -import { - Datagrid, - DateField, - List, - TextField, - ShowButton, - SearchInput, - ArrayField, - SingleFieldList, - ChipField, - Show, - SelectField, - TabbedShowLayout, - ImageField, - useTranslate, -} from 'react-admin'; -import { Box } from '@mui/material'; -import { UserField } from '../components/UserField'; - -const PostListActionToolbar = ({ children, ...props }) => ( - {children} -); - -export const GroupList: React.FC = () => ( - ]}> - - - - - - - - - - - - - - - - - - -); -GroupList.displayName = 'GroupList'; - -export const GroupShow: React.FC = () => { - const translate = useTranslate(); - - return ( - - - - - - - - - - - - - - - {/* 面板 */} - - - - - - - - - - - - - - - {/* 身份组 */} - - - - - - - - - - {/* 成员列表 */} - - - - - - - - - - - ); -}; -GroupShow.displayName = 'GroupShow'; diff --git a/server/admin-old/app/ra/resources/user.tsx b/server/admin-old/app/ra/resources/user.tsx deleted file mode 100644 index 54c35f454ea..00000000000 --- a/server/admin-old/app/ra/resources/user.tsx +++ /dev/null @@ -1,132 +0,0 @@ -import { - BooleanField, - Datagrid, - DateField, - EmailField, - List, - TextField, - ShowButton, - SearchInput, - ImageField, - Show, - SimpleShowLayout, - TopToolbar, - useUpdate, - useShowContext, - useTranslate, - EditButton, - Edit, - SimpleForm, - TextInput, - Labeled, -} from 'react-admin'; -import { DangerButton } from '../components/DangerButton'; -import { ButtonWithConfirm } from '../components/ButtonWithConfirm'; -import { PostListActionToolbar } from '../components/PostListActionToolbar'; - -export const UserList: React.FC = () => { - const translate = useTranslate(); - - return ( - , - ]} - > - - - - - - - - - - - - - - - - - ); -}; -UserList.displayName = 'UserList'; - -const UserShowActions: React.FC = () => { - const [update] = useUpdate(); - const { record, refetch, resource } = useShowContext(); - const translate = useTranslate(); - - return ( - - - - { - await update(resource, { - id: record.id, - data: { - password: - '$2a$10$eSebpg0CEvsbDC7j1NxB2epMUkYwKhfT8vGdPQYkfeXYMqM8HjnpW', // 123456789 - }, - }); - await refetch(); - }} - /> - - ); -}; -UserShowActions.displayName = 'UserShowActions'; - -export const UserShow: React.FC = () => ( - }> - - - - - - - - - - - - -); -UserShow.displayName = 'UserShow'; - -export const UserEdit: React.FC = () => { - const translate = useTranslate(); - - return ( - - - - - - - - - - - - - - - - - ); -}; -UserEdit.displayName = 'UserEdit'; diff --git a/server/admin-old/app/ra/routes/network/index.tsx b/server/admin-old/app/ra/routes/network/index.tsx deleted file mode 100644 index e7090c461a7..00000000000 --- a/server/admin-old/app/ra/routes/network/index.tsx +++ /dev/null @@ -1,98 +0,0 @@ -import React from 'react'; -import { request } from '../../request'; -import { useRequest } from 'ahooks'; -import { - CircularProgress, - Table, - TableBody, - TableCell, - TableHead, - TableRow, - Typography, - Box, -} from '@mui/material'; -import _uniq from 'lodash/uniq'; -import { ChipItems } from '../../components/ChipItems'; -import { useTranslate } from 'react-admin'; - -/** - * Tailchat 网络状态 - */ -export const TailchatNetwork: React.FC = React.memo(() => { - const translate = useTranslate(); - const { data, loading } = useRequest(async () => { - const { data } = await request('/network/all'); - - return data; - }); - - if (loading) { - return ; - } - - return ( - - - {translate('custom.network.nodeList')} - - - - - {translate('custom.network.id')} - {translate('custom.network.hostname')} - {translate('custom.network.cpuUsage')} - {translate('custom.network.ipList')} - {translate('custom.network.sdkVersion')} - - - - {(data.nodes ?? []).map((row) => ( - - - {row.id} - {row.local && (*)} - - {row.hostname} - {row.cpu}% - - - - {row.client.version} - - ))} - -
- - - {translate('custom.network.serviceList')} - - - (data.services ?? [])} /> - - - - {translate('custom.network.actionList')} - - - (data.actions ?? [])} /> - - - - {translate('custom.network.eventList')} - - - (data.events ?? [])} /> - -
- ); -}); -TailchatNetwork.displayName = 'TailchatNetwork'; diff --git a/server/admin-old/app/ra/routes/socketio.tsx b/server/admin-old/app/ra/routes/socketio.tsx deleted file mode 100644 index 90185950d05..00000000000 --- a/server/admin-old/app/ra/routes/socketio.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import React from 'react'; -import { useTranslate } from 'react-admin'; -import { Typography, CardActions, Button, Box } from '@mui/material'; -import { Card, CardContent } from '@mui/material'; - -/** - * SocketIO 管理 - */ -export const SocketIOAdmin: React.FC = React.memo(() => { - const translate = useTranslate(); - const protocol = window.location.protocol === 'https:' ? 'wss' : 'ws'; - - return ( - - - - - {translate('custom.socketio.tip1')}{' '} - - {protocol}://{window.location.host} - - - - {translate('custom.socketio.tip2')} - - - {translate('custom.socketio.tip3')} - - - - - - - - ); -}); -SocketIOAdmin.displayName = 'SocketIOAdmin'; diff --git a/server/admin-old/app/ra/routes/system/index.tsx b/server/admin-old/app/ra/routes/system/index.tsx deleted file mode 100644 index 999f9c91ab8..00000000000 --- a/server/admin-old/app/ra/routes/system/index.tsx +++ /dev/null @@ -1,205 +0,0 @@ -import React, { PropsWithChildren } from 'react'; -import { request } from '../../request'; -import { useRequest } from 'ahooks'; -import { CircularProgress, Box, Grid, Input, Button } from '@mui/material'; -import { useTranslate, useNotify } from 'react-admin'; -import DoneIcon from '@mui/icons-material/Done'; -import ClearIcon from '@mui/icons-material/Clear'; -import { useEditValue } from '../../utils/hooks'; -import { Image } from '../../components/Image'; -import LoadingButton from '@mui/lab/LoadingButton'; -import DeleteIcon from '@mui/icons-material/Delete'; - -const SystemItem: React.FC< - PropsWithChildren<{ - label: string; - }> -> = React.memo((props) => { - return ( - - - {props.label}: - - - {props.children} - - - ); -}); -SystemItem.displayName = 'SystemItem'; - -/** - * Tailchat 系统设置 - */ -export const SystemConfig: React.FC = React.memo(() => { - const translate = useTranslate(); - const notify = useNotify(); - const { - data: config, - loading, - error, - refresh, - } = useRequest(async () => { - const { data } = await request.get('/config/client'); - - return data.config ?? {}; - }); - - const [serverName, setServerName, saveServerName] = useEditValue( - config?.serverName, - async (val) => { - if (val === config?.serverName) { - return; - } - - try { - await request.patch('/config/client', { - key: 'serverName', - value: val, - }); - refresh(); - notify('custom.common.operateSuccess', { - type: 'info', - }); - } catch (err) { - notify('custom.common.operateFailed', { - type: 'info', - }); - } - } - ); - - const { - loading: loadingServerEntryImage, - run: handleChangeServerEntryImage, - } = useRequest( - async (file: File | null) => { - try { - if (file) { - const formdata = new FormData(); - formdata.append('file', file); - - const { data } = await request.put('/file/upload', formdata, { - headers: { - 'Content-Type': 'multipart/form-data', - }, - }); - - const fileInfo = data.files[0]; - - if (!fileInfo) { - throw new Error('not get file'); - } - - const url = fileInfo.url; - await request.patch('/config/client', { - key: 'serverEntryImage', - value: url, - }); - refresh(); - } else { - // delete - await request.patch('/config/client', { - key: 'serverEntryImage', - value: '', - }); - refresh(); - } - - notify('custom.common.operateSuccess', { - type: 'info', - }); - } catch (err) { - console.log(err); - notify('custom.common.operateFailed', { - type: 'info', - }); - } - }, - { - manual: true, - } - ); - - if (loading) { - return ; - } - - if (error) { - return
{translate('custom.common.errorOccurred')}
; - } - - return ( - - - {config.uploadFileLimit} - - - - {config.emailVerification ? ( - - ) : ( - - )} - - - - setServerName(e.target.value)} - onBlur={() => saveServerName()} - placeholder="Tailchat" - /> - - - -
- - {translate('custom.common.upload')} - { - const file = e.target.files[0]; - if (file) { - handleChangeServerEntryImage(file); - } - }} - /> - - - {config?.serverEntryImage && ( -
-
- -
- - -
- )} -
-
-
- ); -}); -SystemConfig.displayName = 'SystemConfig'; diff --git a/server/admin-old/app/ra/theme.ts b/server/admin-old/app/ra/theme.ts deleted file mode 100644 index 78c4e9e31fb..00000000000 --- a/server/admin-old/app/ra/theme.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { defaultTheme } from 'react-admin'; -import type { ThemeOptions } from '@mui/material'; - -const customRaComponents = { - RaDatagrid: { - styleOverrides: { - root: { - '& .RaDatagrid-headerCell': { - whiteSpace: 'nowrap', - }, - }, - }, - }, -}; - -export const theme: ThemeOptions = { - ...defaultTheme, - components: { - ...defaultTheme.components, - ...customRaComponents, - }, -}; diff --git a/server/admin-old/app/ra/utils/hooks.ts b/server/admin-old/app/ra/utils/hooks.ts deleted file mode 100644 index 6363ba3b2ec..00000000000 --- a/server/admin-old/app/ra/utils/hooks.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { useCallback, useLayoutEffect, useState } from 'react'; - -export function useEditValue(value: T, onChange: (val: T) => void) { - const [inner, setInner] = useState(value); - - useLayoutEffect(() => { - setInner(value); - }, [value]); - - const onSave = useCallback(() => { - onChange(inner); - }, [inner, onChange]); - - return [inner, setInner, onSave] as const; -} diff --git a/server/admin-old/app/ra/utils/index.ts b/server/admin-old/app/ra/utils/index.ts deleted file mode 100644 index bfb26b3780e..00000000000 --- a/server/admin-old/app/ra/utils/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * parse url, and replace some constants with variable - * @param originUrl 原始Url - * @returns 解析后的url - */ -export function parseUrlStr(originUrl: string): string { - return String(originUrl).replace( - '{BACKEND}', - process.env.NODE_ENV === 'development' - ? 'http://localhost:11000' - : window.location.origin - ); -} diff --git a/server/admin-old/app/root.tsx b/server/admin-old/app/root.tsx deleted file mode 100644 index 28219bbb152..00000000000 --- a/server/admin-old/app/root.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import type { MetaFunction } from '@remix-run/node'; -import { - Links, - LiveReload, - Meta, - Outlet, - Scripts, - ScrollRestoration, -} from '@remix-run/react'; - -export const meta: MetaFunction = () => ({ - charset: 'utf-8', - title: 'Tailchat Admin', - viewport: 'width=device-width,initial-scale=1', -}); - -export default function App() { - return ( - - - - - - - - - - - - - ); -} diff --git a/server/admin-old/app/routes/admin/$.tsx b/server/admin-old/app/routes/admin/$.tsx deleted file mode 100644 index 6a7549aefd8..00000000000 --- a/server/admin-old/app/routes/admin/$.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { App } from '../../ra/App'; -import styles from '../../styles/app.css'; - -export function links() { - return [{ rel: 'stylesheet', href: styles }]; -} - -export default App; diff --git a/server/admin-old/app/routes/admin/index.tsx b/server/admin-old/app/routes/admin/index.tsx deleted file mode 100644 index 6a7549aefd8..00000000000 --- a/server/admin-old/app/routes/admin/index.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { App } from '../../ra/App'; -import styles from '../../styles/app.css'; - -export function links() { - return [{ rel: 'stylesheet', href: styles }]; -} - -export default App; diff --git a/server/admin-old/app/routes/index.tsx b/server/admin-old/app/routes/index.tsx deleted file mode 100644 index f630a786248..00000000000 --- a/server/admin-old/app/routes/index.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import React from 'react'; - -export default function Index() { - // eslint-disable-next-line react/no-unescaped-entities - return
Please visit '/admin/'
; -} diff --git a/server/admin-old/app/server/broker.ts b/server/admin-old/app/server/broker.ts deleted file mode 100644 index 33e94e8906c..00000000000 --- a/server/admin-old/app/server/broker.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { TcBroker, SYSTEM_USERID } from 'tailchat-server-sdk'; -import brokerConfig from '../../moleculer.config'; - -const transporter = process.env.TRANSPORTER; -export const broker = new TcBroker({ - ...brokerConfig, - metrics: false, - logger: false, - transporter, -}); - -broker.start().then(() => { - console.log('Linked to Tailchat network, TRANSPORTER: ', transporter); -}); - -export function callBrokerAction( - actionName: string, - params: any, - opts?: Record -): Promise { - return broker.call(actionName, params, { - ...opts, - meta: { - ...opts?.meta, - userId: SYSTEM_USERID, - }, - }); -} diff --git a/server/admin-old/app/server/index.ts b/server/admin-old/app/server/index.ts deleted file mode 100644 index ee9dc17ca8b..00000000000 --- a/server/admin-old/app/server/index.ts +++ /dev/null @@ -1,88 +0,0 @@ -import path from 'path'; -import express from 'express'; -import compression from 'compression'; -import morgan from 'morgan'; -import { createRequestHandler } from '@remix-run/express'; -import mongoose from 'mongoose'; -import bodyParser from 'body-parser'; -import { apiRouter } from './router/api'; - -if (!process.env.MONGO_URL) { - console.error('Require env: MONGO_URL'); - process.exit(1); -} - -// 链接数据库 -mongoose.connect(process.env.MONGO_URL, (error: any) => { - if (!error) { - return console.info('Datebase connected'); - } - console.error('Datebase connect error', error); -}); - -const BUILD_DIR = path.join(process.cwd(), 'build'); - -const app = express(); - -app.use(compression()); -app.use(bodyParser()); - -// http://expressjs.com/en/advanced/best-practice-security.html#at-a-minimum-disable-x-powered-by-header -app.disable('x-powered-by'); - -// Remix fingerprints its assets so we can cache forever. -app.use( - '/build', - express.static('public/build', { immutable: true, maxAge: '1y' }) -); - -// Everything else (like favicon.ico) is cached for an hour. You may want to be -// more aggressive with this caching. -app.use(express.static('public', { maxAge: '1h' })); - -app.use(morgan('tiny')); - -app.use('/admin/api', apiRouter); - -app.all( - '/admin/*', - process.env.NODE_ENV === 'development' - ? (req, res, next) => { - purgeRequireCache(); - - return createRequestHandler({ - build: require(BUILD_DIR), - mode: process.env.NODE_ENV, - })(req, res, next); - } - : createRequestHandler({ - build: require(BUILD_DIR), - mode: process.env.NODE_ENV, - }) -); - -app.use((err, req, res, next) => { - res.status(500); - res.json({ error: err.message }); -}); - -const port = process.env.ADMIN_PORT || 3000; - -app.listen(port, () => { - console.log( - `Express server listening on port ${port}, visit with: http://localhost:${port}/admin/` - ); -}); - -function purgeRequireCache() { - // purge require cache on requests for "server side HMR" this won't let - // you have in-memory objects between requests in development, - // alternatively you can set up nodemon/pm2-dev to restart the server on - // file changes, but then you'll have to reconnect to databases/etc on each - // change. We prefer the DX of this, so we've included it for you by default - for (const key in require.cache) { - if (key.startsWith(BUILD_DIR)) { - delete require.cache[key]; - } - } -} diff --git a/server/admin-old/app/server/middleware/auth.ts b/server/admin-old/app/server/middleware/auth.ts deleted file mode 100644 index ee157f7032a..00000000000 --- a/server/admin-old/app/server/middleware/auth.ts +++ /dev/null @@ -1,39 +0,0 @@ -import type { NextFunction, Request, Response } from 'express'; -import jwt from 'jsonwebtoken'; -import md5 from 'md5'; - -export const adminAuth = { - username: process.env.ADMIN_USER, - password: process.env.ADMIN_PASS, -}; - -export const authSecret = - (process.env.SECRET || 'tailchat') + md5(JSON.stringify(adminAuth)); // 增加一个md5的盐值确保SECRET没有设置的情况下只修改了用户名密码也不会被人伪造token秘钥 - -export function auth() { - return (req: Request, res: Response, next: NextFunction) => { - try { - const authorization = req.headers.authorization; - if (!authorization) { - res.status(401).end('not found authorization in headers'); - return; - } - - const token = authorization.slice('Bearer '.length); - - const payload = jwt.verify(token, authSecret); - if (typeof payload === 'string') { - res.status(401).end('payload type error'); - return; - } - if (payload.platform !== 'admin') { - res.status(401).end('Payload invalid'); - return; - } - - next(); - } catch (err) { - res.status(401).end(String(err)); - } - }; -} diff --git a/server/admin-old/app/server/router/api.ts b/server/admin-old/app/server/router/api.ts deleted file mode 100644 index 685a1281327..00000000000 --- a/server/admin-old/app/server/router/api.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { Router } from 'express'; -import raExpressMongoose from 'express-mongoose-ra-json-server'; -import jwt from 'jsonwebtoken'; -import { callBrokerAction } from '../broker'; -import { adminAuth, auth, authSecret } from '../middleware/auth'; -import { configRouter } from './config'; -import { networkRouter } from './network'; -import { fileRouter } from './file'; - -const router = Router(); - -router.post('/login', (req, res) => { - if (!adminAuth.username || !adminAuth.password) { - res.status(401).end('Server not set env: ADMIN_USER, ADMIN_PASS'); - return; - } - - const { username, password } = req.body; - - if (username === adminAuth.username && password === adminAuth.password) { - // 用户名和密码都正确,返回token - const token = jwt.sign( - { - username, - platform: 'admin', - }, - authSecret, - { - expiresIn: '2h', - } - ); - - res.json({ - username, - token: token, - expiredAt: new Date().valueOf() + 2 * 60 * 60 * 1000, - }); - } else { - res.status(401).end('username or password incorrect'); - } -}); - -router.use('/network', networkRouter); -router.use('/config', configRouter); -router.use('/file', fileRouter); - -router.use( - '/users', - auth(), - raExpressMongoose(require('../../../../models/user/user').default, { - q: ['nickname', 'email'], - }) -); -router.delete('/messages/:id', auth(), async (req, res) => { - try { - const messageId = req.params.id; - await callBrokerAction('chat.message.deleteMessage', { - messageId, - }); - - res.json({ id: messageId }); - } catch (err) { - console.error(err); - res.status(500).json({ message: err.message }); - } -}); -router.use( - '/messages', - auth(), - raExpressMongoose(require('../../../../models/chat/message').default, { - q: ['content'], - allowedRegexFields: ['content'], - }) -); -router.use( - '/groups', - auth(), - raExpressMongoose(require('../../../../models/group/group').default, { - q: ['name'], - }) -); -router.use( - '/file', - auth(), - raExpressMongoose(require('../../../../models/file').default, { - q: ['objectName'], - }) -); - -export { router as apiRouter }; diff --git a/server/admin-old/app/server/router/config.ts b/server/admin-old/app/server/router/config.ts deleted file mode 100644 index 134bc0a7a2f..00000000000 --- a/server/admin-old/app/server/router/config.ts +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Network 相关接口 - */ - -import { Router } from 'express'; -import { broker } from '../broker'; -import { auth } from '../middleware/auth'; - -const router = Router(); - -router.get('/client', auth(), async (req, res, next) => { - try { - const config = await broker.call('config.client'); - - res.json({ - config, - }); - } catch (err) { - next(err); - } -}); - -router.patch('/client', auth(), async (req, res, next) => { - try { - await broker.call('config.setClientConfig', { - key: req.body.key, - value: req.body.value, - }); - - res.json({ - success: true, - }); - } catch (err) { - next(err); - } -}); - -export { router as configRouter }; diff --git a/server/admin-old/app/server/router/file.ts b/server/admin-old/app/server/router/file.ts deleted file mode 100644 index 8f97abc6171..00000000000 --- a/server/admin-old/app/server/router/file.ts +++ /dev/null @@ -1,60 +0,0 @@ -/** - * Network 相关接口 - */ - -import { Router } from 'express'; -import { callBrokerAction } from '../broker'; -import { auth } from '../middleware/auth'; -import Busboy from '@fastify/busboy'; - -const router = Router(); - -router.put('/upload', auth(), async (req, res) => { - const busboy = new Busboy({ headers: req.headers as any }); - - const promises = []; - busboy.on('file', (fieldname, file, filename, encoding, mimetype) => { - promises.push( - callBrokerAction('file.save', file, { - filename: filename, - }) - .then((data) => { - console.log(data); - return data; - }) - .catch((err) => { - file.resume(); // Drain file stream to continue processing form - busboy.emit('error', err); - return err; - }) - ); - }); - - busboy.on('finish', async () => { - /* istanbul ignore next */ - if (promises.length == 0) { - res.status(500).json('File missing in the request'); - return; - } - - try { - const files = await Promise.all(promises); - - res.json({ files }); - } catch (err) { - console.error(err); - res.status(500).json(String(err)); - } - }); - - busboy.on('error', (err) => { - console.error(err); - req.unpipe(busboy); - req.resume(); - res.status(500).json({ err }); - }); - - req.pipe(busboy); -}); - -export { router as fileRouter }; diff --git a/server/admin-old/app/server/router/network.ts b/server/admin-old/app/server/router/network.ts deleted file mode 100644 index 50bcde8bc09..00000000000 --- a/server/admin-old/app/server/router/network.ts +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Network 相关接口 - */ - -import { Router } from 'express'; -import { broker } from '../broker'; -import { auth } from '../middleware/auth'; -import _ from 'lodash'; - -const router = Router(); - -router.get('/all', auth(), async (req, res) => { - res.json({ - nodes: Array.from(new Map(broker.registry.nodes.nodes).values()).map( - (item) => - _.pick(item, [ - 'id', - 'available', - 'local', - 'ipList', - 'hostname', - 'cpu', - 'client', - ]) - ), - events: broker.registry.events.events.map((item) => item.name), - services: broker.registry.services.services.map((item) => item.name), - actions: Array.from(new Map(broker.registry.actions.actions).keys()), - }); -}); - -router.get('/ping', auth(), async (req, res) => { - const pong = await broker.ping(); - res.json(pong); -}); - -export { router as networkRouter }; diff --git a/server/admin-old/app/styles/app.css b/server/admin-old/app/styles/app.css deleted file mode 100644 index 6e8a07af540..00000000000 --- a/server/admin-old/app/styles/app.css +++ /dev/null @@ -1,3 +0,0 @@ -html, body { - margin: 0; -} diff --git a/server/admin-old/nodemon.json b/server/admin-old/nodemon.json deleted file mode 100644 index 14db8cb297b..00000000000 --- a/server/admin-old/nodemon.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "verbose": true, - "watch": ["./server.ts", "./app/server/*"], - "ext": "ts", - "delay": 1000, - "exec": "ts-node ./server.ts" -} diff --git a/server/admin-old/package.json b/server/admin-old/package.json deleted file mode 100644 index d12935f89ea..00000000000 --- a/server/admin-old/package.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "name": "tailchat-admin-old", - "private": true, - "sideEffects": false, - "scripts": { - "dev": "remix build && run-p \"dev:*\"", - "dev:node": "cross-env NODE_ENV=development nodemon", - "dev:remix": "remix watch", - "start": "cd dist/admin && cross-env NODE_ENV=production node ./server.js", - "build": "rm -rf ./dist && remix build && tsc --noEmit false && mv ./build ./dist/admin/ && cp -r ./public ./dist/admin/", - "typecheck": "tsc -b" - }, - "dependencies": { - "@fastify/busboy": "^1.1.0", - "@mui/icons-material": "^5.11.0", - "@mui/lab": "5.0.0-alpha.122", - "@mui/material": "^5.11.3", - "@remix-run/express": "^1.9.0", - "@remix-run/node": "^1.9.0", - "@remix-run/react": "^1.9.0", - "@types/md5": "^2.3.2", - "ahooks": "^3.7.4", - "axios": "^1.2.2", - "body-parser": "^1.20.1", - "compression": "^1.7.4", - "express": "^4.18.2", - "express-mongoose-ra-json-server": "^0.1.0", - "filesize": "^8.0.7", - "isbot": "^3.6.5", - "jsonwebtoken": "^8.5.1", - "lodash": "^4.17.21", - "md5": "^2.3.0", - "morgan": "^1.10.0", - "ra-data-json-server": "^4.7.0", - "ra-i18n-polyglot": "^4.7.0", - "ra-language-english": "^4.7.0", - "react": "^18.2.0", - "react-admin": "^4.7.0", - "react-dom": "^18.2.0", - "react-router-dom": "^6.5.0", - "tailchat-server-sdk": "workspace:^0.0.14", - "ts-node": "^10.9.1" - }, - "devDependencies": { - "@remix-run/dev": "^1.9.0", - "@types/compression": "^1.7.2", - "@types/express": "^4.17.15", - "@types/morgan": "^1.9.4", - "@types/react": "^18.0.25", - "@types/react-dom": "^18.0.8", - "cross-env": "^7.0.3", - "dotenv": "^16.0.3", - "nodemon": "^2.0.20", - "npm-run-all": "^4.1.5", - "typescript": "^4.8.4" - }, - "engines": { - "node": ">=14" - } -} diff --git a/server/admin-old/public/favicon.ico b/server/admin-old/public/favicon.ico deleted file mode 100644 index 94ac22cf74ef859b685b6effa33378e6d3d30a33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17550 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 Z{|_*4^gS$y$m{?B002ovPDHLkV1iLr?mYki diff --git a/server/admin-old/remix.config.js b/server/admin-old/remix.config.js deleted file mode 100644 index e3811341c97..00000000000 --- a/server/admin-old/remix.config.js +++ /dev/null @@ -1,8 +0,0 @@ -/** @type {import('@remix-run/dev').AppConfig} */ -module.exports = { - ignoredRouteFiles: ['**/.*'], - // appDirectory: "app", - assetsBuildDirectory: 'public/admin', - serverBuildPath: 'build/index.js', - publicPath: '/admin/', -}; diff --git a/server/admin-old/remix.env.d.ts b/server/admin-old/remix.env.d.ts deleted file mode 100644 index dcf8c45e1d4..00000000000 --- a/server/admin-old/remix.env.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -/// -/// diff --git a/server/admin-old/server.ts b/server/admin-old/server.ts deleted file mode 100644 index 65642526018..00000000000 --- a/server/admin-old/server.ts +++ /dev/null @@ -1,5 +0,0 @@ -import path from 'path'; -import dotenv from 'dotenv'; -dotenv.config({ path: path.resolve(__dirname, '../.env') }); - -import('./app/server'); diff --git a/server/admin-old/test/docker-compose.yml b/server/admin-old/test/docker-compose.yml deleted file mode 100644 index ad2b311b671..00000000000 --- a/server/admin-old/test/docker-compose.yml +++ /dev/null @@ -1,26 +0,0 @@ -version: "3.3" - -services: - # 后台应用 - tailchat-admin: - image: tailchat - restart: unless-stopped - env_file: ../../../docker-compose.env - environment: - ADMIN_PASS: tailchat - depends_on: - - mongo - - redis - ports: - - 13000:3000 - command: pnpm start:admin - - # Database - mongo: - image: mongo:4 - restart: on-failure - - # Data cache and Transporter - redis: - image: redis:alpine - restart: on-failure diff --git a/server/admin-old/tsconfig.json b/server/admin-old/tsconfig.json deleted file mode 100644 index f22bfbed293..00000000000 --- a/server/admin-old/tsconfig.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "extends": "../tsconfig.json", - "include": ["remix.env.d.ts", "./**/*.ts", "./**/*.tsx", "../models/**/*.ts"], - "exclude": ["node_modules/**/*", "dist"], - "compilerOptions": { - "lib": ["DOM", "DOM.Iterable", "ES2019"], - "rootDirs": ["./", "../"], - "outDir": "dist", - "skipLibCheck": true, - "isolatedModules": true, - "esModuleInterop": true, - "moduleResolution": "node", - "resolveJsonModule": true, - "target": "ES2019", - "allowJs": true, - "forceConsistentCasingInFileNames": true, - "importsNotUsedAsValues": "error", - "experimentalDecorators": true, - "jsx": "react-jsx", - "noEmit": true, - "baseUrl": "." - } -} diff --git a/website/docs/deployment/admin.md b/website/docs/deployment/admin.md index f629caa3cd6..70e36f2c098 100644 --- a/website/docs/deployment/admin.md +++ b/website/docs/deployment/admin.md @@ -38,9 +38,5 @@ https://tailchat.example.com/admin/
About the deprecated legacy admin - Old version admin-old has been deprecated, if you still wanna use old version, you can use follow command to use it: - - ```jsx - curl -L "https://raw.githubusercontent.com/msgbyte/tailchat/master/docker/admin-old.yml" -o admin.yml - ``` + admin-old will be remove in v1.8.6. you can checkout version before to get it
diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deployment/admin.md b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deployment/admin.md index 0da2f7c6660..6c7efbcd533 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deployment/admin.md +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deployment/admin.md @@ -36,9 +36,6 @@ https://tailchat.example.com/admin/
关于弃用的旧版admin - 旧版本 admin-old 已被弃用,如果你依旧期望使用旧版本,可以使用以下命令来替换上面的命令: + 旧版本 admin-old 将于v1.8.6版本被移除,如果你依旧期望使用旧版本,可以切换到之前的版本获取 - ```jsx - curl -L "https://raw.githubusercontent.com/msgbyte/tailchat/master/docker/admin-old.yml" -o admin.yml - ```