From 844268309ecc7f20af51e8db85cfbdc48fe1e360 Mon Sep 17 00:00:00 2001 From: Vlad Date: Tue, 28 Jan 2025 13:31:48 +0200 Subject: [PATCH 01/12] chat-widget (added) --- chat-widget/.gitignore | 24 + chat-widget/README.md | 50 + chat-widget/components.json | 21 + chat-widget/eslint.config.js | 28 + chat-widget/index.html | 13 + chat-widget/package-lock.json | 7995 +++++++++++++++++ chat-widget/package.json | 75 + chat-widget/public/vite.svg | 1 + chat-widget/src/App.css | 36 + chat-widget/src/App.tsx | 65 + chat-widget/src/assets/group-chat.jpg | Bin 0 -> 101256 bytes chat-widget/src/assets/logo.png | Bin 0 -> 53157 bytes chat-widget/src/assets/notification_sound.mp3 | Bin 0 -> 45836 bytes chat-widget/src/assets/react.svg | 1 + chat-widget/src/assets/screenshot.png | Bin 0 -> 472061 bytes chat-widget/src/components/Home/Home.scss | 5 + chat-widget/src/components/Home/Home.tsx | 30 + .../Home/Main/ChatHeader/ChatHeader.scss | 67 + .../Home/Main/ChatHeader/ChatHeader.tsx | 130 + .../Home/Main/ChatInfo/ChatInfo.scss | 140 + .../Home/Main/ChatInfo/ChatInfo.tsx | 128 + .../ChatInfo/GroupMember/GroupMember.scss | 30 + .../Main/ChatInfo/GroupMember/GroupMember.tsx | 70 + .../src/components/Home/Main/Main.scss | 156 + chat-widget/src/components/Home/Main/Main.tsx | 190 + .../components/Home/Main/Message/Message.scss | 189 + .../components/Home/Main/Message/Message.tsx | 118 + .../Home/Sidebar/ChatItem/ChatItem.scss | 87 + .../Home/Sidebar/ChatItem/ChatItem.tsx | 77 + .../Home/Sidebar/ChatPhoto/ChatPhoto.tsx | 28 + .../Home/Sidebar/ChatsList/ChatsList.scss | 0 .../Home/Sidebar/ChatsList/ChatsList.tsx | 26 + .../CreateGroupChat/CreateGroupChat.scss | 37 + .../CreateGroupChat/CreateGroupChat.tsx | 68 + .../Participant/Participant.scss | 10 + .../Participant/Participant.tsx | 33 + .../Home/Sidebar/NewChat/NewChatDialog.tsx | 185 + .../NewChat/SearchedUser/SearchedUser.scss | 49 + .../NewChat/SearchedUser/SearchedUser.tsx | 74 + .../src/components/Home/Sidebar/Sidebar.scss | 260 + .../src/components/Home/Sidebar/Sidebar.tsx | 116 + chat-widget/src/components/Login/Login.scss | 71 + chat-widget/src/components/Login/Login.tsx | 84 + chat-widget/src/components/Shared/Avatar.tsx | 28 + .../components/Shared/ConfirmationAlert.tsx | 42 + chat-widget/src/components/Shared/Loader.scss | 17 + chat-widget/src/components/Shared/Loader.tsx | 8 + chat-widget/src/components/SignUp/SignUp.scss | 71 + chat-widget/src/components/SignUp/SignUp.tsx | 109 + .../src/components/shadcn-ui/alert-dialog.tsx | 139 + .../src/components/shadcn-ui/avatar.tsx | 48 + .../src/components/shadcn-ui/button.tsx | 57 + .../src/components/shadcn-ui/dialog.tsx | 120 + .../components/shadcn-ui/dropdown-menu.tsx | 199 + .../src/components/shadcn-ui/input.tsx | 22 + .../src/components/shadcn-ui/label.tsx | 24 + chat-widget/src/connectycube.ts | 78 + chat-widget/src/index.css | 131 + chat-widget/src/index.ts | 1 + chat-widget/src/lib/utils.ts | 6 + chat-widget/src/main.tsx | 21 + chat-widget/src/vite-env.d.ts | 1 + chat-widget/tailwind.config.js | 51 + chat-widget/tsconfig.app.json | 31 + chat-widget/tsconfig.json | 13 + chat-widget/tsconfig.node.json | 29 + chat-widget/vite.config.ts | 52 + 67 files changed, 12065 insertions(+) create mode 100644 chat-widget/.gitignore create mode 100644 chat-widget/README.md create mode 100644 chat-widget/components.json create mode 100644 chat-widget/eslint.config.js create mode 100644 chat-widget/index.html create mode 100644 chat-widget/package-lock.json create mode 100644 chat-widget/package.json create mode 100644 chat-widget/public/vite.svg create mode 100644 chat-widget/src/App.css create mode 100644 chat-widget/src/App.tsx create mode 100644 chat-widget/src/assets/group-chat.jpg create mode 100644 chat-widget/src/assets/logo.png create mode 100644 chat-widget/src/assets/notification_sound.mp3 create mode 100644 chat-widget/src/assets/react.svg create mode 100644 chat-widget/src/assets/screenshot.png create mode 100644 chat-widget/src/components/Home/Home.scss create mode 100644 chat-widget/src/components/Home/Home.tsx create mode 100644 chat-widget/src/components/Home/Main/ChatHeader/ChatHeader.scss create mode 100644 chat-widget/src/components/Home/Main/ChatHeader/ChatHeader.tsx create mode 100644 chat-widget/src/components/Home/Main/ChatInfo/ChatInfo.scss create mode 100644 chat-widget/src/components/Home/Main/ChatInfo/ChatInfo.tsx create mode 100644 chat-widget/src/components/Home/Main/ChatInfo/GroupMember/GroupMember.scss create mode 100644 chat-widget/src/components/Home/Main/ChatInfo/GroupMember/GroupMember.tsx create mode 100644 chat-widget/src/components/Home/Main/Main.scss create mode 100644 chat-widget/src/components/Home/Main/Main.tsx create mode 100644 chat-widget/src/components/Home/Main/Message/Message.scss create mode 100644 chat-widget/src/components/Home/Main/Message/Message.tsx create mode 100644 chat-widget/src/components/Home/Sidebar/ChatItem/ChatItem.scss create mode 100644 chat-widget/src/components/Home/Sidebar/ChatItem/ChatItem.tsx create mode 100644 chat-widget/src/components/Home/Sidebar/ChatPhoto/ChatPhoto.tsx create mode 100644 chat-widget/src/components/Home/Sidebar/ChatsList/ChatsList.scss create mode 100644 chat-widget/src/components/Home/Sidebar/ChatsList/ChatsList.tsx create mode 100644 chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/CreateGroupChat.scss create mode 100644 chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/CreateGroupChat.tsx create mode 100644 chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/Participant/Participant.scss create mode 100644 chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/Participant/Participant.tsx create mode 100644 chat-widget/src/components/Home/Sidebar/NewChat/NewChatDialog.tsx create mode 100644 chat-widget/src/components/Home/Sidebar/NewChat/SearchedUser/SearchedUser.scss create mode 100644 chat-widget/src/components/Home/Sidebar/NewChat/SearchedUser/SearchedUser.tsx create mode 100644 chat-widget/src/components/Home/Sidebar/Sidebar.scss create mode 100644 chat-widget/src/components/Home/Sidebar/Sidebar.tsx create mode 100644 chat-widget/src/components/Login/Login.scss create mode 100644 chat-widget/src/components/Login/Login.tsx create mode 100644 chat-widget/src/components/Shared/Avatar.tsx create mode 100644 chat-widget/src/components/Shared/ConfirmationAlert.tsx create mode 100644 chat-widget/src/components/Shared/Loader.scss create mode 100644 chat-widget/src/components/Shared/Loader.tsx create mode 100644 chat-widget/src/components/SignUp/SignUp.scss create mode 100644 chat-widget/src/components/SignUp/SignUp.tsx create mode 100644 chat-widget/src/components/shadcn-ui/alert-dialog.tsx create mode 100644 chat-widget/src/components/shadcn-ui/avatar.tsx create mode 100644 chat-widget/src/components/shadcn-ui/button.tsx create mode 100644 chat-widget/src/components/shadcn-ui/dialog.tsx create mode 100644 chat-widget/src/components/shadcn-ui/dropdown-menu.tsx create mode 100644 chat-widget/src/components/shadcn-ui/input.tsx create mode 100644 chat-widget/src/components/shadcn-ui/label.tsx create mode 100644 chat-widget/src/connectycube.ts create mode 100644 chat-widget/src/index.css create mode 100644 chat-widget/src/index.ts create mode 100644 chat-widget/src/lib/utils.ts create mode 100644 chat-widget/src/main.tsx create mode 100644 chat-widget/src/vite-env.d.ts create mode 100644 chat-widget/tailwind.config.js create mode 100644 chat-widget/tsconfig.app.json create mode 100644 chat-widget/tsconfig.json create mode 100644 chat-widget/tsconfig.node.json create mode 100644 chat-widget/vite.config.ts diff --git a/chat-widget/.gitignore b/chat-widget/.gitignore new file mode 100644 index 00000000..a547bf36 --- /dev/null +++ b/chat-widget/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/chat-widget/README.md b/chat-widget/README.md new file mode 100644 index 00000000..74872fd4 --- /dev/null +++ b/chat-widget/README.md @@ -0,0 +1,50 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: + +- Configure the top-level `parserOptions` property like this: + +```js +export default tseslint.config({ + languageOptions: { + // other options... + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + }, +}) +``` + +- Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked` +- Optionally add `...tseslint.configs.stylisticTypeChecked` +- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config: + +```js +// eslint.config.js +import react from 'eslint-plugin-react' + +export default tseslint.config({ + // Set the react version + settings: { react: { version: '18.3' } }, + plugins: { + // Add the react plugin + react, + }, + rules: { + // other rules... + // Enable its recommended rules + ...react.configs.recommended.rules, + ...react.configs['jsx-runtime'].rules, + }, +}) +``` diff --git a/chat-widget/components.json b/chat-widget/components.json new file mode 100644 index 00000000..2e48eb9a --- /dev/null +++ b/chat-widget/components.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": false, + "tsx": true, + "tailwind": { + "config": "tailwind.config.js", + "css": "src/index.css", + "baseColor": "zinc", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/shadcn-ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "iconLibrary": "lucide" +} \ No newline at end of file diff --git a/chat-widget/eslint.config.js b/chat-widget/eslint.config.js new file mode 100644 index 00000000..092408a9 --- /dev/null +++ b/chat-widget/eslint.config.js @@ -0,0 +1,28 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' +import tseslint from 'typescript-eslint' + +export default tseslint.config( + { ignores: ['dist'] }, + { + extends: [js.configs.recommended, ...tseslint.configs.recommended], + files: ['**/*.{ts,tsx}'], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + }, + plugins: { + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...reactHooks.configs.recommended.rules, + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, + }, +) diff --git a/chat-widget/index.html b/chat-widget/index.html new file mode 100644 index 00000000..e4b78eae --- /dev/null +++ b/chat-widget/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + React + TS + + +
+ + + diff --git a/chat-widget/package-lock.json b/chat-widget/package-lock.json new file mode 100644 index 00000000..9209ef04 --- /dev/null +++ b/chat-widget/package-lock.json @@ -0,0 +1,7995 @@ +{ + "name": "@connectycube/chat-widget", + "version": "0.0.1-2", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@connectycube/chat-widget", + "version": "0.0.1-2", + "dependencies": { + "@connectycube/use-chat": "file:../../use-chat", + "@fingerprintjs/fingerprintjs": "^4.5.1", + "@radix-ui/react-alert-dialog": "^1.1.5", + "@radix-ui/react-avatar": "^1.1.2", + "@radix-ui/react-dialog": "^1.1.5", + "@radix-ui/react-dropdown-menu": "^2.1.5", + "@radix-ui/react-label": "^2.1.1", + "@radix-ui/react-slot": "^1.1.1", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "connectycube": "4.0.2", + "lucide-react": "^0.474.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-hook-form": "^7.54.2", + "react-icons": "^5.4.0", + "react-intersection-observer": "^9.15.1", + "react-router": "^7.1.3", + "react-router-dom": "^7.1.3", + "react-scroll": "^1.9.0" + }, + "devDependencies": { + "@eslint/js": "^9.19.0", + "@tailwindcss/vite": "^4.0.0", + "@types/node": "^22.10.10", + "@types/react": "^18.3.18", + "@types/react-dom": "^18.3.5", + "@types/react-scroll": "^1.8.10", + "@vitejs/plugin-react": "^4.3.4", + "autoprefixer": "^10.4.20", + "eslint": "^9.19.0", + "eslint-plugin-react-hooks": "^5.1.0", + "eslint-plugin-react-refresh": "^0.4.18", + "globals": "^15.14.0", + "postcss": "^8.5.1", + "sass": "^1.83.4", + "tailwind-merge": "^2.6.0", + "tailwindcss": "^4.0.0", + "tailwindcss-animate": "^1.0.7", + "typescript": "~5.7.3", + "typescript-eslint": "^8.21.0", + "vite": "^6.0.11", + "vite-plugin-dts": "^4.5.0", + "vite-plugin-node-polyfills": "^0.23.0" + } + }, + "../../use-chat": { + "name": "@connectycube/use-chat", + "version": "0.1.0", + "dependencies": { + "date-fns": "^4.1.0", + "react-usestateref": "^1.0.9" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "^28.0.2", + "@rollup/plugin-node-resolve": "^16.0.0", + "@rollup/plugin-terser": "^0.4.4", + "@rollup/plugin-typescript": "^12.1.2", + "@types/react": "^19.0.8", + "rollup": "^4.32.0", + "rollup-plugin-peer-deps-external": "^2.2.4", + "tslib": "^2.8.1", + "typescript": "^5.7.3" + }, + "peerDependencies": { + "connectycube": ">=4.0.0", + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "../../use-chat/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "../../use-chat/node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "../../use-chat/node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "../../use-chat/node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "../../use-chat/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "dev": true, + "license": "MIT" + }, + "../../use-chat/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "../../use-chat/node_modules/@rollup/plugin-commonjs": { + "version": "28.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "fdir": "^6.2.0", + "is-reference": "1.2.1", + "magic-string": "^0.30.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=16.0.0 || 14 >= 14.17" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "../../use-chat/node_modules/@rollup/plugin-node-resolve": { + "version": "16.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "../../use-chat/node_modules/@rollup/plugin-terser": { + "version": "0.4.4", + "dev": true, + "license": "MIT", + "dependencies": { + "serialize-javascript": "^6.0.1", + "smob": "^1.0.0", + "terser": "^5.17.4" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "../../use-chat/node_modules/@rollup/plugin-typescript": { + "version": "12.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.1.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.14.0||^3.0.0||^4.0.0", + "tslib": "*", + "typescript": ">=3.7.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + }, + "tslib": { + "optional": true + } + } + }, + "../../use-chat/node_modules/@rollup/pluginutils": { + "version": "5.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "../../use-chat/node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.32.0", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "../../use-chat/node_modules/@types/accepts": { + "version": "1.3.7", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "../../use-chat/node_modules/@types/body-parser": { + "version": "1.19.5", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "../../use-chat/node_modules/@types/connect": { + "version": "3.4.38", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "../../use-chat/node_modules/@types/content-disposition": { + "version": "0.5.8", + "license": "MIT", + "peer": true + }, + "../../use-chat/node_modules/@types/cookies": { + "version": "0.9.0", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/connect": "*", + "@types/express": "*", + "@types/keygrip": "*", + "@types/node": "*" + } + }, + "../../use-chat/node_modules/@types/estree": { + "version": "1.0.6", + "dev": true, + "license": "MIT" + }, + "../../use-chat/node_modules/@types/events": { + "version": "3.0.3", + "license": "MIT", + "peer": true + }, + "../../use-chat/node_modules/@types/express": { + "version": "5.0.0", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^5.0.0", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "../../use-chat/node_modules/@types/express-serve-static-core": { + "version": "5.0.5", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "../../use-chat/node_modules/@types/form-data": { + "version": "2.5.2", + "deprecated": "This is a stub types definition. form-data provides its own type definitions, so you do not need this installed.", + "license": "MIT", + "peer": true, + "dependencies": { + "form-data": "*" + } + }, + "../../use-chat/node_modules/@types/http-assert": { + "version": "1.5.6", + "license": "MIT", + "peer": true + }, + "../../use-chat/node_modules/@types/http-errors": { + "version": "2.0.4", + "license": "MIT", + "peer": true + }, + "../../use-chat/node_modules/@types/keygrip": { + "version": "1.0.6", + "license": "MIT", + "peer": true + }, + "../../use-chat/node_modules/@types/koa": { + "version": "2.15.0", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/accepts": "*", + "@types/content-disposition": "*", + "@types/cookies": "*", + "@types/http-assert": "*", + "@types/http-errors": "*", + "@types/keygrip": "*", + "@types/koa-compose": "*", + "@types/node": "*" + } + }, + "../../use-chat/node_modules/@types/koa-compose": { + "version": "3.2.8", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/koa": "*" + } + }, + "../../use-chat/node_modules/@types/ltx": { + "version": "3.1.0", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/events": "*" + } + }, + "../../use-chat/node_modules/@types/mime": { + "version": "1.3.5", + "license": "MIT", + "peer": true + }, + "../../use-chat/node_modules/@types/node": { + "version": "22.10.9", + "license": "MIT", + "peer": true, + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "../../use-chat/node_modules/@types/node-fetch": { + "version": "2.6.12", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*", + "form-data": "^4.0.0" + } + }, + "../../use-chat/node_modules/@types/qs": { + "version": "6.9.18", + "license": "MIT", + "peer": true + }, + "../../use-chat/node_modules/@types/range-parser": { + "version": "1.2.7", + "license": "MIT", + "peer": true + }, + "../../use-chat/node_modules/@types/react": { + "version": "19.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "../../use-chat/node_modules/@types/resolve": { + "version": "1.20.2", + "dev": true, + "license": "MIT" + }, + "../../use-chat/node_modules/@types/saslmechanisms": { + "version": "0.1.3", + "license": "MIT", + "peer": true + }, + "../../use-chat/node_modules/@types/send": { + "version": "0.17.4", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "../../use-chat/node_modules/@types/serve-static": { + "version": "1.15.7", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "../../use-chat/node_modules/@types/xmpp__client": { + "version": "0.13.3", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/koa-compose": "*", + "@types/xmpp__client-core": "*", + "@types/xmpp__connection": "*", + "@types/xmpp__iq": "*", + "@types/xmpp__middleware": "*", + "@types/xmpp__reconnect": "*", + "@types/xmpp__resource-binding": "*", + "@types/xmpp__sasl": "*", + "@types/xmpp__stream-features": "*", + "@types/xmpp__stream-management": "*" + } + }, + "../../use-chat/node_modules/@types/xmpp__client-core": { + "version": "0.13.3", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/xmpp__connection": "*", + "@types/xmpp__jid": "*", + "@types/xmpp__xml": "*" + } + }, + "../../use-chat/node_modules/@types/xmpp__connection": { + "version": "0.13.3", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/xmpp__error": "*", + "@types/xmpp__events": "*", + "@types/xmpp__jid": "*", + "@types/xmpp__xml": "*" + } + }, + "../../use-chat/node_modules/@types/xmpp__error": { + "version": "0.13.3", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/xmpp__xml": "*" + } + }, + "../../use-chat/node_modules/@types/xmpp__events": { + "version": "0.13.3", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "../../use-chat/node_modules/@types/xmpp__iq": { + "version": "0.13.4", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/koa-compose": "*", + "@types/xmpp__events": "*", + "@types/xmpp__middleware": "*", + "@types/xmpp__xml": "*" + } + }, + "../../use-chat/node_modules/@types/xmpp__jid": { + "version": "1.3.5", + "license": "MIT", + "peer": true + }, + "../../use-chat/node_modules/@types/xmpp__middleware": { + "version": "0.13.3", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/koa-compose": "*", + "@types/xmpp__connection": "*", + "@types/xmpp__error": "*", + "@types/xmpp__jid": "*", + "@types/xmpp__xml": "*" + } + }, + "../../use-chat/node_modules/@types/xmpp__reconnect": { + "version": "0.13.3", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/xmpp__connection": "*", + "@types/xmpp__events": "*" + } + }, + "../../use-chat/node_modules/@types/xmpp__resource-binding": { + "version": "0.13.3", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/xmpp__iq": "*", + "@types/xmpp__middleware": "*", + "@types/xmpp__stream-features": "*", + "@types/xmpp__xml": "*" + } + }, + "../../use-chat/node_modules/@types/xmpp__sasl": { + "version": "0.13.6", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/saslmechanisms": "*", + "@types/xmpp__error": "*", + "@types/xmpp__middleware": "*", + "@types/xmpp__stream-features": "*" + } + }, + "../../use-chat/node_modules/@types/xmpp__stream-features": { + "version": "0.13.3", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/koa": "*", + "@types/koa-compose": "*", + "@types/xmpp__middleware": "*", + "@types/xmpp__xml": "*" + } + }, + "../../use-chat/node_modules/@types/xmpp__stream-management": { + "version": "0.13.3", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/xmpp__middleware": "*", + "@types/xmpp__stream-features": "*" + } + }, + "../../use-chat/node_modules/@types/xmpp__xml": { + "version": "0.13.4", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/ltx": "*" + } + }, + "../../use-chat/node_modules/@xmpp/base64": { + "version": "0.13.2", + "license": "ISC", + "peer": true, + "dependencies": { + "base-64": "^1.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "../../use-chat/node_modules/@xmpp/client-core": { + "version": "0.13.3", + "license": "ISC", + "peer": true, + "dependencies": { + "@xmpp/connection": "^0.13.3", + "@xmpp/jid": "^0.13.2", + "@xmpp/xml": "^0.13.3" + }, + "engines": { + "node": ">= 14" + } + }, + "../../use-chat/node_modules/@xmpp/connection": { + "version": "0.13.3", + "license": "ISC", + "peer": true, + "dependencies": { + "@xmpp/error": "^0.13.2", + "@xmpp/events": "^0.13.2", + "@xmpp/jid": "^0.13.2", + "@xmpp/xml": "^0.13.3" + }, + "engines": { + "node": ">= 14" + } + }, + "../../use-chat/node_modules/@xmpp/error": { + "version": "0.13.2", + "license": "ISC", + "peer": true, + "engines": { + "node": ">= 14" + } + }, + "../../use-chat/node_modules/@xmpp/events": { + "version": "0.13.2", + "license": "ISC", + "peer": true, + "dependencies": { + "events": "^3.3.0" + }, + "engines": { + "node": ">= 14" + } + }, + "../../use-chat/node_modules/@xmpp/id": { + "version": "0.13.2", + "license": "ISC", + "peer": true, + "engines": { + "node": ">= 14" + } + }, + "../../use-chat/node_modules/@xmpp/iq": { + "version": "0.13.3", + "license": "ISC", + "peer": true, + "dependencies": { + "@xmpp/events": "^0.13.2", + "@xmpp/id": "^0.13.2", + "@xmpp/middleware": "^0.13.3", + "@xmpp/xml": "^0.13.3" + }, + "engines": { + "node": ">= 14" + } + }, + "../../use-chat/node_modules/@xmpp/jid": { + "version": "0.13.2", + "license": "ISC", + "peer": true, + "engines": { + "node": ">= 14" + } + }, + "../../use-chat/node_modules/@xmpp/middleware": { + "version": "0.13.3", + "license": "ISC", + "peer": true, + "dependencies": { + "@xmpp/error": "^0.13.2", + "@xmpp/jid": "^0.13.2", + "@xmpp/xml": "^0.13.3", + "koa-compose": "^4.1.0" + }, + "engines": { + "node": ">= 14" + } + }, + "../../use-chat/node_modules/@xmpp/reconnect": { + "version": "0.13.2", + "license": "ISC", + "peer": true, + "dependencies": { + "@xmpp/events": "^0.13.2" + }, + "engines": { + "node": ">= 14" + } + }, + "../../use-chat/node_modules/@xmpp/resolve": { + "version": "0.13.3", + "license": "ISC", + "peer": true, + "dependencies": { + "@xmpp/events": "^0.13.2", + "@xmpp/xml": "^0.13.3", + "node-fetch": "^3.3.2" + }, + "engines": { + "node": ">= 14" + } + }, + "../../use-chat/node_modules/@xmpp/resolve/node_modules/node-fetch": { + "version": "3.3.2", + "license": "MIT", + "peer": true, + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "../../use-chat/node_modules/@xmpp/resource-binding": { + "version": "0.13.3", + "license": "ISC", + "peer": true, + "dependencies": { + "@xmpp/xml": "^0.13.3" + }, + "engines": { + "node": ">= 14" + } + }, + "../../use-chat/node_modules/@xmpp/sasl": { + "version": "0.13.4", + "license": "ISC", + "peer": true, + "dependencies": { + "@xmpp/base64": "^0.13.2", + "@xmpp/error": "^0.13.2", + "@xmpp/xml": "^0.13.3", + "saslmechanisms": "^0.1.1" + }, + "engines": { + "node": ">= 14" + } + }, + "../../use-chat/node_modules/@xmpp/sasl-anonymous": { + "version": "0.13.2", + "license": "ISC", + "peer": true, + "dependencies": { + "sasl-anonymous": "^0.1.0" + }, + "engines": { + "node": ">= 14" + } + }, + "../../use-chat/node_modules/@xmpp/sasl-plain": { + "version": "0.13.2", + "license": "ISC", + "peer": true, + "dependencies": { + "sasl-plain": "^0.1.0" + }, + "engines": { + "node": ">= 14" + } + }, + "../../use-chat/node_modules/@xmpp/session-establishment": { + "version": "0.13.3", + "license": "ISC", + "peer": true, + "dependencies": { + "@xmpp/xml": "^0.13.3" + }, + "engines": { + "node": ">= 14" + } + }, + "../../use-chat/node_modules/@xmpp/stream-features": { + "version": "0.13.2", + "license": "ISC", + "peer": true, + "engines": { + "node": ">= 14" + } + }, + "../../use-chat/node_modules/@xmpp/websocket": { + "version": "0.13.3", + "license": "ISC", + "peer": true, + "dependencies": { + "@xmpp/connection": "^0.13.3", + "@xmpp/xml": "^0.13.3", + "ws": "^8.18.0" + }, + "engines": { + "node": ">= 14" + } + }, + "../../use-chat/node_modules/@xmpp/xml": { + "version": "0.13.3", + "license": "ISC", + "peer": true, + "dependencies": { + "ltx": "^3.1.1" + }, + "engines": { + "node": ">= 14" + } + }, + "../../use-chat/node_modules/acorn": { + "version": "8.14.0", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "../../use-chat/node_modules/asynckit": { + "version": "0.4.0", + "license": "MIT", + "peer": true + }, + "../../use-chat/node_modules/base-64": { + "version": "1.0.0", + "license": "MIT", + "peer": true + }, + "../../use-chat/node_modules/buffer-from": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "../../use-chat/node_modules/combined-stream": { + "version": "1.0.8", + "license": "MIT", + "peer": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "../../use-chat/node_modules/commondir": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "../../use-chat/node_modules/connectycube": { + "version": "4.0.1", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@types/form-data": "^2.5.2", + "@types/node-fetch": "^2.6.12", + "@types/xmpp__client": "^0.13.3", + "@xmpp/client-core": "^0.13.3", + "@xmpp/iq": "^0.13.3", + "@xmpp/middleware": "^0.13.3", + "@xmpp/reconnect": "^0.13.2", + "@xmpp/resolve": "^0.13.3", + "@xmpp/resource-binding": "^0.13.3", + "@xmpp/sasl": "^0.13.4", + "@xmpp/sasl-anonymous": "^0.13.2", + "@xmpp/sasl-plain": "^0.13.2", + "@xmpp/session-establishment": "^0.13.3", + "@xmpp/stream-features": "^0.13.2", + "@xmpp/websocket": "^0.13.3", + "eventemitter3": "^5.0.1", + "form-data": "4.0.1", + "node-fetch": "2.7.0" + } + }, + "../../use-chat/node_modules/csstype": { + "version": "3.1.3", + "dev": true, + "license": "MIT" + }, + "../../use-chat/node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 12" + } + }, + "../../use-chat/node_modules/date-fns": { + "version": "4.1.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "../../use-chat/node_modules/deepmerge": { + "version": "4.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "../../use-chat/node_modules/delayed-stream": { + "version": "1.0.0", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.4.0" + } + }, + "../../use-chat/node_modules/estree-walker": { + "version": "2.0.2", + "dev": true, + "license": "MIT" + }, + "../../use-chat/node_modules/eventemitter3": { + "version": "5.0.1", + "license": "MIT", + "peer": true + }, + "../../use-chat/node_modules/events": { + "version": "3.3.0", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.8.x" + } + }, + "../../use-chat/node_modules/fdir": { + "version": "6.4.3", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "../../use-chat/node_modules/fetch-blob": { + "version": "3.2.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "../../use-chat/node_modules/form-data": { + "version": "4.0.1", + "license": "MIT", + "peer": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "../../use-chat/node_modules/formdata-polyfill": { + "version": "4.0.10", + "license": "MIT", + "peer": true, + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "../../use-chat/node_modules/fsevents": { + "version": "2.3.3", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "../../use-chat/node_modules/function-bind": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../../use-chat/node_modules/hasown": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "../../use-chat/node_modules/is-core-module": { + "version": "2.16.1", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../../use-chat/node_modules/is-module": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "../../use-chat/node_modules/is-reference": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "../../use-chat/node_modules/koa-compose": { + "version": "4.1.0", + "license": "MIT", + "peer": true + }, + "../../use-chat/node_modules/ltx": { + "version": "3.1.2", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 12.4.0" + } + }, + "../../use-chat/node_modules/magic-string": { + "version": "0.30.17", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "../../use-chat/node_modules/mime-db": { + "version": "1.52.0", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "../../use-chat/node_modules/mime-types": { + "version": "2.1.35", + "license": "MIT", + "peer": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "../../use-chat/node_modules/node-domexception": { + "version": "1.0.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10.5.0" + } + }, + "../../use-chat/node_modules/node-fetch": { + "version": "2.7.0", + "license": "MIT", + "peer": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "../../use-chat/node_modules/path-parse": { + "version": "1.0.7", + "dev": true, + "license": "MIT" + }, + "../../use-chat/node_modules/picomatch": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "../../use-chat/node_modules/randombytes": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "../../use-chat/node_modules/react": { + "version": "19.0.0", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "../../use-chat/node_modules/react-dom": { + "version": "19.0.0", + "license": "MIT", + "peer": true, + "dependencies": { + "scheduler": "^0.25.0" + }, + "peerDependencies": { + "react": "^19.0.0" + } + }, + "../../use-chat/node_modules/react-usestateref": { + "version": "1.0.9", + "license": "ISC", + "peerDependencies": { + "react": ">16.0.0" + } + }, + "../../use-chat/node_modules/resolve": { + "version": "1.22.10", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../../use-chat/node_modules/rollup": { + "version": "4.32.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.32.0", + "@rollup/rollup-android-arm64": "4.32.0", + "@rollup/rollup-darwin-arm64": "4.32.0", + "@rollup/rollup-darwin-x64": "4.32.0", + "@rollup/rollup-freebsd-arm64": "4.32.0", + "@rollup/rollup-freebsd-x64": "4.32.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.32.0", + "@rollup/rollup-linux-arm-musleabihf": "4.32.0", + "@rollup/rollup-linux-arm64-gnu": "4.32.0", + "@rollup/rollup-linux-arm64-musl": "4.32.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.32.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.32.0", + "@rollup/rollup-linux-riscv64-gnu": "4.32.0", + "@rollup/rollup-linux-s390x-gnu": "4.32.0", + "@rollup/rollup-linux-x64-gnu": "4.32.0", + "@rollup/rollup-linux-x64-musl": "4.32.0", + "@rollup/rollup-win32-arm64-msvc": "4.32.0", + "@rollup/rollup-win32-ia32-msvc": "4.32.0", + "@rollup/rollup-win32-x64-msvc": "4.32.0", + "fsevents": "~2.3.2" + } + }, + "../../use-chat/node_modules/rollup-plugin-peer-deps-external": { + "version": "2.2.4", + "dev": true, + "license": "MIT", + "peerDependencies": { + "rollup": "*" + } + }, + "../../use-chat/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "../../use-chat/node_modules/sasl-anonymous": { + "version": "0.1.0", + "peer": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "../../use-chat/node_modules/sasl-plain": { + "version": "0.1.0", + "peer": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "../../use-chat/node_modules/saslmechanisms": { + "version": "0.1.1", + "peer": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "../../use-chat/node_modules/scheduler": { + "version": "0.25.0", + "license": "MIT", + "peer": true + }, + "../../use-chat/node_modules/serialize-javascript": { + "version": "6.0.2", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "../../use-chat/node_modules/smob": { + "version": "1.5.0", + "dev": true, + "license": "MIT" + }, + "../../use-chat/node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "../../use-chat/node_modules/source-map-support": { + "version": "0.5.21", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "../../use-chat/node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../../use-chat/node_modules/terser": { + "version": "5.37.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "../../use-chat/node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "dev": true, + "license": "MIT" + }, + "../../use-chat/node_modules/tr46": { + "version": "0.0.3", + "license": "MIT", + "peer": true + }, + "../../use-chat/node_modules/tslib": { + "version": "2.8.1", + "dev": true, + "license": "0BSD" + }, + "../../use-chat/node_modules/typescript": { + "version": "5.7.3", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "../../use-chat/node_modules/undici-types": { + "version": "6.20.0", + "license": "MIT", + "peer": true + }, + "../../use-chat/node_modules/web-streams-polyfill": { + "version": "3.3.3", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 8" + } + }, + "../../use-chat/node_modules/webidl-conversions": { + "version": "3.0.1", + "license": "BSD-2-Clause", + "peer": true + }, + "../../use-chat/node_modules/whatwg-url": { + "version": "5.0.0", + "license": "MIT", + "peer": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "../../use-chat/node_modules/ws": { + "version": "8.18.0", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.7", + "@babel/parser": "^7.26.7", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.26.7", + "@babel/types": "^7.26.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.5", + "@babel/types": "^7.26.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.26.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.26.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.25.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.25.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.26.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/parser": "^7.26.7", + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.26.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@connectycube/use-chat": { + "resolved": "../../use-chat", + "link": true + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.24.2", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.19.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.5", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.10.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.19.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.5", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.5", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.10.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@fingerprintjs/fingerprintjs": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@fingerprintjs/fingerprintjs/-/fingerprintjs-4.5.1.tgz", + "integrity": "sha512-hKJaRoLHNeUUPhb+Md3pTlY/Js2YR4aXjroaDHpxrjoM8kGnEFyZVZxXo6l3gRyKnQN52Uoqsycd3M73eCdMzw==", + "license": "BUSL-1.1", + "dependencies": { + "tslib": "^2.4.1" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.9", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.13", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.2", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.9", + "license": "MIT" + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@microsoft/api-extractor": { + "version": "7.49.1", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.49.1.tgz", + "integrity": "sha512-jRTR/XbQF2kb+dYn8hfYSicOGA99+Fo00GrsdMwdfE3eIgLtKdH6Qa2M3wZV9S2XmbgCaGX1OdPtYctbfu5jQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@microsoft/api-extractor-model": "7.30.2", + "@microsoft/tsdoc": "~0.15.1", + "@microsoft/tsdoc-config": "~0.17.1", + "@rushstack/node-core-library": "5.10.2", + "@rushstack/rig-package": "0.5.3", + "@rushstack/terminal": "0.14.5", + "@rushstack/ts-command-line": "4.23.3", + "lodash": "~4.17.15", + "minimatch": "~3.0.3", + "resolve": "~1.22.1", + "semver": "~7.5.4", + "source-map": "~0.6.1", + "typescript": "5.7.2" + }, + "bin": { + "api-extractor": "bin/api-extractor" + } + }, + "node_modules/@microsoft/api-extractor-model": { + "version": "7.30.2", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.30.2.tgz", + "integrity": "sha512-3/t2F+WhkJgBzSNwlkTIL0tBgUoBqDqL66pT+nh2mPbM0NIDGVGtpqbGWPgHIzn/mn7kGS/Ep8D8po58e8UUIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@microsoft/tsdoc": "~0.15.1", + "@microsoft/tsdoc-config": "~0.17.1", + "@rushstack/node-core-library": "5.10.2" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/typescript": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/@microsoft/tsdoc": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.1.tgz", + "integrity": "sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@microsoft/tsdoc-config": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.17.1.tgz", + "integrity": "sha512-UtjIFe0C6oYgTnad4q1QP4qXwLhe6tIpNTRStJ2RZEPIkqQPREAwE5spzVxsdn9UaEMUqhh0AqSx3X4nWAKXWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@microsoft/tsdoc": "0.15.1", + "ajv": "~8.12.0", + "jju": "~1.4.0", + "resolve": "~1.22.2" + } + }, + "node_modules/@microsoft/tsdoc-config/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@microsoft/tsdoc-config/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.5.1", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.1", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/@radix-ui/react-alert-dialog": { + "version": "1.1.5", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dialog": "1.1.5", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-avatar": { + "version": "1.1.2", + "license": "MIT", + "dependencies": { + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.1", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.1", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.5", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.4", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.0", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.4", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.5", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-menu": "2.1.5", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.1", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label": { + "version": "2.1.1", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.1.5", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-collection": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.4", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.1", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-roving-focus": "1.1.1", + "@radix-ui/react-slot": "1.1.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.1", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-rect": "1.1.0", + "@radix-ui/react-use-size": "1.1.0", + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.3", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.2", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-collection": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.0", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.0", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/@rollup/plugin-inject": { + "version": "5.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.32.0", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rushstack/node-core-library": { + "version": "5.10.2", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.10.2.tgz", + "integrity": "sha512-xOF/2gVJZTfjTxbo4BDj9RtQq/HFnrrKdtem4JkyRLnwsRz2UDTg8gA1/et10fBx5RxmZD9bYVGST69W8ME5OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "~8.13.0", + "ajv-draft-04": "~1.0.0", + "ajv-formats": "~3.0.1", + "fs-extra": "~7.0.1", + "import-lazy": "~4.0.0", + "jju": "~1.4.0", + "resolve": "~1.22.1", + "semver": "~7.5.4" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/node-core-library/node_modules/ajv": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", + "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@rushstack/node-core-library/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rushstack/node-core-library/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/@rushstack/rig-package": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.5.3.tgz", + "integrity": "sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve": "~1.22.1", + "strip-json-comments": "~3.1.1" + } + }, + "node_modules/@rushstack/terminal": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.14.5.tgz", + "integrity": "sha512-TEOpNwwmsZVrkp0omnuTUTGZRJKTr6n6m4OITiNjkqzLAkcazVpwR1SOtBg6uzpkIBLgrcNHETqI8rbw3uiUfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rushstack/node-core-library": "5.10.2", + "supports-color": "~8.1.1" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/terminal/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/@rushstack/ts-command-line": { + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.23.3.tgz", + "integrity": "sha512-HazKL8fv4HMQMzrKJCrOrhyBPPdzk7iajUXgsASwjQ8ROo1cmgyqxt/k9+SdmrNLGE1zATgRqMUH3s/6smbRMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rushstack/terminal": "0.14.5", + "@types/argparse": "1.0.38", + "argparse": "~1.0.9", + "string-argv": "~0.3.1" + } + }, + "node_modules/@rushstack/ts-command-line/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@tailwindcss/node": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.0.tgz", + "integrity": "sha512-tfG2uBvo6j6kDIPmntxwXggCOZAt7SkpAXJ6pTIYirNdk5FBqh/CZZ9BZPpgcl/tNFLs6zc4yghM76sqiELG9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "enhanced-resolve": "^5.18.0", + "jiti": "^2.4.2", + "tailwindcss": "4.0.0" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.0.tgz", + "integrity": "sha512-W3FjpJgy4VV1JiL7iBYDf2n/WkeDg1Il+0Q7eWnqPyvkPPCo/Mbwc5BiaT7dfBNV6tQKAhVE34rU5xl8pSl50w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.0.0", + "@tailwindcss/oxide-darwin-arm64": "4.0.0", + "@tailwindcss/oxide-darwin-x64": "4.0.0", + "@tailwindcss/oxide-freebsd-x64": "4.0.0", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.0", + "@tailwindcss/oxide-linux-arm64-gnu": "4.0.0", + "@tailwindcss/oxide-linux-arm64-musl": "4.0.0", + "@tailwindcss/oxide-linux-x64-gnu": "4.0.0", + "@tailwindcss/oxide-linux-x64-musl": "4.0.0", + "@tailwindcss/oxide-win32-arm64-msvc": "4.0.0", + "@tailwindcss/oxide-win32-x64-msvc": "4.0.0" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.0.tgz", + "integrity": "sha512-EAhjU0+FIdyGPR+7MbBWubLLPtmOu+p7c2egTTFBRk/n//zYjNvVK0WhcBK5Y7oUB5mo4EjA2mCbY7dcEMWSRw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.0.tgz", + "integrity": "sha512-hdz4xnSWS11cIp+7ye+3dGHqs0X33z+BXXTtgPOguDWVa+TdXUzwxonklSzf5wlJFuot3dv5eWzhlNai0oYYQg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.0.tgz", + "integrity": "sha512-+dOUUaXTkPKKhtUI9QtVaYg+MpmLh2CN0dHohiYXaBirEyPMkjaT0zbRgzQlNnQWjCVVXPQluIEb0OMEjSTH+Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.0.tgz", + "integrity": "sha512-CJhGDhxnrmu4SwyC62fA+wP24MhA/TZlIhRHqg1kRuIHoGoVR2uSSm1qxTxU37tSSZj8Up0q6jsBJCAP4k7rgQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.0.tgz", + "integrity": "sha512-Wy7Av0xzXfY2ujZBcYy4+7GQm25/J1iHvlQU2CfwdDCuPWfIjYzR6kggz+uVdSJyKV2s64znchBxRE8kV4uXSA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.0.tgz", + "integrity": "sha512-srwBo2l6pvM0swBntc1ucuhGsfFOLkqPRFQ3dWARRTfSkL1U9nAsob2MKc/n47Eva/W9pZZgMOuf7rDw8pK1Ew==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.0.tgz", + "integrity": "sha512-abhusswkduYWuezkBmgo0K0/erGq3M4Se5xP0fhc/0dKs0X/rJUYYCFWntHb3IGh3aVzdQ0SXJs93P76DbUqtw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.0.tgz", + "integrity": "sha512-hGtRYIUEx377/HlU49+jvVKKwU1MDSKYSMMs0JFO2Wp7LGxk5+0j5+RBk9NFnmp/lbp32yPTgIOO5m1BmDq36A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.0.tgz", + "integrity": "sha512-7xgQgSAThs0I14VAgmxpJnK6XFSZBxHMGoDXkLyYkEnu+8WRQMbCP93dkCUn2PIv+Q+JulRgc00PJ09uORSLXQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.0.tgz", + "integrity": "sha512-qEcgTIPcWY5ZE7f6VxQ/JPrSFMcehzVIlZj7sGE3mVd5YWreAT+Fl1vSP8q2pjnWXn0avZG3Iw7a2hJQAm+fTQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.0.tgz", + "integrity": "sha512-bqT0AY8RXb8GMDy28JtngvqaOSB2YixbLPLvUo6I6lkvvUwA6Eqh2Tj60e2Lh7O/k083f8tYiB0WEK4wmTI7Jg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.0.0.tgz", + "integrity": "sha512-4uukMiU9gHui8KMPMdWic5SP1O/tmQ1NFSRNrQWmcop5evAVl/LZ6/LuWL3quEiecp2RBcRWwqJrG+mFXlRlew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "^4.0.0", + "@tailwindcss/oxide": "^4.0.0", + "lightningcss": "^1.29.1", + "tailwindcss": "4.0.0" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6" + } + }, + "node_modules/@types/accepts": { + "version": "1.3.7", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/argparse": { + "version": "1.0.38", + "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz", + "integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/content-disposition": { + "version": "0.5.8", + "license": "MIT" + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "license": "MIT" + }, + "node_modules/@types/cookies": { + "version": "0.9.0", + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/express": "*", + "@types/keygrip": "*", + "@types/node": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/events": { + "version": "3.0.3", + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^5.0.0", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "5.0.5", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/form-data": { + "version": "2.5.2", + "deprecated": "This is a stub types definition. form-data provides its own type definitions, so you do not need this installed.", + "license": "MIT", + "dependencies": { + "form-data": "*" + } + }, + "node_modules/@types/http-assert": { + "version": "1.5.6", + "license": "MIT" + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/keygrip": { + "version": "1.0.6", + "license": "MIT" + }, + "node_modules/@types/koa": { + "version": "2.15.0", + "license": "MIT", + "dependencies": { + "@types/accepts": "*", + "@types/content-disposition": "*", + "@types/cookies": "*", + "@types/http-assert": "*", + "@types/http-errors": "*", + "@types/keygrip": "*", + "@types/koa-compose": "*", + "@types/node": "*" + } + }, + "node_modules/@types/koa-compose": { + "version": "3.2.8", + "license": "MIT", + "dependencies": { + "@types/koa": "*" + } + }, + "node_modules/@types/ltx": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "@types/events": "*" + } + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.10.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.10.tgz", + "integrity": "sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/node-fetch": { + "version": "2.6.12", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "form-data": "^4.0.0" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.14", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.9.18", + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.18", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.5", + "devOptional": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, + "node_modules/@types/react-scroll": { + "version": "1.8.10", + "resolved": "https://registry.npmjs.org/@types/react-scroll/-/react-scroll-1.8.10.tgz", + "integrity": "sha512-RD4Z7grbdNGOKwKnUBKar6zNxqaW3n8m9QSrfvljW+gmkj1GArb8AFBomVr6xMOgHPD3v1uV3BrIf01py57daQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/saslmechanisms": { + "version": "0.1.3", + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/xmpp__client": { + "version": "0.13.3", + "license": "MIT", + "dependencies": { + "@types/koa-compose": "*", + "@types/xmpp__client-core": "*", + "@types/xmpp__connection": "*", + "@types/xmpp__iq": "*", + "@types/xmpp__middleware": "*", + "@types/xmpp__reconnect": "*", + "@types/xmpp__resource-binding": "*", + "@types/xmpp__sasl": "*", + "@types/xmpp__stream-features": "*", + "@types/xmpp__stream-management": "*" + } + }, + "node_modules/@types/xmpp__client-core": { + "version": "0.13.3", + "license": "MIT", + "dependencies": { + "@types/xmpp__connection": "*", + "@types/xmpp__jid": "*", + "@types/xmpp__xml": "*" + } + }, + "node_modules/@types/xmpp__connection": { + "version": "0.13.3", + "license": "MIT", + "dependencies": { + "@types/xmpp__error": "*", + "@types/xmpp__events": "*", + "@types/xmpp__jid": "*", + "@types/xmpp__xml": "*" + } + }, + "node_modules/@types/xmpp__error": { + "version": "0.13.3", + "license": "MIT", + "dependencies": { + "@types/xmpp__xml": "*" + } + }, + "node_modules/@types/xmpp__events": { + "version": "0.13.3", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/xmpp__iq": { + "version": "0.13.4", + "license": "MIT", + "dependencies": { + "@types/koa-compose": "*", + "@types/xmpp__events": "*", + "@types/xmpp__middleware": "*", + "@types/xmpp__xml": "*" + } + }, + "node_modules/@types/xmpp__jid": { + "version": "1.3.5", + "license": "MIT" + }, + "node_modules/@types/xmpp__middleware": { + "version": "0.13.3", + "license": "MIT", + "dependencies": { + "@types/koa-compose": "*", + "@types/xmpp__connection": "*", + "@types/xmpp__error": "*", + "@types/xmpp__jid": "*", + "@types/xmpp__xml": "*" + } + }, + "node_modules/@types/xmpp__reconnect": { + "version": "0.13.3", + "license": "MIT", + "dependencies": { + "@types/xmpp__connection": "*", + "@types/xmpp__events": "*" + } + }, + "node_modules/@types/xmpp__resource-binding": { + "version": "0.13.3", + "license": "MIT", + "dependencies": { + "@types/xmpp__iq": "*", + "@types/xmpp__middleware": "*", + "@types/xmpp__stream-features": "*", + "@types/xmpp__xml": "*" + } + }, + "node_modules/@types/xmpp__sasl": { + "version": "0.13.6", + "license": "MIT", + "dependencies": { + "@types/saslmechanisms": "*", + "@types/xmpp__error": "*", + "@types/xmpp__middleware": "*", + "@types/xmpp__stream-features": "*" + } + }, + "node_modules/@types/xmpp__stream-features": { + "version": "0.13.3", + "license": "MIT", + "dependencies": { + "@types/koa": "*", + "@types/koa-compose": "*", + "@types/xmpp__middleware": "*", + "@types/xmpp__xml": "*" + } + }, + "node_modules/@types/xmpp__stream-management": { + "version": "0.13.3", + "license": "MIT", + "dependencies": { + "@types/xmpp__middleware": "*", + "@types/xmpp__stream-features": "*" + } + }, + "node_modules/@types/xmpp__xml": { + "version": "0.13.4", + "license": "MIT", + "dependencies": { + "@types/ltx": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.21.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.21.0", + "@typescript-eslint/type-utils": "8.21.0", + "@typescript-eslint/utils": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.21.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.21.0", + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/typescript-estree": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.21.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.21.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.21.0", + "@typescript-eslint/utils": "8.21.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.21.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.21.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.3", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.21.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.21.0", + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/typescript-estree": "8.21.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.21.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.21.0", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.11.tgz", + "integrity": "sha512-lN2C1+ByfW9/JRPpqScuZt/4OrUUse57GLI6TbLgTIqBVemdl1wNcZ1qYGEo2+Gw8coYLgCy7SuKqn6IrQcQgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.11" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.11.tgz", + "integrity": "sha512-ZQpmafIGvaZMn/8iuvCFGrW3smeqkq/IIh9F1SdSx9aUl0J4Iurzd6/FhmjNO5g2ejF3rT45dKskgXWiofqlZQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@volar/typescript": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.11.tgz", + "integrity": "sha512-2DT+Tdh88Spp5PyPbqhyoYavYCPDsqbHLFwcUI9K1NlY1YgUJvujGdrqUp0zWxnW7KWNTr3xSpMuv2WnaTKDAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.11", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", + "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.13", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", + "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "dev": true, + "license": "MIT", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/@vue/language-core": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.2.0.tgz", + "integrity": "sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "~2.4.11", + "@vue/compiler-dom": "^3.5.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.5.0", + "alien-signals": "^0.4.9", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@vue/language-core/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", + "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@xmpp/base64": { + "version": "0.13.2", + "license": "ISC", + "dependencies": { + "base-64": "^1.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/client-core": { + "version": "0.13.3", + "license": "ISC", + "dependencies": { + "@xmpp/connection": "^0.13.3", + "@xmpp/jid": "^0.13.2", + "@xmpp/xml": "^0.13.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/connection": { + "version": "0.13.3", + "license": "ISC", + "dependencies": { + "@xmpp/error": "^0.13.2", + "@xmpp/events": "^0.13.2", + "@xmpp/jid": "^0.13.2", + "@xmpp/xml": "^0.13.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/error": { + "version": "0.13.2", + "license": "ISC", + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/events": { + "version": "0.13.2", + "license": "ISC", + "dependencies": { + "events": "^3.3.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/id": { + "version": "0.13.2", + "license": "ISC", + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/iq": { + "version": "0.13.3", + "license": "ISC", + "dependencies": { + "@xmpp/events": "^0.13.2", + "@xmpp/id": "^0.13.2", + "@xmpp/middleware": "^0.13.3", + "@xmpp/xml": "^0.13.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/jid": { + "version": "0.13.2", + "license": "ISC", + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/middleware": { + "version": "0.13.3", + "license": "ISC", + "dependencies": { + "@xmpp/error": "^0.13.2", + "@xmpp/jid": "^0.13.2", + "@xmpp/xml": "^0.13.3", + "koa-compose": "^4.1.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/reconnect": { + "version": "0.13.2", + "license": "ISC", + "dependencies": { + "@xmpp/events": "^0.13.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/resolve": { + "version": "0.13.3", + "license": "ISC", + "dependencies": { + "@xmpp/events": "^0.13.2", + "@xmpp/xml": "^0.13.3", + "node-fetch": "^3.3.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/resolve/node_modules/node-fetch": { + "version": "3.3.2", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/@xmpp/resource-binding": { + "version": "0.13.3", + "license": "ISC", + "dependencies": { + "@xmpp/xml": "^0.13.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/sasl": { + "version": "0.13.4", + "license": "ISC", + "dependencies": { + "@xmpp/base64": "^0.13.2", + "@xmpp/error": "^0.13.2", + "@xmpp/xml": "^0.13.3", + "saslmechanisms": "^0.1.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/sasl-anonymous": { + "version": "0.13.2", + "license": "ISC", + "dependencies": { + "sasl-anonymous": "^0.1.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/sasl-plain": { + "version": "0.13.2", + "license": "ISC", + "dependencies": { + "sasl-plain": "^0.1.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/session-establishment": { + "version": "0.13.3", + "license": "ISC", + "dependencies": { + "@xmpp/xml": "^0.13.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/stream-features": { + "version": "0.13.2", + "license": "ISC", + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/websocket": { + "version": "0.13.3", + "license": "ISC", + "dependencies": { + "@xmpp/connection": "^0.13.3", + "@xmpp/xml": "^0.13.3", + "ws": "^8.18.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/xml": { + "version": "0.13.3", + "license": "ISC", + "dependencies": { + "ltx": "^3.1.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/alien-signals": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-0.4.14.tgz", + "integrity": "sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/asn1.js": { + "version": "4.10.1", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.1", + "dev": true, + "license": "MIT" + }, + "node_modules/assert": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/base-64": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bn.js": { + "version": "5.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/browser-resolve": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve": "^1.17.0" + } + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^5.2.1", + "randombytes": "^2.1.0", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.3", + "dev": true, + "license": "ISC", + "dependencies": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.5", + "hash-base": "~3.0", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "2.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/browserify-sign/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.24.4", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/call-bind": { + "version": "1.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001695", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/cipher-base": { + "version": "1.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "license": "Apache-2.0", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compare-versions": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz", + "integrity": "sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/connectycube": { + "version": "4.0.2", + "license": "Apache-2.0", + "dependencies": { + "@types/form-data": "^2.5.2", + "@types/node-fetch": "^2.6.12", + "@types/xmpp__client": "^0.13.3", + "@xmpp/client-core": "^0.13.3", + "@xmpp/iq": "^0.13.3", + "@xmpp/middleware": "^0.13.3", + "@xmpp/reconnect": "^0.13.2", + "@xmpp/resolve": "^0.13.3", + "@xmpp/resource-binding": "^0.13.3", + "@xmpp/sasl": "^0.13.4", + "@xmpp/sasl-anonymous": "^0.13.2", + "@xmpp/sasl-plain": "^0.13.2", + "@xmpp/session-establishment": "^0.13.3", + "@xmpp/stream-features": "^0.13.2", + "@xmpp/websocket": "^0.13.3", + "eventemitter3": "^5.0.1", + "form-data": "4.0.1", + "node-fetch": "2.7.0" + } + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "dev": true + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "1.0.2", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.1", + "dev": true, + "license": "MIT" + }, + "node_modules/create-hash": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.1", + "dev": true, + "license": "MIT", + "dependencies": { + "browserify-cipher": "^1.0.1", + "browserify-sign": "^4.2.3", + "create-ecdh": "^4.0.4", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "diffie-hellman": "^5.0.3", + "hash-base": "~3.0.4", + "inherits": "^2.0.4", + "pbkdf2": "^3.1.2", + "public-encrypt": "^4.0.3", + "randombytes": "^2.1.0", + "randomfill": "^1.0.4" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "devOptional": true, + "license": "MIT" + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/des.js": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "dev": true, + "license": "Apache-2.0", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.1", + "dev": true, + "license": "MIT" + }, + "node_modules/domain-browser": { + "version": "4.22.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.88", + "dev": true, + "license": "ISC" + }, + "node_modules/elliptic": { + "version": "6.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.1", + "dev": true, + "license": "MIT" + }, + "node_modules/enhanced-resolve": { + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", + "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.24.2", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.19.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.10.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.19.0", + "@eslint/plugin-kit": "^0.2.5", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.18", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=8.40" + } + }, + "node_modules/eslint-scope": { + "version": "8.2.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.3.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.18.0", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.2", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.4", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/form-data": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "function-bind": "^1.1.2", + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "15.14.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-base": { + "version": "3.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ieee754": { + "version": "1.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "5.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "license": "ISC" + }, + "node_modules/is-arguments": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-nan": { + "version": "1.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/isomorphic-timers-promises": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/jiti": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/koa-compose": { + "version": "4.1.0", + "license": "MIT" + }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/levn": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lightningcss": { + "version": "1.29.1", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^1.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.29.1", + "lightningcss-darwin-x64": "1.29.1", + "lightningcss-freebsd-x64": "1.29.1", + "lightningcss-linux-arm-gnueabihf": "1.29.1", + "lightningcss-linux-arm64-gnu": "1.29.1", + "lightningcss-linux-arm64-musl": "1.29.1", + "lightningcss-linux-x64-gnu": "1.29.1", + "lightningcss-linux-x64-musl": "1.29.1", + "lightningcss-win32-arm64-msvc": "1.29.1", + "lightningcss-win32-x64-msvc": "1.29.1" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.29.1", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/local-pkg": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz", + "integrity": "sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mlly": "^1.7.3", + "pkg-types": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/ltx": { + "version": "3.1.2", + "license": "MIT", + "engines": { + "node": ">= 12.4.0" + } + }, + "node_modules/lucide-react": { + "version": "0.474.0", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/magic-string": { + "version": "0.30.17", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.1", + "dev": true, + "license": "MIT" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "dev": true, + "license": "ISC" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mlly": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz", + "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "pathe": "^2.0.1", + "pkg-types": "^1.3.0", + "ufo": "^1.5.4" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.8", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-releases": { + "version": "2.0.19", + "dev": true, + "license": "MIT" + }, + "node_modules/node-stdlib-browser": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "assert": "^2.0.0", + "browser-resolve": "^2.0.0", + "browserify-zlib": "^0.2.0", + "buffer": "^5.7.1", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "create-require": "^1.1.1", + "crypto-browserify": "^3.11.0", + "domain-browser": "4.22.0", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "isomorphic-timers-promises": "^1.0.1", + "os-browserify": "^0.3.0", + "path-browserify": "^1.0.1", + "pkg-dir": "^5.0.0", + "process": "^0.11.10", + "punycode": "^1.4.1", + "querystring-es3": "^0.2.1", + "readable-stream": "^3.6.0", + "stream-browserify": "^3.0.0", + "stream-http": "^3.2.0", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.1", + "url": "^0.11.4", + "util": "^0.12.4", + "vm-browserify": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-stdlib-browser/node_modules/punycode": { + "version": "1.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/p-limit": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "dev": true, + "license": "(MIT AND Zlib)" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.7", + "dev": true, + "license": "ISC", + "dependencies": { + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "hash-base": "~3.0", + "pbkdf2": "^3.1.2", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "dev": true, + "license": "MIT" + }, + "node_modules/pathe": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.2.tgz", + "integrity": "sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.1", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/process": { + "version": "0.11.10", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/prop-types": { + "version": "15.8.1", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.1", + "dev": true, + "license": "MIT" + }, + "node_modules/punycode": { + "version": "2.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.14.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react": { + "version": "18.3.1", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-hook-form": { + "version": "7.54.2", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18 || ^19" + } + }, + "node_modules/react-icons": { + "version": "5.4.0", + "license": "MIT", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-intersection-observer": { + "version": "9.15.1", + "license": "MIT", + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "license": "MIT" + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-remove-scroll": { + "version": "2.6.3", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-router": { + "version": "7.1.3", + "license": "MIT", + "dependencies": { + "@types/cookie": "^0.6.0", + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0", + "turbo-stream": "2.4.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.1.3", + "license": "MIT", + "dependencies": { + "react-router": "7.1.3" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/react-scroll": { + "version": "1.9.0", + "license": "MIT", + "dependencies": { + "lodash.throttle": "^4.1.1", + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "react": "^15.5.4 || ^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^15.5.4 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "4.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.10", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rollup": { + "version": "4.32.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.32.0", + "@rollup/rollup-android-arm64": "4.32.0", + "@rollup/rollup-darwin-arm64": "4.32.0", + "@rollup/rollup-darwin-x64": "4.32.0", + "@rollup/rollup-freebsd-arm64": "4.32.0", + "@rollup/rollup-freebsd-x64": "4.32.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.32.0", + "@rollup/rollup-linux-arm-musleabihf": "4.32.0", + "@rollup/rollup-linux-arm64-gnu": "4.32.0", + "@rollup/rollup-linux-arm64-musl": "4.32.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.32.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.32.0", + "@rollup/rollup-linux-riscv64-gnu": "4.32.0", + "@rollup/rollup-linux-s390x-gnu": "4.32.0", + "@rollup/rollup-linux-x64-gnu": "4.32.0", + "@rollup/rollup-linux-x64-musl": "4.32.0", + "@rollup/rollup-win32-arm64-msvc": "4.32.0", + "@rollup/rollup-win32-ia32-msvc": "4.32.0", + "@rollup/rollup-win32-x64-msvc": "4.32.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sasl-anonymous": { + "version": "0.1.0", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/sasl-plain": { + "version": "0.1.0", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/saslmechanisms": { + "version": "0.1.1", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/sass": { + "version": "1.83.4", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "license": "MIT" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "dev": true, + "license": "(MIT AND BSD-3-Clause)", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/stream-browserify": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/stream-http": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwind-merge": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.0.tgz", + "integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.0.tgz", + "integrity": "sha512-ULRPI3A+e39T7pSaf1xoi58AqqJxVCLg8F/uM5A3FadUbnyDTgltVnXJvdkTjwCOGA6NazqHVcwPJC5h2vRYVQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/tailwindcss-animate": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "dev": true, + "license": "MIT", + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "license": "MIT" + }, + "node_modules/ts-api-utils": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "license": "0BSD" + }, + "node_modules/tty-browserify": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/turbo-stream": { + "version": "2.4.0", + "license": "ISC" + }, + "node_modules/type-check": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typescript": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.21.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.21.0", + "@typescript-eslint/parser": "8.21.0", + "@typescript-eslint/utils": "8.21.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/ufo": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "6.20.0", + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.2", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url": { + "version": "0.11.4", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.12.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/use-callback-ref": { + "version": "1.3.3", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.3", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/util": { + "version": "0.12.5", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.11.tgz", + "integrity": "sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.24.2", + "postcss": "^8.4.49", + "rollup": "^4.23.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-plugin-dts": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-4.5.0.tgz", + "integrity": "sha512-M1lrPTdi7gilLYRZoLmGYnl4fbPryVYsehPN9JgaxjJKTs8/f7tuAlvCCvOLB5gRDQTTKnptBcB0ACsaw2wNLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@microsoft/api-extractor": "^7.49.1", + "@rollup/pluginutils": "^5.1.4", + "@volar/typescript": "^2.4.11", + "@vue/language-core": "2.2.0", + "compare-versions": "^6.1.1", + "debug": "^4.4.0", + "kolorist": "^1.8.0", + "local-pkg": "^0.5.1", + "magic-string": "^0.30.17" + }, + "peerDependencies": { + "typescript": "*", + "vite": "*" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/vite-plugin-node-polyfills": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/vite-plugin-node-polyfills/-/vite-plugin-node-polyfills-0.23.0.tgz", + "integrity": "sha512-4n+Ys+2bKHQohPBKigFlndwWQ5fFKwaGY6muNDMTb0fSQLyBzS+jjUNRZG9sKF0S/Go4ApG6LFnUGopjkILg3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/plugin-inject": "^5.0.5", + "node-stdlib-browser": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/davidmyersdev" + }, + "peerDependencies": { + "vite": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/vscode-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.18", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ws": { + "version": "8.18.0", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "dev": true, + "license": "ISC", + "optional": true, + "peer": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/chat-widget/package.json b/chat-widget/package.json new file mode 100644 index 00000000..26a0554b --- /dev/null +++ b/chat-widget/package.json @@ -0,0 +1,75 @@ +{ + "name": "@connectycube/chat-widget", + "private": true, + "version": "0.0.1-3", + "type": "module", + "types": "dist/index.d.ts", + "main": "dist/index.umd.js", + "module": "dist/index.es.js", + "exports": { + "./style.css": "./dist/chat-widget.css", + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.es.js", + "require": "./dist/index.umd.js" + } + }, + "files": [ + "dist" + ], + "publishConfig": { + "access": "public" + }, + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "@connectycube/use-chat": "file:../../use-chat", + "@fingerprintjs/fingerprintjs": "^4.5.1", + "@radix-ui/react-alert-dialog": "^1.1.5", + "@radix-ui/react-avatar": "^1.1.2", + "@radix-ui/react-dialog": "^1.1.5", + "@radix-ui/react-dropdown-menu": "^2.1.5", + "@radix-ui/react-label": "^2.1.1", + "@radix-ui/react-slot": "^1.1.1", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "connectycube": "4.0.2", + "lucide-react": "^0.474.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-hook-form": "^7.54.2", + "react-icons": "^5.4.0", + "react-intersection-observer": "^9.15.1", + "react-router": "^7.1.3", + "react-router-dom": "^7.1.3", + "react-scroll": "^1.9.0" + }, + "devDependencies": { + "@eslint/js": "^9.19.0", + "@tailwindcss/vite": "^4.0.0", + "@types/node": "^22.10.10", + "@types/react": "^18.3.18", + "@types/react-dom": "^18.3.5", + "@types/react-scroll": "^1.8.10", + "@vitejs/plugin-react": "^4.3.4", + "autoprefixer": "^10.4.20", + "eslint": "^9.19.0", + "eslint-plugin-react-hooks": "^5.1.0", + "eslint-plugin-react-refresh": "^0.4.18", + "globals": "^15.14.0", + "postcss": "^8.5.1", + "sass": "^1.83.4", + "tailwind-merge": "^2.6.0", + "tailwindcss": "^4.0.0", + "tailwindcss-animate": "^1.0.7", + "typescript": "~5.7.3", + "typescript-eslint": "^8.21.0", + "vite": "^6.0.11", + "vite-plugin-dts": "^4.5.0", + "vite-plugin-node-polyfills": "^0.23.0" + } +} diff --git a/chat-widget/public/vite.svg b/chat-widget/public/vite.svg new file mode 100644 index 00000000..e7b8dfb1 --- /dev/null +++ b/chat-widget/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/chat-widget/src/App.css b/chat-widget/src/App.css new file mode 100644 index 00000000..8edbc809 --- /dev/null +++ b/chat-widget/src/App.css @@ -0,0 +1,36 @@ +.chat-widget-button { + position: fixed; + bottom: 15px; + right: 15px; + background-color: #007bff; + color: white; + border-radius: 10px; + padding: 10px 15px; + font-size: 16px; +} + +.chat-widget-portal { + position: fixed; + bottom: 60px; + right: 15px; + width: 600px; + height: 600px; + border: 1px solid #ccc; + border-radius: 8px; + overflow: hidden; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); +} + +.wrapper { + text-align: center; + position: absolute; + width: 100%; + background-color: #282c34; + height: 100%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + overflow: hidden; + color: black; +} \ No newline at end of file diff --git a/chat-widget/src/App.tsx b/chat-widget/src/App.tsx new file mode 100644 index 00000000..242741cf --- /dev/null +++ b/chat-widget/src/App.tsx @@ -0,0 +1,65 @@ +import { useLayoutEffect, useState } from "react"; +import ReactDOM from 'react-dom'; +import { MessageCircleMore } from "lucide-react" +import ConnectyCube from "connectycube"; +import { ChatProvider } from "@connectycube/use-chat"; +import { Button } from "@/components/shadcn-ui/button" +import Home from "./components/Home/Home"; +import { tryRestoreSession } from "./connectycube"; +import { Config } from "@connectycube/types"; + +import "./App.css"; + +type AppProps = { + appId: Config.Credentials["appId"]; + authKey: Config.Credentials["authKey"]; + config?: Config.Options; + buttonStyle?: React.CSSProperties; + portalStyle?: React.CSSProperties; + buttonClassName?: string; + portalClassName?: string; +}; + +const App: React.FC = ({ + appId, + authKey, + config, + buttonStyle, + portalStyle, + buttonClassName, + portalClassName +}) => { + const [isOpen, setIsOpen] = useState(false); + + const toggleChat = () => { + setIsOpen(!isOpen); + }; + + useLayoutEffect(() => { + ConnectyCube.init({appId, authKey}, config); + tryRestoreSession(); + }, []); + + return ( + <> + + {isOpen && ReactDOM.createPortal( +
+ + + +
, + document.body + )} + + ); +} + +export default App; diff --git a/chat-widget/src/assets/group-chat.jpg b/chat-widget/src/assets/group-chat.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1981c5aac986026cfa8378ece14ac78076aa9c2d GIT binary patch literal 101256 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

;mMX* zbY-abPCIt-`l0;;+5#*M+4{6K@e$%+UmrtW4)PV(4=&n>?d&qFQk;H?8&&fh+S4N)l@S%=-WjWG@TQZ#5qX%R>Lct`@LpK?0%B(zf+eqm-z+hC<|fvGN$ z)oZuJr|;&Ytyt{6b!Rs92@ynq;VYVwjjU+4dNm#x+-_{Bzd{Yt7Judm;dTZeLCDRi zZa2MxoMz(`If(Mzz+>`cOCmK)B@)RYP!%Ocm2+>XR!4pX`&=I_O zu7znbGC3+_=}Q79UOULX7YlQkoL7JENp^i@_d)DkVc*{C2KU+O9+eXowf~LLtk$V6 zHLh_2pS#YPBSDewhCE4HJ}wln1RQLNFr(s$HpR=B5_+SsDuG2?u zIs47Iz3(6nC(C|tkDbBx8X2-1HeJay8hWJK-i+L>InG?Xf=Jrt+5cfys77p5jQxY& zchllbFl{Lr@c+AYa5O9#DTl>H#j%KK^1mSPB3$x&e!)!f2m|A)lY&UgSJpL3^pUiT zYgMRSOWV!5)@9d-$>&t{B^>TLievxFY-tiDq{qx&f9`Y|Et^w0Kx5ICX^9zIO25{q z%)N_yltBI1{lw{aYXwW!#Alosmj!s3ZdTGNN+CO?(d-<(?}moSb@jms;TE1QX}~w3 z|DxRI`4^{x!Hv_ZFW9k{M{nKm&>t`3@DN@TtVvdE;22eWawPc*vS{3dihHw4D3VWc zbYr1M*702&DL9AnWaz;|%|;&DmfoXSCL(_tE(YvoJ#l^Mi7Mq~H!6370L#$H5%#fv z&NR3g+&iHNme-fO+?jA2gNVT`_)&NB$Vo3#W1@7?IYpAUAaqO9dOG@wgpbYy@2{E< zv^0(mycU*^G|4wQpC(>&i+E=gudkW4S} z4BZ!!N4$?-Znipp`Wy)&2F{BXQ%)H%QQIrGC4P;aNJsLH8^pSwcv_cTx$rWi0sD*t zN+sIj`_i%_z>h>;lw(c#doCJWGC=1P7yVFS4b@;&UD!2UX(da?{pM=(sKU}4q8AL# zUaPqiM6b0zgfpq;o!)(&qzTo+WW~s_PVfZZ5VLhP$f|uaLN^Tv9x?WHz>tbvvcGmz z5R;PtzG+C#0NG3N@?$4Upbq=(CB^MythlrO`xovopN|*L2yL}2?oy}@5iU8=mu6t0 z>`0ix@b_L0gO^3KGvV)^jYY82AF+e91O~JP#DNg>R9vVoYDPtV2|dQ)PCXVc;$M

{;1j zoM76VnVJ0piC5M5YGbXFLcNG9Or;#_T z9--?Yd99{C5P4?K=KXbj!oW`UD`TCTG4bJ5)%mrw^ zLN?8}1TrdU=G>}?(YFi1b`+YY%E-J7al%xuzQ}QU?pkcH1Ab0ql(#iUa?l?GOV#pc zRdRInk2@l&FHqG6>Fzu=B8(oC6)BFmDp5@mOR$t04#c$=2?^Zgv0U*nn# zF@2$bX3bNXhN}r)#)7u5@5K(ZlVREUUu@H%S#jT{XbG{aP-*9A<}$GlpSmcmz_%QgN%`?d zf0gg}4G^GXp0TW?yRZupg{l?hB08VOL<>MqtQPl9DS1GH{fyD zty8rHw*;S+FtON+lWJUPDkkL$*A-+--L z->etl-gd>sh%l8g@yE*oDyi7Zx59$K38|JAhkFeIn3OBY4>N6Fnak(}6330?Z~8H3 z7u01j4*M$d@8Ffcpa>jH+(q-fqn3D))>OZ6SJc}r#>BFAG_A7Uu|m|sjkGJe)~+(6 z%G+GrjNCMo-lqK^5CaB&q*d?<9SZ#sfL7a8GF1=>byku#M}y($&Ik-4CWNei#=HQx z6}Rz7;o9hk9%Ya$^NCZevS69?ucmun>nL|j&4S*@WPm#jRHaaap=co}8UiO)!f>y> zd>8=?HF@cc^J?GIz+-g=$}ogVtfAwWN<_cxV!36PJ8vaJgJrWjOsUkenCiV*nde_J|wG^yRQ%kF_wjirQnm4%2|Zv1p4@Qlva6rJcdb{#AgMl|^jVK|uDimRMdfn~zC3~YqGr4i=t>actPmV$ z%GP4ztU3sZ3**qL7nje_>E9vJH}<^Gf>C^Xjjijw=sUgH2)3&w78Y0u`$QJv8-({? z+JvzHzTu{GNvHbyF1H|1<=mg?VgysomVCmj(s&;J$;&K>yFe;q9ivaUal zpV@P$PvRIAy%@0p4+1CuI7UQWA~s831s}|cqv=FrF*(^90k?Hxb`?V!D1levdnDiR z$mLgpYa%P3JOJb(q{QoEriSNDZv-7Q3kBLigPULmKNZebBb_6EI4%C5D(8499XRO& zZ((9z@}2g~9!FPZikZQMb}}jxT6Z2kC<~j=@aO(fS;c(5iK<4s2#wfs$);pt>* zW++W&{%I3%4p-ws^RNh}!a=z(_8;M=fwC*&uM5Sqi4-!xeSEUw}H;oIcb!+U-U;L#gWSjY@`U)m_uFv0}>&w>qUq zmdjKh#|l-yN|z1pkGhZEHLJ3$cN?uVtG0}CbF4^vV!7i!uk^%B5K0Qg&(v`ru@c+# zonOheR?Q@5u_foK?(QLB$sQ4pCz!o-GJM{Abs|;6{5i6K+V(0e1sQVeO40MuYD)a? z2=UeArESj22lt3K)fVZq+Fm% zyS{v+!mR3Qz1xVe1vnF)GzQKYo74}FoU#yAtEa(FE1O_usO@YsDGKnFVnLeof)9+$ z{Kh_m%5$X5$}uYkA9Z#F&~WwnwR)}i22zA_hzOoACIb6FpYA^KY7dsg zhVMU6tv4J?Xw&QeGS$WuFl)eL>v@Cd#Ga}T{4~!0mBl9!whzyqo)q#uhbA>FC2(FN zE%tlz!gN4b>REHOr^Z|oOa3GLU&o-DeglrxCc-J7e|ELJJ55=BIi#A;ee;`2!k_0>k5ED?LhWNh zFH&qZh8P41!!HE-d>9C%8XbKFHQaht)92++(b~Wi;q@_hTsX{Rv)TI8uW zImVwXO8PDf*PPAz$msBhcU-LfvfDk=n_V75HZd^LBJ+X)*G&8B7?`;S%1h_f*5wZs z65K*Xn1$51tm};sN>YHAtyxd~*8B?Bh!QOW+dFX&eU{h-5>_htiigy) z57ekb7W75dYO`@1q%1bGy%E0eZ?)=)??^7$A=CrVkyzSMyX`d(f6qm}uT%5)#*W_L zBTLeo`I^T5kbKIKeZhVy#50#1iHwa^_brsEt8-h}Tt2)0LH5gNU*dvg1_O|>e z_USg*1?kOhZ+8SCuD*2)q2|Y4ZW2<2X5Z@EisN+mx_I;bZ$KKjtRCoedoCd(O6lg# zW=%@NXzbL`OK`n?rD;`K`Xx`*MMYPXW)R!A64CP;!?t67QDBCya$}dr4T7gqkNKHZ zRkOR+r(oU?V5)%Tho1nZ+xvQ_g}IMkSZA^ljDg(UDh9WaJhx38_tkhQZzO(kT1Qw= z(d3osU8TPDfr@FWD?HE3Kkpl5Skxwsx4gG!sM$4izTwu_9I;L0)-DrqwD|hU1)~nj zD>w$;Co4)2gsr&v<+?@}_L+T8!Z-^<^Y@=)2eye*cFArDKdzxVlQSx7>}(;sY7Jm) z*BDw5;E~j~qQ$u{?&8yBU zts5F2P-J^VQcdq1{Q#D<&uHs+%q*$VZ0{-qVLo0ohTXkUR|=*Da*38CicbpLp??D) z@!X`BsFoQP*ZiRgRHUQ9z-z0}X`Qg1vomVzL$$07M2w!+yyxl}-TXp9v>`FPq*wOk z<9arb_IpOP%}W7SIfBhPy{I=%CO}qLcU~zF-F+SRcJ1lYY4HfjGK8{(hXJ5zE+dyL zPFH2@$J}u=_+@^Kw&=d=^~ZxJf&+){>*EOah!m!@%M~^~Qdg|L)TA>#`7Ggdoydio zE2y}Wku>?vOJp*5WvP+VgHuzCeujNuBjS`>Gds1xH*EIQcxIU@K?Nnj zz}+>}%edQlGj4%z?Gk@P?A82qF>ZoV9A8&K8X88!2PdNlE}d6$g%3UCes$Yd3FaOJ zOkP=lt}A0~{ONokktNUjJ89Gc1Z!7~)u+P3$+*&k<@`AC6-tRIeQL-)pVv291QgPceFFZ(ZuJq52^{;DvTGo%dUxx* z3{oy6f+{!((i_5N=|Uv!SAZvgxTjDd?lAW;+_q!jztGG35&=W2aI=bP`AT!s=D1tP+e#hw-%qoVX7vY&)+ z%6Cwt%22ENa$Kc1V2y>8QwC{YPYp;hIZalghVcO`3pgDbnfSySYa*A$*Pk2KYn>SL zwJO|tq$jDG9-w+SW5VX5UTDxEtN%yt|vyyKPhNa|gVJkWm9)FSXwyhJIoa~HS z9FoGANOH7m*=#uyctn#=0TRc`Q+7{ z9@!>f)oXP{1n7Rz+hXgrj`UQLW?A!L0^*~n-tErlRe?XbobBC_I;Ya1c)Ic0?T!0gztq1cJ@ZIuGyLqCDciCd`soiABOZyWV^$*8NiJ=*T z8*1vVQp2uA&$UXDb@{S%rLz7dI_Qdhu3QqTOO!<+b;Lz#(Dj#>63Q}_Dt9#*E-NLRi@rBqzn2BQjTHTYt6nX<&C>|EN0qOi1RK8!Aq1(AZfhCL@Kp^oE1v%2#V zn4UU&bK}T}yK$9MeQw|6N7K;GXE;T(3|&-~Egx?%fm;}XbzW4A^M-}flUOzNq{>v= ztc{caOM%V0nq>kEGwStXi6ulzMU!MQi}2SC^P`>EWv1x~njZ=}(D1xVM7-cLGZq$1 zP3i7-bd;#gw9u(6`5(srV|d6(g%TuW{RS))g3HRu!F}MN00Fon6I_7zKlJ}Y1V|pR zJ(jNyVIdEgGyiX`KC$aQ##;vfpjaqCiUEL-Sn?KJEExE2peszA*h4j>7&ssVUIY%F z7=o~~PXD{wspdrxpsGVPLI4sd1pqh_07yZOfEMAs!-W4e7gCPKYsRa>Qz?LfVgUe& z0X2hBFi5Gh3aFo?Rlv9-@6nB`10V12RCvU_y;cE zq3l6(H1o{el>PZ5NRP&T*9I<44EhI(K~dr#Hxj;~g^Ax>+X6qYcmAY={;)Z~W&xSX zNqf3b@4>(G$WD>}NWy}J zt49Bb{ozA?haCwrF#w6^VVVIzvyC|n{+&w$puQ&^z%B^@vS85`2t`oYc0N>PphGydp)KsFYPf-F4Yfycwca~&T8 z>w%^Hw??GE0}!JDWg;(77!Q2GYh`@CpSqvl?|=i%NH7@#u%Q8f3?NXYod%-?Vb3y-qIi5!E0tO0;D_OSXt ztOMWu6zBpHXw(cAsRC;<&;o2aQL0_!sPEtqJjM4aBxrp2?_^)A&TZ&z#Yo}%4I!dLQ#M{3Jii5 z!GnV*JnRY^jCWDHy%JkG^{L$Qppa5O25Qwp!)SA<6pBnX@YyoUe) z-?QMs0SON~)d@Rb=uIUIppGNw_K9pM75W|a8z_Jqs0JXv-|2@r|8Nfz#FGF7 zD-r-Gy1^9eVd??wn;c>5$wi(6pK9KansgM#*t(HoD}IOF5DBn0ph5A5!z_Pw6$bGf z1coKaR1Ca3{EGep``}aK_xsj&9}|P`D=*epfD?|E3WfZRdpT&y2O6Qc1Mgp)c^Z6z z6@oez5UeDSoW%TbPlD!7a3^fzG4d1H{kQQaCSmJ)bFV$I<)jHeaGx&xu8#uD_6s7w z8lph9HU@$MV96uE5is&6+(C3u%H*gJ?C({AiBuwg$6XKuisK1?xnB^xnUGLGvFQ;2 zQvsk+=TW7g4E9j&Z+aOLNtYkED*y@KRgz=A2Y&KM(J*jSQw?YXfDQn)A;)2VFC;j8 z`gxG^JtGnz|6%S8ng=`(dJfF@)So;N0D%TbaS$642ovxGP&w${zf1he%A~j5vIn^_zcjXqB>;$+MkvF z2t$z&82A_k2q;)E1Sp2E!(PVsrYtf9E(8wzicqbT0tZ;}kbchtmiZ8N2zhqYID$?* z8iE0gaX&Qv*@u3Iog4#^0*JtjSWs2RuSEayRK*(!Bq2BiEE}FyFbCex4guy6c0e3} z$e~3J3JJDCECT!$_ot7VIvV>uE9M6{gqq}F7cgAff(9rFs=ufH*;4=qCV1F^X|N>G zn8W)>7#3LDBl7b{%=AaU`Tafu!I6cOALycL;lw};{;c+U80$|H@e*R?sJeUEcFi7AGUiz@Ugt&v?PY!73ht}?aXXCYFLE&oMKgM_;a3B+;zYb== z?-A7K@4W*kMRvXvRSz zA-)C#h(EOc2r+zz-3!mSiTwflkK{l3KaC;5N*W^=z}7zypy2^M2<9OClT&mEJ9sC7 zgaKWAF=oJjqWkJfO|8QaC-Fn>KAFRTchmaEpG}^GhOiSj5$tgjF8&M+W&{u@y!#Uo zOdnuh(}L$RffjUt{SBZQg#rG)rvVECk(r7GfTja^2pkP&{Dt9Aea9Y51pr*+ckF2o zF7}JBQwL%gPzwC0fp{kX&;*c&#Pdnec=snl9%8S9XOiKi@YNS+!$<$qFcJyc85)4% zK*>_@JeX0z`+p*@L+tSl3pw~gjK>~(DDXEOJRD3#f+q%mfWr9F;BPSi0PFG>0_%l0 z`Fb44hl7PbgdGF=AmKZB9?4Gl9D!7ss;rGWfFh9!)qvKNnAW^Tm*sH_ddu<*POn(d` z9YA?;5J`6If!@jk_a}#_84o)afC^y_Z1}IRZ!nrXtTwGv_c6eR91RNMXXd;X`*rfviIRJ!X@cdr9^H%~NuG64VL2wW+d=mDL zLjLVI65oM=<*~s-4aEXb{J0q)7{t4OB{B%ulfjXMhq(O}b}Wbh=BFARXa<$QVHkWC zQZzvN7K}pBpz{lw2eHME$Qkiz{{`4VDL8l{i9l-y0PxEe7Z!~EYRmz$0VoXP3bohMv2e3o12kJ0@TPYZz`?YRRD_!V;|2Z!>;O3lSRM#51PT6c7Y*k96)C`o(V+Q4 zv3NuOC)N(Y;TW(nO(-x}VjMp2uV{_P1~exGG(hb$=AXdM5P}#5zj>^poj<$24Z!vu#W}Nk{w$Kt%n=UP6dxYZktBGc zxrW>Q*v-u5-)7=Fp2Ab4bds#Me0KSA2I(CL37fceb=pHo)}Dk7YCd1`7M=Z~J*|GY zkmpS{J2@L4fdq$VW1dqt6vouFlxBBU@>^z$unv06p%f)GW= z;`PhHM!^y)rrhz|N(H6#R(!0&umXeE=(WDLI_Abg^PUQ%3g$~IBZdTHmLEhfr9Dh~ zVFU*1(QmzeQx1e+2npStEZ&)UFAb}F)&cAY`B3a z$9%qgE3|%mL9?B_p*Dm=%|N*2jMZZTp*o*MWq+#kjp_s;NRGUVeJ*vv-KO5Q6h)QC z62e;$;lnKO^MrvX3{5o^7F+cAyqkFEor`+9FQq;=XiezJjvsP`%;gmuTAG&4xsxgo ztWsUd9tkVe6oZJ#pXwi8uY0%*2KI+P-~*4qz-ry2<)gc&a>2mU<)Z;$V9~ng_3*4! z&x8)eNx{^SjlI}@aY7ekGn>);^S6wy$5`BFPY&+A_zbX2onF6DJ&f@+FLv7`Q+?&M z!AWONDaXcpGq2J9_KL;3-L$LM7w+UW+TLEV+}rKZRq}bW^x7N@apd{iudj+IUR%f; zXu7|%mG(yQ^Yf+GX99P7F68+;9wtQ$G*yF19EzW@QhKa0I(Kg0!J5X{k$GXxsFxgj zsV%I$EOBG^8|}j{<(?{empRWOngy!PJ!tBCui_xi`YxwoDE)}Uy2d$|o+@Vl!lP1- zW3dnMtT_#9m!3Z6Pvl^1Qev)9?6|~w;ZeLJCgu1n_Q_C$ad1aY_xr1(v;yTbJJ%=R%+IRn@5JlpgJ5KMEwvEIo0?9XiX%8~YsOL{k>A|cx-Mar z`&_1sB%|Huj?tW%m0M4og@1)uz2jKrlhJg`+TU46r9sxi(e%mM)(Vm1Am7@p7k9+j z+?M?Q!le_Y&`P)0er(5vLO-3hjWPYCr*wPCSD;e6i9JYJRSWk;V97WbFvBdQi1j#X zU#p}?W#nXEx=Bb&Dj&vIO!why>S(jlN5Y(t$tPf8;8z9YK1X!xha@i+DcS{&L`Z{g z=1YH-KX5rhZj!abb(ew-vG)b_$m`B*P9}&hmY$Hi+8S{;&3vZuyJ8+bo$9}pD0KY1-?Z16+W%M z*xwud_TiWG%xP(TY^h)C%9{HXK*J34{pI-f+Tow zm%-iLf&>c|f?I++1kK+hdEfKNx&OWAtaaD9J!`6Wmvwd3?y6_++Fex_CY0YYWnhJF zBjZdckus%kh3+iloGOt%rR$QEL0u%{ltD4%l4L*`B`3jLsF7{9JFPdUwKM6C>2h^3 z{*0_0wha7aiNi>FLBQuc|x}gtgVi~vLhxWy*B=V=cNqr)o2W|+RX zXepIlyJt5C#v712YD?wbt0?Od*o_QrZ+v)hEsbtzN)P}{GD z4E)s5c81~Dg!W43r5zT_%VjwG!c;%3*rPIzn{e<}(LVpaMV&l#V}J015eVHXu&KgUrDdXdHSscAQZ*iCk^m0SN|enf&}m+y`?P`VcS8A&pDvU{rv%GRUv zTR|#zL8^+%IN3FS>O+yb(e$p(O@^YMdP(K3E7!eJVQ0zo+{J${2y@`AoXF{`+jo#) zekJ&@(Mz9>P9jNDjw~5sM)h`cL@IC6sZgO_^#?g}n2%~O>feuwB7cFlk5CWaq$F#_{xtz57u?>QlKo>ZcZJ-g%?f(jQJ^pKp;`3=57YcxKU^ z39D}Z*StkQ?4_xrD~=IWyp?wWWBw}Ws$!aqdgxYz7uSjMD(84l?RH_hdzad41VR_V zE`mo_!a$usu}>5`Ckfq+7(SR+`f<#4ey~{?tv}kz1DiWgDW>M+5fjCS%cv0VbV~S)J(d+wp^ZK2ZCcDR z7}4Z8|BWkT)0Prq@w+h^Dv=aXXqm| zv6U`QulGR}Qv$&*diGOxRc7`()5|y^6?Bl&^VPA4xK~o4knK4Fm&LIobDlE{C&sG- zswSm5-#E|xY(wAFcLXrI1KW1{h4;_C9ZDGj+3Yt4mLpoi_e$9xH#gSUx8Of)&fqUd zJ7jcRJ|8iGgIR30hIe3wja%23|KP<^FlXgc0(4|8$y2BL@)4e_0*?;$bVrhoU6PJ@ z(tJBAnJov;5>{Aq8F2&FBCT0_xbr*%O6E>p5pFQKoSbMv06jf4ERqZ+x#$-e2@^C( zVEVYir5JnIVk*%2_TDBaw9FZJZx{4_G3>%4^tz;(nm4 zF6yMSS#8}=e#nuPdb24R3mOs; z#L=<*p*3-7?2S-kb042ARg;ub%pv=@CB*Kq_RYItX5{C&%$)P%(YCb1MPs&<<1f5} zgiW&8#=|YTp07UfqY@TN(tW-TKrxYkEYP?=;JfkkG-}%1w+;&QCrp|uyR zJK|1rbJXlR{g-x6Dl+!~WTnWEG8gr5B2uQji*pnF5WvJm9hzS?os=5)RZY)Yo>|ts zgsGnT5s;gdJ$jEQ%33`l^F5{ue*)cC>94fZr+Cs87ngw=SOSl?Q8g*Rq`uZP6kE19 zc=GkOY&oA?gS-w}-z_;6`>d|*5i~!d=ceBT(CR~8Eas!_$)}I7nV6-B_ZLo*S#qxx z4nTuCtdc-H#I6x?r;|^M`gCiDTk!xC8ZkO}^Ejzao+j=~-ZpXV3mwk;5%{>t{5mUU z>~3_O{01v@*`h<@c-fazdVmC=>kT@Xj!wFchDJb z`+?^a!HG)~wsMkIY=rve~Ow+uAin-S6w@Q0FN>ZQc?eZfoU)cbqV&M&5$iKJ_|dzcjm=KTcktBM>eFPzYRlEQaI-Q>6svw<8Co zR}0?~76%rWKKQt$CjJEV2z+SdXh+sLQbFwViL6Z`(yu@FheLY|%{qA+Jz9RFdURa) zYGmS|+elnMgyplw*E_1_WM}$Lu%~bU_=9TUwCJZm+5|UW3Cn&zAUAgoo}H^3C}w9B z?v2qXH-YCJUtiGt1g(*Ya_|&)im7koeU;Z=bQ3_+{496$K*d@hV>DsaRh!JVO!s+8V4%usNn}2f-lpVHbxvfa#o!>JTfnR2 z5v5!wbcL{yEVv5trr|?X)H%=M@izFW7$6HS6buCtiZO5rH!E8=L(xY_vv5SsD6z0~ zp>9z_p?Z9_icyOXcQhv~?a-Ao1AXL3I1BwGnO~faJ30TUsVCp70I}w1+u&}b^Mm^t z%Y*sKXe(~nR17=cyPg)3c|=0kAEm#2uaj@3!|w}xkfW+bP^$*4k)BN4-x~w!hKWx1CXJf`+KK~fyS7cP8@XmQpvLoqG-wf)gqYgI~^MmR=m|7V>(Say+uq@lWvQ6zPy0gJWgm1})56g34cfvYnIZp4#%=POFaiQYxLPo%@NfR;xYhC;{&!{Ov z4O9)?wc?R@c$yi%mHwZT+-0v;u)_J-mQ27n4`}tRqHyTX z8%Rezm8k@yPM?1q|KFebGu`PM`y548(|<@>0y-ey_z3|MMJrOLZT*oC&Ora(oXke+ z%}rO7{dJwsMKZd0`oV=U2V?OKfh}Bi3DXf=0cGt!e(sv zVvh&u)PH>1LeuM=XnpgkgQ`nZHPWUBsw5gw^XPx{-Or zX}TV879XjK5U2y;jB69_YW*@`j#Bx(+wo!m|YE!dOZY#xy}=_^rK%f`3oU4UJ!FP&!IH#=m70k|K>-$jkIAOJcrD?uxV5-2^`m8cS1-aX=Nfr~1+e(*$9m;zxO^=*K zuhX2Ib4ue188GbH83W$E$<AW9abRBk%?o3E*ks8Vy@-Dpm?V<4&#xI4u3^oaqJovRIAYW znFk_)@HpL|$K{Y#T7c2sRMV4aS2U|5*=+3h)YO!c2~%o(*w18AnxCu=aB(4jSZvEh zdcl%si;26KI+PDAwMIv~nRuvV)H9-L5yR8DHo(VgIK6$V($juf=PK!bs}msf+>@}2Xg#f#b=?#3 z=zwn?$F{a&pMx-#?-i{RyJxf?@FRRYM2qUF<-)d~;8q;ui03R>tP3#)#LV>ukg$)q zG`}!#HQg&EATd2FGje_VP-b-T_MzJE+q(Ysk7QwA>Xobr_iyWlz{RpJ^;K4c4-n${ zBiYcGdM+!%@!Pt=?~9|Xh!R&)_qKiFLqi>sk~SGFsv~TCx~)4}V}}x&y#=Bd9B%?7 z&bVTHKXeV+taX=jN@UP0@{J=aBP%lie?s8LpiC)mn1A-{1o)jjJAQTw{C=O0e_cKL z>KK;RJ>El`oHCss2LAaNVn!71TP~5nY&|8UwsA8}s0>gxuaGF@z`%;ZWqx!^ydga- zX4S0zcy%@fYPi0l?OOtEFmaQy0eyiDZrEL{j@x{v84?1;lxeZ?FI``K5ML*c{h>QuFixNiTP!vh^V}63c z15E?xbiW>6k&?h;EeB599F3PSc|B}(`YqNT0Sn0g1UZd&9(tAvCf<+3S%lVpGFm*- zx)KE6kK_3{4;d|<0vCAq<6M5uK*%w0!FAt57{}h75tK19%#Rz&KtFjK7#Y^sVWIu~ z^ITwExJ7k_D!WF-VH2mdc=S3pp(M@Bm%gWTSYMOP)@`=XtB1JUH=3Rtc=I+@r`NJa zIXeBxi=i%*a}`;*^O)BvX8UFFI}K7@_g;?#tH>#@H8~L)ybE7b3LeVhavzw0hy&)V z&?j(2S&Kel>Q`hY(@7*Ux5D|gyVCO)G?~l!jl0rcFOu$MEvA!%WX+~yYj=IOV%4-= zsbkf2U1RI^m|NaoE}19mKp=zgB4}C)hlZ-wRcq0Vdpoo%u)7qN-%^vD9Endf%wL|` zz(~7WLe#-Msi76i0bTt)HC3j=z;UuG{Q^gH?+9eA5tSo!F}CHx#``L7?>h}Vfeh(O zpW+Hh_o(uY)r~ee&i?p%D%L(P%!C-ll|T@#5DYN*#O9kO`o*X#OkF0t9Ua@6Ke1B1 zn2yJxib-CNETqb$ncs6ZD$4maxWq7OxIFKO@v(&XRCDmo8rhlVy;JRdg-D#%i3uI{ zJ5DUpaG(ul4;+JoRiWZ|Ibpg&3{4Sxc=XfZ{^Bl`UU2HY5YDf=dMJT3NDAyaHj=XK z#~38<&l5=FDhfNXp5Z9DOsRb$zDTuEG<8GzM1S%G&-G#;2!|?y?sl#Mk8>czCWLL% z`co6jN%GdUuhAdphu7&{C+p*E2nOJ1{>9DUF#ty8gcK+Ivn7dc`rrq~$cQb9PjIy| zz_xT+Z%pK-1>(1MSZmH$+`6E-X!!He=wHN^bD}E5Jj*vUXIs$d!^;81yskt7m+nqb zjE5hmhkq5%YrT7jX?mse?CHB4*S z+km!z>c8nci%{9({t=5bRPsik35{$(u_>*a!j0@h%ghO8t~#~KWg=9>$V_Blg=m`itnAs?=b^-j=jz_Ym_zK`^7*SjWrUi2 z?sF$mu3|nj*~-pRyr-x!l-u1TNqdIPt?I!2R3Oi4j+k0USWZXU{!4^QWZBnsL0agk zr3FfLaA-|nOk1o~YjoM0+PIgFlQ8bWSy5{O#(dlEnYzl%v`N4^?pyh%Q=V3Wb^qXT zJjLosa{t52TROPUuFhm^-=y|p(@RO!`ee6zx6zm5DY46huWS=WpPu#mtrBN+=N;T~ zhGpB&!3X}ha&hB1OgGs7KMwPaC@vZ=ka^(D2BGK?kE>N^@WrNa9b@;R#e$FKwggoO z3)FGUa;<&%u{@MY0t3`2PtQ96!lo977mg|ydLK|@@aR@;J*+F40xji#Aq<0V z?VK3WXLFn*-y|IkNKkR}EpiL;7t?ZpRGv3IX-2$}4upe~m4PZWkUsthaYpuT9thes z6nmd$h*X3oYSaDe-H$~Yk?Zu1ecn9AxcfSY0tiIRK9Bj0VEC-0tKVBc=f692ES+va z4Siwf%o~FIMj8g&0z5$xjPO;*Y+3gzNoeEXc0~C1(ET`ue+5{Exgg9_KEAE)h)H1N zHNZp-fKT$TVLP_!h?zPVzoMYFnI7)6T%7~bdX>STKK)*W_rufXF60~l8i*-V+;k@< zQk(WCPH8?KOxo4v=4S6>p2=R0ZB`mpC+-d(a4~kdE356Yb38Ze!Xr(59A1E|K zSVa~rZbyHDJhP6T-)|dSn6GI5attrbk2DQk&AbR1`apg~RY z>BOnpD(7Z;vLMDn1M_`BlJOE<8k!fjPE8rVZ_>q8wd7aw0PKk_?pGqRm~?L*Rhv{Z zpgp2vg1?!BJ*6v;WXDvH&=6Y#==-22B^QBlY)G=BS!VB3p)Sg6^s5q=q7@t}9$pwD zxnBb{baTBV<6KY_B_=fers+nBAiZFTpp~E%>znxD_@4N__|f<-;P(+Y_r=E#>K^IL z^DT<$V*2x$7t{2(j+`<09J{wGQuKZNR3Ta_V_7ITUf{sK@WY`LjGZu>Rc`S^;U|bM z>)Z3YZNK#KvkwnAB0Uz@sLkI;4x^gBk5oK5F;Q*bN5&qV!>Eq$BOOsd=yFv1_kK>b ziXZ_5foRw>h5XV4IjyE%+nC@hKW~z8hz1)6`%A+5w3L0HU-&9ebyuzQUY_M_)FOPG zB2z*TUe`T|WUB~hcI~UAr7c54fHi85m>zj#u&o||cZ2V~-)bSiyP>-ij?bIVi?E=- zjX$*rJiIBFhI;=tNkV4%g6I)bgqEWvl05iQkL6vkT#%J`mHq@#k5%3!w~DCUPT$K{ zs$a0SD^Iswh^TDWS+ae1?cvV{snW5y9RHvN?Z?al1W!eJokQr;?BOUqfUQb z`uzLWNLRi!ba`A1@EHh>V;n~{f_pP~=Mq6Ab>(|4Vo z!pTrtYkOAH-`;+SOG0bfJs#V670oU+T zEjsZRth9~g-61XwguMu+`z#8L8;Gpfh`8@xF zRER|Q@FBOGt~~vd+|G0i{c6CfFdS8ENUCM(*id;eXrnF|3ah4@R6C?Np@TzLk&xQN zNfw{=;v{FMm2OR=K^YJlSK4rfTabZ_@nIxUP3F!l9O&;7z7Cz|H^+n7@3ketA5%fW z)9vhvV>z*&NrYUoFL8&`WWn;p1UmnHhk!hte4G|~h{ui4FQdz6eL|WgTChAUjVLB>MTSzWkGniZ7;z&$1oR~r?+aO4G zGVpw%(Drz`9mV1~k23Wy!5V5oCz=H5m2Of&iM4L9<#1teHM6`5iC8qJ>jQPt{3=Rpf z6#KoSBcOC*r(hEUHgp8`b0ilHc%M_Wo1^P6K#)m`=+3W>H&4|Nge(nQmck$$c2{Y#WwAV;D z&*X`S-gjeg5y$-eUTd$O8*6I;%!Hm970Qj{(HVXk4; zH8ih;B*>TW^H*7o2|jsM%Ry>7Ftsp8uz2F)YQ)r?XF{h|xmx0BRYE%2^gMVz+U*{Z z?NirMHPKFQe@N(O*)C9?o3!QaD)1Q;K5H#9x4e-D6nI58YauiFkVO1Z3{4IHMTVQ| z9{f@*@($Hsg~ptt>ojL%qT|%fjDm;dh6u;SI6!A!`YTBAjsU4QFUyKy1qQFbF?5qu zu&yyu9%&M85ezdY*d!SB0MyYNrx?E(_Fnzmzl)lC%{b$36PDivd(d^GK-XUiuh|f!V|3>^BsG&?uEC4&-c93E zjW#dI#y=%;r{-^Qq-a$=N82UY~4N^Tv1NLyOf9lY%71H7zU#d^iL_wTWz3T z)&Scrb`3N zpZ+}`A|;_lO7R1qO|yB&Rd_CvEP@#USgdcH~xcNuoq$Rb{+ zu2-9TM?-Tf@s*vlM!rfNcNsp{{I`$Z7+1bZ6?Yj1*Zi%guI`(=M?*6!@ui)#T94lT z5C3_hzw-k7Dnaftz}Nhxr>6xHs+_Z|k`?_YYQFp;&V=p%yIzU=o9;pdrz5WfOB~y{ zM;v;`RD#6VgBu^v_vZ_A6(c3AkLSIvMjqQbbLb4kjhDwR3Jz7208hLSSgtTH2p;tb zn{oI5{?z54kdwNjYSo_u)gAHWd#LW0RzE@htGmOC>nkmS&h_BIXMbm73LQ=rEW8WH)sBFe zS#6<+g@W%`%6$g=Ex*~N%i#Y1fVVX-uRsBwx}%ISENFts%}F40>e{>whhiv&UjfZt z>)|J8Wl96Nf%-i@i91=%?=E5d<#k9aj5A^#jBVvXzYI4N9lvHJ2JDyGSD(_jZGWHa zzAU#)L=P8u#AB}|(v?zLMoR~i9rKZlTY1+kqpB89a?wDy8Yq7e%{loA@?cAa0_#HI z=*-!k94@8&;>}Ct6us)rT&ZgEtEliW)fb4V&+`BEsMdn9ftIPsjlttA)*1tV)#{(} zGrxIX!lpmZ^dN=5bb_1GVreE}H1yE}y&nN!tKQfJ)AIkV%N zkk8ng+w_YozP&@|xy5gl&HtGuTx|7K(lmjFAh*`WyB=?W$6 zOd?=r*92KUF@eiULL;yaPpvoR?XZrEZD|#V6$d)EIEAJ?K>0eYi;hVXtSH-hcr^Cd zMH_n2jxv9dmHXF2o^0*(ce9AAiv&6qCA#}N zDvZ7so);Z8CJ}bNdQdo(3TtZ9Q~y|G1hDZs{Dx=IU6XnhG%{qkqa18^cz62cMYGhm z8t$wp}H-iup99_^75S?^S3Jqa}ZW5?rzwN-Zy5DiG-zRYL#j z@J!y*L(TV+KbrDA9+}Q#p5uJq1h=TEscF;C{<{43zapdQTcG(9=VH(5I&|!@^_uk= z$~9l{P8b+16qi_lq8Q3P0;L{JTlXkV5~xU z)x?y_)`uj?Kpp>})E>?b^sa(fzlNB^8CG8bb9%LuVDQdL+3ErlI@4y>mm!hbI6sSL z4`Z_T>G8LGw3klG`lnZ=QXYR1|1)HTig(lAf8UmELlNCjX)g%9~8vV1T(JuvH(|(da&tN zbJ>|Jkx^k3HOl6*bH8|gm-uXYx|2ZrS5Pp3pOW=GVWZMd&b-6>8;Nb)FrPy3IV#=xd@X-^c)cMQBChAg(bq)u=@K7U^ zBh*HvJ!*C77Gq*VOWXNrBBX+`@)ulq0C3hX9--_EKlkV!77%KCu2Vsp;u5K@3a+VVOzf=OR`srtNsXE#3 z0-uy!W$4msjZx*E#EWvJy?)Oaj%qd*!dPdEHk_sg-8C1qZyPPyjg9g`pX42p5_+CI z)%>rzdWEl{=wWb~5GkiyRz^a^8g$8PW}sW?@c6R%Ap*$mv4!I}`?{ke%R|S>=ArXc zr&AT^HaiTOiHtQ(SB4A)>NQ~>e}V?-Md83x^wtdqX&zN` z9Yvr55HzF$L^x^yGT~O+PP(OIw-OJ9?`@V2K~GKij$B$5r1`7>zu&zw8$KfeJHmkC zeYzc!=pLO)bAiD|*0!$1>6VyUPU9+tk2SmHn&sFd_uW)gLAya0zk>F9Hn0FZ+-|vR zS?|TOoHwDz-nZ6p+Tb<1?Z^bV>?1<&oUl6sns~fGcIoQdd7I_jbV?qmzEyQ=xmx(3 zfJs)1h{M2Q+&U1X6wtC!TQ>^+B-fszNU{~P{o@uM^mn+y3AV>- z^&QSmv|LZ@{`fa?9${XWf2Aoz;wEUkfKrxJ7-CfYPAa!ZnYv_Ql7iho+<+nPN3bYJ z1x;iF(URV{)$N$_od%@Qu-9-RHw0y(oB{<+dw)=wUwkSNdL8P56v^w78Z9))0sin* zgV5A2&aO`Pkh92HMqyG5%~z$@kqJNhF!ww`jYsDCUjZ*rkODAypZvR$Y;8+Fiq?+l ziQ-FvJ;{hwg7xo&#S#+?uSLsOwS2sAuSmtR;TejdToZ3VQ<1NTDyXGCJBX}%jEFH_aW!h_Mad=$N24eCz6DClX=%<&oH0WzSv|&XwSPW z{Q_bXWqd<$I3Z@1$(^WW{7w!l+D3Bg49@A1_D32 zi|tMm>skf^{N3|hYQG_VN|%HkdaX01%&^nX*|Z8u=^04;q%L*eOD3JOSC3{hNEm&e zPSh4zycmnkpyFq7(ck%@dQ+Q2E3V|9LCufs!ufq?Qav|2>0CVz@OvNV`?NU}`NkZ7 zj4PzD&c;YB$J*NVuz=4p)gF9V={IdpOlCd2w5;xr1_l;p{qa6>pD9Xnmn6ln_hcWL zX#uz14AXm3LZdfF)4GZVE_;1uunTY1G#l01gym%woxN_NmL{hxctLss z^|e^yfgyc6&yq^s+_E&AC9X2W8&t&!hX(p;1nn&O9;!GZJf?biHjNwtr}Cs}Vy9bp(p&kv+3vpxHF0IaTd)LQ&Sy_-1U++yZge0ZxC~2ILO-8rXyP(=v zvQ4Ve=eKSp6PI9aP2bj6FyGMjbRK&|j9RfvpOHBz(A}TkL|zm31m%etJ2;gk zg%~RE5sv*~&|wK}@gCP~q&i@ih#!7_P`4(^`#qgYS+gehWhBBb4EM$Ax9Vj%_qY$u z$bL?sTTG)uvW4E;=9!6ttF?PU2A^=UgAkEcXy1L2@_>gFKR=9}wfnn=WEkN^k=n3J zOq4etRd3^qTVego=^oD6d|xv9G$HJTU^F6&yn?yx>eQ#ZZw`|xPDqnmHXJGHxZ|U) zjW&6GAjh(KdmoHG*GS1`q8E!t(4%K99Gp9i7Ky+Nd?1`{j9_kM{q~G@n)xRPCkoNj zKyVkP%amN|1>|+>92p`_36$v*1ZzO)QR#{a0sudx3ap_~b883VXkZa{$T9$5&%2tl zss{HsIQ&+!d`Sqc{{C_y5lZ3>jAA4|rVzD2V1#6@Dqvpr>u?v3OWUFr0BG#s{2cmE z=6q#ETnXDX>9gvo!@pxF<4>>B#g1*84j2estqn1!+n~4?S2Um(ox&MQV`s!5o7GFE zGhi4WPD^8{8z&0;t;dCYhIuPPGHryM_l=5D<!fR*ntF$Pbd??iBNeaXFJ>kvL%`a20v zpldBajope~uUL&|spt6``-QE;{qQ9x4y(gBz7rkK15)~7vi{BhurNR4x8Fwi@n9^H zybVON5WNFFBq19`IJxV>s6690+IGPhMFB24$$p*uFh+q~x;j}$K{wBUOrU_g$Occ~ zpHmoSH(&>P%YSjXS_ymB;8@1I{KBq?7y!j`Nk0OOXVF0-L!}sD>4@yX3NwS&KNm4T`spw z%iMckw4ydiRV)@BY68m_nbXm|<>ofIG{WZWMWXK?Gw6K4vRIVQiikHILZf5K$ zqh1Na+fy~ozUsr8S~PL-zl0v-uH`v9LeJs)wid6W-Z(wpS^Pr{I2C9>6jR?I$}V78 zldCstO{yqdHRb`i&CE;87*$*tmTnhTrY*$fWY-vHIz{5G>LIUtKGS*CUDB_KLDw)7 zo?$MsI-LmZzH#jD5Jf$i{U)Ckq?Q_>HCEJ+-(=cEQSpq~cu$vFIk^6qdr**Z-Jg_1 z>ecqx)IW7xIvT7jsC4105vs)4AbmL9iUn{!w()29R6bno+-`i!30awpxQ{i`ahzDW z5Z-o3CgljVsXVqeurX*Xs`iGP=Y}%rllHJDQv*rtUw?v96=k!l;lnv|auCJw*{Xv5 z#kwLb>CN>Gfqr}Es1se*c0*gQ4lzJ&0($qmf)QP{jS{sRZ#tcvF&nN;byuTPkR7YU z?NS|uc&fE;>n%!t-z5#wQ8jfUGSZpe@x}oDPf(y^B)MDgt%s~l;2>Kby+@}6n$6p< zFX&3I$e^GjZRzPa(750jzsd*biUP|YAj61qyCn^u>g**fs5NQM46`Qu#_4K=!&WCw zyO33=$R=3h@a~)?|H^!5OoyJBr-FQ|%E-J9ALoU_FtK`LaF3Bzr4Z^>B@rpuB;rut z$x?KqBRY!it3#y{S9!6pt%addHGjJ}cJ>dBs(RVDkgLJ7F8*iyE!h9N#Sh+~^03=D zPHH(J$E&y6z#N<&P8gJ~9>VxrXCMV0uL{ACW51)bjCko{F1DVB%k4&lF}&5es+K<~ zq2TrD<_C>E-Ar%2x`#@r0$rV06P|bYiyV9n2mOhPib_Wz)@Xk@ygpp^0h$U8P|_Ct zrj9%*eaf^~AQPKT$j>iwYA;($-ZQpgIt|IOvIWqEl^09q?eS(30FPREhLFgs+bxN{ z=w0?8&%Z`SK!lRQ%osoz>~zc7FP%R$!k!^)A=LrrOFnB2Dy=6b&?oU*)q4|lLZ;@u zO~}RRybtc;G8a*CHltv7i)`Uask;Il;Edw!o8Z0CZ8Cl1?G9H@kYe(LjWyutTU4%~mK z)PWw}+^~uG#m6McZepy!FLaarYIWr4-`a4}uL7Mij}0Z3F+O^Adt!L-uphx~3vIJ5 z-2|NppCt*eE&}Tq6J`90C6RCuct(2cDY$nv|8a4=jp3}L%INbI-2G3GL*DRB_kto0 z5b;#_*wA9x^=Ogk1CUDi__fxu6YC;D;#J^7XA=ca`NKDw`yOOgsw0GZ5vN-01p3e! zu)1pwiulw#fO)1a{~i_GsHyY9jG#6mnKT{0I2L&2$jz^k7FqE}m^9blBsyxAmL?_F zb#rx*rko%S`C~D~RQ2AU8B5JtW_!%OqmZ1lGGfQb^dgbc358wGDG8E;s3deXaZNaU zg(hsoVw^1-e23RXyVJIBoqs{$b$-RD4yMHlI&_2G3vyVe*=}P?9C;bTxIcf1f5gP; zdz0!T%~7sce-|mKQjVYL&C`F(c9}qDr@kplh(}Qzev0Yv53g4b0NsL{LkcElbr22l z_W{1K)T^>Vxx^1yLo*=|C+wLBt*QfHt6}%+HB0g1f9I_Nyc~CEJ8OG1lYyc!I(L|v zd^%M#^g|j3LID!*N;={YNo#henqHiUn}{8-mi}}F!-sRfHv3eLTEaE&$|LQ@(i}65 zGr{y#Eu8RGuc`~W2V~M%&I9ZL2q6_BDpGjYoj^7@7F~oYrP%96TC~EwVao7`Kpp`S zMO_E6`~5Dt`bJHp<7+t%w)a&tuVV^Ok$j|3+=FoV;RCwPd@10fkv#R+kk>`TG5V~p zAuO;z=q8)K(wBqsQz@j!QU6THJdU}K*!;f(bpPrwbxEAk2F)>486XAhN)=_(yR}=f zbKX#J2y$zgZ;!=WAgY@;6b~oWE`?Xhp5T7#ri%Fv4f=}8cTkH}3^^M5@_{r~n2y-e zfwqX!tyhcUDv4OR0>+bKGDL2)WSOG|X~bk|6eVfwK2m0wTFk8=6B80?*u;%NX}z#X zs?TspRXdwLNl)A@ACMmV^+NJb2I!Um_t6P|aVMeaV9 zodmHzf{gEIKG5zSHb~AW@;PNSm~G6D{5{cVJWH_8jM78c!x9XHqnTLh5`?w~F7-@= zto{2t@FH&jtw75}&js1%hpove7qWNW7MkC3{(!Kk-pV@uzBfm(F*S~{hC%doi@-kB z1uT4a#UzF+v@RhI*l&dnNt{}8`baeiy5S7#ykt|(guyBAOYG-wORdnb^+iDvw-`uo z@j7?}VLXuG*sU20OkCxl>X4zDP+hevvoR8%{3Vom%*a}@^<#)$1I7ODvUVW#z&x~f z;o~T%Yc?rnD{<_mwdkjDcRXy4c#EgLnE550+V>}Dx%@?`GW5emNGpbQQaKTVsK1L? z03`_;vMw2nXxek=53UILY`Tfj5S!&e3DgS6a?<$`9!;713)*I7KFMynU48`u-M3$E z4s|ridH1dxE&>#~N%{+o3*4K?9R8B(Pdlk4G^Ah`EK_3<8C!GFu8874WlgNz6N|Km zomV|1A)CCQz(u(d4_o%10x8djkk#^s!p$oMP^gN~AY1`L2jl(qY*o$`h2Fj!@k0i( zGy8jt{cOKnTpB##O_VE%TN&${kA5bApNI?H{q@{g#oB$DNVC81yq^VfBbX)N@0Lao z$HPvrtK6h1kq%RWYW;=nLbjgU=)A^=+b?SK9uK9qQEe@NS;#s}Z5bK_cpMDy_z%5? zOJnQ-M(_kLQn;LQ;E#a%z$ZblXCti9xmvsS<~(bA%lew3!PEA)TS%BmfUss2gd zF6ow(`boy{&RgF%4(5;2b-{iaGx&7zdKeH>FbNs`@q8%>G;HdHmr|(R=P@wA`U;0A z2Y#)hi;hiC?mkyFI#9*sKsHn%OO99r#t%L1tY%g!wsZ7O%o=(D+CoHhjv(FoCmSn} zdI#$ny{YAl-RA=ZikeqK>$%xvG*vSi&<=9_nEni zcTc@9|7Ef@4)I+swdAtg1nXSvqNhoV7X52SULv+SW>)i;4%BUyw=}A@8#-dCta=~4 z@{wUol*R;w3$E8bBO_;2u68bU%?EonbsB`U)@gWb92xO&rX2M~>7lp55`8?qFGp)y z`zEVaq85eSl&Kaopc+F&><|Q=ChiampEYAEX}CgtXL-#(iw>)Wj(ee4nbIHbn4n!$ z&?uOCl|Yz1L0Fo;A1LXcr&_y2D_7FBc!l($Cpr#{Uzy6_gB=mUo#xb8xZF(zRtaRb z{@Pg`PY#KOn-_%!S-SnpLniyyz{yHu&3*SF({X2j!!{gVvW&qj`o!_pf^e9!PG&{C zW2DhZaaRif-idg3GeW)h{aCh72DHGZ6(k|8I}8N^gfC|Lw1HZt9wZi+kcpP_LA**H zm?yu0sF~xUs{5m_7d@2?afPfwI**e5p2C#t{sdtREtPS74}R@^VHOTF-`r=KEHTi~=jP$$UVQ$9=lV5#TvQz?C@RbLaufG=yv9<<^COyG*{C17bWi(gjU#v3L#&azmh|V0ux`xNmB-)mHD{E zAVP$HEzCwagQYRX3a=6gIlWqwNzVsBabV8TDB&+`kQQ%P!u{h-QzAQpCw+Un!V|Ln zJvtaq2aLJ82GvR*6}PxtaJl$S$<@|MmqDr4tD==km(SjrgT^Yzh5j}O8r6D+3w{Gv zrblTfi@^NBZ`A$QOu`sfVksx-vwcUo^TEAt%3`eft0*(tNS@f^)SsaGP-56KN8i@R zCtb3dzcguoDyKc|ldYjCe5(IT;qm?D3PapJmk$M!IE>?ecAs#M zfnkUij&4<5Y8VIwmza@GW*vfj;*D6Tf>m$n-SfhKvL^Fh+y+tozRb87;y_3`2+TPe z-V{z~)uOQ(@A9*m6ma;Ywa#4jb=z8AG!{9-pR}i(lhoY!gOK5Z8sdGD)wl2575`F! ztf2u^(#fL&#!5OJOceG#GRWijS&52-gGp#smU6{KWf(C{p}%0t%umqEuMTcz<+qOy zIs>!yRRuBtcS$UtaXW^&!s$6zk2T{-5Ui`^*50Hz^LCd_B^$(vzVpxQwEV0=o`1vv z0*G#628`OfXCTs^V7>2hh`T$nY@u_o5&Z})Bm@34-f_b`NPYRt^m%F!d*vKb^oxCV zOVeTMVaHznHaxlve+=ucu1H!!jHaxd2JMJ?GWyfmVnT-iVH2r7T}t@rfJmu#hUGfa zP{vRP^beol4Q>;CV%C6)x(*efEHP-hoQ{n4XYtL-JmrglwcUMk47OZ!B{`NMEUA*L zAxxYa-ak~sPt^4@%Gmfz4G37({GLxpr7DJ|z{^q5AS&QWe8)f^mL}bXJBb#gX=+Dl zPlh6j%V6d-2MSEFP7m$#fHC-tA4M0ZuZs}F#_Ev^qW2e8U6`kvrp-{c1P^uH^@DDP zWq9G7r?^3@5o(m&XKx%9yoO(C)e;be7Si_;y}jF0Q65C;Ky>h7 z9)FFce@{U%K;j_lYdaXo`eE5ZQ&sAD;~ckCq=Ds*s9356x&o%t+2Fl840_NT|6x@& z>{}F~QA(jidK(X9o+zo}jFc5D3YelkECQ9PKyWSudY)lF8M0*a#lQVs_qxw;Ug4)P z1eOjt`nF*&SiB|H+E!&d`xiBF4NsctX|fJX4dHex&mNzGvUj{mdUgHn_h)D&CQO`) zUo=(=;LFj_-L5_XQ#@Lo3dl9tFD{g{PWX)aw)}7s?|zf0n?KUW*PTToMjvRO{|kvQ zbn(xT{~;Zp^3cZzTB;xEvFlDE5&ujA`6M~%3|UbBeS!mW8b5W;+WaOmH0Bqd@)Ja5 z&9Pf95OO-=5%(pxU%cEv{cMUiAsHXn!)_n9CY@06<{(3iWv2g-j=+)HM?|nZJGF(> zXsG6#EZ)>N>;2Su&IBn9KdIw=T1VwBZ)VOzj|>z#C!Aeb&o^q(Tz-ecvsHMGM6BW- zT6G+6z_966BYVzwm|qq3ekIHu4o{ItfMnElG~0G$Dy#&WI#ND}+aRU1sZ;=xC7V+&6PhH5;~KZo)0_Ayj1FiYvEt#_Mq| z4G(L6u014f{mbIvk65t;w81u!8TCjr6sHT~ApP9q=|*7_OPhyAs^&*4puVI}a`hCK zyN#p=h;a#dU>Bm7@*i>4lG&dzwh0Tm9>flXtr@m9eb)~K_3KZdF3?NT!n)=P zs|*=BVafAUb4}SKz!@uh`)Nmp6Ae6vfZ5x}DgI0ZFGR{kw3wst#4n;(b|6aw?zRUG zpu75I7J|y4`D{5y`~ttOV$F(geE*wBZTiEQ^X>l_$w0cg3*T?+IfWkDo*wh<_uM~6 z@Rnw>0sKV|Yh4!)bk#Tf_EIs^nImLV;{$5a;Q2bQ5vBu%_CmNeWTZf?7KZk9I2G=c zZLm|MpuY%UF|}@DPj<;r-f>Ch^QilR(&z5VQOvk_MG|cK+AS?_xFNUK^0NNZD*vU! z*S`%rG`-2&krRT{>a7PVI=_FG#_Fc3npXU%p&2s9JDY{Mwxw@c+nc` zsLIV6uE(s~+D0?NO>luA;j4CO&eE`=dcbmB3-f(AT zj$#HPZ#abRyUR7KX)ZE+4bgKbeT`?=Q{Dt_ME<|)1$!`~#G_fN*w5R2>;Mn4`eUng zLS6G+-(|&qrEvK`8#>pdx68=8M)E)%=1Ef?BrH#jzoHB3imU|Ob8Pe?E=Pfj?oDF& zcW^a5;d@PbW9~DD!zqcNh(T>Xh@98;caiqT#v+6I;Qna)_RGGA4;In|eZs3Z3ZfUA zD)&&bzu@bf-Ub$PPP_kqffl16XChtTBD5`m5|CTP&h`AuK1 z0)~{&0beQ+LK=`nT|>#CV;N@V!u%;zcgOJ&>>4HL(ECK#@{z1Vw2E9S;k5HL13lbo3!62vLa7ZS@Iw_Y$8%?%p*x~s-*->cG_&&Ob&$8*IgrfKszj) zzxQsbZS4(uD2X;#Os&+qUIM1!R|Z}B*G~Res^y8hS*Iw~i96F6JZe=x( zh&U(teq*{H)4Ba0@Qw!U)|VG3l4AbH+YCitKnOB0x7?N3tGD-wB#my#IU#G-%$YNL?{oIEpS?%e5;sUfFw0$8VWsXIdn4M$KX3Z~?$H9_JH%%`>zvk{nMkR%Vvc|h+Jgt8-xMLfDlejrF z{lP^zEpIeOjJ-QA!ZOZlH5>57T^M%QoTuge4eBn56f9wkCf_AdzI2Ne1dvrg@7} z%c8(y`i`aR-7HvZ4l=J!ZT7m9+2bI|uJ7VeBpxDZ;irF7#YkAxca3MC9%ugzb|L*8 z&tAOzUE&rnVKTvM=Z04{)V~J$-4(g14C2uFuarDm`44j-i2rDy?UGK^G5QWS`IB4N zW;}i{8n0D2=xVyOX?AF9MeYWy504RNfjh_tu-)aGTFNww%+*PR00Ih;sZ7BvxuN!& za9A1MWd|SN;0|JXhm4*L;7JPLQb+IfPB)*4KfNii9^Wavq3Ql1vIHJg>{jwctbn_C zH*Ulea+^5@Jt5L7;oMwWTLvZbuhafz!i@}R{*M&6iyb5>e-L4}II9gaXopvHlO|hS z6i~VaW$^Sod>s;s&^)M6RZV_dr4`Ri)*P01!E}jCa0d~vs3^@b>5F37V<|eqba1_n zk3@&2tsS0gL#z)&ecc*Wt!lDY?D#e1o!9?bimd4>kPLJ#o_^II5jq72(B ze2aAhn-I9%!Lu_t6TXn?`S{g0yY^n+vHH2Lk6m1xiO~s#SBV$0o^i};S^`zC_>@!K z>Em6%$Jl%r>U7m?^VSiw<9i_>qDil!S7GkG{|ZAAa>d5t(Zw!%atl|capJDF1PAuC zl9a(&lV=8bvmsUicLc*Yjc9IZ?0Rb+A43AYVC$9ia&k6)JPjTWH;63t06 zc+cCVM=H`|1zVIix#G=ut^?H+3-qfOi|QWRHp(eQ-p6_@+4rlb=5KsicbSg{%`7!M zut&3?hJgp9rilQ}#Q>+8rk^P*TNw|UgS zILqOSrIqf(Ga~|?5n(e224$spTGf@!5o2I{B*T-b=Z=+O^mOh4iuwl8jL-bvRx*%z zQ_!L50(I$ap1sA^!Mgdu(h^cRFuSreDV$KlT`0^s4z>kRaY0>?P4EZjy|h@CWrI73 z!L1VM=o-Cc-24yH%N~D1KD|UZAIjQqo@OSA;V$#(-^4l&eIi13g*adS87tV6AdKNw zmus&Ilaz1|e;yE~}OdrZLtSc?D$@5NTZ1H@f2cDn!jk+1c#1|H< zH(4|f#nKj(_%|B~BRElPc`c&2;bl2CmoKsBmLF}cysNVk$b}^KGA6nmDj=)l!*B^A zSqCf~CKFGFZ&cVYp{ZDwSYSIBeQicRu!Ar!amytA;oul~nI>cBOLzG#V7lI4o1$)Q z+bF|AY3g=vF&Hp=9zpW>NC|O^|HTX(`6JL0Re&~_EDzcoVUqW=EOV7gf77U&M7I%d zLK9Pr4JEsYT~>HQUS2n`p3t>wj=me3zzevyiyH$91BZ^?98*Cv(yOty8nzRkEj^oI zyMee-BNz=?%lZ)YHhAUERsxpDm3o63PjULQ3wG56o@cQ-i3+EdP#IrqAA1~nh8ce0 zz+m!TE{&WlX&h#a%n?c243- zIN$Da?NiDK%kn+eA{g+N#pEuOr#777r|4K7XI)<0UV}g_Q!VK_03T~qt6VK(2UPe? z@UfO?S$OLP;Im*-b$&u92~`AcD0m;VWuWz5RbB0OtXs_MCS1s>)YtOWh@r1%RN8Qz z;bCV0j(hz>aa043y9}`5#y0)VHU-Ap-XeHyUzQe*QtuDgM^Uh2#&e*K~1F`EUz0hU7+AzJ4e`{ z;r$yI2Zg#aHod>`Ld8ckp7-5VSSPQ_Y*F%mU*(X)Lumieb1V&`Tm?K=4uTxluW^PN zG+8T3H!2)@MI?;vc7>9Z^TkRohD~_lsr)6YCH%9Maq7%NkQiHxy1+E(&0mLY%dbt( zOdqu@^rO+#ze={4KUpUyS(3nF!ZIdn=aF%S)>#jfECVg4f5)ow)e1p&1RoS5_u;qC z10+#RX;X2Mw!C|?C+5B`_i|~@=Ooh+FiVgC@*oHH#os4^e<{U*B+Zd!viaod8M}*? zwg##!y2OD%j9o2jsMt2 z#ASAMRotETKsWpfiXj5z zdF*ESTAi}en*w8We!$WvRMA5~boM_YwYmWJZl8dnriw@&6Q*R!0z^GX6LYUjI_z9 z#sTb4ALr9WkDi^}1-VZzQ>eMmxn*}$gHrebTIbwSM^9`nmmIJg_dQ4F-9_$xr}PEY zPTzRvOG~f&cQO`~J_V$R0DFopJ?M=l^(5}2&fsKcbp61sLT_@tqwq)AJs~Sh$Ec`; zl9p;Y@W3%e$!ZS~glMb`bzXxdmrjhsmUtS3_1dUsFbK=qHwJx_YmdfINymtjzA5 z8y6i5b31$Ldlz6NT>h`x&t6CnY^QC4@05;Lhk#RiP2rpr#sCe zY7o3BAR#(J7Q$Nzvj&FcpCN2p(*dw_rB=VqZDlO1IBU$t$pA#GG>U;QWY05-<8D(0 zHK~t4ZgVnFMLy3m24jAnPNoX#kTuQvxn-29kAf$F%{uNj?b0)Oyhm7Uj@+#O6)oqN!QX>wG& zsx!(Q*Ac*9!iOe2lIc4Iwyi(p)!5i2yX9f-cdXf~P&N`VJ1~EoJ8ny(R%$5Xv651& zB;Z_DxJ^p_VRx)W(HL9fTZ@@qEePdfjH(DVpQ0p~x1KjZc-(XT&C7kPOKZ>C2q~mC z@4v#ry>?f0i`@J$ko-v>|mGY2N$Z=X$jp%zrBNKFu8T#~R7_=j?fwmb-1U zj=+0k;4X5O6tN%3tkdUMKd|7N=LBm3JNd-E@}(&F=n1Ka+m3VfxGfXRy>yp&i`@M% zPHZ?^MmP+y*!7d!Xu#SyF)zNv!&4BEqJ4g(Cli)9{fcv*7?Rvy2K!yudm?PqGcxTKHbGqB*1Cd8T{h1@NVxqsFLEV*+I+w;QN6DV zdP%TLWv6(bEGF_|3sq>zG67^1BcFg&_603rw&xhRW+0YzZZ>WDA=iMoivSGXUvi!0 zoaGE~d@&NAyQI<=6O)u90%54-BnL87!H!C%+$Q*TB{|H3!%ROZfHji0(M8e6^K3XT z7O}r&=b-3UzJBA}O~8d3OW{KB%P06Kdn!&IuE^(+|?as5+*lkJOW5~ zIpWVv0tGZe&zd8Fw8o02h1y`M(tx!PRO&r${K}?~&Moy&fYGv!ap8+ruagGE^mAf4y zj(jbEk~8X>X}ix%!1y?o3_NVel}K!Nu+lwg0b$vPK^ML8cs;FP=P)gw;op_Qatbf`6} ze`~l|2zxH-`4~_ip506Kr39<~0UGQ$85;|uj)qacgi#31)nvdDcLOEd`keR&a8ve^ za{z;^*hh1hE$CLHjy}6TA==;`pis6u%#M6W-@|FtAXR=cEHjyJ*zwRchmPu?nY>anL&LBtPsxWWCKtp>Q#j0mCO%> zw^z4&54=~|^EF1&S1){{zsakGAo9FOK(ZyYjmmF8wOe^4lotT-#i^o&A$mXAZ;#ym z5ctFcNZmET=moX>k7=5(B#=Db(jK2Jy3^Ec;bWlBa8=dg}R z1fN01k!Xgv{mA=q(VX<;JYOKv%53JkdYF~t&pEj?rV4MutBD5NC|4DiR>tHOciWij zP(n9Tx=7Jdv>&ZS4emM_S@1iIski3|8j2Q>9QXoelSc-ey#e%k1YZNz$0EEP2Sjg< zX)}A>6>AMY5%ZhvP3F&+O^W~9@IL|=WyP-q&{gzZY@|&S7gR%6GGiZry2bW}eNpz2 zE(Ji~0T$vTeB*pXh7@Q%KFmJ+WVHwbgVlNl1-ArnP+z-(cFf76Dwb` z1UeDSB?m8q_K4NE<{Y#K0StDcQGFc9qaDn$)`|X(e4Z9vQif0D27kqR3n7GcZ zcLeJs65<)BS#2Ae5e1VRpNcPQ(GfmNi@oswFU+zW(LiHX-L?O@djNWSWE$Vu7D8g7 z;Aj;aBJZAXZBPVpESjTs42xI58Nj_0m8W|daABtLz3T_B(BaaKtc5Cs1elo7cQ(>i z(0j{&rPAYl(w;Ft)w;v9TC!U(TwZyzfF$fBN_GG0ldv(;wbj4vtNWa)iuzCh6si(# z+8P?F6b+2$%p1;bzMDa%?J}Dc#sKe8W+LDb3~(Qatca?B@y575=7#k9q;8}#m!I>I zDq;2k2>oy)|5_b9+e>2GN~W7NZ9RkbnTBobXu91t;)R)VoI)B8(afZUeN$tocZewd zc9$EO-n%mwR`tAnNwrjsH*X^>km*N^UJ+3h*>c-p4_85{mQ~sd!1()ed>?;fhOaS^vmvU)n&`#DMgi{DT+RaFX` z_mxsY-)3<7lb&ZFC5fvSW<>OBILYq1OYP3jh=`rC(mUDvS$u4wS^L;z>rtsPB|==e zaIrh`;~v?w(cuW5_V&NV@o96|$b_KdCw4l$f;$ z^V*&Mk&ab!=d}ol#5WCV1X5zvQM@V6TgR^|z)o;uCm5__uca z;!nwGfT=R=I0Y{=LtZnWoVXI11 z#kSz~voo9ue9^}rWg{b%W+t7sQ|q2Y&A8X7sAd*+^V4+E_(n}yGhSaE7rDU4;*7|%kfE?fNBPY#f;@YW<;+|CXmT3H7iOMdfTkUrMrdEwpOG86xpOn*Rhn^?3N zkgqX%*M`Z_s#i&R)yu5aHmeV9>=nv z-_i(u32yS1B1d0FR{D}R9hp^IqL#b`zGK-v#jc9?`ut+0*!<`LbhAAjW%2?MFj%lO z-uDnF#jPv8dZP*9p^IUb{mKgXA=$G^rY}9UBcpX?gWGh5+U?)Z+$X09@A4VpZ@L= zVtADl+c#yxRC{H=)HPe8y>ep>&zCh03;^bftM%*r=_jE5x7;3Tk2ETseQHJH1{-K5 zqgq9G=XEniOpd&&2V94jQy#7bG4%n;ITqm!M&8P}9JN>$Wzfxo zn-EFS5iZ5BXTLoOn}vDGes0P#l3w~!hSD^P!7)mQbQb0WBHo&65Or}Z!}z47$<v&BahyVse)JV= zplbLhp^WutFhRHIfCc2ZqH%d}cVna7lcQRfwD?U^;=}8^{1}JnztG$mwDW_t4XwUF zg}F-luNBP4nbwMv#$*D8OglLFdp>{(>#K?YRd)%sot@$hOpSSbyzX=V#4Y||&Zu6U zJPgdKE@w`{bPR-628Gnc0Hx zoc`H2`Iu&je~Egd`dJwr1Hz>2w>QUJU(lOM#9>3-;i)^>w#?`isG3l^XlIW>;8TCE zXJ`ADJ2{;nfgOg=2?i71O0~tYFpb?GS~7ja>trSj7LEW(|lj zdkF6-ha2;r2^du^Te}h);OVl#RqdsWolD%n6u7;z^`gdi+F%2M4GRewl=akEsD5sC zze*dVU6iY$5?$+?y3VMjmNp{(yJKH}(Pw!eQ(Bk*WezX1UW<-n%_n5Df4}I=VBKWLStsR&3 zf#-7}KpOoowM!%peDY}8%gxdO_J_zvwr8f(D!MF!d&29}_-arV^$KIJFsZ~SvY0sF zoVj$1+hDKSd>Nj+Jj)|mGiNEi&76ueg(SmIz zdsu237?k)w>CYYD5pdT?ooHEJWkvpG=WR&bB!FKKOf#>ay5&inC>?B`z{0ahn_-7s zHw%;eVc+U_4SSw$Fg2&(@)|DDUc&12?`hpjSo1b} zIT`^aH2{Sd2Eu|SXH^vth7HJNS`JQA4tGz=snq)x&rsPPG`Sb`SCjzvcmpv)cXg| z9SE=8PrFHyfiHpxuadHUaYroNzLOh-CNCmQ`&u$l6kh=J8fhw`3`i*)51s_J@VzVTl<&s;^N4~l;w!A~yS)4~{GZ72{|u!3m++*9e2a6=}R%3Efp- zMs2R_tdiYG72P|!SL&H}o;;Nou%ddc6LJzc#nfh5Ypl-GGma9QF@x86i_bVS(BH@)q|J~J*+#(pa z|Ksv^u@RDVWAJZWHO2A|1I2LO5PY!6YFhXd6HedCR+2>>(Gx1mfNL}@Vk$gEfD;zJ zer+dPM$aUp1>#vqnPCM1kNU}WB&epVdrS0`)+`r{D3~jWtK~Akag&viM5J!!X!&F1 zHRIJWaKEACVYQBjlkQiNLDOZ7T1~1SSDb^aAM)P64TT&RFS< z`As6yoKFG`&0Kg{A#ERYK$R0)V<9{bazN3{1_@n!S!$v8a|u4L(V#@zzTxu)6D5=6 z2jhLvI59TBn&$o{_HCM?cLcgi_b`%?>FD}@PDm4DcU%mn14g*1%ZpWNju0wd8of=G z1hcP6Ix|!PMW$-=NYFT_MaYU45%3)6dF>^&aawt@SIk->^6Fp=O~+-UFVlvbJ{#Kx z8y;os(~?cAOEW~eLJb&V%_LUHbKw4?fTp0 zf)BQxeHJ+LxjWkygmMN3QgRb&5h)z=T0zaL*B8HBks7@H*j>mG6EeRrG{1u9)dnO1 zYxp*d5%|gmll5Q-H}tf5%Q}a5)8aI(ZcVGh2D)hfTalR56N z+7RLOY&X0@#$yVN8nqTluHFWvlID!MXnjb^;;?MVk)_t4Z5a)5n-p{3`r6=Fx%IUz zidoEkQ>+m41Livj{Q8z@N9=Xw*SMX)$HjN4Q?|cK56(0PlQZ72p9UTO^^@PPj^X@# z5INoz^$eLn5*qNuf&6gr>|>}V9zHDWOrWd2*+y~R=zIr&bVpNtI>``()~<5ugYl<3 zo%d4hMwN8Bynt#$SLg>Bp*aFb$7}b)BNsIW?L`Mk4NG%SJSbWh17!x;E`pXL-=_;{ z5#u{sNvS@!QjxFrougJ4A1xLR69gVQwGbqrb1b~zo?0R_wq;_}LI19uh##yTCUC7U zh^SI4AGF2%RUe8<^mBkh-f~;??exF<|J(oVBhb4O6kTL`#*k|Ln#G8S_Bc0kW@gBm;ut=As`?P(#?ig2+|>q(%qek)DV!C?v@7W z?R&QQddKI_-@m`NkB6|con7~RU-7*15U8T`^fD105dZ*}Wo4eI0RR+y2|*BC#QgFl zG68=Xas9z@5 zs)~Uh5WbYrbp`+`R?L4qSv8hz0Kn6=($I0yQB)8$b+F?xF>`os&f{VC61*D##5_d7 zmv-hZCQKf7w)W1V9^%Z{J4C_Pn74VEnXtFG*oZUhD5@|$c5pIh66CqZ!^bQ^#KgoT z=4AFlRPBlM->-vL;>?yVE-yuSdEMRJdED>vI5=7G@{5Rw@bU@p3J7q6cW^s<+Pj!| zaN9fI!V&q0&J%NIQzxsJE>;fqOc=T*&mCM{#F?2f3;pXKZl5kzFaEufz4PB=fd}Np ze8S7m!^itC+Td5kFz<>gJ6V~7D`V(O@QY#Z{IB=^t|P{aS^PgXgF7kqUGS(9L}I-E zVw(h!!nfPH000AIpFGs?!23N(h)9%*J3{ArO>ZXOx*KP}V&KFcoBsuIn2TU~=Y%hS zoa?UbbDeFfW{x#RyNAnDyPLaS<}A%_W(y*EHNgVwki8F?ZTyxLX0{n8F;%s8sL{)! zuo-6-vgy~v>yjB-HGNp1+;DgDpk7m%qxBU4Az(uM@5ldm@IO8HpBelQ3jV(!;Sf8S zhUsT^ioX_Q`>0u@pj>Dz>~VSg-FCa@my;g>cu+DJ;Ll0L1gNw|%lCm7;5#e4Dg!ac zyGn|)?uXtfQ>ME)DPEi1>&q^O@TAkfqEMNH)Yb+)UB!JvCLMwH*=qPE$(?Yc%A)(~ z?##A99|OO6srN`!!=yfsR#%j&dwY1p>E|WlWZ87`H`3UZnM@#1fLv?#8Z~AgOtg^s zGD(}@-K10642jG{iDz*$VXx$JI4Fp$krH}w3VM`dwMKny=dJAC-YY*ME-8tkyUkWq zWALsI+~h+&!pW@RSo zipx)LQ5xBlpDNQrw>h-g*(sk2Fd5G$!i7F)aNM66oImFx<(Y2&he}5Y!YIfnZ!D-;TN;y zyBG2`=WgS6NXZ2QQlICATzHBRnoNH4YL-RY@bBUvqHh-#1I~1;vKfoi7gpJHtA0KV}@N!ORK6E~J*O z1*J)0sh7fp^iL*k7}a%Mat%YuRh`EnKk>?oHnsKZpcM@c7{y`-{MZrEmJdq`)K~fL z%h>D{l@J$pa5#T^IAVVLieEzg1*}fvL6Hv;H-JSI;_DZ1$GAXdDSFy}p}f?{Nsp0( zamHJuz?!9R8WHP%0Q@p`MkT!Z{n&58{L{lcqNo(k?b0{uy-g+of}ZdHnw~ii$c7(W z?^_;YHVR8!t!MOw749l)YWb>3R3Ey^DXaRsTzr2?SbbUuA2>PkjexD%sl+Qbx9+I- ztkxA&RvrGzaObs2W>vr3!F-7geVLi1ugcNyuVOX7Cm;i8uD)=?MLx|;_~~_UQ|)bg zhRkzKG)21Zxu>D}gJDYFSCUpo4$t+P3N}oFIzpaq%3eCW^_-_(DD^_~zyxAJ} zr3z~u_`goWI^MDXGw$gXO~|5;EJXJNY+xk~rxL3-w~bV7H`OX?<|0hXCNGHG7=DOl z2H+n~$wWBQ;Z-J#TdR_t?`Ddh@~4mvPZ5o-{CTg2Ns##iL@lko1;QFxe?eVfCf|9{n7m$23+3O-6-9q23lx8k%Mr&%44vac-;l_yO?uJ)LC0Vf+*5vzQ!0UcLJV zmz;$SqTB!4A)glrKGMC(;!#k~AP#juL(uKFBcs-6LJs%azr{Oo(#RR#l}#jmOM5FkKRvz(csU&rslp`2Gs}d%+EL7_MViozwAU`(zg8`xBq zfR1;4<5QT9QQn6QLk0oX<~tO>rZe(AU&z&uAa%RDp^)K6I}}(L^1peFro{2xV~-!U zM7TG0DUaUKa%7AoG6!xq-PEokjVjslM@Am`wGc&q1{!y^DDZ`3-XeHKY$RCagn6oZ zjkwn(>Sj;Ga4r+@-=I#t)cl9O6d%Wxdc+O);noy&e+k1v%Pp?ZtfM z7tvAbq=503?cri9c+c=eg-M>b-v{vr+M2QhHc;JoFDlJ-sy9#VCf_4XIe)#t94$dXeYn1CFic5er2egUPvn>d-i6=XM&T1vf|+ zsxfj-4rS~x2FiL0qqs`?eZDkjb7htHN16vW3!BECxSF*mJN-2D^OBttxE-6vc%Qv4peo}f< z;pbEPfy*KHixR&&EjP|iqX!0k!4gHUde?g^~7PQ#} z|5+={-uv*0Xy@8Wt-4n~G`7l4wO7 zd`rw-kcOi<3o?P`TBlCoIHpJ~Rb`XLA2fWAN2Cr1hjXizuE!q)((3%h*3=XL58+2M zfr}a{n~(O;=V?7uO*akCByW*Zm{~VXnK?Ih!71+y(E&f(*kx&S!Z^Luo$$p>%1=|i z)jd1jiwG!+xQBP=pOb4LKoudx#U(6S#%DFuP1>S=7&j9o^dx8`+2((=%Z==QxW3$! zA(xK?5WL01N?ptif>9sm>b30SppYAppXsX_?X}Sd6-z09Y&+kK;I=CB0o-Z&;Jw8s z7+3jA#`w2L>~D^}S-&TAsHZZAJGV5+HZ}A(3VWvJHR*vB?XpH;L@((~EW5VHlidpj zrmtqcCf9DSW;{(E8gkIw#Klcv_dz)Y<~b2zESANZyPdrDh#!SOtFSt|&B!eM%fkAT#s08*%qk!6OxbKALAou!{ez7~&7&&e$0@8MaLm=p{GIruQLf_=fK zbN4hM4fKOc(Y-bb z;GA=@Af6XstN4BdtCYEqQdbk@-C|$)=-RgdIi) z0ZuB}W*`Hj4ZN>Ez#O`H3FWbt1iER% zy2rM^IbQ9!Mk;MBf9PLP{xyVBOd@~+LR$Q*Dx;4kSR3$AzaM#P>QzYY&g{gx+t#!7 z;;dZd7z`meo33zRvjtcR>|A%0gChy`g=oKXcW_Fe9G)1wM{0F;2)PRU`d;*5pD0|a z?NznXu|>uAz)cO+v-MV^`j(QH!{ny_cz%hTw(Lq`lyxpKh30AnqhB_NOGp z%9&FeB)T}v@H7OYjn9nxbz_w|F77lUbCu=h?Q)ggFskf!E-}mQK8;0x>>-5!^x?Mq zuVp()It6SH+}F%$5DkxSOi4}aISOOSil+n-elDR<@`332@$QwC zY5RF|K|Hh3SBQP4@L52vhkw=Ji)1>Oph^=c$W>G{?5_E}%U5$=VyecMc!o`?*_A;% zh_YySsexUBo*-CKeB81zO-sH+wO6YmzM`som-C(Ipvxmai~>;?$BqsRdXNyJ_s zMTRz~X^KlpGDWM~Qj1ajOin?4bS#$9Wb9m^+L~)JTqnV*tu$od#YNLYk4-YGqZIbo z=aM{=C8R%1kkvYcNBWXKjS5j^Br+hbAwCH;L>Qoqs0m(f3KCuv%MPw>8MEx0i{v$^ zTovBAgCPb$7FnBPGk0@ILoQ;tpQ>y;cgSn=zQt15yc@5lrf5y$gn$r`sj{W@Q+(BA zC#np(AByo4hY085D0Y>`hojFOqxWGos%?Z5pX3tWE%~7)Vh*&IuKq(DOrPr40@AP{ zSD1XBY0vrSca;O5M|9fgJ4`8ITqu*A+0Y(bDAM?G$^c19c9E0kNw4LypVj&odcFOl znB~xC>KdZ!?f<0XDq0X0ygPYoGsak}j_+wW8t~_OmR}v6iSLy*Q zh{uRua0)-*!$Bl;rDV4^OY_=wLkh~at>ag|tI_Mr+@v?)ZcovgHCRhSG+Tnv5RIbmpN|+DF*F`4H=cOL_{-?U&I1Mer!o)LUM3;a zO| zj+b5k1Y&8=Fuq7vy|2$S!V6Pb%=JV|rIuAQ74N_p?h zsk-RD@wYbhNOIO?ZrPzuKQTUP{+lfqW0VV^=k;pDNX zdRZD570WcEHtOjv$xVPSVr+e@i`0=nF6x8#t^gfOGC$fdThS+or?Mw*S|Jp1P~m}1 zllcrVhm()lz#xz;^(T?LpZL(D9F=W8KXX!bd0r|F#VPn&CBm;o&Ny7dKwBDO3LYE5 zu5#MiOQUi}E(AtPmAc;@9<=OM?ka))VHJDV6b9$r#HLmxHDG9P^R{^ah9lqbS<28# zr&}qjNb^5;FF(SFUq5b?62jIl!YuuFysy`rYWF1bUR~-%nxhOCh%8c{cW(BA zcW)8MFa!GRF*oE>5QjOi^ETn~ z=C^IA-C$o&%>~xIQI^i_=?6VVbPw*N@xn+EeMJF^4E{p9t_ptIw%4oVl7od=7-lXE zLr1tJRufN83$~idc7g^;U)N!QCjgA)`8@7U`D3K_Q`vZ8G`3Nm{LEKPAc28XQZhq5 zr@^OcX^ID3u6?5V@x&11@-uvWF@OQe3C8o;Wpzw@7pFKlE-YE5FgA}pjS;k9wP7R1 z=otVRzYVJ0>6wQxcp0YPZ*@1IWXtcfDvxfX{-q_I#r-N5#qKMdVAZbENI(+in`pfY!Ow#cEyBziq&tSEup%r7k4<8&#(UzS(B!mpg&P#Gj z;^hLMU^HN?b{_8q^kG(xg-`t&*UD>KvgZVem5>tkv$=osMq?XHErRX)I+k88s-96% zseO&WVt>}D6>YqlSzn~|=3!2qw2vT}(kwrV=okh%iJ)-2g9s=`bZ69Gmnj*8I3;HOrVS z-vwi)oXSd<{Dwe?`O!zxHrFm&JowM>^8htds_qoG7fQ)l)XgzR9+xqsi(#K;O4VI3 zVDGO;a4)xwZ6N8vGui_|t24NYR?eaNNp$9)@$V;MZveF2Xfr>8yp}j!%yv|- zE`FCZ?jVWrhia~Kdg%LeEC)2+g2LlWOTLdOO&dRf#y7%uG-|Ss@Usq{W_Xqam@yS` zT;_O@h<<-WdZ+|Ck%@0N1iQ=cSMI%xkTCXIM1nzl-Pfc;OQAz5yHmMCE~S z;Z#5yLJV%3=B9t!-LiSj+NH)&!zZxGVm~3ft^=))5bpM4Yg^^L(tC3ebtyRm{ z<3A1?B|OFInJhU$goX|hTUVOFPfR{*;6I2{m<H&cfzjdpxJXA@lGkh1pAT^e;d7kagULqa9&E#bdohpt*Qo zb|~~2b6;N#pWe+{Sl*&e+z;Sd)J`@!>UP`_193v76~nt~Ck{GnINP9gezaxuN0qvo zVo@JGi>&e0ARCrn;%hs;y>jm+5SEJEG}53QGc}VzaJNPD3^cGep^4MIn=d#TRNKiq z|A|KBIWdAFgQeDDO7!mMYNFsitD84RZM)-rPJsCdlw6$Y>v?uVeeJDX5jqs1m@omr zQrv$^J$eZuz_EIk=Ie)8P8V)gM1FVAOdCuiy_d55?jo)yp@DHCoJGbT-T@FoOmQhE zP_aNT`~#`0v~n!(S^El86fw##u_B&*l1*;r|JQ*g1UbeIr0OQ+rYb_dZZ9O+lY zEu||rQ)%z238cR#mI-KEyo@mkPlD}B^c0SgJOwY8LvrU@@=G{B_fU{iOY#<)p=rFA2k|EE1|Z>9MX(S`on; zoF?5H0$%xlCA^n}j-1pmIE!~VKo_6wNWi8V%7`Fs$D|?reKr(;jLU(8^K3=9(o<ZsW;k%PS`!)GgcY@ zGZD~kG*u!#zSMx#xLdbC*JPGBiU|im_YC@f{yOdyvbAqYPKz6RP7kE$P+P9y_fBZ% zCGX1*Kf^=|4EXMqnyI|1#wwAjj>^wa*GJc*LL8!>_!IBdZEhnY0Um_@w+h#H+Vxb9?dEr4!t!7p zN&w`i&0N8-zzbs9)8G-|(kUvZyJr>WeroE(;=RsCDbNGoUrVPuQ~*-xY%0W%=`FD1 z>v)bgkv3VIZvM6HZ+4P`LhD}YdS1Wz6dR|_fLQhtTR~1^|G6FQd^~t zLK8p7H`;8%O=@*h`Bjr@e%#uGARb~Zf5eG1I)$H!MjcZ*cj#g)X`(YnuSNN#543f~ z3R=*%YbZsxmVnyJjNgG5)?uCX69i)($k$DZknj>zmQ9A_!t*?hC#Za<9QqJ2F1X0c zboWAbc7uFevx30tpf;=O%(6MjK&xPQtyX2F^|t;31C{}gIhZKwa4}kN46J*q?ndmW zX)Gzns>J#Sg>_-QgJ!?0Fyj@d+yMS?`uQEaJo9h;>q#H&d*9^xuKa0^!Nz2jnjpW& zIonS$fx=C)pE<=mG!L|P&p?ax)bw$#D4jf3o06m?OJjgM7Xn#yi)CgHps8uCIg8Kc za<3Zzf%R@>apo;Ao7s_47YDk}UdF=U?wVsj>DbD?!;}mCO{l`2+$o81=#Xyvu{IWL z_M#8z=8{*xH?RUz00q^KofRN~nD4#mx&L7^wn@K?^-bqwP*&2O4oB@O z>Dl_C*Zy^CP~2g6KnUy1b&v}J(|h)r$a7uUNY;<&!E{HY&>+Xa*yk_9N{cKu30(V^ zFK-XnfvgAbW1c~?bx!kAx7s;*kBc561pYKpr})gyO+6NCG6;#9$AaSu1ryMm1Kv&$ z6^`%;)Dk7pyziJu)E1&z0>%5_P$lO8$R;bEHU(RMcnkt{O+TajQK|YI0Cy5<^x7#W zW`yB@upU&SDEIT1F5qU3@fZmR+Crme@mx8r*EM$H|4f|$elkD<9=Xp86&I+qa_YVA z6cX(ZwO-6tXVZnY`&}~TH>OP#T0ZnW;QWK_Uht`aC%zE<98-`pPRCCVFM6zAo1qqA zkS9bjURh``IHt` zc!IL|4+igUl7lGqB+M359HF7YOJRgjB`M|cMXOb^&AUkZxgD@`$wGWX0Iv%qL1Oe^ zUHa;__F444XsK$VaEZ6tTjt62{6?#A?_RN?iR%H_omk`^;%TRj!F3C-s zTWs}`@Rjz$Uu>Yn5zQS0KiysaLA-kq0ewUen9Yc0d}CR<&`x8jm!%ow z#QCjX0QM1SgAoV`9Tf`P8W3yh1jT z{+v!XgU4+4s~z%RntxHviz+7U;VeNY@fXRJ_*kC~Fn03@HXzX90ECi{piaP6ikQEI}1x3*iaK96yx2ER`Qg~AL z;a^nPK@UtK*DQP{PlzH45Axb2waVIzY?LNdvh+Bu91p1xkj(yAB7iwQOqZApU|(OG zoxvDN0f9^eOp>LU_o1O3(yU*4WXNSTCPZOkNd0Ba7sl@iV@NFzTCh^fK4U=_o={fF zUi0Lcwvsp-oX>B$?u1vwLp1I@(nCq*1(Yn?3sfvkqtJsz0;bL5cF0P11nTz<_=1;kX@L@& ztJ7?Ba7c(+v(^|KK7L)YHo~SM+$#PiCc{XisP2Qj5^jd)2?7AJFg0T^hU;&PJp=re z68d9(BZ;Duer3-MZEUE@KV`8)?DQXMYemq5zEPtIaaMRK&c&)DjGHPYXiU^T>``w) zP7q_Vv#p!v!3C8^7*~x4=6Q%cP!Gtmwfr0N&h!e8*7;qLy{Btgq=Wqg#fIX@KMNXG zYt0q@fET{TdK|1K;to^OH0nds)&a%h9Y%OaR}frLoA7QD{*3VnyS+LtTW`1y(YZmjaX8cfefS0g#}G@O-PXW=*;MRXpoC zeJex6+LkLVdao<_?RJ%XDA)n7&=Oh16e=pgV6&lsa0gRyQjvmWJn`>mBWM@OF3#x- z#oG+jDlZ?aRLc5hyv)hTDfN)44?`im?5=h}~P5eV){wU%Gri8z=hm)rPf7pYt{7eWIHA7)$)qBcnt z-#BI@i1T48FB#K2J?apf{JRIP5iG@qQZ{4x-IO2GukLkzKU*<*gcq%na@|x7YWBW~ z8|m;Oh-g3fM$*Y~e~v|gg4`?zcF?GK2LCKy;{ewYpjdb8Kz*#zW-x9+VC^XSP zU&A^$hU=q03t`kK1X9x}*uJT$sy{-beP=jkH;`T$KNx0L90VmkdfU|7Iy+~nIe1l) zRaRtENa$qXY>AjrnU7csJ7@LlA_x!Th&Fu;jD07lkEDmKYGi*SG>xVksg^6!VR&Mf zQ~@?R7zLVtBEBbHz2?G#f98_3`(Wiuwf<&3%Vo4k|K*uOVr5b9uQE3-o?_b)**8F< zV8|E+#W=BN{!_+?{l~+nZ`IjWj12-lfW7P?J0vA@3QHL1oZqT7yB9j<%A;zeRz2Fj zMf%19zvHkeMnTHuI9hs8thi@exxrp-gzIeEf-`9Rm z@B2z%iRhQa^Qj~QJoM>&-C6tb^N0HGK@%@>@9Sg-3~@!|J?aFhfa}SDoeCA%Qp~s# zlPsiB7{;{vp1-|*@6@RrCXa&92$(mOm zCk#6G-OCgZ**7oR2@f9f>uLEo5AjqsJlOaUozhqM4V=N`|YkL9vBR!YQx_4(!^;#&K%mWxyu;yZnq$+U16k7nInt;Bm?=rtHqawa$63 zHNn0TExRd10XaCFein@9RB`v7skK^VLEdfq4LuI>I?h`RDY|6YPIz`^!@(MIqmLeD z{s?A_eI@{R^^d<>ShnH+plO#PZYdNSAcCW1nDkJf=Qrk3CKG1F1oMI(LH*}H?n8@B z*R;4O>KC1AIxERWeo`>SWl1y3aW6L*CA#7#@a7LAxg*Daycys*(qu*|-^8jJ5>o*g z)g-)xHQ+2nkZHyOeDx~d&9e58`Lv$RN=tKj;|I0soPP$0v@B{kG{52JcgcpJv(it| z%8CZ{u71vLir=Kzv6BtW>_k5goUZMRVw`xGjQ`Z?1y>dA@vu?5c8wRkNumns=UoE& z&3O@5#hJ;&I?BG}5^YeN;kyd@c{N!iX;EL~vAohU)4P{-UYwCjBxiy(E>0y-Sd`l4 z*D(!w6$XeX-$M=#J>z~(lK59|MeW8#ogFQdKL#1DL}u`drHZbJUd`BUG3bvtRU+Yh?_|qPp$=0-UBsV zyDM-HHX83zm9r571~LW{(OWS){gEuHOaT{iPZhF%_jit3eN!2Io^H^1B=>uQd}DvZ zwRI)b8O2kVTT0yChizzRB!E>A>pWFt00tc65sc(a$9O(mlD5|Q>X%(xtM494&vp+v z)cE+-Z(W8dBjoZ1p$tWlWo0x6GPzC5iwcb<-x9d|yvAv@mnc|Zs#t+>${?--lp4C% zIWg?mfHXcuL=p}t_;znbuy5bWVYvM^Q)p7(*2<7W^n%7IhYJ7VI(_3@Xw{_Ed6Cv7 z^=Wg)(;d4kbiNAzn;96EBKd8wNAX=#1RoR9a>ANv=IM1Fss|9Q*=RrAm=xbx6Jl_6 zvFce68&|g|JRy+Rs08K zU8F+u?V~+e4pw$Bql-1X8K0HZps&;*vX{W?k@F)YrUhH+f*F^A>4K1a3o#ZY(s*X* z4~K=;T;%Yb?p}694!Y%5SEO~h{kdj%EsGUUY5$2(Ey~Fi2UZ=KJ2?v?9Z@!BKFF?~ zQOTk2Cu66|H8VrG-1qRY_1|ng(111dE3T1XwoQ&l2#I<@95!cJL!JAtq3!C*doB0D9QGJ~NWVbj2rX6EZ)Y=a`K_Xp z)9cqN$)vRE&>EtjtW3{sTV8MS(4oikx=yhYlvW3Qh2>hA16HfQ5+9l1>1An>MbTN! zLL&uo28)Os3OTDE?L_X5;c*gV9I%N%5{*W~qwThlfj;kgMNHH_fAHG1L$cb8<0sIxAyI71}V_^ zNw@d4n}76Wc~Ix3%EGk!9^b#4V83o|nw&E2>4I$>carSpv+Xy;RJKdpVwlD+n4d^t zrs6uR=Tor<87Azo1uB2uo%&rlpSNM*v);+S{LClIr#gv~8l~){x&!DIJ%iv!bbe%N z7QMTDKw0NDREOs4!7<1p}on z&wMs>hZSZmGP%$qactX=Rkq@`!)xr5LC@~D8pFD2;&9fAhP8zx9qcXs5xn#A&uQ+P zhw_u>=J`$B*EAD(e?j2%WW{d8Nc z;a2MzHHE)C<`R%^X4bspr&U_bm}6t@?%Mh#;)w(KCH6N^f{Pl*gr9x;Wu~`#sYNro z&=B*X3v89{gJPz!KRRFdej)ffd6)YPMEW6Zethg=mUSzq5<#cL^G)7;kOYA)!$ON( zvE)07Xa;j3JVPRAvqm(;&srvq=bJL=sMY+DdCuM?^U@AU9?QlV9#3<-=LC#^o_7-` z1N$|M903SO9azTA{z|Kj4uPJ{!9>xRgK(dsTFMK_*I^> zUzBOLSSg#8GpG>}XMh~71XW(fZU9{;;i^G;c>?$7jYirLsKvFzPaahcXWH_#9G7rA z44?!@MU7i^aLtEZe6t@_%H-_$R*dd{GSI8G<%6v!WUEk=XOfcQzWT*lb~aVxH$yHC zuOyGHDQGC&m#H}C?ZbfHhKNb{afE5FRbKJj%j&-&%73)3!4R9}r_-oNQO6Fdw|dWS z|9!=hEG4BRt3M)i#pOlB4=S*WT2QY*y5m%+zLDh_CEdi;CPGb}{8ElLk_#>D+S+H> z6z=t`ESt>>`H7o>dl&IXm2c;%boiX2Yy2H@#d`4dwCaLQM8I<=z zlptk@)xGeGqv8C$*VL5A@1gf#?wFw+br-F@w?uv}M6q(i&=D1tiHk=`-FD+3K zCU`7FcLE~Qqh@*;-&F)9I)e{UBt;OFJgUdeNrc(r#qq;3iFNJ}1hpr5@7zut;FS$U zD0j^JW@y72g3PriW2%{fS+B zI_v0{KF%J>;U~x6ioWmpYxGI%&TvroPfDs z9~=E?zy^D4Fo%bM6=ISnfv#A#lKpzs9B-?&3(eI(QzXZ~amx*!dZMF3lmK#il>J%8mm|eM{0TFKGs!)r+LXCX6<-4B3;=e9?AimAnQ!v=`j9y33bcz~$4&_7O zGHz2eM0gRvl{d_|njvh40dK^wHIBQsa?`y;HB0Uh!okvx`gj6hA^I(~t9{;bqK8hE z&s43Kj^OaSNid)C+xCy=sAMN@dZJXE8d*t3cCeR;A)Iy-b_LO=Vv&Nq z3Z%3|TUBN>vcWSJ@Xx##_u;a89yLnxPl0Kj!b~ZoX}?p_*P8mXy8}AH6*+YW54Jx1 zNj6e!P5)a{(TKpf@|?>1*p%4cn(U>6S=nSipP$v-F*Tag?c_%6x`+k@K&Q66)Rxpm z1bv{?R|1P6m=T-2IwsTeEmi+ybLKtR=f#XgccrFWCt|GyuaTkUJ^oyD$noWJc@kWs7 zMRt%VLM0#j01cw~C9#Wv-=Djsp+WIIH4BGw^52c1!m9@e~%Ze^P8BYj|1bG6*5B>D{KYpxQ0Vsmn_sWV+;A~H11!0)rm zc~h&kFWk`Gq%*O|!ufGIy$~id!{}BE3wZcX#-o2{KOf)x>9<9%I&d&ooN%cUcZhl*fzw(;EeAe%KG7b4&loc-|?)x1^Uzma zv@b$Xz%65h)+{Z$%_{u0g28b=%e-5c4#nz$`s-kwpdENBBCf6B*r^yMu#K=ATK>#w ziuTctRL!Ig^N#k)JCivyk^!ZDL*puhw*8P|7q2A#oDB`}x2Z8JZGn$TphQiY`Yz?I&PhOBO)+fxhw#2i2Mbyxh?lqwj?al?Sr()G|ZY!wn_ zoYWjI-;=;gx&-!lT7sPiSmj=R3cf^hyBB|5YiuT@tbcce=k|IdcOa_Jk>ent^>!k9 z?PA^z*d)OkZY~Ur!6`MEr7%_uR;!v2EJTUpQC;=y+Iy0-Q8vS?@$=~x2sPD(2T&RP zX)6Yqxn?GnLKPo9de?$ZN(ba%ZWSA4jO(4vCVt$|Bp444f%Wq2_}p|{cN?7PFe}6F z96sEwF5|TeFF8|Qe}v+(LNRjlBObpxIjKz*D*CedDCoo7v@9v2>3c=oZ7OAPH1`?K zbN$y;4kq0rE;n#fO1K6OG}wVxum0|ek#j&$&leVweizrOJ*|_fB-i%%QVrM5*H9;AJn+iwFOwPtx+U8y&PGa^_!*c)2TX)(Kru$> zA4XlrUYS4)B~d7SL%9MEZj;5#zY#XmPjFxsaTgEENPjcJeBn37r5}{6{)RG@h;-lu z&LFTfaX0)OBLjnz#EUpA`RlYmWo5yL2f`W0jI#-x{$i9ET-y0x z-^IxelL`O(L5%lBg&oWW@PHodq5ks+Ik+MdUbMnh z-0}Xd2;Kp9nMMA+E!-;@1Pq8+QX@E+aiH?=Q$d0Im;Ud`!2x(Y1XM#n3Y!N0n=*KG zVEI3`g`-6Xt{8@p%Y6TDqPSP!+|c#^_%inVOn9Im$yGY9UH#9qU^W0U`@;XF@IPk% zUvd5agV|(kslhl6N!7zIzjlWYnXc)+=6lIS(}tg8q=P6pVdv+svHQN+nrnOoKZ1JJ z>ZVSz&SO9RRxSSfIQ3hw*3kSjp;QVB`?FNrm*Khw3sD=$ylhtYmm_C&$y$tc&%@)< zlgU%s$JF3#)^F7K(|9khAB|)9DQ&uLJRwsW{tt|ia7n)e?xom#vH2P5i&dJ# zI7~|Qfu1xzitfd8WC8US76ElTnWlFTGHttV^WZ_G#_tW@yvR0qUv70-Hj%@AcC{em z=&QQNm)7VCCVz(%p76MKkL;D+(v8IT=O(zH<=(WksL&&IIXCOna#htS-i7Np>dIq6 zKFX;6{+9I2XQP{y_SAKG!9v=rFTd>y|CuUDy)x8CRry06XEaesfCzvrl)KM_J#jZt z)VEQ!Ci9~UnM>BS(;?RVW5f? z7#C!h)6IK;gIl>!a5@*U7NyK-8%9h^p7deLM!;~w8P$x zclA@u@YGa$KW^u3yz35ln?%1R{O#0QKbD=@sLSD;m?*gwJEt7(Y^ktnP>QM_dl?@2 zqeDc?tGghE!alrgvrVIMwRWVjj;lpUXkiYUpuu#Bj*1j;&OeO>jH8IR8x0-GOZz*j z3{_X<;EvJvP~$;P{=)~Ahl>XvsR*Gf8qzh7loJe^4B3l%qhE|a-`M|FiAJ@@d>md5 zd_t&ja$L&quay!Nb7s>23!Q%rb*@)?RQJf3It zc6?B})B3zT^7T83n=MZo(**?KdFlK{)<<2P{Mk}dY`4=AjjS>TDv)mFcbudRv%bwF z`#eQe4BwUfC7Qi~8~?zJT{YhUZb7^4vHQKqK0}Yj*QZ-H@=4Qgb!s(g)hevL!uEn& zWWxM+WtaQmrbdEtM;PL;3-;>xO;4fCLg)HWd7OXz&~JUe(x)-GlpQ?s%2Ri(Kh*w~ zZHp`Fx{oH6H8sqc;yN1FvRy?mt7fQer(S~*w2-df7nOONekZ%&GJNzXD5I)zH*_nj zs(u zDB`$iq#?v*N}`kd(0C&FU0bH%#?6R3bIt-Z3jwe3XUFgvpX5@E`!wqU1s!Vs+BxU>% zjXUElFUgBL?Z`jv>#uI61S!X?ue8gkwI9lHd0SAv{_Nm#$ht6|xp8GYfkhH#Ric{k zq%H>eaLUwR?X57%aoXaoU5YJsJO%K-3`Ndzja+>9{V}*hCK1TcbzqzD%!gTW{MP*0 z17gk?Y4{-XW%#kk9YWOGwenT@YwX%KbxCEtvf8`e6$6LW_jP_b4()3`uAr|hvx7v! zOI(y!b>Q#6hg=Eg_K_h!+u%|^?G&Lre%tipU?%c+^wyV_@^ZAf4(#S(Jd|fi=KE?4 zENjct^h6?2e^KA=IxUEnDuNL6^P9SY$ZJrLale9Lniqky+d+(~yoTrVg)&k$yPSGA zwa@D^{MqEK^5LvLCo;DbFPUt$E@W3fc}|O_e|;j+$%1~=-ix+!&EY${`v{_>Tyt_9 zSb4iDw(k!#?!nxa%jB;lLxUBDZ~PJ9$lu zuXOVKBEZFC31r!?i;NTQ+hYG9RPN*d$KF?dMfpW-&kP{l-6bU;Al(BfC=DW^bR*r( z3?iYFbe9q$-O@;hlpsTgNO$+lJAl9EUF-b|-Ve`O@Zp}d=G^=2xb}7SIr~iZBNPDq zTdVSxPP{X`OW0TO<>f2oFA&#)SA|!#PX&v84N~n8WatMak~*0OJ`0b2Du<1dYkeDc@%64OG^dN21$KB@YC}QdFJi&?`EBA|5}9R za=x9d@d)}Vdh%Ls`I)F$>F#wIDMa&8qfp$BY~gO|S}xv=r08wZuj5I%5JW}ntfS+L zqNEtl=i&8_$fYH-v%F19U#?DnAfBa965LbU{qU{$E!OSZBX0X(Mysrbkt_uI?HmAA z+h?o${zZLrbFbj2DkG*cc3-VDG3g!XmvvEQ7aNv9&M)VRH;QMmIKmKpOV>2wH?B&^ z1lnAy06vNLj92`Xwm6*mXj(zhZKe6pm5oxoEMs_B*Lm&+J&b)#+eWcpRy99wL`@NF zU+cUZ?dW&qNJq0srhD6#gp8{aEUhtEWeHg#>FtvX@z+TJRN&GdWx?vO&Hy>7NL0Xl zViEk;xsHsZdiFOe_*RC5}w|@UYpWp}+KoC-hb=_4At&6y!r;a+RU-9o_1asFIssdb zbX%>D&hFP{lVr%GKl8cU_f{%KqOZM3sjii#Zf>drVi(KGo0OiU4meq)$f!|u%RPL_ zkrs3KAV9)rdzm&`gmf6^<;IpB98izPVT1#J4Bn;_2VbI&v9QcPt}BRY6Jx z>#2N=S4B6E6`kW8Q!0iN(a|OeVNhs z_P%Wn0~?E@nMw~qf*+p0Nr@ZX|MlDGb&Htt>kbI_XB^aZC3!ZTVrh25PiOL7=SshH zuiWRT#o=W*>-oZMufGjm&)W20?#1X6F2rK|(#iFNd~x%~*Ke`qw`E(mq2^3V;_u~= z@v8jrMXgX5VKnge#8z-Qhi&{g$U*}3U&CP#@$*gL+8-Phw`co!l|iJVDA{}8T6Va; zwQtS+8f?{7JY6fe;AA;pj>|pU-oF4oq+>vwhomSIe>H;j-;~~v$HA2fEwdIQ^Rn7< zvv|@>L1(lZB8T2<+YWyOOY5jVFlcXyAOcqC#|=_qf8hsz>Qa-wDBhp_Z0dXSaSY$f zMt#P_;?99OvG;4Z4+;PPq#&uF+nZam@ceOK&(Icr7c|=3-Rrr$3TcIKcq9GME8mMo zx+ZOpN`tG39fj2)!31=cl9@TR(|WO+3UtU5(}^qoApX2y1Gvz);<4cM5s$~$*)jV^uUT{~{l~QOPre+q zX0U~+ttW0JV%Iq6)H_{8+mr+()a_EMAg;$MX6jce1Fqr)_ompAlrlIq^7NkA{IzkB zQgNvts#%^IxSZttvpB(m<+c|mfhGM>>uk@LHB!2UDJmoAu0%pX3M^fVz!Dd~-PZC! zldnOCI>MBe4WE=JQNb&eH^^&96%B5XN3pLN4>|a%3%=o3pLdDU8+gmb&U43^06jZn z>g(6OZIm6i=w2Xp1(qvN3~~!ZzesVjjncWKefDD#Un5q~b_@;GC=!)MFF1<~kIj{9 zez^9Vd1$>g7vwJ90g^A#p1fTHsV9Q`YB&epE@dP0I0xtp5nvy3;V&mp`REiAK8+pw zx9sa5GMnpxWP~Pl4bKrobJL`AV1wEYSr-3A5%rNraTwZIGjX)c-t^__+Xkt)`=V;A zmk<5c=V5kx{22ai41<}GzkfcXreFzNEBtwQB&YJX$pz`aGv|CMsfW?p^=aBs3kb~L z#jv5LO9&7_Fy)6!9k;08m5`4<_7BCKb&9*(Hyp@J$csEgC-Jx$ zSQ>RyxYan_U8-4?3Nx(d&RX6UkIk@@&|3R59h4rW7Dv26L7UH(PZXf z_Nb1Y{Ni6MaP(gb3b&vLk%-CGV<*zTA)&pcHR{kZf9j9>w?vFWCeQ>QaNc?d|JEXK z%xtr-P~?-_*t)mLqxM`4`s>6(3RAwkyRMRRLHA`v#In%Nlja#tO~EQGXE(EeZp7KF z_PppHo;`u(K9mwyqd53#Pw$ZDr#HiFBqAhkPB92q&)v_FbIr93*iPZK<3Yg-b?ZL}Z zCLEXh*^{jNf(F;n_i=5gn;(+fCiU)+(N0{~9Q8Xk&F%5tSe;|w5PmA^+RP~GlKPSL z@z{!`Z`P#p2)|drEiPVpW3AZjg6)S<>n2B8qu8f;7R|WFk7}Pwa=Z1AG3ye{(&chf+5tE(9SQgv_t9LCU4?Pq35CT(DforSCH14Se8 zg!^dd1uSkRFH4OJQX<%F zH^aTO8AN7Ax2i+eCgwKv4tynNq&ki?X+*Wxq(%Pb9Yxso&y|P70X=Hc&s(S6Psg<7 zu73q=o$kJAc)I?ai2;QC%VW)E%+Vx<9U#Sd$`AzB;0NfwGxN$CyLnl}I|zBTJh66t zg9i7aNjRje=3L@dWv5?i<3B6U8xf~Sfk;uRNsKt{tYAm}-G9b24>?6QD-Y?^+xI6Z z&1vTD*~mOC(SR_A$*sJ9`JP=kp&bRJWH9VQ37M;MJKSfJOHgHzztzLjHVk0=!9PW~ z5VEra+G5jaAzZ6Hh49@F*5cjhA%vJjbY#Mfebjl88xM?wd(^pJ3Je+$Tda>ZKT0}B z?47@=qtq?hOTdL0oKQXnND;(lnF#%e65n=$l2`T2Wco^Y&{@DdHs7+ueJ?#8JGl4} zu{fd2&{@%cvVAM(ibz(kj690#H zDq~WA4rsIO{XfQK%C{$*&D>{K<_{+OJ zoK1SxZ|;@uT=O!xZK&11B<>B&LI)O(UuQaj%C!dhIF@I{R%a5Fe;K;2ob-?*jEV8P z^^uRPF{Vs+cWZs^Nw!tb{PW2)a_&rlx2`XKT(R(pi&hgci7P{6kkN&t4p7GdgKV8d4ne3aZ*3LkD)d#VTeOO3SM&z1x zbeGslb}ko~8n)4!)m|wLe3K+v%A+8o`n?$QV)c;aR!=Of1nYlfScby!*lr&a6aXsr z65;msxG##lyU2<+Tf1C@zjTCB0yfq>ev_0nxf)tWNf;9Qop;QTA`qRCY&`2i7u^MO zEQ63~bG^MfkH+P1&8_xt(ptjt=Gfm8`uy=}zjjn*$uVaFfHnl_n_dspsC7F^Z7)Dh zw#iGj{Y7R+8IbTR0mxno)TZH|+{hA~wb9NGx809GOtZSd zM{#-{8Ejtb^r8_w75bi?Ml2^y2m6rrIxyTK(V~&ZLAUi#ZNdOiYr04;E%{TWo_uj& zbkc>M)9~dQpVy~9!@WT<(La@RRBXMq zoE9|@4e)Izg0mH=njEJ6NB~%=Fx_y`QLZZC-S@Vv@UX=505QLdK=_Y170G^wpcYXV7avWUJK-5G#HixNx* zk=rxEzOIo|FV{Ul(sp+X_H zW{amL|BolTIZ}VODrC)m29Wdji5Ed)=|?sw{j5uxU6IYGB~OiI_@LGG#Vn*DD3R{6 z%nQ_?jTB1@bCDcnY#8l(p#d-PqLuh5VjcA=e@boI<2t7+E~I2Ol^gyR+#{_(`3hCB z?$%;YBcULGhPatx8S?AT2(1lUR`@+{E|=q|X=e=PBARN7cNZ!#jGtL(rw}4tj0@x! z(J9wP6bNX{9|M%tACL^I;GWL@l|pfZ|NXF+f7YsY(Tsrtb$rjlo42|+s;?0|Awyc?5rKtER};QKr(yhk>$ap`6k z17tTZ@U};9B7*YcTPlUep||6Ik_JkGK1uWMFy79n8`I8O_2(v$T4v<$>gcoLNsHPY znw2H1X)d^OnzpU*&>K7?YW*ZGzo?2k@4_rAbPh~-3+D%=LQ0C>@Xw@*y?Uwob2(Ar zHhkH`pz_IB?fDsZE=vKDEN#k3viA+rpAnsQZN}8q-NJ~-HIe5A0Ua&_-z3cZ$S(6M zO9rYp4j5{GJ_Er0-mI+Yh;rcq^>sWxCsrZ2%bbsN&bK@U+!t!Otxo@tUU66EPj6l) zttzjx-%W)WDEQE|JvZ|9h1s2`r7iijZ=S%pQBk70nx;C+!%m&V4Rw}T(gc{ZI}1LW z;uQeEUFrSm=A9l~X;ty+;3YO7Ig<)RA@|VHJ#yFVL|V+)p8eO?r}wz+7libs1@LG5 zyWzJ{b%h-L4L$yJK8;Q#w5l(4r;`$=*$mDR`dO8?5i?yva|}^MB?0te#tHQY0`f1G z4{{#{fSg40FL(~Pu3oTNF4TJcYB_S9e3N!RKC(v|d2ieMGP&^E5G+OY=!t+@aD;E6 zTvMT)?OJ;+%e)yZ9!$upML|M=8zlvkG0bDt4WYKQOH~$rwO`qAqoYT>eY^0YjD?t&_Ev@mfxPJ09E9^2EkXf)$XZdMd)A*jtf>6#i4 z`cXWOWq_cRRy=C$`hYWUJ~6Ur)T^oQgD5^Lk;=&lIej_ahB{EIGA;+@4lJCJvt*CT zIz?hML0~NL`XPSn9=)SW$g*c`xfIl&D8SnnQreUOzu;EGMoYYY|8xb41$erm9L$!n zeGYSL{|3j!c@hv&^W3nyX_BkQJ z{)B-^FztL-J>2PSm*sn!=Ug-R`Q8doRm~-AD1gp&p~|;0?ZQH!q^tTFFXx%>V|h4a zjHYV%puxw}A=#yOQ{TW^{5}^t5s%lbfqvxn_we4EaG zsgdZ)OYd8U3#`RRKLQskEF{eF zb$Kd8oMwDbKpy(Aq5Hj`gK0EY#AK#giFP zaXytChE>)p?@ZE)3x%*i|NKCZ04XokP~{=}Z7fovHYm3QC|ozeoTIEFyL#BB4^jg+ zvPho0Xt&kUllM-_IdZ;3N>1ubXgy2tMt->K3gZa3nnBRk(*i#I5|+{t4>b&sSyr^U9B zhQzp{e3I0XNC>I3QR1Huc-uH1`n@Pi$^E0s8|Ml!_$qiH?k)%@kFH5*St_8zy=f-V zNb1_K33ihP%pdU%4zXFQ&d zggQs=IZX-?0EHVfXNh@yJ#9(L6Mb4G2PvzIKd&I8B{UVTg@13O84N`oZ@?xf)xQJK zTnyz5s=b=;u(s9Y<}?d&E0fNBMK;5<{n>ajtcdXscFYy2z>x>ZVUV9u5Cif7+sV%0 zYr_-$y`^Nc;ctbunFf#ppe=KzIE&G(w6{zh4S<7^a2JkWQE$_kN!XU|n(;|_2lucP zh&kN<*HP%p%Zs+&Od~V^lka9F>+A=6+Jl}{T0_?{^h7hspdrL@zV6r?Th_?eN$&Li zcdo#seuA{b*GnZZ;Py4y_Q;X1J7f}Rv!E-TJvnI==ycfYDVeH2gFzOfOi1{t9@2SJ z*mX!FG{j=LYWIUR{JoK-=k3vjfWI(Np-7ZyugzKNcNkxuS zOS!W}73Gr~li$(bFObDO`-n7cjF^Ev+l0rcmu;o~nac2oxtQV)l1+!dnuV&Hn_KQt zm>{qW)0(iYOm98o-rJ~Ag-$4i#8-0RzYjDQez2aITtoP?#JknaseRYYkZ&|Yb;@!! zQEjZ{-xYPV?04a@b(!7E*Wb!XNWvNW+R8WLa@{DMHLVyVD#rQNG?7^aGVC6m$5(M`%(`q%l*RDr5&ZvZ!;4TaDUv>yl0fwrl zQO#AR@A9wef>p9^eE^D4t%8J~+NpKwdkpo!aH~HIxv}qQBvE6gH}^etQdZc_oYxP8 zdVEbd;6!>ZhV-!9m*uQXgE&PYliESHsFmgq?jo74>D|Z!fmAi3YL3(TckTd2twknR zV`{ACd;PG#2gCXx6l;?e;rq5gh5AfEf}5WWve(vGP)sDg@*1P;I!7TvZBW;t-vp_tur|G^;&-V7qgn|Z4X6%RFuH%~ z-{;Vi7e3!1XGLX&2CGwFw&VTFZD-ibw2!>RwS$Im$+6sA-3kUHh)0+K-7#bT-x5vTL5`Z04ok^17x1nJ5f@q3$wfvJ%JV~r9ab;~%AJTntqS5zk2 z?`ozqlUYOmC|xFVXVLSgaV7}ZH8waF1Oj-2u&rH{kJNbf*Yc_ME$i*;%jz>d5tV(+ zbolFG_v{E6F*CQ!88>+Teln=CP-$8UM~UARrb*tJl2p=W6U03-JkPZ?kwFzt;wg@< zUb;^nk%B2AfFV_aw zjGrC#VSs*CpYvPsamfX#a=^zF1NDAvbbMrlZq1e!R&9IX(#Lz##sP-ZCRiVb*-z~| z-898)ak6Ihhusgjj%ob>ysj2QbcZ9PPmK>z3>x(~PZgr@f>fUYj3W$!*0R%hsb6EG zJ@EZ3h{B-TGS$S~+ojr?p{VEJy3CnqFG&?HIy^%S^RM0S30?l2bW7-Nk<4N4bF*2R_Sk957+iAhok)B2Yr8@J%Ns~N~Hl{peUVcatV}X zbMPLF+>)HRB!Hb=Wv)rYtni;oapbrV+A02OR@n zDlr8FHa=)OP!HhG%L$On|C)*9>fGkR{-pr0$?V}&IE;JHRoLtmg49cx-=YBCblo2_ zoGYz{2>k@5^Sz)7oxh(!d^{4?Sh`Ar?jOyWN9_L~j%)r1T1_YN6G}%&fjSB>2T^Gbya##Y z`1E)%Lq0=HSeqCku=4t3{n^fXr|km<0_gjL!oXwMK&;o~uBilou(NgBE;08pGqNrx zyJntJjRIF;)ibrJ%rnqq7{VoXVn?-Uqd6~$?tA^o>gAh%=+gfJ99ih{3s!N@qgrIL zuc94xb_9j!0(qk3VF=wBXS_w(x9i3m6;Q{K{$-RwKrf0mUK&#Wy|(l3yb^?QalftE z&0P4tRJjgHNZPGoM8}_g`fqeaRU{t7GQ)uPqfaxo`EWF=8xPaNk(bqd6CG61>zPUP z6tM(uC&DklkBPpX0H_ix+zlC*m3b8rFlkq6*zq1?H&M5b5xt zIyE~tNQ=Q$ddHXzXRmfGha0>?S%xA$_IL3H7B z)wW`Jkm+HM<_+DAy>?wDk5^d<6XcuMb-1bv_W=Dg4r&Q_dep@6`(6e11nW{4mvemP zjdk`@Z1uJ7vBYIlzg_u!(+}<^8O6K_f2ARRj_JS zLOag`tuGt^s1hIvqZEi5%Bzv<%@4nxbt$oVA%3#>kyD|iai?8^$8_mlBcF@D3#Aj#ZT%hSD%*f{rL*J`X``_8Sse`1($T{?Zcc=6r%%}DLM zs%<4RD@_l z*BTw$CU?oC&NAq5OXFuB(eDt0*A_|(mxZ>nLkY0HXP3S_eAmS(-!uV_y43y$7LUS_ ziq@LA&~msXs9@A-#t}+s>hP6-MHDNw>hSwK%4SjeCu#_}P z;Dm;@#3)bm^Xx6tB>On@>1oN-EFBGGXKIi1P?WU7^}@d0UPAniWR1%&45>Av95#{E zq&!XT`|R@iHoGL&Mg2=QhM?lJT6aLB{zcCXZPCR$BseG5U}s{l#{~#5++T4kVM@=M9W=?HAuf7K8Z2$pW+pU7tW{&$bdq9}VT=`r-TmxB8zN=0m zO;7OMF%ri)_f_u2eArd#7-hzT7Cc%Jf| zm;fj;6a^c9)hQcDDu@Cox@3F%i#!%K`<(_N87gi0J?g5v^2HT|VwY37@ITKwL~`A1 zzioH(dolNk${P*52V-i9>7!QwQQgDnQJre&r`6wuz&<%``>aia@vme70Pn?ba4)T( z;fu1)0dWyw9-mr%`wP;m<^{|7lY72<%QaGwsk(vS-nE_@`+|z8>$piK?GFbPUTYs} z`gw8D;jTwIHrN@kJI%1p?9ooNGSLH`XOT&*wNkE`@X=jBx?gnd>H7Va+Ivr0|LblW z1E~lTW~7ZKhr)i{2ONPIsJW~q-}jLP?dI!>7wgwq?=;q_I1_LT#AZ~~<52+IwtSPN zjX*+ZsOE=BT289B^VOyE&6sP)>Q1r9RCl|@(C#50Pj|2B5#n{Jm4?yMm2^|zU0p5`5voAwQ=c5LFzI}? z0t*1@X1esuxa%PzpL+{%EE;hs9p{#6XeekiUa*8#9RDAkJHM3~?wU(-kH7C@+QthH z95^pC!!$PddEpS=Sdnp;^v4@$o8O-sOmblX0TJiRqge79+R#OsYm8+sR6PfM3GYrT zla9jUd%(J_Y#|5js>&C*hnx2w!D}4CnMAIV#rTVnGVNkA>wO_V+v$+MECIR9vha@@ zLUfd7T#tR^#5-p)CrP0BH{&pYz)(Z zgc=*>-DkOov1AA3&3G7bxx7ZkU1Sr!GIgqwX}0jY(DLHyB&bK;E}@H8=GE(e-ozjd zMAD+6XIc024g=4l`lwvLiq`tPWvEN+#4}LwxGueuP)O{1jxIZ|7C&G=9rC%m^1uws zp(7*@NsoiOZZe~Lh^xp>W^JPcf8ZUMVtE^pP0Rd4Mp-#zP8~_dV!7v4*|8XInJ#lL z_=csh`2l!8K6+d&7ND5DfuXaH@jQ6Xh&%+x%h3LU(D0i#o#jnykeX#K*IBTIPSiR3 z@^zK}=R#si@bQ1BtBkDXw4pw`xKE)3fn2DUh`%rcDyp|bl}+c~>(_gs9J@Ca4gNb5 zrS>1L>Q?XoBD%kZ-6?M-QMsLV#*H*Hif6P91Y9)8+%BL06Zk0u0EvvKfLD+2iQjF! zWzJdjN0N(W3KF8sgdVZ&{;C4jF0fCw_R|0s)vmnz^7D`xm~Y12VXG?W2EL7XC4`n{ z<9%-|q;S2r2*z)--h78O$n8zpw$ry6wsbbi4SU_`=X~c0ZP?pS=VZvpu)qEd22E{P zm3P=X=-aSRJNEnxEogdwV^bG0T~o!joihYsfTgDYXRDc8nr1I_dB58XMvWj|7dlvN z@%Vf}AOYb0RkeLo4uU(){5S->I1VMG#Q3R*M6(`~o`oou^0tL;Qr*QpoA;ub6>;;n z1Eq9)!sXX}clE1V{{@F4)9*S#jL?7DHAYqjE-$f>h4G%#?WOh0y>|;89YKd)vaiTSxpIMgqSEcrv!s=r9sB9@w|d--$+~~y8+){m6~dd z<_D|oobp`V?GWH&%TLV8_Wv!BnD%jzzUGJWLFzvx9}=y*c14N{vdx;6V_ zyqQ~)`nFTTLs?CT)N7*8CI2Q4M(uxw9MmNS=KOzEF~^4R@ElOo4`XP1mT8aQ=0FiL zJoXV2kc+>PX9qLfn4Z|tW;*DxNZJz=9wxDN{U;7V;1l8zCa8rJP^{^n{oI}!`?sE) zzmUAbFWm|ls7YTirU(ek_*zq}+w{dC{G4v=W?3-tinYEaP!5zCKgn^s>lqaOidVVCZzuH1_sa)12Sof3hHtFVgAVUynIPLp-_8xCUxGWqGq7ECd`8w%!gI z3EYMO{NEYTc|EighZsuO7^$2fsA~SL?Zd!-Z!^!u%da^1sYpu@h(G79dq%JCTb|(7 z60HYV^Q|3|97G*EuhV-21h9pu@FumXa3jkWYqd$&GqC|ikE`iAdyqH7nu+}oD*H#t zZ+Dj%kskYW-JGNFpGHPl16}hcj<;c+P^+F0WbsmB#$~wLcJtEV4Lt)tV6nk#sMT^S z9x+HwR$qGqwQ9ug-pS{=trS)cnyq91k2^d^?%^{0Dp32E;|Kx;fD>yo+JJ4JuE;CV zDDjD^rUTt(1TWVnY`9|@P}7K0Mda^U+r*u`;dn#|u}!oPFUu{?*U{E@ZX-9nTesdy zs6KVOir79Xn!V5TT6}?-aS-7r7Qg+_D+0|%Mi;6))=b<#NQraT#SQK;g7zmv9;eYw zIgPHrdKK|p?;nT8@zc4BgTaaJtqEnS zno=q~_Thi}Q6EJ8^E=&p|eXCl%GuGzU{5Q-v;?N3UVg@`}e;Z_+JhDuLl0V)xf?W@M^2hM+b=dr?(@UY$pOX zuWs~}O$){QlcU7h<8gq!gSSCA%zH%ETC|#?e-<4g-=4hJoSl&!KtQ=)CH9qn9IgMa z44KLZYZ#YyZIe;3&Y>>qVCaO5i9qIAHusbZpc3ma)oC%SCmXAV#Dj}9GViaRHQmuv z^u-JC;Kg>l#hXNOEynJn*VqSQpQBBOcs%fDueT)kQC6G*iB=uifdqP&D{n0ILZa&^ zQ_2E$ORMb6>Q5;Ep| zVd8Q5W6MYO(Dn&an(5}?&n8k|dwxkRj)=9q$%YD&4K9{A*`wtod}Yp*)P_tfmFQF3 zP%sBo!w!w15$TI;&Qq(Ep8ii|jk0z$m73-~b?BW#($qZLfa(^?3t?)3NbWK_g2#cn zGNmDtz|{piu0wa{@b7B65f`TOg+E3BVK@(D%tx@9f_Bxp$2IcWLjcr2aU#k)_Kx}!#a$(beYR#*`e79 z>Mgk9tDYDFc+)69Z~pogC45h zrNY%=D<}h1mx-;EsL9ye!MYPX?^b1IAJbERh~z>3pg2cX^=cJ&P#3*iH280a?>a`< zwMsnlBuNFAKj4qIF}ffIHC{n6vq#V*1JA^@(DIzqv0lZH%WRefdYOOXfViB0_78$G z|9R{i#tHJ`t*SZfCVbub!&IxO0i9YK-Qg<3HD5zSG3;W_&l+g{C!GdOI#h;B`lWh~ z{I2re%*e59Ms*ea6fKCax!P`}Z^BUwp0$IP$Xq95$3tpbT-GgvqyNCZNy^Ky+(7Ao z%EY^t?$5ymZ5ehg+j;+$(1Ht5BZ<92M@I@lG`%*nlA$F)+N_b!q6D7J6&cM&D*db zfNEhk0s$;Bkm+(Wh1t?@2wG&s*^AbzOKCE@JvshtSdQq3SXl5AYRWtT?dl$|^rIg# zqF??bjZg#Wim3gv0DRIv-{f?=9^!RAc*z*~opI9fNwqXd?!o+$|Fe8Mb5x6t#bjkq zu0sIFHo`7Y%Ez=doH0>Hqnz&f!vS$2R3!^8*rn|DUz`x#{K!z<7I*WhevjP_m)OIS z8Xga~O~%BnGP!`M7OFkHQulE}V=4&7tIsigTwz>Z4yu7sp~_UlGbJOYajN`&e1iy# zlm7GK$+~R{Njx;Yh2QPc12`VLdY0-6vc-Gim3C(!6qK9S9)Bgfp{lk;J?J>yO=!(1 z{=kaJDniqqvM;{CG{27SMdCv%aG|c*$Z@o~IuJ^{bcNo<`os)Deh`4!>BDSvCFF5# z*dk6jA3%D2aLv!oi*MTa&fcUJ=xtvdOu=9*+GqRFTAU1>*E`^yGLJXk_j<>E5etDHfr=)Le;CGJ5OCfEk0^}L5{RQV_33SpY08+^HAUbC{TRU{ z5RG`JXoJ&IuA$0@arnfI{+Oz>KQQ50VMLP>=?5vwo>a_=DysO3zz#fe>No!3A{f+P z2cK;Z+onss6H07NlCv}SBU=2?`|iTTEcMI=X{VQ84`wUVv!jQC#W?ZjJ^PVK` zY{%;Z{K=_s654e`)fHrLd@d}mIJ>cH{`Y3}T@4oKc*xHL+XW{ZKJ|TLPKij@5I%RD4EHcP? zd;MUx+yO%JNAz$kv`&RpQ_|2#lpWbG8_?dT3vVX@BL)!!;gah$1 zgocC`FO1dm>3o0<#Hr}7QY#359yN;}TjW`kDqk%5{{+u3tA9csy|PdX9gJyPn%r$1 z@e0Eoa!Igl>d~v^KkxRvdAn}E&KHI}6-1&ng$K*2ONwc4WO%TntP4_|tPsJt1UzDG z3z@6q&m6#Je2}0#tuNwBg!L_`+jkMPP7nrEnmB4&?Kf#6R|`&Nt!)Q;9WKlqFSY^({HaYXXtd4D0s{eW9l!E-j#jB< z%YP**rhnr6#0|ewo}r)#IWKU2lPYq5I@5wg;#igmKXfRt1-)V$qo~4pAe(c*b84c7 zhywNevH7<+F|w90wsn4#Q^lAsSv-M)X~q^^ zB`D%6#|n}H*7kXGzx=|8_wm5cgx6T~A#vacA%<%Qvs<}hJVR7lIkP|C@t(Tn8a*VW z^k`V1LZ(dtcuoN={OToqZVLE|kToY<9g>c%%Q%REzG2MIzztD+67^mmwSw;lHhgp438=RiuL3{h`g~H*lZVx<^#jQGcA>x^_IEW5zni3$?Da24_ zn|Ser5Q8?bTv$pLoof-b!ntb*fdC_@O-cB$CZJDSK=x0PCkK|c#KLI5e5IlmmJY#- zeEXm>Hx0%n&g++u!raDDzLw(3rpCzJR@p3k%(*U|9ivVXQROEE)$JaeY%8%`wkti$ z(HoHuVxSO^>iX20vACugRyCqL)#20$fO1e{C?EiQ1l?0u8WlV-Bd{FBl;7l}yBaU7 zETQp14-r@flnI@j8NY8!Oimelk}>I9IdR$S&v5G)n$KkO<8H>?NuQsw9R2M6gc>jG0HDw?m8-f zn5aL7YY6noo~7+_*I_-Jj6td>Q5xHa@_lnuAhMgD!tB$BmEOnd#S{wMS5F){tf`Jo z2CTYTc+28)KB&h}i>99}Ww|ybd_WdQMO;tx!(fd_cYelzY-3aZ!S#giOF2SXu0T%X z8%c`2eAmJ|p`&Qf&piTHti_8F76OH*pB?NZe#>rixmE{#39ySlIAW(JZ&@0z_5Ymy zfgs~teS;KJ47TA1Au ze2y78RoO*3ioMiFf;4|F9_3ejoU@=r6|wjPESI6o+OV(2bb5LUT7ME2Sj9f2`7qJq zs)3!Q0oBGLWhjMEO%BH|?a4fXhWoGJ%dfP-wD=ruYg|_q0j+3%YQSdm*nG8ul-H>k z23XFgx;ZW7wtCwtGzmX=Q!xH289Q#bEe4eNd5)hl5s)BD$M2ZZvWz_7!$XcqBX$PS z@lFD{x@KQ2usW@BI5!&1tx~$X5iBEp1k|z##yw2LJzBEzva#q$l+FZqO{!26ZFC>fpHG4KkdrUAn-y+wTEW%ux3KuU}5ET2zTQ) zNhV4L1}X6gk5$Wj#}A|Tn$I4-8-9_2^-K^WR&4?j7CGfyib@@%98vT>;yoAsHm}Qc zHdh0xNZb|@C#eb~6-LPzMrjU|<@pX+6pzqFhQvP=GGNjpL~*G=E4Fq@PTJZPt7{fQ zG&i8Pk0uyT*CcrfKfX0S63o3Zd(H|9CNOq_;IA`0k3J`rRllM@ZpT8MbG=2)JF~{x zMKi=c)}nr}G;h*13k`iqU-ZL6hBZ3$bM>L~o3-GKbUDTcAoEoW8a$nJLb;YoYa-*R zAxagy{b!@v45K)^4k6cgCL~9MZmE=j?b#Oc3P==Y))PZO4~h8zp2FOJ7oQLc;M^X_ zW@dO`sym7*$x;gJF}7G0UiWHxteyh{e)*%7)9vSajBv9)lg%J0U+~%P;D}7G0h9Sf zHKS{xB(z8UkP%7U-_oSvS~TPJau@B?D8~iT7p2Y~Q7!Qo@E386G4^vR*kN%;PhDgI zD(tMLUYAy8jH#wX%SN2JKDH1a*jE(HY>X-mOqg7y4EwT&GyPkpi%MZ&V+$>e_8{tK zmf_FEN{%$3LNv8g_trA%`a_f!7v~>h89V7e^*EJLw$5dD(JoU^oP|(P7@O#>Pl@OI znZQtNy-NGa!pQ1Fse(ze)n<}h=fzNa1kXE(=PCaDy*k+LS{{j_DPj^lK6>65PVswd zpNvwHTlCgpJjdq^RIeuvQ;b9p<~QJW=8eJ z+Pr5g1h?rXM^BykA!lY=jFa;tfhsQ@(v3h1iapx-j{H51MBw)10Y&g6aB_p5u{A(2 zLu%fWYj`r-g4Y$d^VziS(3Oql)KCcPfX4%2{s9jU%_)wz!}C9q9Bb-i20XXzMw3Hi zBmI(D``=d(_inwzg;YN3)Gg&xlNvtteDWqa#&E6@5jOlp6z(Y6G&X{65dHP~=a?7hH(Zjl!MyM5XH1Q?D%Sky3*&7512Ls*%8eTO! zf=?Y&BQHjr*uxY74r92_qKM|vE+VZ1=va=*41~Tt4keR0`Bdx$+I~-m8yRZ&PPeeX zmdKbnDx;J-M~6XZUYTmEtBfHr=YmR{l1;90rO}LTrmE`5IGn=GOl*d8#skurZ;BCc0ROzoZg!rES}8V7H**J z1G3vrCmk_KYU7~}wfpolG*QkjyV}a`A>YTL9iu?HcavW!9#q7dDz3=7VKPvqoF4?-V`md; zSO^G#ha|lz6}G(ud4OA$uSakrKck`N$)}$ZpECX~fN}asOlPB4AXZ`9$`k_^HY3;s7oFLDk!MuY-RAQe^Su!#*wOWz0wj+n zdf(IjrpEk!Wx*f)Tc9#U*+paa*+)0|RjyWf*`G=Tr{p3QH*jDz)ilQFq?FBo zZfjM>kyz)Ao+m9@WFTIkm!tV>Nq91L#Y^UJR^YsNQ>h-=ujxjq?{lsrH0w<3^o((< zZIlCv$k5=NUoMj^R>J0Bu6Uzu=KZ`ocsxswcC*76qcg~vvuuaJ*vws^`la{`$t5Xu zuqU{%@l`C$i>q<8UL;!cKW2G(^Ez-(;JcTPdz64 z{J@4nS_tyzwOknueY>c(R5Gtp)GOA4VBK8=Wt?N(L-3uEn~@oBv9;#5A^e(Ziv^#i z7R(*Y1G;RyklsZb_I`K%Sfi6}+n6(SBUc;jN{KYw8%ipS13CfH&OZmPFHnTA$0vtY zB+K#s`0A0~_U9b4`P1OpG-w`+mq6a{%`mi@ate7CpG#R2Dp=zMtG=J?HR&37AeU3i z=^;V(#2dE~YQ?rext>HYraDlwxX^F{L-71~BP5{v9FAk!qVk$eL>%ps;&L{3`N@SC zaZd(Xvr+#4Y45w=*?ixyBZ!p{rL|Y>J*zgMwQ99|YE;b-Dz*3Cw04bBD@Ik-3QDOF zwKuhb7PZwT_IlIz{VU$%_~xhQIP$~u-1EBc^E|KfS~gy?zT_}8R@oj6G<(A!bYCBR z{{&()J?7e!WZkokaes8Fw_zVkpheS->eCP|>ku3`SuW^cpKn7ld&5f@Ysv|A@}6Xz zBCDrWyC$Au6-Be-DrWq6@RkERSwYLNvorJ9TIrhHQ-ZTAzTQssBF{DH^l#rGZ=vA) zq@DN#(+2dFgrg7%TXZnNU8dsw@vh6QgnPe}rk7DP?DL!uFR!17QE0_Jz2( zW~Ux>HTD}|y`G5;cTILwf z4Jq03+qhM&FkR&2oFWp{ukVdjlYJvZF!je$1uT_C4iH0aH8ku$=K-#AS`~(wwN7Yk z^}>h9Q_>qZ-?}LUy5p2fhn3A;5IO3`@#u)&&v7LctdtDskfA!;Gh5eHw~k;2z+$X* zNJsFISI?2@w(N0IUubvM4cmVg{pu_39e%g>u87@6==JO;n{3aOSQ(L-7~q-hOzTAT zLjA8S0g~B6%gy|dcyLV~7M$g<;S-+!1VxbS0-kWk?K;GUIns2SviYb9HDI;)yS*{P zV1O$qS}TBhIGDl>(?Rqi)iJfIp9>T4S`q##Es!{HGv!@>^Yi=f1*Og4A2~27&3~X8 z0lJx%1i?T=TZ~C{TK|dy7$R0TWFkLLW3 zx(jlNNx%-@%dU(amh-CUJ->xp;#bo6@hY4dLj?6P5J-7zpD_?_mc$>=F0fCLb(x9E zEYkYV)0M;%hz*C67T!EaS3m!(0BmN%+9NPSk!T$R;0X`Vj@O_9f^!eui;rL>JD7|_ zQ>z5r^#>f@t|6=&+BFxIKs0^of}ec-;Mi?@jDCR#YgeM^ z-6oHWYhUL!NERzWzk8`ca3=%c2t~q?xcEU#TGb?Y8~!6Jke(ZpNI9ZwTx8K8@~G>n zsoqG&;~0Samj*RUMooz=FAK{omK(;aAjVFsFJ#N*QCS8*BPGwQntVmYc1pIzWo)iR zXu_V|!BUfKS?`B3SKFSm(}dOhOOp2dgrcDA(r(UfS934^11Y6``?D9K@m(HP5GfZV-*&hi6Po4lM;#?1!8hG~Gv+im_Fb4oH;YsalEs^W^1r zD4}4DE43AB3(yOn8Gc$g&5tMyPlDrFimZxrnW} zW^k6+lpUvz%&S#f#+#eENyLRAQ8*Xoa_dF%=ioaCH}v&4QalzmLzdZ8J&>0|%7vnI zgcCcz0s(3V9lM1L3gLlDuBbmmwaXW@o$4OR-M}jvhkKor8^R`grP;bLgVl; zE=>L8%hC1dcO!D)b^>!$wj4B)VdiJ16ho2s)Oe75Ib!to{W95aUo#s@e%AT;Bv>FH zKxldkMhA*cVewG(2_vni{8wz=T`i6kBUuvHH5HYS2ztGeTAzy+XELEuDWR`P^`~ATk-oAbR4Vh0Qe>_f*h{E<6(qW* zn)fP@stGLd)KV;=Ez({MKg(}k>dHp2)ntRR$O{>DKA1m_42|(TG+TG7^p=*sVwj+j z7}K{2II!jGm8018kOpyKGakq$rysR{wU!~RwiTerQ+dc7P90#_Y?^$qmP_(@2rFY1 zGhK{!+vn~a3rD@?q{N^G-X!;_fCxEPCA_ChIjYeY#v4Mh(@62|;ZgBX83&O^&XYFH zBYjDnB>5_m91;)QZfk4(wBkmprFfEa-Z9Fr2cgJD4N4{9KTIl}!)`zoLt_QXa~&(? z;EbJS=d#VbK5Cy8>3}=@^Hhv3?5i<9NFo3o>>)6W>hB8z@{H3b6khM_+HTH}4MO>J z7u4hD)_Dd-@WG87s~kYWF6ShKuC70=VT_dUi9jVUSz`u*XOZa^w(&@tJfP8 z4va>^>Uk^cNu+Jzr%5X7DqW27-!)(g8u0#Mo39L2!WkUvY6w*xMp0a!d-@2njeM06 zu;^!RkZSjxtcXn-wU*_|!)C`TM#E1}oFFQ}-7Mn$>S;>l&+nq0x7*2?t;5(p2?p>B zl8}7WNt0oYISE1{?2IDlFT~C%LXr=Ya`T(R`-Xptq$Ixm%jPJJ!ROh}EFW9gq^$xX z{T|vOvzx)cfkO{gje^5Dp;W_P6%f#ks8cm|!>G3ln&w$<@ukgnwpj`~3>vT*H!mI8 zZ48wLz9~8*(pHG9utImdoqTQ%3&V50?W;flBs{akX2(Ism!_-)0NC>Yd0bsy2Q{~W zmX0oY)W0|_u1mxgk-Ml&I*`HrV*nDnKR&U2>+4b^^!X0s8DPs0Z3MBqYZcY=vk^?u zgv8KSE0Z1$5H$}CkpHf#h#2gqYfxpjerT5i=@`!7x1GJGBB&#qmS4t&K}|3S3y=V& z#(Y$*H?L9&=DZ2dyQ?9g$~3Q;JNn*zM-u5so7J38BVLf55daJou$p#}uXFihxN#k0 z1gT-X5}AbJe9y=^FS(O9L2^ub+nQ+|zIxct#pnV*Q5^NH7@Tu4rpRg%o<#sy3sAz* z!V9S}?w5~ZS;(_wfy|ITpGT3otf^t78Ma`I8&7z-1Zi^|@)tO3x06mg=5-7m2dGwe zDm&;;(rO;RQz)nRO~;QRqt=yA{-mxdQMCfHq|YGT7vu1(XOO}E3=Lv{cEmi}?+1Q$ zA6>i0_DUIw&|P|>BZHC}gLG;ig*;7qv+PIoWDtO~4y@}kUKK5?MAkz3K$Rzcq|$;o z3w)KSX`HMi^EQWp4541T^>6rc_e1m(&3Iy-&5@eM>VVIEe+DngloA^O1 zw0&us-5d17)k0SH)VjA0?YtgOZ`fUP_#_tQlZ7`D!ANTE-$tAX{KLq_W*o>~uBoP> z7>hr~wd1OfFi$u5l<0aAoqw=XNS9(U5@QAZyrzO^aScA5tW77bd`~ypRG7em%xf>k z&geoiTMR-7f5ASo6wYASSo(UX9Vc^WZ)3DYe+_QahDH1WT{GIO=i4>DxnOmM z-?vH(1p?Mg>et^SJW4fO#?IK0NG)uZ?R-QVEu=*CZ6y+fK2s)#-I!yeSY!>mQJRf% zJxHss&hVDR5qxw>JB}`Tg1RYTR>x3{@FIX`-A>2O4jH#F>Z)dtX-RyPy4ou%fGR`0 zUDjrn@KeZc20;j%vM=jZNYs27y_ImxL6(2wRomUscG+cq$z=0wYZHr_T*JSM!RXDY zo5{zaJNv7nfg64sW*a@idwx~5&QlM-r2hi$@?(5t@!pjo#29hrMrqM%+-iOJlJr5! zeetN~qllH?UZ!0BN;~eo9F;<)OU2QT(g*Todw51eml>i=!3h2@&QAUlxJ>NZv-0zG zCl{FyK=EoGK}7;@e~`+}IiECfv;A}0tw)zJ?*JNgY>`SrYJaikmPFUGnB^l2F;hzM zq4I?RQ_-b;32KM;fQW$Rs+r9;fDOP(aV5LbGC$Hn?H`P9keir8)8QCcp@H<6H)VRO zA_$aUbP0ik4pzye?}+po5qDE>r4|$zd}NZ31pAAfP0w0%k?@2Aa08AFIRw>g@R|dN z&p!jL4kFfwf6;TWi-oXhL^U7ZlBPyx!?{?M2T&^(WuhfB?U!X79sRa;cuhFF|9T2b zh@PMEzbBD$etY7K*Nl>g=Q=U;q+(tzxfGTpsx$GqYufy&vlM{AM@qLD5S6feNM|se zY7qG^%kOtJFh-$+`ca=}h+36fqGRxV&{$7CF!5|Qka=6(;VC~=ne7{uyU;~jQ4-jD z)oGQGP`wx#z+!g4=f9?_p`J0$6%d$(M^AdJuBv&rV}>LrHyBiy>3vPTBLre_F!kG$Ya?Cq&3PL6AKBs@=lY{ZsGXE?z5|5Jg1$>9S!)tVBhI{lI>sQ11 zc@jpEQhBf=l53ID7_3MFE-R*#=Ta{tro3L=&0qOJT{3y>in zo2BoZnYd89ejN#5@-AV*Lo+`$fva3;MDzxD@ka|oog0U7;>}hQ`G>kIWBITtFM>H) z

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 literal 0 HcmV?d00001 diff --git a/chat-widget/src/assets/notification_sound.mp3 b/chat-widget/src/assets/notification_sound.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..5458741a29f0788b0d374b2990d6f698c3a83d0c GIT binary patch literal 45836 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 KLGFM2C;kV|tRZRu literal 0 HcmV?d00001 diff --git a/chat-widget/src/assets/react.svg b/chat-widget/src/assets/react.svg new file mode 100644 index 00000000..6c87de9b --- /dev/null +++ b/chat-widget/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/chat-widget/src/assets/screenshot.png b/chat-widget/src/assets/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..12d90a1852739c2654f9e0ff95e379903e4ea341 GIT binary patch literal 472061 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 z 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≀HPcx1q$dklUJbrH&M_q$p7-GR8Dy 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 Y+cSTxKgVeEZ}8`$jMDk|vj+G7ABy|McK`qY literal 0 HcmV?d00001 diff --git a/chat-widget/src/components/Home/Home.scss b/chat-widget/src/components/Home/Home.scss new file mode 100644 index 00000000..fe424101 --- /dev/null +++ b/chat-widget/src/components/Home/Home.scss @@ -0,0 +1,5 @@ +.home__container { + width: 100%; + height: 100%; + display: flex; +} diff --git a/chat-widget/src/components/Home/Home.tsx b/chat-widget/src/components/Home/Home.tsx new file mode 100644 index 00000000..4093b284 --- /dev/null +++ b/chat-widget/src/components/Home/Home.tsx @@ -0,0 +1,30 @@ +// import { useNavigate } from "react-router"; +import Main from "./Main/Main"; +import Sidebar from "./Sidebar/Sidebar"; +import { useEffect } from "react"; +import { useChat } from "@connectycube/use-chat"; +import "./Home.scss"; +import { chatCredentials } from "../../connectycube"; + +const Home = () => { + // const navigate = useNavigate(); + const { connect } = useChat(); + + useEffect(() => { + // auto-connect + connect(chatCredentials()); + + // if (!selectedDialog) { + // navigate("/home"); + // } + }, []); + + return ( +

+ ); +}; + +export default Home; diff --git a/chat-widget/src/components/Home/Main/ChatHeader/ChatHeader.scss b/chat-widget/src/components/Home/Main/ChatHeader/ChatHeader.scss new file mode 100644 index 00000000..2a697b98 --- /dev/null +++ b/chat-widget/src/components/Home/Main/ChatHeader/ChatHeader.scss @@ -0,0 +1,67 @@ +.last__activity { + unicode-bidi: plaintext; + overflow: hidden; + text-overflow: ellipsis; + font-size: 0.875rem; + line-height: 1.125rem; + color: rgb(128, 133, 136); + white-space: nowrap; +} +.typing-status { + font-size: 13px; + padding-top: 5px; + font-style: italic; +} +.user__info { + display: flex; + justify-content: space-between; + position: relative; + top: 50%; + transform: translateY(-50%); + & .more__modal { + position: absolute; + right: 10%; + bottom: 25%; + padding: 10px 15px; + background-color: white; + cursor: pointer; + border-radius: 5px; + + border: 0.5px solid #d9d4d4; + box-shadow: rgba(50, 50, 93, 0.25) 0px 2px 5px -1px, + rgba(0, 0, 0, 0.3) 0px 1px 3px -1px; + } + & .user__info-main { + display: flex; + align-items: center; + position: relative; + + & .user__info-back { + display: none; + @media screen and (max-width:767px) { + display: block; + padding-right: 10px; + } + } + + & .user-name-container { + display: flex; + flex-direction: column; + align-items: flex-start; + } + + & .user__avatar-dialog { + margin-right: 10px; + & .user__avatar-img { + object-fit: cover; + width: 60px; + height: 60px; + border-radius: 50%; + margin-right: 10px; + } + } + } + & .user__info-buttons { + margin-right: 10px; + } +} diff --git a/chat-widget/src/components/Home/Main/ChatHeader/ChatHeader.tsx b/chat-widget/src/components/Home/Main/ChatHeader/ChatHeader.tsx new file mode 100644 index 00000000..be877970 --- /dev/null +++ b/chat-widget/src/components/Home/Main/ChatHeader/ChatHeader.tsx @@ -0,0 +1,130 @@ +import React, { useMemo } from "react"; +import { FiMoreHorizontal } from "react-icons/fi"; +import { IoIosArrowBack } from "react-icons/io"; +import { useNavigate } from "react-router"; +import { useChat } from "@connectycube/use-chat"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger, +} from "@/components/shadcn-ui/dropdown-menu"; +import "./ChatHeader.scss"; + +export interface ChatHeaderProps { + toggleProfile: () => void; +} + +const ChatHeader: React.FC = ({ toggleProfile }) => { + const navigate = useNavigate(); + const { + selectedDialog, + leaveGroupChat, + lastActivity, + getDialogOpponentId, + typingStatus, + users, + } = useChat(); + const isGroupChat = selectedDialog.type === 2; + + const opponentId = getDialogOpponentId(); + + const typingLabel = useMemo(() => { + if (!typingStatus[selectedDialog?._id]) { + return null; + } + + const names = []; + for (const [userIdString, isTyping] of Object.entries( + typingStatus[selectedDialog._id] + )) { + if (isTyping) { + const userId = +userIdString; + const user = users[userId]; + names.push(user.full_name || user.login); + } + } + + return names.length > 0 + ? `${names.join()} ${names.length > 1 ? "are" : "is"} typing` + : ""; + }, [selectedDialog, typingStatus]); + + const exitChat = async () => { + await leaveGroupChat(); + navigate("/home"); + }; + + return ( +
+
+ { + navigate("/home"); + }} + className="user__info-back" + /> + +
{ + toggleProfile(); + }} + > + {selectedDialog.photo ? ( + User Photo + ) : ( +
+ {selectedDialog.name.slice(0, 2)} +
+ )} +
+
+ { + toggleProfile(); + }} + > + {selectedDialog.name} + + +
+ {typingStatus && !isGroupChat ? ( + typingStatus.isTyping ? ( + "typing..." + ) : !isGroupChat ? ( + + {lastActivity[opponentId as number]} + + ) : ( + "someone typing" + ) + ) : !isGroupChat ? ( + + {lastActivity[opponentId as number]} + + ) : ( + "" + )} + {isGroupChat ? {typingLabel} : ""} +
+
+
+ + + + + + Exit chat + + +
+ ); +}; + +export default React.memo(ChatHeader); diff --git a/chat-widget/src/components/Home/Main/ChatInfo/ChatInfo.scss b/chat-widget/src/components/Home/Main/ChatInfo/ChatInfo.scss new file mode 100644 index 00000000..20d00fdb --- /dev/null +++ b/chat-widget/src/components/Home/Main/ChatInfo/ChatInfo.scss @@ -0,0 +1,140 @@ +.add__user { + position: fixed !important; + left: 50%; + top: 50%; +} +.profile__info { + position: absolute; + border-left: 1px solid #e7e7e7; + z-index: 21; + transform: translateX(100%); + width: 30%; + display: flex; + align-items: flex-start; + flex-direction: column; + justify-content: flex-start; + height: 100%; + & .new-chat__container { + & .new-chat__form { + position: absolute; + width: 100%; + top: 50%; + left: 0; + right: 0; + z-index: 22; + } + } + + @media screen and (max-width: 1440px) { + width: 50%; + } + @media screen and (max-width: 1100px) { + width: 70%; + } + @media screen and (max-width: 820px) { + width: 100%; + } + + & { + transition: 0.2s; + right: 0; + } + + & .profile__header { + border-bottom: 1px solid #e7e7e7; + display: flex; + align-items: center; + flex-direction: row; + justify-content: flex-start; + width: 100%; + flex: 0 1 9.5%; + + & span { + margin: 0 auto; + font-family: "Roboto"; + + font-size: 1.25rem; + font-weight: 500; + } + } + &.show { + background: white; + transform: translateX(0); + transform: translate(0); + } + + & .profile__group-members { + height: 68%; + background: white; + & .group__members-header { + display: flex; + justify-content: space-between; + padding: 15px; + align-items: center; + & .group__members-add { + cursor: pointer; + } + & .group-members__title { + font-weight: 500; + } + } + & .members__container { + overflow-y: scroll; + height: 100%; + } + } + & .profile__main-info { + height: 50%; + width: 100%; + + & .profile__img-container { + height: 100%; + width: 100%; + position: relative; + & .user__no-img { + &.profile { + width: 100%; + height: 100%; + border-radius: 0; + + & .name { + font-size: 6rem; + } + } + } + &::after { + position: absolute; + width: 100%; + height: 15%; + content: ""; + background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0) 100%); + bottom: 0; + left: 0; + } + & .user__avatar-img { + width: 100%; + height: 100%; + object-fit: cover; + } + & .profile__user-info { + position: absolute; + text-align: left; + bottom: 10px; + z-index: 21; + left: 20px; + color: white; + + & .members__count { + line-height: 1.125rem; + color: #afb4b7; + font-size: 0.85rem; + } + + & .last__activity { + line-height: 1.125rem; + color: #afb4b7; + } + } + } + } +} diff --git a/chat-widget/src/components/Home/Main/ChatInfo/ChatInfo.tsx b/chat-widget/src/components/Home/Main/ChatInfo/ChatInfo.tsx new file mode 100644 index 00000000..3d78f820 --- /dev/null +++ b/chat-widget/src/components/Home/Main/ChatInfo/ChatInfo.tsx @@ -0,0 +1,128 @@ +import React, { useMemo, useState } from "react"; +import { IoIosArrowBack } from "react-icons/io"; +import { FiUserPlus } from "react-icons/fi"; +import { useChat } from "@connectycube/use-chat"; +import ConnectyCube from "connectycube"; +import GroupMember from "./GroupMember/GroupMember"; +import "./ChatInfo.scss"; +import { + Dialog, + DialogContent, + DialogTrigger, +} from "@/components/shadcn-ui/dialog"; +import NewChatDialog from "../../Sidebar/NewChat/NewChatDialog"; + +export interface ChatInfoProps { + showProfile: boolean; + toggleProfile: () => void; +} + +const ChatInfo: React.FC = ({ showProfile, toggleProfile }) => { + const { selectedDialog = {}, users, getDialogOpponentId, lastActivity } = + useChat(); + console.log({ selectedDialog, users, getDialogOpponentId, lastActivity}); + + const [addMembersDialogOpen, addMemberDialogOpen] = useState(false); + + const opponentId = selectedDialog ? getDialogOpponentId() : null; + const isGroupChat = selectedDialog?.type === 2; + + const photoUrl = selectedDialog?.photo + ? ConnectyCube.storage.privateUrl(selectedDialog.photo) + : undefined; + const initials = selectedDialog?.name.slice(0, 2).toUpperCase(); + + const usersView = useMemo( + () => + selectedDialog?.occupants_ids.map((oId: number) => { + const user = users[oId]; + return ( + + ); + }), + [selectedDialog] + ); + + return ( + <> +
+
+ { + toggleProfile(); + }} + size={32} + /> + + Profile +
+
+
+ {/* chat photo */} + {photoUrl ? ( + User Photo + ) : ( +
+ {initials} +
+ )} +
+ {/* chat name */} +

{selectedDialog?.name || ""}

+ + {/* last seen / members count */} + {isGroupChat ? ( +

+ {selectedDialog.occupants_ids.length} members +

+ ) : ( +

+ {opponentId && lastActivity[opponentId as number]} +

+ )} +
+ + {/* members list */} + {isGroupChat && ( +
+
+ Members + + + + + + { + addMemberDialogOpen(false); + }} + /> + + +
+
{usersView}
+
+ )} +
+
+
+ + ); +}; + +export default React.memo(ChatInfo); diff --git a/chat-widget/src/components/Home/Main/ChatInfo/GroupMember/GroupMember.scss b/chat-widget/src/components/Home/Main/ChatInfo/GroupMember/GroupMember.scss new file mode 100644 index 00000000..ea63196a --- /dev/null +++ b/chat-widget/src/components/Home/Main/ChatInfo/GroupMember/GroupMember.scss @@ -0,0 +1,30 @@ +.member { + display: flex; + align-items: center; + padding: 10px; + & .member__info-container { + width: 90%; + display: flex; + align-items: center; + justify-content: space-between; + + & .member__name-activity { + display: flex; + flex-direction: column; + align-items: flex-start; + } + } + & .member__photo-container { + margin-right: 10px; + border-radius: 50%; + width: 60px; + height: 60px; + + & .member__avatar-img { + width: 100%; + height: 100%; + object-fit: cover; + border-radius: 50%; + } + } +} diff --git a/chat-widget/src/components/Home/Main/ChatInfo/GroupMember/GroupMember.tsx b/chat-widget/src/components/Home/Main/ChatInfo/GroupMember/GroupMember.tsx new file mode 100644 index 00000000..8bcc5b51 --- /dev/null +++ b/chat-widget/src/components/Home/Main/ChatInfo/GroupMember/GroupMember.tsx @@ -0,0 +1,70 @@ +import React from "react"; +import { MdPersonRemoveAlt1 } from "react-icons/md"; +import "./GroupMember.scss"; +import { useChat } from "@connectycube/use-chat"; +import { ConfirmationAlert } from "../../../../../components/Shared/ConfirmationAlert"; + +export interface GroupMemberProps { + userId: number; + name: string; + avatar?: string; +} + +const GroupMember: React.FC = ({ userId, name, avatar }) => { + const { + lastActivity, + selectedDialog, + currentUserId, + removeUsersFromGroupChat, + } = useChat(); + + const handleRemoveUser = () => { + removeUsersFromGroupChat([userId]); + }; + + const initials = name.slice(0, 2); + + const isChatOwner = selectedDialog.user_id === currentUserId; + const isAdmin = selectedDialog.user_id === userId; + const canRemoveUser = isChatOwner && currentUserId !== userId; + + const lastActivityInfo = userId !== currentUserId ? lastActivity[userId] : ""; + + return ( +
+
+ {avatar ? ( + User avatar + ) : ( +
+ {initials} +
+ )} +
+
+
+

{name}

+

{lastActivityInfo}

+
+ + {canRemoveUser && ( + + } + title="Remove members" + body="Are you sure you want to remove members?" + onConfirm={handleRemoveUser} + /> + )} + {isAdmin && admin} +
+
+ ); +}; + +export default React.memo(GroupMember); diff --git a/chat-widget/src/components/Home/Main/Main.scss b/chat-widget/src/components/Home/Main/Main.scss new file mode 100644 index 00000000..1f4b47c1 --- /dev/null +++ b/chat-widget/src/components/Home/Main/Main.scss @@ -0,0 +1,156 @@ +.main__content { + background-color: white; + height: 100%; + width: 100%; + display: flex; + justify-content: space-between; + flex-direction: column; + overflow: hidden; + transition: 0.2s; + &.small { + @media screen and (min-width: 1400px) { + width: 70%; + } + @media screen and (max-width: 1400px) { + width: 100%; + } + + @media screen and (max-width: 767px) { + width: 0%; + } + } +} + +.main__container { + background-color: white; + height: 100%; + width: 100%; + display: flex; + justify-content: flex-end; + flex-direction: row-reverse; + overflow: hidden; + position: relative; + + & .message__field { + display: flex; + position: relative; + gap: 10px; + width: 90%; + margin: 0 auto; + padding-top: 10px; + border-top: 1px solid #e7e7e7; + padding-bottom: 10px; + & input[type="file"] { + display: none; + } + & .custom-file-upload { + display: inline-block; + padding-top: 8px; + padding-left: 0px; + cursor: pointer; + } + & .send-btn { + border: none; + font-family: "Roboto"; + background-color: dodgerblue; + color: white; + font-weight: 600; + border-radius: 4px; + cursor: pointer; + } + & .message__area { + padding: 10px; + height: 45px; + border: 1px solid #d9d9d9; + font-size: 16px; + font-family: "Roboto"; + border-radius: 10px; + &::placeholder { + font-size: 16px; + font-family: inherit; + } + } + } + & .main__header { + flex: 0 1 11.5%; + position: relative; + background-color: white; + margin-left: 15px; + border-bottom: 1px solid #c0c0c0; + + & .header-none { + width: 100%; + font-weight: 600; + font-size: 30px; + height: 100%; + text-align: center; + display: flex; + align-items: center; + justify-content: center; + } + } + & .messages__container { + flex: 0 1 100%; + display: flex; + height: 100%; + flex-direction: column-reverse; + padding-bottom: 5px; + overflow-x: hidden; + width: 100%; + position: relative; + height: 100%; + overflow-y: scroll; + background-color: white; + & .messages { + display: flex; + padding-left: 15px; + flex-direction: column; + width: 90%; + margin: 0 auto; + & .unread__messages-scroll { + position: fixed; + display: flex; + align-items: center; + justify-content: center; + top: 83%; + cursor: pointer; + left: 96%; + border: 1px solid; + border-radius: 50%; + width: 35px; + height: 35px; + & .unread__messages-counter { + position: absolute; + width: 25px; + height: 25px; + /* border: 1px solid; */ + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; + top: -76%; + background: #6aacee; + color: white; + } + } + + & .no-msg { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + } + } + + & .choose__chat { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + } + } + & .message__area { + width: 100%; + resize: none; + } +} diff --git a/chat-widget/src/components/Home/Main/Main.tsx b/chat-widget/src/components/Home/Main/Main.tsx new file mode 100644 index 00000000..8333cb85 --- /dev/null +++ b/chat-widget/src/components/Home/Main/Main.tsx @@ -0,0 +1,190 @@ +import { useEffect, useState, useRef, useMemo, ChangeEvent } from "react"; +import { animateScroll } from "react-scroll"; +import { useChat } from "@connectycube/use-chat"; +import { IoMdAttach } from "react-icons/io"; +import { IoIosArrowDown } from "react-icons/io"; +import Message from "./Message/Message"; +import ChatHeader from "./ChatHeader/ChatHeader"; +// import ChatInfo from "./ChatInfo/ChatInfo"; +import "./Main.scss"; + +const Main = () => { + const { + sendMessage, + selectedDialog, + messages, + users, + sendTypingStatus, + sendMessageWithAttachment, + } = useChat(); + + const [showProfile, setShowProfile] = useState(false); + const messageInputRef = useRef(null); + const fileInputRef = useRef(null); + const messagesContainerRef = useRef(null); + const isTyping = useRef(false); + + useEffect(() => { + isTyping.current = false; + }, [selectedDialog]); + + const handleSendMessage = () => { + isTyping.current = false; + + const messageText = messageInputRef.current?.value.trim() || ""; + if (messageText.length > 0) { + sendMessage(messageText); // send message to selected dialog + messageInputRef.current!.value = ""; + scrollToBottom(); + } + }; + + const onFileSelected = (event: ChangeEvent) => { + isTyping.current = false; + + const {files} = event.currentTarget; + + if (!files) return; + + const file = files[0]; + const type = file.type.split("/")[1]; + + if ( + type === "svg+xml" || + type === "image" || + type === "webp" || + type === "png" || + type === "jpeg" + ) { + sendMessageWithAttachment(file); + } else { + alert( + "File format is not supported. Only images supported in this code sample" + ); + } + + event.target.value = ""; + }; + + const onEnterPress = (event: { + keyCode: number; + shiftKey: boolean; + preventDefault: () => void; + }) => { + if (event.keyCode === 13 && event.shiftKey === false) { + event.preventDefault(); + + handleSendMessage(); + } + }; + + const scrollToBottom = () => { + animateScroll.scrollToBottom({ + containerId: messagesContainerRef.current?.id, + }); + }; + + const startTyping = () => { + if (!isTyping.current) { + isTyping.current = true; + sendTypingStatus(); // send typing to selected chat + } + }; + + const toggleProfile = () => { + setShowProfile(!showProfile); + }; + + const messagesView = useMemo(() => { + if (selectedDialog && messages[selectedDialog._id]) { + for (let i = 0; i < messages[selectedDialog._id].length; i++) { + return messages[selectedDialog._id].map((msg, index) => { + const sender = users[msg.sender_id]; + return ( + + ); + }); + } + } + }, [messages, users]); + + return ( +
+ {/* */} +
+
+ {selectedDialog && } + {!selectedDialog &&
Chats
} +
+
+ {selectedDialog && ( +
+ {messages ? ( + messagesView + ) : ( + NO MESSAGES YET + )} + {selectedDialog.unread_messages_count > 0 && ( +
+ +
+ {selectedDialog.unread_messages_count} +
+
+ )} +
+ )} + {!selectedDialog &&
Choose a chat
} +
+ {selectedDialog && ( +
+ + + + +
+ )} +
+
+ ); +}; + +export default Main; diff --git a/chat-widget/src/components/Home/Main/Message/Message.scss b/chat-widget/src/components/Home/Main/Message/Message.scss new file mode 100644 index 00000000..9456cf8b --- /dev/null +++ b/chat-widget/src/components/Home/Main/Message/Message.scss @@ -0,0 +1,189 @@ +.lds-spinner { + color: official; + display: inline-block; + position: absolute; + width: 80px !important; + height: 80px; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); +} +.lds-spinner div { + transform-origin: 40px 40px; + animation: lds-spinner 1.2s linear infinite; +} +.lds-spinner div:after { + content: " "; + display: block; + position: absolute; + top: 3px; + left: 37px; + width: 6px; + height: 18px; + border-radius: 20%; + background: #000; +} +.lds-spinner div:nth-child(1) { + transform: rotate(0deg); + animation-delay: -1.1s; +} +.lds-spinner div:nth-child(2) { + transform: rotate(30deg); + animation-delay: -1s; +} +.lds-spinner div:nth-child(3) { + transform: rotate(60deg); + animation-delay: -0.9s; +} +.lds-spinner div:nth-child(4) { + transform: rotate(90deg); + animation-delay: -0.8s; +} +.lds-spinner div:nth-child(5) { + transform: rotate(120deg); + animation-delay: -0.7s; +} +.lds-spinner div:nth-child(6) { + transform: rotate(150deg); + animation-delay: -0.6s; +} +.lds-spinner div:nth-child(7) { + transform: rotate(180deg); + animation-delay: -0.5s; +} +.lds-spinner div:nth-child(8) { + transform: rotate(210deg); + animation-delay: -0.4s; +} +.lds-spinner div:nth-child(9) { + transform: rotate(240deg); + animation-delay: -0.3s; +} +.lds-spinner div:nth-child(10) { + transform: rotate(270deg); + animation-delay: -0.2s; +} +.lds-spinner div:nth-child(11) { + transform: rotate(300deg); + animation-delay: -0.1s; +} +.lds-spinner div:nth-child(12) { + transform: rotate(330deg); + animation-delay: 0s; +} +@keyframes lds-spinner { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} + +.message { + display: flex; + text-align: left; + flex-direction: row; + align-items: center; + white-space: pre-wrap; + max-width: 90%; + position: relative; + + & .user-message__info { + padding: 10px; + margin-left: 10px; + background-color: #eaeaeb !important; + display: flex; + border-radius: 15px; + flex-direction: column; + min-width: 150px; + word-wrap: break-word; + + & .message__time-container { + display: flex; + align-items: center; + font-size: 12px; + font-weight: 500; + font-style: italic; + color: #929293; + position: absolute; + bottom: -1px; + gap: 5px; + right: 10px; + justify-content: flex-end; + } + + & > * { + &:not(:last-child) { + padding-bottom: 5px; + } + } + } + & .message__avatar { + width: 60px; + height: 60px; + } + & div { + width: 100%; + white-space: pre-line; + & .message__photo-container { + &.full { + position: fixed; + width: 100vw; + height: 100vh; + top: 0; + left: 0; + z-index: 20; + background-color: #000000de; + + & .message__photo { + position: absolute; + left: 50%; + top: 50%; + transform: scale(3) translate(-17%, -20%); + } + } + & .message__photo { + max-height: 200px; + transition: 0.2s; + } + } + } + & .message-user__name { + font-weight: 600; + } + &:not(:last-child) { + margin-bottom: 10px; + } + &.my { + align-self: flex-end; + & .user__img-container { + order: 2; + } + & .user-message__info { + order: 1; + margin-right: 10px; + position: relative; + } + } + &.opponent { + align-self: flex-start; + & .message__time-container { + display: flex; + align-items: center; + font-size: 12px; + font-weight: 500; + font-style: italic; + color: #929293; + position: absolute; + bottom: 2px; + right: 10px; + justify-content: flex-end; + } + + & .user__img { + width: 50px; + height: 50px; + } + } +} diff --git a/chat-widget/src/components/Home/Main/Message/Message.tsx b/chat-widget/src/components/Home/Main/Message/Message.tsx new file mode 100644 index 00000000..8490a287 --- /dev/null +++ b/chat-widget/src/components/Home/Main/Message/Message.tsx @@ -0,0 +1,118 @@ +import React, { useMemo } from "react"; +import { IoCheckmarkSharp, IoCheckmarkDoneSharp } from "react-icons/io5"; +import { useInView } from "react-intersection-observer"; +import { Messages } from "@connectycube/types"; +import { useChat } from "@connectycube/use-chat"; +import Avatar from "../../../Shared/Avatar"; +import "./Message.scss"; + +export interface MessageProps { + message: Messages.Message; + isGroupChat: boolean; + dialogName: string; + senderName: string; + senderAvatar: string; +} + +const Message: React.FC = ({ + message, + isGroupChat, + dialogName, + senderName, + senderAvatar, +}) => { + const { currentUserId, readMessage, messageSentTimeString } = useChat(); + + const isCurrentUserSender = message.sender_id === currentUserId; + + const senderNameString = isCurrentUserSender + ? "You" + : isGroupChat + ? senderName + : dialogName; + + const sentTime = useMemo(() => { + return messageSentTimeString(message); + }, [message.date_sent]); + + const [ref, inView] = useInView(); + if (inView) { + if (message.read === 0 && message.sender_id !== currentUserId) { + readMessage(message._id, message.sender_id, message.chat_dialog_id || ""); + } + } + + return ( +
+ {/* avatar */} + {isGroupChat && !isCurrentUserSender && ( + + )} + +
+ {/* sender name in group chat */} + {isGroupChat && !isCurrentUserSender && ( + {senderNameString} + )} + {/* message body */} +
+ {message.message ? ( + message.message + ) : ( +
{ + e.currentTarget.classList.toggle("full"); + }} + > + + {message.isLoading && ( +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )} +
+ )} +
+
+ {/* date sent */} + {sentTime} + + {/* sent/read status */} + {isCurrentUserSender && ( + + {message.read ? ( + + ) : ( + + )} + + )} +
+
+
+ ); +}; + +export default Message; diff --git a/chat-widget/src/components/Home/Sidebar/ChatItem/ChatItem.scss b/chat-widget/src/components/Home/Sidebar/ChatItem/ChatItem.scss new file mode 100644 index 00000000..c9d4793c --- /dev/null +++ b/chat-widget/src/components/Home/Sidebar/ChatItem/ChatItem.scss @@ -0,0 +1,87 @@ +.user__img { + object-fit: cover; + width: 60px; + height: 60px; + border-radius: 50%; +} +.user__no-img { + display: flex; + text-transform: uppercase; + width: 60px; + height: 60px; + border-radius: 50%; + justify-content: center; + background-color: #87ceeb; + + align-items: center; + + & .name { + font-weight: 700; + color: white; + } +} +.chat__block { + display: flex; + + align-items: center; + padding: 0px 0px 0px 20px; + margin-bottom: 10px; + &.chosen, + &:hover { + transition: 0.1s ease; + background-color: #f8f9fa; + } + &.chosen { + border-left: 4px solid #2c85be; + } + & .user__info-main { + display: flex; + flex-direction: column; + padding-left: 20px; + color: black; + text-align: left; + justify-content: space-between; + flex: 1 1 100%; + & .last__message { + display: block; + padding-bottom: 3px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + font-size: 13px; + margin: 0; + } + & .group__name-container { + display: flex; + align-items: center; + + & small { + } + + & .group__img { + padding-right: 5px; + } + } + + & > * { + &:not(:last-child) { + padding-bottom: 5px; + } + } + & small { + font-size: 11px; + color: #919191; + } + } + & .last__mesage-time { + } + + & .unread-counter { + background: #6aacef; + padding-left: 10px; + padding-right: 10px; + margin-right: 5px; + border-radius: 20px; + color: white; + } +} diff --git a/chat-widget/src/components/Home/Sidebar/ChatItem/ChatItem.tsx b/chat-widget/src/components/Home/Sidebar/ChatItem/ChatItem.tsx new file mode 100644 index 00000000..306eec96 --- /dev/null +++ b/chat-widget/src/components/Home/Sidebar/ChatItem/ChatItem.tsx @@ -0,0 +1,77 @@ +import React, { useMemo } from "react"; +import { useEffect } from "react"; +import { TiGroup } from "react-icons/ti"; +import { useLocation, useNavigate } from "react-router"; +import { useChat } from "@connectycube/use-chat"; +import "./ChatItem.scss"; +import Avatar from "../../../Shared/Avatar"; +import { Dialogs } from "@connectycube/types"; + +export interface ChatItemProps { + dialog: Dialogs.Dialog; +} + +const ChatItem: React.FC = ({ dialog }) => { + const location = useLocation(); + const navigate = useNavigate(); + + const { + selectedDialog, + selectDialog, + currentUserId, + lastMessageSentTimeString, + } = useChat(); + + const isSelected = dialog._id === selectedDialog?._id; + + const lastMessageTime = useMemo(() => { + return lastMessageSentTimeString(dialog); + }, [dialog.last_message_date_sent, dialog.created_at]); + + // if open chat page url directly + useEffect(() => { + if (location.state === dialog._id && !selectedDialog) { + selectDialog(dialog); + } + }, []); + + const handleSelectChat = async () => { + await selectDialog(dialog); + navigate(`/home/${dialog._id}`); + }; + + return ( +
+ {/* avatar */} + + +
+
+ {dialog.type === 2 && ( + + )} +

{dialog.name}

+
+ + + {dialog.last_message + ? dialog.last_message_user_id === currentUserId + ? "me: " + dialog.last_message + : dialog.name + " : " + dialog.last_message + : "No messages yet"} + + {lastMessageTime} +
+ + {/* unread counter */} + {dialog.unread_messages_count > 0 && ( + {dialog.unread_messages_count} + )} +
+ ); +}; + +export default ChatItem; diff --git a/chat-widget/src/components/Home/Sidebar/ChatPhoto/ChatPhoto.tsx b/chat-widget/src/components/Home/Sidebar/ChatPhoto/ChatPhoto.tsx new file mode 100644 index 00000000..f18842e5 --- /dev/null +++ b/chat-widget/src/components/Home/Sidebar/ChatPhoto/ChatPhoto.tsx @@ -0,0 +1,28 @@ +import React from "react"; +import { + Avatar as AvatarComponent, + AvatarFallback, + AvatarImage, +} from "@/components/shadcn-ui/avatar"; +import ConnectyCube from "connectycube"; + +export interface AvatarProps { + imageUID: string; + name: string; +} + +const Avatar: React.FC = ({ imageUID, name }) => { + const photoUrl = imageUID + ? ConnectyCube.storage.privateUrl(imageUID) + : undefined; + const initials = name.slice(0, 2).toUpperCase(); + + return ( + + + {initials} + + ); +}; + +export default React.memo(Avatar); diff --git a/chat-widget/src/components/Home/Sidebar/ChatsList/ChatsList.scss b/chat-widget/src/components/Home/Sidebar/ChatsList/ChatsList.scss new file mode 100644 index 00000000..e69de29b diff --git a/chat-widget/src/components/Home/Sidebar/ChatsList/ChatsList.tsx b/chat-widget/src/components/Home/Sidebar/ChatsList/ChatsList.tsx new file mode 100644 index 00000000..e8f0a300 --- /dev/null +++ b/chat-widget/src/components/Home/Sidebar/ChatsList/ChatsList.tsx @@ -0,0 +1,26 @@ +import React, { useMemo } from "react"; +import { useChat } from "@connectycube/use-chat"; +import ChatItem from "../ChatItem/ChatItem"; +import "./ChatsList.scss"; + +export interface ChatsListProps { + searchTerm?: string; +} + +const ChatsList: React.FC = ({ searchTerm }) => { + const { dialogs, selectedDialog } = useChat(); + + const dialogsToRender = useMemo(() => { + return searchTerm + ? dialogs.filter((d) => { + return d.name.toLowerCase().includes(searchTerm.toLowerCase()); + }) + : dialogs; + }, [searchTerm, dialogs, selectedDialog]); + + return dialogsToRender.map((dialog) => { + return ; + }); +}; + +export default ChatsList; diff --git a/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/CreateGroupChat.scss b/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/CreateGroupChat.scss new file mode 100644 index 00000000..d6915261 --- /dev/null +++ b/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/CreateGroupChat.scss @@ -0,0 +1,37 @@ +.new-chat__form { + & .users__in-group { + display: flex; + width: 90%; + margin: 0 auto; + padding-top: 20px; + flex-wrap: wrap; + & > * { + padding-right: 20px; + } + } + & .error { + color: red; + } + &.create { + padding-top: 30px; + } + & .chat__img { + & img { + margin: 0 auto; + width: 220px; + height: 150px; + object-fit: contain; + } + } + & .chat__name { + margin: 0 auto; + width: 100%; + height: 15px; + height: 50px; + border-radius: 30px; + border: 1px solid #dbdbdb; + margin-top: 20px; + padding-left: 20px; + } +} + diff --git a/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/CreateGroupChat.tsx b/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/CreateGroupChat.tsx new file mode 100644 index 00000000..f98ee07c --- /dev/null +++ b/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/CreateGroupChat.tsx @@ -0,0 +1,68 @@ +import React, { useMemo } from "react"; +import { useForm, SubmitHandler } from "react-hook-form"; +import { Users } from "@connectycube/types"; +import { Button } from "@/components/shadcn-ui/button"; +import Participant from "./Participant/Participant"; +import groupChatImage from "../../../../../assets/group-chat.jpg"; +import "./CreateGroupChat.scss"; + +export interface CreateGroupChatProps { + users: Users.User[]; + onCreateChat: (name: string) => void; +} + +type FormValues = { + name: string; +}; + +const CreateGroupChat: React.FC = ({ + users, + onCreateChat, +}) => { + const { + register, + handleSubmit, + formState: { errors }, + } = useForm(); + + const participants = useMemo(() => { + return users.map((user) => { + return ( + + ); + }); + }, [users]); + + const onSubmit: SubmitHandler = async (data) => { + onCreateChat(data.name); + }; + + return ( +
+
+ +
+ + {errors.name && {errors.name.message}} +
{participants}
+
+ +
+
+ ); +}; + +export default React.memo(CreateGroupChat); diff --git a/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/Participant/Participant.scss b/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/Participant/Participant.scss new file mode 100644 index 00000000..d131d819 --- /dev/null +++ b/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/Participant/Participant.scss @@ -0,0 +1,10 @@ +.group-list { + & .group-list__avatar { + width: 60px; + height: 60px; + border-radius: 50%; + object-fit: cover; + } + & .group-username { + } +} diff --git a/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/Participant/Participant.tsx b/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/Participant/Participant.tsx new file mode 100644 index 00000000..aba63e74 --- /dev/null +++ b/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/Participant/Participant.tsx @@ -0,0 +1,33 @@ +import React from "react"; +import { + Avatar, + AvatarFallback, + AvatarImage, +} from "@/components/shadcn-ui/avatar"; +import ConnectyCube from "connectycube"; +import "./Participant.scss"; + +export interface ParticipantProps { + avatar: string | null; + name: string; +} + +const Participant: React.FC = ({ avatar = '', name }) => { + const avatarUrl = avatar + ? ConnectyCube.storage.privateUrl(avatar) + : undefined; + const initials = name?.slice(0, 2).toUpperCase(); + + return ( +
+ + + {initials} + + +

{name}

+
+ ); +}; + +export default React.memo(Participant); diff --git a/chat-widget/src/components/Home/Sidebar/NewChat/NewChatDialog.tsx b/chat-widget/src/components/Home/Sidebar/NewChat/NewChatDialog.tsx new file mode 100644 index 00000000..a6e900be --- /dev/null +++ b/chat-widget/src/components/Home/Sidebar/NewChat/NewChatDialog.tsx @@ -0,0 +1,185 @@ +import React, { useMemo, useState } from "react"; +import { FaSearch } from "react-icons/fa"; +import { useChat } from "@connectycube/use-chat"; +import { DialogHeader, DialogTitle } from "@/components/shadcn-ui/dialog"; +import { Input } from "@/components/shadcn-ui/input"; +import { Label } from "@/components/shadcn-ui/label"; +import { Button } from "@/components/shadcn-ui/button"; +import SearchedUser from "./SearchedUser/SearchedUser"; +import CreateGroupChat from "./CreateGroupChat/CreateGroupChat"; +import Participant from "./CreateGroupChat/Participant/Participant"; +import { useNavigate } from "react-router"; +import { Users } from '@connectycube/types'; + +export type ChatType = "private" | "group"; + +export interface NewChatDialogProps { + chatType: ChatType; + addUsersMode?: boolean; + onFinish: () => void; +} + +const NewChatDialog: React.FC = ({ + chatType, + addUsersMode, + onFinish, +}) => { + const navigate = useNavigate(); + + const { + createChat, + createGroupChat, + searchUsers, + addUsersToGroupChat, + selectDialog, + selectedDialog, + } = useChat(); + + const [selectedUsers, setSelectedUsers] = useState<{ + [key: number]: Users.User; + }>({}); + const [searchTerm, setSearchTerm] = useState(""); + const [searchedUsers, setSearchedUsers] = useState([]); + + const [isCreateGroupChatForm, setIsCreateGroupChatForm] = useState(false); + + const handleSearchUsers = async (e: { preventDefault: () => void }) => { + e.preventDefault(); + + if (searchTerm.length < 4) { + alert("Min search term is 4 chars"); + return; + } + + const users = await searchUsers(searchTerm); + + setSearchedUsers( + addUsersMode + ? users.filter( + (user) => !selectedDialog.occupants_ids.includes(user.id) + ) + : users + ); + }; + + const searchedUsersView: JSX.Element[] = useMemo(() => { + return searchedUsers.map((user) => { + return ( + { + const dialog = await createChat(userId); + await selectDialog(dialog); + navigate(`/home/${dialog._id}`); + onFinish(); + }} + avatar={user.avatar} + chatType={chatType} + isSelected={!!selectedUsers[user.id]} + onSelectUser={(userId: number, isSelected: boolean) => { + if (isSelected) { + setSelectedUsers({ ...selectedUsers, [userId]: user }); + } else { + delete selectedUsers[userId]; + setSelectedUsers({ ...selectedUsers }); + } + }} + /> + ); + }); + }, [searchedUsers, selectedUsers]); + + return ( + <> + + + {addUsersMode ? "Add members" : "Start new chat"} + + {!isCreateGroupChatForm && ( +
+
+
+ + setSearchTerm(e.target.value)} + /> +
+ +
+ + {/* searched users */} +
{searchedUsersView}
+ + {/* if group chat creation */} + {chatType === "group" && + Object.values(selectedUsers).length > 0 && ( + <> +
+ {Object.values(selectedUsers).map((user) => { + return ( + + ); + })} +
+
+ +
+ + )} +
+ )} + + {isCreateGroupChatForm && ( + { + const dialog = await createGroupChat( + Object.values(selectedUsers).map((u) => u.id), + chatName + ); + + await selectDialog(dialog); + navigate(`/home/${dialog._id}`); + onFinish(); + }} + /> + )} +
+ + ); +}; + +export default React.memo(NewChatDialog); diff --git a/chat-widget/src/components/Home/Sidebar/NewChat/SearchedUser/SearchedUser.scss b/chat-widget/src/components/Home/Sidebar/NewChat/SearchedUser/SearchedUser.scss new file mode 100644 index 00000000..77746a5e --- /dev/null +++ b/chat-widget/src/components/Home/Sidebar/NewChat/SearchedUser/SearchedUser.scss @@ -0,0 +1,49 @@ +.found__user { + display: flex; + align-items: center; + justify-content: space-between; + position: relative; + + & .add-status { + background-color: transparent; + color: #007bad; + border: 1px solid #36b6eb; + padding: 10px 20px; + border-radius: 10px; + transition: 0.2s; + cursor: pointer; + &.add:hover { + background: #31baf3; + color: #ffffff; + } + &.delete { + background: #31baf3; + color: #ffffff; + } + } + & .user__main-info { + display: flex; + flex: 0 0 70%; + align-items: center; + } + & .user__name-info { + text-align: left; + + & .user__full-name { + color: black; + } + & .user__login { + color: black; + font-size: 14px; + } + } + &:not(:last-child) { + padding-bottom: 10px; + } + + & .user__avatar { + width: 50px; + height: 50px; + margin-right: 15px; + } +} diff --git a/chat-widget/src/components/Home/Sidebar/NewChat/SearchedUser/SearchedUser.tsx b/chat-widget/src/components/Home/Sidebar/NewChat/SearchedUser/SearchedUser.tsx new file mode 100644 index 00000000..8595f0b7 --- /dev/null +++ b/chat-widget/src/components/Home/Sidebar/NewChat/SearchedUser/SearchedUser.tsx @@ -0,0 +1,74 @@ +import React from "react"; +import ConnectyCube from "connectycube"; +import { + Avatar, + AvatarFallback, + AvatarImage, +} from "@/components/shadcn-ui/avatar"; +import { Button } from "@/components/shadcn-ui/button"; +import { ChatType } from "../NewChatDialog"; +import "./SearchedUser.scss"; + +export interface SearchedUserProps { + id: number; + name: string; + avatar: string | null; + chatType: ChatType; + onStartChat: (userId: number) => void; + isSelected: boolean; + onSelectUser: (userId: number, isSelected: boolean) => void; +} + +const SearchedUser: React.FC = ({ + id, + name, + avatar, + onStartChat, + chatType, + isSelected, + onSelectUser, +}) => { + const avatarUrl = avatar + ? ConnectyCube.storage.privateUrl(avatar) + : undefined; + const initials = name.slice(0, 2).toUpperCase(); + + return ( +
+
+ + + {initials} + +
+

{name}

+
+
+ {chatType === "private" ? ( + + ) : ( +
{ + onSelectUser(id, !isSelected); + }} + > + {isSelected ? "Delete" : "Select"} +
+ )} +
+ ); +}; + +export default React.memo(SearchedUser); diff --git a/chat-widget/src/components/Home/Sidebar/Sidebar.scss b/chat-widget/src/components/Home/Sidebar/Sidebar.scss new file mode 100644 index 00000000..0a28d761 --- /dev/null +++ b/chat-widget/src/components/Home/Sidebar/Sidebar.scss @@ -0,0 +1,260 @@ +.sidebar-header__button { + position: relative; + width: 30px; + cursor: pointer; +} + +.sidebar-header__button:before, +.sidebar-header__button:after, +.sidebar-header__button div { + background: #000; + content: ""; + display: block; + height: 3px; + border-radius: 3px; + margin: 7px 0; + transition: 0.5s; +} + +.sidebar__container { + flex: 0 0 20%; + max-width: 20%; + display: flex; + flex-direction: column; + background-color: #fffdfd; + border-right: 1px solid #c4c2c2; + position: relative; + + & .chat-create-menu { + position: absolute; + top: 80%; + left: 40%; + text-align: left; + width: 160px; + height: 90px; + + border-radius: 10px; + box-shadow: rgba(50, 50, 93, 0.25) 0px 2px 5px -1px, + rgba(0, 0, 0, 0.3) 0px 1px 3px -1px; + background-color: white; + transition: 0.2s ease-in; + &.hide { + opacity: 0; + transform: scale(0); + } + & ul { + margin: 0 auto; + list-style-type: none; + + & li { + cursor: pointer; + border-radius: 10px; + + padding-left: 20px; + padding-top: 10px; + &:hover { + background-color: whitesmoke; + width: 100%; + } + + padding-bottom: 20px; + } + } + } + + & .loader, + & .loader:before, + & .loader:after { + border-radius: 50%; + width: 2.5em; + height: 2.5em; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation: load7 1.8s infinite ease-in-out; + animation: load7 1.8s infinite ease-in-out; + } + & .loader { + color: #282828; + font-size: 6px; + + position: relative; + text-indent: -9999em; + top: 38%; + left: 50%; + -webkit-transform: translateZ(0); + -ms-transform: translateZ(0); + transform: translateZ(0) translate(-50%, -50%); + -webkit-animation-delay: -0.16s; + animation-delay: -0.16s; + } + & .loader:before, + & .loader:after { + content: ""; + position: absolute; + top: 0; + } + & .loader:before { + left: -3.5em; + -webkit-animation-delay: -0.32s; + animation-delay: -0.32s; + } + & .loader:after { + left: 3.5em; + } + @-webkit-keyframes load7 { + 0%, + 80%, + 100% { + box-shadow: 0 2.5em 0 -1.3em; + } + 40% { + box-shadow: 0 2.5em 0 0; + } + } + @keyframes load7 { + 0%, + 80%, + 100% { + box-shadow: 0 2.5em 0 -1.3em; + } + 40% { + box-shadow: 0 2.5em 0 0; + } + } + + & .sidebar-chats__container { + position: relative; + cursor: pointer; + padding-top: 20px; + overflow-y: scroll; + height: 87%; + -webkit-overflow-scrolling: touch; + overflow-x: hidden; + } + + & .sidebar-header { + display: flex; + padding: 20px 10px; + justify-content: space-between; + align-items: center; + + & .context__menu { + transition: 0.2s; + position: absolute; + left: 2%; + top: 8%; + background-color: white; + cursor: pointer; + border: 0.5px solid #d9d4d4; + box-shadow: rgba(50, 50, 93, 0.25) 0px 2px 5px -1px, + rgba(0, 0, 0, 0.3) 0px 1px 3px -1px; + &.hide { + opacity: 0; + transform: scale(0); + } + & ul { + padding: 10px 20px; + list-style-type: none; + } + } + } + & .sidebar-user__info { + display: flex; + align-items: center; + flex-direction: row-reverse; + cursor: pointer; + + & .sidebar-user__name { + color: black; + font-size: 16px; + padding-left: 20px; + } + & .sidebar-img__container { + width: 50px; + height: 50px; + + border-radius: 50%; + + & .user__no-img { + &.main { + width: 100%; + height: 100%; + } + } + + & img { + width: 100%; + height: 100%; + object-fit: cover; + border-radius: 50%; + } + } + } + & .sidebar-add__newchat { + position: absolute; + right: 5%; + bottom: 3%; + width: 60px; + height: 60px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + background-color: #2c85becc; + cursor: pointer; + } + + & .sidebar-search__container { + padding-bottom: 20px; + } + & .sidebar-search__chat { + width: 90%; + align-self: center; + border: 1px solid #cfcfcf; + padding: 10px 10px; + background: transparent; + border-radius: 30px; + & [type="text"] { + height: 24px; + font-size: 15px; + padding-left: 25px; + } + &::placeholder { + color: #939393; + } + } +} + +@media (max-width: 1500px) { + .sidebar__container { + flex: 0 0 25%; + max-width: 25%; + } +} +@media (max-width: 1300px) { + .sidebar__container { + flex: 0 0 30%; + max-width: 30%; + } +} + +@media screen and (max-width: 992px) { + .sidebar__container { + flex: 0 0 35%; + max-width: 35%; + } +} +@media (max-width: 767px) { + .sidebar__container { + transform: translateX(-200%); + transition: 0.2s; + display: none; + &.show { + display: block; + flex: 0 0 100%; + transform: translateX(0); + + max-width: 100%; + } + } +} diff --git a/chat-widget/src/components/Home/Sidebar/Sidebar.tsx b/chat-widget/src/components/Home/Sidebar/Sidebar.tsx new file mode 100644 index 00000000..57446fe2 --- /dev/null +++ b/chat-widget/src/components/Home/Sidebar/Sidebar.tsx @@ -0,0 +1,116 @@ +import { useEffect, useState } from "react"; +import { BsPencil } from "react-icons/bs"; +// import { useNavigate } from "react-router"; +import { useChat } from "@connectycube/use-chat"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger, +} from "@/components/shadcn-ui/dropdown-menu"; +import { + Dialog, + DialogTrigger, + DialogContent, +} from "@/components/shadcn-ui/dialog"; +import NewChatDialog, { ChatType } from "./NewChat/NewChatDialog"; +import { currentUser, destroyUserSession } from "../../../connectycube"; +import "./Sidebar.scss"; +import ChatsList from "./ChatsList/ChatsList"; + +const Sidebar = () => { + // const navigate = useNavigate(); + const { isConnected, disconnect, selectedDialog, getDialogs } = useChat(); + + const [searchTerm, setSearchTerm] = useState(""); + const [chatType, setChatType] = useState("private"); + const [newChatDialogOpen, setNewChatDialogOpen] = useState(false); + + // retrieve chats + useEffect(() => { + getDialogs(); + }, []); + + const handleLogout = async () => { + disconnect(); + await destroyUserSession(); + // navigate("/login"); + }; + + const handleNewMessage = () => { + setChatType("private"); + }; + + const handleCreateGroupChat = () => { + setChatType("group"); + }; + + return ( +
+
+ + + {currentUser()?.login} +
+
+ {currentUser()?.login?.slice(0, 2)} +
+
+
+ + Logout + +
+
+ + { + setSearchTerm(e.target.value); + }} + className="sidebar-search__chat" + placeholder="Search..." + > + {isConnected ? ( +
+ +
+ ) : ( +
Loading...
+ )} + + + + + + + + + New group + + + + + New message + + + + + + { + setNewChatDialogOpen(false); + }} + /> + + +
+ ); +}; + +export default Sidebar; diff --git a/chat-widget/src/components/Login/Login.scss b/chat-widget/src/components/Login/Login.scss new file mode 100644 index 00000000..887b8a82 --- /dev/null +++ b/chat-widget/src/components/Login/Login.scss @@ -0,0 +1,71 @@ +@use "sass:color"; + +$offwhite: color.adjust(white, $lightness: -10%); +$darkblue: rgb(50, 50, 60); + +.login__container { + background: whitesmoke; + border: 1px solid black; + border-radius: 20px; + display: flex; + flex-direction: column; + align-items: center; + padding: 40px; + & .img__container { + max-width: 200px; + + & .logo__img { + width: 100%; + } + } + & .login__form { + display: flex; + flex-direction: column; + & .error { + color: red; + } + & input { + padding: 12px 20px; + border: 1px solid #eee; + border-radius: 25px; + background-color: #eee; + color: black; + font-size: 17px; + font-weight: 200; + outline: none; + } + & button { + border-radius: 25px; + border: 1px solid #282c34; + padding: 12px 30px; + color: color.adjust($darkblue, $lightness: -10%); + border: none; + background: transparent; + border: 1px solid black; + overflow: hidden; + box-shadow: none; + transition: 0.2s ease-in-out; + font-weight: 600; + margin-top: 15px; + margin-bottom: 20px; + cursor: pointer; + &:hover { + background-color: color.adjust($darkblue, $lightness: 10%); + color: white; + border: 1px solid whitesmoke; + } + } + & > * { + &:not(:last-child) { + margin-bottom: 10px; + } + } + } + & .signup__block { + & p { + text-align: left; + font-size: 14px; + padding: 5px 0px; + } + } +} diff --git a/chat-widget/src/components/Login/Login.tsx b/chat-widget/src/components/Login/Login.tsx new file mode 100644 index 00000000..843c567e --- /dev/null +++ b/chat-widget/src/components/Login/Login.tsx @@ -0,0 +1,84 @@ +import { NavLink } from "react-router-dom"; +import { useNavigate } from "react-router"; +import { useForm, SubmitHandler } from "react-hook-form"; +import { useChat } from "@connectycube/use-chat"; +import Loader from "../Shared/Loader"; +import { createUserSession } from "../../connectycube"; +import logo from "../../assets/logo.png"; +import "./Login.scss"; +import { useState } from "react"; + +type FormValues = { + login: string; + password: string; +}; + +const Login = () => { + const { connect } = useChat(); + const navigate = useNavigate(); + + const [isLoading, setIsLoading] = useState(false); + + const { + register, + handleSubmit, + formState: { errors }, + } = useForm(); + + const onSubmit: SubmitHandler = async (data) => { + setIsLoading(true); + + try { + const session = await createUserSession(data.login, data.password); + + const chatCredentials = { + userId: session.user_id, + password: session.token, + }; + await connect(chatCredentials); + + navigate("/home"); + } catch (e) { + console.error("Login error", e); + alert(JSON.stringify(e)); + } finally { + setIsLoading(false); + } + }; + + return ( +
+
+ Logo +
+
+ + + {errors.login && {errors.login.message}} + {errors.password && ( + {errors.password.message} + )} + +
+
+ {isLoading && } +

Don't have an account?

+ Sign up +
+
+ ); +}; + +export default Login; diff --git a/chat-widget/src/components/Shared/Avatar.tsx b/chat-widget/src/components/Shared/Avatar.tsx new file mode 100644 index 00000000..f18842e5 --- /dev/null +++ b/chat-widget/src/components/Shared/Avatar.tsx @@ -0,0 +1,28 @@ +import React from "react"; +import { + Avatar as AvatarComponent, + AvatarFallback, + AvatarImage, +} from "@/components/shadcn-ui/avatar"; +import ConnectyCube from "connectycube"; + +export interface AvatarProps { + imageUID: string; + name: string; +} + +const Avatar: React.FC = ({ imageUID, name }) => { + const photoUrl = imageUID + ? ConnectyCube.storage.privateUrl(imageUID) + : undefined; + const initials = name.slice(0, 2).toUpperCase(); + + return ( + + + {initials} + + ); +}; + +export default React.memo(Avatar); diff --git a/chat-widget/src/components/Shared/ConfirmationAlert.tsx b/chat-widget/src/components/Shared/ConfirmationAlert.tsx new file mode 100644 index 00000000..f6f85826 --- /dev/null +++ b/chat-widget/src/components/Shared/ConfirmationAlert.tsx @@ -0,0 +1,42 @@ +import { + AlertDialog, + AlertDialogAction, + AlertDialogCancel, + AlertDialogContent, + AlertDialogDescription, + AlertDialogFooter, + AlertDialogHeader, + AlertDialogTitle, + AlertDialogTrigger, +} from "@/components/shadcn-ui/alert-dialog"; +import { ReactElement } from "react"; + +export interface ConfirmationAlertProps { + triggerChild: ReactElement; + title: string; + body: string; + onConfirm: () => void; +} + +export const ConfirmationAlert: React.FC = ({ + triggerChild, + title, + body, + onConfirm, +}) => { + return ( + + {triggerChild} + + + {title} + {body} + + + Cancel + Continue + + + + ); +}; diff --git a/chat-widget/src/components/Shared/Loader.scss b/chat-widget/src/components/Shared/Loader.scss new file mode 100644 index 00000000..6e917e2b --- /dev/null +++ b/chat-widget/src/components/Shared/Loader.scss @@ -0,0 +1,17 @@ +.rotating-spinner { + animation: spin 1s linear infinite; + font-size: 2rem; + /* Adjust size as needed */ + color: #000; + /* Adjust color as needed */ +} + +@keyframes spin { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} \ No newline at end of file diff --git a/chat-widget/src/components/Shared/Loader.tsx b/chat-widget/src/components/Shared/Loader.tsx new file mode 100644 index 00000000..14eb2991 --- /dev/null +++ b/chat-widget/src/components/Shared/Loader.tsx @@ -0,0 +1,8 @@ +import { FaSpinner } from "react-icons/fa"; +import "./Loader.scss"; + +const Loader = () => { + return ; +}; + +export default Loader; diff --git a/chat-widget/src/components/SignUp/SignUp.scss b/chat-widget/src/components/SignUp/SignUp.scss new file mode 100644 index 00000000..71b77dd9 --- /dev/null +++ b/chat-widget/src/components/SignUp/SignUp.scss @@ -0,0 +1,71 @@ +@use "sass:color"; + +$offwhite: color.adjust(white, $lightness: -10%); +$darkblue: rgb(50, 50, 60); + +.signup__container { + background: whitesmoke; + border: 1px solid black; + border-radius: 20px; + display: flex; + flex-direction: column; + align-items: center; + padding: 40px; + & .img__container { + max-width: 200px; + + & .logo__img { + width: 100%; + } + } + & .signup__form { + display: flex; + flex-direction: column; + & .error { + color: red; + } + & input { + padding: 12px 20px; + border: 1px solid #eee; + border-radius: 25px; + background-color: #eee; + color: black; + font-size: 17px; + font-weight: 200; + outline: none; + } + & button { + border-radius: 25px; + border: 1px solid #282c34; + padding: 12px 30px; + color: color.adjust($darkblue, $lightness: -10%); + border: none; + background: transparent; + border: 1px solid black; + overflow: hidden; + box-shadow: none; + transition: 0.2s ease-in-out; + font-weight: 600; + margin-top: 15px; + margin-bottom: 20px; + cursor: pointer; + &:hover { + background-color: color.adjust($darkblue, $lightness: 10%); + color: white; + border: 1px solid whitesmoke; + } + } + & > * { + &:not(:last-child) { + margin-bottom: 10px; + } + } + } + & .login__block { + & p { + text-align: left; + font-size: 14px; + padding: 5px 0px; + } + } +} \ No newline at end of file diff --git a/chat-widget/src/components/SignUp/SignUp.tsx b/chat-widget/src/components/SignUp/SignUp.tsx new file mode 100644 index 00000000..306f0140 --- /dev/null +++ b/chat-widget/src/components/SignUp/SignUp.tsx @@ -0,0 +1,109 @@ +import { useNavigate } from "react-router"; +import { NavLink } from "react-router-dom"; +import { useForm, SubmitHandler } from "react-hook-form"; +import { useState } from "react"; +import { userSignup } from "../../connectycube"; +import logo from "../../assets/logo.png"; +import Loader from "../Shared/Loader"; +import "./SignUp.scss"; + +type FormValues = { + fullName: string; + login: string; + password: string; +}; + +const SignUp = () => { + const navigate = useNavigate(); + const [isLoading, setIsLoading] = useState(false); + + const { + register, + handleSubmit, + formState: { errors }, + } = useForm(); + + const onSubmit: SubmitHandler = async (data) => { + setIsLoading(true); + + try { + await userSignup(data.fullName, data.login, data.password); + navigate("/home"); + } catch (e: any) { + console.error("SignUp error", e); + alert(e.info.errors.base); + } finally { + setIsLoading(false); + } + }; + + return ( +
+
+ Logo +
+
+ + + + {errors.fullName && ( + {errors.fullName.message} + )} + {errors.login && {errors.login.message}} + {errors.password && ( + {errors.password.message} + )} + +
+
+ {isLoading && } +

Already have an account?

+ Sign in +
+
+ ); +}; + +export default SignUp; diff --git a/chat-widget/src/components/shadcn-ui/alert-dialog.tsx b/chat-widget/src/components/shadcn-ui/alert-dialog.tsx new file mode 100644 index 00000000..6e5de68e --- /dev/null +++ b/chat-widget/src/components/shadcn-ui/alert-dialog.tsx @@ -0,0 +1,139 @@ +import * as React from "react" +import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog" + +import { cn } from "../../lib/utils" +import { buttonVariants } from "./button" + +const AlertDialog = AlertDialogPrimitive.Root + +const AlertDialogTrigger = AlertDialogPrimitive.Trigger + +const AlertDialogPortal = AlertDialogPrimitive.Portal + +const AlertDialogOverlay = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName + +const AlertDialogContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + + +)) +AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName + +const AlertDialogHeader = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +AlertDialogHeader.displayName = "AlertDialogHeader" + +const AlertDialogFooter = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +AlertDialogFooter.displayName = "AlertDialogFooter" + +const AlertDialogTitle = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName + +const AlertDialogDescription = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AlertDialogDescription.displayName = + AlertDialogPrimitive.Description.displayName + +const AlertDialogAction = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName + +const AlertDialogCancel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName + +export { + AlertDialog, + AlertDialogPortal, + AlertDialogOverlay, + AlertDialogTrigger, + AlertDialogContent, + AlertDialogHeader, + AlertDialogFooter, + AlertDialogTitle, + AlertDialogDescription, + AlertDialogAction, + AlertDialogCancel, +} diff --git a/chat-widget/src/components/shadcn-ui/avatar.tsx b/chat-widget/src/components/shadcn-ui/avatar.tsx new file mode 100644 index 00000000..1b8d07f9 --- /dev/null +++ b/chat-widget/src/components/shadcn-ui/avatar.tsx @@ -0,0 +1,48 @@ +import * as React from "react" +import * as AvatarPrimitive from "@radix-ui/react-avatar" + +import { cn } from "../../lib/utils" + +const Avatar = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +Avatar.displayName = AvatarPrimitive.Root.displayName + +const AvatarImage = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AvatarImage.displayName = AvatarPrimitive.Image.displayName + +const AvatarFallback = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName + +export { Avatar, AvatarImage, AvatarFallback } diff --git a/chat-widget/src/components/shadcn-ui/button.tsx b/chat-widget/src/components/shadcn-ui/button.tsx new file mode 100644 index 00000000..dcfee0c4 --- /dev/null +++ b/chat-widget/src/components/shadcn-ui/button.tsx @@ -0,0 +1,57 @@ +import * as React from "react" +import { Slot } from "@radix-ui/react-slot" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "../../lib/utils" + +const buttonVariants = cva( + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", + { + variants: { + variant: { + default: + "bg-primary text-primary-foreground shadow hover:bg-primary/90", + destructive: + "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90", + outline: + "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground", + secondary: + "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80", + ghost: "hover:bg-accent hover:text-accent-foreground", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: "h-9 px-4 py-2", + sm: "h-8 rounded-md px-3 text-xs", + lg: "h-10 rounded-md px-8", + icon: "h-9 w-9", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + } +) + +export interface ButtonProps + extends React.ButtonHTMLAttributes, + VariantProps { + asChild?: boolean +} + +const Button = React.forwardRef( + ({ className, variant, size, asChild = false, ...props }, ref) => { + const Comp = asChild ? Slot : "button" + return ( + + ) + } +) +Button.displayName = "Button" + +export { Button, buttonVariants } diff --git a/chat-widget/src/components/shadcn-ui/dialog.tsx b/chat-widget/src/components/shadcn-ui/dialog.tsx new file mode 100644 index 00000000..24c7b745 --- /dev/null +++ b/chat-widget/src/components/shadcn-ui/dialog.tsx @@ -0,0 +1,120 @@ +import * as React from "react" +import * as DialogPrimitive from "@radix-ui/react-dialog" +import { X } from "lucide-react" + +import { cn } from "../../lib/utils" + +const Dialog = DialogPrimitive.Root + +const DialogTrigger = DialogPrimitive.Trigger + +const DialogPortal = DialogPrimitive.Portal + +const DialogClose = DialogPrimitive.Close + +const DialogOverlay = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogOverlay.displayName = DialogPrimitive.Overlay.displayName + +const DialogContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + {children} + + + Close + + + +)) +DialogContent.displayName = DialogPrimitive.Content.displayName + +const DialogHeader = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +DialogHeader.displayName = "DialogHeader" + +const DialogFooter = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +DialogFooter.displayName = "DialogFooter" + +const DialogTitle = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogTitle.displayName = DialogPrimitive.Title.displayName + +const DialogDescription = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogDescription.displayName = DialogPrimitive.Description.displayName + +export { + Dialog, + DialogPortal, + DialogOverlay, + DialogTrigger, + DialogClose, + DialogContent, + DialogHeader, + DialogFooter, + DialogTitle, + DialogDescription, +} diff --git a/chat-widget/src/components/shadcn-ui/dropdown-menu.tsx b/chat-widget/src/components/shadcn-ui/dropdown-menu.tsx new file mode 100644 index 00000000..049cb47f --- /dev/null +++ b/chat-widget/src/components/shadcn-ui/dropdown-menu.tsx @@ -0,0 +1,199 @@ +import * as React from "react" +import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu" +import { Check, ChevronRight, Circle } from "lucide-react" + +import { cn } from "../../lib/utils" + +const DropdownMenu = DropdownMenuPrimitive.Root + +const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger + +const DropdownMenuGroup = DropdownMenuPrimitive.Group + +const DropdownMenuPortal = DropdownMenuPrimitive.Portal + +const DropdownMenuSub = DropdownMenuPrimitive.Sub + +const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup + +const DropdownMenuSubTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + inset?: boolean + } +>(({ className, inset, children, ...props }, ref) => ( + + {children} + + +)) +DropdownMenuSubTrigger.displayName = + DropdownMenuPrimitive.SubTrigger.displayName + +const DropdownMenuSubContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DropdownMenuSubContent.displayName = + DropdownMenuPrimitive.SubContent.displayName + +const DropdownMenuContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, sideOffset = 4, ...props }, ref) => ( + + + +)) +DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName + +const DropdownMenuItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + inset?: boolean + } +>(({ className, inset, ...props }, ref) => ( + svg]:size-4 [&>svg]:shrink-0", + inset && "pl-8", + className + )} + {...props} + /> +)) +DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName + +const DropdownMenuCheckboxItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, checked, ...props }, ref) => ( + + + + + + + {children} + +)) +DropdownMenuCheckboxItem.displayName = + DropdownMenuPrimitive.CheckboxItem.displayName + +const DropdownMenuRadioItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + + + + {children} + +)) +DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName + +const DropdownMenuLabel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + inset?: boolean + } +>(({ className, inset, ...props }, ref) => ( + +)) +DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName + +const DropdownMenuSeparator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName + +const DropdownMenuShortcut = ({ + className, + ...props +}: React.HTMLAttributes) => { + return ( + + ) +} +DropdownMenuShortcut.displayName = "DropdownMenuShortcut" + +export { + DropdownMenu, + DropdownMenuTrigger, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuCheckboxItem, + DropdownMenuRadioItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuShortcut, + DropdownMenuGroup, + DropdownMenuPortal, + DropdownMenuSub, + DropdownMenuSubContent, + DropdownMenuSubTrigger, + DropdownMenuRadioGroup, +} diff --git a/chat-widget/src/components/shadcn-ui/input.tsx b/chat-widget/src/components/shadcn-ui/input.tsx new file mode 100644 index 00000000..6584da85 --- /dev/null +++ b/chat-widget/src/components/shadcn-ui/input.tsx @@ -0,0 +1,22 @@ +import * as React from "react" + +import { cn } from "../../lib/utils" + +const Input = React.forwardRef>( + ({ className, type, ...props }, ref) => { + return ( + + ) + } +) +Input.displayName = "Input" + +export { Input } diff --git a/chat-widget/src/components/shadcn-ui/label.tsx b/chat-widget/src/components/shadcn-ui/label.tsx new file mode 100644 index 00000000..c23cb40a --- /dev/null +++ b/chat-widget/src/components/shadcn-ui/label.tsx @@ -0,0 +1,24 @@ +import * as React from "react" +import * as LabelPrimitive from "@radix-ui/react-label" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "../../lib/utils" + +const labelVariants = cva( + "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70" +) + +const Label = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & + VariantProps +>(({ className, ...props }, ref) => ( + +)) +Label.displayName = LabelPrimitive.Root.displayName + +export { Label } diff --git a/chat-widget/src/connectycube.ts b/chat-widget/src/connectycube.ts new file mode 100644 index 00000000..62abc8a9 --- /dev/null +++ b/chat-widget/src/connectycube.ts @@ -0,0 +1,78 @@ +import ConnectyCube from "connectycube"; +import FingerprintJS from '@fingerprintjs/fingerprintjs'; +import { Chat, Users } from "@connectycube/types"; + +export const isSessionExists = (): boolean => { + return !!localStorage.getItem("connectycubeToken"); +}; +export const tryRestoreSession = (): boolean => { + const sessionToken = localStorage.getItem("connectycubeToken"); + // const userIdString = localStorage.getItem("connectycubeUserId"); + // let currentUserId; + if (sessionToken) { + ConnectyCube.setSession({ token: sessionToken }); + + // currentUserId = parseInt(userIdString!); + return true; + } + + return false; +}; + +export const generateFingerprint = async (): Promise => { + const fp = await FingerprintJS.load(); + const result = await fp.get(); + return result.visitorId; +}; + +export const createUserSession = async (login: string, password: string) => { + const session = await ConnectyCube.createSession({ login, password }); + localStorage.setItem("connectycubeToken", session.token); + localStorage.setItem("connectycubeUserId", session.user_id + ""); + localStorage.setItem("connectycubeUser", JSON.stringify(session.user)); + return session; +}; + +export const createFingerprintSession = async () => { + const fp = await generateFingerprint(); + const session = await createUserSession(fp.slice(2, -2), fp.slice(1, -1)); + return session; +} + +export const destroyUserSession = async () => { + try { + await ConnectyCube.destroySession(); + localStorage.clear(); + } catch (error) { + console.error(error); + } +}; + +export const userSignup = async ( + fullName: string, + login: string, + password: string +) => { + await ConnectyCube.users.signup({ login, full_name: fullName, password }); + return createUserSession(login, password); +}; + +export const chatCredentials = (): Chat.ConnectionParams | null => { + const sessionToken = localStorage.getItem("connectycubeToken"); + const userIdString = localStorage.getItem("connectycubeUserId"); + + if (sessionToken) { + return { userId: parseInt(userIdString as string), password: sessionToken }; + } + + return null; +}; + +export const currentUser = (): Users.User | null => { + const userString = localStorage.getItem("connectycubeUser"); + if (userString) { + return JSON.parse(userString); + } + + return null; +}; diff --git a/chat-widget/src/index.css b/chat-widget/src/index.css new file mode 100644 index 00000000..8abc77a7 --- /dev/null +++ b/chat-widget/src/index.css @@ -0,0 +1,131 @@ +@import "tailwindcss"; +@config "../tailwind.config.js"; + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 222.2 47.4% 11.2%; + --muted: 210 40% 96.1%; + --muted-foreground: 215.4 16.3% 46.9%; + --popover: 0 0% 100%; + --popover-foreground: 222.2 47.4% 11.2%; + --border: 214.3 31.8% 91.4%; + --input: 214.3 31.8% 91.4%; + --card: 0 0% 100%; + --card-foreground: 222.2 47.4% 11.2%; + --primary: 222.2 47.4% 11.2%; + --primary-foreground: 210 40% 98%; + --secondary: 210 40% 96.1%; + --secondary-foreground: 222.2 47.4% 11.2%; + --accent: 210 40% 96.1%; + --accent-foreground: 222.2 47.4% 11.2%; + --destructive: 0 100% 50%; + --destructive-foreground: 210 40% 98%; + --ring: 215 20.2% 65.1%; + --radius: 0.5rem; + } + + .dark { + --background: 224 71% 4%; + --foreground: 213 31% 91%; + --muted: 223 47% 11%; + --muted-foreground: 215.4 16.3% 56.9%; + --accent: 216 34% 17%; + --accent-foreground: 210 40% 98%; + --popover: 224 71% 4%; + --popover-foreground: 215 20.2% 65.1%; + --border: 216 34% 17%; + --input: 216 34% 17%; + --card: 224 71% 4%; + --card-foreground: 213 31% 91%; + --primary: 210 40% 98%; + --primary-foreground: 222.2 47.4% 1.2%; + --secondary: 222.2 47.4% 11.2%; + --secondary-foreground: 210 40% 98%; + --destructive: 0 63% 31%; + --destructive-foreground: 210 40% 98%; + --ring: 216 34% 17%; + } +} + +@layer base { + * { + @apply border-border; + } + + body { + @apply font-sans antialiased bg-background text-foreground; + } +} + +/* Tailwind ends here ^^ */ + +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: Roboto !important; + font-weight: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/chat-widget/src/index.ts b/chat-widget/src/index.ts new file mode 100644 index 00000000..2aa1e1e7 --- /dev/null +++ b/chat-widget/src/index.ts @@ -0,0 +1 @@ +export * as default from './App'; \ No newline at end of file diff --git a/chat-widget/src/lib/utils.ts b/chat-widget/src/lib/utils.ts new file mode 100644 index 00000000..a5ef1935 --- /dev/null +++ b/chat-widget/src/lib/utils.ts @@ -0,0 +1,6 @@ +import { clsx, type ClassValue } from "clsx"; +import { twMerge } from "tailwind-merge"; + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)); +} diff --git a/chat-widget/src/main.tsx b/chat-widget/src/main.tsx new file mode 100644 index 00000000..b40692d6 --- /dev/null +++ b/chat-widget/src/main.tsx @@ -0,0 +1,21 @@ +import { StrictMode } from 'react' +import { createRoot } from 'react-dom/client' +import './index.css' +import App from './App.tsx' + +const appConfig = { + debug: { + mode: 1, + }, + chat: { + streamManagement: { + enable: true, + }, + }, +} + +createRoot(document.getElementById('root')!).render( + + + , +) diff --git a/chat-widget/src/vite-env.d.ts b/chat-widget/src/vite-env.d.ts new file mode 100644 index 00000000..11f02fe2 --- /dev/null +++ b/chat-widget/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/chat-widget/tailwind.config.js b/chat-widget/tailwind.config.js new file mode 100644 index 00000000..cd0bc76e --- /dev/null +++ b/chat-widget/tailwind.config.js @@ -0,0 +1,51 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + darkMode: ["class"], + // content: ["./index.html", "src/**/*.{js,ts,jsx,tsx}"], + content: ["./src/**/*.{js,jsx,ts,tsx}", "./public/index.html"], + theme: { + extend: { + colors: { + border: "hsl(var(--border))", + input: "hsl(var(--input))", + ring: "hsl(var(--ring))", + background: "hsl(var(--background))", + foreground: "hsl(var(--foreground))", + primary: { + DEFAULT: "hsl(var(--primary))", + foreground: "hsl(var(--primary-foreground))", + }, + secondary: { + DEFAULT: "hsl(var(--secondary))", + foreground: "hsl(var(--secondary-foreground))", + }, + destructive: { + DEFAULT: "hsl(var(--destructive))", + foreground: "hsl(var(--destructive-foreground))", + }, + muted: { + DEFAULT: "hsl(var(--muted))", + foreground: "hsl(var(--muted-foreground))", + }, + accent: { + DEFAULT: "hsl(var(--accent))", + foreground: "hsl(var(--accent-foreground))", + }, + popover: { + DEFAULT: "hsl(var(--popover))", + foreground: "hsl(var(--popover-foreground))", + }, + card: { + DEFAULT: "hsl(var(--card))", + foreground: "hsl(var(--card-foreground))", + }, + }, + borderRadius: { + lg: `var(--radius)`, + md: `calc(var(--radius) - 2px)`, + sm: "calc(var(--radius) - 4px)", + }, + }, + }, + plugins: [require("tailwindcss-animate")], +}; \ No newline at end of file diff --git a/chat-widget/tsconfig.app.json b/chat-widget/tsconfig.app.json new file mode 100644 index 00000000..be01f1f8 --- /dev/null +++ b/chat-widget/tsconfig.app.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"], + "@connectycube/types": ["./node_modules/connectycube/dist/types/types"] + }, + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true, + }, + "include": ["src"] +} diff --git a/chat-widget/tsconfig.json b/chat-widget/tsconfig.json new file mode 100644 index 00000000..fec8c8e5 --- /dev/null +++ b/chat-widget/tsconfig.json @@ -0,0 +1,13 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ], + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + } +} diff --git a/chat-widget/tsconfig.node.json b/chat-widget/tsconfig.node.json new file mode 100644 index 00000000..673b125a --- /dev/null +++ b/chat-widget/tsconfig.node.json @@ -0,0 +1,29 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + }, + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2022", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true, + }, + "include": ["vite.config.ts"] +} diff --git a/chat-widget/vite.config.ts b/chat-widget/vite.config.ts new file mode 100644 index 00000000..52d61609 --- /dev/null +++ b/chat-widget/vite.config.ts @@ -0,0 +1,52 @@ +import { defineConfig } from 'vite' +import tailwindcss from "@tailwindcss/vite"; +import react from '@vitejs/plugin-react' +import { resolve } from "path"; +import dts from "vite-plugin-dts"; +import { nodePolyfills } from "vite-plugin-node-polyfills"; + +const globals = { + "react": "React", + "react-dom": "ReactDOM", + 'vite-plugin-node-polyfills/shims/process': "process", + 'vite-plugin-node-polyfills/shims/buffer': "Buffer" +} + +export default defineConfig(({ mode }) => { + const dev = mode === 'development'; + const plugins = dev ? [ + tailwindcss(), + react(), + nodePolyfills() + ] : [ + tailwindcss(), + react(), + dts({ + rollupTypes: true, + tsconfigPath: './tsconfig.app.json' + }) + ]; + + return { + plugins, + resolve: { + alias: { + "@": resolve(__dirname, "./src"), + "@connectycube/types": resolve(__dirname, "../node_modules/connectycube/dist/types/types"), + }, + }, + build: { + lib: { + entry: resolve(__dirname, dev ? 'src/main.tsx' : 'src/index.ts'), + name: 'ConnectyCubeChatWidget', + fileName: (format) => `index.${format}.js`, + }, + rollupOptions: { + external: dev ? Object.keys(globals) : [], + output: { + globals: dev ? globals : undefined + } + }, + } + }; +}); From 902bbf9b27f88b7661d38a82d7447ba8354f925e Mon Sep 17 00:00:00 2001 From: Vlad Date: Tue, 28 Jan 2025 14:26:59 +0200 Subject: [PATCH 02/12] merged "chat-widget" with "chat-react2" --- chat-widget/package-lock.json | 1181 +++++++++++++---- chat-widget/package.json | 7 +- chat-widget/postcss.config.js | 6 + chat-widget/src/App.tsx | 42 +- chat-widget/src/components/Home/Home.scss | 5 - chat-widget/src/components/Home/Home.tsx | 21 +- .../Home/Main/{ChatHeader => }/ChatHeader.tsx | 65 +- .../Home/Main/ChatHeader/ChatHeader.scss | 67 - .../src/components/Home/Main/ChatInfo.tsx | 129 ++ .../Home/Main/ChatInfo/ChatInfo.scss | 140 -- .../Home/Main/ChatInfo/ChatInfo.tsx | 128 -- .../ChatInfo/GroupMember/GroupMember.scss | 30 - .../src/components/Home/Main/ChatInput.tsx | 112 ++ .../GroupMember => }/GroupMember.tsx | 31 +- .../src/components/Home/Main/Main.scss | 156 --- chat-widget/src/components/Home/Main/Main.tsx | 164 +-- .../Home/Main/{Message => }/Message.tsx | 78 +- .../components/Home/Main/Message/Message.scss | 189 --- .../Home/Sidebar/{ChatItem => }/ChatItem.tsx | 42 +- .../Home/Sidebar/ChatItem/ChatItem.scss | 87 -- .../Home/Sidebar/ChatPhoto/ChatPhoto.tsx | 28 - .../Sidebar/{ChatsList => }/ChatsList.tsx | 3 +- .../Home/Sidebar/ChatsList/ChatsList.scss | 0 .../CreateGroupChat/CreateGroupChat.scss | 37 - .../CreateGroupChat/CreateGroupChat.tsx | 31 +- .../NewChat/CreateGroupChat/Participant.tsx | 19 + .../Participant/Participant.scss | 10 - .../Participant/Participant.tsx | 33 - .../Home/Sidebar/NewChat/NewChatDialog.tsx | 12 +- .../{SearchedUser => }/SearchedUser.tsx | 35 +- .../NewChat/SearchedUser/SearchedUser.scss | 49 - .../src/components/Home/Sidebar/Sidebar.scss | 260 ---- .../src/components/Home/Sidebar/Sidebar.tsx | 146 +- .../components/Home/Sidebar/Tabs/ChatsTab.tsx | 87 ++ .../components/Home/Sidebar/Tabs/UsersTab.tsx | 7 + .../src/components/{Login => }/Login.tsx | 43 +- chat-widget/src/components/Login/Login.scss | 71 - chat-widget/src/components/Shared/Avatar.tsx | 7 +- chat-widget/src/components/Shared/Loader.scss | 17 - chat-widget/src/components/Shared/Loader.tsx | 17 +- .../src/components/{SignUp => }/SignUp.tsx | 50 +- chat-widget/src/components/SignUp/SignUp.scss | 71 - .../src/components/shadcn-ui/alert-dialog.tsx | 4 +- .../src/components/shadcn-ui/avatar.tsx | 2 +- .../src/components/shadcn-ui/button.tsx | 2 +- .../src/components/shadcn-ui/dialog.tsx | 2 +- .../components/shadcn-ui/dropdown-menu.tsx | 2 +- .../src/components/shadcn-ui/input.tsx | 2 +- .../src/components/shadcn-ui/label.tsx | 2 +- chat-widget/src/components/shadcn-ui/tabs.tsx | 53 + chat-widget/src/connectycube.ts | 2 +- chat-widget/src/index.css | 6 +- chat-widget/src/main.tsx | 26 +- chat-widget/tailwind.config.js | 5 +- chat-widget/vite.config.ts | 6 +- 55 files changed, 1741 insertions(+), 2086 deletions(-) create mode 100644 chat-widget/postcss.config.js delete mode 100644 chat-widget/src/components/Home/Home.scss rename chat-widget/src/components/Home/Main/{ChatHeader => }/ChatHeader.tsx (67%) delete mode 100644 chat-widget/src/components/Home/Main/ChatHeader/ChatHeader.scss create mode 100644 chat-widget/src/components/Home/Main/ChatInfo.tsx delete mode 100644 chat-widget/src/components/Home/Main/ChatInfo/ChatInfo.scss delete mode 100644 chat-widget/src/components/Home/Main/ChatInfo/ChatInfo.tsx delete mode 100644 chat-widget/src/components/Home/Main/ChatInfo/GroupMember/GroupMember.scss create mode 100644 chat-widget/src/components/Home/Main/ChatInput.tsx rename chat-widget/src/components/Home/Main/{ChatInfo/GroupMember => }/GroupMember.tsx (61%) delete mode 100644 chat-widget/src/components/Home/Main/Main.scss rename chat-widget/src/components/Home/Main/{Message => }/Message.tsx (55%) delete mode 100644 chat-widget/src/components/Home/Main/Message/Message.scss rename chat-widget/src/components/Home/Sidebar/{ChatItem => }/ChatItem.tsx (59%) delete mode 100644 chat-widget/src/components/Home/Sidebar/ChatItem/ChatItem.scss delete mode 100644 chat-widget/src/components/Home/Sidebar/ChatPhoto/ChatPhoto.tsx rename chat-widget/src/components/Home/Sidebar/{ChatsList => }/ChatsList.tsx (90%) delete mode 100644 chat-widget/src/components/Home/Sidebar/ChatsList/ChatsList.scss delete mode 100644 chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/CreateGroupChat.scss create mode 100644 chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/Participant.tsx delete mode 100644 chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/Participant/Participant.scss delete mode 100644 chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/Participant/Participant.tsx rename chat-widget/src/components/Home/Sidebar/NewChat/{SearchedUser => }/SearchedUser.tsx (53%) delete mode 100644 chat-widget/src/components/Home/Sidebar/NewChat/SearchedUser/SearchedUser.scss delete mode 100644 chat-widget/src/components/Home/Sidebar/Sidebar.scss create mode 100644 chat-widget/src/components/Home/Sidebar/Tabs/ChatsTab.tsx create mode 100644 chat-widget/src/components/Home/Sidebar/Tabs/UsersTab.tsx rename chat-widget/src/components/{Login => }/Login.tsx (53%) delete mode 100644 chat-widget/src/components/Login/Login.scss delete mode 100644 chat-widget/src/components/Shared/Loader.scss rename chat-widget/src/components/{SignUp => }/SignUp.tsx (57%) delete mode 100644 chat-widget/src/components/SignUp/SignUp.scss create mode 100644 chat-widget/src/components/shadcn-ui/tabs.tsx diff --git a/chat-widget/package-lock.json b/chat-widget/package-lock.json index 9209ef04..6cba121c 100644 --- a/chat-widget/package-lock.json +++ b/chat-widget/package-lock.json @@ -1,12 +1,12 @@ { "name": "@connectycube/chat-widget", - "version": "0.0.1-2", + "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@connectycube/chat-widget", - "version": "0.0.1-2", + "version": "0.1.0", "dependencies": { "@connectycube/use-chat": "file:../../use-chat", "@fingerprintjs/fingerprintjs": "^4.5.1", @@ -16,6 +16,7 @@ "@radix-ui/react-dropdown-menu": "^2.1.5", "@radix-ui/react-label": "^2.1.1", "@radix-ui/react-slot": "^1.1.1", + "@radix-ui/react-tabs": "^1.1.2", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "connectycube": "4.0.2", @@ -31,7 +32,6 @@ }, "devDependencies": { "@eslint/js": "^9.19.0", - "@tailwindcss/vite": "^4.0.0", "@types/node": "^22.10.10", "@types/react": "^18.3.18", "@types/react-dom": "^18.3.5", @@ -43,9 +43,8 @@ "eslint-plugin-react-refresh": "^0.4.18", "globals": "^15.14.0", "postcss": "^8.5.1", - "sass": "^1.83.4", "tailwind-merge": "^2.6.0", - "tailwindcss": "^4.0.0", + "tailwindcss": "^3.4.17", "tailwindcss-animate": "^1.0.7", "typescript": "~5.7.3", "typescript-eslint": "^8.21.0", @@ -1434,6 +1433,19 @@ } } }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "dev": true, @@ -1925,6 +1937,24 @@ "url": "https://github.com/sponsors/nzakas" } }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.8", "dev": true, @@ -2150,6 +2180,7 @@ "hasInstallScript": true, "license": "MIT", "optional": true, + "peer": true, "dependencies": { "detect-libc": "^1.0.3", "is-glob": "^4.0.3", @@ -2190,6 +2221,7 @@ "os": [ "darwin" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -2198,6 +2230,17 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@radix-ui/primitive": { "version": "1.1.1", "license": "MIT" @@ -2673,6 +2716,36 @@ } } }, + "node_modules/@radix-ui/react-tabs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.2.tgz", + "integrity": "sha512-9u/tQJMcC2aGq7KXpGivMm1mgq7oRJKXphDwdypPd/j21j/2znamPU8WkXgnhUaTrSFNIt8XhOyCAupg8/GbwQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-roving-focus": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-use-callback-ref": { "version": "1.1.0", "license": "MIT", @@ -3001,244 +3074,6 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/@tailwindcss/node": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.0.tgz", - "integrity": "sha512-tfG2uBvo6j6kDIPmntxwXggCOZAt7SkpAXJ6pTIYirNdk5FBqh/CZZ9BZPpgcl/tNFLs6zc4yghM76sqiELG9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "enhanced-resolve": "^5.18.0", - "jiti": "^2.4.2", - "tailwindcss": "4.0.0" - } - }, - "node_modules/@tailwindcss/oxide": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.0.tgz", - "integrity": "sha512-W3FjpJgy4VV1JiL7iBYDf2n/WkeDg1Il+0Q7eWnqPyvkPPCo/Mbwc5BiaT7dfBNV6tQKAhVE34rU5xl8pSl50w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" - }, - "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.0.0", - "@tailwindcss/oxide-darwin-arm64": "4.0.0", - "@tailwindcss/oxide-darwin-x64": "4.0.0", - "@tailwindcss/oxide-freebsd-x64": "4.0.0", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.0", - "@tailwindcss/oxide-linux-arm64-gnu": "4.0.0", - "@tailwindcss/oxide-linux-arm64-musl": "4.0.0", - "@tailwindcss/oxide-linux-x64-gnu": "4.0.0", - "@tailwindcss/oxide-linux-x64-musl": "4.0.0", - "@tailwindcss/oxide-win32-arm64-msvc": "4.0.0", - "@tailwindcss/oxide-win32-x64-msvc": "4.0.0" - } - }, - "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.0.tgz", - "integrity": "sha512-EAhjU0+FIdyGPR+7MbBWubLLPtmOu+p7c2egTTFBRk/n//zYjNvVK0WhcBK5Y7oUB5mo4EjA2mCbY7dcEMWSRw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.0.tgz", - "integrity": "sha512-hdz4xnSWS11cIp+7ye+3dGHqs0X33z+BXXTtgPOguDWVa+TdXUzwxonklSzf5wlJFuot3dv5eWzhlNai0oYYQg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.0.tgz", - "integrity": "sha512-+dOUUaXTkPKKhtUI9QtVaYg+MpmLh2CN0dHohiYXaBirEyPMkjaT0zbRgzQlNnQWjCVVXPQluIEb0OMEjSTH+Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.0.tgz", - "integrity": "sha512-CJhGDhxnrmu4SwyC62fA+wP24MhA/TZlIhRHqg1kRuIHoGoVR2uSSm1qxTxU37tSSZj8Up0q6jsBJCAP4k7rgQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.0.tgz", - "integrity": "sha512-Wy7Av0xzXfY2ujZBcYy4+7GQm25/J1iHvlQU2CfwdDCuPWfIjYzR6kggz+uVdSJyKV2s64znchBxRE8kV4uXSA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.0.tgz", - "integrity": "sha512-srwBo2l6pvM0swBntc1ucuhGsfFOLkqPRFQ3dWARRTfSkL1U9nAsob2MKc/n47Eva/W9pZZgMOuf7rDw8pK1Ew==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.0.tgz", - "integrity": "sha512-abhusswkduYWuezkBmgo0K0/erGq3M4Se5xP0fhc/0dKs0X/rJUYYCFWntHb3IGh3aVzdQ0SXJs93P76DbUqtw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.0.tgz", - "integrity": "sha512-hGtRYIUEx377/HlU49+jvVKKwU1MDSKYSMMs0JFO2Wp7LGxk5+0j5+RBk9NFnmp/lbp32yPTgIOO5m1BmDq36A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.0.tgz", - "integrity": "sha512-7xgQgSAThs0I14VAgmxpJnK6XFSZBxHMGoDXkLyYkEnu+8WRQMbCP93dkCUn2PIv+Q+JulRgc00PJ09uORSLXQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.0.tgz", - "integrity": "sha512-qEcgTIPcWY5ZE7f6VxQ/JPrSFMcehzVIlZj7sGE3mVd5YWreAT+Fl1vSP8q2pjnWXn0avZG3Iw7a2hJQAm+fTQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.0.tgz", - "integrity": "sha512-bqT0AY8RXb8GMDy28JtngvqaOSB2YixbLPLvUo6I6lkvvUwA6Eqh2Tj60e2Lh7O/k083f8tYiB0WEK4wmTI7Jg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/vite": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.0.0.tgz", - "integrity": "sha512-4uukMiU9gHui8KMPMdWic5SP1O/tmQ1NFSRNrQWmcop5evAVl/LZ6/LuWL3quEiecp2RBcRWwqJrG+mFXlRlew==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tailwindcss/node": "^4.0.0", - "@tailwindcss/oxide": "^4.0.0", - "lightningcss": "^1.29.1", - "tailwindcss": "4.0.0" - }, - "peerDependencies": { - "vite": "^5.2.0 || ^6" - } - }, "node_modules/@types/accepts": { "version": "1.3.7", "license": "MIT", @@ -4247,6 +4082,19 @@ "dev": true, "license": "MIT" }, + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, "node_modules/ansi-styles": { "version": "4.3.0", "dev": true, @@ -4261,6 +4109,34 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, "node_modules/argparse": { "version": "2.0.1", "dev": true, @@ -4385,6 +4261,19 @@ ], "license": "MIT" }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/bn.js": { "version": "5.2.1", "dev": true, @@ -4646,6 +4535,16 @@ "node": ">=6" } }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001695", "dev": true, @@ -4684,6 +4583,8 @@ "version": "4.0.3", "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "readdirp": "^4.0.1" }, @@ -4749,6 +4650,16 @@ "node": ">= 0.8" } }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/compare-versions": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz", @@ -4900,10 +4811,23 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/csstype": { - "version": "3.1.3", - "devOptional": true, - "license": "MIT" + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "devOptional": true, + "license": "MIT" }, "node_modules/data-uri-to-buffer": { "version": "4.0.1", @@ -4992,6 +4916,8 @@ "version": "1.0.3", "dev": true, "license": "Apache-2.0", + "optional": true, + "peer": true, "bin": { "detect-libc": "bin/detect-libc.js" }, @@ -5003,6 +4929,13 @@ "version": "1.1.0", "license": "MIT" }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/diffie-hellman": { "version": "5.0.3", "dev": true, @@ -5018,6 +4951,13 @@ "dev": true, "license": "MIT" }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, "node_modules/domain-browser": { "version": "4.22.0", "dev": true, @@ -5042,6 +4982,13 @@ "node": ">= 0.4" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, "node_modules/electron-to-chromium": { "version": "1.5.88", "dev": true, @@ -5066,19 +5013,12 @@ "dev": true, "license": "MIT" }, - "node_modules/enhanced-resolve": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", - "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } + "license": "MIT" }, "node_modules/entities": { "version": "4.5.0", @@ -5515,6 +5455,23 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/form-data": { "version": "4.0.1", "license": "MIT", @@ -5634,6 +5591,27 @@ "node": ">= 0.4" } }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/glob-parent": { "version": "6.0.2", "dev": true, @@ -5645,6 +5623,32 @@ "node": ">=10.13.0" } }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/globals": { "version": "15.14.0", "dev": true, @@ -5810,7 +5814,9 @@ "node_modules/immutable": { "version": "5.0.3", "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "peer": true }, "node_modules/import-fresh": { "version": "3.3.0", @@ -5865,6 +5871,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/is-callable": { "version": "1.2.7", "dev": true, @@ -5898,6 +5917,16 @@ "node": ">=0.10.0" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/is-generator-function": { "version": "1.1.0", "dev": true, @@ -5998,10 +6027,28 @@ "node": ">=10" } }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jiti": { "version": "2.4.2", "dev": true, "license": "MIT", + "optional": true, + "peer": true, "bin": { "jiti": "lib/jiti-cli.mjs" } @@ -6110,6 +6157,8 @@ "version": "1.29.1", "dev": true, "license": "MPL-2.0", + "optional": true, + "peer": true, "dependencies": { "detect-libc": "^1.0.3" }, @@ -6144,6 +6193,7 @@ "os": [ "darwin" ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -6152,6 +6202,26 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, "node_modules/local-pkg": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz", @@ -6332,6 +6402,16 @@ "node": "*" } }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/mlly": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz", @@ -6357,6 +6437,18 @@ "dev": true, "license": "MIT" }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "node_modules/nanoid": { "version": "3.3.8", "dev": true, @@ -6383,7 +6475,8 @@ "version": "7.1.1", "dev": true, "license": "MIT", - "optional": true + "optional": true, + "peer": true }, "node_modules/node-domexception": { "version": "1.0.0", @@ -6467,6 +6560,16 @@ "dev": true, "license": "MIT" }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/normalize-range": { "version": "0.1.2", "dev": true, @@ -6482,6 +6585,16 @@ "node": ">=0.10.0" } }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/object-inspect": { "version": "1.13.3", "dev": true, @@ -6584,6 +6697,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/pako": { "version": "1.0.11", "dev": true, @@ -6642,6 +6762,30 @@ "dev": true, "license": "MIT" }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "node_modules/pathe": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.2.tgz", @@ -6680,6 +6824,26 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/pkg-dir": { "version": "5.0.0", "dev": true, @@ -6738,6 +6902,120 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-value-parser": { "version": "4.2.0", "dev": true, @@ -7034,6 +7312,16 @@ } } }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, "node_modules/readable-stream": { "version": "3.6.2", "dev": true, @@ -7051,6 +7339,8 @@ "version": "4.1.1", "dev": true, "license": "MIT", + "optional": true, + "peer": true, "engines": { "node": ">= 14.18.0" }, @@ -7230,6 +7520,8 @@ "version": "1.83.4", "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "chokidar": "^4.0.0", "immutable": "^5.0.2", @@ -7384,6 +7676,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -7447,6 +7752,110 @@ "node": ">=0.6.19" } }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "dev": true, @@ -7458,6 +7867,29 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/supports-color": { "version": "7.2.0", "dev": true, @@ -7492,11 +7924,42 @@ } }, "node_modules/tailwindcss": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.0.tgz", - "integrity": "sha512-ULRPI3A+e39T7pSaf1xoi58AqqJxVCLg8F/uM5A3FadUbnyDTgltVnXJvdkTjwCOGA6NazqHVcwPJC5h2vRYVQ==", + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", + "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } }, "node_modules/tailwindcss-animate": { "version": "1.0.7", @@ -7508,14 +7971,88 @@ "tailwindcss": ">=3.0.0 || insiders" } }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "node_modules/tailwindcss/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, "engines": { - "node": ">=6" + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tailwindcss/node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/tailwindcss/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" } }, "node_modules/timers-browserify": { @@ -7555,6 +8092,13 @@ "typescript": ">=4.8.4" } }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/tslib": { "version": "2.8.1", "license": "0BSD" @@ -7933,6 +8477,101 @@ "node": ">=0.10.0" } }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/ws": { "version": "8.18.0", "license": "MIT", @@ -7971,8 +8610,6 @@ "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", "dev": true, "license": "ISC", - "optional": true, - "peer": true, "bin": { "yaml": "bin.mjs" }, diff --git a/chat-widget/package.json b/chat-widget/package.json index 26a0554b..c0e16940 100644 --- a/chat-widget/package.json +++ b/chat-widget/package.json @@ -1,7 +1,7 @@ { "name": "@connectycube/chat-widget", "private": true, - "version": "0.0.1-3", + "version": "0.1.0", "type": "module", "types": "dist/index.d.ts", "main": "dist/index.umd.js", @@ -35,6 +35,7 @@ "@radix-ui/react-dropdown-menu": "^2.1.5", "@radix-ui/react-label": "^2.1.1", "@radix-ui/react-slot": "^1.1.1", + "@radix-ui/react-tabs": "^1.1.2", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "connectycube": "4.0.2", @@ -50,7 +51,6 @@ }, "devDependencies": { "@eslint/js": "^9.19.0", - "@tailwindcss/vite": "^4.0.0", "@types/node": "^22.10.10", "@types/react": "^18.3.18", "@types/react-dom": "^18.3.5", @@ -62,9 +62,8 @@ "eslint-plugin-react-refresh": "^0.4.18", "globals": "^15.14.0", "postcss": "^8.5.1", - "sass": "^1.83.4", "tailwind-merge": "^2.6.0", - "tailwindcss": "^4.0.0", + "tailwindcss": "^3.4.17", "tailwindcss-animate": "^1.0.7", "typescript": "~5.7.3", "typescript-eslint": "^8.21.0", diff --git a/chat-widget/postcss.config.js b/chat-widget/postcss.config.js new file mode 100644 index 00000000..2e7af2b7 --- /dev/null +++ b/chat-widget/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/chat-widget/src/App.tsx b/chat-widget/src/App.tsx index 242741cf..3a861d68 100644 --- a/chat-widget/src/App.tsx +++ b/chat-widget/src/App.tsx @@ -1,11 +1,15 @@ -import { useLayoutEffect, useState } from "react"; +import { useLayoutEffect, useState, StrictMode } from "react"; import ReactDOM from 'react-dom'; import { MessageCircleMore } from "lucide-react" import ConnectyCube from "connectycube"; import { ChatProvider } from "@connectycube/use-chat"; +import { BrowserRouter } from "react-router-dom"; +import { Navigate, Route, Routes } from "react-router"; import { Button } from "@/components/shadcn-ui/button" -import Home from "./components/Home/Home"; -import { tryRestoreSession } from "./connectycube"; +import Login from "@/components/Login"; +import SignUp from "@/components/SignUp"; +import Home from "@/components/Home/Home"; +import { tryRestoreSession, isSessionExists } from "./connectycube"; import { Config } from "@connectycube/types"; import "./App.css"; @@ -20,6 +24,10 @@ type AppProps = { portalClassName?: string; }; +function ProtectedRoute({ element }: { element: JSX.Element }) { + return isSessionExists() ? element : ; +} + const App: React.FC = ({ appId, authKey, @@ -29,6 +37,7 @@ const App: React.FC = ({ buttonClassName, portalClassName }) => { + const initialPath = isSessionExists() ? "/home" : "/login"; const [isOpen, setIsOpen] = useState(false); const toggleChat = () => { @@ -51,10 +60,29 @@ const App: React.FC = ({ {isOpen && ReactDOM.createPortal(
- - - + className={[portalClassName, 'chat-widget-portal'].join(' ')} + > +
+ + + + + } /> + } /> + } /> + } />} + /> + } />} + /> + + + + +
, document.body )} diff --git a/chat-widget/src/components/Home/Home.scss b/chat-widget/src/components/Home/Home.scss deleted file mode 100644 index fe424101..00000000 --- a/chat-widget/src/components/Home/Home.scss +++ /dev/null @@ -1,5 +0,0 @@ -.home__container { - width: 100%; - height: 100%; - display: flex; -} diff --git a/chat-widget/src/components/Home/Home.tsx b/chat-widget/src/components/Home/Home.tsx index 4093b284..d764699b 100644 --- a/chat-widget/src/components/Home/Home.tsx +++ b/chat-widget/src/components/Home/Home.tsx @@ -1,27 +1,26 @@ -// import { useNavigate } from "react-router"; -import Main from "./Main/Main"; -import Sidebar from "./Sidebar/Sidebar"; +import { useNavigate } from "react-router"; +import Main from "@/components/Home/Main/Main"; +import SideBar from "./Sidebar/SideBar"; import { useEffect } from "react"; import { useChat } from "@connectycube/use-chat"; -import "./Home.scss"; import { chatCredentials } from "../../connectycube"; const Home = () => { - // const navigate = useNavigate(); - const { connect } = useChat(); + const navigate = useNavigate(); + const { selectedDialog, connect } = useChat(); useEffect(() => { // auto-connect connect(chatCredentials()); - // if (!selectedDialog) { - // navigate("/home"); - // } + if (!selectedDialog) { + navigate("/home"); + } }, []); return ( -
- +
+
); diff --git a/chat-widget/src/components/Home/Main/ChatHeader/ChatHeader.tsx b/chat-widget/src/components/Home/Main/ChatHeader.tsx similarity index 67% rename from chat-widget/src/components/Home/Main/ChatHeader/ChatHeader.tsx rename to chat-widget/src/components/Home/Main/ChatHeader.tsx index be877970..f441a616 100644 --- a/chat-widget/src/components/Home/Main/ChatHeader/ChatHeader.tsx +++ b/chat-widget/src/components/Home/Main/ChatHeader.tsx @@ -9,7 +9,7 @@ import { DropdownMenuItem, DropdownMenuTrigger, } from "@/components/shadcn-ui/dropdown-menu"; -import "./ChatHeader.scss"; +import Avatar from "@/components/Shared/Avatar"; export interface ChatHeaderProps { toggleProfile: () => void; @@ -24,6 +24,7 @@ const ChatHeader: React.FC = ({ toggleProfile }) => { getDialogOpponentId, typingStatus, users, + selectDialog, } = useChat(); const isGroupChat = selectedDialog.type === 2; @@ -56,67 +57,61 @@ const ChatHeader: React.FC = ({ toggleProfile }) => { }; return ( -
-
+
+
+ {/* Back Button */} { + selectDialog(null); navigate("/home"); }} - className="user__info-back" + className="pr-2 cursor-pointer block md:hidden" /> + {/* User Avatar */}
{ - toggleProfile(); - }} + className="flex items-center justify-center mr-3 w-15 h-15 rounded-full bg-blue-300 cursor-pointer" + onClick={toggleProfile} > - {selectedDialog.photo ? ( - User Photo - ) : ( -
- {selectedDialog.name.slice(0, 2)} -
- )} +
-
+ + {/* User Info */} +
{ - toggleProfile(); - }} + className="text-black font-medium cursor-pointer" + onClick={toggleProfile} > {selectedDialog.name} - -
+
{typingStatus && !isGroupChat ? ( typingStatus.isTyping ? ( "typing..." - ) : !isGroupChat ? ( - + ) : ( + {lastActivity[opponentId as number]} - ) : ( - "someone typing" ) - ) : !isGroupChat ? ( - + ) : isGroupChat ? ( + {typingLabel} + ) : ( + {lastActivity[opponentId as number]} - ) : ( - "" )} - {isGroupChat ? {typingLabel} : ""}
+ + {/* More Options Dropdown */} - + diff --git a/chat-widget/src/components/Home/Main/ChatHeader/ChatHeader.scss b/chat-widget/src/components/Home/Main/ChatHeader/ChatHeader.scss deleted file mode 100644 index 2a697b98..00000000 --- a/chat-widget/src/components/Home/Main/ChatHeader/ChatHeader.scss +++ /dev/null @@ -1,67 +0,0 @@ -.last__activity { - unicode-bidi: plaintext; - overflow: hidden; - text-overflow: ellipsis; - font-size: 0.875rem; - line-height: 1.125rem; - color: rgb(128, 133, 136); - white-space: nowrap; -} -.typing-status { - font-size: 13px; - padding-top: 5px; - font-style: italic; -} -.user__info { - display: flex; - justify-content: space-between; - position: relative; - top: 50%; - transform: translateY(-50%); - & .more__modal { - position: absolute; - right: 10%; - bottom: 25%; - padding: 10px 15px; - background-color: white; - cursor: pointer; - border-radius: 5px; - - border: 0.5px solid #d9d4d4; - box-shadow: rgba(50, 50, 93, 0.25) 0px 2px 5px -1px, - rgba(0, 0, 0, 0.3) 0px 1px 3px -1px; - } - & .user__info-main { - display: flex; - align-items: center; - position: relative; - - & .user__info-back { - display: none; - @media screen and (max-width:767px) { - display: block; - padding-right: 10px; - } - } - - & .user-name-container { - display: flex; - flex-direction: column; - align-items: flex-start; - } - - & .user__avatar-dialog { - margin-right: 10px; - & .user__avatar-img { - object-fit: cover; - width: 60px; - height: 60px; - border-radius: 50%; - margin-right: 10px; - } - } - } - & .user__info-buttons { - margin-right: 10px; - } -} diff --git a/chat-widget/src/components/Home/Main/ChatInfo.tsx b/chat-widget/src/components/Home/Main/ChatInfo.tsx new file mode 100644 index 00000000..ed8e757c --- /dev/null +++ b/chat-widget/src/components/Home/Main/ChatInfo.tsx @@ -0,0 +1,129 @@ +import React, { useMemo, useState } from "react"; +import { IoIosArrowBack } from "react-icons/io"; +import { FiUserPlus } from "react-icons/fi"; +import { useChat } from "@connectycube/use-chat"; +import ConnectyCube from "connectycube"; +import GroupMember from "./GroupMember"; +import { + Dialog, + DialogContent, + DialogTrigger, +} from "@/components/shadcn-ui/dialog"; +import NewChatDialog from "../Sidebar/NewChat/NewChatDialog"; + +export interface ChatInfoProps { + showProfile: boolean; + toggleProfile: () => void; +} + +const ChatInfo: React.FC = ({ showProfile, toggleProfile }) => { + const { selectedDialog, users, getDialogOpponentId, lastActivity } = + useChat(); + + const [addMembersDialogOpen, addMemberDialogOpen] = useState(false); + + const opponentId = selectedDialog ? getDialogOpponentId() : null; + const isGroupChat = selectedDialog?.type === 2; + + const photoUrl = selectedDialog?.photo + ? ConnectyCube.storage.privateUrl(selectedDialog.photo) + : undefined; + const initials = selectedDialog?.name.slice(0, 2).toUpperCase(); + + const usersView = useMemo( + () => + selectedDialog?.occupants_ids.map((oId: number) => { + const user = users[oId]; + return ( + + ); + }), + [selectedDialog] + ); + + return ( +
+ {/* Profile Header */} +
+ + Profile +
+ + {/* Main Profile Info */} +
+
+ {/* Avatar */} + {photoUrl ? ( + User Photo + ) : ( +
+ {initials} +
+ )} + + {/* User Info */} +
+

{selectedDialog?.name || ""}

+ {isGroupChat ? ( +

+ {selectedDialog.occupants_ids.length} members +

+ ) : ( +

+ {opponentId && lastActivity[opponentId as number]} +

+ )} +
+ + {/* Gradient Overlay */} +
+
+
+ + {/* Group Members Section */} + {isGroupChat && ( +
+
+ Members + + + + + + addMemberDialogOpen(false)} + /> + + +
+
{usersView}
+
+ )} +
+ ); +}; + +export default React.memo(ChatInfo); diff --git a/chat-widget/src/components/Home/Main/ChatInfo/ChatInfo.scss b/chat-widget/src/components/Home/Main/ChatInfo/ChatInfo.scss deleted file mode 100644 index 20d00fdb..00000000 --- a/chat-widget/src/components/Home/Main/ChatInfo/ChatInfo.scss +++ /dev/null @@ -1,140 +0,0 @@ -.add__user { - position: fixed !important; - left: 50%; - top: 50%; -} -.profile__info { - position: absolute; - border-left: 1px solid #e7e7e7; - z-index: 21; - transform: translateX(100%); - width: 30%; - display: flex; - align-items: flex-start; - flex-direction: column; - justify-content: flex-start; - height: 100%; - & .new-chat__container { - & .new-chat__form { - position: absolute; - width: 100%; - top: 50%; - left: 0; - right: 0; - z-index: 22; - } - } - - @media screen and (max-width: 1440px) { - width: 50%; - } - @media screen and (max-width: 1100px) { - width: 70%; - } - @media screen and (max-width: 820px) { - width: 100%; - } - - & { - transition: 0.2s; - right: 0; - } - - & .profile__header { - border-bottom: 1px solid #e7e7e7; - display: flex; - align-items: center; - flex-direction: row; - justify-content: flex-start; - width: 100%; - flex: 0 1 9.5%; - - & span { - margin: 0 auto; - font-family: "Roboto"; - - font-size: 1.25rem; - font-weight: 500; - } - } - &.show { - background: white; - transform: translateX(0); - transform: translate(0); - } - - & .profile__group-members { - height: 68%; - background: white; - & .group__members-header { - display: flex; - justify-content: space-between; - padding: 15px; - align-items: center; - & .group__members-add { - cursor: pointer; - } - & .group-members__title { - font-weight: 500; - } - } - & .members__container { - overflow-y: scroll; - height: 100%; - } - } - & .profile__main-info { - height: 50%; - width: 100%; - - & .profile__img-container { - height: 100%; - width: 100%; - position: relative; - & .user__no-img { - &.profile { - width: 100%; - height: 100%; - border-radius: 0; - - & .name { - font-size: 6rem; - } - } - } - &::after { - position: absolute; - width: 100%; - height: 15%; - content: ""; - background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0) 100%); - bottom: 0; - left: 0; - } - & .user__avatar-img { - width: 100%; - height: 100%; - object-fit: cover; - } - & .profile__user-info { - position: absolute; - text-align: left; - bottom: 10px; - z-index: 21; - left: 20px; - color: white; - - & .members__count { - line-height: 1.125rem; - color: #afb4b7; - font-size: 0.85rem; - } - - & .last__activity { - line-height: 1.125rem; - color: #afb4b7; - } - } - } - } -} diff --git a/chat-widget/src/components/Home/Main/ChatInfo/ChatInfo.tsx b/chat-widget/src/components/Home/Main/ChatInfo/ChatInfo.tsx deleted file mode 100644 index 3d78f820..00000000 --- a/chat-widget/src/components/Home/Main/ChatInfo/ChatInfo.tsx +++ /dev/null @@ -1,128 +0,0 @@ -import React, { useMemo, useState } from "react"; -import { IoIosArrowBack } from "react-icons/io"; -import { FiUserPlus } from "react-icons/fi"; -import { useChat } from "@connectycube/use-chat"; -import ConnectyCube from "connectycube"; -import GroupMember from "./GroupMember/GroupMember"; -import "./ChatInfo.scss"; -import { - Dialog, - DialogContent, - DialogTrigger, -} from "@/components/shadcn-ui/dialog"; -import NewChatDialog from "../../Sidebar/NewChat/NewChatDialog"; - -export interface ChatInfoProps { - showProfile: boolean; - toggleProfile: () => void; -} - -const ChatInfo: React.FC = ({ showProfile, toggleProfile }) => { - const { selectedDialog = {}, users, getDialogOpponentId, lastActivity } = - useChat(); - console.log({ selectedDialog, users, getDialogOpponentId, lastActivity}); - - const [addMembersDialogOpen, addMemberDialogOpen] = useState(false); - - const opponentId = selectedDialog ? getDialogOpponentId() : null; - const isGroupChat = selectedDialog?.type === 2; - - const photoUrl = selectedDialog?.photo - ? ConnectyCube.storage.privateUrl(selectedDialog.photo) - : undefined; - const initials = selectedDialog?.name.slice(0, 2).toUpperCase(); - - const usersView = useMemo( - () => - selectedDialog?.occupants_ids.map((oId: number) => { - const user = users[oId]; - return ( - - ); - }), - [selectedDialog] - ); - - return ( - <> -
-
- { - toggleProfile(); - }} - size={32} - /> - - Profile -
-
-
- {/* chat photo */} - {photoUrl ? ( - User Photo - ) : ( -
- {initials} -
- )} -
- {/* chat name */} -

{selectedDialog?.name || ""}

- - {/* last seen / members count */} - {isGroupChat ? ( -

- {selectedDialog.occupants_ids.length} members -

- ) : ( -

- {opponentId && lastActivity[opponentId as number]} -

- )} -
- - {/* members list */} - {isGroupChat && ( -
-
- Members - - - - - - { - addMemberDialogOpen(false); - }} - /> - - -
-
{usersView}
-
- )} -
-
-
- - ); -}; - -export default React.memo(ChatInfo); diff --git a/chat-widget/src/components/Home/Main/ChatInfo/GroupMember/GroupMember.scss b/chat-widget/src/components/Home/Main/ChatInfo/GroupMember/GroupMember.scss deleted file mode 100644 index ea63196a..00000000 --- a/chat-widget/src/components/Home/Main/ChatInfo/GroupMember/GroupMember.scss +++ /dev/null @@ -1,30 +0,0 @@ -.member { - display: flex; - align-items: center; - padding: 10px; - & .member__info-container { - width: 90%; - display: flex; - align-items: center; - justify-content: space-between; - - & .member__name-activity { - display: flex; - flex-direction: column; - align-items: flex-start; - } - } - & .member__photo-container { - margin-right: 10px; - border-radius: 50%; - width: 60px; - height: 60px; - - & .member__avatar-img { - width: 100%; - height: 100%; - object-fit: cover; - border-radius: 50%; - } - } -} diff --git a/chat-widget/src/components/Home/Main/ChatInput.tsx b/chat-widget/src/components/Home/Main/ChatInput.tsx new file mode 100644 index 00000000..43a797a4 --- /dev/null +++ b/chat-widget/src/components/Home/Main/ChatInput.tsx @@ -0,0 +1,112 @@ +import React, { ChangeEvent, useEffect, useRef } from "react"; +import { IoMdAttach } from "react-icons/io"; +import { useChat } from "@connectycube/use-chat"; + +export interface ChatInputProps { + sendMessage: (message: string) => void; + sendMessageWithAttachment: (file: File) => void; + sendTypingStatus: () => void; +} + +const ChatInput: React.FC = ({ + sendMessage, + sendMessageWithAttachment, + sendTypingStatus, +}) => { + const { selectedDialog } = useChat(); + + const fileInputRef = useRef(null); + const messageInputRef = useRef(null); + const isTyping = useRef(false); + + useEffect(() => { + isTyping.current = false; + }, [selectedDialog]); + + const handleSendMessage = () => { + isTyping.current = false; + + const messageText = messageInputRef.current?.value.trim() || ""; + if (messageText.length > 0) { + sendMessage(messageText); + messageInputRef.current!.value = ""; + } + }; + + const onFileSelected = (event: ChangeEvent) => { + isTyping.current = false; + const files = event.currentTarget.files; + if (!files) return; + const file = files[0]; + const type = file.type.split("/")[1]; + if ( + type === "svg+xml" || + type === "image" || + type === "webp" || + type === "png" || + type === "jpeg" + ) { + sendMessageWithAttachment(file); + } else { + alert( + "File format is not supported. Only images supported in this code sample" + ); + } + event.target.value = ""; + }; + + const onEnterPress = (event: { + keyCode: number; + shiftKey: boolean; + preventDefault: () => void; + }) => { + if (event.keyCode === 13 && event.shiftKey === false) { + event.preventDefault(); + + handleSendMessage(); + } + }; + + const startTyping = () => { + if (!isTyping.current) { + isTyping.current = true; + sendTypingStatus(); // send typing to selected chat + } + }; + + return ( +
+ + + + +
+ ); +}; + +export default React.memo(ChatInput); diff --git a/chat-widget/src/components/Home/Main/ChatInfo/GroupMember/GroupMember.tsx b/chat-widget/src/components/Home/Main/GroupMember.tsx similarity index 61% rename from chat-widget/src/components/Home/Main/ChatInfo/GroupMember/GroupMember.tsx rename to chat-widget/src/components/Home/Main/GroupMember.tsx index 8bcc5b51..48cc9bc1 100644 --- a/chat-widget/src/components/Home/Main/ChatInfo/GroupMember/GroupMember.tsx +++ b/chat-widget/src/components/Home/Main/GroupMember.tsx @@ -1,8 +1,8 @@ import React from "react"; import { MdPersonRemoveAlt1 } from "react-icons/md"; -import "./GroupMember.scss"; import { useChat } from "@connectycube/use-chat"; -import { ConfirmationAlert } from "../../../../../components/Shared/ConfirmationAlert"; +import { ConfirmationAlert } from "@/components/Shared/ConfirmationAlert"; +import Avatar from "@/components/Shared/Avatar"; export interface GroupMemberProps { userId: number; @@ -22,8 +22,6 @@ const GroupMember: React.FC = ({ userId, name, avatar }) => { removeUsersFromGroupChat([userId]); }; - const initials = name.slice(0, 2); - const isChatOwner = selectedDialog.user_id === currentUserId; const isAdmin = selectedDialog.user_id === userId; const canRemoveUser = isChatOwner && currentUserId !== userId; @@ -31,27 +29,18 @@ const GroupMember: React.FC = ({ userId, name, avatar }) => { const lastActivityInfo = userId !== currentUserId ? lastActivity[userId] : ""; return ( -
-
- {avatar ? ( - User avatar - ) : ( -
- {initials} -
- )} -
-
-
-

{name}

-

{lastActivityInfo}

+
+ +
+
+

{name}

+

{lastActivityInfo}

- {canRemoveUser && ( @@ -61,7 +50,7 @@ const GroupMember: React.FC = ({ userId, name, avatar }) => { onConfirm={handleRemoveUser} /> )} - {isAdmin && admin} + {isAdmin && Admin}
); diff --git a/chat-widget/src/components/Home/Main/Main.scss b/chat-widget/src/components/Home/Main/Main.scss deleted file mode 100644 index 1f4b47c1..00000000 --- a/chat-widget/src/components/Home/Main/Main.scss +++ /dev/null @@ -1,156 +0,0 @@ -.main__content { - background-color: white; - height: 100%; - width: 100%; - display: flex; - justify-content: space-between; - flex-direction: column; - overflow: hidden; - transition: 0.2s; - &.small { - @media screen and (min-width: 1400px) { - width: 70%; - } - @media screen and (max-width: 1400px) { - width: 100%; - } - - @media screen and (max-width: 767px) { - width: 0%; - } - } -} - -.main__container { - background-color: white; - height: 100%; - width: 100%; - display: flex; - justify-content: flex-end; - flex-direction: row-reverse; - overflow: hidden; - position: relative; - - & .message__field { - display: flex; - position: relative; - gap: 10px; - width: 90%; - margin: 0 auto; - padding-top: 10px; - border-top: 1px solid #e7e7e7; - padding-bottom: 10px; - & input[type="file"] { - display: none; - } - & .custom-file-upload { - display: inline-block; - padding-top: 8px; - padding-left: 0px; - cursor: pointer; - } - & .send-btn { - border: none; - font-family: "Roboto"; - background-color: dodgerblue; - color: white; - font-weight: 600; - border-radius: 4px; - cursor: pointer; - } - & .message__area { - padding: 10px; - height: 45px; - border: 1px solid #d9d9d9; - font-size: 16px; - font-family: "Roboto"; - border-radius: 10px; - &::placeholder { - font-size: 16px; - font-family: inherit; - } - } - } - & .main__header { - flex: 0 1 11.5%; - position: relative; - background-color: white; - margin-left: 15px; - border-bottom: 1px solid #c0c0c0; - - & .header-none { - width: 100%; - font-weight: 600; - font-size: 30px; - height: 100%; - text-align: center; - display: flex; - align-items: center; - justify-content: center; - } - } - & .messages__container { - flex: 0 1 100%; - display: flex; - height: 100%; - flex-direction: column-reverse; - padding-bottom: 5px; - overflow-x: hidden; - width: 100%; - position: relative; - height: 100%; - overflow-y: scroll; - background-color: white; - & .messages { - display: flex; - padding-left: 15px; - flex-direction: column; - width: 90%; - margin: 0 auto; - & .unread__messages-scroll { - position: fixed; - display: flex; - align-items: center; - justify-content: center; - top: 83%; - cursor: pointer; - left: 96%; - border: 1px solid; - border-radius: 50%; - width: 35px; - height: 35px; - & .unread__messages-counter { - position: absolute; - width: 25px; - height: 25px; - /* border: 1px solid; */ - display: flex; - align-items: center; - justify-content: center; - border-radius: 50%; - top: -76%; - background: #6aacee; - color: white; - } - } - - & .no-msg { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - } - } - - & .choose__chat { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - } - } - & .message__area { - width: 100%; - resize: none; - } -} diff --git a/chat-widget/src/components/Home/Main/Main.tsx b/chat-widget/src/components/Home/Main/Main.tsx index 8333cb85..440ec033 100644 --- a/chat-widget/src/components/Home/Main/Main.tsx +++ b/chat-widget/src/components/Home/Main/Main.tsx @@ -1,12 +1,11 @@ -import { useEffect, useState, useRef, useMemo, ChangeEvent } from "react"; +import { useState, useRef, useMemo } from "react"; import { animateScroll } from "react-scroll"; import { useChat } from "@connectycube/use-chat"; -import { IoMdAttach } from "react-icons/io"; import { IoIosArrowDown } from "react-icons/io"; -import Message from "./Message/Message"; -import ChatHeader from "./ChatHeader/ChatHeader"; -// import ChatInfo from "./ChatInfo/ChatInfo"; -import "./Main.scss"; +import Message from "./Message"; +import ChatHeader from "./ChatHeader"; +import ChatInfo from "./ChatInfo"; +import ChatInput from "./ChatInput"; const Main = () => { const { @@ -19,64 +18,7 @@ const Main = () => { } = useChat(); const [showProfile, setShowProfile] = useState(false); - const messageInputRef = useRef(null); - const fileInputRef = useRef(null); const messagesContainerRef = useRef(null); - const isTyping = useRef(false); - - useEffect(() => { - isTyping.current = false; - }, [selectedDialog]); - - const handleSendMessage = () => { - isTyping.current = false; - - const messageText = messageInputRef.current?.value.trim() || ""; - if (messageText.length > 0) { - sendMessage(messageText); // send message to selected dialog - messageInputRef.current!.value = ""; - scrollToBottom(); - } - }; - - const onFileSelected = (event: ChangeEvent) => { - isTyping.current = false; - - const {files} = event.currentTarget; - - if (!files) return; - - const file = files[0]; - const type = file.type.split("/")[1]; - - if ( - type === "svg+xml" || - type === "image" || - type === "webp" || - type === "png" || - type === "jpeg" - ) { - sendMessageWithAttachment(file); - } else { - alert( - "File format is not supported. Only images supported in this code sample" - ); - } - - event.target.value = ""; - }; - - const onEnterPress = (event: { - keyCode: number; - shiftKey: boolean; - preventDefault: () => void; - }) => { - if (event.keyCode === 13 && event.shiftKey === false) { - event.preventDefault(); - - handleSendMessage(); - } - }; const scrollToBottom = () => { animateScroll.scrollToBottom({ @@ -84,13 +26,6 @@ const Main = () => { }); }; - const startTyping = () => { - if (!isTyping.current) { - isTyping.current = true; - sendTypingStatus(); // send typing to selected chat - } - }; - const toggleProfile = () => { setShowProfile(!showProfile); }; @@ -115,72 +50,75 @@ const Main = () => { } }, [messages, users]); + const handleSendMessage = (text: string) => { + sendMessage(text); + scrollToBottom(); + }; + return ( -
- {/* */} -
-
- {selectedDialog && } - {!selectedDialog &&
Chats
} +
+ +
+ {/* Header */} +
+ {selectedDialog ? ( + + ) : ( +
+ Chats +
+ )}
+ + {/* Messages Container */}
- {selectedDialog && ( -
+ {selectedDialog ? ( +
{messages ? ( messagesView ) : ( - NO MESSAGES YET + + NO MESSAGES YET + )} {selectedDialog.unread_messages_count > 0 && (
-
+
{selectedDialog.unread_messages_count}
)}
+ ) : ( +
+ Choose a chat +
)} - {!selectedDialog &&
Choose a chat
}
+ + {/* Chat Input */} {selectedDialog && ( -
- - - - -
+ )}
diff --git a/chat-widget/src/components/Home/Main/Message/Message.tsx b/chat-widget/src/components/Home/Main/Message.tsx similarity index 55% rename from chat-widget/src/components/Home/Main/Message/Message.tsx rename to chat-widget/src/components/Home/Main/Message.tsx index 8490a287..a3b9ddae 100644 --- a/chat-widget/src/components/Home/Main/Message/Message.tsx +++ b/chat-widget/src/components/Home/Main/Message.tsx @@ -3,8 +3,8 @@ import { IoCheckmarkSharp, IoCheckmarkDoneSharp } from "react-icons/io5"; import { useInView } from "react-intersection-observer"; import { Messages } from "@connectycube/types"; import { useChat } from "@connectycube/use-chat"; -import Avatar from "../../../Shared/Avatar"; -import "./Message.scss"; +import Avatar from "../../Shared/Avatar"; +import Loader from "../../Shared/Loader"; export interface MessageProps { message: Messages.Message; @@ -25,6 +25,9 @@ const Message: React.FC = ({ const isCurrentUserSender = message.sender_id === currentUserId; + const isAttachment = message.attachmentsUrls?.length > 0; + const fileUrl = message.attachmentsUrls?.[0]; + const senderNameString = isCurrentUserSender ? "You" : isGroupChat @@ -45,63 +48,62 @@ const Message: React.FC = ({ return (
{/* avatar */} {isGroupChat && !isCurrentUserSender && ( - + )} -
+
{/* sender name in group chat */} {isGroupChat && !isCurrentUserSender && ( - {senderNameString} + {senderNameString} )} - {/* message body */} +
- {message.message ? ( - message.message - ) : ( + {/* message body */} + {!isAttachment ? ( +

{message.message}

+ ) : null} + + {/* attachments */} + {isAttachment && (
{ - e.currentTarget.classList.toggle("full"); + e.currentTarget.classList.toggle("fixed"); }} > - - {message.isLoading && ( -
-
-
-
-
-
-
-
-
-
-
-
-
-
+ {message.isLoading ? ( + + ) : ( + )}
)}
-
+ +
{/* date sent */} - {sentTime} + {sentTime} {/* sent/read status */} {isCurrentUserSender && ( - + {message.read ? ( ) : ( diff --git a/chat-widget/src/components/Home/Main/Message/Message.scss b/chat-widget/src/components/Home/Main/Message/Message.scss deleted file mode 100644 index 9456cf8b..00000000 --- a/chat-widget/src/components/Home/Main/Message/Message.scss +++ /dev/null @@ -1,189 +0,0 @@ -.lds-spinner { - color: official; - display: inline-block; - position: absolute; - width: 80px !important; - height: 80px; - left: 50%; - top: 50%; - transform: translate(-50%, -50%); -} -.lds-spinner div { - transform-origin: 40px 40px; - animation: lds-spinner 1.2s linear infinite; -} -.lds-spinner div:after { - content: " "; - display: block; - position: absolute; - top: 3px; - left: 37px; - width: 6px; - height: 18px; - border-radius: 20%; - background: #000; -} -.lds-spinner div:nth-child(1) { - transform: rotate(0deg); - animation-delay: -1.1s; -} -.lds-spinner div:nth-child(2) { - transform: rotate(30deg); - animation-delay: -1s; -} -.lds-spinner div:nth-child(3) { - transform: rotate(60deg); - animation-delay: -0.9s; -} -.lds-spinner div:nth-child(4) { - transform: rotate(90deg); - animation-delay: -0.8s; -} -.lds-spinner div:nth-child(5) { - transform: rotate(120deg); - animation-delay: -0.7s; -} -.lds-spinner div:nth-child(6) { - transform: rotate(150deg); - animation-delay: -0.6s; -} -.lds-spinner div:nth-child(7) { - transform: rotate(180deg); - animation-delay: -0.5s; -} -.lds-spinner div:nth-child(8) { - transform: rotate(210deg); - animation-delay: -0.4s; -} -.lds-spinner div:nth-child(9) { - transform: rotate(240deg); - animation-delay: -0.3s; -} -.lds-spinner div:nth-child(10) { - transform: rotate(270deg); - animation-delay: -0.2s; -} -.lds-spinner div:nth-child(11) { - transform: rotate(300deg); - animation-delay: -0.1s; -} -.lds-spinner div:nth-child(12) { - transform: rotate(330deg); - animation-delay: 0s; -} -@keyframes lds-spinner { - 0% { - opacity: 1; - } - 100% { - opacity: 0; - } -} - -.message { - display: flex; - text-align: left; - flex-direction: row; - align-items: center; - white-space: pre-wrap; - max-width: 90%; - position: relative; - - & .user-message__info { - padding: 10px; - margin-left: 10px; - background-color: #eaeaeb !important; - display: flex; - border-radius: 15px; - flex-direction: column; - min-width: 150px; - word-wrap: break-word; - - & .message__time-container { - display: flex; - align-items: center; - font-size: 12px; - font-weight: 500; - font-style: italic; - color: #929293; - position: absolute; - bottom: -1px; - gap: 5px; - right: 10px; - justify-content: flex-end; - } - - & > * { - &:not(:last-child) { - padding-bottom: 5px; - } - } - } - & .message__avatar { - width: 60px; - height: 60px; - } - & div { - width: 100%; - white-space: pre-line; - & .message__photo-container { - &.full { - position: fixed; - width: 100vw; - height: 100vh; - top: 0; - left: 0; - z-index: 20; - background-color: #000000de; - - & .message__photo { - position: absolute; - left: 50%; - top: 50%; - transform: scale(3) translate(-17%, -20%); - } - } - & .message__photo { - max-height: 200px; - transition: 0.2s; - } - } - } - & .message-user__name { - font-weight: 600; - } - &:not(:last-child) { - margin-bottom: 10px; - } - &.my { - align-self: flex-end; - & .user__img-container { - order: 2; - } - & .user-message__info { - order: 1; - margin-right: 10px; - position: relative; - } - } - &.opponent { - align-self: flex-start; - & .message__time-container { - display: flex; - align-items: center; - font-size: 12px; - font-weight: 500; - font-style: italic; - color: #929293; - position: absolute; - bottom: 2px; - right: 10px; - justify-content: flex-end; - } - - & .user__img { - width: 50px; - height: 50px; - } - } -} diff --git a/chat-widget/src/components/Home/Sidebar/ChatItem/ChatItem.tsx b/chat-widget/src/components/Home/Sidebar/ChatItem.tsx similarity index 59% rename from chat-widget/src/components/Home/Sidebar/ChatItem/ChatItem.tsx rename to chat-widget/src/components/Home/Sidebar/ChatItem.tsx index 306eec96..651b9485 100644 --- a/chat-widget/src/components/Home/Sidebar/ChatItem/ChatItem.tsx +++ b/chat-widget/src/components/Home/Sidebar/ChatItem.tsx @@ -3,8 +3,7 @@ import { useEffect } from "react"; import { TiGroup } from "react-icons/ti"; import { useLocation, useNavigate } from "react-router"; import { useChat } from "@connectycube/use-chat"; -import "./ChatItem.scss"; -import Avatar from "../../../Shared/Avatar"; +import Avatar from "@/components/Shared/Avatar"; import { Dialogs } from "@connectycube/types"; export interface ChatItemProps { @@ -42,33 +41,46 @@ const ChatItem: React.FC = ({ dialog }) => { return (
- {/* avatar */} - - -
-
+ + +
+ {/* Group or Username */} +
{dialog.type === 2 && ( - + )} -

{dialog.name}

+

{dialog.name}

- + {/* Last message */} +

{dialog.last_message ? dialog.last_message_user_id === currentUserId ? "me: " + dialog.last_message : dialog.name + " : " + dialog.last_message : "No messages yet"} - - {lastMessageTime} +

+ + {/* Last message time */} +

{lastMessageTime}

- {/* unread counter */} + {/* Unread messages counter */} {dialog.unread_messages_count > 0 && ( - {dialog.unread_messages_count} + + {dialog.unread_messages_count} + )}
); diff --git a/chat-widget/src/components/Home/Sidebar/ChatItem/ChatItem.scss b/chat-widget/src/components/Home/Sidebar/ChatItem/ChatItem.scss deleted file mode 100644 index c9d4793c..00000000 --- a/chat-widget/src/components/Home/Sidebar/ChatItem/ChatItem.scss +++ /dev/null @@ -1,87 +0,0 @@ -.user__img { - object-fit: cover; - width: 60px; - height: 60px; - border-radius: 50%; -} -.user__no-img { - display: flex; - text-transform: uppercase; - width: 60px; - height: 60px; - border-radius: 50%; - justify-content: center; - background-color: #87ceeb; - - align-items: center; - - & .name { - font-weight: 700; - color: white; - } -} -.chat__block { - display: flex; - - align-items: center; - padding: 0px 0px 0px 20px; - margin-bottom: 10px; - &.chosen, - &:hover { - transition: 0.1s ease; - background-color: #f8f9fa; - } - &.chosen { - border-left: 4px solid #2c85be; - } - & .user__info-main { - display: flex; - flex-direction: column; - padding-left: 20px; - color: black; - text-align: left; - justify-content: space-between; - flex: 1 1 100%; - & .last__message { - display: block; - padding-bottom: 3px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - font-size: 13px; - margin: 0; - } - & .group__name-container { - display: flex; - align-items: center; - - & small { - } - - & .group__img { - padding-right: 5px; - } - } - - & > * { - &:not(:last-child) { - padding-bottom: 5px; - } - } - & small { - font-size: 11px; - color: #919191; - } - } - & .last__mesage-time { - } - - & .unread-counter { - background: #6aacef; - padding-left: 10px; - padding-right: 10px; - margin-right: 5px; - border-radius: 20px; - color: white; - } -} diff --git a/chat-widget/src/components/Home/Sidebar/ChatPhoto/ChatPhoto.tsx b/chat-widget/src/components/Home/Sidebar/ChatPhoto/ChatPhoto.tsx deleted file mode 100644 index f18842e5..00000000 --- a/chat-widget/src/components/Home/Sidebar/ChatPhoto/ChatPhoto.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import React from "react"; -import { - Avatar as AvatarComponent, - AvatarFallback, - AvatarImage, -} from "@/components/shadcn-ui/avatar"; -import ConnectyCube from "connectycube"; - -export interface AvatarProps { - imageUID: string; - name: string; -} - -const Avatar: React.FC = ({ imageUID, name }) => { - const photoUrl = imageUID - ? ConnectyCube.storage.privateUrl(imageUID) - : undefined; - const initials = name.slice(0, 2).toUpperCase(); - - return ( - - - {initials} - - ); -}; - -export default React.memo(Avatar); diff --git a/chat-widget/src/components/Home/Sidebar/ChatsList/ChatsList.tsx b/chat-widget/src/components/Home/Sidebar/ChatsList.tsx similarity index 90% rename from chat-widget/src/components/Home/Sidebar/ChatsList/ChatsList.tsx rename to chat-widget/src/components/Home/Sidebar/ChatsList.tsx index e8f0a300..e6d235e7 100644 --- a/chat-widget/src/components/Home/Sidebar/ChatsList/ChatsList.tsx +++ b/chat-widget/src/components/Home/Sidebar/ChatsList.tsx @@ -1,7 +1,6 @@ import React, { useMemo } from "react"; import { useChat } from "@connectycube/use-chat"; -import ChatItem from "../ChatItem/ChatItem"; -import "./ChatsList.scss"; +import ChatItem from "./ChatItem"; export interface ChatsListProps { searchTerm?: string; diff --git a/chat-widget/src/components/Home/Sidebar/ChatsList/ChatsList.scss b/chat-widget/src/components/Home/Sidebar/ChatsList/ChatsList.scss deleted file mode 100644 index e69de29b..00000000 diff --git a/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/CreateGroupChat.scss b/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/CreateGroupChat.scss deleted file mode 100644 index d6915261..00000000 --- a/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/CreateGroupChat.scss +++ /dev/null @@ -1,37 +0,0 @@ -.new-chat__form { - & .users__in-group { - display: flex; - width: 90%; - margin: 0 auto; - padding-top: 20px; - flex-wrap: wrap; - & > * { - padding-right: 20px; - } - } - & .error { - color: red; - } - &.create { - padding-top: 30px; - } - & .chat__img { - & img { - margin: 0 auto; - width: 220px; - height: 150px; - object-fit: contain; - } - } - & .chat__name { - margin: 0 auto; - width: 100%; - height: 15px; - height: 50px; - border-radius: 30px; - border: 1px solid #dbdbdb; - margin-top: 20px; - padding-left: 20px; - } -} - diff --git a/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/CreateGroupChat.tsx b/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/CreateGroupChat.tsx index f98ee07c..37e71a75 100644 --- a/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/CreateGroupChat.tsx +++ b/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/CreateGroupChat.tsx @@ -2,9 +2,8 @@ import React, { useMemo } from "react"; import { useForm, SubmitHandler } from "react-hook-form"; import { Users } from "@connectycube/types"; import { Button } from "@/components/shadcn-ui/button"; -import Participant from "./Participant/Participant"; +import Participant from "./Participant"; import groupChatImage from "../../../../../assets/group-chat.jpg"; -import "./CreateGroupChat.scss"; export interface CreateGroupChatProps { users: Users.User[]; @@ -30,8 +29,8 @@ const CreateGroupChat: React.FC = ({ return ( ); }); @@ -42,22 +41,30 @@ const CreateGroupChat: React.FC = ({ }; return ( -
-
- + +
+
- {errors.name && {errors.name.message}} -
{participants}
-
-
diff --git a/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/Participant.tsx b/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/Participant.tsx new file mode 100644 index 00000000..f82740fd --- /dev/null +++ b/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/Participant.tsx @@ -0,0 +1,19 @@ +import Avatar from "@/components/Shared/Avatar"; +import React from "react"; + +export interface ParticipantProps { + avatar?: string; + name: string; +} + +const Participant: React.FC = ({ avatar, name }) => { + return ( +
+ + +

{name}

+
+ ); +}; + +export default React.memo(Participant); diff --git a/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/Participant/Participant.scss b/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/Participant/Participant.scss deleted file mode 100644 index d131d819..00000000 --- a/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/Participant/Participant.scss +++ /dev/null @@ -1,10 +0,0 @@ -.group-list { - & .group-list__avatar { - width: 60px; - height: 60px; - border-radius: 50%; - object-fit: cover; - } - & .group-username { - } -} diff --git a/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/Participant/Participant.tsx b/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/Participant/Participant.tsx deleted file mode 100644 index aba63e74..00000000 --- a/chat-widget/src/components/Home/Sidebar/NewChat/CreateGroupChat/Participant/Participant.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import React from "react"; -import { - Avatar, - AvatarFallback, - AvatarImage, -} from "@/components/shadcn-ui/avatar"; -import ConnectyCube from "connectycube"; -import "./Participant.scss"; - -export interface ParticipantProps { - avatar: string | null; - name: string; -} - -const Participant: React.FC = ({ avatar = '', name }) => { - const avatarUrl = avatar - ? ConnectyCube.storage.privateUrl(avatar) - : undefined; - const initials = name?.slice(0, 2).toUpperCase(); - - return ( -
- - - {initials} - - -

{name}

-
- ); -}; - -export default React.memo(Participant); diff --git a/chat-widget/src/components/Home/Sidebar/NewChat/NewChatDialog.tsx b/chat-widget/src/components/Home/Sidebar/NewChat/NewChatDialog.tsx index a6e900be..d9daec04 100644 --- a/chat-widget/src/components/Home/Sidebar/NewChat/NewChatDialog.tsx +++ b/chat-widget/src/components/Home/Sidebar/NewChat/NewChatDialog.tsx @@ -1,15 +1,15 @@ import React, { useMemo, useState } from "react"; +import { useNavigate } from "react-router"; import { FaSearch } from "react-icons/fa"; import { useChat } from "@connectycube/use-chat"; import { DialogHeader, DialogTitle } from "@/components/shadcn-ui/dialog"; import { Input } from "@/components/shadcn-ui/input"; import { Label } from "@/components/shadcn-ui/label"; import { Button } from "@/components/shadcn-ui/button"; -import SearchedUser from "./SearchedUser/SearchedUser"; +import { Users } from "@connectycube/types"; +import SearchedUser from "./SearchedUser"; import CreateGroupChat from "./CreateGroupChat/CreateGroupChat"; -import Participant from "./CreateGroupChat/Participant/Participant"; -import { useNavigate } from "react-router"; -import { Users } from '@connectycube/types'; +import Participant from "./CreateGroupChat/Participant"; export type ChatType = "private" | "group"; @@ -75,7 +75,7 @@ const NewChatDialog: React.FC = ({ navigate(`/home/${dialog._id}`); onFinish(); }} - avatar={user.avatar} + avatar={user.avatar || ""} chatType={chatType} isSelected={!!selectedUsers[user.id]} onSelectUser={(userId: number, isSelected: boolean) => { @@ -133,7 +133,7 @@ const NewChatDialog: React.FC = ({ return ( ); diff --git a/chat-widget/src/components/Home/Sidebar/NewChat/SearchedUser/SearchedUser.tsx b/chat-widget/src/components/Home/Sidebar/NewChat/SearchedUser.tsx similarity index 53% rename from chat-widget/src/components/Home/Sidebar/NewChat/SearchedUser/SearchedUser.tsx rename to chat-widget/src/components/Home/Sidebar/NewChat/SearchedUser.tsx index 8595f0b7..0355d479 100644 --- a/chat-widget/src/components/Home/Sidebar/NewChat/SearchedUser/SearchedUser.tsx +++ b/chat-widget/src/components/Home/Sidebar/NewChat/SearchedUser.tsx @@ -1,18 +1,12 @@ import React from "react"; -import ConnectyCube from "connectycube"; -import { - Avatar, - AvatarFallback, - AvatarImage, -} from "@/components/shadcn-ui/avatar"; import { Button } from "@/components/shadcn-ui/button"; -import { ChatType } from "../NewChatDialog"; -import "./SearchedUser.scss"; +import { ChatType } from "./NewChatDialog"; +import Avatar from "@/components/Shared/Avatar"; export interface SearchedUserProps { id: number; name: string; - avatar: string | null; + avatar?: string; chatType: ChatType; onStartChat: (userId: number) => void; isSelected: boolean; @@ -28,23 +22,12 @@ const SearchedUser: React.FC = ({ isSelected, onSelectUser, }) => { - const avatarUrl = avatar - ? ConnectyCube.storage.privateUrl(avatar) - : undefined; - const initials = name.slice(0, 2).toUpperCase(); - return ( -
-
- - - {initials} - -
-

{name}

+
+
+ +
+

{name}

{chatType === "private" ? ( @@ -59,7 +42,7 @@ const SearchedUser: React.FC = ({ ) : (
{ onSelectUser(id, !isSelected); }} diff --git a/chat-widget/src/components/Home/Sidebar/NewChat/SearchedUser/SearchedUser.scss b/chat-widget/src/components/Home/Sidebar/NewChat/SearchedUser/SearchedUser.scss deleted file mode 100644 index 77746a5e..00000000 --- a/chat-widget/src/components/Home/Sidebar/NewChat/SearchedUser/SearchedUser.scss +++ /dev/null @@ -1,49 +0,0 @@ -.found__user { - display: flex; - align-items: center; - justify-content: space-between; - position: relative; - - & .add-status { - background-color: transparent; - color: #007bad; - border: 1px solid #36b6eb; - padding: 10px 20px; - border-radius: 10px; - transition: 0.2s; - cursor: pointer; - &.add:hover { - background: #31baf3; - color: #ffffff; - } - &.delete { - background: #31baf3; - color: #ffffff; - } - } - & .user__main-info { - display: flex; - flex: 0 0 70%; - align-items: center; - } - & .user__name-info { - text-align: left; - - & .user__full-name { - color: black; - } - & .user__login { - color: black; - font-size: 14px; - } - } - &:not(:last-child) { - padding-bottom: 10px; - } - - & .user__avatar { - width: 50px; - height: 50px; - margin-right: 15px; - } -} diff --git a/chat-widget/src/components/Home/Sidebar/Sidebar.scss b/chat-widget/src/components/Home/Sidebar/Sidebar.scss deleted file mode 100644 index 0a28d761..00000000 --- a/chat-widget/src/components/Home/Sidebar/Sidebar.scss +++ /dev/null @@ -1,260 +0,0 @@ -.sidebar-header__button { - position: relative; - width: 30px; - cursor: pointer; -} - -.sidebar-header__button:before, -.sidebar-header__button:after, -.sidebar-header__button div { - background: #000; - content: ""; - display: block; - height: 3px; - border-radius: 3px; - margin: 7px 0; - transition: 0.5s; -} - -.sidebar__container { - flex: 0 0 20%; - max-width: 20%; - display: flex; - flex-direction: column; - background-color: #fffdfd; - border-right: 1px solid #c4c2c2; - position: relative; - - & .chat-create-menu { - position: absolute; - top: 80%; - left: 40%; - text-align: left; - width: 160px; - height: 90px; - - border-radius: 10px; - box-shadow: rgba(50, 50, 93, 0.25) 0px 2px 5px -1px, - rgba(0, 0, 0, 0.3) 0px 1px 3px -1px; - background-color: white; - transition: 0.2s ease-in; - &.hide { - opacity: 0; - transform: scale(0); - } - & ul { - margin: 0 auto; - list-style-type: none; - - & li { - cursor: pointer; - border-radius: 10px; - - padding-left: 20px; - padding-top: 10px; - &:hover { - background-color: whitesmoke; - width: 100%; - } - - padding-bottom: 20px; - } - } - } - - & .loader, - & .loader:before, - & .loader:after { - border-radius: 50%; - width: 2.5em; - height: 2.5em; - -webkit-animation-fill-mode: both; - animation-fill-mode: both; - -webkit-animation: load7 1.8s infinite ease-in-out; - animation: load7 1.8s infinite ease-in-out; - } - & .loader { - color: #282828; - font-size: 6px; - - position: relative; - text-indent: -9999em; - top: 38%; - left: 50%; - -webkit-transform: translateZ(0); - -ms-transform: translateZ(0); - transform: translateZ(0) translate(-50%, -50%); - -webkit-animation-delay: -0.16s; - animation-delay: -0.16s; - } - & .loader:before, - & .loader:after { - content: ""; - position: absolute; - top: 0; - } - & .loader:before { - left: -3.5em; - -webkit-animation-delay: -0.32s; - animation-delay: -0.32s; - } - & .loader:after { - left: 3.5em; - } - @-webkit-keyframes load7 { - 0%, - 80%, - 100% { - box-shadow: 0 2.5em 0 -1.3em; - } - 40% { - box-shadow: 0 2.5em 0 0; - } - } - @keyframes load7 { - 0%, - 80%, - 100% { - box-shadow: 0 2.5em 0 -1.3em; - } - 40% { - box-shadow: 0 2.5em 0 0; - } - } - - & .sidebar-chats__container { - position: relative; - cursor: pointer; - padding-top: 20px; - overflow-y: scroll; - height: 87%; - -webkit-overflow-scrolling: touch; - overflow-x: hidden; - } - - & .sidebar-header { - display: flex; - padding: 20px 10px; - justify-content: space-between; - align-items: center; - - & .context__menu { - transition: 0.2s; - position: absolute; - left: 2%; - top: 8%; - background-color: white; - cursor: pointer; - border: 0.5px solid #d9d4d4; - box-shadow: rgba(50, 50, 93, 0.25) 0px 2px 5px -1px, - rgba(0, 0, 0, 0.3) 0px 1px 3px -1px; - &.hide { - opacity: 0; - transform: scale(0); - } - & ul { - padding: 10px 20px; - list-style-type: none; - } - } - } - & .sidebar-user__info { - display: flex; - align-items: center; - flex-direction: row-reverse; - cursor: pointer; - - & .sidebar-user__name { - color: black; - font-size: 16px; - padding-left: 20px; - } - & .sidebar-img__container { - width: 50px; - height: 50px; - - border-radius: 50%; - - & .user__no-img { - &.main { - width: 100%; - height: 100%; - } - } - - & img { - width: 100%; - height: 100%; - object-fit: cover; - border-radius: 50%; - } - } - } - & .sidebar-add__newchat { - position: absolute; - right: 5%; - bottom: 3%; - width: 60px; - height: 60px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - background-color: #2c85becc; - cursor: pointer; - } - - & .sidebar-search__container { - padding-bottom: 20px; - } - & .sidebar-search__chat { - width: 90%; - align-self: center; - border: 1px solid #cfcfcf; - padding: 10px 10px; - background: transparent; - border-radius: 30px; - & [type="text"] { - height: 24px; - font-size: 15px; - padding-left: 25px; - } - &::placeholder { - color: #939393; - } - } -} - -@media (max-width: 1500px) { - .sidebar__container { - flex: 0 0 25%; - max-width: 25%; - } -} -@media (max-width: 1300px) { - .sidebar__container { - flex: 0 0 30%; - max-width: 30%; - } -} - -@media screen and (max-width: 992px) { - .sidebar__container { - flex: 0 0 35%; - max-width: 35%; - } -} -@media (max-width: 767px) { - .sidebar__container { - transform: translateX(-200%); - transition: 0.2s; - display: none; - &.show { - display: block; - flex: 0 0 100%; - transform: translateX(0); - - max-width: 100%; - } - } -} diff --git a/chat-widget/src/components/Home/Sidebar/Sidebar.tsx b/chat-widget/src/components/Home/Sidebar/Sidebar.tsx index 57446fe2..413d5b57 100644 --- a/chat-widget/src/components/Home/Sidebar/Sidebar.tsx +++ b/chat-widget/src/components/Home/Sidebar/Sidebar.tsx @@ -1,6 +1,5 @@ -import { useEffect, useState } from "react"; -import { BsPencil } from "react-icons/bs"; -// import { useNavigate } from "react-router"; +import { useEffect } from "react"; +import { useNavigate } from "react-router"; import { useChat } from "@connectycube/use-chat"; import { DropdownMenu, @@ -9,22 +8,24 @@ import { DropdownMenuTrigger, } from "@/components/shadcn-ui/dropdown-menu"; import { - Dialog, - DialogTrigger, - DialogContent, -} from "@/components/shadcn-ui/dialog"; -import NewChatDialog, { ChatType } from "./NewChat/NewChatDialog"; + Tabs, + TabsContent, + TabsList, + TabsTrigger, +} from "@/components/shadcn-ui/tabs"; import { currentUser, destroyUserSession } from "../../../connectycube"; -import "./Sidebar.scss"; -import ChatsList from "./ChatsList/ChatsList"; +import ChatsTab from "./Tabs/ChatsTab"; +import UsersTab from "./Tabs/UsersTab"; +import Avatar from "@/components/Shared/Avatar"; +import { cn } from "@/lib/utils"; -const Sidebar = () => { - // const navigate = useNavigate(); - const { isConnected, disconnect, selectedDialog, getDialogs } = useChat(); +export interface SideBarProps { + showUsersTab?: boolean; +} - const [searchTerm, setSearchTerm] = useState(""); - const [chatType, setChatType] = useState("private"); - const [newChatDialogOpen, setNewChatDialogOpen] = useState(false); +const SideBar: React.FC = ({ showUsersTab }) => { + const navigate = useNavigate(); + const { disconnect, selectedDialog, getDialogs } = useChat(); // retrieve chats useEffect(() => { @@ -34,28 +35,27 @@ const Sidebar = () => { const handleLogout = async () => { disconnect(); await destroyUserSession(); - // navigate("/login"); - }; - - const handleNewMessage = () => { - setChatType("private"); - }; - - const handleCreateGroupChat = () => { - setChatType("group"); + navigate("/login"); }; return ( -
-
+
+ {/* Header */} +
- - {currentUser()?.login} -
-
- {currentUser()?.login?.slice(0, 2)} -
-
+ +

{currentUser()?.login}

+
Logout @@ -63,54 +63,38 @@ const Sidebar = () => {
- { - setSearchTerm(e.target.value); - }} - className="sidebar-search__chat" - placeholder="Search..." - > - {isConnected ? ( -
- -
- ) : ( -
Loading...
- )} - - - - - - - - - New group - - - - - New message - - - - - - { - setNewChatDialogOpen(false); - }} - /> - - + {/* Tabs */} + + + + + {showUsersTab && ( + + + + )} + + {showUsersTab && ( + <> + + Chats + + + Users + + + )} + +
); }; -export default Sidebar; +export default SideBar; diff --git a/chat-widget/src/components/Home/Sidebar/Tabs/ChatsTab.tsx b/chat-widget/src/components/Home/Sidebar/Tabs/ChatsTab.tsx new file mode 100644 index 00000000..91d5821f --- /dev/null +++ b/chat-widget/src/components/Home/Sidebar/Tabs/ChatsTab.tsx @@ -0,0 +1,87 @@ +import { useChat } from "@connectycube/use-chat"; +import { + Dialog, + DialogTrigger, + DialogContent, +} from "@/components/shadcn-ui/dialog"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger, +} from "@/components/shadcn-ui/dropdown-menu"; +import { BsPencil } from "react-icons/bs"; +import NewChatDialog, { ChatType } from "../NewChat/NewChatDialog"; +import ChatsList from "../ChatsList"; +import { useState } from "react"; + +export interface ChatsTabProps {} + +const ChatsTab: React.FC = ({}) => { + const { isConnected } = useChat(); + + const [searchTerm, setSearchTerm] = useState(""); + const [chatType, setChatType] = useState("private"); + const [newChatDialogOpen, setNewChatDialogOpen] = useState(false); + + const handleNewMessage = () => { + setChatType("private"); + }; + + const handleCreateGroupChat = () => { + setChatType("group"); + }; + + return ( +
+ { + setSearchTerm(e.target.value); + }} + className="mx-5 border border-gray-300 p-2 rounded-full bg-transparent placeholder-gray-500" + placeholder="Search..." + /> + {isConnected ? ( +
+ +
+ ) : ( +
Loading...
+ )} + + + + + + + + + New group + + + + + New message + + + + + + { + setNewChatDialogOpen(false); + }} + /> + + +
+ ); +}; + +export default ChatsTab; diff --git a/chat-widget/src/components/Home/Sidebar/Tabs/UsersTab.tsx b/chat-widget/src/components/Home/Sidebar/Tabs/UsersTab.tsx new file mode 100644 index 00000000..8625c213 --- /dev/null +++ b/chat-widget/src/components/Home/Sidebar/Tabs/UsersTab.tsx @@ -0,0 +1,7 @@ +export interface UsersTabProps {} + +const UsersTab: React.FC = ({}) => { + return <>; +}; + +export default UsersTab; diff --git a/chat-widget/src/components/Login/Login.tsx b/chat-widget/src/components/Login.tsx similarity index 53% rename from chat-widget/src/components/Login/Login.tsx rename to chat-widget/src/components/Login.tsx index 843c567e..d00438d4 100644 --- a/chat-widget/src/components/Login/Login.tsx +++ b/chat-widget/src/components/Login.tsx @@ -2,10 +2,9 @@ import { NavLink } from "react-router-dom"; import { useNavigate } from "react-router"; import { useForm, SubmitHandler } from "react-hook-form"; import { useChat } from "@connectycube/use-chat"; -import Loader from "../Shared/Loader"; -import { createUserSession } from "../../connectycube"; -import logo from "../../assets/logo.png"; -import "./Login.scss"; +import Loader from "./Shared/Loader"; +import { createUserSession } from "./../connectycube"; +import logo from "./../assets/logo.png"; import { useState } from "react"; type FormValues = { @@ -47,17 +46,21 @@ const Login = () => { }; return ( -
-
- Logo +
+
+ Logo
- + { {...register("password", { required: "Password is required", })} + className="p-3 border border-gray-300 rounded-full bg-gray-200 text-black text-lg outline-none mb-2" /> - {errors.login && {errors.login.message}} + {errors.login && ( + {errors.login.message} + )} {errors.password && ( - {errors.password.message} + + {errors.password.message} + )} - + -
+
{isLoading && } -

Don't have an account?

- Sign up +

Don't have an account?

+ + Sign up +
); diff --git a/chat-widget/src/components/Login/Login.scss b/chat-widget/src/components/Login/Login.scss deleted file mode 100644 index 887b8a82..00000000 --- a/chat-widget/src/components/Login/Login.scss +++ /dev/null @@ -1,71 +0,0 @@ -@use "sass:color"; - -$offwhite: color.adjust(white, $lightness: -10%); -$darkblue: rgb(50, 50, 60); - -.login__container { - background: whitesmoke; - border: 1px solid black; - border-radius: 20px; - display: flex; - flex-direction: column; - align-items: center; - padding: 40px; - & .img__container { - max-width: 200px; - - & .logo__img { - width: 100%; - } - } - & .login__form { - display: flex; - flex-direction: column; - & .error { - color: red; - } - & input { - padding: 12px 20px; - border: 1px solid #eee; - border-radius: 25px; - background-color: #eee; - color: black; - font-size: 17px; - font-weight: 200; - outline: none; - } - & button { - border-radius: 25px; - border: 1px solid #282c34; - padding: 12px 30px; - color: color.adjust($darkblue, $lightness: -10%); - border: none; - background: transparent; - border: 1px solid black; - overflow: hidden; - box-shadow: none; - transition: 0.2s ease-in-out; - font-weight: 600; - margin-top: 15px; - margin-bottom: 20px; - cursor: pointer; - &:hover { - background-color: color.adjust($darkblue, $lightness: 10%); - color: white; - border: 1px solid whitesmoke; - } - } - & > * { - &:not(:last-child) { - margin-bottom: 10px; - } - } - } - & .signup__block { - & p { - text-align: left; - font-size: 14px; - padding: 5px 0px; - } - } -} diff --git a/chat-widget/src/components/Shared/Avatar.tsx b/chat-widget/src/components/Shared/Avatar.tsx index f18842e5..1fe0f71c 100644 --- a/chat-widget/src/components/Shared/Avatar.tsx +++ b/chat-widget/src/components/Shared/Avatar.tsx @@ -7,18 +7,19 @@ import { import ConnectyCube from "connectycube"; export interface AvatarProps { - imageUID: string; + imageUID?: string; name: string; + className?: string | undefined; } -const Avatar: React.FC = ({ imageUID, name }) => { +const Avatar: React.FC = ({ imageUID, name, className }) => { const photoUrl = imageUID ? ConnectyCube.storage.privateUrl(imageUID) : undefined; const initials = name.slice(0, 2).toUpperCase(); return ( - + {initials} diff --git a/chat-widget/src/components/Shared/Loader.scss b/chat-widget/src/components/Shared/Loader.scss deleted file mode 100644 index 6e917e2b..00000000 --- a/chat-widget/src/components/Shared/Loader.scss +++ /dev/null @@ -1,17 +0,0 @@ -.rotating-spinner { - animation: spin 1s linear infinite; - font-size: 2rem; - /* Adjust size as needed */ - color: #000; - /* Adjust color as needed */ -} - -@keyframes spin { - 0% { - transform: rotate(0deg); - } - - 100% { - transform: rotate(360deg); - } -} \ No newline at end of file diff --git a/chat-widget/src/components/Shared/Loader.tsx b/chat-widget/src/components/Shared/Loader.tsx index 14eb2991..b1c91f60 100644 --- a/chat-widget/src/components/Shared/Loader.tsx +++ b/chat-widget/src/components/Shared/Loader.tsx @@ -1,8 +1,19 @@ +import { cn } from "@/lib/utils"; import { FaSpinner } from "react-icons/fa"; -import "./Loader.scss"; -const Loader = () => { - return ; +export interface LoaderProps { + className?: string; +} + +const Loader: React.FC = ({ className }) => { + return ( + + ); }; export default Loader; diff --git a/chat-widget/src/components/SignUp/SignUp.tsx b/chat-widget/src/components/SignUp.tsx similarity index 57% rename from chat-widget/src/components/SignUp/SignUp.tsx rename to chat-widget/src/components/SignUp.tsx index 306f0140..9ffeeed6 100644 --- a/chat-widget/src/components/SignUp/SignUp.tsx +++ b/chat-widget/src/components/SignUp.tsx @@ -2,10 +2,9 @@ import { useNavigate } from "react-router"; import { NavLink } from "react-router-dom"; import { useForm, SubmitHandler } from "react-hook-form"; import { useState } from "react"; -import { userSignup } from "../../connectycube"; -import logo from "../../assets/logo.png"; -import Loader from "../Shared/Loader"; -import "./SignUp.scss"; +import { userSignup } from "./../connectycube"; +import logo from "./../assets/logo.png"; +import Loader from "./Shared/Loader"; type FormValues = { fullName: string; @@ -38,11 +37,14 @@ const SignUp = () => { }; return ( -
-
- Logo +
+
+ Logo
-
+ { message: "Full name cannot exceed 200 characters", }, })} + className="p-3 border border-gray-300 rounded-full bg-gray-200 text-black text-lg outline-none mb-2" /> { message: "Login cannot exceed 70 characters", }, })} + className="p-3 border border-gray-300 rounded-full bg-gray-200 text-black text-lg outline-none mb-2" /> { }, maxLength: { value: 40, - message: "Login cannot exceed 40 characters", + message: "Password cannot exceed 40 characters", }, })} + className="p-3 border border-gray-300 rounded-full bg-gray-200 text-black text-lg outline-none mb-2" /> {errors.fullName && ( - {errors.fullName.message} + + {errors.fullName.message} + + )} + {errors.login && ( + {errors.login.message} )} - {errors.login && {errors.login.message}} {errors.password && ( - {errors.password.message} + + {errors.password.message} + )} - +
-
+
{isLoading && } -

Already have an account?

- Sign in +

Already have an account?

+ + Sign in +
); diff --git a/chat-widget/src/components/SignUp/SignUp.scss b/chat-widget/src/components/SignUp/SignUp.scss deleted file mode 100644 index 71b77dd9..00000000 --- a/chat-widget/src/components/SignUp/SignUp.scss +++ /dev/null @@ -1,71 +0,0 @@ -@use "sass:color"; - -$offwhite: color.adjust(white, $lightness: -10%); -$darkblue: rgb(50, 50, 60); - -.signup__container { - background: whitesmoke; - border: 1px solid black; - border-radius: 20px; - display: flex; - flex-direction: column; - align-items: center; - padding: 40px; - & .img__container { - max-width: 200px; - - & .logo__img { - width: 100%; - } - } - & .signup__form { - display: flex; - flex-direction: column; - & .error { - color: red; - } - & input { - padding: 12px 20px; - border: 1px solid #eee; - border-radius: 25px; - background-color: #eee; - color: black; - font-size: 17px; - font-weight: 200; - outline: none; - } - & button { - border-radius: 25px; - border: 1px solid #282c34; - padding: 12px 30px; - color: color.adjust($darkblue, $lightness: -10%); - border: none; - background: transparent; - border: 1px solid black; - overflow: hidden; - box-shadow: none; - transition: 0.2s ease-in-out; - font-weight: 600; - margin-top: 15px; - margin-bottom: 20px; - cursor: pointer; - &:hover { - background-color: color.adjust($darkblue, $lightness: 10%); - color: white; - border: 1px solid whitesmoke; - } - } - & > * { - &:not(:last-child) { - margin-bottom: 10px; - } - } - } - & .login__block { - & p { - text-align: left; - font-size: 14px; - padding: 5px 0px; - } - } -} \ No newline at end of file diff --git a/chat-widget/src/components/shadcn-ui/alert-dialog.tsx b/chat-widget/src/components/shadcn-ui/alert-dialog.tsx index 6e5de68e..f943a2b0 100644 --- a/chat-widget/src/components/shadcn-ui/alert-dialog.tsx +++ b/chat-widget/src/components/shadcn-ui/alert-dialog.tsx @@ -1,8 +1,8 @@ import * as React from "react" import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog" -import { cn } from "../../lib/utils" -import { buttonVariants } from "./button" +import { cn } from "@/lib/utils" +import { buttonVariants } from "@/components/shadcn-ui/button" const AlertDialog = AlertDialogPrimitive.Root diff --git a/chat-widget/src/components/shadcn-ui/avatar.tsx b/chat-widget/src/components/shadcn-ui/avatar.tsx index 1b8d07f9..991f56ec 100644 --- a/chat-widget/src/components/shadcn-ui/avatar.tsx +++ b/chat-widget/src/components/shadcn-ui/avatar.tsx @@ -1,7 +1,7 @@ import * as React from "react" import * as AvatarPrimitive from "@radix-ui/react-avatar" -import { cn } from "../../lib/utils" +import { cn } from "@/lib/utils" const Avatar = React.forwardRef< React.ElementRef, diff --git a/chat-widget/src/components/shadcn-ui/button.tsx b/chat-widget/src/components/shadcn-ui/button.tsx index dcfee0c4..65d4fcd9 100644 --- a/chat-widget/src/components/shadcn-ui/button.tsx +++ b/chat-widget/src/components/shadcn-ui/button.tsx @@ -2,7 +2,7 @@ import * as React from "react" import { Slot } from "@radix-ui/react-slot" import { cva, type VariantProps } from "class-variance-authority" -import { cn } from "../../lib/utils" +import { cn } from "@/lib/utils" const buttonVariants = cva( "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", diff --git a/chat-widget/src/components/shadcn-ui/dialog.tsx b/chat-widget/src/components/shadcn-ui/dialog.tsx index 24c7b745..9dbeaa09 100644 --- a/chat-widget/src/components/shadcn-ui/dialog.tsx +++ b/chat-widget/src/components/shadcn-ui/dialog.tsx @@ -2,7 +2,7 @@ import * as React from "react" import * as DialogPrimitive from "@radix-ui/react-dialog" import { X } from "lucide-react" -import { cn } from "../../lib/utils" +import { cn } from "@/lib/utils" const Dialog = DialogPrimitive.Root diff --git a/chat-widget/src/components/shadcn-ui/dropdown-menu.tsx b/chat-widget/src/components/shadcn-ui/dropdown-menu.tsx index 049cb47f..9ff65682 100644 --- a/chat-widget/src/components/shadcn-ui/dropdown-menu.tsx +++ b/chat-widget/src/components/shadcn-ui/dropdown-menu.tsx @@ -2,7 +2,7 @@ import * as React from "react" import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu" import { Check, ChevronRight, Circle } from "lucide-react" -import { cn } from "../../lib/utils" +import { cn } from "@/lib/utils" const DropdownMenu = DropdownMenuPrimitive.Root diff --git a/chat-widget/src/components/shadcn-ui/input.tsx b/chat-widget/src/components/shadcn-ui/input.tsx index 6584da85..69b64fb2 100644 --- a/chat-widget/src/components/shadcn-ui/input.tsx +++ b/chat-widget/src/components/shadcn-ui/input.tsx @@ -1,6 +1,6 @@ import * as React from "react" -import { cn } from "../../lib/utils" +import { cn } from "@/lib/utils" const Input = React.forwardRef>( ({ className, type, ...props }, ref) => { diff --git a/chat-widget/src/components/shadcn-ui/label.tsx b/chat-widget/src/components/shadcn-ui/label.tsx index c23cb40a..683faa79 100644 --- a/chat-widget/src/components/shadcn-ui/label.tsx +++ b/chat-widget/src/components/shadcn-ui/label.tsx @@ -2,7 +2,7 @@ import * as React from "react" import * as LabelPrimitive from "@radix-ui/react-label" import { cva, type VariantProps } from "class-variance-authority" -import { cn } from "../../lib/utils" +import { cn } from "@/lib/utils" const labelVariants = cva( "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70" diff --git a/chat-widget/src/components/shadcn-ui/tabs.tsx b/chat-widget/src/components/shadcn-ui/tabs.tsx new file mode 100644 index 00000000..85d83bea --- /dev/null +++ b/chat-widget/src/components/shadcn-ui/tabs.tsx @@ -0,0 +1,53 @@ +import * as React from "react" +import * as TabsPrimitive from "@radix-ui/react-tabs" + +import { cn } from "@/lib/utils" + +const Tabs = TabsPrimitive.Root + +const TabsList = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +TabsList.displayName = TabsPrimitive.List.displayName + +const TabsTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +TabsTrigger.displayName = TabsPrimitive.Trigger.displayName + +const TabsContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +TabsContent.displayName = TabsPrimitive.Content.displayName + +export { Tabs, TabsList, TabsTrigger, TabsContent } diff --git a/chat-widget/src/connectycube.ts b/chat-widget/src/connectycube.ts index 62abc8a9..c4b76925 100644 --- a/chat-widget/src/connectycube.ts +++ b/chat-widget/src/connectycube.ts @@ -14,7 +14,7 @@ export const tryRestoreSession = (): boolean => { // currentUserId = parseInt(userIdString!); return true; - } + } return false; }; diff --git a/chat-widget/src/index.css b/chat-widget/src/index.css index 8abc77a7..b4fa4707 100644 --- a/chat-widget/src/index.css +++ b/chat-widget/src/index.css @@ -1,5 +1,6 @@ -@import "tailwindcss"; -@config "../tailwind.config.js"; +@tailwind base; +@tailwind components; +@tailwind utilities; @layer base { :root { @@ -106,6 +107,7 @@ button { font-size: 1em; font-weight: 500; font-family: inherit; + background-color: #1a1a1a; cursor: pointer; transition: border-color 0.25s; } diff --git a/chat-widget/src/main.tsx b/chat-widget/src/main.tsx index b40692d6..5b3d1077 100644 --- a/chat-widget/src/main.tsx +++ b/chat-widget/src/main.tsx @@ -3,19 +3,21 @@ import { createRoot } from 'react-dom/client' import './index.css' import App from './App.tsx' -const appConfig = { - debug: { - mode: 1, - }, - chat: { - streamManagement: { - enable: true, - }, - }, -} - createRoot(document.getElementById('root')!).render( - + , ) diff --git a/chat-widget/tailwind.config.js b/chat-widget/tailwind.config.js index cd0bc76e..940c0250 100644 --- a/chat-widget/tailwind.config.js +++ b/chat-widget/tailwind.config.js @@ -1,8 +1,7 @@ /** @type {import('tailwindcss').Config} */ module.exports = { darkMode: ["class"], - // content: ["./index.html", "src/**/*.{js,ts,jsx,tsx}"], - content: ["./src/**/*.{js,jsx,ts,tsx}", "./public/index.html"], + content: ["./index.html", "src/**/*.{js,ts,jsx,tsx}"], theme: { extend: { colors: { @@ -48,4 +47,4 @@ module.exports = { }, }, plugins: [require("tailwindcss-animate")], -}; \ No newline at end of file +}; diff --git a/chat-widget/vite.config.ts b/chat-widget/vite.config.ts index 52d61609..5fd269cc 100644 --- a/chat-widget/vite.config.ts +++ b/chat-widget/vite.config.ts @@ -1,5 +1,5 @@ import { defineConfig } from 'vite' -import tailwindcss from "@tailwindcss/vite"; +// import tailwindcss from "@tailwindcss/vite"; import react from '@vitejs/plugin-react' import { resolve } from "path"; import dts from "vite-plugin-dts"; @@ -15,11 +15,11 @@ const globals = { export default defineConfig(({ mode }) => { const dev = mode === 'development'; const plugins = dev ? [ - tailwindcss(), + // tailwindcss(), react(), nodePolyfills() ] : [ - tailwindcss(), + // tailwindcss(), react(), dts({ rollupTypes: true, From 100f3151fe5883f5e315949c02422471de9e6e25 Mon Sep 17 00:00:00 2001 From: Vlad Date: Tue, 28 Jan 2025 14:52:35 +0200 Subject: [PATCH 03/12] added app to test widget --- .gitignore | 2 +- __vite-react-ts-test-chat-widget/.gitignore | 24 + __vite-react-ts-test-chat-widget/README.md | 50 + .../eslint.config.js | 28 + __vite-react-ts-test-chat-widget/index.html | 13 + .../package-lock.json | 5195 +++++++++++++++++ __vite-react-ts-test-chat-widget/package.json | 30 + .../public/vite.svg | 1 + __vite-react-ts-test-chat-widget/src/App.css | 42 + __vite-react-ts-test-chat-widget/src/App.tsx | 42 + .../src/assets/react.svg | 1 + .../src/index.css | 68 + __vite-react-ts-test-chat-widget/src/main.tsx | 10 + .../src/vite-env.d.ts | 1 + .../tsconfig.app.json | 26 + .../tsconfig.json | 7 + .../tsconfig.node.json | 24 + .../vite.config.ts | 7 + 18 files changed, 5570 insertions(+), 1 deletion(-) create mode 100644 __vite-react-ts-test-chat-widget/.gitignore create mode 100644 __vite-react-ts-test-chat-widget/README.md create mode 100644 __vite-react-ts-test-chat-widget/eslint.config.js create mode 100644 __vite-react-ts-test-chat-widget/index.html create mode 100644 __vite-react-ts-test-chat-widget/package-lock.json create mode 100644 __vite-react-ts-test-chat-widget/package.json create mode 100644 __vite-react-ts-test-chat-widget/public/vite.svg create mode 100644 __vite-react-ts-test-chat-widget/src/App.css create mode 100644 __vite-react-ts-test-chat-widget/src/App.tsx create mode 100644 __vite-react-ts-test-chat-widget/src/assets/react.svg create mode 100644 __vite-react-ts-test-chat-widget/src/index.css create mode 100644 __vite-react-ts-test-chat-widget/src/main.tsx create mode 100644 __vite-react-ts-test-chat-widget/src/vite-env.d.ts create mode 100644 __vite-react-ts-test-chat-widget/tsconfig.app.json create mode 100644 __vite-react-ts-test-chat-widget/tsconfig.json create mode 100644 __vite-react-ts-test-chat-widget/tsconfig.node.json create mode 100644 __vite-react-ts-test-chat-widget/vite.config.ts diff --git a/.gitignore b/.gitignore index e8e0098e..e4213bc6 100644 --- a/.gitignore +++ b/.gitignore @@ -31,4 +31,4 @@ build .vscode #env -.env +.env \ No newline at end of file diff --git a/__vite-react-ts-test-chat-widget/.gitignore b/__vite-react-ts-test-chat-widget/.gitignore new file mode 100644 index 00000000..a547bf36 --- /dev/null +++ b/__vite-react-ts-test-chat-widget/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/__vite-react-ts-test-chat-widget/README.md b/__vite-react-ts-test-chat-widget/README.md new file mode 100644 index 00000000..74872fd4 --- /dev/null +++ b/__vite-react-ts-test-chat-widget/README.md @@ -0,0 +1,50 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: + +- Configure the top-level `parserOptions` property like this: + +```js +export default tseslint.config({ + languageOptions: { + // other options... + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + }, +}) +``` + +- Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked` +- Optionally add `...tseslint.configs.stylisticTypeChecked` +- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config: + +```js +// eslint.config.js +import react from 'eslint-plugin-react' + +export default tseslint.config({ + // Set the react version + settings: { react: { version: '18.3' } }, + plugins: { + // Add the react plugin + react, + }, + rules: { + // other rules... + // Enable its recommended rules + ...react.configs.recommended.rules, + ...react.configs['jsx-runtime'].rules, + }, +}) +``` diff --git a/__vite-react-ts-test-chat-widget/eslint.config.js b/__vite-react-ts-test-chat-widget/eslint.config.js new file mode 100644 index 00000000..092408a9 --- /dev/null +++ b/__vite-react-ts-test-chat-widget/eslint.config.js @@ -0,0 +1,28 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' +import tseslint from 'typescript-eslint' + +export default tseslint.config( + { ignores: ['dist'] }, + { + extends: [js.configs.recommended, ...tseslint.configs.recommended], + files: ['**/*.{ts,tsx}'], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + }, + plugins: { + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...reactHooks.configs.recommended.rules, + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, + }, +) diff --git a/__vite-react-ts-test-chat-widget/index.html b/__vite-react-ts-test-chat-widget/index.html new file mode 100644 index 00000000..e4b78eae --- /dev/null +++ b/__vite-react-ts-test-chat-widget/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + React + TS + + +
+ + + diff --git a/__vite-react-ts-test-chat-widget/package-lock.json b/__vite-react-ts-test-chat-widget/package-lock.json new file mode 100644 index 00000000..9304bb69 --- /dev/null +++ b/__vite-react-ts-test-chat-widget/package-lock.json @@ -0,0 +1,5195 @@ +{ + "name": "-vite-react-ts-test-chat-widget", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "-vite-react-ts-test-chat-widget", + "version": "0.0.0", + "dependencies": { + "@connectycube/chat-widget": "file:../chat-widget/connectycube-chat-widget-0.1.0.tgz", + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@eslint/js": "^9.17.0", + "@types/react": "^18.3.18", + "@types/react-dom": "^18.3.5", + "@vitejs/plugin-react": "^4.3.4", + "eslint": "^9.17.0", + "eslint-plugin-react-hooks": "^5.0.0", + "eslint-plugin-react-refresh": "^0.4.16", + "globals": "^15.14.0", + "typescript": "~5.6.2", + "typescript-eslint": "^8.18.2", + "vite": "^6.0.5" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz", + "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.7.tgz", + "integrity": "sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.7", + "@babel/parser": "^7.26.7", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.26.7", + "@babel/types": "^7.26.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", + "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.5", + "@babel/types": "^7.26.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.7.tgz", + "integrity": "sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.7.tgz", + "integrity": "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.7.tgz", + "integrity": "sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/parser": "^7.26.7", + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.7.tgz", + "integrity": "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@connectycube/chat-widget": { + "version": "0.1.0", + "resolved": "file:../chat-widget/connectycube-chat-widget-0.1.0.tgz", + "integrity": "sha512-TidqJH0vp9ywKprhrGdFskoZSkn3O7w+ZP+In3DRxn56TKxwW8rh+eQyBxaU6HL1P0DWDenRFKre13wj3m+F/Q==", + "dependencies": { + "@connectycube/use-chat": "file:../../use-chat", + "@fingerprintjs/fingerprintjs": "^4.5.1", + "@radix-ui/react-alert-dialog": "^1.1.5", + "@radix-ui/react-avatar": "^1.1.2", + "@radix-ui/react-dialog": "^1.1.5", + "@radix-ui/react-dropdown-menu": "^2.1.5", + "@radix-ui/react-label": "^2.1.1", + "@radix-ui/react-slot": "^1.1.1", + "@radix-ui/react-tabs": "^1.1.2", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "connectycube": "4.0.2", + "lucide-react": "^0.474.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-hook-form": "^7.54.2", + "react-icons": "^5.4.0", + "react-intersection-observer": "^9.15.1", + "react-router": "^7.1.3", + "react-router-dom": "^7.1.3", + "react-scroll": "^1.9.0" + } + }, + "node_modules/@connectycube/use-chat": { + "resolved": "node_modules/use-chat", + "link": true + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", + "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.5", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", + "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.19.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.19.0.tgz", + "integrity": "sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", + "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", + "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.10.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@fingerprintjs/fingerprintjs": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@fingerprintjs/fingerprintjs/-/fingerprintjs-4.5.1.tgz", + "integrity": "sha512-hKJaRoLHNeUUPhb+Md3pTlY/Js2YR4aXjroaDHpxrjoM8kGnEFyZVZxXo6l3gRyKnQN52Uoqsycd3M73eCdMzw==", + "license": "BUSL-1.1", + "dependencies": { + "tslib": "^2.4.1" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz", + "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", + "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", + "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", + "license": "MIT" + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.1.tgz", + "integrity": "sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-alert-dialog": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.5.tgz", + "integrity": "sha512-1Y2sI17QzSZP58RjGtrklfSGIf3AF7U/HkD3aAcAnhOUJrm7+7GG1wRDFaUlSe0nW5B/t4mYd/+7RNbP2Wexug==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dialog": "1.1.5", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.1.tgz", + "integrity": "sha512-NaVpZfmv8SKeZbn4ijN2V3jlHA9ngBG16VnIIm22nUR0Yk8KUALyBxT3KYEUnNuch9sTE8UTsS3whzBgKOL30w==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-avatar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.2.tgz", + "integrity": "sha512-GaC7bXQZ5VgZvVvsJ5mu/AEbjYLnhhkoidOboC50Z6FFlLA03wG2ianUoH+zgDQ31/9gCF59bE4+2bBgTyMiig==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.1.tgz", + "integrity": "sha512-LwT3pSho9Dljg+wY2KN2mrrh6y3qELfftINERIzBUO9e0N+t0oMTyn3k9iv+ZqgrwGkRnLpNJrsMv9BZlt2yuA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.1.tgz", + "integrity": "sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", + "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.5.tgz", + "integrity": "sha512-LaO3e5h/NOEL4OfXjxD43k9Dx+vn+8n+PCFt6uhX/BADFflllyv3WJG6rgvvSVBxpTch938Qq/LGc2MMxipXPw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.4", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", + "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.4.tgz", + "integrity": "sha512-XDUI0IVYVSwjMXxM6P4Dfti7AH+Y4oS/TB+sglZ/EXc7cqLwGAmp1NlMrcUjj7ks6R5WTZuWKv44FBbLpwU3sA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.5.tgz", + "integrity": "sha512-50ZmEFL1kOuLalPKHrLWvPFMons2fGx9TqQCWlPwDVpbAnaUJ1g4XNcKqFNMQymYU0kKWR4MDDi+9vUQBGFgcQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-menu": "2.1.5", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz", + "integrity": "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.1.tgz", + "integrity": "sha512-01omzJAYRxXdG2/he/+xy+c8a8gCydoQ1yOxnWNcRhrrBW5W+RQJ22EK1SaO8tb3WoUsuEw7mJjBozPzihDFjA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", + "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.1.tgz", + "integrity": "sha512-UUw5E4e/2+4kFMH7+YxORXGWggtY6sM8WIwh5RZchhLuUg2H1hc98Py+pr8HMz6rdaYrK2t296ZEjYLOCO5uUw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.5.tgz", + "integrity": "sha512-uH+3w5heoMJtqVCgYOtYVMECk1TOrkUn0OG0p5MqXC0W2ppcuVeESbou8PTHoqAjbdTEK19AGXBWcEtR5WpEQg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-collection": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.4", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.1", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-roving-focus": "1.1.1", + "@radix-ui/react-slot": "1.1.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.1.tgz", + "integrity": "sha512-3kn5Me69L+jv82EKRuQCXdYyf1DqHwD2U/sxoNgBGCB7K9TRc3bQamQ+5EPM9EvyPdli0W41sROd+ZU1dTCztw==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-rect": "1.1.0", + "@radix-ui/react-use-size": "1.1.0", + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.3.tgz", + "integrity": "sha512-NciRqhXnGojhT93RPyDaMPfLH3ZSl4jjIFbZQ1b/vxvZEdHsBZ49wP9w8L3HzUQwep01LcWtkUvm0OVB5JAHTw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.2.tgz", + "integrity": "sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.1.tgz", + "integrity": "sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.1.tgz", + "integrity": "sha512-QE1RoxPGJ/Nm8Qmk0PxP8ojmoaS67i0s7hVssS7KuI2FQoc/uzVlZsqKfQvxPE6D8hICCPHJ4D88zNhT3OOmkw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-collection": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.1.tgz", + "integrity": "sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tabs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.2.tgz", + "integrity": "sha512-9u/tQJMcC2aGq7KXpGivMm1mgq7oRJKXphDwdypPd/j21j/2znamPU8WkXgnhUaTrSFNIt8XhOyCAupg8/GbwQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-roving-focus": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", + "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", + "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", + "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", + "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz", + "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz", + "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz", + "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==", + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.32.1.tgz", + "integrity": "sha512-/pqA4DmqyCm8u5YIDzIdlLcEmuvxb0v8fZdFhVMszSpDTgbQKdw3/mB3eMUHIbubtJ6F9j+LtmyCnHTEqIHyzA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.32.1.tgz", + "integrity": "sha512-If3PDskT77q7zgqVqYuj7WG3WC08G1kwXGVFi9Jr8nY6eHucREHkfpX79c0ACAjLj3QIWKPJR7w4i+f5EdLH5Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.32.1.tgz", + "integrity": "sha512-zCpKHioQ9KgZToFp5Wvz6zaWbMzYQ2LJHQ+QixDKq52KKrF65ueu6Af4hLlLWHjX1Wf/0G5kSJM9PySW9IrvHA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.32.1.tgz", + "integrity": "sha512-sFvF+t2+TyUo/ZQqUcifrJIgznx58oFZbdHS9TvHq3xhPVL9nOp+yZ6LKrO9GWTP+6DbFtoyLDbjTpR62Mbr3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.32.1.tgz", + "integrity": "sha512-NbOa+7InvMWRcY9RG+B6kKIMD/FsnQPH0MWUvDlQB1iXnF/UcKSudCXZtv4lW+C276g3w5AxPbfry5rSYvyeYA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.32.1.tgz", + "integrity": "sha512-JRBRmwvHPXR881j2xjry8HZ86wIPK2CcDw0EXchE1UgU0ubWp9nvlT7cZYKc6bkypBt745b4bglf3+xJ7hXWWw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.32.1.tgz", + "integrity": "sha512-PKvszb+9o/vVdUzCCjL0sKHukEQV39tD3fepXxYrHE3sTKrRdCydI7uldRLbjLmDA3TFDmh418XH19NOsDRH8g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.32.1.tgz", + "integrity": "sha512-9WHEMV6Y89eL606ReYowXuGF1Yb2vwfKWKdD1A5h+OYnPZSJvxbEjxTRKPgi7tkP2DSnW0YLab1ooy+i/FQp/Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.32.1.tgz", + "integrity": "sha512-tZWc9iEt5fGJ1CL2LRPw8OttkCBDs+D8D3oEM8mH8S1ICZCtFJhD7DZ3XMGM8kpqHvhGUTvNUYVDnmkj4BDXnw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.32.1.tgz", + "integrity": "sha512-FTYc2YoTWUsBz5GTTgGkRYYJ5NGJIi/rCY4oK/I8aKowx1ToXeoVVbIE4LGAjsauvlhjfl0MYacxClLld1VrOw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.32.1.tgz", + "integrity": "sha512-F51qLdOtpS6P1zJVRzYM0v6MrBNypyPEN1GfMiz0gPu9jN8ScGaEFIZQwteSsGKg799oR5EaP7+B2jHgL+d+Kw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.32.1.tgz", + "integrity": "sha512-wO0WkfSppfX4YFm5KhdCCpnpGbtgQNj/tgvYzrVYFKDpven8w2N6Gg5nB6w+wAMO3AIfSTWeTjfVe+uZ23zAlg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.32.1.tgz", + "integrity": "sha512-iWswS9cIXfJO1MFYtI/4jjlrGb/V58oMu4dYJIKnR5UIwbkzR0PJ09O0PDZT0oJ3LYWXBSWahNf/Mjo6i1E5/g==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.32.1.tgz", + "integrity": "sha512-RKt8NI9tebzmEthMnfVgG3i/XeECkMPS+ibVZjZ6mNekpbbUmkNWuIN2yHsb/mBPyZke4nlI4YqIdFPgKuoyQQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.32.1.tgz", + "integrity": "sha512-WQFLZ9c42ECqEjwg/GHHsouij3pzLXkFdz0UxHa/0OM12LzvX7DzedlY0SIEly2v18YZLRhCRoHZDxbBSWoGYg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.32.1.tgz", + "integrity": "sha512-BLoiyHDOWoS3uccNSADMza6V6vCNiphi94tQlVIL5de+r6r/CCQuNnerf+1g2mnk2b6edp5dk0nhdZ7aEjOBsA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.32.1.tgz", + "integrity": "sha512-w2l3UnlgYTNNU+Z6wOR8YdaioqfEnwPjIsJ66KxKAf0p+AuL2FHeTX6qvM+p/Ue3XPBVNyVSfCrfZiQh7vZHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.32.1.tgz", + "integrity": "sha512-Am9H+TGLomPGkBnaPWie4F3x+yQ2rr4Bk2jpwy+iV+Gel9jLAu/KqT8k3X4jxFPW6Zf8OMnehyutsd+eHoq1WQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.32.1.tgz", + "integrity": "sha512-ar80GhdZb4DgmW3myIS9nRFYcpJRSME8iqWgzH2i44u+IdrzmiXVxeFnExQ5v4JYUSpg94bWjevMG8JHf1Da5Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/content-disposition": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.8.tgz", + "integrity": "sha512-QVSSvno3dE0MgO76pJhmv4Qyi/j0Yk9pBp0Y7TJ2Tlj+KCgJWY6qX7nnxCOLkZ3VYRSIk1WTxCvwUSdx6CCLdg==", + "license": "MIT" + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "license": "MIT" + }, + "node_modules/@types/cookies": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.9.0.tgz", + "integrity": "sha512-40Zk8qR147RABiQ7NQnBzWzDcjKzNrntB5BAmeGCb2p/MIyOE+4BVvc17wumsUqUw00bJYqoXFHYygQnEFh4/Q==", + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/express": "*", + "@types/keygrip": "*", + "@types/node": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/events": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.3.tgz", + "integrity": "sha512-trOc4AAUThEz9hapPtSd7wf5tiQKvTtu5b371UxXdTuqzIh0ArcRspRP0i0Viu+LXstIQ1z96t1nsPxT9ol01g==", + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.0.tgz", + "integrity": "sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==", + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^5.0.0", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", + "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/form-data": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.5.2.tgz", + "integrity": "sha512-tfmcyHn1Pp9YHAO5r40+UuZUPAZbUEgqTel3EuEKpmF9hPkXgR4l41853raliXnb4gwyPNoQOfvgGGlHN5WSog==", + "deprecated": "This is a stub types definition. form-data provides its own type definitions, so you do not need this installed.", + "license": "MIT", + "dependencies": { + "form-data": "*" + } + }, + "node_modules/@types/http-assert": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.6.tgz", + "integrity": "sha512-TTEwmtjgVbYAzZYWyeHPrrtWnfVkm8tQkP8P21uQifPgMRgjrow3XDEYqucuC8SKZJT7pUnhU/JymvjggxO9vw==", + "license": "MIT" + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/keygrip": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.6.tgz", + "integrity": "sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==", + "license": "MIT" + }, + "node_modules/@types/koa": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.15.0.tgz", + "integrity": "sha512-7QFsywoE5URbuVnG3loe03QXuGajrnotr3gQkXcEBShORai23MePfFYdhz90FEtBBpkyIYQbVD+evKtloCgX3g==", + "license": "MIT", + "dependencies": { + "@types/accepts": "*", + "@types/content-disposition": "*", + "@types/cookies": "*", + "@types/http-assert": "*", + "@types/http-errors": "*", + "@types/keygrip": "*", + "@types/koa-compose": "*", + "@types/node": "*" + } + }, + "node_modules/@types/koa-compose": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.8.tgz", + "integrity": "sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA==", + "license": "MIT", + "dependencies": { + "@types/koa": "*" + } + }, + "node_modules/@types/ltx": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/ltx/-/ltx-3.1.0.tgz", + "integrity": "sha512-fkYKRqE7oAtqlImS4JvRP7PqFHJVCv7Dn7k8MOhz6u/MjnC9JOCbLdOb7Q0KfSYDQgtPJecH10A23UfuzZSsQA==", + "license": "MIT", + "dependencies": { + "@types/events": "*" + } + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.12.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.12.0.tgz", + "integrity": "sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/node-fetch": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "form-data": "^4.0.0" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.9.18", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", + "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==", + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", + "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", + "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", + "devOptional": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, + "node_modules/@types/saslmechanisms": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@types/saslmechanisms/-/saslmechanisms-0.1.3.tgz", + "integrity": "sha512-HUgi9jPWUy3T1kafWyA6EImXytjXVu+xupRaYgEQhP0H8wb3W02i0zgmJM0BVsGSvYfuAL/oD/TE5h3BQ/7JVg==", + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/xmpp__client": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@types/xmpp__client/-/xmpp__client-0.13.3.tgz", + "integrity": "sha512-YiKUD9ex+4lrO3S6GbMkw7DKcJnfgj34GNCvKymxfgFMq66ZR5Z8PV+sdIYsgjJw8c7MjmhUAX2iTW5ouR8rrA==", + "license": "MIT", + "dependencies": { + "@types/koa-compose": "*", + "@types/xmpp__client-core": "*", + "@types/xmpp__connection": "*", + "@types/xmpp__iq": "*", + "@types/xmpp__middleware": "*", + "@types/xmpp__reconnect": "*", + "@types/xmpp__resource-binding": "*", + "@types/xmpp__sasl": "*", + "@types/xmpp__stream-features": "*", + "@types/xmpp__stream-management": "*" + } + }, + "node_modules/@types/xmpp__client-core": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@types/xmpp__client-core/-/xmpp__client-core-0.13.3.tgz", + "integrity": "sha512-ZZAQeZMG05wQjRNXePUPIP1/xhCiptoNSPATtZjM6310IHU8F5seb+5Ii7EUmKa/ew61KjPe1+TztEFPcqtQcQ==", + "license": "MIT", + "dependencies": { + "@types/xmpp__connection": "*", + "@types/xmpp__jid": "*", + "@types/xmpp__xml": "*" + } + }, + "node_modules/@types/xmpp__connection": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@types/xmpp__connection/-/xmpp__connection-0.13.3.tgz", + "integrity": "sha512-WqW5VEyARmUzDiX++yFQbtPCFee7uWGcd5wcdMQXkl7SMKTFioxPbPbKVe8eOFsnUhq+6uxLrkUJqVlCumelCQ==", + "license": "MIT", + "dependencies": { + "@types/xmpp__error": "*", + "@types/xmpp__events": "*", + "@types/xmpp__jid": "*", + "@types/xmpp__xml": "*" + } + }, + "node_modules/@types/xmpp__error": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@types/xmpp__error/-/xmpp__error-0.13.3.tgz", + "integrity": "sha512-N7/PUc4+Q5aRDJ4Ipm9NbtKiCNHR763Z+9CdPQpc/PElwblsy62gJEmBgKj8d4yotMn9pwNMEg9NHcFh2mTBZQ==", + "license": "MIT", + "dependencies": { + "@types/xmpp__xml": "*" + } + }, + "node_modules/@types/xmpp__events": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@types/xmpp__events/-/xmpp__events-0.13.3.tgz", + "integrity": "sha512-GW844fKApo5wRg2MUlceETZFAdKO2zqElAQJZaR41oqDn5uv0BfnFUAbJ1MCGeyO0Ul0pyNw3m5/mzskiM/u2A==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/xmpp__iq": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/@types/xmpp__iq/-/xmpp__iq-0.13.4.tgz", + "integrity": "sha512-bMZVX6EWdrEOLud5gW8ducc0DGDH9JSQYEXMIeQYEmE4VjFiWDAo30dhVyeSqYwM4K6GaS9rnOdHvysMUE8iKA==", + "license": "MIT", + "dependencies": { + "@types/koa-compose": "*", + "@types/xmpp__events": "*", + "@types/xmpp__middleware": "*", + "@types/xmpp__xml": "*" + } + }, + "node_modules/@types/xmpp__jid": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/xmpp__jid/-/xmpp__jid-1.3.5.tgz", + "integrity": "sha512-7nbg+XOOswcLAqjU6f5qBzdmoMw8JvcpPP36O+DACZyPAi88LGw8ulmy05F7jpvjXlGAFGrFvnmF5d9OrU+LfQ==", + "license": "MIT" + }, + "node_modules/@types/xmpp__middleware": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@types/xmpp__middleware/-/xmpp__middleware-0.13.3.tgz", + "integrity": "sha512-qzqsJ1ZgkW9zezkkWGcMfvAx0XurYhMBr5E3txYCBi2OX+ATWv1eFFz1fxFWeYoEhtZSqr6BU9BHzd5BQW0RIg==", + "license": "MIT", + "dependencies": { + "@types/koa-compose": "*", + "@types/xmpp__connection": "*", + "@types/xmpp__error": "*", + "@types/xmpp__jid": "*", + "@types/xmpp__xml": "*" + } + }, + "node_modules/@types/xmpp__reconnect": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@types/xmpp__reconnect/-/xmpp__reconnect-0.13.3.tgz", + "integrity": "sha512-PaOmUCuwMKXHsIN02uN23GErOeBzo6MwZYDdbH5S3GCFo7eLVPH9xPeXNW74/be3Dp6+CzDfHhr46efNSG6kww==", + "license": "MIT", + "dependencies": { + "@types/xmpp__connection": "*", + "@types/xmpp__events": "*" + } + }, + "node_modules/@types/xmpp__resource-binding": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@types/xmpp__resource-binding/-/xmpp__resource-binding-0.13.3.tgz", + "integrity": "sha512-05Tta9Cj0anOXU8imZtBLDt4YnmVhxiMcSDXNZfqFi0oBP03cettJvTKudD2azimRsuEF94jIMmJ8z7dat0V4w==", + "license": "MIT", + "dependencies": { + "@types/xmpp__iq": "*", + "@types/xmpp__middleware": "*", + "@types/xmpp__stream-features": "*", + "@types/xmpp__xml": "*" + } + }, + "node_modules/@types/xmpp__sasl": { + "version": "0.13.6", + "resolved": "https://registry.npmjs.org/@types/xmpp__sasl/-/xmpp__sasl-0.13.6.tgz", + "integrity": "sha512-2sXw7oewQ7U2a+NAKeYrIHXsLnrl5oqHi/vzr2Fl/5GmEFSWQEG2g3wqnhs16k2VxvslOY9rY9tY2uKd8Iz77g==", + "license": "MIT", + "dependencies": { + "@types/saslmechanisms": "*", + "@types/xmpp__error": "*", + "@types/xmpp__middleware": "*", + "@types/xmpp__stream-features": "*" + } + }, + "node_modules/@types/xmpp__stream-features": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@types/xmpp__stream-features/-/xmpp__stream-features-0.13.3.tgz", + "integrity": "sha512-PgylX899T/yFQnPbBciMbdhXuM4XMLhThzwYzWPnlzo7hms88nSkJZrRYiemlSUqZ1z8VzwcsHTa2/CduUeF5w==", + "license": "MIT", + "dependencies": { + "@types/koa": "*", + "@types/koa-compose": "*", + "@types/xmpp__middleware": "*", + "@types/xmpp__xml": "*" + } + }, + "node_modules/@types/xmpp__stream-management": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@types/xmpp__stream-management/-/xmpp__stream-management-0.13.3.tgz", + "integrity": "sha512-KMcRL30R4WzZKghsPbbOUrEMbh8PWsGo2e6IiAK3PzUDWvSA7z+MQl0K9BVI2DHYhqCFI+qxKIYSoahdagR7lw==", + "license": "MIT", + "dependencies": { + "@types/xmpp__middleware": "*", + "@types/xmpp__stream-features": "*" + } + }, + "node_modules/@types/xmpp__xml": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/@types/xmpp__xml/-/xmpp__xml-0.13.4.tgz", + "integrity": "sha512-j5cRnNJPvLhjCDpKZC+2g0HdMPqmA2xD417P1JKxEZlhQkfKrsCeBi20dsUHaVZJ/NFChkrr/bqW5bE9Oq5luw==", + "license": "MIT", + "dependencies": { + "@types/ltx": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.22.0.tgz", + "integrity": "sha512-4Uta6REnz/xEJMvwf72wdUnC3rr4jAQf5jnTkeRQ9b6soxLxhDEbS/pfMPoJLDfFPNVRdryqWUIV/2GZzDJFZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.22.0", + "@typescript-eslint/type-utils": "8.22.0", + "@typescript-eslint/utils": "8.22.0", + "@typescript-eslint/visitor-keys": "8.22.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.22.0.tgz", + "integrity": "sha512-MqtmbdNEdoNxTPzpWiWnqNac54h8JDAmkWtJExBVVnSrSmi9z+sZUt0LfKqk9rjqmKOIeRhO4fHHJ1nQIjduIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.22.0", + "@typescript-eslint/types": "8.22.0", + "@typescript-eslint/typescript-estree": "8.22.0", + "@typescript-eslint/visitor-keys": "8.22.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.22.0.tgz", + "integrity": "sha512-/lwVV0UYgkj7wPSw0o8URy6YI64QmcOdwHuGuxWIYznO6d45ER0wXUbksr9pYdViAofpUCNJx/tAzNukgvaaiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.22.0", + "@typescript-eslint/visitor-keys": "8.22.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.22.0.tgz", + "integrity": "sha512-NzE3aB62fDEaGjaAYZE4LH7I1MUwHooQ98Byq0G0y3kkibPJQIXVUspzlFOmOfHhiDLwKzMlWxaNv+/qcZurJA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.22.0", + "@typescript-eslint/utils": "8.22.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.22.0.tgz", + "integrity": "sha512-0S4M4baNzp612zwpD4YOieP3VowOARgK2EkN/GBn95hpyF8E2fbMT55sRHWBq+Huaqk3b3XK+rxxlM8sPgGM6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.22.0.tgz", + "integrity": "sha512-SJX99NAS2ugGOzpyhMza/tX+zDwjvwAtQFLsBo3GQxiGcvaKlqGBkmZ+Y1IdiSi9h4Q0Lr5ey+Cp9CGWNY/F/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.22.0", + "@typescript-eslint/visitor-keys": "8.22.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.22.0.tgz", + "integrity": "sha512-T8oc1MbF8L+Bk2msAvCUzjxVB2Z2f+vXYfcucE2wOmYs7ZUwco5Ep0fYZw8quNwOiw9K8GYVL+Kgc2pETNTLOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.22.0", + "@typescript-eslint/types": "8.22.0", + "@typescript-eslint/typescript-estree": "8.22.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.22.0.tgz", + "integrity": "sha512-AWpYAXnUgvLNabGTy3uBylkgZoosva/miNd1I8Bz3SjotmQPbVqhO4Cczo8AsZ44XVErEBPr/CRSgaj8sG7g0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.22.0", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" + } + }, + "node_modules/@xmpp/base64": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@xmpp/base64/-/base64-0.13.2.tgz", + "integrity": "sha512-RDEq66sW/jqj2HZKoRvnIvlRJMRLEGa0EGyJ0yPCF1+KijmTqrWr1PxZAol850QizXlqpvo8MS8OCFWMryX7RQ==", + "license": "ISC", + "dependencies": { + "base-64": "^1.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/client-core": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@xmpp/client-core/-/client-core-0.13.3.tgz", + "integrity": "sha512-pOtCozET4BxJZU7aWykT+PFBGaxT/Sl8mC0E3X6QgL7/2Vo39lz2KIhkcvtSwMC8myuaB+klOBrifuKLo3IajA==", + "license": "ISC", + "dependencies": { + "@xmpp/connection": "^0.13.3", + "@xmpp/jid": "^0.13.2", + "@xmpp/xml": "^0.13.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/connection": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@xmpp/connection/-/connection-0.13.3.tgz", + "integrity": "sha512-EM6/wLUJ6MFJl7Kb+qwQut1gLDp7G107KTOB1W/GljGMd7ydD2Bn0BJt2AAx8EGPve9G2jjhV3+jJmu7KwK4rQ==", + "license": "ISC", + "dependencies": { + "@xmpp/error": "^0.13.2", + "@xmpp/events": "^0.13.2", + "@xmpp/jid": "^0.13.2", + "@xmpp/xml": "^0.13.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/error": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@xmpp/error/-/error-0.13.2.tgz", + "integrity": "sha512-bjbxwF8s6jfQNI+ZHV9Jwcb7K2kBeTlD60QHjMJlxIUrjTH1ZsJoDQh9tMdq1mBu/h/bm2SX7yZUqUb1wY6gMw==", + "license": "ISC", + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/events": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@xmpp/events/-/events-0.13.2.tgz", + "integrity": "sha512-fXaAMChvLnP9vEQIatFKWoAm/F9U122hShfRfVw4xS6pympThygWVPIuRuAznMt5tOyTVFWBuPge6hgGousT0g==", + "license": "ISC", + "dependencies": { + "events": "^3.3.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/id": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@xmpp/id/-/id-0.13.2.tgz", + "integrity": "sha512-LhSzcaPvjddvL+u/xNAuu6tNtxWR7HZPTyMUck8tyYnbwsXaJQ6sDoS8AEQE8o7iW5E31xJUTOktYd/s6HMo3w==", + "license": "ISC", + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/iq": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@xmpp/iq/-/iq-0.13.3.tgz", + "integrity": "sha512-sGeyGF4OnYGTZw3PhQaYLYlE8+LRZfYijT/ESGqhY2ed9gm0U4TCR8C8s5oT7Puu6S6smdHehcvYCrcFEeQyBw==", + "license": "ISC", + "dependencies": { + "@xmpp/events": "^0.13.2", + "@xmpp/id": "^0.13.2", + "@xmpp/middleware": "^0.13.3", + "@xmpp/xml": "^0.13.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/jid": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@xmpp/jid/-/jid-0.13.2.tgz", + "integrity": "sha512-OuYrxiNdlmXgMFPJqnbZSKe/bdn1wxtc1ASEadrizI9h6T1y7tAEl5YpXFWYb+fdAL9vRD+bGCxrDUrm1er/LQ==", + "license": "ISC", + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/middleware": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@xmpp/middleware/-/middleware-0.13.3.tgz", + "integrity": "sha512-zZTsqLaHnfTqMBDyZh01HLYUgcHLmbalVfC32CsEcjPG5/bIete9sOUVPaiGH1cicMgi3O7WZK512RvQFcBbwA==", + "license": "ISC", + "dependencies": { + "@xmpp/error": "^0.13.2", + "@xmpp/jid": "^0.13.2", + "@xmpp/xml": "^0.13.3", + "koa-compose": "^4.1.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/reconnect": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@xmpp/reconnect/-/reconnect-0.13.2.tgz", + "integrity": "sha512-FWCC+dzi23N7H99PYPqWZa7oRPNp9G7yYzMZwOpeiVporbNy+op3yUbCszo3YA3XVEsuLRQ1aQJ8evLo+GD5ow==", + "license": "ISC", + "dependencies": { + "@xmpp/events": "^0.13.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/resolve": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@xmpp/resolve/-/resolve-0.13.3.tgz", + "integrity": "sha512-HL86p0a2CI0ILFYUR8vPR77ZXwxQ0xXLLRnyb88TjQ/eNbYsc1gmdXjELE0xRCfQblXZsETvUwWv5RofTYAgrQ==", + "license": "ISC", + "dependencies": { + "@xmpp/events": "^0.13.2", + "@xmpp/xml": "^0.13.3", + "node-fetch": "^3.3.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/resolve/node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/@xmpp/resource-binding": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@xmpp/resource-binding/-/resource-binding-0.13.3.tgz", + "integrity": "sha512-cph/8vJ5sRHVg7Njx8rR27xAVmKWACSx95jlOw7LmUSTRSxZDw2wHsqie76HxUD5fPszOsTh/Ph7Fw1532aRUQ==", + "license": "ISC", + "dependencies": { + "@xmpp/xml": "^0.13.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/sasl": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/@xmpp/sasl/-/sasl-0.13.4.tgz", + "integrity": "sha512-craijUkSSrYB43YgqHRigVe8JYFLTBdC1eiIlQRAhN37QMTCb0zz3AAgcoxYccrZDStHXNC7WMi149A4AKp6RA==", + "license": "ISC", + "dependencies": { + "@xmpp/base64": "^0.13.2", + "@xmpp/error": "^0.13.2", + "@xmpp/xml": "^0.13.3", + "saslmechanisms": "^0.1.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/sasl-anonymous": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@xmpp/sasl-anonymous/-/sasl-anonymous-0.13.2.tgz", + "integrity": "sha512-0fI9+A+Vptcyv8+o8J2veRnodtnKahJDy5fappIZbmXLrv4JcrVBChQDWULyta0Hez9M3XWoIyuhp4pyz0IU/Q==", + "license": "ISC", + "dependencies": { + "sasl-anonymous": "^0.1.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/sasl-plain": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@xmpp/sasl-plain/-/sasl-plain-0.13.2.tgz", + "integrity": "sha512-zwS/q+Vd4YsLdnZjmCuS1JCacWWg2Vd3ecqpBmIV3S394s1Mgiwdnd2bVRen5S0kl/de+VzHg/DRLuYvC94SUg==", + "license": "ISC", + "dependencies": { + "sasl-plain": "^0.1.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/session-establishment": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@xmpp/session-establishment/-/session-establishment-0.13.3.tgz", + "integrity": "sha512-dQhH7aIzsqyMRsjMIuER4UBCxQgvDUHjkmNoeIbUZX5bYJuGeET90tZ4eNAq6yXnpSGJiKoXVfVBxNoiXovfgA==", + "license": "ISC", + "dependencies": { + "@xmpp/xml": "^0.13.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/stream-features": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@xmpp/stream-features/-/stream-features-0.13.2.tgz", + "integrity": "sha512-eyxFEEDSfNvG4ybvAYTYkjaUcaytu8sAqT8DfWwrWzCkPgfRzpexsxb9yhe8hAVrvPLavOyr+zh4raUQf4Ogkg==", + "license": "ISC", + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/websocket": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@xmpp/websocket/-/websocket-0.13.3.tgz", + "integrity": "sha512-RXZJFecaAlotqhAdNohO0SoP8Rx3eJrl18c78gxybAhNaCexFbuMJIvSj91L/b8bOErJtFMTwreWeMfzP6Ijiw==", + "license": "ISC", + "dependencies": { + "@xmpp/connection": "^0.13.3", + "@xmpp/xml": "^0.13.3", + "ws": "^8.18.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@xmpp/xml": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@xmpp/xml/-/xml-0.13.3.tgz", + "integrity": "sha512-lYXBg/VlpUeavGgQE8LADfZUzMFUnWFVYgvKUcx97AqjiEJUuo40ijdRcGmkAVtTg0RBkml5WB+Mo+JqynMk7Q==", + "license": "ISC", + "dependencies": { + "ltx": "^3.1.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/base-64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz", + "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==", + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001695", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz", + "integrity": "sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "license": "Apache-2.0", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/connectycube": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/connectycube/-/connectycube-4.0.2.tgz", + "integrity": "sha512-Zz5l8BcJwEFZ8DTa/3dW6UJ2Rn/CW5cOZUqKjIMtPZuBqBCg0wNWQlcRSt79qHcld7NaBtYOMDFW3nC2U+lGog==", + "license": "Apache-2.0", + "dependencies": { + "@types/form-data": "^2.5.2", + "@types/node-fetch": "^2.6.12", + "@types/xmpp__client": "^0.13.3", + "@xmpp/client-core": "^0.13.3", + "@xmpp/iq": "^0.13.3", + "@xmpp/middleware": "^0.13.3", + "@xmpp/reconnect": "^0.13.2", + "@xmpp/resolve": "^0.13.3", + "@xmpp/resource-binding": "^0.13.3", + "@xmpp/sasl": "^0.13.4", + "@xmpp/sasl-anonymous": "^0.13.2", + "@xmpp/sasl-plain": "^0.13.2", + "@xmpp/session-establishment": "^0.13.3", + "@xmpp/stream-features": "^0.13.2", + "@xmpp/websocket": "^0.13.3", + "eventemitter3": "^5.0.1", + "form-data": "4.0.1", + "node-fetch": "2.7.0" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.88", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.88.tgz", + "integrity": "sha512-K3C2qf1o+bGzbilTDCTBhTQcMS9KW60yTAaTeeXsfvQuTDDwlokLam/AdqlqcSy9u4UainDgsHV23ksXAOgamw==", + "dev": true, + "license": "ISC" + }, + "node_modules/esbuild": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.19.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.19.0.tgz", + "integrity": "sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.10.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.19.0", + "@eslint/plugin-kit": "^0.2.5", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0.tgz", + "integrity": "sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.18.tgz", + "integrity": "sha512-IRGEoFn3OKalm3hjfolEWGqoF/jPqeEYFp+C8B0WMzwGwBMvlRDQd06kghDhF0C61uJ6WfSDhEZE/sAQjduKgw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=8.40" + } + }, + "node_modules/eslint-scope": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "dev": true, + "license": "ISC" + }, + "node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "15.14.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz", + "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/koa-compose": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", + "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", + "license": "MIT" + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/ltx": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/ltx/-/ltx-3.1.2.tgz", + "integrity": "sha512-tFSKojN92FqNK6eRTmKK/ROUTUYVWKAxgohz523TPhF1G3nR3DXQS/I7/705rEPrDSloKDgMdRlh0qgMFQoVYw==", + "license": "MIT", + "engines": { + "node": ">= 12.4.0" + } + }, + "node_modules/lucide-react": { + "version": "0.474.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.474.0.tgz", + "integrity": "sha512-CmghgHkh0OJNmxGKWc0qfPJCYHASPMVSyGY8fj3xgk4v84ItqDg64JNKFZn5hC6E0vHi6gxnbCgwhyVB09wQtA==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", + "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-hook-form": { + "version": "7.54.2", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.54.2.tgz", + "integrity": "sha512-eHpAUgUjWbZocoQYUHposymRb4ZP6d0uwUnooL2uOybA9/3tPUvoAKqEWK1WaSiTxxOfTpffNZP7QwlnM3/gEg==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18 || ^19" + } + }, + "node_modules/react-icons": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.4.0.tgz", + "integrity": "sha512-7eltJxgVt7X64oHh6wSWNwwbKTCtMfK35hcjvJS0yxEAhPM8oUKdS3+kqaW1vicIltw+kR2unHaa12S9pPALoQ==", + "license": "MIT", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-intersection-observer": { + "version": "9.15.1", + "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.15.1.tgz", + "integrity": "sha512-vGrqYEVWXfH+AGu241uzfUpNK4HAdhCkSAyFdkMb9VWWXs6mxzBLpWCxEy9YcnDNY2g9eO6z7qUtTBdA9hc8pA==", + "license": "MIT", + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-remove-scroll": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.3.tgz", + "integrity": "sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-router": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.1.3.tgz", + "integrity": "sha512-EezYymLY6Guk/zLQ2vRA8WvdUhWFEj5fcE3RfWihhxXBW7+cd1LsIiA3lmx+KCmneAGQuyBv820o44L2+TtkSA==", + "license": "MIT", + "dependencies": { + "@types/cookie": "^0.6.0", + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0", + "turbo-stream": "2.4.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.1.3.tgz", + "integrity": "sha512-qQGTE+77hleBzv9SIUIkGRvuFBQGagW+TQKy53UTZAO/3+YFNBYvRsNIZ1GT17yHbc63FylMOdS+m3oUriF1GA==", + "license": "MIT", + "dependencies": { + "react-router": "7.1.3" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/react-scroll": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/react-scroll/-/react-scroll-1.9.0.tgz", + "integrity": "sha512-mamNcaX9Ng+JeSbBu97nWwRhYvL2oba+xR2GxvyXsbDeGP+gkYIKZ+aDMMj/n20TbV9SCWm/H7nyuNTSiXA6yA==", + "license": "MIT", + "dependencies": { + "lodash.throttle": "^4.1.1", + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "react": "^15.5.4 || ^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^15.5.4 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.32.1.tgz", + "integrity": "sha512-z+aeEsOeEa3mEbS1Tjl6sAZ8NE3+AalQz1RJGj81M+fizusbdDMoEJwdJNHfaB40Scr4qNu+welOfes7maKonA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.32.1", + "@rollup/rollup-android-arm64": "4.32.1", + "@rollup/rollup-darwin-arm64": "4.32.1", + "@rollup/rollup-darwin-x64": "4.32.1", + "@rollup/rollup-freebsd-arm64": "4.32.1", + "@rollup/rollup-freebsd-x64": "4.32.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.32.1", + "@rollup/rollup-linux-arm-musleabihf": "4.32.1", + "@rollup/rollup-linux-arm64-gnu": "4.32.1", + "@rollup/rollup-linux-arm64-musl": "4.32.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.32.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.32.1", + "@rollup/rollup-linux-riscv64-gnu": "4.32.1", + "@rollup/rollup-linux-s390x-gnu": "4.32.1", + "@rollup/rollup-linux-x64-gnu": "4.32.1", + "@rollup/rollup-linux-x64-musl": "4.32.1", + "@rollup/rollup-win32-arm64-msvc": "4.32.1", + "@rollup/rollup-win32-ia32-msvc": "4.32.1", + "@rollup/rollup-win32-x64-msvc": "4.32.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sasl-anonymous": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/sasl-anonymous/-/sasl-anonymous-0.1.0.tgz", + "integrity": "sha512-x+0sdsV0Gie2EexxAUsx6ZoB+X6OCthlNBvAQncQxreEWQJByAPntj0EAgTlJc2kZicoc+yFzeR6cl8VfsQGfA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/sasl-plain": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/sasl-plain/-/sasl-plain-0.1.0.tgz", + "integrity": "sha512-X8mCSfR8y0NryTu0tuVyr4IS2jBunBgyG+3a0gEEkd0nlHGiyqJhlc4EIkzmSwaa7F8S4yo+LS6Cu5qxRkJrmg==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/saslmechanisms": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/saslmechanisms/-/saslmechanisms-0.1.1.tgz", + "integrity": "sha512-pVlvK5ysevz8MzybRnDIa2YMxn0OJ7b9lDiWhMoaKPoJ7YkAg/7YtNjUgaYzElkwHxsw8dBMhaEn7UP6zxEwPg==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/ts-api-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", + "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/turbo-stream": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", + "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", + "license": "ISC" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.22.0.tgz", + "integrity": "sha512-Y2rj210FW1Wb6TWXzQc5+P+EWI9/zdS57hLEc0gnyuvdzWo8+Y8brKlbj0muejonhMI/xAZCnZZwjbIfv1CkOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.22.0", + "@typescript-eslint/parser": "8.22.0", + "@typescript-eslint/utils": "8.22.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, + "node_modules/update-browserslist-db": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-chat": {}, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/vite": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.11.tgz", + "integrity": "sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.24.2", + "postcss": "^8.4.49", + "rollup": "^4.23.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/__vite-react-ts-test-chat-widget/package.json b/__vite-react-ts-test-chat-widget/package.json new file mode 100644 index 00000000..cfb3491d --- /dev/null +++ b/__vite-react-ts-test-chat-widget/package.json @@ -0,0 +1,30 @@ +{ + "name": "-vite-react-ts-test-chat-widget", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "@connectycube/chat-widget": "file:../chat-widget/connectycube-chat-widget-0.1.0.tgz", + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@eslint/js": "^9.17.0", + "@types/react": "^18.3.18", + "@types/react-dom": "^18.3.5", + "@vitejs/plugin-react": "^4.3.4", + "eslint": "^9.17.0", + "eslint-plugin-react-hooks": "^5.0.0", + "eslint-plugin-react-refresh": "^0.4.16", + "globals": "^15.14.0", + "typescript": "~5.6.2", + "typescript-eslint": "^8.18.2", + "vite": "^6.0.5" + } +} diff --git a/__vite-react-ts-test-chat-widget/public/vite.svg b/__vite-react-ts-test-chat-widget/public/vite.svg new file mode 100644 index 00000000..e7b8dfb1 --- /dev/null +++ b/__vite-react-ts-test-chat-widget/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/__vite-react-ts-test-chat-widget/src/App.css b/__vite-react-ts-test-chat-widget/src/App.css new file mode 100644 index 00000000..b9d355df --- /dev/null +++ b/__vite-react-ts-test-chat-widget/src/App.css @@ -0,0 +1,42 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} diff --git a/__vite-react-ts-test-chat-widget/src/App.tsx b/__vite-react-ts-test-chat-widget/src/App.tsx new file mode 100644 index 00000000..87a2bd4e --- /dev/null +++ b/__vite-react-ts-test-chat-widget/src/App.tsx @@ -0,0 +1,42 @@ +import { useState } from 'react' +import reactLogo from './assets/react.svg' +import viteLogo from '/vite.svg' +import './App.css' + +import ConnectyCubeChatWidget from '@connectycube/chat-widget'; + +function App() { + const [count, setCount] = useState(0) + + return ( + <> + +

Vite + React

+
+ +

+ Edit src/App.tsx and save to test HMR +

+
+

+ Click on the Vite and React logos to learn more +

+ + + ) +} + +export default App diff --git a/__vite-react-ts-test-chat-widget/src/assets/react.svg b/__vite-react-ts-test-chat-widget/src/assets/react.svg new file mode 100644 index 00000000..6c87de9b --- /dev/null +++ b/__vite-react-ts-test-chat-widget/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/__vite-react-ts-test-chat-widget/src/index.css b/__vite-react-ts-test-chat-widget/src/index.css new file mode 100644 index 00000000..6119ad9a --- /dev/null +++ b/__vite-react-ts-test-chat-widget/src/index.css @@ -0,0 +1,68 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/__vite-react-ts-test-chat-widget/src/main.tsx b/__vite-react-ts-test-chat-widget/src/main.tsx new file mode 100644 index 00000000..bef5202a --- /dev/null +++ b/__vite-react-ts-test-chat-widget/src/main.tsx @@ -0,0 +1,10 @@ +import { StrictMode } from 'react' +import { createRoot } from 'react-dom/client' +import './index.css' +import App from './App.tsx' + +createRoot(document.getElementById('root')!).render( + + + , +) diff --git a/__vite-react-ts-test-chat-widget/src/vite-env.d.ts b/__vite-react-ts-test-chat-widget/src/vite-env.d.ts new file mode 100644 index 00000000..11f02fe2 --- /dev/null +++ b/__vite-react-ts-test-chat-widget/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/__vite-react-ts-test-chat-widget/tsconfig.app.json b/__vite-react-ts-test-chat-widget/tsconfig.app.json new file mode 100644 index 00000000..358ca9ba --- /dev/null +++ b/__vite-react-ts-test-chat-widget/tsconfig.app.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["src"] +} diff --git a/__vite-react-ts-test-chat-widget/tsconfig.json b/__vite-react-ts-test-chat-widget/tsconfig.json new file mode 100644 index 00000000..1ffef600 --- /dev/null +++ b/__vite-react-ts-test-chat-widget/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/__vite-react-ts-test-chat-widget/tsconfig.node.json b/__vite-react-ts-test-chat-widget/tsconfig.node.json new file mode 100644 index 00000000..db0becc8 --- /dev/null +++ b/__vite-react-ts-test-chat-widget/tsconfig.node.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2022", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/__vite-react-ts-test-chat-widget/vite.config.ts b/__vite-react-ts-test-chat-widget/vite.config.ts new file mode 100644 index 00000000..8b0f57b9 --- /dev/null +++ b/__vite-react-ts-test-chat-widget/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [react()], +}) From a1ab8c986f4b5d1b20edb12f409e7fd2702049ae Mon Sep 17 00:00:00 2001 From: Vlad Date: Tue, 28 Jan 2025 17:47:50 +0200 Subject: [PATCH 04/12] added use-chat as tgz --- .gitignore | 1 + .../package-lock.json | 1361 +------ __vite-react-ts-test-chat-widget/package.json | 4 +- __vite-react-ts-test-chat-widget/src/App.tsx | 2 +- .../libs/connectycube-use-chat-0.1.0.tgz | Bin 0 -> 84315 bytes chat-widget/package-lock.json | 3551 +++++++++-------- chat-widget/package.json | 14 +- chat-widget/postcss.config.js | 2 +- chat-widget/src/App.tsx | 52 +- chat-widget/src/index.ts | 1 - chat-widget/src/index.tsx | 3 + chat-widget/src/main.tsx | 18 +- chat-widget/tsconfig.app.json | 4 + chat-widget/vite.config.ts | 14 +- 14 files changed, 1875 insertions(+), 3152 deletions(-) create mode 100644 chat-widget/libs/connectycube-use-chat-0.1.0.tgz delete mode 100644 chat-widget/src/index.ts create mode 100644 chat-widget/src/index.tsx diff --git a/.gitignore b/.gitignore index e4213bc6..5bda07c8 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,7 @@ npm-debug.log.* # packages from "npm pack" *.tgz +!*/libs/*.tgz build diff --git a/__vite-react-ts-test-chat-widget/package-lock.json b/__vite-react-ts-test-chat-widget/package-lock.json index 9304bb69..7bae377a 100644 --- a/__vite-react-ts-test-chat-widget/package-lock.json +++ b/__vite-react-ts-test-chat-widget/package-lock.json @@ -1,14 +1,14 @@ { - "name": "-vite-react-ts-test-chat-widget", + "name": "vite-react-ts-test-chat-widget", "version": "0.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "-vite-react-ts-test-chat-widget", + "name": "vite-react-ts-test-chat-widget", "version": "0.0.0", "dependencies": { - "@connectycube/chat-widget": "file:../chat-widget/connectycube-chat-widget-0.1.0.tgz", + "@connectycube/chat-widget": "file:../chat-widget/connectycube-chat-widget-0.1.0-9.tgz", "react": "^18.3.1", "react-dom": "^18.3.1" }, @@ -28,8 +28,6 @@ }, "node_modules/@ampproject/remapping": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -42,8 +40,6 @@ }, "node_modules/@babel/code-frame": { "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, "license": "MIT", "dependencies": { @@ -57,8 +53,6 @@ }, "node_modules/@babel/compat-data": { "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz", - "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", "dev": true, "license": "MIT", "engines": { @@ -67,8 +61,6 @@ }, "node_modules/@babel/core": { "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.7.tgz", - "integrity": "sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==", "dev": true, "license": "MIT", "dependencies": { @@ -98,8 +90,6 @@ }, "node_modules/@babel/generator": { "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", - "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", "dev": true, "license": "MIT", "dependencies": { @@ -115,8 +105,6 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", - "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", "dev": true, "license": "MIT", "dependencies": { @@ -132,8 +120,6 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, "license": "MIT", "dependencies": { @@ -146,8 +132,6 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, "license": "MIT", "dependencies": { @@ -164,8 +148,6 @@ }, "node_modules/@babel/helper-plugin-utils": { "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", - "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", "dev": true, "license": "MIT", "engines": { @@ -174,8 +156,6 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, "license": "MIT", "engines": { @@ -184,8 +164,6 @@ }, "node_modules/@babel/helper-validator-identifier": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, "license": "MIT", "engines": { @@ -194,8 +172,6 @@ }, "node_modules/@babel/helper-validator-option": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, "license": "MIT", "engines": { @@ -204,8 +180,6 @@ }, "node_modules/@babel/helpers": { "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.7.tgz", - "integrity": "sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==", "dev": true, "license": "MIT", "dependencies": { @@ -218,8 +192,6 @@ }, "node_modules/@babel/parser": { "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.7.tgz", - "integrity": "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==", "dev": true, "license": "MIT", "dependencies": { @@ -234,8 +206,6 @@ }, "node_modules/@babel/plugin-transform-react-jsx-self": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", - "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", "dev": true, "license": "MIT", "dependencies": { @@ -250,8 +220,6 @@ }, "node_modules/@babel/plugin-transform-react-jsx-source": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", - "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", "dev": true, "license": "MIT", "dependencies": { @@ -266,8 +234,6 @@ }, "node_modules/@babel/template": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", - "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, "license": "MIT", "dependencies": { @@ -281,8 +247,6 @@ }, "node_modules/@babel/traverse": { "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.7.tgz", - "integrity": "sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==", "dev": true, "license": "MIT", "dependencies": { @@ -300,8 +264,6 @@ }, "node_modules/@babel/traverse/node_modules/globals": { "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, "license": "MIT", "engines": { @@ -310,8 +272,6 @@ }, "node_modules/@babel/types": { "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.7.tgz", - "integrity": "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==", "dev": true, "license": "MIT", "dependencies": { @@ -323,11 +283,11 @@ } }, "node_modules/@connectycube/chat-widget": { - "version": "0.1.0", - "resolved": "file:../chat-widget/connectycube-chat-widget-0.1.0.tgz", - "integrity": "sha512-TidqJH0vp9ywKprhrGdFskoZSkn3O7w+ZP+In3DRxn56TKxwW8rh+eQyBxaU6HL1P0DWDenRFKre13wj3m+F/Q==", + "version": "0.1.0-9", + "resolved": "file:../chat-widget/connectycube-chat-widget-0.1.0-9.tgz", + "integrity": "sha512-CjvNWZtDh0aSuU9mDhHCWvSUVR5m1RkmByGJ2Z8LyG0ZBQZ1DysUlAeHpXXR8OUZXxwwett5Wr0msCHOkPotBg==", "dependencies": { - "@connectycube/use-chat": "file:../../use-chat", + "@connectycube/use-chat": "file:./connectycube-use-chat-0.1.0.tgz", "@fingerprintjs/fingerprintjs": "^4.5.1", "@radix-ui/react-alert-dialog": "^1.1.5", "@radix-ui/react-avatar": "^1.1.2", @@ -338,7 +298,7 @@ "@radix-ui/react-tabs": "^1.1.2", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", - "connectycube": "4.0.2", + "connectycube": "^4.0.2", "lucide-react": "^0.474.0", "react": "^18.3.1", "react-dom": "^18.3.1", @@ -351,81 +311,21 @@ } }, "node_modules/@connectycube/use-chat": { - "resolved": "node_modules/use-chat", - "link": true - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", - "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", - "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", - "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", - "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" + "version": "0.1.0", + "resolved": "file:../chat-widget/connectycube-use-chat-0.1.0.tgz", + "integrity": "sha512-eajBDCBmVnGmnXB3ssvzg3+nfMhLKmVhPhjkjEBYMGMkUU3XlwbwBM0de41AuXbwxGR55ctFR2tHX0WMiulFow==", + "dependencies": { + "date-fns": "^4.1.0", + "react-usestateref": "^1.0.9" + }, + "peerDependencies": { + "connectycube": ">=4.0.0", + "react": ">=18.0.0", + "react-dom": ">=18.0.0" } }, "node_modules/@esbuild/darwin-arm64": { "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", - "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", "cpu": [ "arm64" ], @@ -439,350 +339,8 @@ "node": ">=18" } }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", - "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", - "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", - "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", - "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", - "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", - "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", - "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", - "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", - "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", - "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", - "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", - "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", - "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", - "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", - "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", - "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", - "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", - "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", - "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", - "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", - "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, "license": "MIT", "dependencies": { @@ -800,8 +358,6 @@ }, "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "license": "Apache-2.0", "engines": { @@ -813,8 +369,6 @@ }, "node_modules/@eslint-community/regexpp": { "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "license": "MIT", "engines": { @@ -823,8 +377,6 @@ }, "node_modules/@eslint/config-array": { "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", - "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -838,8 +390,6 @@ }, "node_modules/@eslint/core": { "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", - "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -851,8 +401,6 @@ }, "node_modules/@eslint/eslintrc": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", - "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, "license": "MIT", "dependencies": { @@ -875,8 +423,6 @@ }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, "license": "MIT", "engines": { @@ -888,8 +434,6 @@ }, "node_modules/@eslint/js": { "version": "9.19.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.19.0.tgz", - "integrity": "sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==", "dev": true, "license": "MIT", "engines": { @@ -898,8 +442,6 @@ }, "node_modules/@eslint/object-schema": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", - "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -908,8 +450,6 @@ }, "node_modules/@eslint/plugin-kit": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", - "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -922,8 +462,6 @@ }, "node_modules/@fingerprintjs/fingerprintjs": { "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@fingerprintjs/fingerprintjs/-/fingerprintjs-4.5.1.tgz", - "integrity": "sha512-hKJaRoLHNeUUPhb+Md3pTlY/Js2YR4aXjroaDHpxrjoM8kGnEFyZVZxXo6l3gRyKnQN52Uoqsycd3M73eCdMzw==", "license": "BUSL-1.1", "dependencies": { "tslib": "^2.4.1" @@ -931,8 +469,6 @@ }, "node_modules/@floating-ui/core": { "version": "1.6.9", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz", - "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", "license": "MIT", "dependencies": { "@floating-ui/utils": "^0.2.9" @@ -940,8 +476,6 @@ }, "node_modules/@floating-ui/dom": { "version": "1.6.13", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", - "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", "license": "MIT", "dependencies": { "@floating-ui/core": "^1.6.0", @@ -950,8 +484,6 @@ }, "node_modules/@floating-ui/react-dom": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", - "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", "license": "MIT", "dependencies": { "@floating-ui/dom": "^1.0.0" @@ -963,14 +495,10 @@ }, "node_modules/@floating-ui/utils": { "version": "0.2.9", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", - "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", "license": "MIT" }, "node_modules/@humanfs/core": { "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -979,8 +507,6 @@ }, "node_modules/@humanfs/node": { "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", - "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -993,8 +519,6 @@ }, "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1007,8 +531,6 @@ }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1021,8 +543,6 @@ }, "node_modules/@humanwhocodes/retry": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", - "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1035,8 +555,6 @@ }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", "dev": true, "license": "MIT", "dependencies": { @@ -1050,8 +568,6 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "license": "MIT", "engines": { @@ -1060,8 +576,6 @@ }, "node_modules/@jridgewell/set-array": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, "license": "MIT", "engines": { @@ -1070,15 +584,11 @@ }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1088,8 +598,6 @@ }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "license": "MIT", "dependencies": { @@ -1102,8 +610,6 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "license": "MIT", "engines": { @@ -1112,8 +618,6 @@ }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "license": "MIT", "dependencies": { @@ -1126,14 +630,10 @@ }, "node_modules/@radix-ui/primitive": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.1.tgz", - "integrity": "sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==", "license": "MIT" }, "node_modules/@radix-ui/react-alert-dialog": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.5.tgz", - "integrity": "sha512-1Y2sI17QzSZP58RjGtrklfSGIf3AF7U/HkD3aAcAnhOUJrm7+7GG1wRDFaUlSe0nW5B/t4mYd/+7RNbP2Wexug==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.1", @@ -1160,8 +660,6 @@ }, "node_modules/@radix-ui/react-arrow": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.1.tgz", - "integrity": "sha512-NaVpZfmv8SKeZbn4ijN2V3jlHA9ngBG16VnIIm22nUR0Yk8KUALyBxT3KYEUnNuch9sTE8UTsS3whzBgKOL30w==", "license": "MIT", "dependencies": { "@radix-ui/react-primitive": "2.0.1" @@ -1183,8 +681,6 @@ }, "node_modules/@radix-ui/react-avatar": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.2.tgz", - "integrity": "sha512-GaC7bXQZ5VgZvVvsJ5mu/AEbjYLnhhkoidOboC50Z6FFlLA03wG2ianUoH+zgDQ31/9gCF59bE4+2bBgTyMiig==", "license": "MIT", "dependencies": { "@radix-ui/react-context": "1.1.1", @@ -1209,8 +705,6 @@ }, "node_modules/@radix-ui/react-collection": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.1.tgz", - "integrity": "sha512-LwT3pSho9Dljg+wY2KN2mrrh6y3qELfftINERIzBUO9e0N+t0oMTyn3k9iv+ZqgrwGkRnLpNJrsMv9BZlt2yuA==", "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.1", @@ -1235,8 +729,6 @@ }, "node_modules/@radix-ui/react-compose-refs": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.1.tgz", - "integrity": "sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1250,8 +742,6 @@ }, "node_modules/@radix-ui/react-context": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", - "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1265,8 +755,6 @@ }, "node_modules/@radix-ui/react-dialog": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.5.tgz", - "integrity": "sha512-LaO3e5h/NOEL4OfXjxD43k9Dx+vn+8n+PCFt6uhX/BADFflllyv3WJG6rgvvSVBxpTch938Qq/LGc2MMxipXPw==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.1", @@ -1301,8 +789,6 @@ }, "node_modules/@radix-ui/react-direction": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", - "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1316,8 +802,6 @@ }, "node_modules/@radix-ui/react-dismissable-layer": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.4.tgz", - "integrity": "sha512-XDUI0IVYVSwjMXxM6P4Dfti7AH+Y4oS/TB+sglZ/EXc7cqLwGAmp1NlMrcUjj7ks6R5WTZuWKv44FBbLpwU3sA==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.1", @@ -1343,8 +827,6 @@ }, "node_modules/@radix-ui/react-dropdown-menu": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.5.tgz", - "integrity": "sha512-50ZmEFL1kOuLalPKHrLWvPFMons2fGx9TqQCWlPwDVpbAnaUJ1g4XNcKqFNMQymYU0kKWR4MDDi+9vUQBGFgcQ==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.1", @@ -1372,8 +854,6 @@ }, "node_modules/@radix-ui/react-focus-guards": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz", - "integrity": "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1387,8 +867,6 @@ }, "node_modules/@radix-ui/react-focus-scope": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.1.tgz", - "integrity": "sha512-01omzJAYRxXdG2/he/+xy+c8a8gCydoQ1yOxnWNcRhrrBW5W+RQJ22EK1SaO8tb3WoUsuEw7mJjBozPzihDFjA==", "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.1", @@ -1412,8 +890,6 @@ }, "node_modules/@radix-ui/react-id": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", - "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", "license": "MIT", "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.0" @@ -1430,8 +906,6 @@ }, "node_modules/@radix-ui/react-label": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.1.tgz", - "integrity": "sha512-UUw5E4e/2+4kFMH7+YxORXGWggtY6sM8WIwh5RZchhLuUg2H1hc98Py+pr8HMz6rdaYrK2t296ZEjYLOCO5uUw==", "license": "MIT", "dependencies": { "@radix-ui/react-primitive": "2.0.1" @@ -1453,8 +927,6 @@ }, "node_modules/@radix-ui/react-menu": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.5.tgz", - "integrity": "sha512-uH+3w5heoMJtqVCgYOtYVMECk1TOrkUn0OG0p5MqXC0W2ppcuVeESbou8PTHoqAjbdTEK19AGXBWcEtR5WpEQg==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.1", @@ -1493,8 +965,6 @@ }, "node_modules/@radix-ui/react-popper": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.1.tgz", - "integrity": "sha512-3kn5Me69L+jv82EKRuQCXdYyf1DqHwD2U/sxoNgBGCB7K9TRc3bQamQ+5EPM9EvyPdli0W41sROd+ZU1dTCztw==", "license": "MIT", "dependencies": { "@floating-ui/react-dom": "^2.0.0", @@ -1525,8 +995,6 @@ }, "node_modules/@radix-ui/react-portal": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.3.tgz", - "integrity": "sha512-NciRqhXnGojhT93RPyDaMPfLH3ZSl4jjIFbZQ1b/vxvZEdHsBZ49wP9w8L3HzUQwep01LcWtkUvm0OVB5JAHTw==", "license": "MIT", "dependencies": { "@radix-ui/react-primitive": "2.0.1", @@ -1549,8 +1017,6 @@ }, "node_modules/@radix-ui/react-presence": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.2.tgz", - "integrity": "sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==", "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.1", @@ -1573,8 +1039,6 @@ }, "node_modules/@radix-ui/react-primitive": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.1.tgz", - "integrity": "sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==", "license": "MIT", "dependencies": { "@radix-ui/react-slot": "1.1.1" @@ -1596,8 +1060,6 @@ }, "node_modules/@radix-ui/react-roving-focus": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.1.tgz", - "integrity": "sha512-QE1RoxPGJ/Nm8Qmk0PxP8ojmoaS67i0s7hVssS7KuI2FQoc/uzVlZsqKfQvxPE6D8hICCPHJ4D88zNhT3OOmkw==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.1", @@ -1627,8 +1089,6 @@ }, "node_modules/@radix-ui/react-slot": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.1.tgz", - "integrity": "sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==", "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.1" @@ -1645,8 +1105,6 @@ }, "node_modules/@radix-ui/react-tabs": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.2.tgz", - "integrity": "sha512-9u/tQJMcC2aGq7KXpGivMm1mgq7oRJKXphDwdypPd/j21j/2znamPU8WkXgnhUaTrSFNIt8XhOyCAupg8/GbwQ==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.1", @@ -1675,8 +1133,6 @@ }, "node_modules/@radix-ui/react-use-callback-ref": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", - "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1690,8 +1146,6 @@ }, "node_modules/@radix-ui/react-use-controllable-state": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", - "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", "license": "MIT", "dependencies": { "@radix-ui/react-use-callback-ref": "1.1.0" @@ -1708,8 +1162,6 @@ }, "node_modules/@radix-ui/react-use-escape-keydown": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", - "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", "license": "MIT", "dependencies": { "@radix-ui/react-use-callback-ref": "1.1.0" @@ -1726,8 +1178,6 @@ }, "node_modules/@radix-ui/react-use-layout-effect": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", - "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1741,8 +1191,6 @@ }, "node_modules/@radix-ui/react-use-rect": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz", - "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==", "license": "MIT", "dependencies": { "@radix-ui/rect": "1.1.0" @@ -1759,8 +1207,6 @@ }, "node_modules/@radix-ui/react-use-size": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz", - "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==", "license": "MIT", "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.0" @@ -1777,42 +1223,10 @@ }, "node_modules/@radix-ui/rect": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz", - "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==", "license": "MIT" }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.32.1.tgz", - "integrity": "sha512-/pqA4DmqyCm8u5YIDzIdlLcEmuvxb0v8fZdFhVMszSpDTgbQKdw3/mB3eMUHIbubtJ6F9j+LtmyCnHTEqIHyzA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.32.1.tgz", - "integrity": "sha512-If3PDskT77q7zgqVqYuj7WG3WC08G1kwXGVFi9Jr8nY6eHucREHkfpX79c0ACAjLj3QIWKPJR7w4i+f5EdLH5Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, "node_modules/@rollup/rollup-darwin-arm64": { "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.32.1.tgz", - "integrity": "sha512-zCpKHioQ9KgZToFp5Wvz6zaWbMzYQ2LJHQ+QixDKq52KKrF65ueu6Af4hLlLWHjX1Wf/0G5kSJM9PySW9IrvHA==", "cpu": [ "arm64" ], @@ -1823,234 +1237,8 @@ "darwin" ] }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.32.1.tgz", - "integrity": "sha512-sFvF+t2+TyUo/ZQqUcifrJIgznx58oFZbdHS9TvHq3xhPVL9nOp+yZ6LKrO9GWTP+6DbFtoyLDbjTpR62Mbr3Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.32.1.tgz", - "integrity": "sha512-NbOa+7InvMWRcY9RG+B6kKIMD/FsnQPH0MWUvDlQB1iXnF/UcKSudCXZtv4lW+C276g3w5AxPbfry5rSYvyeYA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.32.1.tgz", - "integrity": "sha512-JRBRmwvHPXR881j2xjry8HZ86wIPK2CcDw0EXchE1UgU0ubWp9nvlT7cZYKc6bkypBt745b4bglf3+xJ7hXWWw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.32.1.tgz", - "integrity": "sha512-PKvszb+9o/vVdUzCCjL0sKHukEQV39tD3fepXxYrHE3sTKrRdCydI7uldRLbjLmDA3TFDmh418XH19NOsDRH8g==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.32.1.tgz", - "integrity": "sha512-9WHEMV6Y89eL606ReYowXuGF1Yb2vwfKWKdD1A5h+OYnPZSJvxbEjxTRKPgi7tkP2DSnW0YLab1ooy+i/FQp/Q==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.32.1.tgz", - "integrity": "sha512-tZWc9iEt5fGJ1CL2LRPw8OttkCBDs+D8D3oEM8mH8S1ICZCtFJhD7DZ3XMGM8kpqHvhGUTvNUYVDnmkj4BDXnw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.32.1.tgz", - "integrity": "sha512-FTYc2YoTWUsBz5GTTgGkRYYJ5NGJIi/rCY4oK/I8aKowx1ToXeoVVbIE4LGAjsauvlhjfl0MYacxClLld1VrOw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.32.1.tgz", - "integrity": "sha512-F51qLdOtpS6P1zJVRzYM0v6MrBNypyPEN1GfMiz0gPu9jN8ScGaEFIZQwteSsGKg799oR5EaP7+B2jHgL+d+Kw==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.32.1.tgz", - "integrity": "sha512-wO0WkfSppfX4YFm5KhdCCpnpGbtgQNj/tgvYzrVYFKDpven8w2N6Gg5nB6w+wAMO3AIfSTWeTjfVe+uZ23zAlg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.32.1.tgz", - "integrity": "sha512-iWswS9cIXfJO1MFYtI/4jjlrGb/V58oMu4dYJIKnR5UIwbkzR0PJ09O0PDZT0oJ3LYWXBSWahNf/Mjo6i1E5/g==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.32.1.tgz", - "integrity": "sha512-RKt8NI9tebzmEthMnfVgG3i/XeECkMPS+ibVZjZ6mNekpbbUmkNWuIN2yHsb/mBPyZke4nlI4YqIdFPgKuoyQQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.32.1.tgz", - "integrity": "sha512-WQFLZ9c42ECqEjwg/GHHsouij3pzLXkFdz0UxHa/0OM12LzvX7DzedlY0SIEly2v18YZLRhCRoHZDxbBSWoGYg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.32.1.tgz", - "integrity": "sha512-BLoiyHDOWoS3uccNSADMza6V6vCNiphi94tQlVIL5de+r6r/CCQuNnerf+1g2mnk2b6edp5dk0nhdZ7aEjOBsA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.32.1.tgz", - "integrity": "sha512-w2l3UnlgYTNNU+Z6wOR8YdaioqfEnwPjIsJ66KxKAf0p+AuL2FHeTX6qvM+p/Ue3XPBVNyVSfCrfZiQh7vZHLQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.32.1.tgz", - "integrity": "sha512-Am9H+TGLomPGkBnaPWie4F3x+yQ2rr4Bk2jpwy+iV+Gel9jLAu/KqT8k3X4jxFPW6Zf8OMnehyutsd+eHoq1WQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.32.1.tgz", - "integrity": "sha512-ar80GhdZb4DgmW3myIS9nRFYcpJRSME8iqWgzH2i44u+IdrzmiXVxeFnExQ5v4JYUSpg94bWjevMG8JHf1Da5Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, "node_modules/@types/accepts": { "version": "1.3.7", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==", "license": "MIT", "dependencies": { "@types/node": "*" @@ -2058,8 +1246,6 @@ }, "node_modules/@types/babel__core": { "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, "license": "MIT", "dependencies": { @@ -2072,8 +1258,6 @@ }, "node_modules/@types/babel__generator": { "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, "license": "MIT", "dependencies": { @@ -2082,8 +1266,6 @@ }, "node_modules/@types/babel__template": { "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, "license": "MIT", "dependencies": { @@ -2093,8 +1275,6 @@ }, "node_modules/@types/babel__traverse": { "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", "dev": true, "license": "MIT", "dependencies": { @@ -2103,8 +1283,6 @@ }, "node_modules/@types/body-parser": { "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "license": "MIT", "dependencies": { "@types/connect": "*", @@ -2113,8 +1291,6 @@ }, "node_modules/@types/connect": { "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "license": "MIT", "dependencies": { "@types/node": "*" @@ -2122,20 +1298,14 @@ }, "node_modules/@types/content-disposition": { "version": "0.5.8", - "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.8.tgz", - "integrity": "sha512-QVSSvno3dE0MgO76pJhmv4Qyi/j0Yk9pBp0Y7TJ2Tlj+KCgJWY6qX7nnxCOLkZ3VYRSIk1WTxCvwUSdx6CCLdg==", "license": "MIT" }, "node_modules/@types/cookie": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", "license": "MIT" }, "node_modules/@types/cookies": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.9.0.tgz", - "integrity": "sha512-40Zk8qR147RABiQ7NQnBzWzDcjKzNrntB5BAmeGCb2p/MIyOE+4BVvc17wumsUqUw00bJYqoXFHYygQnEFh4/Q==", "license": "MIT", "dependencies": { "@types/connect": "*", @@ -2146,21 +1316,15 @@ }, "node_modules/@types/estree": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true, "license": "MIT" }, "node_modules/@types/events": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.3.tgz", - "integrity": "sha512-trOc4AAUThEz9hapPtSd7wf5tiQKvTtu5b371UxXdTuqzIh0ArcRspRP0i0Viu+LXstIQ1z96t1nsPxT9ol01g==", "license": "MIT" }, "node_modules/@types/express": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.0.tgz", - "integrity": "sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==", "license": "MIT", "dependencies": { "@types/body-parser": "*", @@ -2171,8 +1335,6 @@ }, "node_modules/@types/express-serve-static-core": { "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", - "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", "license": "MIT", "dependencies": { "@types/node": "*", @@ -2183,8 +1345,6 @@ }, "node_modules/@types/form-data": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.5.2.tgz", - "integrity": "sha512-tfmcyHn1Pp9YHAO5r40+UuZUPAZbUEgqTel3EuEKpmF9hPkXgR4l41853raliXnb4gwyPNoQOfvgGGlHN5WSog==", "deprecated": "This is a stub types definition. form-data provides its own type definitions, so you do not need this installed.", "license": "MIT", "dependencies": { @@ -2193,33 +1353,23 @@ }, "node_modules/@types/http-assert": { "version": "1.5.6", - "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.6.tgz", - "integrity": "sha512-TTEwmtjgVbYAzZYWyeHPrrtWnfVkm8tQkP8P21uQifPgMRgjrow3XDEYqucuC8SKZJT7pUnhU/JymvjggxO9vw==", "license": "MIT" }, "node_modules/@types/http-errors": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true, "license": "MIT" }, "node_modules/@types/keygrip": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.6.tgz", - "integrity": "sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==", "license": "MIT" }, "node_modules/@types/koa": { "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.15.0.tgz", - "integrity": "sha512-7QFsywoE5URbuVnG3loe03QXuGajrnotr3gQkXcEBShORai23MePfFYdhz90FEtBBpkyIYQbVD+evKtloCgX3g==", "license": "MIT", "dependencies": { "@types/accepts": "*", @@ -2234,8 +1384,6 @@ }, "node_modules/@types/koa-compose": { "version": "3.2.8", - "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.8.tgz", - "integrity": "sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA==", "license": "MIT", "dependencies": { "@types/koa": "*" @@ -2243,8 +1391,6 @@ }, "node_modules/@types/ltx": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/ltx/-/ltx-3.1.0.tgz", - "integrity": "sha512-fkYKRqE7oAtqlImS4JvRP7PqFHJVCv7Dn7k8MOhz6u/MjnC9JOCbLdOb7Q0KfSYDQgtPJecH10A23UfuzZSsQA==", "license": "MIT", "dependencies": { "@types/events": "*" @@ -2252,14 +1398,10 @@ }, "node_modules/@types/mime": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", "license": "MIT" }, "node_modules/@types/node": { "version": "22.12.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.12.0.tgz", - "integrity": "sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==", "license": "MIT", "dependencies": { "undici-types": "~6.20.0" @@ -2267,8 +1409,6 @@ }, "node_modules/@types/node-fetch": { "version": "2.6.12", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.12.tgz", - "integrity": "sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==", "license": "MIT", "dependencies": { "@types/node": "*", @@ -2277,27 +1417,19 @@ }, "node_modules/@types/prop-types": { "version": "15.7.14", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", - "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", "devOptional": true, "license": "MIT" }, "node_modules/@types/qs": { "version": "6.9.18", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", - "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==", "license": "MIT" }, "node_modules/@types/range-parser": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", "license": "MIT" }, "node_modules/@types/react": { "version": "18.3.18", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", - "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", "devOptional": true, "license": "MIT", "dependencies": { @@ -2307,8 +1439,6 @@ }, "node_modules/@types/react-dom": { "version": "18.3.5", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", - "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", "devOptional": true, "license": "MIT", "peerDependencies": { @@ -2317,14 +1447,10 @@ }, "node_modules/@types/saslmechanisms": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@types/saslmechanisms/-/saslmechanisms-0.1.3.tgz", - "integrity": "sha512-HUgi9jPWUy3T1kafWyA6EImXytjXVu+xupRaYgEQhP0H8wb3W02i0zgmJM0BVsGSvYfuAL/oD/TE5h3BQ/7JVg==", "license": "MIT" }, "node_modules/@types/send": { "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", "license": "MIT", "dependencies": { "@types/mime": "^1", @@ -2333,8 +1459,6 @@ }, "node_modules/@types/serve-static": { "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", "license": "MIT", "dependencies": { "@types/http-errors": "*", @@ -2344,8 +1468,6 @@ }, "node_modules/@types/xmpp__client": { "version": "0.13.3", - "resolved": "https://registry.npmjs.org/@types/xmpp__client/-/xmpp__client-0.13.3.tgz", - "integrity": "sha512-YiKUD9ex+4lrO3S6GbMkw7DKcJnfgj34GNCvKymxfgFMq66ZR5Z8PV+sdIYsgjJw8c7MjmhUAX2iTW5ouR8rrA==", "license": "MIT", "dependencies": { "@types/koa-compose": "*", @@ -2362,8 +1484,6 @@ }, "node_modules/@types/xmpp__client-core": { "version": "0.13.3", - "resolved": "https://registry.npmjs.org/@types/xmpp__client-core/-/xmpp__client-core-0.13.3.tgz", - "integrity": "sha512-ZZAQeZMG05wQjRNXePUPIP1/xhCiptoNSPATtZjM6310IHU8F5seb+5Ii7EUmKa/ew61KjPe1+TztEFPcqtQcQ==", "license": "MIT", "dependencies": { "@types/xmpp__connection": "*", @@ -2373,8 +1493,6 @@ }, "node_modules/@types/xmpp__connection": { "version": "0.13.3", - "resolved": "https://registry.npmjs.org/@types/xmpp__connection/-/xmpp__connection-0.13.3.tgz", - "integrity": "sha512-WqW5VEyARmUzDiX++yFQbtPCFee7uWGcd5wcdMQXkl7SMKTFioxPbPbKVe8eOFsnUhq+6uxLrkUJqVlCumelCQ==", "license": "MIT", "dependencies": { "@types/xmpp__error": "*", @@ -2385,8 +1503,6 @@ }, "node_modules/@types/xmpp__error": { "version": "0.13.3", - "resolved": "https://registry.npmjs.org/@types/xmpp__error/-/xmpp__error-0.13.3.tgz", - "integrity": "sha512-N7/PUc4+Q5aRDJ4Ipm9NbtKiCNHR763Z+9CdPQpc/PElwblsy62gJEmBgKj8d4yotMn9pwNMEg9NHcFh2mTBZQ==", "license": "MIT", "dependencies": { "@types/xmpp__xml": "*" @@ -2394,8 +1510,6 @@ }, "node_modules/@types/xmpp__events": { "version": "0.13.3", - "resolved": "https://registry.npmjs.org/@types/xmpp__events/-/xmpp__events-0.13.3.tgz", - "integrity": "sha512-GW844fKApo5wRg2MUlceETZFAdKO2zqElAQJZaR41oqDn5uv0BfnFUAbJ1MCGeyO0Ul0pyNw3m5/mzskiM/u2A==", "license": "MIT", "dependencies": { "@types/node": "*" @@ -2403,8 +1517,6 @@ }, "node_modules/@types/xmpp__iq": { "version": "0.13.4", - "resolved": "https://registry.npmjs.org/@types/xmpp__iq/-/xmpp__iq-0.13.4.tgz", - "integrity": "sha512-bMZVX6EWdrEOLud5gW8ducc0DGDH9JSQYEXMIeQYEmE4VjFiWDAo30dhVyeSqYwM4K6GaS9rnOdHvysMUE8iKA==", "license": "MIT", "dependencies": { "@types/koa-compose": "*", @@ -2415,14 +1527,10 @@ }, "node_modules/@types/xmpp__jid": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/xmpp__jid/-/xmpp__jid-1.3.5.tgz", - "integrity": "sha512-7nbg+XOOswcLAqjU6f5qBzdmoMw8JvcpPP36O+DACZyPAi88LGw8ulmy05F7jpvjXlGAFGrFvnmF5d9OrU+LfQ==", "license": "MIT" }, "node_modules/@types/xmpp__middleware": { "version": "0.13.3", - "resolved": "https://registry.npmjs.org/@types/xmpp__middleware/-/xmpp__middleware-0.13.3.tgz", - "integrity": "sha512-qzqsJ1ZgkW9zezkkWGcMfvAx0XurYhMBr5E3txYCBi2OX+ATWv1eFFz1fxFWeYoEhtZSqr6BU9BHzd5BQW0RIg==", "license": "MIT", "dependencies": { "@types/koa-compose": "*", @@ -2434,8 +1542,6 @@ }, "node_modules/@types/xmpp__reconnect": { "version": "0.13.3", - "resolved": "https://registry.npmjs.org/@types/xmpp__reconnect/-/xmpp__reconnect-0.13.3.tgz", - "integrity": "sha512-PaOmUCuwMKXHsIN02uN23GErOeBzo6MwZYDdbH5S3GCFo7eLVPH9xPeXNW74/be3Dp6+CzDfHhr46efNSG6kww==", "license": "MIT", "dependencies": { "@types/xmpp__connection": "*", @@ -2444,8 +1550,6 @@ }, "node_modules/@types/xmpp__resource-binding": { "version": "0.13.3", - "resolved": "https://registry.npmjs.org/@types/xmpp__resource-binding/-/xmpp__resource-binding-0.13.3.tgz", - "integrity": "sha512-05Tta9Cj0anOXU8imZtBLDt4YnmVhxiMcSDXNZfqFi0oBP03cettJvTKudD2azimRsuEF94jIMmJ8z7dat0V4w==", "license": "MIT", "dependencies": { "@types/xmpp__iq": "*", @@ -2456,8 +1560,6 @@ }, "node_modules/@types/xmpp__sasl": { "version": "0.13.6", - "resolved": "https://registry.npmjs.org/@types/xmpp__sasl/-/xmpp__sasl-0.13.6.tgz", - "integrity": "sha512-2sXw7oewQ7U2a+NAKeYrIHXsLnrl5oqHi/vzr2Fl/5GmEFSWQEG2g3wqnhs16k2VxvslOY9rY9tY2uKd8Iz77g==", "license": "MIT", "dependencies": { "@types/saslmechanisms": "*", @@ -2468,8 +1570,6 @@ }, "node_modules/@types/xmpp__stream-features": { "version": "0.13.3", - "resolved": "https://registry.npmjs.org/@types/xmpp__stream-features/-/xmpp__stream-features-0.13.3.tgz", - "integrity": "sha512-PgylX899T/yFQnPbBciMbdhXuM4XMLhThzwYzWPnlzo7hms88nSkJZrRYiemlSUqZ1z8VzwcsHTa2/CduUeF5w==", "license": "MIT", "dependencies": { "@types/koa": "*", @@ -2480,8 +1580,6 @@ }, "node_modules/@types/xmpp__stream-management": { "version": "0.13.3", - "resolved": "https://registry.npmjs.org/@types/xmpp__stream-management/-/xmpp__stream-management-0.13.3.tgz", - "integrity": "sha512-KMcRL30R4WzZKghsPbbOUrEMbh8PWsGo2e6IiAK3PzUDWvSA7z+MQl0K9BVI2DHYhqCFI+qxKIYSoahdagR7lw==", "license": "MIT", "dependencies": { "@types/xmpp__middleware": "*", @@ -2490,8 +1588,6 @@ }, "node_modules/@types/xmpp__xml": { "version": "0.13.4", - "resolved": "https://registry.npmjs.org/@types/xmpp__xml/-/xmpp__xml-0.13.4.tgz", - "integrity": "sha512-j5cRnNJPvLhjCDpKZC+2g0HdMPqmA2xD417P1JKxEZlhQkfKrsCeBi20dsUHaVZJ/NFChkrr/bqW5bE9Oq5luw==", "license": "MIT", "dependencies": { "@types/ltx": "*" @@ -2499,8 +1595,6 @@ }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.22.0.tgz", - "integrity": "sha512-4Uta6REnz/xEJMvwf72wdUnC3rr4jAQf5jnTkeRQ9b6soxLxhDEbS/pfMPoJLDfFPNVRdryqWUIV/2GZzDJFZw==", "dev": true, "license": "MIT", "dependencies": { @@ -2529,8 +1623,6 @@ }, "node_modules/@typescript-eslint/parser": { "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.22.0.tgz", - "integrity": "sha512-MqtmbdNEdoNxTPzpWiWnqNac54h8JDAmkWtJExBVVnSrSmi9z+sZUt0LfKqk9rjqmKOIeRhO4fHHJ1nQIjduIQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2554,8 +1646,6 @@ }, "node_modules/@typescript-eslint/scope-manager": { "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.22.0.tgz", - "integrity": "sha512-/lwVV0UYgkj7wPSw0o8URy6YI64QmcOdwHuGuxWIYznO6d45ER0wXUbksr9pYdViAofpUCNJx/tAzNukgvaaiQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2572,8 +1662,6 @@ }, "node_modules/@typescript-eslint/type-utils": { "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.22.0.tgz", - "integrity": "sha512-NzE3aB62fDEaGjaAYZE4LH7I1MUwHooQ98Byq0G0y3kkibPJQIXVUspzlFOmOfHhiDLwKzMlWxaNv+/qcZurJA==", "dev": true, "license": "MIT", "dependencies": { @@ -2596,8 +1684,6 @@ }, "node_modules/@typescript-eslint/types": { "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.22.0.tgz", - "integrity": "sha512-0S4M4baNzp612zwpD4YOieP3VowOARgK2EkN/GBn95hpyF8E2fbMT55sRHWBq+Huaqk3b3XK+rxxlM8sPgGM6A==", "dev": true, "license": "MIT", "engines": { @@ -2610,8 +1696,6 @@ }, "node_modules/@typescript-eslint/typescript-estree": { "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.22.0.tgz", - "integrity": "sha512-SJX99NAS2ugGOzpyhMza/tX+zDwjvwAtQFLsBo3GQxiGcvaKlqGBkmZ+Y1IdiSi9h4Q0Lr5ey+Cp9CGWNY/F/w==", "dev": true, "license": "MIT", "dependencies": { @@ -2637,8 +1721,6 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "license": "MIT", "dependencies": { @@ -2647,8 +1729,6 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "license": "ISC", "dependencies": { @@ -2663,8 +1743,6 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "bin": { @@ -2676,8 +1754,6 @@ }, "node_modules/@typescript-eslint/utils": { "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.22.0.tgz", - "integrity": "sha512-T8oc1MbF8L+Bk2msAvCUzjxVB2Z2f+vXYfcucE2wOmYs7ZUwco5Ep0fYZw8quNwOiw9K8GYVL+Kgc2pETNTLOg==", "dev": true, "license": "MIT", "dependencies": { @@ -2700,8 +1776,6 @@ }, "node_modules/@typescript-eslint/visitor-keys": { "version": "8.22.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.22.0.tgz", - "integrity": "sha512-AWpYAXnUgvLNabGTy3uBylkgZoosva/miNd1I8Bz3SjotmQPbVqhO4Cczo8AsZ44XVErEBPr/CRSgaj8sG7g0w==", "dev": true, "license": "MIT", "dependencies": { @@ -2718,8 +1792,6 @@ }, "node_modules/@vitejs/plugin-react": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", - "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", "dev": true, "license": "MIT", "dependencies": { @@ -2738,8 +1810,6 @@ }, "node_modules/@xmpp/base64": { "version": "0.13.2", - "resolved": "https://registry.npmjs.org/@xmpp/base64/-/base64-0.13.2.tgz", - "integrity": "sha512-RDEq66sW/jqj2HZKoRvnIvlRJMRLEGa0EGyJ0yPCF1+KijmTqrWr1PxZAol850QizXlqpvo8MS8OCFWMryX7RQ==", "license": "ISC", "dependencies": { "base-64": "^1.0.0" @@ -2750,8 +1820,6 @@ }, "node_modules/@xmpp/client-core": { "version": "0.13.3", - "resolved": "https://registry.npmjs.org/@xmpp/client-core/-/client-core-0.13.3.tgz", - "integrity": "sha512-pOtCozET4BxJZU7aWykT+PFBGaxT/Sl8mC0E3X6QgL7/2Vo39lz2KIhkcvtSwMC8myuaB+klOBrifuKLo3IajA==", "license": "ISC", "dependencies": { "@xmpp/connection": "^0.13.3", @@ -2764,8 +1832,6 @@ }, "node_modules/@xmpp/connection": { "version": "0.13.3", - "resolved": "https://registry.npmjs.org/@xmpp/connection/-/connection-0.13.3.tgz", - "integrity": "sha512-EM6/wLUJ6MFJl7Kb+qwQut1gLDp7G107KTOB1W/GljGMd7ydD2Bn0BJt2AAx8EGPve9G2jjhV3+jJmu7KwK4rQ==", "license": "ISC", "dependencies": { "@xmpp/error": "^0.13.2", @@ -2779,8 +1845,6 @@ }, "node_modules/@xmpp/error": { "version": "0.13.2", - "resolved": "https://registry.npmjs.org/@xmpp/error/-/error-0.13.2.tgz", - "integrity": "sha512-bjbxwF8s6jfQNI+ZHV9Jwcb7K2kBeTlD60QHjMJlxIUrjTH1ZsJoDQh9tMdq1mBu/h/bm2SX7yZUqUb1wY6gMw==", "license": "ISC", "engines": { "node": ">= 14" @@ -2788,8 +1852,6 @@ }, "node_modules/@xmpp/events": { "version": "0.13.2", - "resolved": "https://registry.npmjs.org/@xmpp/events/-/events-0.13.2.tgz", - "integrity": "sha512-fXaAMChvLnP9vEQIatFKWoAm/F9U122hShfRfVw4xS6pympThygWVPIuRuAznMt5tOyTVFWBuPge6hgGousT0g==", "license": "ISC", "dependencies": { "events": "^3.3.0" @@ -2800,8 +1862,6 @@ }, "node_modules/@xmpp/id": { "version": "0.13.2", - "resolved": "https://registry.npmjs.org/@xmpp/id/-/id-0.13.2.tgz", - "integrity": "sha512-LhSzcaPvjddvL+u/xNAuu6tNtxWR7HZPTyMUck8tyYnbwsXaJQ6sDoS8AEQE8o7iW5E31xJUTOktYd/s6HMo3w==", "license": "ISC", "engines": { "node": ">= 14" @@ -2809,8 +1869,6 @@ }, "node_modules/@xmpp/iq": { "version": "0.13.3", - "resolved": "https://registry.npmjs.org/@xmpp/iq/-/iq-0.13.3.tgz", - "integrity": "sha512-sGeyGF4OnYGTZw3PhQaYLYlE8+LRZfYijT/ESGqhY2ed9gm0U4TCR8C8s5oT7Puu6S6smdHehcvYCrcFEeQyBw==", "license": "ISC", "dependencies": { "@xmpp/events": "^0.13.2", @@ -2824,8 +1882,6 @@ }, "node_modules/@xmpp/jid": { "version": "0.13.2", - "resolved": "https://registry.npmjs.org/@xmpp/jid/-/jid-0.13.2.tgz", - "integrity": "sha512-OuYrxiNdlmXgMFPJqnbZSKe/bdn1wxtc1ASEadrizI9h6T1y7tAEl5YpXFWYb+fdAL9vRD+bGCxrDUrm1er/LQ==", "license": "ISC", "engines": { "node": ">= 14" @@ -2833,8 +1889,6 @@ }, "node_modules/@xmpp/middleware": { "version": "0.13.3", - "resolved": "https://registry.npmjs.org/@xmpp/middleware/-/middleware-0.13.3.tgz", - "integrity": "sha512-zZTsqLaHnfTqMBDyZh01HLYUgcHLmbalVfC32CsEcjPG5/bIete9sOUVPaiGH1cicMgi3O7WZK512RvQFcBbwA==", "license": "ISC", "dependencies": { "@xmpp/error": "^0.13.2", @@ -2848,8 +1902,6 @@ }, "node_modules/@xmpp/reconnect": { "version": "0.13.2", - "resolved": "https://registry.npmjs.org/@xmpp/reconnect/-/reconnect-0.13.2.tgz", - "integrity": "sha512-FWCC+dzi23N7H99PYPqWZa7oRPNp9G7yYzMZwOpeiVporbNy+op3yUbCszo3YA3XVEsuLRQ1aQJ8evLo+GD5ow==", "license": "ISC", "dependencies": { "@xmpp/events": "^0.13.2" @@ -2860,8 +1912,6 @@ }, "node_modules/@xmpp/resolve": { "version": "0.13.3", - "resolved": "https://registry.npmjs.org/@xmpp/resolve/-/resolve-0.13.3.tgz", - "integrity": "sha512-HL86p0a2CI0ILFYUR8vPR77ZXwxQ0xXLLRnyb88TjQ/eNbYsc1gmdXjELE0xRCfQblXZsETvUwWv5RofTYAgrQ==", "license": "ISC", "dependencies": { "@xmpp/events": "^0.13.2", @@ -2874,8 +1924,6 @@ }, "node_modules/@xmpp/resolve/node_modules/node-fetch": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", "license": "MIT", "dependencies": { "data-uri-to-buffer": "^4.0.0", @@ -2892,8 +1940,6 @@ }, "node_modules/@xmpp/resource-binding": { "version": "0.13.3", - "resolved": "https://registry.npmjs.org/@xmpp/resource-binding/-/resource-binding-0.13.3.tgz", - "integrity": "sha512-cph/8vJ5sRHVg7Njx8rR27xAVmKWACSx95jlOw7LmUSTRSxZDw2wHsqie76HxUD5fPszOsTh/Ph7Fw1532aRUQ==", "license": "ISC", "dependencies": { "@xmpp/xml": "^0.13.3" @@ -2904,8 +1950,6 @@ }, "node_modules/@xmpp/sasl": { "version": "0.13.4", - "resolved": "https://registry.npmjs.org/@xmpp/sasl/-/sasl-0.13.4.tgz", - "integrity": "sha512-craijUkSSrYB43YgqHRigVe8JYFLTBdC1eiIlQRAhN37QMTCb0zz3AAgcoxYccrZDStHXNC7WMi149A4AKp6RA==", "license": "ISC", "dependencies": { "@xmpp/base64": "^0.13.2", @@ -2919,8 +1963,6 @@ }, "node_modules/@xmpp/sasl-anonymous": { "version": "0.13.2", - "resolved": "https://registry.npmjs.org/@xmpp/sasl-anonymous/-/sasl-anonymous-0.13.2.tgz", - "integrity": "sha512-0fI9+A+Vptcyv8+o8J2veRnodtnKahJDy5fappIZbmXLrv4JcrVBChQDWULyta0Hez9M3XWoIyuhp4pyz0IU/Q==", "license": "ISC", "dependencies": { "sasl-anonymous": "^0.1.0" @@ -2931,8 +1973,6 @@ }, "node_modules/@xmpp/sasl-plain": { "version": "0.13.2", - "resolved": "https://registry.npmjs.org/@xmpp/sasl-plain/-/sasl-plain-0.13.2.tgz", - "integrity": "sha512-zwS/q+Vd4YsLdnZjmCuS1JCacWWg2Vd3ecqpBmIV3S394s1Mgiwdnd2bVRen5S0kl/de+VzHg/DRLuYvC94SUg==", "license": "ISC", "dependencies": { "sasl-plain": "^0.1.0" @@ -2943,8 +1983,6 @@ }, "node_modules/@xmpp/session-establishment": { "version": "0.13.3", - "resolved": "https://registry.npmjs.org/@xmpp/session-establishment/-/session-establishment-0.13.3.tgz", - "integrity": "sha512-dQhH7aIzsqyMRsjMIuER4UBCxQgvDUHjkmNoeIbUZX5bYJuGeET90tZ4eNAq6yXnpSGJiKoXVfVBxNoiXovfgA==", "license": "ISC", "dependencies": { "@xmpp/xml": "^0.13.3" @@ -2955,8 +1993,6 @@ }, "node_modules/@xmpp/stream-features": { "version": "0.13.2", - "resolved": "https://registry.npmjs.org/@xmpp/stream-features/-/stream-features-0.13.2.tgz", - "integrity": "sha512-eyxFEEDSfNvG4ybvAYTYkjaUcaytu8sAqT8DfWwrWzCkPgfRzpexsxb9yhe8hAVrvPLavOyr+zh4raUQf4Ogkg==", "license": "ISC", "engines": { "node": ">= 14" @@ -2964,8 +2000,6 @@ }, "node_modules/@xmpp/websocket": { "version": "0.13.3", - "resolved": "https://registry.npmjs.org/@xmpp/websocket/-/websocket-0.13.3.tgz", - "integrity": "sha512-RXZJFecaAlotqhAdNohO0SoP8Rx3eJrl18c78gxybAhNaCexFbuMJIvSj91L/b8bOErJtFMTwreWeMfzP6Ijiw==", "license": "ISC", "dependencies": { "@xmpp/connection": "^0.13.3", @@ -2978,8 +2012,6 @@ }, "node_modules/@xmpp/xml": { "version": "0.13.3", - "resolved": "https://registry.npmjs.org/@xmpp/xml/-/xml-0.13.3.tgz", - "integrity": "sha512-lYXBg/VlpUeavGgQE8LADfZUzMFUnWFVYgvKUcx97AqjiEJUuo40ijdRcGmkAVtTg0RBkml5WB+Mo+JqynMk7Q==", "license": "ISC", "dependencies": { "ltx": "^3.1.1" @@ -2990,8 +2022,6 @@ }, "node_modules/acorn": { "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "license": "MIT", "bin": { @@ -3003,8 +2033,6 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "license": "MIT", "peerDependencies": { @@ -3013,8 +2041,6 @@ }, "node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "license": "MIT", "dependencies": { @@ -3030,8 +2056,6 @@ }, "node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -3046,15 +2070,11 @@ }, "node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, "license": "Python-2.0" }, "node_modules/aria-hidden": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", - "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", "license": "MIT", "dependencies": { "tslib": "^2.0.0" @@ -3065,27 +2085,19 @@ }, "node_modules/asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "license": "MIT" }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true, "license": "MIT" }, "node_modules/base-64": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz", - "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==", "license": "MIT" }, "node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "license": "MIT", "dependencies": { @@ -3095,8 +2107,6 @@ }, "node_modules/braces": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "license": "MIT", "dependencies": { @@ -3108,8 +2118,6 @@ }, "node_modules/browserslist": { "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", "dev": true, "funding": [ { @@ -3141,8 +2149,6 @@ }, "node_modules/callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, "license": "MIT", "engines": { @@ -3151,8 +2157,6 @@ }, "node_modules/caniuse-lite": { "version": "1.0.30001695", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz", - "integrity": "sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==", "dev": true, "funding": [ { @@ -3172,8 +2176,6 @@ }, "node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -3189,8 +2191,6 @@ }, "node_modules/class-variance-authority": { "version": "0.7.1", - "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", - "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", "license": "Apache-2.0", "dependencies": { "clsx": "^2.1.1" @@ -3201,8 +2201,6 @@ }, "node_modules/clsx": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", "license": "MIT", "engines": { "node": ">=6" @@ -3210,8 +2208,6 @@ }, "node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3223,15 +2219,11 @@ }, "node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "license": "MIT" }, "node_modules/combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" @@ -3242,15 +2234,11 @@ }, "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true, "license": "MIT" }, "node_modules/connectycube": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/connectycube/-/connectycube-4.0.2.tgz", - "integrity": "sha512-Zz5l8BcJwEFZ8DTa/3dW6UJ2Rn/CW5cOZUqKjIMtPZuBqBCg0wNWQlcRSt79qHcld7NaBtYOMDFW3nC2U+lGog==", "license": "Apache-2.0", "dependencies": { "@types/form-data": "^2.5.2", @@ -3275,15 +2263,11 @@ }, "node_modules/convert-source-map": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, "license": "MIT" }, "node_modules/cookie": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", - "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", "license": "MIT", "engines": { "node": ">=18" @@ -3291,8 +2275,6 @@ }, "node_modules/cross-spawn": { "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", "dependencies": { @@ -3306,24 +2288,28 @@ }, "node_modules/csstype": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "devOptional": true, "license": "MIT" }, "node_modules/data-uri-to-buffer": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", "license": "MIT", "engines": { "node": ">= 12" } }, + "node_modules/date-fns": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, "node_modules/debug": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, "license": "MIT", "dependencies": { @@ -3340,15 +2326,11 @@ }, "node_modules/deep-is": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true, "license": "MIT" }, "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "license": "MIT", "engines": { "node": ">=0.4.0" @@ -3356,21 +2338,15 @@ }, "node_modules/detect-node-es": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", "license": "MIT" }, "node_modules/electron-to-chromium": { "version": "1.5.88", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.88.tgz", - "integrity": "sha512-K3C2qf1o+bGzbilTDCTBhTQcMS9KW60yTAaTeeXsfvQuTDDwlokLam/AdqlqcSy9u4UainDgsHV23ksXAOgamw==", "dev": true, "license": "ISC" }, "node_modules/esbuild": { "version": "0.24.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", - "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -3410,8 +2386,6 @@ }, "node_modules/escalade": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "license": "MIT", "engines": { @@ -3420,8 +2394,6 @@ }, "node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "license": "MIT", "engines": { @@ -3433,8 +2405,6 @@ }, "node_modules/eslint": { "version": "9.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.19.0.tgz", - "integrity": "sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==", "dev": true, "license": "MIT", "dependencies": { @@ -3493,8 +2463,6 @@ }, "node_modules/eslint-plugin-react-hooks": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0.tgz", - "integrity": "sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==", "dev": true, "license": "MIT", "engines": { @@ -3506,8 +2474,6 @@ }, "node_modules/eslint-plugin-react-refresh": { "version": "0.4.18", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.18.tgz", - "integrity": "sha512-IRGEoFn3OKalm3hjfolEWGqoF/jPqeEYFp+C8B0WMzwGwBMvlRDQd06kghDhF0C61uJ6WfSDhEZE/sAQjduKgw==", "dev": true, "license": "MIT", "peerDependencies": { @@ -3516,8 +2482,6 @@ }, "node_modules/eslint-scope": { "version": "8.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", - "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -3533,8 +2497,6 @@ }, "node_modules/eslint-visitor-keys": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -3546,8 +2508,6 @@ }, "node_modules/espree": { "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -3564,8 +2524,6 @@ }, "node_modules/esquery": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -3577,8 +2535,6 @@ }, "node_modules/esrecurse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -3590,8 +2546,6 @@ }, "node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -3600,8 +2554,6 @@ }, "node_modules/esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -3610,14 +2562,10 @@ }, "node_modules/eventemitter3": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", "license": "MIT" }, "node_modules/events": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "license": "MIT", "engines": { "node": ">=0.8.x" @@ -3625,15 +2573,11 @@ }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true, "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "license": "MIT", "dependencies": { @@ -3649,8 +2593,6 @@ }, "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "license": "ISC", "dependencies": { @@ -3662,22 +2604,16 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true, "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true, "license": "MIT" }, "node_modules/fastq": { "version": "1.18.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", - "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", "dev": true, "license": "ISC", "dependencies": { @@ -3686,8 +2622,6 @@ }, "node_modules/fetch-blob": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", "funding": [ { "type": "github", @@ -3709,8 +2643,6 @@ }, "node_modules/file-entry-cache": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3722,8 +2654,6 @@ }, "node_modules/fill-range": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "license": "MIT", "dependencies": { @@ -3735,8 +2665,6 @@ }, "node_modules/find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "license": "MIT", "dependencies": { @@ -3752,8 +2680,6 @@ }, "node_modules/flat-cache": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "license": "MIT", "dependencies": { @@ -3766,15 +2692,11 @@ }, "node_modules/flatted": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", - "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", "dev": true, "license": "ISC" }, "node_modules/form-data": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", - "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", @@ -3787,8 +2709,6 @@ }, "node_modules/formdata-polyfill": { "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", "license": "MIT", "dependencies": { "fetch-blob": "^3.1.2" @@ -3799,10 +2719,7 @@ }, "node_modules/fsevents": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "hasInstallScript": true, "license": "MIT", "optional": true, "os": [ @@ -3814,8 +2731,6 @@ }, "node_modules/gensync": { "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, "license": "MIT", "engines": { @@ -3824,8 +2739,6 @@ }, "node_modules/get-nonce": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", "license": "MIT", "engines": { "node": ">=6" @@ -3833,8 +2746,6 @@ }, "node_modules/glob-parent": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "license": "ISC", "dependencies": { @@ -3846,8 +2757,6 @@ }, "node_modules/globals": { "version": "15.14.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz", - "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==", "dev": true, "license": "MIT", "engines": { @@ -3859,15 +2768,11 @@ }, "node_modules/graphemer": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true, "license": "MIT" }, "node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", "engines": { @@ -3876,8 +2781,6 @@ }, "node_modules/ignore": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "license": "MIT", "engines": { @@ -3886,8 +2789,6 @@ }, "node_modules/import-fresh": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "license": "MIT", "dependencies": { @@ -3903,8 +2804,6 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "license": "MIT", "engines": { @@ -3913,8 +2812,6 @@ }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "license": "MIT", "engines": { @@ -3923,8 +2820,6 @@ }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "license": "MIT", "dependencies": { @@ -3936,8 +2831,6 @@ }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "license": "MIT", "engines": { @@ -3946,21 +2839,15 @@ }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true, "license": "ISC" }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "license": "MIT", "dependencies": { @@ -3972,8 +2859,6 @@ }, "node_modules/jsesc": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, "license": "MIT", "bin": { @@ -3985,29 +2870,21 @@ }, "node_modules/json-buffer": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true, "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true, "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true, "license": "MIT" }, "node_modules/json5": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "license": "MIT", "bin": { @@ -4019,8 +2896,6 @@ }, "node_modules/keyv": { "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, "license": "MIT", "dependencies": { @@ -4029,14 +2904,10 @@ }, "node_modules/koa-compose": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", - "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", "license": "MIT" }, "node_modules/levn": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4049,8 +2920,6 @@ }, "node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "license": "MIT", "dependencies": { @@ -4065,21 +2934,15 @@ }, "node_modules/lodash.merge": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true, "license": "MIT" }, "node_modules/lodash.throttle": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", "license": "MIT" }, "node_modules/loose-envify": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" @@ -4090,8 +2953,6 @@ }, "node_modules/lru-cache": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "license": "ISC", "dependencies": { @@ -4100,8 +2961,6 @@ }, "node_modules/ltx": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/ltx/-/ltx-3.1.2.tgz", - "integrity": "sha512-tFSKojN92FqNK6eRTmKK/ROUTUYVWKAxgohz523TPhF1G3nR3DXQS/I7/705rEPrDSloKDgMdRlh0qgMFQoVYw==", "license": "MIT", "engines": { "node": ">= 12.4.0" @@ -4109,8 +2968,6 @@ }, "node_modules/lucide-react": { "version": "0.474.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.474.0.tgz", - "integrity": "sha512-CmghgHkh0OJNmxGKWc0qfPJCYHASPMVSyGY8fj3xgk4v84ItqDg64JNKFZn5hC6E0vHi6gxnbCgwhyVB09wQtA==", "license": "ISC", "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" @@ -4118,8 +2975,6 @@ }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "license": "MIT", "engines": { @@ -4128,8 +2983,6 @@ }, "node_modules/micromatch": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "license": "MIT", "dependencies": { @@ -4142,8 +2995,6 @@ }, "node_modules/mime-db": { "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "license": "MIT", "engines": { "node": ">= 0.6" @@ -4151,8 +3002,6 @@ }, "node_modules/mime-types": { "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "license": "MIT", "dependencies": { "mime-db": "1.52.0" @@ -4163,8 +3012,6 @@ }, "node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "license": "ISC", "dependencies": { @@ -4176,15 +3023,11 @@ }, "node_modules/ms": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, "license": "MIT" }, "node_modules/nanoid": { "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "dev": true, "funding": [ { @@ -4202,15 +3045,11 @@ }, "node_modules/natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true, "license": "MIT" }, "node_modules/node-domexception": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", "funding": [ { "type": "github", @@ -4228,8 +3067,6 @@ }, "node_modules/node-fetch": { "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" @@ -4248,15 +3085,11 @@ }, "node_modules/node-releases": { "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "dev": true, "license": "MIT" }, "node_modules/object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -4264,8 +3097,6 @@ }, "node_modules/optionator": { "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "license": "MIT", "dependencies": { @@ -4282,8 +3113,6 @@ }, "node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4298,8 +3127,6 @@ }, "node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "license": "MIT", "dependencies": { @@ -4314,8 +3141,6 @@ }, "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "license": "MIT", "dependencies": { @@ -4327,8 +3152,6 @@ }, "node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "license": "MIT", "engines": { @@ -4337,8 +3160,6 @@ }, "node_modules/path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "license": "MIT", "engines": { @@ -4347,15 +3168,11 @@ }, "node_modules/picocolors": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true, "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "license": "MIT", "engines": { @@ -4367,8 +3184,6 @@ }, "node_modules/postcss": { "version": "8.5.1", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", - "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", "dev": true, "funding": [ { @@ -4396,8 +3211,6 @@ }, "node_modules/prelude-ls": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, "license": "MIT", "engines": { @@ -4406,8 +3219,6 @@ }, "node_modules/prop-types": { "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", @@ -4417,8 +3228,6 @@ }, "node_modules/punycode": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "license": "MIT", "engines": { @@ -4427,8 +3236,6 @@ }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -4448,8 +3255,6 @@ }, "node_modules/react": { "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" @@ -4460,8 +3265,6 @@ }, "node_modules/react-dom": { "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", @@ -4473,8 +3276,6 @@ }, "node_modules/react-hook-form": { "version": "7.54.2", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.54.2.tgz", - "integrity": "sha512-eHpAUgUjWbZocoQYUHposymRb4ZP6d0uwUnooL2uOybA9/3tPUvoAKqEWK1WaSiTxxOfTpffNZP7QwlnM3/gEg==", "license": "MIT", "engines": { "node": ">=18.0.0" @@ -4489,8 +3290,6 @@ }, "node_modules/react-icons": { "version": "5.4.0", - "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.4.0.tgz", - "integrity": "sha512-7eltJxgVt7X64oHh6wSWNwwbKTCtMfK35hcjvJS0yxEAhPM8oUKdS3+kqaW1vicIltw+kR2unHaa12S9pPALoQ==", "license": "MIT", "peerDependencies": { "react": "*" @@ -4498,8 +3297,6 @@ }, "node_modules/react-intersection-observer": { "version": "9.15.1", - "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.15.1.tgz", - "integrity": "sha512-vGrqYEVWXfH+AGu241uzfUpNK4HAdhCkSAyFdkMb9VWWXs6mxzBLpWCxEy9YcnDNY2g9eO6z7qUtTBdA9hc8pA==", "license": "MIT", "peerDependencies": { "react": "^17.0.0 || ^18.0.0 || ^19.0.0", @@ -4513,14 +3310,10 @@ }, "node_modules/react-is": { "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "license": "MIT" }, "node_modules/react-refresh": { "version": "0.14.2", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", - "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", "dev": true, "license": "MIT", "engines": { @@ -4529,8 +3322,6 @@ }, "node_modules/react-remove-scroll": { "version": "2.6.3", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.3.tgz", - "integrity": "sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==", "license": "MIT", "dependencies": { "react-remove-scroll-bar": "^2.3.7", @@ -4554,8 +3345,6 @@ }, "node_modules/react-remove-scroll-bar": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", - "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", "license": "MIT", "dependencies": { "react-style-singleton": "^2.2.2", @@ -4576,8 +3365,6 @@ }, "node_modules/react-router": { "version": "7.1.3", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.1.3.tgz", - "integrity": "sha512-EezYymLY6Guk/zLQ2vRA8WvdUhWFEj5fcE3RfWihhxXBW7+cd1LsIiA3lmx+KCmneAGQuyBv820o44L2+TtkSA==", "license": "MIT", "dependencies": { "@types/cookie": "^0.6.0", @@ -4600,8 +3387,6 @@ }, "node_modules/react-router-dom": { "version": "7.1.3", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.1.3.tgz", - "integrity": "sha512-qQGTE+77hleBzv9SIUIkGRvuFBQGagW+TQKy53UTZAO/3+YFNBYvRsNIZ1GT17yHbc63FylMOdS+m3oUriF1GA==", "license": "MIT", "dependencies": { "react-router": "7.1.3" @@ -4616,8 +3401,6 @@ }, "node_modules/react-scroll": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/react-scroll/-/react-scroll-1.9.0.tgz", - "integrity": "sha512-mamNcaX9Ng+JeSbBu97nWwRhYvL2oba+xR2GxvyXsbDeGP+gkYIKZ+aDMMj/n20TbV9SCWm/H7nyuNTSiXA6yA==", "license": "MIT", "dependencies": { "lodash.throttle": "^4.1.1", @@ -4630,8 +3413,6 @@ }, "node_modules/react-style-singleton": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", - "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", "license": "MIT", "dependencies": { "get-nonce": "^1.0.0", @@ -4650,10 +3431,17 @@ } } }, + "node_modules/react-usestateref": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/react-usestateref/-/react-usestateref-1.0.9.tgz", + "integrity": "sha512-t8KLsI7oje0HzfzGhxFXzuwbf1z9vhBM1ptHLUIHhYqZDKFuI5tzdhEVxSNzUkYxwF8XdpOErzHlKxvP7sTERw==", + "license": "ISC", + "peerDependencies": { + "react": ">16.0.0" + } + }, "node_modules/resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, "license": "MIT", "engines": { @@ -4662,8 +3450,6 @@ }, "node_modules/reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, "license": "MIT", "engines": { @@ -4673,8 +3459,6 @@ }, "node_modules/rollup": { "version": "4.32.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.32.1.tgz", - "integrity": "sha512-z+aeEsOeEa3mEbS1Tjl6sAZ8NE3+AalQz1RJGj81M+fizusbdDMoEJwdJNHfaB40Scr4qNu+welOfes7maKonA==", "dev": true, "license": "MIT", "dependencies": { @@ -4712,8 +3496,6 @@ }, "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -4736,32 +3518,24 @@ }, "node_modules/sasl-anonymous": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/sasl-anonymous/-/sasl-anonymous-0.1.0.tgz", - "integrity": "sha512-x+0sdsV0Gie2EexxAUsx6ZoB+X6OCthlNBvAQncQxreEWQJByAPntj0EAgTlJc2kZicoc+yFzeR6cl8VfsQGfA==", "engines": { "node": ">= 0.4.0" } }, "node_modules/sasl-plain": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/sasl-plain/-/sasl-plain-0.1.0.tgz", - "integrity": "sha512-X8mCSfR8y0NryTu0tuVyr4IS2jBunBgyG+3a0gEEkd0nlHGiyqJhlc4EIkzmSwaa7F8S4yo+LS6Cu5qxRkJrmg==", "engines": { "node": ">= 0.4.0" } }, "node_modules/saslmechanisms": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/saslmechanisms/-/saslmechanisms-0.1.1.tgz", - "integrity": "sha512-pVlvK5ysevz8MzybRnDIa2YMxn0OJ7b9lDiWhMoaKPoJ7YkAg/7YtNjUgaYzElkwHxsw8dBMhaEn7UP6zxEwPg==", "engines": { "node": ">= 0.4.0" } }, "node_modules/scheduler": { "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" @@ -4769,8 +3543,6 @@ }, "node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "license": "ISC", "bin": { @@ -4779,14 +3551,10 @@ }, "node_modules/set-cookie-parser": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", - "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", "license": "MIT" }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "license": "MIT", "dependencies": { @@ -4798,8 +3566,6 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "license": "MIT", "engines": { @@ -4808,8 +3574,6 @@ }, "node_modules/source-map-js": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -4818,8 +3582,6 @@ }, "node_modules/strip-json-comments": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "license": "MIT", "engines": { @@ -4831,8 +3593,6 @@ }, "node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { @@ -4844,8 +3604,6 @@ }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4857,14 +3615,10 @@ }, "node_modules/tr46": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "license": "MIT" }, "node_modules/ts-api-utils": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", - "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", "dev": true, "license": "MIT", "engines": { @@ -4876,20 +3630,14 @@ }, "node_modules/tslib": { "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, "node_modules/turbo-stream": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", - "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", "license": "ISC" }, "node_modules/type-check": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "license": "MIT", "dependencies": { @@ -4901,8 +3649,6 @@ }, "node_modules/typescript": { "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -4915,8 +3661,6 @@ }, "node_modules/typescript-eslint": { "version": "8.22.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.22.0.tgz", - "integrity": "sha512-Y2rj210FW1Wb6TWXzQc5+P+EWI9/zdS57hLEc0gnyuvdzWo8+Y8brKlbj0muejonhMI/xAZCnZZwjbIfv1CkOw==", "dev": true, "license": "MIT", "dependencies": { @@ -4938,14 +3682,10 @@ }, "node_modules/undici-types": { "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "license": "MIT" }, "node_modules/update-browserslist-db": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", - "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", "dev": true, "funding": [ { @@ -4975,8 +3715,6 @@ }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -4985,8 +3723,6 @@ }, "node_modules/use-callback-ref": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", - "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", "license": "MIT", "dependencies": { "tslib": "^2.0.0" @@ -5004,11 +3740,8 @@ } } }, - "node_modules/use-chat": {}, "node_modules/use-sidecar": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", - "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", "license": "MIT", "dependencies": { "detect-node-es": "^1.1.0", @@ -5029,8 +3762,6 @@ }, "node_modules/vite": { "version": "6.0.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.11.tgz", - "integrity": "sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==", "dev": true, "license": "MIT", "dependencies": { @@ -5101,8 +3832,6 @@ }, "node_modules/web-streams-polyfill": { "version": "3.3.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", - "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", "license": "MIT", "engines": { "node": ">= 8" @@ -5110,14 +3839,10 @@ }, "node_modules/webidl-conversions": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "license": "BSD-2-Clause" }, "node_modules/whatwg-url": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "license": "MIT", "dependencies": { "tr46": "~0.0.3", @@ -5126,8 +3851,6 @@ }, "node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "license": "ISC", "dependencies": { @@ -5142,8 +3865,6 @@ }, "node_modules/word-wrap": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, "license": "MIT", "engines": { @@ -5152,8 +3873,6 @@ }, "node_modules/ws": { "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -5173,15 +3892,11 @@ }, "node_modules/yallist": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true, "license": "ISC" }, "node_modules/yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, "license": "MIT", "engines": { diff --git a/__vite-react-ts-test-chat-widget/package.json b/__vite-react-ts-test-chat-widget/package.json index cfb3491d..abd4dcec 100644 --- a/__vite-react-ts-test-chat-widget/package.json +++ b/__vite-react-ts-test-chat-widget/package.json @@ -1,5 +1,5 @@ { - "name": "-vite-react-ts-test-chat-widget", + "name": "vite-react-ts-test-chat-widget", "private": true, "version": "0.0.0", "type": "module", @@ -10,7 +10,7 @@ "preview": "vite preview" }, "dependencies": { - "@connectycube/chat-widget": "file:../chat-widget/connectycube-chat-widget-0.1.0.tgz", + "@connectycube/chat-widget": "file:../chat-widget/connectycube-chat-widget-0.1.0-9.tgz", "react": "^18.3.1", "react-dom": "^18.3.1" }, diff --git a/__vite-react-ts-test-chat-widget/src/App.tsx b/__vite-react-ts-test-chat-widget/src/App.tsx index 87a2bd4e..7b4b5965 100644 --- a/__vite-react-ts-test-chat-widget/src/App.tsx +++ b/__vite-react-ts-test-chat-widget/src/App.tsx @@ -33,7 +33,7 @@ function App() { ) diff --git a/chat-widget/libs/connectycube-use-chat-0.1.0.tgz b/chat-widget/libs/connectycube-use-chat-0.1.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..3959392bc06c2f6fa6e3a146abbd4bd38bb6df0a GIT binary patch literal 84315 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̊P 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 literal 0 HcmV?d00001 diff --git a/chat-widget/package-lock.json b/chat-widget/package-lock.json index 6cba121c..f8e1412e 100644 --- a/chat-widget/package-lock.json +++ b/chat-widget/package-lock.json @@ -1,14 +1,14 @@ { "name": "@connectycube/chat-widget", - "version": "0.1.0", + "version": "0.1.0-9", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@connectycube/chat-widget", - "version": "0.1.0", + "version": "0.1.0-9", "dependencies": { - "@connectycube/use-chat": "file:../../use-chat", + "@connectycube/use-chat": "file:./connectycube-use-chat-0.1.0.tgz", "@fingerprintjs/fingerprintjs": "^4.5.1", "@radix-ui/react-alert-dialog": "^1.1.5", "@radix-ui/react-avatar": "^1.1.2", @@ -19,7 +19,7 @@ "@radix-ui/react-tabs": "^1.1.2", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", - "connectycube": "4.0.2", + "connectycube": "^4.0.2", "lucide-react": "^0.474.0", "react": "^18.3.1", "react-dom": "^18.3.1", @@ -47,1675 +47,755 @@ "tailwindcss": "^3.4.17", "tailwindcss-animate": "^1.0.7", "typescript": "~5.7.3", - "typescript-eslint": "^8.21.0", + "typescript-eslint": "^8.22.0", "vite": "^6.0.11", "vite-plugin-dts": "^4.5.0", "vite-plugin-node-polyfills": "^0.23.0" } }, - "../../use-chat": { - "name": "@connectycube/use-chat", - "version": "0.1.0", - "dependencies": { - "date-fns": "^4.1.0", - "react-usestateref": "^1.0.9" - }, - "devDependencies": { - "@rollup/plugin-commonjs": "^28.0.2", - "@rollup/plugin-node-resolve": "^16.0.0", - "@rollup/plugin-terser": "^0.4.4", - "@rollup/plugin-typescript": "^12.1.2", - "@types/react": "^19.0.8", - "rollup": "^4.32.0", - "rollup-plugin-peer-deps-external": "^2.2.4", - "tslib": "^2.8.1", - "typescript": "^5.7.3" + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" }, - "peerDependencies": { - "connectycube": ">=4.0.0", - "react": ">=18.0.0", - "react-dom": ">=18.0.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "../../use-chat/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, - "../../use-chat/node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" } }, - "../../use-chat/node_modules/@jridgewell/set-array": { - "version": "1.2.1", + "node_modules/@babel/compat-data": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz", + "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", "dev": true, "license": "MIT", "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" } }, - "../../use-chat/node_modules/@jridgewell/source-map": { - "version": "0.3.6", + "node_modules/@babel/core": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.7.tgz", + "integrity": "sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.7", + "@babel/parser": "^7.26.7", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.26.7", + "@babel/types": "^7.26.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "../../use-chat/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "dev": true, - "license": "MIT" - }, - "../../use-chat/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", + "node_modules/@babel/generator": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", + "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "@babel/parser": "^7.26.5", + "@babel/types": "^7.26.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" } }, - "../../use-chat/node_modules/@rollup/plugin-commonjs": { - "version": "28.0.2", + "node_modules/@babel/helper-compilation-targets": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", "dev": true, "license": "MIT", "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "commondir": "^1.0.1", - "estree-walker": "^2.0.2", - "fdir": "^6.2.0", - "is-reference": "1.2.1", - "magic-string": "^0.30.3", - "picomatch": "^4.0.2" + "@babel/compat-data": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, "engines": { - "node": ">=16.0.0 || 14 >= 14.17" - }, - "peerDependencies": { - "rollup": "^2.68.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "node": ">=6.9.0" } }, - "../../use-chat/node_modules/@rollup/plugin-node-resolve": { - "version": "16.0.0", + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, "license": "MIT", "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "@types/resolve": "1.20.2", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.22.1" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.78.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "node": ">=6.9.0" } }, - "../../use-chat/node_modules/@rollup/plugin-terser": { - "version": "0.4.4", + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, "license": "MIT", "dependencies": { - "serialize-javascript": "^6.0.1", - "smob": "^1.0.0", - "terser": "^5.17.4" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "rollup": "^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "@babel/core": "^7.0.0" } }, - "../../use-chat/node_modules/@rollup/plugin-typescript": { - "version": "12.1.2", + "node_modules/@babel/helper-plugin-utils": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", "dev": true, "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.1.0", - "resolve": "^1.22.1" - }, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.14.0||^3.0.0||^4.0.0", - "tslib": "*", - "typescript": ">=3.7.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - }, - "tslib": { - "optional": true - } + "node": ">=6.9.0" } }, - "../../use-chat/node_modules/@rollup/pluginutils": { - "version": "5.1.4", + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^4.0.2" - }, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "node": ">=6.9.0" } }, - "../../use-chat/node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.32.0", - "cpu": [ - "arm64" - ], + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] + "engines": { + "node": ">=6.9.0" + } }, - "../../use-chat/node_modules/@types/accepts": { - "version": "1.3.7", + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "dev": true, "license": "MIT", - "peer": true, - "dependencies": { - "@types/node": "*" + "engines": { + "node": ">=6.9.0" } }, - "../../use-chat/node_modules/@types/body-parser": { - "version": "1.19.5", + "node_modules/@babel/helpers": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.7.tgz", + "integrity": "sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==", + "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "@types/connect": "*", - "@types/node": "*" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "../../use-chat/node_modules/@types/connect": { - "version": "3.4.38", + "node_modules/@babel/parser": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.7.tgz", + "integrity": "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==", + "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "@types/node": "*" + "@babel/types": "^7.26.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" } }, - "../../use-chat/node_modules/@types/content-disposition": { - "version": "0.5.8", - "license": "MIT", - "peer": true - }, - "../../use-chat/node_modules/@types/cookies": { - "version": "0.9.0", + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", + "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "@types/connect": "*", - "@types/express": "*", - "@types/keygrip": "*", - "@types/node": "*" + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "../../use-chat/node_modules/@types/estree": { - "version": "1.0.6", + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", "dev": true, - "license": "MIT" - }, - "../../use-chat/node_modules/@types/events": { - "version": "3.0.3", - "license": "MIT", - "peer": true - }, - "../../use-chat/node_modules/@types/express": { - "version": "5.0.0", "license": "MIT", - "peer": true, "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^5.0.0", - "@types/qs": "*", - "@types/serve-static": "*" + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "../../use-chat/node_modules/@types/express-serve-static-core": { - "version": "5.0.5", + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "../../use-chat/node_modules/@types/form-data": { - "version": "2.5.2", - "deprecated": "This is a stub types definition. form-data provides its own type definitions, so you do not need this installed.", - "license": "MIT", - "peer": true, - "dependencies": { - "form-data": "*" - } - }, - "../../use-chat/node_modules/@types/http-assert": { - "version": "1.5.6", - "license": "MIT", - "peer": true - }, - "../../use-chat/node_modules/@types/http-errors": { - "version": "2.0.4", - "license": "MIT", - "peer": true - }, - "../../use-chat/node_modules/@types/keygrip": { - "version": "1.0.6", - "license": "MIT", - "peer": true - }, - "../../use-chat/node_modules/@types/koa": { - "version": "2.15.0", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/accepts": "*", - "@types/content-disposition": "*", - "@types/cookies": "*", - "@types/http-assert": "*", - "@types/http-errors": "*", - "@types/keygrip": "*", - "@types/koa-compose": "*", - "@types/node": "*" - } - }, - "../../use-chat/node_modules/@types/koa-compose": { - "version": "3.2.8", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/koa": "*" - } - }, - "../../use-chat/node_modules/@types/ltx": { - "version": "3.1.0", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/events": "*" - } - }, - "../../use-chat/node_modules/@types/mime": { - "version": "1.3.5", - "license": "MIT", - "peer": true - }, - "../../use-chat/node_modules/@types/node": { - "version": "22.10.9", - "license": "MIT", - "peer": true, - "dependencies": { - "undici-types": "~6.20.0" - } - }, - "../../use-chat/node_modules/@types/node-fetch": { - "version": "2.6.12", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/node": "*", - "form-data": "^4.0.0" - } - }, - "../../use-chat/node_modules/@types/qs": { - "version": "6.9.18", - "license": "MIT", - "peer": true - }, - "../../use-chat/node_modules/@types/range-parser": { - "version": "1.2.7", - "license": "MIT", - "peer": true - }, - "../../use-chat/node_modules/@types/react": { - "version": "19.0.8", - "dev": true, - "license": "MIT", - "dependencies": { - "csstype": "^3.0.2" - } - }, - "../../use-chat/node_modules/@types/resolve": { - "version": "1.20.2", - "dev": true, - "license": "MIT" - }, - "../../use-chat/node_modules/@types/saslmechanisms": { - "version": "0.1.3", - "license": "MIT", - "peer": true - }, - "../../use-chat/node_modules/@types/send": { - "version": "0.17.4", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "../../use-chat/node_modules/@types/serve-static": { - "version": "1.15.7", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, - "../../use-chat/node_modules/@types/xmpp__client": { - "version": "0.13.3", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/koa-compose": "*", - "@types/xmpp__client-core": "*", - "@types/xmpp__connection": "*", - "@types/xmpp__iq": "*", - "@types/xmpp__middleware": "*", - "@types/xmpp__reconnect": "*", - "@types/xmpp__resource-binding": "*", - "@types/xmpp__sasl": "*", - "@types/xmpp__stream-features": "*", - "@types/xmpp__stream-management": "*" - } - }, - "../../use-chat/node_modules/@types/xmpp__client-core": { - "version": "0.13.3", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/xmpp__connection": "*", - "@types/xmpp__jid": "*", - "@types/xmpp__xml": "*" - } - }, - "../../use-chat/node_modules/@types/xmpp__connection": { - "version": "0.13.3", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/xmpp__error": "*", - "@types/xmpp__events": "*", - "@types/xmpp__jid": "*", - "@types/xmpp__xml": "*" - } - }, - "../../use-chat/node_modules/@types/xmpp__error": { - "version": "0.13.3", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/xmpp__xml": "*" - } - }, - "../../use-chat/node_modules/@types/xmpp__events": { - "version": "0.13.3", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/node": "*" - } - }, - "../../use-chat/node_modules/@types/xmpp__iq": { - "version": "0.13.4", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/koa-compose": "*", - "@types/xmpp__events": "*", - "@types/xmpp__middleware": "*", - "@types/xmpp__xml": "*" - } - }, - "../../use-chat/node_modules/@types/xmpp__jid": { - "version": "1.3.5", - "license": "MIT", - "peer": true - }, - "../../use-chat/node_modules/@types/xmpp__middleware": { - "version": "0.13.3", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/koa-compose": "*", - "@types/xmpp__connection": "*", - "@types/xmpp__error": "*", - "@types/xmpp__jid": "*", - "@types/xmpp__xml": "*" - } - }, - "../../use-chat/node_modules/@types/xmpp__reconnect": { - "version": "0.13.3", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/xmpp__connection": "*", - "@types/xmpp__events": "*" - } - }, - "../../use-chat/node_modules/@types/xmpp__resource-binding": { - "version": "0.13.3", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/xmpp__iq": "*", - "@types/xmpp__middleware": "*", - "@types/xmpp__stream-features": "*", - "@types/xmpp__xml": "*" - } - }, - "../../use-chat/node_modules/@types/xmpp__sasl": { - "version": "0.13.6", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/saslmechanisms": "*", - "@types/xmpp__error": "*", - "@types/xmpp__middleware": "*", - "@types/xmpp__stream-features": "*" - } - }, - "../../use-chat/node_modules/@types/xmpp__stream-features": { - "version": "0.13.3", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/koa": "*", - "@types/koa-compose": "*", - "@types/xmpp__middleware": "*", - "@types/xmpp__xml": "*" - } - }, - "../../use-chat/node_modules/@types/xmpp__stream-management": { - "version": "0.13.3", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/xmpp__middleware": "*", - "@types/xmpp__stream-features": "*" - } - }, - "../../use-chat/node_modules/@types/xmpp__xml": { - "version": "0.13.4", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/ltx": "*" - } - }, - "../../use-chat/node_modules/@xmpp/base64": { - "version": "0.13.2", - "license": "ISC", - "peer": true, - "dependencies": { - "base-64": "^1.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "../../use-chat/node_modules/@xmpp/client-core": { - "version": "0.13.3", - "license": "ISC", - "peer": true, - "dependencies": { - "@xmpp/connection": "^0.13.3", - "@xmpp/jid": "^0.13.2", - "@xmpp/xml": "^0.13.3" - }, - "engines": { - "node": ">= 14" - } - }, - "../../use-chat/node_modules/@xmpp/connection": { - "version": "0.13.3", - "license": "ISC", - "peer": true, - "dependencies": { - "@xmpp/error": "^0.13.2", - "@xmpp/events": "^0.13.2", - "@xmpp/jid": "^0.13.2", - "@xmpp/xml": "^0.13.3" - }, - "engines": { - "node": ">= 14" - } - }, - "../../use-chat/node_modules/@xmpp/error": { - "version": "0.13.2", - "license": "ISC", - "peer": true, - "engines": { - "node": ">= 14" - } - }, - "../../use-chat/node_modules/@xmpp/events": { - "version": "0.13.2", - "license": "ISC", - "peer": true, - "dependencies": { - "events": "^3.3.0" - }, - "engines": { - "node": ">= 14" - } - }, - "../../use-chat/node_modules/@xmpp/id": { - "version": "0.13.2", - "license": "ISC", - "peer": true, - "engines": { - "node": ">= 14" - } - }, - "../../use-chat/node_modules/@xmpp/iq": { - "version": "0.13.3", - "license": "ISC", - "peer": true, - "dependencies": { - "@xmpp/events": "^0.13.2", - "@xmpp/id": "^0.13.2", - "@xmpp/middleware": "^0.13.3", - "@xmpp/xml": "^0.13.3" - }, - "engines": { - "node": ">= 14" - } - }, - "../../use-chat/node_modules/@xmpp/jid": { - "version": "0.13.2", - "license": "ISC", - "peer": true, - "engines": { - "node": ">= 14" - } - }, - "../../use-chat/node_modules/@xmpp/middleware": { - "version": "0.13.3", - "license": "ISC", - "peer": true, - "dependencies": { - "@xmpp/error": "^0.13.2", - "@xmpp/jid": "^0.13.2", - "@xmpp/xml": "^0.13.3", - "koa-compose": "^4.1.0" - }, - "engines": { - "node": ">= 14" - } - }, - "../../use-chat/node_modules/@xmpp/reconnect": { - "version": "0.13.2", - "license": "ISC", - "peer": true, - "dependencies": { - "@xmpp/events": "^0.13.2" - }, - "engines": { - "node": ">= 14" - } - }, - "../../use-chat/node_modules/@xmpp/resolve": { - "version": "0.13.3", - "license": "ISC", - "peer": true, - "dependencies": { - "@xmpp/events": "^0.13.2", - "@xmpp/xml": "^0.13.3", - "node-fetch": "^3.3.2" - }, - "engines": { - "node": ">= 14" - } - }, - "../../use-chat/node_modules/@xmpp/resolve/node_modules/node-fetch": { - "version": "3.3.2", - "license": "MIT", - "peer": true, - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "../../use-chat/node_modules/@xmpp/resource-binding": { - "version": "0.13.3", - "license": "ISC", - "peer": true, - "dependencies": { - "@xmpp/xml": "^0.13.3" - }, - "engines": { - "node": ">= 14" - } - }, - "../../use-chat/node_modules/@xmpp/sasl": { - "version": "0.13.4", - "license": "ISC", - "peer": true, - "dependencies": { - "@xmpp/base64": "^0.13.2", - "@xmpp/error": "^0.13.2", - "@xmpp/xml": "^0.13.3", - "saslmechanisms": "^0.1.1" - }, - "engines": { - "node": ">= 14" - } - }, - "../../use-chat/node_modules/@xmpp/sasl-anonymous": { - "version": "0.13.2", - "license": "ISC", - "peer": true, - "dependencies": { - "sasl-anonymous": "^0.1.0" - }, - "engines": { - "node": ">= 14" - } - }, - "../../use-chat/node_modules/@xmpp/sasl-plain": { - "version": "0.13.2", - "license": "ISC", - "peer": true, - "dependencies": { - "sasl-plain": "^0.1.0" - }, - "engines": { - "node": ">= 14" - } - }, - "../../use-chat/node_modules/@xmpp/session-establishment": { - "version": "0.13.3", - "license": "ISC", - "peer": true, - "dependencies": { - "@xmpp/xml": "^0.13.3" - }, - "engines": { - "node": ">= 14" - } - }, - "../../use-chat/node_modules/@xmpp/stream-features": { - "version": "0.13.2", - "license": "ISC", - "peer": true, - "engines": { - "node": ">= 14" - } - }, - "../../use-chat/node_modules/@xmpp/websocket": { - "version": "0.13.3", - "license": "ISC", - "peer": true, - "dependencies": { - "@xmpp/connection": "^0.13.3", - "@xmpp/xml": "^0.13.3", - "ws": "^8.18.0" - }, - "engines": { - "node": ">= 14" - } - }, - "../../use-chat/node_modules/@xmpp/xml": { - "version": "0.13.3", - "license": "ISC", - "peer": true, - "dependencies": { - "ltx": "^3.1.1" - }, - "engines": { - "node": ">= 14" - } - }, - "../../use-chat/node_modules/acorn": { - "version": "8.14.0", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "../../use-chat/node_modules/asynckit": { - "version": "0.4.0", - "license": "MIT", - "peer": true - }, - "../../use-chat/node_modules/base-64": { - "version": "1.0.0", - "license": "MIT", - "peer": true - }, - "../../use-chat/node_modules/buffer-from": { - "version": "1.1.2", - "dev": true, - "license": "MIT" - }, - "../../use-chat/node_modules/combined-stream": { - "version": "1.0.8", - "license": "MIT", - "peer": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../../use-chat/node_modules/commondir": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "../../use-chat/node_modules/connectycube": { - "version": "4.0.1", - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@types/form-data": "^2.5.2", - "@types/node-fetch": "^2.6.12", - "@types/xmpp__client": "^0.13.3", - "@xmpp/client-core": "^0.13.3", - "@xmpp/iq": "^0.13.3", - "@xmpp/middleware": "^0.13.3", - "@xmpp/reconnect": "^0.13.2", - "@xmpp/resolve": "^0.13.3", - "@xmpp/resource-binding": "^0.13.3", - "@xmpp/sasl": "^0.13.4", - "@xmpp/sasl-anonymous": "^0.13.2", - "@xmpp/sasl-plain": "^0.13.2", - "@xmpp/session-establishment": "^0.13.3", - "@xmpp/stream-features": "^0.13.2", - "@xmpp/websocket": "^0.13.3", - "eventemitter3": "^5.0.1", - "form-data": "4.0.1", - "node-fetch": "2.7.0" - } - }, - "../../use-chat/node_modules/csstype": { - "version": "3.1.3", - "dev": true, - "license": "MIT" - }, - "../../use-chat/node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 12" - } - }, - "../../use-chat/node_modules/date-fns": { - "version": "4.1.0", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/kossnocorp" - } - }, - "../../use-chat/node_modules/deepmerge": { - "version": "4.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../../use-chat/node_modules/delayed-stream": { - "version": "1.0.0", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.4.0" - } - }, - "../../use-chat/node_modules/estree-walker": { - "version": "2.0.2", - "dev": true, - "license": "MIT" - }, - "../../use-chat/node_modules/eventemitter3": { - "version": "5.0.1", - "license": "MIT", - "peer": true - }, - "../../use-chat/node_modules/events": { - "version": "3.3.0", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.8.x" - } - }, - "../../use-chat/node_modules/fdir": { - "version": "6.4.3", - "dev": true, - "license": "MIT", - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "../../use-chat/node_modules/fetch-blob": { - "version": "3.2.0", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, - "../../use-chat/node_modules/form-data": { - "version": "4.0.1", - "license": "MIT", - "peer": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "../../use-chat/node_modules/formdata-polyfill": { - "version": "4.0.10", - "license": "MIT", - "peer": true, - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "../../use-chat/node_modules/fsevents": { - "version": "2.3.3", - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "../../use-chat/node_modules/function-bind": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../use-chat/node_modules/hasown": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "../../use-chat/node_modules/is-core-module": { - "version": "2.16.1", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../use-chat/node_modules/is-module": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../use-chat/node_modules/is-reference": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, - "../../use-chat/node_modules/koa-compose": { - "version": "4.1.0", - "license": "MIT", - "peer": true - }, - "../../use-chat/node_modules/ltx": { - "version": "3.1.2", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 12.4.0" - } - }, - "../../use-chat/node_modules/magic-string": { - "version": "0.30.17", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" - } - }, - "../../use-chat/node_modules/mime-db": { - "version": "1.52.0", - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.6" - } - }, - "../../use-chat/node_modules/mime-types": { - "version": "2.1.35", - "license": "MIT", - "peer": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "../../use-chat/node_modules/node-domexception": { - "version": "1.0.0", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10.5.0" - } - }, - "../../use-chat/node_modules/node-fetch": { - "version": "2.7.0", - "license": "MIT", - "peer": true, - "dependencies": { - "whatwg-url": "^5.0.0" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "node": ">=6.9.0" } }, - "../../use-chat/node_modules/path-parse": { - "version": "1.0.7", - "dev": true, - "license": "MIT" - }, - "../../use-chat/node_modules/picomatch": { - "version": "4.0.2", + "node_modules/@babel/traverse": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.7.tgz", + "integrity": "sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==", "dev": true, "license": "MIT", - "engines": { - "node": ">=12" + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/parser": "^7.26.7", + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.7", + "debug": "^4.3.1", + "globals": "^11.1.0" }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "engines": { + "node": ">=6.9.0" } }, - "../../use-chat/node_modules/randombytes": { - "version": "2.1.0", + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "../../use-chat/node_modules/react": { - "version": "19.0.0", - "license": "MIT", - "peer": true, "engines": { - "node": ">=0.10.0" - } - }, - "../../use-chat/node_modules/react-dom": { - "version": "19.0.0", - "license": "MIT", - "peer": true, - "dependencies": { - "scheduler": "^0.25.0" - }, - "peerDependencies": { - "react": "^19.0.0" - } - }, - "../../use-chat/node_modules/react-usestateref": { - "version": "1.0.9", - "license": "ISC", - "peerDependencies": { - "react": ">16.0.0" + "node": ">=4" } }, - "../../use-chat/node_modules/resolve": { - "version": "1.22.10", + "node_modules/@babel/types": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.7.tgz", + "integrity": "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==", "dev": true, "license": "MIT", "dependencies": { - "is-core-module": "^2.16.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6.9.0" } }, - "../../use-chat/node_modules/rollup": { - "version": "4.32.0", - "dev": true, - "license": "MIT", + "node_modules/@connectycube/use-chat": { + "version": "0.1.0", + "resolved": "file:connectycube-use-chat-0.1.0.tgz", + "integrity": "sha512-eajBDCBmVnGmnXB3ssvzg3+nfMhLKmVhPhjkjEBYMGMkUU3XlwbwBM0de41AuXbwxGR55ctFR2tHX0WMiulFow==", "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" + "date-fns": "^4.1.0", + "react-usestateref": "^1.0.9" }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.32.0", - "@rollup/rollup-android-arm64": "4.32.0", - "@rollup/rollup-darwin-arm64": "4.32.0", - "@rollup/rollup-darwin-x64": "4.32.0", - "@rollup/rollup-freebsd-arm64": "4.32.0", - "@rollup/rollup-freebsd-x64": "4.32.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.32.0", - "@rollup/rollup-linux-arm-musleabihf": "4.32.0", - "@rollup/rollup-linux-arm64-gnu": "4.32.0", - "@rollup/rollup-linux-arm64-musl": "4.32.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.32.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.32.0", - "@rollup/rollup-linux-riscv64-gnu": "4.32.0", - "@rollup/rollup-linux-s390x-gnu": "4.32.0", - "@rollup/rollup-linux-x64-gnu": "4.32.0", - "@rollup/rollup-linux-x64-musl": "4.32.0", - "@rollup/rollup-win32-arm64-msvc": "4.32.0", - "@rollup/rollup-win32-ia32-msvc": "4.32.0", - "@rollup/rollup-win32-x64-msvc": "4.32.0", - "fsevents": "~2.3.2" - } - }, - "../../use-chat/node_modules/rollup-plugin-peer-deps-external": { - "version": "2.2.4", - "dev": true, - "license": "MIT", "peerDependencies": { - "rollup": "*" + "connectycube": ">=4.0.0", + "react": ">=18.0.0", + "react-dom": ">=18.0.0" } }, - "../../use-chat/node_modules/safe-buffer": { - "version": "5.2.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } + "node_modules/@esbuild/aix-ppc64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", + "cpu": [ + "ppc64" ], - "license": "MIT" - }, - "../../use-chat/node_modules/sasl-anonymous": { - "version": "0.1.0", - "peer": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "../../use-chat/node_modules/sasl-plain": { - "version": "0.1.0", - "peer": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "../../use-chat/node_modules/saslmechanisms": { - "version": "0.1.1", - "peer": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "../../use-chat/node_modules/scheduler": { - "version": "0.25.0", - "license": "MIT", - "peer": true - }, - "../../use-chat/node_modules/serialize-javascript": { - "version": "6.0.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "../../use-chat/node_modules/smob": { - "version": "1.5.0", - "dev": true, - "license": "MIT" - }, - "../../use-chat/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "../../use-chat/node_modules/source-map-support": { - "version": "0.5.21", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "../../use-chat/node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", "dev": true, "license": "MIT", + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../use-chat/node_modules/terser": { - "version": "5.37.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" + "node": ">=18" } }, - "../../use-chat/node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "dev": true, - "license": "MIT" - }, - "../../use-chat/node_modules/tr46": { - "version": "0.0.3", - "license": "MIT", - "peer": true - }, - "../../use-chat/node_modules/tslib": { - "version": "2.8.1", - "dev": true, - "license": "0BSD" - }, - "../../use-chat/node_modules/typescript": { - "version": "5.7.3", + "node_modules/@esbuild/android-arm": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", + "cpu": [ + "arm" + ], "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "../../use-chat/node_modules/undici-types": { - "version": "6.20.0", - "license": "MIT", - "peer": true - }, - "../../use-chat/node_modules/web-streams-polyfill": { - "version": "3.3.3", "license": "MIT", - "peer": true, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">= 8" - } - }, - "../../use-chat/node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause", - "peer": true - }, - "../../use-chat/node_modules/whatwg-url": { - "version": "5.0.0", - "license": "MIT", - "peer": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "node": ">=18" } }, - "../../use-chat/node_modules/ws": { - "version": "8.18.0", + "node_modules/@esbuild/android-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", + "cpu": [ + "arm64" + ], + "dev": true, "license": "MIT", - "peer": true, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "node": ">=18" } }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "node_modules/@esbuild/android-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6.0.0" + "node": ">=18" } }, - "node_modules/@babel/code-frame": { - "version": "7.26.2", + "node_modules/@esbuild/darwin-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/compat-data": { - "version": "7.26.5", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/core": { - "version": "7.26.7", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.5", - "@babel/helper-compilation-targets": "^7.26.5", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.7", - "@babel/parser": "^7.26.7", - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.26.7", - "@babel/types": "^7.26.7", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "node": ">=18" } }, - "node_modules/@babel/generator": { - "version": "7.26.5", + "node_modules/@esbuild/linux-arm": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/parser": "^7.26.5", - "@babel/types": "^7.26.5", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.26.5", + "node_modules/@esbuild/linux-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.26.5", - "@babel/helper-validator-option": "^7.25.9", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", + "node_modules/@esbuild/linux-ia32": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", + "node_modules/@esbuild/linux-loong64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", + "cpu": [ + "loong64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=18" } }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.26.5", + "node_modules/@esbuild/linux-mips64el": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", + "cpu": [ + "mips64el" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", + "node_modules/@esbuild/linux-ppc64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", + "cpu": [ + "ppc64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", + "node_modules/@esbuild/linux-riscv64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", + "cpu": [ + "riscv64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", + "node_modules/@esbuild/linux-s390x": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", + "cpu": [ + "s390x" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/helpers": { - "version": "7.26.7", + "node_modules/@esbuild/linux-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.7" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/parser": { - "version": "7.26.7", + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/types": "^7.26.7" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">=6.0.0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.25.9", + "node_modules/@esbuild/netbsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.25.9", + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/template": { - "version": "7.25.9", + "node_modules/@esbuild/openbsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/types": "^7.25.9" - }, + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/traverse": { - "version": "7.26.7", + "node_modules/@esbuild/sunos-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.5", - "@babel/parser": "^7.26.7", - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.7", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", + "node_modules/@esbuild/win32-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=4" + "node": ">=18" } }, - "node_modules/@babel/types": { - "version": "7.26.7", + "node_modules/@esbuild/win32-ia32": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@connectycube/use-chat": { - "resolved": "../../use-chat", - "link": true - }, - "node_modules/@esbuild/darwin-arm64": { + "node_modules/@esbuild/win32-x64": { "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", "cpu": [ - "arm64" + "x64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "darwin" + "win32" ], "engines": { "node": ">=18" @@ -1723,6 +803,8 @@ }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, "license": "MIT", "dependencies": { @@ -1740,6 +822,8 @@ }, "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1751,6 +835,8 @@ }, "node_modules/@eslint-community/regexpp": { "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "license": "MIT", "engines": { @@ -1759,6 +845,8 @@ }, "node_modules/@eslint/config-array": { "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", + "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1772,6 +860,8 @@ }, "node_modules/@eslint/core": { "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", + "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1783,6 +873,8 @@ }, "node_modules/@eslint/eslintrc": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, "license": "MIT", "dependencies": { @@ -1805,6 +897,8 @@ }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, "license": "MIT", "engines": { @@ -1816,6 +910,8 @@ }, "node_modules/@eslint/js": { "version": "9.19.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.19.0.tgz", + "integrity": "sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==", "dev": true, "license": "MIT", "engines": { @@ -1824,6 +920,8 @@ }, "node_modules/@eslint/object-schema": { "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", + "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1832,6 +930,8 @@ }, "node_modules/@eslint/plugin-kit": { "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", + "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1853,6 +953,8 @@ }, "node_modules/@floating-ui/core": { "version": "1.6.9", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz", + "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", "license": "MIT", "dependencies": { "@floating-ui/utils": "^0.2.9" @@ -1860,6 +962,8 @@ }, "node_modules/@floating-ui/dom": { "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", + "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", "license": "MIT", "dependencies": { "@floating-ui/core": "^1.6.0", @@ -1868,6 +972,8 @@ }, "node_modules/@floating-ui/react-dom": { "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", + "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", "license": "MIT", "dependencies": { "@floating-ui/dom": "^1.0.0" @@ -1879,10 +985,14 @@ }, "node_modules/@floating-ui/utils": { "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", "license": "MIT" }, "node_modules/@humanfs/core": { "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1891,6 +1001,8 @@ }, "node_modules/@humanfs/node": { "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1903,6 +1015,8 @@ }, "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1915,6 +1029,8 @@ }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1927,6 +1043,8 @@ }, "node_modules/@humanwhocodes/retry": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1957,6 +1075,8 @@ }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", "dev": true, "license": "MIT", "dependencies": { @@ -1970,6 +1090,8 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "license": "MIT", "engines": { @@ -1978,6 +1100,8 @@ }, "node_modules/@jridgewell/set-array": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, "license": "MIT", "engines": { @@ -1986,11 +1110,15 @@ }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2144,6 +1272,8 @@ }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "license": "MIT", "dependencies": { @@ -2156,6 +1286,8 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "license": "MIT", "engines": { @@ -2164,6 +1296,8 @@ }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "license": "MIT", "dependencies": { @@ -2174,62 +1308,6 @@ "node": ">= 8" } }, - "node_modules/@parcel/watcher": { - "version": "2.5.1", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "detect-libc": "^1.0.3", - "is-glob": "^4.0.3", - "micromatch": "^4.0.5", - "node-addon-api": "^7.0.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.5.1", - "@parcel/watcher-darwin-arm64": "2.5.1", - "@parcel/watcher-darwin-x64": "2.5.1", - "@parcel/watcher-freebsd-x64": "2.5.1", - "@parcel/watcher-linux-arm-glibc": "2.5.1", - "@parcel/watcher-linux-arm-musl": "2.5.1", - "@parcel/watcher-linux-arm64-glibc": "2.5.1", - "@parcel/watcher-linux-arm64-musl": "2.5.1", - "@parcel/watcher-linux-x64-glibc": "2.5.1", - "@parcel/watcher-linux-x64-musl": "2.5.1", - "@parcel/watcher-win32-arm64": "2.5.1", - "@parcel/watcher-win32-ia32": "2.5.1", - "@parcel/watcher-win32-x64": "2.5.1" - } - }, - "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.5.1", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -2243,10 +1321,14 @@ }, "node_modules/@radix-ui/primitive": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.1.tgz", + "integrity": "sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==", "license": "MIT" }, "node_modules/@radix-ui/react-alert-dialog": { "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.5.tgz", + "integrity": "sha512-1Y2sI17QzSZP58RjGtrklfSGIf3AF7U/HkD3aAcAnhOUJrm7+7GG1wRDFaUlSe0nW5B/t4mYd/+7RNbP2Wexug==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.1", @@ -2273,6 +1355,8 @@ }, "node_modules/@radix-ui/react-arrow": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.1.tgz", + "integrity": "sha512-NaVpZfmv8SKeZbn4ijN2V3jlHA9ngBG16VnIIm22nUR0Yk8KUALyBxT3KYEUnNuch9sTE8UTsS3whzBgKOL30w==", "license": "MIT", "dependencies": { "@radix-ui/react-primitive": "2.0.1" @@ -2294,6 +1378,8 @@ }, "node_modules/@radix-ui/react-avatar": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.2.tgz", + "integrity": "sha512-GaC7bXQZ5VgZvVvsJ5mu/AEbjYLnhhkoidOboC50Z6FFlLA03wG2ianUoH+zgDQ31/9gCF59bE4+2bBgTyMiig==", "license": "MIT", "dependencies": { "@radix-ui/react-context": "1.1.1", @@ -2318,6 +1404,8 @@ }, "node_modules/@radix-ui/react-collection": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.1.tgz", + "integrity": "sha512-LwT3pSho9Dljg+wY2KN2mrrh6y3qELfftINERIzBUO9e0N+t0oMTyn3k9iv+ZqgrwGkRnLpNJrsMv9BZlt2yuA==", "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.1", @@ -2342,6 +1430,8 @@ }, "node_modules/@radix-ui/react-compose-refs": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.1.tgz", + "integrity": "sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -2355,6 +1445,8 @@ }, "node_modules/@radix-ui/react-context": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", + "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -2368,6 +1460,8 @@ }, "node_modules/@radix-ui/react-dialog": { "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.5.tgz", + "integrity": "sha512-LaO3e5h/NOEL4OfXjxD43k9Dx+vn+8n+PCFt6uhX/BADFflllyv3WJG6rgvvSVBxpTch938Qq/LGc2MMxipXPw==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.1", @@ -2402,6 +1496,8 @@ }, "node_modules/@radix-ui/react-direction": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", + "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -2415,6 +1511,8 @@ }, "node_modules/@radix-ui/react-dismissable-layer": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.4.tgz", + "integrity": "sha512-XDUI0IVYVSwjMXxM6P4Dfti7AH+Y4oS/TB+sglZ/EXc7cqLwGAmp1NlMrcUjj7ks6R5WTZuWKv44FBbLpwU3sA==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.1", @@ -2440,6 +1538,8 @@ }, "node_modules/@radix-ui/react-dropdown-menu": { "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.5.tgz", + "integrity": "sha512-50ZmEFL1kOuLalPKHrLWvPFMons2fGx9TqQCWlPwDVpbAnaUJ1g4XNcKqFNMQymYU0kKWR4MDDi+9vUQBGFgcQ==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.1", @@ -2467,6 +1567,8 @@ }, "node_modules/@radix-ui/react-focus-guards": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz", + "integrity": "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -2480,6 +1582,8 @@ }, "node_modules/@radix-ui/react-focus-scope": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.1.tgz", + "integrity": "sha512-01omzJAYRxXdG2/he/+xy+c8a8gCydoQ1yOxnWNcRhrrBW5W+RQJ22EK1SaO8tb3WoUsuEw7mJjBozPzihDFjA==", "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.1", @@ -2503,6 +1607,8 @@ }, "node_modules/@radix-ui/react-id": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", + "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", "license": "MIT", "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.0" @@ -2519,6 +1625,8 @@ }, "node_modules/@radix-ui/react-label": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.1.tgz", + "integrity": "sha512-UUw5E4e/2+4kFMH7+YxORXGWggtY6sM8WIwh5RZchhLuUg2H1hc98Py+pr8HMz6rdaYrK2t296ZEjYLOCO5uUw==", "license": "MIT", "dependencies": { "@radix-ui/react-primitive": "2.0.1" @@ -2540,6 +1648,8 @@ }, "node_modules/@radix-ui/react-menu": { "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.5.tgz", + "integrity": "sha512-uH+3w5heoMJtqVCgYOtYVMECk1TOrkUn0OG0p5MqXC0W2ppcuVeESbou8PTHoqAjbdTEK19AGXBWcEtR5WpEQg==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.1", @@ -2578,6 +1688,8 @@ }, "node_modules/@radix-ui/react-popper": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.1.tgz", + "integrity": "sha512-3kn5Me69L+jv82EKRuQCXdYyf1DqHwD2U/sxoNgBGCB7K9TRc3bQamQ+5EPM9EvyPdli0W41sROd+ZU1dTCztw==", "license": "MIT", "dependencies": { "@floating-ui/react-dom": "^2.0.0", @@ -2608,6 +1720,8 @@ }, "node_modules/@radix-ui/react-portal": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.3.tgz", + "integrity": "sha512-NciRqhXnGojhT93RPyDaMPfLH3ZSl4jjIFbZQ1b/vxvZEdHsBZ49wP9w8L3HzUQwep01LcWtkUvm0OVB5JAHTw==", "license": "MIT", "dependencies": { "@radix-ui/react-primitive": "2.0.1", @@ -2630,6 +1744,8 @@ }, "node_modules/@radix-ui/react-presence": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.2.tgz", + "integrity": "sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==", "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.1", @@ -2652,6 +1768,8 @@ }, "node_modules/@radix-ui/react-primitive": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.1.tgz", + "integrity": "sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==", "license": "MIT", "dependencies": { "@radix-ui/react-slot": "1.1.1" @@ -2673,6 +1791,8 @@ }, "node_modules/@radix-ui/react-roving-focus": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.1.tgz", + "integrity": "sha512-QE1RoxPGJ/Nm8Qmk0PxP8ojmoaS67i0s7hVssS7KuI2FQoc/uzVlZsqKfQvxPE6D8hICCPHJ4D88zNhT3OOmkw==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.1", @@ -2702,6 +1822,8 @@ }, "node_modules/@radix-ui/react-slot": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.1.tgz", + "integrity": "sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==", "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.1" @@ -2748,6 +1870,8 @@ }, "node_modules/@radix-ui/react-use-callback-ref": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", + "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -2761,6 +1885,8 @@ }, "node_modules/@radix-ui/react-use-controllable-state": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", + "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", "license": "MIT", "dependencies": { "@radix-ui/react-use-callback-ref": "1.1.0" @@ -2777,6 +1903,8 @@ }, "node_modules/@radix-ui/react-use-escape-keydown": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", + "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", "license": "MIT", "dependencies": { "@radix-ui/react-use-callback-ref": "1.1.0" @@ -2793,6 +1921,8 @@ }, "node_modules/@radix-ui/react-use-layout-effect": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", + "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -2806,6 +1936,8 @@ }, "node_modules/@radix-ui/react-use-rect": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz", + "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==", "license": "MIT", "dependencies": { "@radix-ui/rect": "1.1.0" @@ -2822,6 +1954,8 @@ }, "node_modules/@radix-ui/react-use-size": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz", + "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==", "license": "MIT", "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.0" @@ -2836,73 +1970,335 @@ } } }, - "node_modules/@radix-ui/rect": { - "version": "1.1.0", - "license": "MIT" + "node_modules/@radix-ui/rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz", + "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==", + "license": "MIT" + }, + "node_modules/@rollup/plugin-inject": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz", + "integrity": "sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.32.1.tgz", + "integrity": "sha512-/pqA4DmqyCm8u5YIDzIdlLcEmuvxb0v8fZdFhVMszSpDTgbQKdw3/mB3eMUHIbubtJ6F9j+LtmyCnHTEqIHyzA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.32.1.tgz", + "integrity": "sha512-If3PDskT77q7zgqVqYuj7WG3WC08G1kwXGVFi9Jr8nY6eHucREHkfpX79c0ACAjLj3QIWKPJR7w4i+f5EdLH5Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.32.1.tgz", + "integrity": "sha512-zCpKHioQ9KgZToFp5Wvz6zaWbMzYQ2LJHQ+QixDKq52KKrF65ueu6Af4hLlLWHjX1Wf/0G5kSJM9PySW9IrvHA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.32.1.tgz", + "integrity": "sha512-sFvF+t2+TyUo/ZQqUcifrJIgznx58oFZbdHS9TvHq3xhPVL9nOp+yZ6LKrO9GWTP+6DbFtoyLDbjTpR62Mbr3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.32.1.tgz", + "integrity": "sha512-NbOa+7InvMWRcY9RG+B6kKIMD/FsnQPH0MWUvDlQB1iXnF/UcKSudCXZtv4lW+C276g3w5AxPbfry5rSYvyeYA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.32.1.tgz", + "integrity": "sha512-JRBRmwvHPXR881j2xjry8HZ86wIPK2CcDw0EXchE1UgU0ubWp9nvlT7cZYKc6bkypBt745b4bglf3+xJ7hXWWw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.32.1.tgz", + "integrity": "sha512-PKvszb+9o/vVdUzCCjL0sKHukEQV39tD3fepXxYrHE3sTKrRdCydI7uldRLbjLmDA3TFDmh418XH19NOsDRH8g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.32.1.tgz", + "integrity": "sha512-9WHEMV6Y89eL606ReYowXuGF1Yb2vwfKWKdD1A5h+OYnPZSJvxbEjxTRKPgi7tkP2DSnW0YLab1ooy+i/FQp/Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.32.1.tgz", + "integrity": "sha512-tZWc9iEt5fGJ1CL2LRPw8OttkCBDs+D8D3oEM8mH8S1ICZCtFJhD7DZ3XMGM8kpqHvhGUTvNUYVDnmkj4BDXnw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.32.1.tgz", + "integrity": "sha512-FTYc2YoTWUsBz5GTTgGkRYYJ5NGJIi/rCY4oK/I8aKowx1ToXeoVVbIE4LGAjsauvlhjfl0MYacxClLld1VrOw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.32.1.tgz", + "integrity": "sha512-F51qLdOtpS6P1zJVRzYM0v6MrBNypyPEN1GfMiz0gPu9jN8ScGaEFIZQwteSsGKg799oR5EaP7+B2jHgL+d+Kw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.32.1.tgz", + "integrity": "sha512-wO0WkfSppfX4YFm5KhdCCpnpGbtgQNj/tgvYzrVYFKDpven8w2N6Gg5nB6w+wAMO3AIfSTWeTjfVe+uZ23zAlg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.32.1.tgz", + "integrity": "sha512-iWswS9cIXfJO1MFYtI/4jjlrGb/V58oMu4dYJIKnR5UIwbkzR0PJ09O0PDZT0oJ3LYWXBSWahNf/Mjo6i1E5/g==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.32.1.tgz", + "integrity": "sha512-RKt8NI9tebzmEthMnfVgG3i/XeECkMPS+ibVZjZ6mNekpbbUmkNWuIN2yHsb/mBPyZke4nlI4YqIdFPgKuoyQQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.32.1.tgz", + "integrity": "sha512-WQFLZ9c42ECqEjwg/GHHsouij3pzLXkFdz0UxHa/0OM12LzvX7DzedlY0SIEly2v18YZLRhCRoHZDxbBSWoGYg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@rollup/plugin-inject": { - "version": "5.0.5", + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.32.1.tgz", + "integrity": "sha512-BLoiyHDOWoS3uccNSADMza6V6vCNiphi94tQlVIL5de+r6r/CCQuNnerf+1g2mnk2b6edp5dk0nhdZ7aEjOBsA==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.3" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@rollup/pluginutils": { - "version": "5.1.4", + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.32.1.tgz", + "integrity": "sha512-w2l3UnlgYTNNU+Z6wOR8YdaioqfEnwPjIsJ66KxKAf0p+AuL2FHeTX6qvM+p/Ue3XPBVNyVSfCrfZiQh7vZHLQ==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@rollup/pluginutils/node_modules/picomatch": { - "version": "4.0.2", + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.32.1.tgz", + "integrity": "sha512-Am9H+TGLomPGkBnaPWie4F3x+yQ2rr4Bk2jpwy+iV+Gel9jLAu/KqT8k3X4jxFPW6Zf8OMnehyutsd+eHoq1WQ==", + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.32.0", + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.32.1.tgz", + "integrity": "sha512-ar80GhdZb4DgmW3myIS9nRFYcpJRSME8iqWgzH2i44u+IdrzmiXVxeFnExQ5v4JYUSpg94bWjevMG8JHf1Da5Q==", "cpu": [ - "arm64" + "x64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "darwin" + "win32" ] }, "node_modules/@rushstack/node-core-library": { @@ -3076,6 +2472,8 @@ }, "node_modules/@types/accepts": { "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==", "license": "MIT", "dependencies": { "@types/node": "*" @@ -3090,6 +2488,8 @@ }, "node_modules/@types/babel__core": { "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, "license": "MIT", "dependencies": { @@ -3102,6 +2502,8 @@ }, "node_modules/@types/babel__generator": { "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, "license": "MIT", "dependencies": { @@ -3110,6 +2512,8 @@ }, "node_modules/@types/babel__template": { "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, "license": "MIT", "dependencies": { @@ -3119,6 +2523,8 @@ }, "node_modules/@types/babel__traverse": { "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", "dev": true, "license": "MIT", "dependencies": { @@ -3127,6 +2533,8 @@ }, "node_modules/@types/body-parser": { "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "license": "MIT", "dependencies": { "@types/connect": "*", @@ -3135,6 +2543,8 @@ }, "node_modules/@types/connect": { "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "license": "MIT", "dependencies": { "@types/node": "*" @@ -3142,14 +2552,20 @@ }, "node_modules/@types/content-disposition": { "version": "0.5.8", + "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.8.tgz", + "integrity": "sha512-QVSSvno3dE0MgO76pJhmv4Qyi/j0Yk9pBp0Y7TJ2Tlj+KCgJWY6qX7nnxCOLkZ3VYRSIk1WTxCvwUSdx6CCLdg==", "license": "MIT" }, "node_modules/@types/cookie": { "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", "license": "MIT" }, "node_modules/@types/cookies": { "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.9.0.tgz", + "integrity": "sha512-40Zk8qR147RABiQ7NQnBzWzDcjKzNrntB5BAmeGCb2p/MIyOE+4BVvc17wumsUqUw00bJYqoXFHYygQnEFh4/Q==", "license": "MIT", "dependencies": { "@types/connect": "*", @@ -3160,15 +2576,21 @@ }, "node_modules/@types/estree": { "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true, "license": "MIT" }, "node_modules/@types/events": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.3.tgz", + "integrity": "sha512-trOc4AAUThEz9hapPtSd7wf5tiQKvTtu5b371UxXdTuqzIh0ArcRspRP0i0Viu+LXstIQ1z96t1nsPxT9ol01g==", "license": "MIT" }, "node_modules/@types/express": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.0.tgz", + "integrity": "sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==", "license": "MIT", "dependencies": { "@types/body-parser": "*", @@ -3178,7 +2600,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "5.0.5", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", + "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", "license": "MIT", "dependencies": { "@types/node": "*", @@ -3189,6 +2613,8 @@ }, "node_modules/@types/form-data": { "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.5.2.tgz", + "integrity": "sha512-tfmcyHn1Pp9YHAO5r40+UuZUPAZbUEgqTel3EuEKpmF9hPkXgR4l41853raliXnb4gwyPNoQOfvgGGlHN5WSog==", "deprecated": "This is a stub types definition. form-data provides its own type definitions, so you do not need this installed.", "license": "MIT", "dependencies": { @@ -3197,23 +2623,33 @@ }, "node_modules/@types/http-assert": { "version": "1.5.6", + "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.6.tgz", + "integrity": "sha512-TTEwmtjgVbYAzZYWyeHPrrtWnfVkm8tQkP8P21uQifPgMRgjrow3XDEYqucuC8SKZJT7pUnhU/JymvjggxO9vw==", "license": "MIT" }, "node_modules/@types/http-errors": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true, "license": "MIT" }, "node_modules/@types/keygrip": { "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.6.tgz", + "integrity": "sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==", "license": "MIT" }, "node_modules/@types/koa": { "version": "2.15.0", + "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.15.0.tgz", + "integrity": "sha512-7QFsywoE5URbuVnG3loe03QXuGajrnotr3gQkXcEBShORai23MePfFYdhz90FEtBBpkyIYQbVD+evKtloCgX3g==", "license": "MIT", "dependencies": { "@types/accepts": "*", @@ -3228,6 +2664,8 @@ }, "node_modules/@types/koa-compose": { "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.8.tgz", + "integrity": "sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA==", "license": "MIT", "dependencies": { "@types/koa": "*" @@ -3235,6 +2673,8 @@ }, "node_modules/@types/ltx": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/ltx/-/ltx-3.1.0.tgz", + "integrity": "sha512-fkYKRqE7oAtqlImS4JvRP7PqFHJVCv7Dn7k8MOhz6u/MjnC9JOCbLdOb7Q0KfSYDQgtPJecH10A23UfuzZSsQA==", "license": "MIT", "dependencies": { "@types/events": "*" @@ -3242,12 +2682,14 @@ }, "node_modules/@types/mime": { "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", "license": "MIT" }, "node_modules/@types/node": { - "version": "22.10.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.10.tgz", - "integrity": "sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==", + "version": "22.12.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.12.0.tgz", + "integrity": "sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==", "license": "MIT", "dependencies": { "undici-types": "~6.20.0" @@ -3255,6 +2697,8 @@ }, "node_modules/@types/node-fetch": { "version": "2.6.12", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==", "license": "MIT", "dependencies": { "@types/node": "*", @@ -3263,19 +2707,27 @@ }, "node_modules/@types/prop-types": { "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", "devOptional": true, "license": "MIT" }, "node_modules/@types/qs": { "version": "6.9.18", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", + "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==", "license": "MIT" }, "node_modules/@types/range-parser": { "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", "license": "MIT" }, "node_modules/@types/react": { "version": "18.3.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", + "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", "devOptional": true, "license": "MIT", "dependencies": { @@ -3285,6 +2737,8 @@ }, "node_modules/@types/react-dom": { "version": "18.3.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", + "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", "devOptional": true, "license": "MIT", "peerDependencies": { @@ -3303,10 +2757,14 @@ }, "node_modules/@types/saslmechanisms": { "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@types/saslmechanisms/-/saslmechanisms-0.1.3.tgz", + "integrity": "sha512-HUgi9jPWUy3T1kafWyA6EImXytjXVu+xupRaYgEQhP0H8wb3W02i0zgmJM0BVsGSvYfuAL/oD/TE5h3BQ/7JVg==", "license": "MIT" }, "node_modules/@types/send": { "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", "license": "MIT", "dependencies": { "@types/mime": "^1", @@ -3315,6 +2773,8 @@ }, "node_modules/@types/serve-static": { "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", "license": "MIT", "dependencies": { "@types/http-errors": "*", @@ -3324,6 +2784,8 @@ }, "node_modules/@types/xmpp__client": { "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@types/xmpp__client/-/xmpp__client-0.13.3.tgz", + "integrity": "sha512-YiKUD9ex+4lrO3S6GbMkw7DKcJnfgj34GNCvKymxfgFMq66ZR5Z8PV+sdIYsgjJw8c7MjmhUAX2iTW5ouR8rrA==", "license": "MIT", "dependencies": { "@types/koa-compose": "*", @@ -3340,6 +2802,8 @@ }, "node_modules/@types/xmpp__client-core": { "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@types/xmpp__client-core/-/xmpp__client-core-0.13.3.tgz", + "integrity": "sha512-ZZAQeZMG05wQjRNXePUPIP1/xhCiptoNSPATtZjM6310IHU8F5seb+5Ii7EUmKa/ew61KjPe1+TztEFPcqtQcQ==", "license": "MIT", "dependencies": { "@types/xmpp__connection": "*", @@ -3349,6 +2813,8 @@ }, "node_modules/@types/xmpp__connection": { "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@types/xmpp__connection/-/xmpp__connection-0.13.3.tgz", + "integrity": "sha512-WqW5VEyARmUzDiX++yFQbtPCFee7uWGcd5wcdMQXkl7SMKTFioxPbPbKVe8eOFsnUhq+6uxLrkUJqVlCumelCQ==", "license": "MIT", "dependencies": { "@types/xmpp__error": "*", @@ -3359,6 +2825,8 @@ }, "node_modules/@types/xmpp__error": { "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@types/xmpp__error/-/xmpp__error-0.13.3.tgz", + "integrity": "sha512-N7/PUc4+Q5aRDJ4Ipm9NbtKiCNHR763Z+9CdPQpc/PElwblsy62gJEmBgKj8d4yotMn9pwNMEg9NHcFh2mTBZQ==", "license": "MIT", "dependencies": { "@types/xmpp__xml": "*" @@ -3366,6 +2834,8 @@ }, "node_modules/@types/xmpp__events": { "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@types/xmpp__events/-/xmpp__events-0.13.3.tgz", + "integrity": "sha512-GW844fKApo5wRg2MUlceETZFAdKO2zqElAQJZaR41oqDn5uv0BfnFUAbJ1MCGeyO0Ul0pyNw3m5/mzskiM/u2A==", "license": "MIT", "dependencies": { "@types/node": "*" @@ -3373,6 +2843,8 @@ }, "node_modules/@types/xmpp__iq": { "version": "0.13.4", + "resolved": "https://registry.npmjs.org/@types/xmpp__iq/-/xmpp__iq-0.13.4.tgz", + "integrity": "sha512-bMZVX6EWdrEOLud5gW8ducc0DGDH9JSQYEXMIeQYEmE4VjFiWDAo30dhVyeSqYwM4K6GaS9rnOdHvysMUE8iKA==", "license": "MIT", "dependencies": { "@types/koa-compose": "*", @@ -3383,10 +2855,14 @@ }, "node_modules/@types/xmpp__jid": { "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/xmpp__jid/-/xmpp__jid-1.3.5.tgz", + "integrity": "sha512-7nbg+XOOswcLAqjU6f5qBzdmoMw8JvcpPP36O+DACZyPAi88LGw8ulmy05F7jpvjXlGAFGrFvnmF5d9OrU+LfQ==", "license": "MIT" }, "node_modules/@types/xmpp__middleware": { "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@types/xmpp__middleware/-/xmpp__middleware-0.13.3.tgz", + "integrity": "sha512-qzqsJ1ZgkW9zezkkWGcMfvAx0XurYhMBr5E3txYCBi2OX+ATWv1eFFz1fxFWeYoEhtZSqr6BU9BHzd5BQW0RIg==", "license": "MIT", "dependencies": { "@types/koa-compose": "*", @@ -3398,6 +2874,8 @@ }, "node_modules/@types/xmpp__reconnect": { "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@types/xmpp__reconnect/-/xmpp__reconnect-0.13.3.tgz", + "integrity": "sha512-PaOmUCuwMKXHsIN02uN23GErOeBzo6MwZYDdbH5S3GCFo7eLVPH9xPeXNW74/be3Dp6+CzDfHhr46efNSG6kww==", "license": "MIT", "dependencies": { "@types/xmpp__connection": "*", @@ -3406,6 +2884,8 @@ }, "node_modules/@types/xmpp__resource-binding": { "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@types/xmpp__resource-binding/-/xmpp__resource-binding-0.13.3.tgz", + "integrity": "sha512-05Tta9Cj0anOXU8imZtBLDt4YnmVhxiMcSDXNZfqFi0oBP03cettJvTKudD2azimRsuEF94jIMmJ8z7dat0V4w==", "license": "MIT", "dependencies": { "@types/xmpp__iq": "*", @@ -3416,6 +2896,8 @@ }, "node_modules/@types/xmpp__sasl": { "version": "0.13.6", + "resolved": "https://registry.npmjs.org/@types/xmpp__sasl/-/xmpp__sasl-0.13.6.tgz", + "integrity": "sha512-2sXw7oewQ7U2a+NAKeYrIHXsLnrl5oqHi/vzr2Fl/5GmEFSWQEG2g3wqnhs16k2VxvslOY9rY9tY2uKd8Iz77g==", "license": "MIT", "dependencies": { "@types/saslmechanisms": "*", @@ -3426,6 +2908,8 @@ }, "node_modules/@types/xmpp__stream-features": { "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@types/xmpp__stream-features/-/xmpp__stream-features-0.13.3.tgz", + "integrity": "sha512-PgylX899T/yFQnPbBciMbdhXuM4XMLhThzwYzWPnlzo7hms88nSkJZrRYiemlSUqZ1z8VzwcsHTa2/CduUeF5w==", "license": "MIT", "dependencies": { "@types/koa": "*", @@ -3436,6 +2920,8 @@ }, "node_modules/@types/xmpp__stream-management": { "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@types/xmpp__stream-management/-/xmpp__stream-management-0.13.3.tgz", + "integrity": "sha512-KMcRL30R4WzZKghsPbbOUrEMbh8PWsGo2e6IiAK3PzUDWvSA7z+MQl0K9BVI2DHYhqCFI+qxKIYSoahdagR7lw==", "license": "MIT", "dependencies": { "@types/xmpp__middleware": "*", @@ -3444,21 +2930,25 @@ }, "node_modules/@types/xmpp__xml": { "version": "0.13.4", + "resolved": "https://registry.npmjs.org/@types/xmpp__xml/-/xmpp__xml-0.13.4.tgz", + "integrity": "sha512-j5cRnNJPvLhjCDpKZC+2g0HdMPqmA2xD417P1JKxEZlhQkfKrsCeBi20dsUHaVZJ/NFChkrr/bqW5bE9Oq5luw==", "license": "MIT", "dependencies": { "@types/ltx": "*" } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.21.0", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.22.0.tgz", + "integrity": "sha512-4Uta6REnz/xEJMvwf72wdUnC3rr4jAQf5jnTkeRQ9b6soxLxhDEbS/pfMPoJLDfFPNVRdryqWUIV/2GZzDJFZw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.21.0", - "@typescript-eslint/type-utils": "8.21.0", - "@typescript-eslint/utils": "8.21.0", - "@typescript-eslint/visitor-keys": "8.21.0", + "@typescript-eslint/scope-manager": "8.22.0", + "@typescript-eslint/type-utils": "8.22.0", + "@typescript-eslint/utils": "8.22.0", + "@typescript-eslint/visitor-keys": "8.22.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -3478,14 +2968,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.21.0", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.22.0.tgz", + "integrity": "sha512-MqtmbdNEdoNxTPzpWiWnqNac54h8JDAmkWtJExBVVnSrSmi9z+sZUt0LfKqk9rjqmKOIeRhO4fHHJ1nQIjduIQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.21.0", - "@typescript-eslint/types": "8.21.0", - "@typescript-eslint/typescript-estree": "8.21.0", - "@typescript-eslint/visitor-keys": "8.21.0", + "@typescript-eslint/scope-manager": "8.22.0", + "@typescript-eslint/types": "8.22.0", + "@typescript-eslint/typescript-estree": "8.22.0", + "@typescript-eslint/visitor-keys": "8.22.0", "debug": "^4.3.4" }, "engines": { @@ -3501,12 +2993,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.21.0", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.22.0.tgz", + "integrity": "sha512-/lwVV0UYgkj7wPSw0o8URy6YI64QmcOdwHuGuxWIYznO6d45ER0wXUbksr9pYdViAofpUCNJx/tAzNukgvaaiQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.21.0", - "@typescript-eslint/visitor-keys": "8.21.0" + "@typescript-eslint/types": "8.22.0", + "@typescript-eslint/visitor-keys": "8.22.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3517,12 +3011,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.21.0", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.22.0.tgz", + "integrity": "sha512-NzE3aB62fDEaGjaAYZE4LH7I1MUwHooQ98Byq0G0y3kkibPJQIXVUspzlFOmOfHhiDLwKzMlWxaNv+/qcZurJA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.21.0", - "@typescript-eslint/utils": "8.21.0", + "@typescript-eslint/typescript-estree": "8.22.0", + "@typescript-eslint/utils": "8.22.0", "debug": "^4.3.4", "ts-api-utils": "^2.0.0" }, @@ -3539,7 +3035,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.21.0", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.22.0.tgz", + "integrity": "sha512-0S4M4baNzp612zwpD4YOieP3VowOARgK2EkN/GBn95hpyF8E2fbMT55sRHWBq+Huaqk3b3XK+rxxlM8sPgGM6A==", "dev": true, "license": "MIT", "engines": { @@ -3551,12 +3049,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.21.0", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.22.0.tgz", + "integrity": "sha512-SJX99NAS2ugGOzpyhMza/tX+zDwjvwAtQFLsBo3GQxiGcvaKlqGBkmZ+Y1IdiSi9h4Q0Lr5ey+Cp9CGWNY/F/w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.21.0", - "@typescript-eslint/visitor-keys": "8.21.0", + "@typescript-eslint/types": "8.22.0", + "@typescript-eslint/visitor-keys": "8.22.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -3577,6 +3077,8 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "license": "MIT", "dependencies": { @@ -3585,6 +3087,8 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "license": "ISC", "dependencies": { @@ -3599,6 +3103,8 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "bin": { @@ -3609,14 +3115,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.21.0", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.22.0.tgz", + "integrity": "sha512-T8oc1MbF8L+Bk2msAvCUzjxVB2Z2f+vXYfcucE2wOmYs7ZUwco5Ep0fYZw8quNwOiw9K8GYVL+Kgc2pETNTLOg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.21.0", - "@typescript-eslint/types": "8.21.0", - "@typescript-eslint/typescript-estree": "8.21.0" + "@typescript-eslint/scope-manager": "8.22.0", + "@typescript-eslint/types": "8.22.0", + "@typescript-eslint/typescript-estree": "8.22.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3631,11 +3139,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.21.0", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.22.0.tgz", + "integrity": "sha512-AWpYAXnUgvLNabGTy3uBylkgZoosva/miNd1I8Bz3SjotmQPbVqhO4Cczo8AsZ44XVErEBPr/CRSgaj8sG7g0w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/types": "8.22.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -3648,6 +3158,8 @@ }, "node_modules/@vitejs/plugin-react": { "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", "dev": true, "license": "MIT", "dependencies": { @@ -3789,6 +3301,8 @@ }, "node_modules/@xmpp/base64": { "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@xmpp/base64/-/base64-0.13.2.tgz", + "integrity": "sha512-RDEq66sW/jqj2HZKoRvnIvlRJMRLEGa0EGyJ0yPCF1+KijmTqrWr1PxZAol850QizXlqpvo8MS8OCFWMryX7RQ==", "license": "ISC", "dependencies": { "base-64": "^1.0.0" @@ -3799,6 +3313,8 @@ }, "node_modules/@xmpp/client-core": { "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@xmpp/client-core/-/client-core-0.13.3.tgz", + "integrity": "sha512-pOtCozET4BxJZU7aWykT+PFBGaxT/Sl8mC0E3X6QgL7/2Vo39lz2KIhkcvtSwMC8myuaB+klOBrifuKLo3IajA==", "license": "ISC", "dependencies": { "@xmpp/connection": "^0.13.3", @@ -3811,6 +3327,8 @@ }, "node_modules/@xmpp/connection": { "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@xmpp/connection/-/connection-0.13.3.tgz", + "integrity": "sha512-EM6/wLUJ6MFJl7Kb+qwQut1gLDp7G107KTOB1W/GljGMd7ydD2Bn0BJt2AAx8EGPve9G2jjhV3+jJmu7KwK4rQ==", "license": "ISC", "dependencies": { "@xmpp/error": "^0.13.2", @@ -3824,6 +3342,8 @@ }, "node_modules/@xmpp/error": { "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@xmpp/error/-/error-0.13.2.tgz", + "integrity": "sha512-bjbxwF8s6jfQNI+ZHV9Jwcb7K2kBeTlD60QHjMJlxIUrjTH1ZsJoDQh9tMdq1mBu/h/bm2SX7yZUqUb1wY6gMw==", "license": "ISC", "engines": { "node": ">= 14" @@ -3831,6 +3351,8 @@ }, "node_modules/@xmpp/events": { "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@xmpp/events/-/events-0.13.2.tgz", + "integrity": "sha512-fXaAMChvLnP9vEQIatFKWoAm/F9U122hShfRfVw4xS6pympThygWVPIuRuAznMt5tOyTVFWBuPge6hgGousT0g==", "license": "ISC", "dependencies": { "events": "^3.3.0" @@ -3841,6 +3363,8 @@ }, "node_modules/@xmpp/id": { "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@xmpp/id/-/id-0.13.2.tgz", + "integrity": "sha512-LhSzcaPvjddvL+u/xNAuu6tNtxWR7HZPTyMUck8tyYnbwsXaJQ6sDoS8AEQE8o7iW5E31xJUTOktYd/s6HMo3w==", "license": "ISC", "engines": { "node": ">= 14" @@ -3848,6 +3372,8 @@ }, "node_modules/@xmpp/iq": { "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@xmpp/iq/-/iq-0.13.3.tgz", + "integrity": "sha512-sGeyGF4OnYGTZw3PhQaYLYlE8+LRZfYijT/ESGqhY2ed9gm0U4TCR8C8s5oT7Puu6S6smdHehcvYCrcFEeQyBw==", "license": "ISC", "dependencies": { "@xmpp/events": "^0.13.2", @@ -3861,6 +3387,8 @@ }, "node_modules/@xmpp/jid": { "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@xmpp/jid/-/jid-0.13.2.tgz", + "integrity": "sha512-OuYrxiNdlmXgMFPJqnbZSKe/bdn1wxtc1ASEadrizI9h6T1y7tAEl5YpXFWYb+fdAL9vRD+bGCxrDUrm1er/LQ==", "license": "ISC", "engines": { "node": ">= 14" @@ -3868,6 +3396,8 @@ }, "node_modules/@xmpp/middleware": { "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@xmpp/middleware/-/middleware-0.13.3.tgz", + "integrity": "sha512-zZTsqLaHnfTqMBDyZh01HLYUgcHLmbalVfC32CsEcjPG5/bIete9sOUVPaiGH1cicMgi3O7WZK512RvQFcBbwA==", "license": "ISC", "dependencies": { "@xmpp/error": "^0.13.2", @@ -3881,6 +3411,8 @@ }, "node_modules/@xmpp/reconnect": { "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@xmpp/reconnect/-/reconnect-0.13.2.tgz", + "integrity": "sha512-FWCC+dzi23N7H99PYPqWZa7oRPNp9G7yYzMZwOpeiVporbNy+op3yUbCszo3YA3XVEsuLRQ1aQJ8evLo+GD5ow==", "license": "ISC", "dependencies": { "@xmpp/events": "^0.13.2" @@ -3891,6 +3423,8 @@ }, "node_modules/@xmpp/resolve": { "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@xmpp/resolve/-/resolve-0.13.3.tgz", + "integrity": "sha512-HL86p0a2CI0ILFYUR8vPR77ZXwxQ0xXLLRnyb88TjQ/eNbYsc1gmdXjELE0xRCfQblXZsETvUwWv5RofTYAgrQ==", "license": "ISC", "dependencies": { "@xmpp/events": "^0.13.2", @@ -3903,6 +3437,8 @@ }, "node_modules/@xmpp/resolve/node_modules/node-fetch": { "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", "license": "MIT", "dependencies": { "data-uri-to-buffer": "^4.0.0", @@ -3919,6 +3455,8 @@ }, "node_modules/@xmpp/resource-binding": { "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@xmpp/resource-binding/-/resource-binding-0.13.3.tgz", + "integrity": "sha512-cph/8vJ5sRHVg7Njx8rR27xAVmKWACSx95jlOw7LmUSTRSxZDw2wHsqie76HxUD5fPszOsTh/Ph7Fw1532aRUQ==", "license": "ISC", "dependencies": { "@xmpp/xml": "^0.13.3" @@ -3929,6 +3467,8 @@ }, "node_modules/@xmpp/sasl": { "version": "0.13.4", + "resolved": "https://registry.npmjs.org/@xmpp/sasl/-/sasl-0.13.4.tgz", + "integrity": "sha512-craijUkSSrYB43YgqHRigVe8JYFLTBdC1eiIlQRAhN37QMTCb0zz3AAgcoxYccrZDStHXNC7WMi149A4AKp6RA==", "license": "ISC", "dependencies": { "@xmpp/base64": "^0.13.2", @@ -3942,6 +3482,8 @@ }, "node_modules/@xmpp/sasl-anonymous": { "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@xmpp/sasl-anonymous/-/sasl-anonymous-0.13.2.tgz", + "integrity": "sha512-0fI9+A+Vptcyv8+o8J2veRnodtnKahJDy5fappIZbmXLrv4JcrVBChQDWULyta0Hez9M3XWoIyuhp4pyz0IU/Q==", "license": "ISC", "dependencies": { "sasl-anonymous": "^0.1.0" @@ -3952,6 +3494,8 @@ }, "node_modules/@xmpp/sasl-plain": { "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@xmpp/sasl-plain/-/sasl-plain-0.13.2.tgz", + "integrity": "sha512-zwS/q+Vd4YsLdnZjmCuS1JCacWWg2Vd3ecqpBmIV3S394s1Mgiwdnd2bVRen5S0kl/de+VzHg/DRLuYvC94SUg==", "license": "ISC", "dependencies": { "sasl-plain": "^0.1.0" @@ -3962,6 +3506,8 @@ }, "node_modules/@xmpp/session-establishment": { "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@xmpp/session-establishment/-/session-establishment-0.13.3.tgz", + "integrity": "sha512-dQhH7aIzsqyMRsjMIuER4UBCxQgvDUHjkmNoeIbUZX5bYJuGeET90tZ4eNAq6yXnpSGJiKoXVfVBxNoiXovfgA==", "license": "ISC", "dependencies": { "@xmpp/xml": "^0.13.3" @@ -3972,6 +3518,8 @@ }, "node_modules/@xmpp/stream-features": { "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@xmpp/stream-features/-/stream-features-0.13.2.tgz", + "integrity": "sha512-eyxFEEDSfNvG4ybvAYTYkjaUcaytu8sAqT8DfWwrWzCkPgfRzpexsxb9yhe8hAVrvPLavOyr+zh4raUQf4Ogkg==", "license": "ISC", "engines": { "node": ">= 14" @@ -3979,6 +3527,8 @@ }, "node_modules/@xmpp/websocket": { "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@xmpp/websocket/-/websocket-0.13.3.tgz", + "integrity": "sha512-RXZJFecaAlotqhAdNohO0SoP8Rx3eJrl18c78gxybAhNaCexFbuMJIvSj91L/b8bOErJtFMTwreWeMfzP6Ijiw==", "license": "ISC", "dependencies": { "@xmpp/connection": "^0.13.3", @@ -3991,6 +3541,8 @@ }, "node_modules/@xmpp/xml": { "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@xmpp/xml/-/xml-0.13.3.tgz", + "integrity": "sha512-lYXBg/VlpUeavGgQE8LADfZUzMFUnWFVYgvKUcx97AqjiEJUuo40ijdRcGmkAVtTg0RBkml5WB+Mo+JqynMk7Q==", "license": "ISC", "dependencies": { "ltx": "^3.1.1" @@ -4001,6 +3553,8 @@ }, "node_modules/acorn": { "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "license": "MIT", "bin": { @@ -4012,6 +3566,8 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "license": "MIT", "peerDependencies": { @@ -4020,6 +3576,8 @@ }, "node_modules/ajv": { "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "license": "MIT", "dependencies": { @@ -4097,6 +3655,8 @@ }, "node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -4139,11 +3699,15 @@ }, "node_modules/argparse": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, "license": "Python-2.0" }, "node_modules/aria-hidden": { "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", "license": "MIT", "dependencies": { "tslib": "^2.0.0" @@ -4154,6 +3718,8 @@ }, "node_modules/asn1.js": { "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, "license": "MIT", "dependencies": { @@ -4164,11 +3730,15 @@ }, "node_modules/asn1.js/node_modules/bn.js": { "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "dev": true, "license": "MIT" }, "node_modules/assert": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", + "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", "dev": true, "license": "MIT", "dependencies": { @@ -4181,10 +3751,14 @@ }, "node_modules/asynckit": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "license": "MIT" }, "node_modules/autoprefixer": { "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", "dev": true, "funding": [ { @@ -4221,6 +3795,8 @@ }, "node_modules/available-typed-arrays": { "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4235,15 +3811,21 @@ }, "node_modules/balanced-match": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true, "license": "MIT" }, "node_modules/base-64": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz", + "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==", "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true, "funding": [ { @@ -4276,11 +3858,15 @@ }, "node_modules/bn.js": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", "dev": true, "license": "MIT" }, "node_modules/brace-expansion": { "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "license": "MIT", "dependencies": { @@ -4290,6 +3876,8 @@ }, "node_modules/braces": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "license": "MIT", "dependencies": { @@ -4301,11 +3889,15 @@ }, "node_modules/brorand": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", "dev": true, "license": "MIT" }, "node_modules/browser-resolve": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", + "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4314,6 +3906,8 @@ }, "node_modules/browserify-aes": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, "license": "MIT", "dependencies": { @@ -4327,6 +3921,8 @@ }, "node_modules/browserify-cipher": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, "license": "MIT", "dependencies": { @@ -4337,6 +3933,8 @@ }, "node_modules/browserify-des": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "dev": true, "license": "MIT", "dependencies": { @@ -4348,6 +3946,8 @@ }, "node_modules/browserify-rsa": { "version": "4.1.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", + "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4361,6 +3961,8 @@ }, "node_modules/browserify-sign": { "version": "4.2.3", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", + "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", "dev": true, "license": "ISC", "dependencies": { @@ -4381,6 +3983,8 @@ }, "node_modules/browserify-sign/node_modules/readable-stream": { "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "license": "MIT", "dependencies": { @@ -4395,11 +3999,15 @@ }, "node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true, "license": "MIT" }, "node_modules/browserify-sign/node_modules/string_decoder": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "license": "MIT", "dependencies": { @@ -4408,11 +4016,15 @@ }, "node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true, "license": "MIT" }, "node_modules/browserify-zlib": { "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "dev": true, "license": "MIT", "dependencies": { @@ -4421,6 +4033,8 @@ }, "node_modules/browserslist": { "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", "dev": true, "funding": [ { @@ -4452,6 +4066,8 @@ }, "node_modules/buffer": { "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -4475,16 +4091,22 @@ }, "node_modules/buffer-xor": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", "dev": true, "license": "MIT" }, "node_modules/builtin-status-codes": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", "dev": true, "license": "MIT" }, "node_modules/call-bind": { "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "dev": true, "license": "MIT", "dependencies": { @@ -4502,6 +4124,8 @@ }, "node_modules/call-bind-apply-helpers": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", "dev": true, "license": "MIT", "dependencies": { @@ -4514,6 +4138,8 @@ }, "node_modules/call-bound": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", "dev": true, "license": "MIT", "dependencies": { @@ -4529,6 +4155,8 @@ }, "node_modules/callsites": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, "license": "MIT", "engines": { @@ -4547,6 +4175,8 @@ }, "node_modules/caniuse-lite": { "version": "1.0.30001695", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz", + "integrity": "sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==", "dev": true, "funding": [ { @@ -4566,6 +4196,8 @@ }, "node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -4580,23 +4212,47 @@ } }, "node_modules/chokidar": { - "version": "4.0.3", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { - "readdirp": "^4.0.1" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">= 14.16.0" + "node": ">= 8.10.0" }, "funding": { "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, "node_modules/cipher-base": { "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.6.tgz", + "integrity": "sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==", "dev": true, "license": "MIT", "dependencies": { @@ -4609,6 +4265,8 @@ }, "node_modules/class-variance-authority": { "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", "license": "Apache-2.0", "dependencies": { "clsx": "^2.1.1" @@ -4619,6 +4277,8 @@ }, "node_modules/clsx": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", "license": "MIT", "engines": { "node": ">=6" @@ -4626,6 +4286,8 @@ }, "node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4637,11 +4299,15 @@ }, "node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "license": "MIT" }, "node_modules/combined-stream": { "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" @@ -4669,6 +4335,8 @@ }, "node_modules/concat-map": { "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true, "license": "MIT" }, @@ -4681,6 +4349,8 @@ }, "node_modules/connectycube": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/connectycube/-/connectycube-4.0.2.tgz", + "integrity": "sha512-Zz5l8BcJwEFZ8DTa/3dW6UJ2Rn/CW5cOZUqKjIMtPZuBqBCg0wNWQlcRSt79qHcld7NaBtYOMDFW3nC2U+lGog==", "license": "Apache-2.0", "dependencies": { "@types/form-data": "^2.5.2", @@ -4705,20 +4375,28 @@ }, "node_modules/console-browserify": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", "dev": true }, "node_modules/constants-browserify": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", "dev": true, "license": "MIT" }, "node_modules/convert-source-map": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, "license": "MIT" }, "node_modules/cookie": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", "license": "MIT", "engines": { "node": ">=18" @@ -4726,11 +4404,15 @@ }, "node_modules/core-util-is": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true, "license": "MIT" }, "node_modules/create-ecdh": { "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", "dev": true, "license": "MIT", "dependencies": { @@ -4740,11 +4422,15 @@ }, "node_modules/create-ecdh/node_modules/bn.js": { "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "dev": true, "license": "MIT" }, "node_modules/create-hash": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, "license": "MIT", "dependencies": { @@ -4757,6 +4443,8 @@ }, "node_modules/create-hmac": { "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, "license": "MIT", "dependencies": { @@ -4770,11 +4458,15 @@ }, "node_modules/create-require": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true, "license": "MIT" }, "node_modules/cross-spawn": { "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", "dependencies": { @@ -4788,6 +4480,8 @@ }, "node_modules/crypto-browserify": { "version": "3.12.1", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", + "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4826,16 +4520,30 @@ }, "node_modules/csstype": { "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "devOptional": true, "license": "MIT" }, "node_modules/data-uri-to-buffer": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", "license": "MIT", "engines": { "node": ">= 12" } }, + "node_modules/date-fns": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, "node_modules/de-indent": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", @@ -4845,6 +4553,8 @@ }, "node_modules/debug": { "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, "license": "MIT", "dependencies": { @@ -4861,11 +4571,15 @@ }, "node_modules/deep-is": { "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true, "license": "MIT" }, "node_modules/define-data-property": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, "license": "MIT", "dependencies": { @@ -4882,6 +4596,8 @@ }, "node_modules/define-properties": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "license": "MIT", "dependencies": { @@ -4898,6 +4614,8 @@ }, "node_modules/delayed-stream": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "license": "MIT", "engines": { "node": ">=0.4.0" @@ -4905,6 +4623,8 @@ }, "node_modules/des.js": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", "dev": true, "license": "MIT", "dependencies": { @@ -4912,21 +4632,10 @@ "minimalistic-assert": "^1.0.0" } }, - "node_modules/detect-libc": { - "version": "1.0.3", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "peer": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/detect-node-es": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", "license": "MIT" }, "node_modules/didyoumean": { @@ -4938,6 +4647,8 @@ }, "node_modules/diffie-hellman": { "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, "license": "MIT", "dependencies": { @@ -4948,6 +4659,8 @@ }, "node_modules/diffie-hellman/node_modules/bn.js": { "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "dev": true, "license": "MIT" }, @@ -4960,6 +4673,8 @@ }, "node_modules/domain-browser": { "version": "4.22.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.22.0.tgz", + "integrity": "sha512-IGBwjF7tNk3cwypFNH/7bfzBcgSCbaMOD3GsaY1AU/JRrnHnYgEM0+9kQt52iZxjNsjBtJYtao146V+f8jFZNw==", "dev": true, "license": "MIT", "engines": { @@ -4971,6 +4686,8 @@ }, "node_modules/dunder-proto": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", "dev": true, "license": "MIT", "dependencies": { @@ -4991,11 +4708,15 @@ }, "node_modules/electron-to-chromium": { "version": "1.5.88", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.88.tgz", + "integrity": "sha512-K3C2qf1o+bGzbilTDCTBhTQcMS9KW60yTAaTeeXsfvQuTDDwlokLam/AdqlqcSy9u4UainDgsHV23ksXAOgamw==", "dev": true, "license": "ISC" }, "node_modules/elliptic": { "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", "dev": true, "license": "MIT", "dependencies": { @@ -5010,6 +4731,8 @@ }, "node_modules/elliptic/node_modules/bn.js": { "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "dev": true, "license": "MIT" }, @@ -5035,6 +4758,8 @@ }, "node_modules/es-define-property": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "dev": true, "license": "MIT", "engines": { @@ -5043,6 +4768,8 @@ }, "node_modules/es-errors": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true, "license": "MIT", "engines": { @@ -5051,6 +4778,8 @@ }, "node_modules/es-object-atoms": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", "dev": true, "license": "MIT", "dependencies": { @@ -5062,6 +4791,8 @@ }, "node_modules/esbuild": { "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -5101,6 +4832,8 @@ }, "node_modules/escalade": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "license": "MIT", "engines": { @@ -5109,6 +4842,8 @@ }, "node_modules/escape-string-regexp": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "license": "MIT", "engines": { @@ -5120,6 +4855,8 @@ }, "node_modules/eslint": { "version": "9.19.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.19.0.tgz", + "integrity": "sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==", "dev": true, "license": "MIT", "dependencies": { @@ -5178,6 +4915,8 @@ }, "node_modules/eslint-plugin-react-hooks": { "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0.tgz", + "integrity": "sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==", "dev": true, "license": "MIT", "engines": { @@ -5189,6 +4928,8 @@ }, "node_modules/eslint-plugin-react-refresh": { "version": "0.4.18", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.18.tgz", + "integrity": "sha512-IRGEoFn3OKalm3hjfolEWGqoF/jPqeEYFp+C8B0WMzwGwBMvlRDQd06kghDhF0C61uJ6WfSDhEZE/sAQjduKgw==", "dev": true, "license": "MIT", "peerDependencies": { @@ -5197,6 +4938,8 @@ }, "node_modules/eslint-scope": { "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -5212,6 +4955,8 @@ }, "node_modules/eslint-visitor-keys": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -5223,6 +4968,8 @@ }, "node_modules/espree": { "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -5239,6 +4986,8 @@ }, "node_modules/esquery": { "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -5250,6 +4999,8 @@ }, "node_modules/esrecurse": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -5261,6 +5012,8 @@ }, "node_modules/estraverse": { "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -5269,11 +5022,15 @@ }, "node_modules/estree-walker": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "dev": true, "license": "MIT" }, "node_modules/esutils": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -5282,10 +5039,14 @@ }, "node_modules/eventemitter3": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", "license": "MIT" }, "node_modules/events": { "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "license": "MIT", "engines": { "node": ">=0.8.x" @@ -5293,6 +5054,8 @@ }, "node_modules/evp_bytestokey": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, "license": "MIT", "dependencies": { @@ -5302,11 +5065,15 @@ }, "node_modules/fast-deep-equal": { "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true, "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "license": "MIT", "dependencies": { @@ -5322,6 +5089,8 @@ }, "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "license": "ISC", "dependencies": { @@ -5333,11 +5102,15 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true, "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true, "license": "MIT" }, @@ -5360,6 +5133,8 @@ }, "node_modules/fastq": { "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", "dev": true, "license": "ISC", "dependencies": { @@ -5368,6 +5143,8 @@ }, "node_modules/fetch-blob": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", "funding": [ { "type": "github", @@ -5389,6 +5166,8 @@ }, "node_modules/file-entry-cache": { "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5400,6 +5179,8 @@ }, "node_modules/fill-range": { "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "license": "MIT", "dependencies": { @@ -5411,6 +5192,8 @@ }, "node_modules/find-up": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "license": "MIT", "dependencies": { @@ -5426,6 +5209,8 @@ }, "node_modules/flat-cache": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "license": "MIT", "dependencies": { @@ -5438,11 +5223,15 @@ }, "node_modules/flatted": { "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", "dev": true, "license": "ISC" }, "node_modules/for-each": { "version": "0.3.4", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.4.tgz", + "integrity": "sha512-kKaIINnFpzW6ffJNDjjyjrk21BkDx38c0xa/klsT8VzLCaMEefv4ZTacrcVR4DmgTeBra++jMDAfS/tS799YDw==", "dev": true, "license": "MIT", "dependencies": { @@ -5474,6 +5263,8 @@ }, "node_modules/form-data": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", @@ -5486,6 +5277,8 @@ }, "node_modules/formdata-polyfill": { "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", "license": "MIT", "dependencies": { "fetch-blob": "^3.1.2" @@ -5496,6 +5289,8 @@ }, "node_modules/fraction.js": { "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", "dev": true, "license": "MIT", "engines": { @@ -5523,7 +5318,10 @@ }, "node_modules/fsevents": { "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, + "hasInstallScript": true, "license": "MIT", "optional": true, "os": [ @@ -5535,6 +5333,8 @@ }, "node_modules/function-bind": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, "license": "MIT", "funding": { @@ -5543,6 +5343,8 @@ }, "node_modules/gensync": { "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, "license": "MIT", "engines": { @@ -5551,6 +5353,8 @@ }, "node_modules/get-intrinsic": { "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", "dev": true, "license": "MIT", "dependencies": { @@ -5574,6 +5378,8 @@ }, "node_modules/get-nonce": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", "license": "MIT", "engines": { "node": ">=6" @@ -5581,6 +5387,8 @@ }, "node_modules/get-proto": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "dev": true, "license": "MIT", "dependencies": { @@ -5614,6 +5422,8 @@ }, "node_modules/glob-parent": { "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "license": "ISC", "dependencies": { @@ -5651,6 +5461,8 @@ }, "node_modules/globals": { "version": "15.14.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz", + "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==", "dev": true, "license": "MIT", "engines": { @@ -5662,6 +5474,8 @@ }, "node_modules/gopd": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, "license": "MIT", "engines": { @@ -5680,11 +5494,15 @@ }, "node_modules/graphemer": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true, "license": "MIT" }, "node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", "engines": { @@ -5693,6 +5511,8 @@ }, "node_modules/has-property-descriptors": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, "license": "MIT", "dependencies": { @@ -5704,6 +5524,8 @@ }, "node_modules/has-symbols": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, "license": "MIT", "engines": { @@ -5715,6 +5537,8 @@ }, "node_modules/has-tostringtag": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, "license": "MIT", "dependencies": { @@ -5729,6 +5553,8 @@ }, "node_modules/hash-base": { "version": "3.0.5", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz", + "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==", "dev": true, "license": "MIT", "dependencies": { @@ -5741,6 +5567,8 @@ }, "node_modules/hash.js": { "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dev": true, "license": "MIT", "dependencies": { @@ -5750,6 +5578,8 @@ }, "node_modules/hasown": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5771,6 +5601,8 @@ }, "node_modules/hmac-drbg": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", "dev": true, "license": "MIT", "dependencies": { @@ -5781,11 +5613,15 @@ }, "node_modules/https-browserify": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", "dev": true, "license": "MIT" }, "node_modules/ieee754": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true, "funding": [ { @@ -5805,21 +5641,18 @@ }, "node_modules/ignore": { "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "license": "MIT", "engines": { "node": ">= 4" } }, - "node_modules/immutable": { - "version": "5.0.3", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, "node_modules/import-fresh": { "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "license": "MIT", "dependencies": { @@ -5845,6 +5678,8 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "license": "MIT", "engines": { @@ -5853,11 +5688,15 @@ }, "node_modules/inherits": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true, "license": "ISC" }, "node_modules/is-arguments": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", "dev": true, "license": "MIT", "dependencies": { @@ -5886,6 +5725,8 @@ }, "node_modules/is-callable": { "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, "license": "MIT", "engines": { @@ -5897,6 +5738,8 @@ }, "node_modules/is-core-module": { "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, "license": "MIT", "dependencies": { @@ -5911,6 +5754,8 @@ }, "node_modules/is-extglob": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "license": "MIT", "engines": { @@ -5929,6 +5774,8 @@ }, "node_modules/is-generator-function": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5946,6 +5793,8 @@ }, "node_modules/is-glob": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "license": "MIT", "dependencies": { @@ -5957,6 +5806,8 @@ }, "node_modules/is-nan": { "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", "dev": true, "license": "MIT", "dependencies": { @@ -5972,6 +5823,8 @@ }, "node_modules/is-number": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "license": "MIT", "engines": { @@ -5980,6 +5833,8 @@ }, "node_modules/is-regex": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, "license": "MIT", "dependencies": { @@ -5997,6 +5852,8 @@ }, "node_modules/is-typed-array": { "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6011,16 +5868,22 @@ }, "node_modules/isarray": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true, "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true, "license": "ISC" }, "node_modules/isomorphic-timers-promises": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-timers-promises/-/isomorphic-timers-promises-1.0.1.tgz", + "integrity": "sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ==", "dev": true, "license": "MIT", "engines": { @@ -6044,13 +5907,13 @@ } }, "node_modules/jiti": { - "version": "2.4.2", + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "bin": { - "jiti": "lib/jiti-cli.mjs" + "jiti": "bin/jiti.js" } }, "node_modules/jju": { @@ -6062,10 +5925,14 @@ }, "node_modules/js-tokens": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "license": "MIT", "dependencies": { @@ -6077,6 +5944,8 @@ }, "node_modules/jsesc": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, "license": "MIT", "bin": { @@ -6088,21 +5957,29 @@ }, "node_modules/json-buffer": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true, "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true, "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true, "license": "MIT" }, "node_modules/json5": { "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "license": "MIT", "bin": { @@ -6124,6 +6001,8 @@ }, "node_modules/keyv": { "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, "license": "MIT", "dependencies": { @@ -6132,6 +6011,8 @@ }, "node_modules/koa-compose": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", + "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", "license": "MIT" }, "node_modules/kolorist": { @@ -6143,6 +6024,8 @@ }, "node_modules/levn": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6153,55 +6036,6 @@ "node": ">= 0.8.0" } }, - "node_modules/lightningcss": { - "version": "1.29.1", - "dev": true, - "license": "MPL-2.0", - "optional": true, - "peer": true, - "dependencies": { - "detect-libc": "^1.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "lightningcss-darwin-arm64": "1.29.1", - "lightningcss-darwin-x64": "1.29.1", - "lightningcss-freebsd-x64": "1.29.1", - "lightningcss-linux-arm-gnueabihf": "1.29.1", - "lightningcss-linux-arm64-gnu": "1.29.1", - "lightningcss-linux-arm64-musl": "1.29.1", - "lightningcss-linux-x64-gnu": "1.29.1", - "lightningcss-linux-x64-musl": "1.29.1", - "lightningcss-win32-arm64-msvc": "1.29.1", - "lightningcss-win32-x64-msvc": "1.29.1" - } - }, - "node_modules/lightningcss-darwin-arm64": { - "version": "1.29.1", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, "node_modules/lilconfig": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", @@ -6241,6 +6075,8 @@ }, "node_modules/locate-path": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "license": "MIT", "dependencies": { @@ -6262,15 +6098,21 @@ }, "node_modules/lodash.merge": { "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true, "license": "MIT" }, "node_modules/lodash.throttle": { "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", "license": "MIT" }, "node_modules/loose-envify": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" @@ -6281,6 +6123,8 @@ }, "node_modules/lru-cache": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "license": "ISC", "dependencies": { @@ -6289,6 +6133,8 @@ }, "node_modules/ltx": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/ltx/-/ltx-3.1.2.tgz", + "integrity": "sha512-tFSKojN92FqNK6eRTmKK/ROUTUYVWKAxgohz523TPhF1G3nR3DXQS/I7/705rEPrDSloKDgMdRlh0qgMFQoVYw==", "license": "MIT", "engines": { "node": ">= 12.4.0" @@ -6296,6 +6142,8 @@ }, "node_modules/lucide-react": { "version": "0.474.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.474.0.tgz", + "integrity": "sha512-CmghgHkh0OJNmxGKWc0qfPJCYHASPMVSyGY8fj3xgk4v84ItqDg64JNKFZn5hC6E0vHi6gxnbCgwhyVB09wQtA==", "license": "ISC", "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" @@ -6303,6 +6151,8 @@ }, "node_modules/magic-string": { "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, "license": "MIT", "dependencies": { @@ -6311,6 +6161,8 @@ }, "node_modules/math-intrinsics": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "dev": true, "license": "MIT", "engines": { @@ -6319,6 +6171,8 @@ }, "node_modules/md5.js": { "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "dev": true, "license": "MIT", "dependencies": { @@ -6329,6 +6183,8 @@ }, "node_modules/merge2": { "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "license": "MIT", "engines": { @@ -6337,6 +6193,8 @@ }, "node_modules/micromatch": { "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "license": "MIT", "dependencies": { @@ -6349,6 +6207,8 @@ }, "node_modules/miller-rabin": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, "license": "MIT", "dependencies": { @@ -6361,11 +6221,15 @@ }, "node_modules/miller-rabin/node_modules/bn.js": { "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "dev": true, "license": "MIT" }, "node_modules/mime-db": { "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "license": "MIT", "engines": { "node": ">= 0.6" @@ -6373,6 +6237,8 @@ }, "node_modules/mime-types": { "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "license": "MIT", "dependencies": { "mime-db": "1.52.0" @@ -6383,16 +6249,22 @@ }, "node_modules/minimalistic-assert": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "dev": true, "license": "ISC" }, "node_modules/minimalistic-crypto-utils": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", "dev": true, "license": "MIT" }, "node_modules/minimatch": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "license": "ISC", "dependencies": { @@ -6427,6 +6299,8 @@ }, "node_modules/ms": { "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, "license": "MIT" }, @@ -6451,6 +6325,8 @@ }, "node_modules/nanoid": { "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "dev": true, "funding": [ { @@ -6468,18 +6344,15 @@ }, "node_modules/natural-compare": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true, "license": "MIT" }, - "node_modules/node-addon-api": { - "version": "7.1.1", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, "node_modules/node-domexception": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", "funding": [ { "type": "github", @@ -6497,6 +6370,8 @@ }, "node_modules/node-fetch": { "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" @@ -6515,11 +6390,15 @@ }, "node_modules/node-releases": { "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "dev": true, "license": "MIT" }, "node_modules/node-stdlib-browser": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/node-stdlib-browser/-/node-stdlib-browser-1.3.0.tgz", + "integrity": "sha512-g/koYzOr9Fb1Jc+tHUHlFd5gODjGn48tHexUK8q6iqOVriEgSnd3/1T7myBYc+0KBVze/7F7n65ec9rW6OD7xw==", "dev": true, "license": "MIT", "dependencies": { @@ -6557,6 +6436,8 @@ }, "node_modules/node-stdlib-browser/node_modules/punycode": { "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true, "license": "MIT" }, @@ -6572,6 +6453,8 @@ }, "node_modules/normalize-range": { "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "dev": true, "license": "MIT", "engines": { @@ -6580,6 +6463,8 @@ }, "node_modules/object-assign": { "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -6597,6 +6482,8 @@ }, "node_modules/object-inspect": { "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", "dev": true, "license": "MIT", "engines": { @@ -6608,6 +6495,8 @@ }, "node_modules/object-is": { "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", "dev": true, "license": "MIT", "dependencies": { @@ -6623,6 +6512,8 @@ }, "node_modules/object-keys": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, "license": "MIT", "engines": { @@ -6631,6 +6522,8 @@ }, "node_modules/object.assign": { "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "dev": true, "license": "MIT", "dependencies": { @@ -6650,6 +6543,8 @@ }, "node_modules/optionator": { "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "license": "MIT", "dependencies": { @@ -6666,11 +6561,15 @@ }, "node_modules/os-browserify": { "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", "dev": true, "license": "MIT" }, "node_modules/p-limit": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6685,6 +6584,8 @@ }, "node_modules/p-locate": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "license": "MIT", "dependencies": { @@ -6706,11 +6607,15 @@ }, "node_modules/pako": { "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true, "license": "(MIT AND Zlib)" }, "node_modules/parent-module": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "license": "MIT", "dependencies": { @@ -6722,6 +6627,8 @@ }, "node_modules/parse-asn1": { "version": "5.1.7", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", + "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", "dev": true, "license": "ISC", "dependencies": { @@ -6738,11 +6645,15 @@ }, "node_modules/path-browserify": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", "dev": true, "license": "MIT" }, "node_modules/path-exists": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "license": "MIT", "engines": { @@ -6751,6 +6662,8 @@ }, "node_modules/path-key": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "license": "MIT", "engines": { @@ -6759,6 +6672,8 @@ }, "node_modules/path-parse": { "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true, "license": "MIT" }, @@ -6795,6 +6710,8 @@ }, "node_modules/pbkdf2": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", "dev": true, "license": "MIT", "dependencies": { @@ -6810,11 +6727,15 @@ }, "node_modules/picocolors": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true, "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "license": "MIT", "engines": { @@ -6846,6 +6767,8 @@ }, "node_modules/pkg-dir": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", "dev": true, "license": "MIT", "dependencies": { @@ -6869,6 +6792,8 @@ }, "node_modules/possible-typed-array-names": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", "dev": true, "license": "MIT", "engines": { @@ -6877,6 +6802,8 @@ }, "node_modules/postcss": { "version": "8.5.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", + "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", "dev": true, "funding": [ { @@ -7018,11 +6945,15 @@ }, "node_modules/postcss-value-parser": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true, "license": "MIT" }, "node_modules/prelude-ls": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, "license": "MIT", "engines": { @@ -7031,6 +6962,8 @@ }, "node_modules/process": { "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "dev": true, "license": "MIT", "engines": { @@ -7039,11 +6972,15 @@ }, "node_modules/process-nextick-args": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true, "license": "MIT" }, "node_modules/prop-types": { "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", @@ -7053,6 +6990,8 @@ }, "node_modules/public-encrypt": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "dev": true, "license": "MIT", "dependencies": { @@ -7066,11 +7005,15 @@ }, "node_modules/public-encrypt/node_modules/bn.js": { "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "dev": true, "license": "MIT" }, "node_modules/punycode": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "license": "MIT", "engines": { @@ -7079,6 +7022,8 @@ }, "node_modules/qs": { "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -7093,6 +7038,8 @@ }, "node_modules/querystring-es3": { "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", "dev": true, "engines": { "node": ">=0.4.x" @@ -7100,6 +7047,8 @@ }, "node_modules/queue-microtask": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -7119,6 +7068,8 @@ }, "node_modules/randombytes": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7127,6 +7078,8 @@ }, "node_modules/randomfill": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, "license": "MIT", "dependencies": { @@ -7136,6 +7089,8 @@ }, "node_modules/react": { "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" @@ -7146,6 +7101,8 @@ }, "node_modules/react-dom": { "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", @@ -7157,6 +7114,8 @@ }, "node_modules/react-hook-form": { "version": "7.54.2", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.54.2.tgz", + "integrity": "sha512-eHpAUgUjWbZocoQYUHposymRb4ZP6d0uwUnooL2uOybA9/3tPUvoAKqEWK1WaSiTxxOfTpffNZP7QwlnM3/gEg==", "license": "MIT", "engines": { "node": ">=18.0.0" @@ -7171,6 +7130,8 @@ }, "node_modules/react-icons": { "version": "5.4.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.4.0.tgz", + "integrity": "sha512-7eltJxgVt7X64oHh6wSWNwwbKTCtMfK35hcjvJS0yxEAhPM8oUKdS3+kqaW1vicIltw+kR2unHaa12S9pPALoQ==", "license": "MIT", "peerDependencies": { "react": "*" @@ -7178,6 +7139,8 @@ }, "node_modules/react-intersection-observer": { "version": "9.15.1", + "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.15.1.tgz", + "integrity": "sha512-vGrqYEVWXfH+AGu241uzfUpNK4HAdhCkSAyFdkMb9VWWXs6mxzBLpWCxEy9YcnDNY2g9eO6z7qUtTBdA9hc8pA==", "license": "MIT", "peerDependencies": { "react": "^17.0.0 || ^18.0.0 || ^19.0.0", @@ -7191,10 +7154,14 @@ }, "node_modules/react-is": { "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "license": "MIT" }, "node_modules/react-refresh": { "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", "dev": true, "license": "MIT", "engines": { @@ -7203,6 +7170,8 @@ }, "node_modules/react-remove-scroll": { "version": "2.6.3", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.3.tgz", + "integrity": "sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==", "license": "MIT", "dependencies": { "react-remove-scroll-bar": "^2.3.7", @@ -7226,6 +7195,8 @@ }, "node_modules/react-remove-scroll-bar": { "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", "license": "MIT", "dependencies": { "react-style-singleton": "^2.2.2", @@ -7246,6 +7217,8 @@ }, "node_modules/react-router": { "version": "7.1.3", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.1.3.tgz", + "integrity": "sha512-EezYymLY6Guk/zLQ2vRA8WvdUhWFEj5fcE3RfWihhxXBW7+cd1LsIiA3lmx+KCmneAGQuyBv820o44L2+TtkSA==", "license": "MIT", "dependencies": { "@types/cookie": "^0.6.0", @@ -7268,6 +7241,8 @@ }, "node_modules/react-router-dom": { "version": "7.1.3", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.1.3.tgz", + "integrity": "sha512-qQGTE+77hleBzv9SIUIkGRvuFBQGagW+TQKy53UTZAO/3+YFNBYvRsNIZ1GT17yHbc63FylMOdS+m3oUriF1GA==", "license": "MIT", "dependencies": { "react-router": "7.1.3" @@ -7282,6 +7257,8 @@ }, "node_modules/react-scroll": { "version": "1.9.0", + "resolved": "https://registry.npmjs.org/react-scroll/-/react-scroll-1.9.0.tgz", + "integrity": "sha512-mamNcaX9Ng+JeSbBu97nWwRhYvL2oba+xR2GxvyXsbDeGP+gkYIKZ+aDMMj/n20TbV9SCWm/H7nyuNTSiXA6yA==", "license": "MIT", "dependencies": { "lodash.throttle": "^4.1.1", @@ -7294,6 +7271,8 @@ }, "node_modules/react-style-singleton": { "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", "license": "MIT", "dependencies": { "get-nonce": "^1.0.0", @@ -7312,6 +7291,15 @@ } } }, + "node_modules/react-usestateref": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/react-usestateref/-/react-usestateref-1.0.9.tgz", + "integrity": "sha512-t8KLsI7oje0HzfzGhxFXzuwbf1z9vhBM1ptHLUIHhYqZDKFuI5tzdhEVxSNzUkYxwF8XdpOErzHlKxvP7sTERw==", + "license": "ISC", + "peerDependencies": { + "react": ">16.0.0" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -7324,6 +7312,8 @@ }, "node_modules/readable-stream": { "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "license": "MIT", "dependencies": { @@ -7336,17 +7326,16 @@ } }, "node_modules/readdirp": { - "version": "4.1.1", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">= 14.18.0" + "dependencies": { + "picomatch": "^2.2.1" }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "engines": { + "node": ">=8.10.0" } }, "node_modules/require-from-string": { @@ -7361,6 +7350,8 @@ }, "node_modules/resolve": { "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dev": true, "license": "MIT", "dependencies": { @@ -7380,6 +7371,8 @@ }, "node_modules/resolve-from": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, "license": "MIT", "engines": { @@ -7388,6 +7381,8 @@ }, "node_modules/reusify": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, "license": "MIT", "engines": { @@ -7397,6 +7392,8 @@ }, "node_modules/ripemd160": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, "license": "MIT", "dependencies": { @@ -7405,7 +7402,9 @@ } }, "node_modules/rollup": { - "version": "4.32.0", + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.32.1.tgz", + "integrity": "sha512-z+aeEsOeEa3mEbS1Tjl6sAZ8NE3+AalQz1RJGj81M+fizusbdDMoEJwdJNHfaB40Scr4qNu+welOfes7maKonA==", "dev": true, "license": "MIT", "dependencies": { @@ -7419,30 +7418,32 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.32.0", - "@rollup/rollup-android-arm64": "4.32.0", - "@rollup/rollup-darwin-arm64": "4.32.0", - "@rollup/rollup-darwin-x64": "4.32.0", - "@rollup/rollup-freebsd-arm64": "4.32.0", - "@rollup/rollup-freebsd-x64": "4.32.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.32.0", - "@rollup/rollup-linux-arm-musleabihf": "4.32.0", - "@rollup/rollup-linux-arm64-gnu": "4.32.0", - "@rollup/rollup-linux-arm64-musl": "4.32.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.32.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.32.0", - "@rollup/rollup-linux-riscv64-gnu": "4.32.0", - "@rollup/rollup-linux-s390x-gnu": "4.32.0", - "@rollup/rollup-linux-x64-gnu": "4.32.0", - "@rollup/rollup-linux-x64-musl": "4.32.0", - "@rollup/rollup-win32-arm64-msvc": "4.32.0", - "@rollup/rollup-win32-ia32-msvc": "4.32.0", - "@rollup/rollup-win32-x64-msvc": "4.32.0", + "@rollup/rollup-android-arm-eabi": "4.32.1", + "@rollup/rollup-android-arm64": "4.32.1", + "@rollup/rollup-darwin-arm64": "4.32.1", + "@rollup/rollup-darwin-x64": "4.32.1", + "@rollup/rollup-freebsd-arm64": "4.32.1", + "@rollup/rollup-freebsd-x64": "4.32.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.32.1", + "@rollup/rollup-linux-arm-musleabihf": "4.32.1", + "@rollup/rollup-linux-arm64-gnu": "4.32.1", + "@rollup/rollup-linux-arm64-musl": "4.32.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.32.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.32.1", + "@rollup/rollup-linux-riscv64-gnu": "4.32.1", + "@rollup/rollup-linux-s390x-gnu": "4.32.1", + "@rollup/rollup-linux-x64-gnu": "4.32.1", + "@rollup/rollup-linux-x64-musl": "4.32.1", + "@rollup/rollup-win32-arm64-msvc": "4.32.1", + "@rollup/rollup-win32-ia32-msvc": "4.32.1", + "@rollup/rollup-win32-x64-msvc": "4.32.1", "fsevents": "~2.3.2" } }, "node_modules/run-parallel": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -7465,6 +7466,8 @@ }, "node_modules/safe-buffer": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { @@ -7484,6 +7487,8 @@ }, "node_modules/safe-regex-test": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "dev": true, "license": "MIT", "dependencies": { @@ -7500,45 +7505,32 @@ }, "node_modules/sasl-anonymous": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/sasl-anonymous/-/sasl-anonymous-0.1.0.tgz", + "integrity": "sha512-x+0sdsV0Gie2EexxAUsx6ZoB+X6OCthlNBvAQncQxreEWQJByAPntj0EAgTlJc2kZicoc+yFzeR6cl8VfsQGfA==", "engines": { "node": ">= 0.4.0" } }, "node_modules/sasl-plain": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/sasl-plain/-/sasl-plain-0.1.0.tgz", + "integrity": "sha512-X8mCSfR8y0NryTu0tuVyr4IS2jBunBgyG+3a0gEEkd0nlHGiyqJhlc4EIkzmSwaa7F8S4yo+LS6Cu5qxRkJrmg==", "engines": { "node": ">= 0.4.0" } }, "node_modules/saslmechanisms": { "version": "0.1.1", + "resolved": "https://registry.npmjs.org/saslmechanisms/-/saslmechanisms-0.1.1.tgz", + "integrity": "sha512-pVlvK5ysevz8MzybRnDIa2YMxn0OJ7b9lDiWhMoaKPoJ7YkAg/7YtNjUgaYzElkwHxsw8dBMhaEn7UP6zxEwPg==", "engines": { "node": ">= 0.4.0" } }, - "node_modules/sass": { - "version": "1.83.4", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "chokidar": "^4.0.0", - "immutable": "^5.0.2", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=14.0.0" - }, - "optionalDependencies": { - "@parcel/watcher": "^2.4.1" - } - }, "node_modules/scheduler": { "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" @@ -7546,6 +7538,8 @@ }, "node_modules/semver": { "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "license": "ISC", "bin": { @@ -7554,10 +7548,14 @@ }, "node_modules/set-cookie-parser": { "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", "license": "MIT" }, "node_modules/set-function-length": { "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, "license": "MIT", "dependencies": { @@ -7574,11 +7572,15 @@ }, "node_modules/setimmediate": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", "dev": true, "license": "MIT" }, "node_modules/sha.js": { "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, "license": "(MIT AND BSD-3-Clause)", "dependencies": { @@ -7591,6 +7593,8 @@ }, "node_modules/shebang-command": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "license": "MIT", "dependencies": { @@ -7602,6 +7606,8 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "license": "MIT", "engines": { @@ -7610,6 +7616,8 @@ }, "node_modules/side-channel": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dev": true, "license": "MIT", "dependencies": { @@ -7628,6 +7636,8 @@ }, "node_modules/side-channel-list": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", "dev": true, "license": "MIT", "dependencies": { @@ -7643,6 +7653,8 @@ }, "node_modules/side-channel-map": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "dev": true, "license": "MIT", "dependencies": { @@ -7660,6 +7672,8 @@ }, "node_modules/side-channel-weakmap": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dev": true, "license": "MIT", "dependencies": { @@ -7701,6 +7715,8 @@ }, "node_modules/source-map-js": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -7716,6 +7732,8 @@ }, "node_modules/stream-browserify": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", "dev": true, "license": "MIT", "dependencies": { @@ -7725,6 +7743,8 @@ }, "node_modules/stream-http": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", "dev": true, "license": "MIT", "dependencies": { @@ -7736,6 +7756,8 @@ }, "node_modules/string_decoder": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "license": "MIT", "dependencies": { @@ -7858,6 +7880,8 @@ }, "node_modules/strip-json-comments": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "license": "MIT", "engines": { @@ -7892,6 +7916,8 @@ }, "node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { @@ -7903,6 +7929,8 @@ }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, "license": "MIT", "engines": { @@ -7971,67 +7999,6 @@ "tailwindcss": ">=3.0.0 || insiders" } }, - "node_modules/tailwindcss/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tailwindcss/node_modules/jiti": { - "version": "1.21.7", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", - "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", - "dev": true, - "license": "MIT", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/tailwindcss/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", @@ -8057,6 +8024,8 @@ }, "node_modules/timers-browserify": { "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8068,6 +8037,8 @@ }, "node_modules/to-regex-range": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8079,10 +8050,14 @@ }, "node_modules/tr46": { "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "license": "MIT" }, "node_modules/ts-api-utils": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", + "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", "dev": true, "license": "MIT", "engines": { @@ -8101,19 +8076,27 @@ }, "node_modules/tslib": { "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, "node_modules/tty-browserify": { "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", "dev": true, "license": "MIT" }, "node_modules/turbo-stream": { "version": "2.4.0", + "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", + "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", "license": "ISC" }, "node_modules/type-check": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "license": "MIT", "dependencies": { @@ -8138,13 +8121,15 @@ } }, "node_modules/typescript-eslint": { - "version": "8.21.0", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.22.0.tgz", + "integrity": "sha512-Y2rj210FW1Wb6TWXzQc5+P+EWI9/zdS57hLEc0gnyuvdzWo8+Y8brKlbj0muejonhMI/xAZCnZZwjbIfv1CkOw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.21.0", - "@typescript-eslint/parser": "8.21.0", - "@typescript-eslint/utils": "8.21.0" + "@typescript-eslint/eslint-plugin": "8.22.0", + "@typescript-eslint/parser": "8.22.0", + "@typescript-eslint/utils": "8.22.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8167,6 +8152,8 @@ }, "node_modules/undici-types": { "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "license": "MIT" }, "node_modules/universalify": { @@ -8181,6 +8168,8 @@ }, "node_modules/update-browserslist-db": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", "dev": true, "funding": [ { @@ -8210,6 +8199,8 @@ }, "node_modules/uri-js": { "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -8218,6 +8209,8 @@ }, "node_modules/url": { "version": "0.11.4", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", "dev": true, "license": "MIT", "dependencies": { @@ -8230,11 +8223,15 @@ }, "node_modules/url/node_modules/punycode": { "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true, "license": "MIT" }, "node_modules/use-callback-ref": { "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", "license": "MIT", "dependencies": { "tslib": "^2.0.0" @@ -8254,6 +8251,8 @@ }, "node_modules/use-sidecar": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", "license": "MIT", "dependencies": { "detect-node-es": "^1.1.0", @@ -8274,6 +8273,8 @@ }, "node_modules/util": { "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", "dev": true, "license": "MIT", "dependencies": { @@ -8286,6 +8287,8 @@ }, "node_modules/util-deprecate": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true, "license": "MIT" }, @@ -8407,6 +8410,8 @@ }, "node_modules/vm-browserify": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true, "license": "MIT" }, @@ -8419,6 +8424,8 @@ }, "node_modules/web-streams-polyfill": { "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", "license": "MIT", "engines": { "node": ">= 8" @@ -8426,10 +8433,14 @@ }, "node_modules/webidl-conversions": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "license": "BSD-2-Clause" }, "node_modules/whatwg-url": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "license": "MIT", "dependencies": { "tr46": "~0.0.3", @@ -8438,6 +8449,8 @@ }, "node_modules/which": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "license": "ISC", "dependencies": { @@ -8452,6 +8465,8 @@ }, "node_modules/which-typed-array": { "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", "dev": true, "license": "MIT", "dependencies": { @@ -8471,6 +8486,8 @@ }, "node_modules/word-wrap": { "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, "license": "MIT", "engines": { @@ -8574,6 +8591,8 @@ }, "node_modules/ws": { "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -8593,6 +8612,8 @@ }, "node_modules/xtend": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true, "license": "MIT", "engines": { @@ -8601,6 +8622,8 @@ }, "node_modules/yallist": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true, "license": "ISC" }, @@ -8619,6 +8642,8 @@ }, "node_modules/yocto-queue": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, "license": "MIT", "engines": { diff --git a/chat-widget/package.json b/chat-widget/package.json index c0e16940..b085b98e 100644 --- a/chat-widget/package.json +++ b/chat-widget/package.json @@ -1,18 +1,18 @@ { "name": "@connectycube/chat-widget", "private": true, - "version": "0.1.0", + "version": "0.1.0-9", "type": "module", "types": "dist/index.d.ts", "main": "dist/index.umd.js", "module": "dist/index.es.js", "exports": { - "./style.css": "./dist/chat-widget.css", ".": { "types": "./dist/index.d.ts", "import": "./dist/index.es.js", "require": "./dist/index.umd.js" - } + }, + "./style.css": "./dist/chat-widget.css" }, "files": [ "dist" @@ -27,7 +27,7 @@ "preview": "vite preview" }, "dependencies": { - "@connectycube/use-chat": "file:../../use-chat", + "@connectycube/use-chat": "file:./connectycube-use-chat-0.1.0.tgz", "@fingerprintjs/fingerprintjs": "^4.5.1", "@radix-ui/react-alert-dialog": "^1.1.5", "@radix-ui/react-avatar": "^1.1.2", @@ -38,7 +38,7 @@ "@radix-ui/react-tabs": "^1.1.2", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", - "connectycube": "4.0.2", + "connectycube": "^4.0.2", "lucide-react": "^0.474.0", "react": "^18.3.1", "react-dom": "^18.3.1", @@ -51,7 +51,7 @@ }, "devDependencies": { "@eslint/js": "^9.19.0", - "@types/node": "^22.10.10", + "@types/node": "^22.12.0", "@types/react": "^18.3.18", "@types/react-dom": "^18.3.5", "@types/react-scroll": "^1.8.10", @@ -66,7 +66,7 @@ "tailwindcss": "^3.4.17", "tailwindcss-animate": "^1.0.7", "typescript": "~5.7.3", - "typescript-eslint": "^8.21.0", + "typescript-eslint": "^8.22.0", "vite": "^6.0.11", "vite-plugin-dts": "^4.5.0", "vite-plugin-node-polyfills": "^0.23.0" diff --git a/chat-widget/postcss.config.js b/chat-widget/postcss.config.js index 2e7af2b7..2aa7205d 100644 --- a/chat-widget/postcss.config.js +++ b/chat-widget/postcss.config.js @@ -3,4 +3,4 @@ export default { tailwindcss: {}, autoprefixer: {}, }, -} +}; diff --git a/chat-widget/src/App.tsx b/chat-widget/src/App.tsx index 3a861d68..ffb387cc 100644 --- a/chat-widget/src/App.tsx +++ b/chat-widget/src/App.tsx @@ -5,7 +5,7 @@ import ConnectyCube from "connectycube"; import { ChatProvider } from "@connectycube/use-chat"; import { BrowserRouter } from "react-router-dom"; import { Navigate, Route, Routes } from "react-router"; -import { Button } from "@/components/shadcn-ui/button" +import { Button } from "@/components/shadcn-ui/button"; import Login from "@/components/Login"; import SignUp from "@/components/SignUp"; import Home from "@/components/Home/Home"; @@ -39,18 +39,25 @@ const App: React.FC = ({ }) => { const initialPath = isSessionExists() ? "/home" : "/login"; const [isOpen, setIsOpen] = useState(false); + const defaultConfig: Config.Options = { + chat: { + streamManagement: { + enable: true, + }, + }, + }; const toggleChat = () => { setIsOpen(!isOpen); }; useLayoutEffect(() => { - ConnectyCube.init({appId, authKey}, config); + ConnectyCube.init({appId, authKey}, Object.assign(defaultConfig, config)); tryRestoreSession(); }, []); return ( - <> + {isOpen && ReactDOM.createPortal( -
+
- - - - - } /> - } /> - } /> - } />} - /> - } />} - /> - - - - + + + + } /> + } /> + } /> + } />} /> + } />} /> + + +
-
, +
, document.body )} - +
); } diff --git a/chat-widget/src/index.ts b/chat-widget/src/index.ts deleted file mode 100644 index 2aa1e1e7..00000000 --- a/chat-widget/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as default from './App'; \ No newline at end of file diff --git a/chat-widget/src/index.tsx b/chat-widget/src/index.tsx new file mode 100644 index 00000000..6963e4a1 --- /dev/null +++ b/chat-widget/src/index.tsx @@ -0,0 +1,3 @@ +import './index.css' + +export { default } from './App' diff --git a/chat-widget/src/main.tsx b/chat-widget/src/main.tsx index 5b3d1077..f158a8a9 100644 --- a/chat-widget/src/main.tsx +++ b/chat-widget/src/main.tsx @@ -1,23 +1,7 @@ -import { StrictMode } from 'react' import { createRoot } from 'react-dom/client' import './index.css' import App from './App.tsx' createRoot(document.getElementById('root')!).render( - - - , + ) diff --git a/chat-widget/tsconfig.app.json b/chat-widget/tsconfig.app.json index be01f1f8..2c767c51 100644 --- a/chat-widget/tsconfig.app.json +++ b/chat-widget/tsconfig.app.json @@ -26,6 +26,10 @@ "noUnusedParameters": true, "noFallthroughCasesInSwitch": true, "noUncheckedSideEffectImports": true, + + /* Declaration files */ + "declaration": true, + "declarationDir": "./dist/types" }, "include": ["src"] } diff --git a/chat-widget/vite.config.ts b/chat-widget/vite.config.ts index 5fd269cc..c2a70999 100644 --- a/chat-widget/vite.config.ts +++ b/chat-widget/vite.config.ts @@ -1,5 +1,4 @@ import { defineConfig } from 'vite' -// import tailwindcss from "@tailwindcss/vite"; import react from '@vitejs/plugin-react' import { resolve } from "path"; import dts from "vite-plugin-dts"; @@ -8,6 +7,7 @@ import { nodePolyfills } from "vite-plugin-node-polyfills"; const globals = { "react": "React", "react-dom": "ReactDOM", + "connectycube": "ConnectyCube", 'vite-plugin-node-polyfills/shims/process': "process", 'vite-plugin-node-polyfills/shims/buffer': "Buffer" } @@ -15,11 +15,9 @@ const globals = { export default defineConfig(({ mode }) => { const dev = mode === 'development'; const plugins = dev ? [ - // tailwindcss(), react(), nodePolyfills() ] : [ - // tailwindcss(), react(), dts({ rollupTypes: true, @@ -37,16 +35,14 @@ export default defineConfig(({ mode }) => { }, build: { lib: { - entry: resolve(__dirname, dev ? 'src/main.tsx' : 'src/index.ts'), + entry: resolve(__dirname, `./src/${dev ? 'main' : 'index'}.tsx`), name: 'ConnectyCubeChatWidget', fileName: (format) => `index.${format}.js`, }, rollupOptions: { - external: dev ? Object.keys(globals) : [], - output: { - globals: dev ? globals : undefined - } + external: Object.keys(globals), + output: { globals } }, - } + }, }; }); From 2a4ebc65b3378bf2f78d6300fea2c35e5c5ef606 Mon Sep 17 00:00:00 2001 From: Dave Lomber Date: Tue, 28 Jan 2025 18:40:37 +0200 Subject: [PATCH 05/12] fix import --- chat-widget/src/components/Home/Home.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chat-widget/src/components/Home/Home.tsx b/chat-widget/src/components/Home/Home.tsx index d764699b..e00f12b5 100644 --- a/chat-widget/src/components/Home/Home.tsx +++ b/chat-widget/src/components/Home/Home.tsx @@ -1,6 +1,6 @@ import { useNavigate } from "react-router"; import Main from "@/components/Home/Main/Main"; -import SideBar from "./Sidebar/SideBar"; +import SideBar from "./Sidebar/Sidebar"; import { useEffect } from "react"; import { useChat } from "@connectycube/use-chat"; import { chatCredentials } from "../../connectycube"; From 44c75e6862995abe49f39c08a3dda9ac4ea7f7d0 Mon Sep 17 00:00:00 2001 From: Vlad Date: Tue, 28 Jan 2025 19:55:36 +0200 Subject: [PATCH 06/12] css to build --- .../package-lock.json | 1839 +---------------- __vite-react-ts-test-chat-widget/package.json | 1 - chat-widget/index.css | 1 + chat-widget/package-lock.json | 17 +- chat-widget/package.json | 3 +- chat-widget/postcss.config.js | 1 + chat-widget/src/index.tsx | 4 +- chat-widget/src/styles.css | 1 + chat-widget/tailwind.config.js | 5 +- chat-widget/vite.config.ts | 10 + 10 files changed, 111 insertions(+), 1771 deletions(-) create mode 100644 chat-widget/index.css create mode 100644 chat-widget/src/styles.css diff --git a/__vite-react-ts-test-chat-widget/package-lock.json b/__vite-react-ts-test-chat-widget/package-lock.json index 7bae377a..13cfe0eb 100644 --- a/__vite-react-ts-test-chat-widget/package-lock.json +++ b/__vite-react-ts-test-chat-widget/package-lock.json @@ -8,7 +8,6 @@ "name": "vite-react-ts-test-chat-widget", "version": "0.0.0", "dependencies": { - "@connectycube/chat-widget": "file:../chat-widget/connectycube-chat-widget-0.1.0-9.tgz", "react": "^18.3.1", "react-dom": "^18.3.1" }, @@ -282,48 +281,6 @@ "node": ">=6.9.0" } }, - "node_modules/@connectycube/chat-widget": { - "version": "0.1.0-9", - "resolved": "file:../chat-widget/connectycube-chat-widget-0.1.0-9.tgz", - "integrity": "sha512-CjvNWZtDh0aSuU9mDhHCWvSUVR5m1RkmByGJ2Z8LyG0ZBQZ1DysUlAeHpXXR8OUZXxwwett5Wr0msCHOkPotBg==", - "dependencies": { - "@connectycube/use-chat": "file:./connectycube-use-chat-0.1.0.tgz", - "@fingerprintjs/fingerprintjs": "^4.5.1", - "@radix-ui/react-alert-dialog": "^1.1.5", - "@radix-ui/react-avatar": "^1.1.2", - "@radix-ui/react-dialog": "^1.1.5", - "@radix-ui/react-dropdown-menu": "^2.1.5", - "@radix-ui/react-label": "^2.1.1", - "@radix-ui/react-slot": "^1.1.1", - "@radix-ui/react-tabs": "^1.1.2", - "class-variance-authority": "^0.7.1", - "clsx": "^2.1.1", - "connectycube": "^4.0.2", - "lucide-react": "^0.474.0", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-hook-form": "^7.54.2", - "react-icons": "^5.4.0", - "react-intersection-observer": "^9.15.1", - "react-router": "^7.1.3", - "react-router-dom": "^7.1.3", - "react-scroll": "^1.9.0" - } - }, - "node_modules/@connectycube/use-chat": { - "version": "0.1.0", - "resolved": "file:../chat-widget/connectycube-use-chat-0.1.0.tgz", - "integrity": "sha512-eajBDCBmVnGmnXB3ssvzg3+nfMhLKmVhPhjkjEBYMGMkUU3XlwbwBM0de41AuXbwxGR55ctFR2tHX0WMiulFow==", - "dependencies": { - "date-fns": "^4.1.0", - "react-usestateref": "^1.0.9" - }, - "peerDependencies": { - "connectycube": ">=4.0.0", - "react": ">=18.0.0", - "react-dom": ">=18.0.0" - } - }, "node_modules/@esbuild/darwin-arm64": { "version": "0.24.2", "cpu": [ @@ -460,43 +417,6 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@fingerprintjs/fingerprintjs": { - "version": "4.5.1", - "license": "BUSL-1.1", - "dependencies": { - "tslib": "^2.4.1" - } - }, - "node_modules/@floating-ui/core": { - "version": "1.6.9", - "license": "MIT", - "dependencies": { - "@floating-ui/utils": "^0.2.9" - } - }, - "node_modules/@floating-ui/dom": { - "version": "1.6.13", - "license": "MIT", - "dependencies": { - "@floating-ui/core": "^1.6.0", - "@floating-ui/utils": "^0.2.9" - } - }, - "node_modules/@floating-ui/react-dom": { - "version": "2.1.2", - "license": "MIT", - "dependencies": { - "@floating-ui/dom": "^1.0.0" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@floating-ui/utils": { - "version": "0.2.9", - "license": "MIT" - }, "node_modules/@humanfs/core": { "version": "0.19.1", "dev": true, @@ -628,969 +548,95 @@ "node": ">= 8" } }, - "node_modules/@radix-ui/primitive": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/@radix-ui/react-alert-dialog": { - "version": "1.1.5", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-dialog": "1.1.5", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-slot": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-arrow": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "@radix-ui/react-primitive": "2.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-avatar": { - "version": "1.1.2", - "license": "MIT", - "dependencies": { - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-layout-effect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-collection": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-slot": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.1", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-context": { - "version": "1.1.1", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dialog": { - "version": "1.1.5", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.4", - "@radix-ui/react-focus-guards": "1.1.1", - "@radix-ui/react-focus-scope": "1.1.1", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-portal": "1.1.3", - "@radix-ui/react-presence": "1.1.2", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-slot": "1.1.1", - "@radix-ui/react-use-controllable-state": "1.1.0", - "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.6.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-direction": { - "version": "1.1.0", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.4", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-escape-keydown": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dropdown-menu": { - "version": "2.1.5", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-menu": "2.1.5", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-use-controllable-state": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-guards": { - "version": "1.1.1", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-scope": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-use-callback-ref": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-id": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-label": { - "version": "2.1.1", - "license": "MIT", - "dependencies": { - "@radix-ui/react-primitive": "2.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-menu": { - "version": "2.1.5", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-collection": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-dismissable-layer": "1.1.4", - "@radix-ui/react-focus-guards": "1.1.1", - "@radix-ui/react-focus-scope": "1.1.1", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-popper": "1.2.1", - "@radix-ui/react-portal": "1.1.3", - "@radix-ui/react-presence": "1.1.2", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-roving-focus": "1.1.1", - "@radix-ui/react-slot": "1.1.1", - "@radix-ui/react-use-callback-ref": "1.1.0", - "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.6.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-popper": { - "version": "1.2.1", - "license": "MIT", - "dependencies": { - "@floating-ui/react-dom": "^2.0.0", - "@radix-ui/react-arrow": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-layout-effect": "1.1.0", - "@radix-ui/react-use-rect": "1.1.0", - "@radix-ui/react-use-size": "1.1.0", - "@radix-ui/rect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-portal": { - "version": "1.1.3", - "license": "MIT", - "dependencies": { - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-use-layout-effect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-presence": { - "version": "1.1.2", + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.32.1", + "cpu": [ + "arm64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-use-layout-effect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-primitive": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "@radix-ui/react-slot": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-roving-focus": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-collection": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-slot": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-tabs": { - "version": "1.1.2", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-presence": "1.1.2", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-roving-focus": "1.1.1", - "@radix-ui/react-use-controllable-state": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.1.0", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-callback-ref": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-escape-keydown": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-callback-ref": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.1.0", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-rect": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "@radix-ui/rect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-size": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/rect": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.32.1", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@types/accepts": { - "version": "1.3.7", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } + "optional": true, + "os": [ + "darwin" + ] }, "node_modules/@types/babel__core": { "version": "7.20.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.5", - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/content-disposition": { - "version": "0.5.8", - "license": "MIT" - }, - "node_modules/@types/cookie": { - "version": "0.6.0", - "license": "MIT" - }, - "node_modules/@types/cookies": { - "version": "0.9.0", - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/express": "*", - "@types/keygrip": "*", - "@types/node": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/events": { - "version": "3.0.3", - "license": "MIT" - }, - "node_modules/@types/express": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^5.0.0", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "5.0.6", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/form-data": { - "version": "2.5.2", - "deprecated": "This is a stub types definition. form-data provides its own type definitions, so you do not need this installed.", - "license": "MIT", - "dependencies": { - "form-data": "*" - } - }, - "node_modules/@types/http-assert": { - "version": "1.5.6", - "license": "MIT" - }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "license": "MIT" - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/keygrip": { - "version": "1.0.6", - "license": "MIT" - }, - "node_modules/@types/koa": { - "version": "2.15.0", - "license": "MIT", - "dependencies": { - "@types/accepts": "*", - "@types/content-disposition": "*", - "@types/cookies": "*", - "@types/http-assert": "*", - "@types/http-errors": "*", - "@types/keygrip": "*", - "@types/koa-compose": "*", - "@types/node": "*" - } - }, - "node_modules/@types/koa-compose": { - "version": "3.2.8", - "license": "MIT", - "dependencies": { - "@types/koa": "*" - } - }, - "node_modules/@types/ltx": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "@types/events": "*" - } - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.12.0", - "license": "MIT", - "dependencies": { - "undici-types": "~6.20.0" - } - }, - "node_modules/@types/node-fetch": { - "version": "2.6.12", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "form-data": "^4.0.0" - } - }, - "node_modules/@types/prop-types": { - "version": "15.7.14", - "devOptional": true, - "license": "MIT" - }, - "node_modules/@types/qs": { - "version": "6.9.18", - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "18.3.18", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "18.3.5", - "devOptional": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "^18.0.0" - } - }, - "node_modules/@types/saslmechanisms": { - "version": "0.1.3", - "license": "MIT" - }, - "node_modules/@types/send": { - "version": "0.17.4", - "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.7", - "license": "MIT", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, - "node_modules/@types/xmpp__client": { - "version": "0.13.3", - "license": "MIT", - "dependencies": { - "@types/koa-compose": "*", - "@types/xmpp__client-core": "*", - "@types/xmpp__connection": "*", - "@types/xmpp__iq": "*", - "@types/xmpp__middleware": "*", - "@types/xmpp__reconnect": "*", - "@types/xmpp__resource-binding": "*", - "@types/xmpp__sasl": "*", - "@types/xmpp__stream-features": "*", - "@types/xmpp__stream-management": "*" - } - }, - "node_modules/@types/xmpp__client-core": { - "version": "0.13.3", - "license": "MIT", - "dependencies": { - "@types/xmpp__connection": "*", - "@types/xmpp__jid": "*", - "@types/xmpp__xml": "*" - } - }, - "node_modules/@types/xmpp__connection": { - "version": "0.13.3", - "license": "MIT", - "dependencies": { - "@types/xmpp__error": "*", - "@types/xmpp__events": "*", - "@types/xmpp__jid": "*", - "@types/xmpp__xml": "*" - } - }, - "node_modules/@types/xmpp__error": { - "version": "0.13.3", - "license": "MIT", - "dependencies": { - "@types/xmpp__xml": "*" - } - }, - "node_modules/@types/xmpp__events": { - "version": "0.13.3", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/xmpp__iq": { - "version": "0.13.4", - "license": "MIT", - "dependencies": { - "@types/koa-compose": "*", - "@types/xmpp__events": "*", - "@types/xmpp__middleware": "*", - "@types/xmpp__xml": "*" - } - }, - "node_modules/@types/xmpp__jid": { - "version": "1.3.5", - "license": "MIT" - }, - "node_modules/@types/xmpp__middleware": { - "version": "0.13.3", + "dev": true, "license": "MIT", "dependencies": { - "@types/koa-compose": "*", - "@types/xmpp__connection": "*", - "@types/xmpp__error": "*", - "@types/xmpp__jid": "*", - "@types/xmpp__xml": "*" + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "node_modules/@types/xmpp__reconnect": { - "version": "0.13.3", + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "dev": true, "license": "MIT", "dependencies": { - "@types/xmpp__connection": "*", - "@types/xmpp__events": "*" + "@babel/types": "^7.0.0" } }, - "node_modules/@types/xmpp__resource-binding": { - "version": "0.13.3", + "node_modules/@types/babel__template": { + "version": "7.4.4", + "dev": true, "license": "MIT", "dependencies": { - "@types/xmpp__iq": "*", - "@types/xmpp__middleware": "*", - "@types/xmpp__stream-features": "*", - "@types/xmpp__xml": "*" + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "node_modules/@types/xmpp__sasl": { - "version": "0.13.6", + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "dev": true, "license": "MIT", "dependencies": { - "@types/saslmechanisms": "*", - "@types/xmpp__error": "*", - "@types/xmpp__middleware": "*", - "@types/xmpp__stream-features": "*" + "@babel/types": "^7.20.7" } }, - "node_modules/@types/xmpp__stream-features": { - "version": "0.13.3", + "node_modules/@types/estree": { + "version": "1.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.12.0", + "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "@types/koa": "*", - "@types/koa-compose": "*", - "@types/xmpp__middleware": "*", - "@types/xmpp__xml": "*" + "undici-types": "~6.20.0" } }, - "node_modules/@types/xmpp__stream-management": { - "version": "0.13.3", + "node_modules/@types/prop-types": { + "version": "15.7.14", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.18", + "dev": true, "license": "MIT", "dependencies": { - "@types/xmpp__middleware": "*", - "@types/xmpp__stream-features": "*" + "@types/prop-types": "*", + "csstype": "^3.0.2" } }, - "node_modules/@types/xmpp__xml": { - "version": "0.13.4", + "node_modules/@types/react-dom": { + "version": "18.3.5", + "dev": true, "license": "MIT", - "dependencies": { - "@types/ltx": "*" + "peerDependencies": { + "@types/react": "^18.0.0" } }, "node_modules/@typescript-eslint/eslint-plugin": { @@ -1808,218 +854,6 @@ "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" } }, - "node_modules/@xmpp/base64": { - "version": "0.13.2", - "license": "ISC", - "dependencies": { - "base-64": "^1.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@xmpp/client-core": { - "version": "0.13.3", - "license": "ISC", - "dependencies": { - "@xmpp/connection": "^0.13.3", - "@xmpp/jid": "^0.13.2", - "@xmpp/xml": "^0.13.3" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@xmpp/connection": { - "version": "0.13.3", - "license": "ISC", - "dependencies": { - "@xmpp/error": "^0.13.2", - "@xmpp/events": "^0.13.2", - "@xmpp/jid": "^0.13.2", - "@xmpp/xml": "^0.13.3" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@xmpp/error": { - "version": "0.13.2", - "license": "ISC", - "engines": { - "node": ">= 14" - } - }, - "node_modules/@xmpp/events": { - "version": "0.13.2", - "license": "ISC", - "dependencies": { - "events": "^3.3.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@xmpp/id": { - "version": "0.13.2", - "license": "ISC", - "engines": { - "node": ">= 14" - } - }, - "node_modules/@xmpp/iq": { - "version": "0.13.3", - "license": "ISC", - "dependencies": { - "@xmpp/events": "^0.13.2", - "@xmpp/id": "^0.13.2", - "@xmpp/middleware": "^0.13.3", - "@xmpp/xml": "^0.13.3" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@xmpp/jid": { - "version": "0.13.2", - "license": "ISC", - "engines": { - "node": ">= 14" - } - }, - "node_modules/@xmpp/middleware": { - "version": "0.13.3", - "license": "ISC", - "dependencies": { - "@xmpp/error": "^0.13.2", - "@xmpp/jid": "^0.13.2", - "@xmpp/xml": "^0.13.3", - "koa-compose": "^4.1.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@xmpp/reconnect": { - "version": "0.13.2", - "license": "ISC", - "dependencies": { - "@xmpp/events": "^0.13.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@xmpp/resolve": { - "version": "0.13.3", - "license": "ISC", - "dependencies": { - "@xmpp/events": "^0.13.2", - "@xmpp/xml": "^0.13.3", - "node-fetch": "^3.3.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@xmpp/resolve/node_modules/node-fetch": { - "version": "3.3.2", - "license": "MIT", - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/@xmpp/resource-binding": { - "version": "0.13.3", - "license": "ISC", - "dependencies": { - "@xmpp/xml": "^0.13.3" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@xmpp/sasl": { - "version": "0.13.4", - "license": "ISC", - "dependencies": { - "@xmpp/base64": "^0.13.2", - "@xmpp/error": "^0.13.2", - "@xmpp/xml": "^0.13.3", - "saslmechanisms": "^0.1.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@xmpp/sasl-anonymous": { - "version": "0.13.2", - "license": "ISC", - "dependencies": { - "sasl-anonymous": "^0.1.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@xmpp/sasl-plain": { - "version": "0.13.2", - "license": "ISC", - "dependencies": { - "sasl-plain": "^0.1.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@xmpp/session-establishment": { - "version": "0.13.3", - "license": "ISC", - "dependencies": { - "@xmpp/xml": "^0.13.3" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@xmpp/stream-features": { - "version": "0.13.2", - "license": "ISC", - "engines": { - "node": ">= 14" - } - }, - "node_modules/@xmpp/websocket": { - "version": "0.13.3", - "license": "ISC", - "dependencies": { - "@xmpp/connection": "^0.13.3", - "@xmpp/xml": "^0.13.3", - "ws": "^8.18.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@xmpp/xml": { - "version": "0.13.3", - "license": "ISC", - "dependencies": { - "ltx": "^3.1.1" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/acorn": { "version": "8.14.0", "dev": true, @@ -2073,29 +907,11 @@ "dev": true, "license": "Python-2.0" }, - "node_modules/aria-hidden": { - "version": "1.2.4", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "license": "MIT" - }, "node_modules/balanced-match": { "version": "1.0.2", "dev": true, "license": "MIT" }, - "node_modules/base-64": { - "version": "1.0.0", - "license": "MIT" - }, "node_modules/brace-expansion": { "version": "1.1.11", "dev": true, @@ -2189,23 +1005,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/class-variance-authority": { - "version": "0.7.1", - "license": "Apache-2.0", - "dependencies": { - "clsx": "^2.1.1" - }, - "funding": { - "url": "https://polar.sh/cva" - } - }, - "node_modules/clsx": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/color-convert": { "version": "2.0.1", "dev": true, @@ -2222,57 +1021,16 @@ "dev": true, "license": "MIT" }, - "node_modules/combined-stream": { - "version": "1.0.8", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/concat-map": { "version": "0.0.1", "dev": true, "license": "MIT" }, - "node_modules/connectycube": { - "version": "4.0.2", - "license": "Apache-2.0", - "dependencies": { - "@types/form-data": "^2.5.2", - "@types/node-fetch": "^2.6.12", - "@types/xmpp__client": "^0.13.3", - "@xmpp/client-core": "^0.13.3", - "@xmpp/iq": "^0.13.3", - "@xmpp/middleware": "^0.13.3", - "@xmpp/reconnect": "^0.13.2", - "@xmpp/resolve": "^0.13.3", - "@xmpp/resource-binding": "^0.13.3", - "@xmpp/sasl": "^0.13.4", - "@xmpp/sasl-anonymous": "^0.13.2", - "@xmpp/sasl-plain": "^0.13.2", - "@xmpp/session-establishment": "^0.13.3", - "@xmpp/stream-features": "^0.13.2", - "@xmpp/websocket": "^0.13.3", - "eventemitter3": "^5.0.1", - "form-data": "4.0.1", - "node-fetch": "2.7.0" - } - }, "node_modules/convert-source-map": { "version": "2.0.0", "dev": true, "license": "MIT" }, - "node_modules/cookie": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, "node_modules/cross-spawn": { "version": "7.0.6", "dev": true, @@ -2288,26 +1046,9 @@ }, "node_modules/csstype": { "version": "3.1.3", - "devOptional": true, + "dev": true, "license": "MIT" }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/date-fns": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", - "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/kossnocorp" - } - }, "node_modules/debug": { "version": "4.4.0", "dev": true, @@ -2329,17 +1070,6 @@ "dev": true, "license": "MIT" }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/detect-node-es": { - "version": "1.1.0", - "license": "MIT" - }, "node_modules/electron-to-chromium": { "version": "1.5.88", "dev": true, @@ -2560,17 +1290,6 @@ "node": ">=0.10.0" } }, - "node_modules/eventemitter3": { - "version": "5.0.1", - "license": "MIT" - }, - "node_modules/events": { - "version": "3.3.0", - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "dev": true, @@ -2606,39 +1325,18 @@ "version": "2.1.0", "dev": true, "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.18.0", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "license": "MIT", + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.18.0", + "dev": true, + "license": "ISC", "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" + "reusify": "^1.0.4" } }, "node_modules/file-entry-cache": { @@ -2695,28 +1393,6 @@ "dev": true, "license": "ISC" }, - "node_modules/form-data": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "license": "MIT", - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, "node_modules/fsevents": { "version": "2.3.3", "dev": true, @@ -2737,13 +1413,6 @@ "node": ">=6.9.0" } }, - "node_modules/get-nonce": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/glob-parent": { "version": "6.0.2", "dev": true, @@ -2902,10 +1571,6 @@ "json-buffer": "3.0.1" } }, - "node_modules/koa-compose": { - "version": "4.1.0", - "license": "MIT" - }, "node_modules/levn": { "version": "0.4.1", "dev": true, @@ -2937,10 +1602,6 @@ "dev": true, "license": "MIT" }, - "node_modules/lodash.throttle": { - "version": "4.1.1", - "license": "MIT" - }, "node_modules/loose-envify": { "version": "1.4.0", "license": "MIT", @@ -2959,20 +1620,6 @@ "yallist": "^3.0.2" } }, - "node_modules/ltx": { - "version": "3.1.2", - "license": "MIT", - "engines": { - "node": ">= 12.4.0" - } - }, - "node_modules/lucide-react": { - "version": "0.474.0", - "license": "ISC", - "peerDependencies": { - "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, "node_modules/merge2": { "version": "1.4.1", "dev": true, @@ -2993,23 +1640,6 @@ "node": ">=8.6" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/minimatch": { "version": "3.1.2", "dev": true, @@ -3048,53 +1678,11 @@ "dev": true, "license": "MIT" }, - "node_modules/node-domexception": { - "version": "1.0.0", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "license": "MIT", - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, "node_modules/node-releases": { "version": "2.0.19", "dev": true, "license": "MIT" }, - "node_modules/object-assign": { - "version": "4.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/optionator": { "version": "0.9.4", "dev": true, @@ -3217,15 +1805,6 @@ "node": ">= 0.8.0" } }, - "node_modules/prop-types": { - "version": "15.8.1", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, "node_modules/punycode": { "version": "2.3.1", "dev": true, @@ -3274,44 +1853,6 @@ "react": "^18.3.1" } }, - "node_modules/react-hook-form": { - "version": "7.54.2", - "license": "MIT", - "engines": { - "node": ">=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/react-hook-form" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17 || ^18 || ^19" - } - }, - "node_modules/react-icons": { - "version": "5.4.0", - "license": "MIT", - "peerDependencies": { - "react": "*" - } - }, - "node_modules/react-intersection-observer": { - "version": "9.15.1", - "license": "MIT", - "peerDependencies": { - "react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - } - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "license": "MIT" - }, "node_modules/react-refresh": { "version": "0.14.2", "dev": true, @@ -3320,126 +1861,6 @@ "node": ">=0.10.0" } }, - "node_modules/react-remove-scroll": { - "version": "2.6.3", - "license": "MIT", - "dependencies": { - "react-remove-scroll-bar": "^2.3.7", - "react-style-singleton": "^2.2.3", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.3", - "use-sidecar": "^1.1.3" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll-bar": { - "version": "2.3.8", - "license": "MIT", - "dependencies": { - "react-style-singleton": "^2.2.2", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-router": { - "version": "7.1.3", - "license": "MIT", - "dependencies": { - "@types/cookie": "^0.6.0", - "cookie": "^1.0.1", - "set-cookie-parser": "^2.6.0", - "turbo-stream": "2.4.0" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - } - } - }, - "node_modules/react-router-dom": { - "version": "7.1.3", - "license": "MIT", - "dependencies": { - "react-router": "7.1.3" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/react-scroll": { - "version": "1.9.0", - "license": "MIT", - "dependencies": { - "lodash.throttle": "^4.1.1", - "prop-types": "^15.7.2" - }, - "peerDependencies": { - "react": "^15.5.4 || ^16.0.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^15.5.4 || ^16.0.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-style-singleton": { - "version": "2.2.3", - "license": "MIT", - "dependencies": { - "get-nonce": "^1.0.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-usestateref": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/react-usestateref/-/react-usestateref-1.0.9.tgz", - "integrity": "sha512-t8KLsI7oje0HzfzGhxFXzuwbf1z9vhBM1ptHLUIHhYqZDKFuI5tzdhEVxSNzUkYxwF8XdpOErzHlKxvP7sTERw==", - "license": "ISC", - "peerDependencies": { - "react": ">16.0.0" - } - }, "node_modules/resolve-from": { "version": "4.0.0", "dev": true, @@ -3516,24 +1937,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/sasl-anonymous": { - "version": "0.1.0", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/sasl-plain": { - "version": "0.1.0", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/saslmechanisms": { - "version": "0.1.1", - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/scheduler": { "version": "0.23.2", "license": "MIT", @@ -3549,10 +1952,6 @@ "semver": "bin/semver.js" } }, - "node_modules/set-cookie-parser": { - "version": "2.7.1", - "license": "MIT" - }, "node_modules/shebang-command": { "version": "2.0.0", "dev": true, @@ -3613,10 +2012,6 @@ "node": ">=8.0" } }, - "node_modules/tr46": { - "version": "0.0.3", - "license": "MIT" - }, "node_modules/ts-api-utils": { "version": "2.0.0", "dev": true, @@ -3628,14 +2023,6 @@ "typescript": ">=4.8.4" } }, - "node_modules/tslib": { - "version": "2.8.1", - "license": "0BSD" - }, - "node_modules/turbo-stream": { - "version": "2.4.0", - "license": "ISC" - }, "node_modules/type-check": { "version": "0.4.0", "dev": true, @@ -3682,7 +2069,10 @@ }, "node_modules/undici-types": { "version": "6.20.0", - "license": "MIT" + "dev": true, + "license": "MIT", + "optional": true, + "peer": true }, "node_modules/update-browserslist-db": { "version": "1.1.2", @@ -3721,45 +2111,6 @@ "punycode": "^2.1.0" } }, - "node_modules/use-callback-ref": { - "version": "1.3.3", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-sidecar": { - "version": "1.1.3", - "license": "MIT", - "dependencies": { - "detect-node-es": "^1.1.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/vite": { "version": "6.0.11", "dev": true, @@ -3830,25 +2181,6 @@ } } }, - "node_modules/web-streams-polyfill": { - "version": "3.3.3", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/which": { "version": "2.0.2", "dev": true, @@ -3871,25 +2203,6 @@ "node": ">=0.10.0" } }, - "node_modules/ws": { - "version": "8.18.0", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/yallist": { "version": "3.1.1", "dev": true, diff --git a/__vite-react-ts-test-chat-widget/package.json b/__vite-react-ts-test-chat-widget/package.json index abd4dcec..35ab9082 100644 --- a/__vite-react-ts-test-chat-widget/package.json +++ b/__vite-react-ts-test-chat-widget/package.json @@ -10,7 +10,6 @@ "preview": "vite preview" }, "dependencies": { - "@connectycube/chat-widget": "file:../chat-widget/connectycube-chat-widget-0.1.0-9.tgz", "react": "^18.3.1", "react-dom": "^18.3.1" }, diff --git a/chat-widget/index.css b/chat-widget/index.css new file mode 100644 index 00000000..5bdc0dc1 --- /dev/null +++ b/chat-widget/index.css @@ -0,0 +1 @@ +*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.bottom-0{bottom:0}.bottom-2{bottom:.5rem}.bottom-\[3px\]{bottom:3px}.bottom-\[8\%\]{bottom:8%}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:.5rem}.left-5{left:1.25rem}.left-\[50\%\]{left:50%}.left-\[96\%\]{left:96%}.right-0{right:0}.right-4{right:1rem}.right-\[15px\]{right:15px}.right-\[5\%\]{right:5%}.top-0{top:0}.top-1\/2{top:50%}.top-4{top:1rem}.top-\[-76\%\]{top:-76%}.top-\[50\%\]{top:50%}.top-\[83\%\]{top:83%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem}.mb-1,.my-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-10{margin-top:2.5rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-1\/2{height:50%}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[0px\]{height:0}.h-\[150px\]{height:150px}.h-\[40px\]{height:40px}.h-\[50px\]{height:50px}.h-\[60px\]{height:60px}.h-\[68\%\]{height:68%}.h-\[87\%\]{height:87%}.h-\[calc\(100\%-60px\)\]{height:calc(100% - 60px)}.h-full{height:100%}.h-px{height:1px}.max-h-\[200px\]{max-height:200px}.w-10{width:2.5rem}.w-12{width:3rem}.w-2{width:.5rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-9{width:2.25rem}.w-\[100\%\]{width:100%}.w-\[220px\]{width:220px}.w-\[50\%\]{width:50%}.w-\[50px\]{width:50px}.w-\[60px\]{width:60px}.w-\[90\%\]{width:90%}.w-full{width:100%}.min-w-\[150px\]{min-width:150px}.min-w-\[8rem\]{min-width:8rem}.max-w-\[200px\]{max-width:200px}.max-w-\[90\%\]{max-width:90%}.max-w-lg{max-width:32rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-\[0_0_70\%\]{flex:0 0 70%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.translate-x-0{--tw-translate-x:0px}.translate-x-0,.translate-x-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-x-full{--tw-translate-x:100%}.translate-x-full,.translate-y-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y:-50%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.25rem*var(--tw-space-x-reverse));margin-left:calc(1.25rem*(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-scroll{overflow-y:scroll}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-black{--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity,1))}.border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-input{border-color:hsl(var(--input))}.bg-background{background-color:hsl(var(--background))}.bg-black\/80{background-color:#000c}.bg-blue-300{--tw-bg-opacity:1;background-color:rgb(147 197 253/var(--tw-bg-opacity,1))}.bg-blue-400{--tw-bg-opacity:1;background-color:rgb(96 165 250/var(--tw-bg-opacity,1))}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-blue-500\/80{background-color:#3b82f6cc}.bg-destructive{background-color:hsl(var(--destructive))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.bg-muted{background-color:hsl(var(--muted))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-transparent{background-color:initial}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-black{--tw-gradient-from:#000 var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-transparent{--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pl-3{padding-left:.75rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-5{padding-top:1.25rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-6xl{font-size:3.75rem;line-height:1}.text-\[20px\]{font-size:20px}.text-\[30px\]{font-size:30px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.italic{font-style:italic}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-blue-900{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline-offset-4{text-underline-offset:4px}.placeholder-gray-500::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(107 114 128/var(--tw-placeholder-opacity,1))}.placeholder-gray-500::placeholder{--tw-placeholder-opacity:1;color:rgb(107 114 128/var(--tw-placeholder-opacity,1))}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-md,.shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid #0000;outline-offset:2px}.outline{outline-style:solid}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.duration-100{animation-duration:.1s}.duration-200{animation-duration:.2s}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:initial}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:border-gray-100:hover{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-blue-400:hover{--tw-bg-opacity:1;background-color:rgb(96 165 250/var(--tw-bg-opacity,1))}.hover\:bg-blue-800:hover{--tw-bg-opacity:1;background-color:rgb(30 64 175/var(--tw-bg-opacity,1))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid #0000;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-0.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:0.5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-0.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:0.5rem}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}@media (min-width:640px){.sm\:mt-0{margin-top:0}.sm\:block{display:block}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}}@media (min-width:768px){.md\:hidden{display:none}.md\:w-\[350px\]{width:350px}.md\:max-w-\[35\%\]{max-width:35%}.md\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:1024px){.lg\:max-w-\[30\%\]{max-width:30%}}@media (min-width:1280px){.xl\:max-w-\[25\%\]{max-width:25%}}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0} \ No newline at end of file diff --git a/chat-widget/package-lock.json b/chat-widget/package-lock.json index f8e1412e..691f8b97 100644 --- a/chat-widget/package-lock.json +++ b/chat-widget/package-lock.json @@ -1,12 +1,12 @@ { "name": "@connectycube/chat-widget", - "version": "0.1.0-9", + "version": "0.1.0-10", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@connectycube/chat-widget", - "version": "0.1.0-9", + "version": "0.1.0-10", "dependencies": { "@connectycube/use-chat": "file:./connectycube-use-chat-0.1.0.tgz", "@fingerprintjs/fingerprintjs": "^4.5.1", @@ -32,7 +32,7 @@ }, "devDependencies": { "@eslint/js": "^9.19.0", - "@types/node": "^22.10.10", + "@types/node": "^22.12.0", "@types/react": "^18.3.18", "@types/react-dom": "^18.3.5", "@types/react-scroll": "^1.8.10", @@ -49,6 +49,7 @@ "typescript": "~5.7.3", "typescript-eslint": "^8.22.0", "vite": "^6.0.11", + "vite-plugin-css-injected-by-js": "^3.5.2", "vite-plugin-dts": "^4.5.0", "vite-plugin-node-polyfills": "^0.23.0" } @@ -8364,6 +8365,16 @@ } } }, + "node_modules/vite-plugin-css-injected-by-js": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/vite-plugin-css-injected-by-js/-/vite-plugin-css-injected-by-js-3.5.2.tgz", + "integrity": "sha512-2MpU/Y+SCZyWUB6ua3HbJCrgnF0KACAsmzOQt1UvRVJCGF6S8xdA3ZUhWcWdM9ivG4I5az8PnQmwwrkC2CAQrQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "vite": ">2.0.0-0" + } + }, "node_modules/vite-plugin-dts": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-4.5.0.tgz", diff --git a/chat-widget/package.json b/chat-widget/package.json index b085b98e..99d70e8e 100644 --- a/chat-widget/package.json +++ b/chat-widget/package.json @@ -1,7 +1,7 @@ { "name": "@connectycube/chat-widget", "private": true, - "version": "0.1.0-9", + "version": "0.1.0-10", "type": "module", "types": "dist/index.d.ts", "main": "dist/index.umd.js", @@ -68,6 +68,7 @@ "typescript": "~5.7.3", "typescript-eslint": "^8.22.0", "vite": "^6.0.11", + "vite-plugin-css-injected-by-js": "^3.5.2", "vite-plugin-dts": "^4.5.0", "vite-plugin-node-polyfills": "^0.23.0" } diff --git a/chat-widget/postcss.config.js b/chat-widget/postcss.config.js index 2aa7205d..750a30bf 100644 --- a/chat-widget/postcss.config.js +++ b/chat-widget/postcss.config.js @@ -2,5 +2,6 @@ export default { plugins: { tailwindcss: {}, autoprefixer: {}, + ...(process.env.NODE_ENV === 'production' ? { cssnano: {} } : {}) }, }; diff --git a/chat-widget/src/index.tsx b/chat-widget/src/index.tsx index 6963e4a1..66a7dfd0 100644 --- a/chat-widget/src/index.tsx +++ b/chat-widget/src/index.tsx @@ -1,3 +1,3 @@ -import './index.css' +import './styles.css'; -export { default } from './App' +export { default } from './App'; diff --git a/chat-widget/src/styles.css b/chat-widget/src/styles.css new file mode 100644 index 00000000..87a6ee65 --- /dev/null +++ b/chat-widget/src/styles.css @@ -0,0 +1 @@ +*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background:0 0% 100%;--foreground:222.2 47.4% 11.2%;--muted:210 40% 96.1%;--muted-foreground:215.4 16.3% 46.9%;--popover:0 0% 100%;--popover-foreground:222.2 47.4% 11.2%;--border:214.3 31.8% 91.4%;--input:214.3 31.8% 91.4%;--card:0 0% 100%;--card-foreground:222.2 47.4% 11.2%;--primary:222.2 47.4% 11.2%;--primary-foreground:210 40% 98%;--secondary:210 40% 96.1%;--secondary-foreground:222.2 47.4% 11.2%;--accent:210 40% 96.1%;--accent-foreground:222.2 47.4% 11.2%;--destructive:0 100% 50%;--destructive-foreground:210 40% 98%;--ring:215 20.2% 65.1%;--radius:0.5rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.bottom-0{bottom:0}.bottom-2{bottom:.5rem}.bottom-\[3px\]{bottom:3px}.bottom-\[8\%\]{bottom:8%}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:.5rem}.left-5{left:1.25rem}.left-\[50\%\]{left:50%}.left-\[96\%\]{left:96%}.right-0{right:0}.right-4{right:1rem}.right-\[15px\]{right:15px}.right-\[5\%\]{right:5%}.top-0{top:0}.top-1\/2{top:50%}.top-4{top:1rem}.top-\[-76\%\]{top:-76%}.top-\[50\%\]{top:50%}.top-\[83\%\]{top:83%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem}.mb-1,.my-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-10{margin-top:2.5rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-1\/2{height:50%}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[0px\]{height:0}.h-\[150px\]{height:150px}.h-\[40px\]{height:40px}.h-\[50px\]{height:50px}.h-\[60px\]{height:60px}.h-\[68\%\]{height:68%}.h-\[87\%\]{height:87%}.h-\[calc\(100\%-60px\)\]{height:calc(100% - 60px)}.h-full{height:100%}.h-px{height:1px}.max-h-\[200px\]{max-height:200px}.w-10{width:2.5rem}.w-12{width:3rem}.w-2{width:.5rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-9{width:2.25rem}.w-\[100\%\]{width:100%}.w-\[220px\]{width:220px}.w-\[50\%\]{width:50%}.w-\[50px\]{width:50px}.w-\[60px\]{width:60px}.w-\[90\%\]{width:90%}.w-full{width:100%}.min-w-\[150px\]{min-width:150px}.min-w-\[8rem\]{min-width:8rem}.max-w-\[200px\]{max-width:200px}.max-w-\[90\%\]{max-width:90%}.max-w-lg{max-width:32rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-\[0_0_70\%\]{flex:0 0 70%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.translate-x-0{--tw-translate-x:0px}.translate-x-0,.translate-x-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-x-full{--tw-translate-x:100%}.translate-x-full,.translate-y-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y:-50%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.25rem*var(--tw-space-x-reverse));margin-left:calc(1.25rem*(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-scroll{overflow-y:scroll}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-black{--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity,1))}.border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-input{border-color:hsl(var(--input))}.bg-background{background-color:hsl(var(--background))}.bg-black\/80{background-color:rgba(0,0,0,.8)}.bg-blue-300{--tw-bg-opacity:1;background-color:rgb(147 197 253/var(--tw-bg-opacity,1))}.bg-blue-400{--tw-bg-opacity:1;background-color:rgb(96 165 250/var(--tw-bg-opacity,1))}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-blue-500\/80{background-color:rgba(59,130,246,.8)}.bg-destructive{background-color:hsl(var(--destructive))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.bg-muted{background-color:hsl(var(--muted))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-black{--tw-gradient-from:#000 var(--tw-gradient-from-position);--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pl-3{padding-left:.75rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-5{padding-top:1.25rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-6xl{font-size:3.75rem;line-height:1}.text-\[20px\]{font-size:20px}.text-\[30px\]{font-size:30px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.italic{font-style:italic}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-blue-900{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline-offset-4{text-underline-offset:4px}.placeholder-gray-500::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(107 114 128/var(--tw-placeholder-opacity,1))}.placeholder-gray-500::placeholder{--tw-placeholder-opacity:1;color:rgb(107 114 128/var(--tw-placeholder-opacity,1))}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-md,.shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.duration-100{animation-duration:.1s}.duration-200{animation-duration:.2s}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:hsla(0,0%,100%,.87);background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;padding:0;box-sizing:border-box;font-family:Roboto!important;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:border-gray-100:hover{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-blue-400:hover{--tw-bg-opacity:1;background-color:rgb(96 165 250/var(--tw-bg-opacity,1))}.hover\:bg-blue-800:hover{--tw-bg-opacity:1;background-color:rgb(30 64 175/var(--tw-bg-opacity,1))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-0.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:0.5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-0.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:0.5rem}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}@media (min-width:640px){.sm\:mt-0{margin-top:0}.sm\:block{display:block}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}}@media (min-width:768px){.md\:hidden{display:none}.md\:w-\[350px\]{width:350px}.md\:max-w-\[35\%\]{max-width:35%}.md\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:1024px){.lg\:max-w-\[30\%\]{max-width:30%}}@media (min-width:1280px){.xl\:max-w-\[25\%\]{max-width:25%}}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0} \ No newline at end of file diff --git a/chat-widget/tailwind.config.js b/chat-widget/tailwind.config.js index 940c0250..5663d795 100644 --- a/chat-widget/tailwind.config.js +++ b/chat-widget/tailwind.config.js @@ -1,7 +1,10 @@ /** @type {import('tailwindcss').Config} */ module.exports = { darkMode: ["class"], - content: ["./index.html", "src/**/*.{js,ts,jsx,tsx}"], + content: [ + "./src/**/*.{js,ts,jsx,tsx}", + "./index.html", + ], theme: { extend: { colors: { diff --git a/chat-widget/vite.config.ts b/chat-widget/vite.config.ts index c2a70999..9175129b 100644 --- a/chat-widget/vite.config.ts +++ b/chat-widget/vite.config.ts @@ -3,6 +3,8 @@ import react from '@vitejs/plugin-react' import { resolve } from "path"; import dts from "vite-plugin-dts"; import { nodePolyfills } from "vite-plugin-node-polyfills"; +import autoprefixer from 'autoprefixer'; +import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js' const globals = { "react": "React", @@ -19,6 +21,7 @@ export default defineConfig(({ mode }) => { nodePolyfills() ] : [ react(), + cssInjectedByJsPlugin(), dts({ rollupTypes: true, tsconfigPath: './tsconfig.app.json' @@ -44,5 +47,12 @@ export default defineConfig(({ mode }) => { output: { globals } }, }, + css: { + postcss: { + plugins: [ + autoprefixer({}) // add options if needed + ], + } + } }; }); From 4c9e4094eb2d624cb327ea4100deee3b51872819 Mon Sep 17 00:00:00 2001 From: Vlad Date: Tue, 28 Jan 2025 20:43:33 +0200 Subject: [PATCH 07/12] styles for bundle --- chat-widget/.gitignore | 1 + chat-widget/index.css | 1 - chat-widget/package-lock.json | 1417 ++++++++++- chat-widget/package.json | 10 +- chat-widget/src/App.css | 4 +- .../src/components/Home/Main/ChatInput.tsx | 2 +- .../src/components/Home/Sidebar/Sidebar.tsx | 2 +- chat-widget/src/index.css | 1 - chat-widget/src/main.tsx | 2 +- chat-widget/src/styles.css | 2156 ++++++++++++++++- chat-widget/tsconfig.json | 3 +- chat-widget/tsconfig.node.json | 3 +- chat-widget/vite.config.ts | 8 +- 13 files changed, 3573 insertions(+), 37 deletions(-) delete mode 100644 chat-widget/index.css diff --git a/chat-widget/.gitignore b/chat-widget/.gitignore index a547bf36..a744918c 100644 --- a/chat-widget/.gitignore +++ b/chat-widget/.gitignore @@ -11,6 +11,7 @@ node_modules dist dist-ssr *.local +src/styles.css # Editor directories and files .vscode/* diff --git a/chat-widget/index.css b/chat-widget/index.css deleted file mode 100644 index 5bdc0dc1..00000000 --- a/chat-widget/index.css +++ /dev/null @@ -1 +0,0 @@ -*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.bottom-0{bottom:0}.bottom-2{bottom:.5rem}.bottom-\[3px\]{bottom:3px}.bottom-\[8\%\]{bottom:8%}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:.5rem}.left-5{left:1.25rem}.left-\[50\%\]{left:50%}.left-\[96\%\]{left:96%}.right-0{right:0}.right-4{right:1rem}.right-\[15px\]{right:15px}.right-\[5\%\]{right:5%}.top-0{top:0}.top-1\/2{top:50%}.top-4{top:1rem}.top-\[-76\%\]{top:-76%}.top-\[50\%\]{top:50%}.top-\[83\%\]{top:83%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem}.mb-1,.my-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-10{margin-top:2.5rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-1\/2{height:50%}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[0px\]{height:0}.h-\[150px\]{height:150px}.h-\[40px\]{height:40px}.h-\[50px\]{height:50px}.h-\[60px\]{height:60px}.h-\[68\%\]{height:68%}.h-\[87\%\]{height:87%}.h-\[calc\(100\%-60px\)\]{height:calc(100% - 60px)}.h-full{height:100%}.h-px{height:1px}.max-h-\[200px\]{max-height:200px}.w-10{width:2.5rem}.w-12{width:3rem}.w-2{width:.5rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-9{width:2.25rem}.w-\[100\%\]{width:100%}.w-\[220px\]{width:220px}.w-\[50\%\]{width:50%}.w-\[50px\]{width:50px}.w-\[60px\]{width:60px}.w-\[90\%\]{width:90%}.w-full{width:100%}.min-w-\[150px\]{min-width:150px}.min-w-\[8rem\]{min-width:8rem}.max-w-\[200px\]{max-width:200px}.max-w-\[90\%\]{max-width:90%}.max-w-lg{max-width:32rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-\[0_0_70\%\]{flex:0 0 70%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.translate-x-0{--tw-translate-x:0px}.translate-x-0,.translate-x-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-x-full{--tw-translate-x:100%}.translate-x-full,.translate-y-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y:-50%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.25rem*var(--tw-space-x-reverse));margin-left:calc(1.25rem*(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-scroll{overflow-y:scroll}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-black{--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity,1))}.border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-input{border-color:hsl(var(--input))}.bg-background{background-color:hsl(var(--background))}.bg-black\/80{background-color:#000c}.bg-blue-300{--tw-bg-opacity:1;background-color:rgb(147 197 253/var(--tw-bg-opacity,1))}.bg-blue-400{--tw-bg-opacity:1;background-color:rgb(96 165 250/var(--tw-bg-opacity,1))}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-blue-500\/80{background-color:#3b82f6cc}.bg-destructive{background-color:hsl(var(--destructive))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.bg-muted{background-color:hsl(var(--muted))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-transparent{background-color:initial}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-black{--tw-gradient-from:#000 var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-transparent{--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pl-3{padding-left:.75rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-5{padding-top:1.25rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-6xl{font-size:3.75rem;line-height:1}.text-\[20px\]{font-size:20px}.text-\[30px\]{font-size:30px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.italic{font-style:italic}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-blue-900{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline-offset-4{text-underline-offset:4px}.placeholder-gray-500::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(107 114 128/var(--tw-placeholder-opacity,1))}.placeholder-gray-500::placeholder{--tw-placeholder-opacity:1;color:rgb(107 114 128/var(--tw-placeholder-opacity,1))}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-md,.shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid #0000;outline-offset:2px}.outline{outline-style:solid}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.duration-100{animation-duration:.1s}.duration-200{animation-duration:.2s}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:initial}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:border-gray-100:hover{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-blue-400:hover{--tw-bg-opacity:1;background-color:rgb(96 165 250/var(--tw-bg-opacity,1))}.hover\:bg-blue-800:hover{--tw-bg-opacity:1;background-color:rgb(30 64 175/var(--tw-bg-opacity,1))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid #0000;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-0.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:0.5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-0.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:0.5rem}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}@media (min-width:640px){.sm\:mt-0{margin-top:0}.sm\:block{display:block}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}}@media (min-width:768px){.md\:hidden{display:none}.md\:w-\[350px\]{width:350px}.md\:max-w-\[35\%\]{max-width:35%}.md\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:1024px){.lg\:max-w-\[30\%\]{max-width:30%}}@media (min-width:1280px){.xl\:max-w-\[25\%\]{max-width:25%}}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0} \ No newline at end of file diff --git a/chat-widget/package-lock.json b/chat-widget/package-lock.json index 691f8b97..f7cf42e5 100644 --- a/chat-widget/package-lock.json +++ b/chat-widget/package-lock.json @@ -42,6 +42,7 @@ "eslint-plugin-react-hooks": "^5.1.0", "eslint-plugin-react-refresh": "^0.4.18", "globals": "^15.14.0", + "npm-run-all": "^4.1.5", "postcss": "^8.5.1", "tailwind-merge": "^2.6.0", "tailwindcss": "^3.4.17", @@ -3717,6 +3718,45 @@ "node": ">=10" } }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/asn1.js": { "version": "4.10.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", @@ -3750,6 +3790,16 @@ "util": "^0.12.5" } }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -4535,6 +4585,60 @@ "node": ">= 12" } }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/date-fns": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", @@ -4757,6 +4861,82 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -4790,6 +4970,40 @@ "node": ">= 0.4" } }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/esbuild": { "version": "0.24.2", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", @@ -5342,6 +5556,37 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -5400,6 +5645,24 @@ "node": ">= 0.4" } }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/glob": { "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", @@ -5473,6 +5736,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -5500,6 +5780,19 @@ "dev": true, "license": "MIT" }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -5523,6 +5816,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", @@ -5612,6 +5921,13 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", @@ -5694,6 +6010,21 @@ "dev": true, "license": "ISC" }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/is-arguments": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", @@ -5711,25 +6042,44 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "dev": true, "license": "MIT", "dependencies": { - "binary-extensions": "^2.0.0" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", "dev": true, "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, "engines": { "node": ">= 0.4" }, @@ -5737,14 +6087,14 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", "dev": true, "license": "MIT", "dependencies": { - "hasown": "^2.0.2" + "has-bigints": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -5753,16 +6103,126 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz", + "integrity": "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -5805,6 +6265,19 @@ "node": ">=0.10.0" } }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-nan": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", @@ -5832,6 +6305,23 @@ "node": ">=0.12.0" } }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-regex": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", @@ -5851,6 +6341,70 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-typed-array": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", @@ -5867,6 +6421,52 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz", + "integrity": "sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -5963,6 +6563,13 @@ "dev": true, "license": "MIT" }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true, + "license": "MIT" + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -6057,6 +6664,32 @@ "dev": true, "license": "MIT" }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/local-pkg": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz", @@ -6182,6 +6815,15 @@ "safe-buffer": "^5.1.2" } }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -6350,6 +6992,13 @@ "dev": true, "license": "MIT" }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true, + "license": "MIT" + }, "node_modules/node-domexception": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", @@ -6442,6 +7091,29 @@ "dev": true, "license": "MIT" }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -6462,6 +7134,183 @@ "node": ">=0.10.0" } }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm-run-all/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/npm-run-all/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/npm-run-all/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/npm-run-all/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-run-all/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -6567,6 +7416,24 @@ "dev": true, "license": "MIT" }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -6644,6 +7511,20 @@ "node": ">= 0.10" } }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", @@ -6702,6 +7583,29 @@ "dev": true, "license": "ISC" }, + "node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-type/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/pathe": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.2.tgz", @@ -6746,6 +7650,19 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -7311,6 +8228,21 @@ "pify": "^2.3.0" } }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -7339,6 +8271,50 @@ "node": ">=8.10.0" } }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -7465,6 +8441,33 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -7486,6 +8489,30 @@ ], "license": "MIT" }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, "node_modules/safe-regex-test": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", @@ -7571,6 +8598,37 @@ "node": ">= 0.4" } }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -7615,6 +8673,19 @@ "node": ">=8" } }, + "node_modules/shell-quote": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/side-channel": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", @@ -7724,6 +8795,42 @@ "node": ">=0.10.0" } }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz", + "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -7839,6 +8946,84 @@ "node": ">=8" } }, + "node_modules/string.prototype.padend": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", + "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/strip-ansi": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", @@ -7879,6 +9064,16 @@ "node": ">=8" } }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -8107,6 +9302,84 @@ "node": ">= 0.8.0" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typescript": { "version": "5.7.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", @@ -8151,6 +9424,25 @@ "dev": true, "license": "MIT" }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/undici-types": { "version": "6.20.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", @@ -8293,6 +9585,17 @@ "dev": true, "license": "MIT" }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, "node_modules/vite": { "version": "6.0.11", "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.11.tgz", @@ -8474,6 +9777,80 @@ "node": ">= 8" } }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/which-typed-array": { "version": "1.1.18", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", diff --git a/chat-widget/package.json b/chat-widget/package.json index 99d70e8e..d068419f 100644 --- a/chat-widget/package.json +++ b/chat-widget/package.json @@ -1,7 +1,7 @@ { "name": "@connectycube/chat-widget", "private": true, - "version": "0.1.0-10", + "version": "0.1.0", "type": "module", "types": "dist/index.d.ts", "main": "dist/index.umd.js", @@ -11,8 +11,7 @@ "types": "./dist/index.d.ts", "import": "./dist/index.es.js", "require": "./dist/index.umd.js" - }, - "./style.css": "./dist/chat-widget.css" + } }, "files": [ "dist" @@ -23,6 +22,10 @@ "scripts": { "dev": "vite", "build": "tsc -b && vite build", + "start": "npm-run-all --parallel dev css:watch", + "css:watch": "npx tailwindcss -i ./src/index.css -o ./src/styles.css --watch", + "css:minify": "npx tailwindcss -i ./src/index.css -o ./src/styles.css --minify", + "bundle": "npm run css:minify && npm run build", "lint": "eslint .", "preview": "vite preview" }, @@ -61,6 +64,7 @@ "eslint-plugin-react-hooks": "^5.1.0", "eslint-plugin-react-refresh": "^0.4.18", "globals": "^15.14.0", + "npm-run-all": "^4.1.5", "postcss": "^8.5.1", "tailwind-merge": "^2.6.0", "tailwindcss": "^3.4.17", diff --git a/chat-widget/src/App.css b/chat-widget/src/App.css index 8edbc809..45ef840b 100644 --- a/chat-widget/src/App.css +++ b/chat-widget/src/App.css @@ -13,8 +13,8 @@ position: fixed; bottom: 60px; right: 15px; - width: 600px; - height: 600px; + width: 720px; + height: 640px; border: 1px solid #ccc; border-radius: 8px; overflow: hidden; diff --git a/chat-widget/src/components/Home/Main/ChatInput.tsx b/chat-widget/src/components/Home/Main/ChatInput.tsx index 43a797a4..7cf7a9ff 100644 --- a/chat-widget/src/components/Home/Main/ChatInput.tsx +++ b/chat-widget/src/components/Home/Main/ChatInput.tsx @@ -84,7 +84,7 @@ const ChatInput: React.FC = ({ +
+

+ Click on the Vite and TypeScript logos to learn more +

+
+` + +setupCounter(document.querySelector('#counter')!) diff --git a/__vite-vanilla-ts-test-chat-widget/src/style.css b/__vite-vanilla-ts-test-chat-widget/src/style.css new file mode 100644 index 00000000..f9c73502 --- /dev/null +++ b/__vite-vanilla-ts-test-chat-widget/src/style.css @@ -0,0 +1,96 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.vanilla:hover { + filter: drop-shadow(0 0 2em #3178c6aa); +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/__vite-vanilla-ts-test-chat-widget/src/typescript.svg b/__vite-vanilla-ts-test-chat-widget/src/typescript.svg new file mode 100644 index 00000000..d91c910c --- /dev/null +++ b/__vite-vanilla-ts-test-chat-widget/src/typescript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/__vite-vanilla-ts-test-chat-widget/src/vite-env.d.ts b/__vite-vanilla-ts-test-chat-widget/src/vite-env.d.ts new file mode 100644 index 00000000..11f02fe2 --- /dev/null +++ b/__vite-vanilla-ts-test-chat-widget/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/__vite-vanilla-ts-test-chat-widget/tsconfig.json b/__vite-vanilla-ts-test-chat-widget/tsconfig.json new file mode 100644 index 00000000..a4883f28 --- /dev/null +++ b/__vite-vanilla-ts-test-chat-widget/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["src"] +} diff --git a/chat-widget/package-lock.json b/chat-widget/package-lock.json index 69c74a40..79459ba8 100644 --- a/chat-widget/package-lock.json +++ b/chat-widget/package-lock.json @@ -51,8 +51,7 @@ "typescript-eslint": "^8.22.0", "vite": "^6.0.11", "vite-plugin-css-injected-by-js": "^3.5.2", - "vite-plugin-dts": "^4.5.0", - "vite-plugin-node-polyfills": "^0.23.0" + "vite-plugin-dts": "^4.5.0" } }, "node_modules/@alloc/quick-lru": { @@ -1979,29 +1978,6 @@ "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==", "license": "MIT" }, - "node_modules/@rollup/plugin-inject": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz", - "integrity": "sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.3" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, "node_modules/@rollup/pluginutils": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", @@ -3758,39 +3734,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", - "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", - "dev": true, - "license": "MIT" - }, - "node_modules/assert": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", - "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "is-nan": "^1.3.2", - "object-is": "^1.1.5", - "object.assign": "^4.1.4", - "util": "^0.12.5" - } - }, "node_modules/async-function": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", @@ -3874,27 +3817,6 @@ "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==", "license": "MIT" }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -3908,13 +3830,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true, - "license": "MIT" - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -3939,150 +3854,6 @@ "node": ">=8" } }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "dev": true, - "license": "MIT" - }, - "node_modules/browser-resolve": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", - "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve": "^1.17.0" - } - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", - "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "bn.js": "^5.2.1", - "randombytes": "^2.1.0", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", - "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", - "dev": true, - "license": "ISC", - "dependencies": { - "bn.js": "^5.2.1", - "browserify-rsa": "^4.1.0", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.5", - "hash-base": "~3.0", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.7", - "readable-stream": "^2.3.8", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/browserify-sign/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pako": "~1.0.5" - } - }, "node_modules/browserslist": { "version": "4.24.4", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", @@ -4116,45 +3887,6 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", - "dev": true, - "license": "MIT" - }, "node_modules/call-bind": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", @@ -4301,20 +4033,6 @@ "node": ">= 6" } }, - "node_modules/cipher-base": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.6.tgz", - "integrity": "sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/class-variance-authority": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", @@ -4425,19 +4143,6 @@ "node-fetch": "2.7.0" } }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", - "dev": true, - "license": "MIT" - }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -4454,67 +4159,6 @@ "node": ">=18" } }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", - "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", - "dev": true, - "license": "MIT" - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true, - "license": "MIT" - }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -4530,33 +4174,6 @@ "node": ">= 8" } }, - "node_modules/crypto-browserify": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", - "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "browserify-cipher": "^1.0.1", - "browserify-sign": "^4.2.3", - "create-ecdh": "^4.0.4", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "diffie-hellman": "^5.0.3", - "hash-base": "~3.0.4", - "inherits": "^2.0.4", - "pbkdf2": "^3.1.2", - "public-encrypt": "^4.0.3", - "randombytes": "^2.1.0", - "randomfill": "^1.0.4" - }, - "engines": { - "node": ">= 0.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -4727,17 +4344,6 @@ "node": ">=0.4.0" } }, - "node_modules/des.js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", - "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, "node_modules/detect-node-es": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", @@ -4751,25 +4357,6 @@ "dev": true, "license": "Apache-2.0" }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", - "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", - "dev": true, - "license": "MIT" - }, "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", @@ -4777,19 +4364,6 @@ "dev": true, "license": "MIT" }, - "node_modules/domain-browser": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.22.0.tgz", - "integrity": "sha512-IGBwjF7tNk3cwypFNH/7bfzBcgSCbaMOD3GsaY1AU/JRrnHnYgEM0+9kQt52iZxjNsjBtJYtao146V+f8jFZNw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -4819,29 +4393,6 @@ "dev": true, "license": "ISC" }, - "node_modules/elliptic": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", - "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", - "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", - "dev": true, - "license": "MIT" - }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", @@ -5268,17 +4819,6 @@ "node": ">=0.8.x" } }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -5862,31 +5402,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hash-base": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz", - "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -5910,18 +5425,6 @@ "he": "bin/he" } }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, "node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -5929,34 +5432,6 @@ "dev": true, "license": "ISC" }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", - "dev": true, - "license": "MIT" - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -6004,13 +5479,6 @@ "node": ">=0.8.19" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/internal-slot": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", @@ -6026,23 +5494,6 @@ "node": ">= 0.4" } }, - "node_modules/is-arguments": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", - "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-array-buffer": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", @@ -6279,23 +5730,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-nan": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", - "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -6468,13 +5902,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -6482,16 +5909,6 @@ "dev": true, "license": "ISC" }, - "node_modules/isomorphic-timers-promises": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-timers-promises/-/isomorphic-timers-promises-1.0.1.tgz", - "integrity": "sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/jackspeak": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", @@ -6804,18 +6221,6 @@ "node": ">= 0.4" } }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, "node_modules/memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", @@ -6849,27 +6254,6 @@ "node": ">=8.6" } }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", - "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", - "dev": true, - "license": "MIT" - }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -6891,20 +6275,6 @@ "node": ">= 0.6" } }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true, - "license": "ISC" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "dev": true, - "license": "MIT" - }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -7046,52 +6416,6 @@ "dev": true, "license": "MIT" }, - "node_modules/node-stdlib-browser": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/node-stdlib-browser/-/node-stdlib-browser-1.3.0.tgz", - "integrity": "sha512-g/koYzOr9Fb1Jc+tHUHlFd5gODjGn48tHexUK8q6iqOVriEgSnd3/1T7myBYc+0KBVze/7F7n65ec9rW6OD7xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "assert": "^2.0.0", - "browser-resolve": "^2.0.0", - "browserify-zlib": "^0.2.0", - "buffer": "^5.7.1", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "create-require": "^1.1.1", - "crypto-browserify": "^3.11.0", - "domain-browser": "4.22.0", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "isomorphic-timers-promises": "^1.0.1", - "os-browserify": "^0.3.0", - "path-browserify": "^1.0.1", - "pkg-dir": "^5.0.0", - "process": "^0.11.10", - "punycode": "^1.4.1", - "querystring-es3": "^0.2.1", - "readable-stream": "^3.6.0", - "stream-browserify": "^3.0.0", - "stream-http": "^3.2.0", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.1", - "url": "^0.11.4", - "util": "^0.12.4", - "vm-browserify": "^1.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-stdlib-browser/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true, - "license": "MIT" - }, "node_modules/normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -7344,23 +6668,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object-is": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", - "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -7410,13 +6717,6 @@ "node": ">= 0.8.0" } }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", - "dev": true, - "license": "MIT" - }, "node_modules/own-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", @@ -7474,13 +6774,6 @@ "dev": true, "license": "BlueOak-1.0.0" }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true, - "license": "(MIT AND Zlib)" - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -7494,24 +6787,6 @@ "node": ">=6" } }, - "node_modules/parse-asn1": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", - "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", - "dev": true, - "license": "ISC", - "dependencies": { - "asn1.js": "^4.10.1", - "browserify-aes": "^1.2.0", - "evp_bytestokey": "^1.0.3", - "hash-base": "~3.0", - "pbkdf2": "^3.1.2", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -7614,23 +6889,6 @@ "dev": true, "license": "MIT" }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -7684,19 +6942,6 @@ "node": ">= 6" } }, - "node_modules/pkg-dir": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", - "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^5.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/pkg-types": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", @@ -7879,23 +7124,6 @@ "node": ">= 0.8.0" } }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true, - "license": "MIT" - }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -7907,28 +7135,6 @@ "react-is": "^16.13.1" } }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", - "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", - "dev": true, - "license": "MIT" - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -7939,31 +7145,6 @@ "node": ">=6" } }, - "node_modules/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -7985,27 +7166,6 @@ ], "license": "MIT" }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, "node_modules/react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", @@ -8244,21 +7404,6 @@ "node": ">=4" } }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -8368,17 +7513,6 @@ "node": ">=0.10.0" } }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, "node_modules/rollup": { "version": "4.32.1", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.32.1.tgz", @@ -8469,27 +7603,6 @@ "dev": true, "license": "MIT" }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "node_modules/safe-push-apply": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", @@ -8630,27 +7743,6 @@ "node": ">= 0.4" } }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true, - "license": "MIT" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "license": "(MIT AND BSD-3-Clause)", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -8839,40 +7931,6 @@ "dev": true, "license": "BSD-3-Clause" }, - "node_modules/stream-browserify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" - } - }, - "node_modules/stream-http": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", - "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", - "dev": true, - "license": "MIT", - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, "node_modules/string-argv": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", @@ -9219,19 +8277,6 @@ "node": ">=0.8" } }, - "node_modules/timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -9277,13 +8322,6 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, - "node_modules/tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "dev": true, - "license": "MIT" - }, "node_modules/turbo-stream": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", @@ -9501,27 +8539,6 @@ "punycode": "^2.1.0" } }, - "node_modules/url": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", - "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^1.4.1", - "qs": "^6.12.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true, - "license": "MIT" - }, "node_modules/use-callback-ref": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", @@ -9565,20 +8582,6 @@ } } }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -9706,30 +8709,6 @@ } } }, - "node_modules/vite-plugin-node-polyfills": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/vite-plugin-node-polyfills/-/vite-plugin-node-polyfills-0.23.0.tgz", - "integrity": "sha512-4n+Ys+2bKHQohPBKigFlndwWQ5fFKwaGY6muNDMTb0fSQLyBzS+jjUNRZG9sKF0S/Go4ApG6LFnUGopjkILg3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/plugin-inject": "^5.0.5", - "node-stdlib-browser": "^1.2.0" - }, - "funding": { - "url": "https://github.com/sponsors/davidmyersdev" - }, - "peerDependencies": { - "vite": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" - } - }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true, - "license": "MIT" - }, "node_modules/vscode-uri": { "version": "3.0.8", "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", @@ -9999,16 +8978,6 @@ } } }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", diff --git a/chat-widget/package.json b/chat-widget/package.json index 753ba347..72ad8267 100644 --- a/chat-widget/package.json +++ b/chat-widget/package.json @@ -73,7 +73,6 @@ "typescript-eslint": "^8.22.0", "vite": "^6.0.11", "vite-plugin-css-injected-by-js": "^3.5.2", - "vite-plugin-dts": "^4.5.0", - "vite-plugin-node-polyfills": "^0.23.0" + "vite-plugin-dts": "^4.5.0" } } diff --git a/chat-widget/vite.config.ts b/chat-widget/vite.config.ts index 7799361e..7217f1b1 100644 --- a/chat-widget/vite.config.ts +++ b/chat-widget/vite.config.ts @@ -4,28 +4,24 @@ import autoprefixer from 'autoprefixer'; import react from '@vitejs/plugin-react' import dts from "vite-plugin-dts"; import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js' -import { nodePolyfills } from "vite-plugin-node-polyfills"; const globals = { "react": "React", "react-dom": "ReactDOM", "connectycube": "ConnectyCube", - 'vite-plugin-node-polyfills/shims/process': "process", - 'vite-plugin-node-polyfills/shims/buffer': "Buffer" } export default defineConfig(({ mode }) => { const dev = mode === 'development'; - const plugins = dev ? [ - react(), - nodePolyfills() - ] : [ - react(), - cssInjectedByJsPlugin(), - dts({ - tsconfigPath: './tsconfig.app.json' - }) - ]; + const plugins = [react()]; + + if (!dev) { + plugins.push([ + cssInjectedByJsPlugin(), + dts({ tsconfigPath: './tsconfig.app.json' }) + ]); + } + return { plugins, @@ -52,6 +48,9 @@ export default defineConfig(({ mode }) => { autoprefixer({}) ], } + }, + define: { + 'process.env': process.env } }; }); From 079c223d72f8ee75a5e7c67a436c7dec37071721 Mon Sep 17 00:00:00 2001 From: Vlad Date: Thu, 30 Jan 2025 21:06:56 +0200 Subject: [PATCH 12/12] autologin for widget --- __vite-vanilla-ts-test-chat-widget/index.html | 9 +- chat-widget/package.json | 17 +-- chat-widget/src/App.css | 36 ----- chat-widget/src/App.tsx | 50 ++++--- chat-widget/src/components/Home/Main/Main.tsx | 3 +- .../src/components/Home/Main/chat-header.tsx | 2 +- .../src/components/Home/Main/group-member.tsx | 2 +- .../src/components/Home/Sidebar/Sidebar.tsx | 12 +- .../src/components/Home/Sidebar/chat-item.tsx | 2 +- .../create-group-chat/participant.tsx | 2 +- .../Home/Sidebar/tabs/chats-tab.tsx | 6 +- chat-widget/src/components/Login.tsx | 90 ++---------- chat-widget/src/components/sign-up.tsx | 128 ------------------ chat-widget/src/connectycube.ts | 94 +++++++++---- chat-widget/src/index.css | 4 +- chat-widget/src/styles.css | 61 +++++---- chat-widget/vite.config.ts | 40 +++--- 17 files changed, 189 insertions(+), 369 deletions(-) delete mode 100644 chat-widget/src/App.css delete mode 100644 chat-widget/src/components/sign-up.tsx diff --git a/__vite-vanilla-ts-test-chat-widget/index.html b/__vite-vanilla-ts-test-chat-widget/index.html index 6c19fa44..1eb2e2ff 100644 --- a/__vite-vanilla-ts-test-chat-widget/index.html +++ b/__vite-vanilla-ts-test-chat-widget/index.html @@ -9,21 +9,22 @@
-
- + diff --git a/chat-widget/package.json b/chat-widget/package.json index 72ad8267..70a69dd6 100644 --- a/chat-widget/package.json +++ b/chat-widget/package.json @@ -20,14 +20,15 @@ "access": "public" }, "scripts": { - "dev": "vite", - "build": "tsc -b && vite build", - "start": "npm-run-all --parallel dev css:watch", - "css:watch": "npx tailwindcss -i ./src/index.css -o ./src/styles.css --watch", - "css:minify": "npx tailwindcss -i ./src/index.css -o ./src/styles.css --minify", - "bundle": "npm run css:minify && npm run build", - "lint": "eslint .", - "preview": "vite preview" + "vite:dev": "vite", + "vite:build": "tsc -b && vite build", + "vite:preview": "vite preview", + "tailwindcss:watch": "npx tailwindcss -i ./src/index.css -o ./src/styles.css --watch", + "tailwindcss:minify": "npx tailwindcss -i ./src/index.css -o ./src/styles.css --minify", + "dev": "npm-run-all --parallel vite:dev tailwindcss:watch", + "build": "npm run tailwindcss:minify & npm run vite:build", + "preview": "npm run tailwindcss:minify & npm run vite:preview", + "lint": "eslint ." }, "dependencies": { "@connectycube/use-chat": "^0.10.0", diff --git a/chat-widget/src/App.css b/chat-widget/src/App.css deleted file mode 100644 index 45ef840b..00000000 --- a/chat-widget/src/App.css +++ /dev/null @@ -1,36 +0,0 @@ -.chat-widget-button { - position: fixed; - bottom: 15px; - right: 15px; - background-color: #007bff; - color: white; - border-radius: 10px; - padding: 10px 15px; - font-size: 16px; -} - -.chat-widget-portal { - position: fixed; - bottom: 60px; - right: 15px; - width: 720px; - height: 640px; - border: 1px solid #ccc; - border-radius: 8px; - overflow: hidden; - box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); -} - -.wrapper { - text-align: center; - position: absolute; - width: 100%; - background-color: #282c34; - height: 100%; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - overflow: hidden; - color: black; -} \ No newline at end of file diff --git a/chat-widget/src/App.tsx b/chat-widget/src/App.tsx index dade078e..fde6f108 100644 --- a/chat-widget/src/App.tsx +++ b/chat-widget/src/App.tsx @@ -1,22 +1,19 @@ import { useLayoutEffect, useState, StrictMode } from "react"; -import ReactDOM from 'react-dom'; +import { MemoryRouter, Navigate, Route, Routes } from "react-router"; import { MessageCircleMore } from "lucide-react" import ConnectyCube from "connectycube"; import { ChatProvider } from "@connectycube/use-chat"; -import { BrowserRouter } from "react-router-dom"; -import { Navigate, Route, Routes } from "react-router"; import { Button } from "@/components/shadcn-ui/button"; import Login from "@/components/login"; -import SignUp from "@/components/sign-up"; import Home from "@/components/home/home"; -import { tryRestoreSession, isSessionExists } from "./connectycube"; import { Config } from "@connectycube/types"; - -import "./App.css"; +import { tryRestoreSession, isSessionExists } from "./connectycube"; type AppProps = { appId: Config.Credentials["appId"]; authKey: Config.Credentials["authKey"]; + userFullName?: string; + userId?: string; config?: Config.Options; buttonStyle?: React.CSSProperties; portalStyle?: React.CSSProperties; @@ -31,6 +28,8 @@ function ProtectedRoute({ element }: { element: JSX.Element }) { const App: React.FC = ({ appId, authKey, + userFullName, + userId, config, buttonStyle, portalStyle, @@ -60,28 +59,27 @@ const App: React.FC = ({ - {isOpen && ReactDOM.createPortal( -
-
- - - - } /> - } /> - } /> - } />} /> - } />} /> - - - -
-
, - document.body - )} + {isOpen && +
+ + + + } /> + } /> + } />} /> + } />} /> + + + +
+ }
); } diff --git a/chat-widget/src/components/Home/Main/Main.tsx b/chat-widget/src/components/Home/Main/Main.tsx index 9e82a7d3..8ab22370 100644 --- a/chat-widget/src/components/Home/Main/Main.tsx +++ b/chat-widget/src/components/Home/Main/Main.tsx @@ -35,6 +35,7 @@ const Main = () => { for (let i = 0; i < messages[selectedDialog._id].length; i++) { return messages[selectedDialog._id].map((msg, index) => { const sender = users[msg.sender_id]; + if (!sender) return null; return ( { {/* Messages Container */}
{selectedDialog ? ( diff --git a/chat-widget/src/components/Home/Main/chat-header.tsx b/chat-widget/src/components/Home/Main/chat-header.tsx index 1ca9b33a..698bb5e8 100644 --- a/chat-widget/src/components/Home/Main/chat-header.tsx +++ b/chat-widget/src/components/Home/Main/chat-header.tsx @@ -77,7 +77,7 @@ const ChatHeader: React.FC = ({ toggleProfile }) => {
diff --git a/chat-widget/src/components/Home/Main/group-member.tsx b/chat-widget/src/components/Home/Main/group-member.tsx index 9ccb5e15..cd3efb47 100644 --- a/chat-widget/src/components/Home/Main/group-member.tsx +++ b/chat-widget/src/components/Home/Main/group-member.tsx @@ -30,7 +30,7 @@ const GroupMember: React.FC = ({ userId, name, avatar }) => { return (
- +

{name}

diff --git a/chat-widget/src/components/Home/Sidebar/Sidebar.tsx b/chat-widget/src/components/Home/Sidebar/Sidebar.tsx index 2d1cce52..fa3fea0e 100644 --- a/chat-widget/src/components/Home/Sidebar/Sidebar.tsx +++ b/chat-widget/src/components/Home/Sidebar/Sidebar.tsx @@ -13,7 +13,7 @@ import { TabsList, TabsTrigger, } from "@/components/shadcn-ui/tabs"; -import { currentUser, destroyUserSession } from "../../../connectycube"; +import { getCurrentUser, destroyUserSession } from "../../../connectycube"; import ChatsTab from "./tabs/chats-tab"; import UsersTab from "./tabs/users-tab"; import Avatar from "../../shared/avatar"; @@ -47,14 +47,14 @@ const SideBar: React.FC = ({ showUsersTab }) => { )} > {/* Header */} -
+
-

{currentUser()?.login}

+

{getCurrentUser()?.login}

diff --git a/chat-widget/src/components/Home/Sidebar/chat-item.tsx b/chat-widget/src/components/Home/Sidebar/chat-item.tsx index 2525b9ec..a7f52bed 100644 --- a/chat-widget/src/components/Home/Sidebar/chat-item.tsx +++ b/chat-widget/src/components/Home/Sidebar/chat-item.tsx @@ -51,7 +51,7 @@ const ChatItem: React.FC = ({ dialog }) => {
diff --git a/chat-widget/src/components/Home/Sidebar/new-chat/create-group-chat/participant.tsx b/chat-widget/src/components/Home/Sidebar/new-chat/create-group-chat/participant.tsx index 2d9b3fd5..2e915cf8 100644 --- a/chat-widget/src/components/Home/Sidebar/new-chat/create-group-chat/participant.tsx +++ b/chat-widget/src/components/Home/Sidebar/new-chat/create-group-chat/participant.tsx @@ -9,7 +9,7 @@ export interface ParticipantProps { const Participant: React.FC = ({ avatar, name }) => { return (
- +

{name}

diff --git a/chat-widget/src/components/Home/Sidebar/tabs/chats-tab.tsx b/chat-widget/src/components/Home/Sidebar/tabs/chats-tab.tsx index b2a6f58e..b1dcd963 100644 --- a/chat-widget/src/components/Home/Sidebar/tabs/chats-tab.tsx +++ b/chat-widget/src/components/Home/Sidebar/tabs/chats-tab.tsx @@ -37,7 +37,7 @@ const ChatsTab: React.FC = () => { onChange={(e) => { setSearchTerm(e.target.value); }} - className="mx-5 border border-gray-300 p-2 rounded-full bg-transparent placeholder-gray-500" + className="mx-2 border border-gray-300 p-2 rounded-full bg-transparent placeholder-gray-500" placeholder="Search..." /> {isConnected ? ( @@ -53,8 +53,8 @@ const ChatsTab: React.FC = () => { onOpenChange={setNewChatDialogOpen} > - - + + diff --git a/chat-widget/src/components/Login.tsx b/chat-widget/src/components/Login.tsx index bfce0b11..bbcacd30 100644 --- a/chat-widget/src/components/Login.tsx +++ b/chat-widget/src/components/Login.tsx @@ -1,97 +1,37 @@ -import { NavLink } from "react-router-dom"; +import { useEffect } from "react"; import { useNavigate } from "react-router"; -import { useForm, SubmitHandler } from "react-hook-form"; -import { useChat } from "@connectycube/use-chat"; import Loader from "./shared/loader"; -import { createUserSession } from "../connectycube"; +import { createFingerprintSession } from "../connectycube"; import logo from "./../assets/logo.png"; -import { useState } from "react"; -type FormValues = { - login: string; - password: string; +type LoginProps = { + userFullName?: string; + userId?: string; }; -const Login = () => { - const { connect } = useChat(); +const Login: React.FC = ({userFullName, userId}) => { const navigate = useNavigate(); - const [isLoading, setIsLoading] = useState(false); - - const { - register, - handleSubmit, - formState: { errors }, - } = useForm(); - - const onSubmit: SubmitHandler = async (data) => { - setIsLoading(true); + useEffect(() => { + autoLogin(); + }, []); + const autoLogin = async () => { try { - const session = await createUserSession(data.login, data.password); - - const chatCredentials = { - userId: session.user_id, - password: session.token, - }; - await connect(chatCredentials); - + await createFingerprintSession(userFullName, userId); navigate("/home"); } catch (e) { console.error("Login error", e); alert(JSON.stringify(e)); - } finally { - setIsLoading(false); } - }; + } return ( -
-
+
+
Logo
-
- - - {errors.login && ( - {errors.login.message} - )} - {errors.password && ( - - {errors.password.message} - - )} - -
-
- {isLoading && } -

Don't have an account?

- - Sign up - -
+
); }; diff --git a/chat-widget/src/components/sign-up.tsx b/chat-widget/src/components/sign-up.tsx deleted file mode 100644 index 891b2eda..00000000 --- a/chat-widget/src/components/sign-up.tsx +++ /dev/null @@ -1,128 +0,0 @@ -import { useNavigate } from "react-router"; -import { NavLink } from "react-router-dom"; -import { useForm, SubmitHandler } from "react-hook-form"; -import { useState } from "react"; -import { userSignup } from "../connectycube"; -import logo from "./../assets/logo.png"; -import Loader from "./shared/loader"; - -type FormValues = { - fullName: string; - login: string; - password: string; -}; - -const SignUp = () => { - const navigate = useNavigate(); - const [isLoading, setIsLoading] = useState(false); - - const { - register, - handleSubmit, - formState: { errors }, - } = useForm(); - - const onSubmit: SubmitHandler = async (data) => { - setIsLoading(true); - - try { - await userSignup(data.fullName, data.login, data.password); - navigate("/home"); - // eslint-disable-next-line @typescript-eslint/no-explicit-any - } catch (e: any) { - console.error("SignUp error", e); - alert(e.info.errors.base); - } finally { - setIsLoading(false); - } - }; - - return ( -
-
- Logo -
-
- - - - {errors.fullName && ( - - {errors.fullName.message} - - )} - {errors.login && ( - {errors.login.message} - )} - {errors.password && ( - - {errors.password.message} - - )} - -
-
- {isLoading && } -

Already have an account?

- - Sign in - -
-
- ); -}; - -export default SignUp; diff --git a/chat-widget/src/connectycube.ts b/chat-widget/src/connectycube.ts index c4b76925..ed3bf6ed 100644 --- a/chat-widget/src/connectycube.ts +++ b/chat-widget/src/connectycube.ts @@ -1,22 +1,22 @@ import ConnectyCube from "connectycube"; import FingerprintJS from '@fingerprintjs/fingerprintjs'; -import { Chat, Users } from "@connectycube/types"; +import { Chat, Users, Auth } from "@connectycube/types"; + +export const SESSION_KEY = "@connectycube:session"; export const isSessionExists = (): boolean => { - return !!localStorage.getItem("connectycubeToken"); + return !isSessionExpired(); }; + export const tryRestoreSession = (): boolean => { - const sessionToken = localStorage.getItem("connectycubeToken"); - // const userIdString = localStorage.getItem("connectycubeUserId"); - // let currentUserId; - if (sessionToken) { - ConnectyCube.setSession({ token: sessionToken }); - - // currentUserId = parseInt(userIdString!); - return true; + const canRestore = isSessionExists(); + + if (canRestore) { + const session = getSessionFromLocalStorage(); + ConnectyCube.setSession(session); } - return false; + return canRestore; }; export const generateFingerprint = async (): Promise => { @@ -27,15 +27,25 @@ export const generateFingerprint = async (): Promise => { export const createUserSession = async (login: string, password: string) => { const session = await ConnectyCube.createSession({ login, password }); - localStorage.setItem("connectycubeToken", session.token); - localStorage.setItem("connectycubeUserId", session.user_id + ""); - localStorage.setItem("connectycubeUser", JSON.stringify(session.user)); + setSessionToLocalStorage(session); return session; }; -export const createFingerprintSession = async () => { +export const createFingerprintSession = async (userFullName?: string, userId?: string): Promise => { const fp = await generateFingerprint(); - const session = await createUserSession(fp.slice(2, -2), fp.slice(1, -1)); + const lgn = userFullName ?? `User_${fp.slice(0, 6)}${fp.slice(-6)}`; + const pwd = userId ?? fp; + + let session: Auth.Session | null = null; + + try { + session = await createUserSession(lgn, pwd); + } catch (error: any) { + if (error.code === 404) { + session = await userSignup(lgn, pwd); + } + } + return session; } @@ -49,30 +59,58 @@ export const destroyUserSession = async () => { }; export const userSignup = async ( - fullName: string, login: string, password: string ) => { - await ConnectyCube.users.signup({ login, full_name: fullName, password }); + await ConnectyCube.users.signup({ login, full_name: login, password }); return createUserSession(login, password); }; export const chatCredentials = (): Chat.ConnectionParams | null => { - const sessionToken = localStorage.getItem("connectycubeToken"); - const userIdString = localStorage.getItem("connectycubeUserId"); + const token = getSessionToken(); + const userId = getSessionUserId(); - if (sessionToken) { - return { userId: parseInt(userIdString as string), password: sessionToken }; + if (userId && token) { + return { userId, password: token }; } return null; }; -export const currentUser = (): Users.User | null => { - const userString = localStorage.getItem("connectycubeUser"); - if (userString) { - return JSON.parse(userString); - } +export const setSessionToLocalStorage = (session: Auth.Session): void => { + localStorage.setItem(SESSION_KEY, JSON.stringify(session)); +}; - return null; +export const getSessionFromLocalStorage = (): Auth.Session | null => { + const jsonSession = localStorage.getItem(SESSION_KEY); + return jsonSession ? JSON.parse(jsonSession) as Auth.Session : null; }; + +export const getCurrentUser = (): Users.User | null | undefined => { + const session = getSessionFromLocalStorage(); + return session ? session.user : null; +}; + +export const getSessionToken = (): string | null => { + const session = getSessionFromLocalStorage(); + return session ? session.token : null; +}; + +export const getSessionUserId = (): number | null => { + const session = getSessionFromLocalStorage(); + return session ? session.user_id : null; +}; + +export const isSessionExpired = (): boolean => { + const session = getSessionFromLocalStorage(); + const updatedAt = session?.updated_at ?? new Date(0).toISOString(); + const updatedTime = new Date(updatedAt).getTime(); + const currentTime = Date.now(); + const elapsedTime = currentTime - updatedTime; + const lifetime = (120 * 60 * 1000) - 1000; // 120 minutes + + return elapsedTime > lifetime; +} + + + diff --git a/chat-widget/src/index.css b/chat-widget/src/index.css index 66a5693c..722183ee 100644 --- a/chat-widget/src/index.css +++ b/chat-widget/src/index.css @@ -2,7 +2,7 @@ @tailwind components; @tailwind utilities; -@layer base { +@layer components { :root { --background: 0 0% 100%; --foreground: 222.2 47.4% 11.2%; @@ -49,7 +49,7 @@ } } -@layer base { +@layer components { * { @apply border-border; } diff --git a/chat-widget/src/styles.css b/chat-widget/src/styles.css index 449a0a43..5203a3ff 100644 --- a/chat-widget/src/styles.css +++ b/chat-widget/src/styles.css @@ -621,16 +621,20 @@ body { bottom: 0px; } +.bottom-16 { + bottom: 4rem; +} + .bottom-2 { bottom: 0.5rem; } -.bottom-\[3px\] { - bottom: 3px; +.bottom-4 { + bottom: 1rem; } -.bottom-\[8\%\] { - bottom: 8%; +.bottom-\[3px\] { + bottom: 3px; } .left-0 { @@ -661,6 +665,10 @@ body { right: 0px; } +.right-2 { + right: 0.5rem; +} + .right-4 { right: 1rem; } @@ -669,10 +677,6 @@ body { right: 15px; } -.right-\[5\%\] { - right: 5%; -} - .top-0 { top: 0px; } @@ -714,16 +718,16 @@ body { margin-right: -0.25rem; } +.mx-2 { + margin-left: 0.5rem; + margin-right: 0.5rem; +} + .mx-4 { margin-left: 1rem; margin-right: 1rem; } -.mx-5 { - margin-left: 1.25rem; - margin-right: 1.25rem; -} - .mx-auto { margin-left: auto; margin-right: auto; @@ -790,6 +794,10 @@ body { margin-top: 1.5rem; } +.mb-4 { + margin-bottom: 1rem; +} + .block { display: block; } @@ -798,6 +806,10 @@ body { display: inline-block; } +.inline { + display: inline; +} + .flex { display: flex; } @@ -882,6 +894,10 @@ body { height: 60px; } +.h-\[640px\] { + height: 640px; +} + .h-\[68\%\] { height: 68%; } @@ -950,8 +966,8 @@ body { width: 50px; } -.w-\[60px\] { - width: 60px; +.w-\[720px\] { + width: 720px; } .w-\[90\%\] { @@ -1433,15 +1449,6 @@ body { padding-bottom: 0.75rem; } -.py-5 { - padding-top: 1.25rem; - padding-bottom: 1.25rem; -} - -.pb-1 { - padding-bottom: 0.25rem; -} - .pb-2 { padding-bottom: 0.5rem; } @@ -2126,12 +2133,6 @@ button:focus-visible { } } -@media (min-width: 1024px) { - .lg\:max-w-\[100\%\] { - max-width: 100%; - } -} - .\[\&\>svg\]\:size-4>svg { width: 1rem; height: 1rem; diff --git a/chat-widget/vite.config.ts b/chat-widget/vite.config.ts index 7217f1b1..e329d1f2 100644 --- a/chat-widget/vite.config.ts +++ b/chat-widget/vite.config.ts @@ -1,5 +1,5 @@ import { resolve } from "path"; -import { defineConfig } from 'vite' +import { defineConfig, UserConfig } from 'vite' import autoprefixer from 'autoprefixer'; import react from '@vitejs/plugin-react' import dts from "vite-plugin-dts"; @@ -12,19 +12,12 @@ const globals = { } export default defineConfig(({ mode }) => { - const dev = mode === 'development'; - const plugins = [react()]; + const bundle = mode === 'production'; - if (!dev) { - plugins.push([ - cssInjectedByJsPlugin(), - dts({ tsconfigPath: './tsconfig.app.json' }) - ]); - } - - - return { - plugins, + const userConfig: UserConfig = { + plugins: [ + react() + ], resolve: { alias: { "@": resolve(__dirname, "./src"), @@ -33,7 +26,7 @@ export default defineConfig(({ mode }) => { }, build: { lib: { - entry: resolve(__dirname, `./src/${dev ? 'main' : 'index'}.tsx`), + entry: resolve(__dirname, `./src/${bundle ? 'index' : 'main'}.tsx`), name: 'ConnectyCubeChatWidget', fileName: (format) => `index.${format}.js`, }, @@ -42,15 +35,26 @@ export default defineConfig(({ mode }) => { output: { globals } }, }, - css: { + }; + + + if (bundle) { + userConfig.plugins = [ + react(), + cssInjectedByJsPlugin(), + dts({ tsconfigPath: './tsconfig.app.json' }) + ]; + userConfig.css = { postcss: { plugins: [ autoprefixer({}) ], } - }, - define: { + } + userConfig.define = { 'process.env': process.env } - }; + } + + return userConfig; });