From 9c3bc5200a3f3d0d9f0356f265fbac51c0dcbe12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B6=85=E7=BA=A7=E8=80=81=E7=99=BD=E5=85=94?= Date: Tue, 12 Aug 2025 09:27:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cunkebao/.env.development | 4 + Cunkebao/.env.production | 3 + Cunkebao/.eslintrc.js | 64 + Cunkebao/.gitattributes | 27 + Cunkebao/.gitignore | 29 +- Cunkebao/.prettierrc | 13 + Cunkebao/.vite/deps/_metadata.json | 8 + Cunkebao/.vite/deps/package.json | 3 + Cunkebao/.vscode/extensions.json | 11 + Cunkebao/.vscode/settings.json | 45 + Cunkebao/README.md | 293 - Cunkebao/craco.config.js | 16 - Cunkebao/devlop.py | 95 + Cunkebao/favicon.ico | Bin 0 -> 3922 bytes Cunkebao/index.html | 19 + Cunkebao/next-env.d.ts | 6 - Cunkebao/package-lock.json | 19654 ++-------------- Cunkebao/package.json | 131 +- Cunkebao/postcss.config.js | 12 +- Cunkebao/public/favicon.ico | Bin 3870 -> 0 bytes Cunkebao/public/index.html | 43 - Cunkebao/public/logo.png | Bin 0 -> 499922 bytes Cunkebao/public/logo192.png | Bin 5347 -> 0 bytes Cunkebao/public/logo512.png | Bin 9664 -> 0 bytes Cunkebao/public/manifest.json | 29 +- Cunkebao/public/robots.txt | 3 - Cunkebao/public/websdk.js | 308 + Cunkebao/src/App.css | 38 - Cunkebao/src/App.test.tsx | 9 - Cunkebao/src/App.tsx | 191 +- Cunkebao/src/api/auth.ts | 82 - Cunkebao/src/api/autoLike.ts | 119 - Cunkebao/src/api/common.ts | 27 + Cunkebao/src/api/content.ts | 69 - Cunkebao/src/api/devices.ts | 200 - Cunkebao/src/api/groupPush.ts | 201 - Cunkebao/src/api/index.ts | 14 - Cunkebao/src/api/interceptors.ts | 152 - Cunkebao/src/api/momentsSync.ts | 111 - Cunkebao/src/api/request.ts | 131 +- Cunkebao/src/api/scenarios.ts | 327 - Cunkebao/src/api/trafficDistribution.ts | 227 - Cunkebao/src/api/upload.ts | 18 - Cunkebao/src/api/utils.ts | 195 - Cunkebao/src/api/wechat-accounts.ts | 207 - .../src/components/AccountSelection/api.ts | 10 + .../src/components/AccountSelection/data.ts | 34 + .../AccountSelection/index.module.scss | 231 + .../src/components/AccountSelection/index.tsx | 139 + .../AccountSelection/selectionPopup.tsx | 202 + Cunkebao/src/components/BackButton.tsx | 92 - Cunkebao/src/components/BottomNav.tsx | 66 - .../ContentLibrarySelectionDialog.tsx | 210 - .../src/components/ContentSelection/api.ts | 5 + .../src/components/ContentSelection/data.ts | 21 + .../ContentSelection/index.module.scss | 117 + .../src/components/ContentSelection/index.tsx | 302 + Cunkebao/src/components/DeviceSelection.tsx | 211 - .../src/components/DeviceSelection/api.ts | 10 + .../src/components/DeviceSelection/data.ts | 26 + .../DeviceSelection/index.module.scss | 182 + .../src/components/DeviceSelection/index.tsx | 139 + .../DeviceSelection/selectionPopup.tsx | 198 + .../src/components/DeviceSelectionDialog.tsx | 234 - Cunkebao/src/components/FriendSelection.tsx | 381 - .../src/components/FriendSelection/api.ts | 11 + .../src/components/FriendSelection/data.ts | 27 + .../FriendSelection/index.module.scss | 246 + .../src/components/FriendSelection/index.tsx | 140 + .../FriendSelection/selectionPopup.tsx | 213 + Cunkebao/src/components/GroupSelection.tsx | 343 - Cunkebao/src/components/GroupSelection/api.ts | 10 + .../src/components/GroupSelection/data.ts | 43 + .../GroupSelection/index.module.scss | 206 + .../src/components/GroupSelection/index.tsx | 126 + .../GroupSelection/selectionPopup.tsx | 220 + .../InfiniteList/InfiniteList.module.scss | 87 + .../components/InfiniteList/InfiniteList.tsx | 195 + Cunkebao/src/components/Layout.css | 10 - Cunkebao/src/components/Layout.tsx | 25 - Cunkebao/src/components/Layout/Layout.tsx | 52 + .../src/components/Layout/layout.module.scss | 28 + Cunkebao/src/components/LayoutWrapper.tsx | 43 - Cunkebao/src/components/LineChart.tsx | 53 + .../src/components/MeauMobile/MeauMoible.tsx | 57 + Cunkebao/src/components/NavCommon/index.tsx | 62 + Cunkebao/src/components/PageHeader.tsx | 83 - Cunkebao/src/components/PlaceholderPage.tsx | 56 + .../components/PopuLayout/footer.module.scss | 71 + Cunkebao/src/components/PopuLayout/footer.tsx | 67 + .../components/PopuLayout/header.module.scss | 51 + Cunkebao/src/components/PopuLayout/header.tsx | 86 + Cunkebao/src/components/ProtectedRoute.tsx | 71 - .../components/ScenarioAcquisitionCard.tsx | 206 - .../src/components/StepIndicator/index.tsx | 43 + Cunkebao/src/components/TestComponent.tsx | 23 - Cunkebao/src/components/ThrottledButton.tsx | 291 - .../src/components/TrafficPoolSelection.tsx | 297 - Cunkebao/src/components/UnifiedHeader.tsx | 296 - .../components/UpdateNotification/index.tsx | 180 + .../Upload/AvatarUpload/index.module.scss | 484 + .../components/Upload/AvatarUpload/index.tsx | 188 + .../Upload/ChatFileUpload/example.tsx | 254 + .../Upload/ChatFileUpload/index.module.scss | 48 + .../Upload/ChatFileUpload/index.tsx | 189 + .../Upload/FileUpload/index.module.scss | 265 + .../components/Upload/FileUpload/index.tsx | 459 + .../Upload/ImageUpload/ImageUpload.tsx | 141 + .../Upload/ImageUpload/index.module.scss | 484 + .../Upload/MainImgUpload/index.module.scss | 291 + .../components/Upload/MainImgUpload/index.tsx | 313 + Cunkebao/src/components/Upload/README.md | 451 + .../Upload/VideoUpload/index.module.scss | 243 + .../components/Upload/VideoUpload/index.tsx | 381 + Cunkebao/src/components/UploadImage.tsx | 54 - Cunkebao/src/components/UploadVideo.tsx | 94 - Cunkebao/src/components/icons/AppleIcon.tsx | 11 - Cunkebao/src/components/icons/EyeIcon.tsx | 22 - Cunkebao/src/components/icons/WeChatIcon.tsx | 12 - Cunkebao/src/components/ui/alert.tsx | 62 - Cunkebao/src/components/ui/avatar.tsx | 77 - Cunkebao/src/components/ui/badge.tsx | 45 - Cunkebao/src/components/ui/button.tsx | 60 - Cunkebao/src/components/ui/card.tsx | 66 - Cunkebao/src/components/ui/checkbox.tsx | 39 - Cunkebao/src/components/ui/dialog.tsx | 122 - Cunkebao/src/components/ui/dropdown-menu.tsx | 109 - Cunkebao/src/components/ui/input.tsx | 64 - Cunkebao/src/components/ui/label.tsx | 18 - Cunkebao/src/components/ui/progress.tsx | 17 - Cunkebao/src/components/ui/radio-group.tsx | 44 - Cunkebao/src/components/ui/scroll-area.tsx | 48 - Cunkebao/src/components/ui/select.tsx | 184 - Cunkebao/src/components/ui/separator.tsx | 28 - Cunkebao/src/components/ui/skeleton.tsx | 15 - Cunkebao/src/components/ui/switch.tsx | 34 - Cunkebao/src/components/ui/table.tsx | 69 - Cunkebao/src/components/ui/tabs.tsx | 52 - Cunkebao/src/components/ui/textarea.tsx | 33 - Cunkebao/src/components/ui/toast.tsx | 223 - Cunkebao/src/components/ui/tooltip.tsx | 76 - Cunkebao/src/components/ui/use-toast.ts | 188 - Cunkebao/src/contexts/AuthContext.tsx | 244 - .../src/contexts/WechatAccountContext.tsx | 54 - Cunkebao/src/hooks/use-debounce.ts | 17 - Cunkebao/src/hooks/useAuthGuard.ts | 80 - Cunkebao/src/hooks/useBackNavigation.ts | 182 - Cunkebao/src/hooks/useThrottledRequest.ts | 265 - Cunkebao/src/index.css | 37 - Cunkebao/src/index.tsx | 46 - Cunkebao/src/logo.svg | 1 - Cunkebao/src/main.tsx | 8 + Cunkebao/src/pages/Home.tsx | 530 - .../pages/contact-import/ContactImport.tsx | 5 - Cunkebao/src/pages/content/Content.tsx | 382 - Cunkebao/src/pages/content/NewContent.tsx | 482 - Cunkebao/src/pages/content/materials/List.tsx | 206 - Cunkebao/src/pages/content/materials/New.tsx | 271 - Cunkebao/src/pages/devices/DeviceDetail.tsx | 869 - Cunkebao/src/pages/devices/Devices.tsx | 719 - Cunkebao/src/pages/guide/api.ts | 13 + Cunkebao/src/pages/guide/index.module.scss | 341 + Cunkebao/src/pages/guide/index.tsx | 349 + Cunkebao/src/pages/iframe/index.module.scss | 323 + Cunkebao/src/pages/iframe/index.tsx | 242 + Cunkebao/src/pages/iframe/init.tsx | 172 + Cunkebao/src/pages/login/Login.tsx | 650 +- Cunkebao/src/pages/login/api.ts | 54 + Cunkebao/src/pages/login/login.module.scss | 436 + Cunkebao/src/pages/mobile/content/form/api.ts | 26 + .../src/pages/mobile/content/form/data.ts | 61 + .../mobile/content/form/index.module.scss | 140 + .../src/pages/mobile/content/form/index.tsx | 330 + Cunkebao/src/pages/mobile/content/list/api.ts | 49 + .../src/pages/mobile/content/list/data.ts | 66 + .../mobile/content/list/index.module.scss | 217 + .../src/pages/mobile/content/list/index.tsx | 317 + .../mobile/content/materials/form/api.ts | 20 + .../mobile/content/materials/form/data.ts | 93 + .../content/materials/form/index.module.scss | 160 + .../mobile/content/materials/form/index.tsx | 403 + .../mobile/content/materials/list/api.ts | 37 + .../mobile/content/materials/list/data.ts | 106 + .../content/materials/list/index.module.scss | 615 + .../mobile/content/materials/list/index.tsx | 413 + Cunkebao/src/pages/mobile/home/api.ts | 31 + .../src/pages/mobile/home/index.module.scss | 356 + Cunkebao/src/pages/mobile/home/index.tsx | 262 + .../src/pages/mobile/mine/content/form/api.ts | 26 + .../pages/mobile/mine/content/form/data.ts | 61 + .../mine/content/form/index.module.scss | 140 + .../pages/mobile/mine/content/form/index.tsx | 330 + .../src/pages/mobile/mine/content/list/api.ts | 49 + .../pages/mobile/mine/content/list/data.ts | 66 + .../mine/content/list/index.module.scss | 217 + .../pages/mobile/mine/content/list/index.tsx | 314 + .../mobile/mine/content/materials/form/api.ts | 20 + .../mine/content/materials/form/data.ts | 93 + .../content/materials/form/index.module.scss | 160 + .../mine/content/materials/form/index.tsx | 403 + .../mobile/mine/content/materials/list/api.ts | 37 + .../mine/content/materials/list/data.ts | 106 + .../content/materials/list/index.module.scss | 615 + .../mine/content/materials/list/index.tsx | 409 + .../mobile/mine/devices/DeviceDetail.tsx | 392 + Cunkebao/src/pages/mobile/mine/devices/api.ts | 44 + .../src/pages/mobile/mine/devices/index.tsx | 420 + Cunkebao/src/pages/mobile/mine/main/api.ts | 5 + .../pages/mobile/mine/main/index.module.scss | 210 + Cunkebao/src/pages/mobile/mine/main/index.tsx | 224 + .../mine/recharge/index/index.module.scss | 440 + .../mobile/mine/recharge/index/index.tsx | 371 + .../pages/mobile/mine/recharge/order/api.ts | 197 + .../pages/mobile/mine/recharge/order/data.ts | 40 + .../mine/recharge/order/index.module.scss | 242 + .../mobile/mine/recharge/order/index.tsx | 344 + .../src/pages/mobile/mine/setting/About.tsx | 152 + .../src/pages/mobile/mine/setting/Privacy.tsx | 125 + .../src/pages/mobile/mine/setting/README.md | 188 + .../mobile/mine/setting/SecuritySetting.tsx | 224 + .../pages/mobile/mine/setting/UserSetting.tsx | 148 + Cunkebao/src/pages/mobile/mine/setting/api.ts | 5 + .../mobile/mine/setting/index.module.scss | 852 + .../src/pages/mobile/mine/setting/index.tsx | 306 + .../mobile/mine/traffic-pool/detail/api.ts | 25 + .../mobile/mine/traffic-pool/detail/data.ts | 108 + .../traffic-pool/detail/index.module.scss | 432 + .../mobile/mine/traffic-pool/detail/index.tsx | 709 + .../mine/traffic-pool/list/BatchAddModal.tsx | 47 + .../traffic-pool/list/DataAnalysisPanel.tsx | 84 + .../mine/traffic-pool/list/FilterModal.tsx | 118 + .../mobile/mine/traffic-pool/list/api.ts | 19 + .../mobile/mine/traffic-pool/list/data.ts | 45 + .../mine/traffic-pool/list/dataAnyx.tsx | 153 + .../mine/traffic-pool/list/index.module.scss | 65 + .../mobile/mine/traffic-pool/list/index.tsx | 259 + .../mobile/mine/wechat-accounts/detail/api.ts | 29 + .../mine/wechat-accounts/detail/data.ts | 54 + .../wechat-accounts/detail/detail.module.scss | 740 + .../mine/wechat-accounts/detail/index.tsx | 557 + .../mobile/mine/wechat-accounts/list/api.ts | 31 + .../wechat-accounts/list/index.module.scss | 171 + .../mine/wechat-accounts/list/index.tsx | 250 + .../src/pages/mobile/scenarios/list/api.ts | 26 + .../mobile/scenarios/list/index.module.scss | 329 + .../src/pages/mobile/scenarios/list/index.tsx | 159 + .../pages/mobile/scenarios/plan/list/api.ts | 32 + .../pages/mobile/scenarios/plan/list/data.ts | 59 + .../scenarios/plan/list/index.module.scss | 423 + .../mobile/scenarios/plan/list/index.tsx | 593 + .../scenarios/plan/list/planApi.module.scss | 601 + .../mobile/scenarios/plan/list/planApi.tsx | 437 + .../mobile/scenarios/plan/new/index.api.ts | 20 + .../pages/mobile/scenarios/plan/new/index.tsx | 234 + .../plan/new/steps/BasicSettings.tsx | 541 + .../plan/new/steps/FriendRequestSettings.tsx | 230 + .../plan/new/steps/MessageSettings.tsx | 565 + .../scenarios/plan/new/steps/base.data.ts | 38 + .../scenarios/plan/new/steps/base.module.scss | 163 + .../plan/new/steps/friend.module.scss | 48 + .../plan/new/steps/messages.module.scss | 110 + .../scenarios/plan/new/steps/step.api.ts | 384 + Cunkebao/src/pages/mobile/test/README.md | 111 + Cunkebao/src/pages/mobile/test/index.tsx | 72 + Cunkebao/src/pages/mobile/test/select.tsx | 164 + .../src/pages/mobile/test/upload.module.scss | 354 + Cunkebao/src/pages/mobile/test/upload.tsx | 423 + .../workspace/ai-analyzer/index.module.scss | 94 + .../mobile/workspace/ai-analyzer/index.tsx | 141 + .../ai-assistant/AIAssistant.module.scss | 145 + .../workspace/ai-assistant/AIAssistant.tsx | 264 + .../mobile/workspace/auto-group/detail/api.ts | 6 + .../auto-group/detail/index.module.scss | 149 + .../workspace/auto-group/detail/index.tsx | 384 + .../mobile/workspace/auto-group/form/api.ts | 11 + .../auto-group/form/index.module.scss | 34 + .../workspace/auto-group/form/index.tsx | 251 + .../mobile/workspace/auto-group/list/api.ts | 8 + .../auto-group/list/index.module.scss | 173 + .../workspace/auto-group/list/index.tsx | 299 + .../mobile/workspace/auto-like/list/api.ts | 63 + .../mobile/workspace/auto-like/list/data.ts} | 9 +- .../auto-like/list/index.module.scss | 278 + .../mobile/workspace/auto-like/list/index.tsx | 381 + .../mobile/workspace/auto-like/new/api.ts | 21 + .../mobile/workspace/auto-like/new/data.ts | 125 + .../mobile/workspace/auto-like/new/index.tsx | 422 + .../workspace/auto-like/new/new.module.scss | 232 + .../mobile/workspace/auto-like/record/api.ts | 63 + .../mobile/workspace/auto-like/record/data.ts | 119 + .../workspace/auto-like/record/index.tsx | 309 + .../auto-like/record/record.module.scss | 268 + .../workspace/group-push/detail/groupPush.ts | 73 + .../group-push/detail/index.module.scss | 98 + .../workspace/group-push/detail/index.tsx | 256 + .../form/components/BasicSettings.tsx | 215 + .../form/components/ContentSelector.tsx | 96 + .../form/components/GroupSelector.tsx | 95 + .../form/components/JingDongLink.tsx | 148 + .../workspace/group-push/form/index.api.ts | 14 + .../workspace/group-push/form/index.data.ts | 37 + .../workspace/group-push/form/index.tsx | 265 + .../workspace/group-push/list/index.api.ts | 49 + .../group-push/list/index.module.scss | 164 + .../workspace/group-push/list/index.tsx | 282 + .../src/pages/mobile/workspace/main/api.ts | 14 + .../mobile/workspace/main/index.module.scss | 115 + .../src/pages/mobile/workspace/main/index.tsx | 148 + .../mobile/workspace/moments-sync/Detail.tsx | 198 + .../workspace/moments-sync/MomentsSync.tsx | 285 + .../workspace/moments-sync/index.module.scss | 356 + .../mobile/workspace/moments-sync/new/api.ts | 13 + .../moments-sync/new/index.module.scss | 249 + .../workspace/moments-sync/new/index.tsx | 372 + .../traffic-distribution/detail/api.ts | 0 .../traffic-distribution/detail/data.ts | 0 .../detail/index.module.scss | 0 .../traffic-distribution/detail/index.tsx | 3 + .../traffic-distribution/form/api.ts | 21 + .../traffic-distribution/form/data.ts | 73 + .../form/index.module.scss | 207 + .../traffic-distribution/form/index.tsx | 428 + .../traffic-distribution/list/api.ts | 28 + .../traffic-distribution/list/data.ts | 133 + .../list/index.module.scss | 126 + .../traffic-distribution/list/index.tsx | 332 + Cunkebao/src/pages/orders/Orders.tsx | 5 - Cunkebao/src/pages/pc/ckbox/README.md | 236 + Cunkebao/src/pages/pc/ckbox/api.ts | 205 + .../ChatWindow/ChatWindow.module.scss | 512 + .../pc/ckbox/components/ChatWindow/index.tsx | 631 + .../ContactList/ContactList.module.scss | 78 + .../pc/ckbox/components/ContactList/index.tsx | 48 + .../CustomerDetailModal.module.scss | 101 + .../ckbox/components/CustomerDetailModal.tsx | 370 + .../components/CustomerFilter.module.scss | 36 + .../pc/ckbox/components/CustomerFilter.tsx | 297 + .../components/CustomerFormModal.module.scss | 62 + .../pc/ckbox/components/CustomerFormModal.tsx | 327 + .../components/CustomerTagModal.module.scss | 106 + .../pc/ckbox/components/CustomerTagModal.tsx | 325 + .../MessageList/MessageList.module.scss | 116 + .../pc/ckbox/components/MessageList/index.tsx | 84 + Cunkebao/src/pages/pc/ckbox/data.ts | 140 + Cunkebao/src/pages/pc/ckbox/index.module.scss | 174 + Cunkebao/src/pages/pc/ckbox/index.tsx | 330 + Cunkebao/src/pages/pc/ckbox/test.tsx | 224 + Cunkebao/src/pages/plans/PlanDetail.tsx | 239 - Cunkebao/src/pages/plans/Plans.tsx | 193 - Cunkebao/src/pages/profile/Profile.tsx | 258 - Cunkebao/src/pages/scenarios/ScenarioList.tsx | 710 - Cunkebao/src/pages/scenarios/Scenarios.tsx | 199 - Cunkebao/src/pages/scenarios/new/page.tsx | 244 - .../scenarios/new/steps/BasicSettings.tsx | 852 - .../new/steps/FriendRequestSettings.tsx | 269 - .../scenarios/new/steps/MessageSettings.tsx | 698 - .../pages/scenarios/new/steps/TagSettings.tsx | 205 - .../src/pages/traffic-pool/TrafficPool.tsx | 1053 - .../pages/traffic-pool/TrafficPoolDetail.tsx | 225 - .../wechat-accounts/WechatAccountDetail.tsx | 971 - .../pages/wechat-accounts/WechatAccounts.tsx | 383 - Cunkebao/src/pages/workspace/Workspace.tsx | 212 - .../workspace/ai-assistant/AIAssistant.tsx | 386 - .../pages/workspace/auto-group/AutoGroup.tsx | 454 - .../src/pages/workspace/auto-group/Detail.tsx | 414 - .../pages/workspace/auto-like/AutoLike.tsx | 305 - .../workspace/auto-like/AutoLikeDetail.tsx | 281 - .../pages/workspace/auto-like/NewAutoLike.tsx | 552 - .../pages/workspace/group-push/GroupPush.tsx | 533 - .../group-push/components/BasicSettings.tsx | 243 - .../group-push/components/ContentSelector.tsx | 237 - .../group-push/components/GroupSelector.tsx | 248 - .../group-push/components/StepIndicator.tsx | 19 - .../src/pages/workspace/group-push/new.tsx | 260 - .../pages/workspace/moments-sync/Detail.tsx | 296 - .../workspace/moments-sync/MomentsSync.tsx | 476 - .../pages/workspace/moments-sync/index.tsx | 154 - .../src/pages/workspace/moments-sync/new.tsx | 458 - .../workspace/traffic-distribution/Detail.tsx | 7 - .../traffic-distribution/NewDistribution.tsx | 858 - .../TrafficDistribution.tsx | 412 - Cunkebao/src/reportWebVitals.ts | 15 - Cunkebao/src/router/config.ts | 174 + Cunkebao/src/router/index.tsx | 49 + Cunkebao/src/router/module/auth.tsx | 17 + Cunkebao/src/router/module/ckbox.tsx | 17 + Cunkebao/src/router/module/content.tsx | 39 + Cunkebao/src/router/module/index.tsx | 18 + Cunkebao/src/router/module/mine.tsx | 96 + Cunkebao/src/router/module/scenarios.tsx | 33 + Cunkebao/src/router/module/test.tsx | 33 + .../src/router/module/wechat-accounts.tsx | 17 + Cunkebao/src/router/module/workspace.tsx | 158 + Cunkebao/src/router/permissionRoute.tsx | 46 + Cunkebao/src/setupTests.ts | 5 - Cunkebao/src/store/README.md | 572 + Cunkebao/src/store/createPersistStore.ts | 261 + Cunkebao/src/store/examples.ts | 325 + Cunkebao/src/store/index.ts | 77 + Cunkebao/src/store/module/app.ts | 135 + Cunkebao/src/store/module/settings.ts | 71 + Cunkebao/src/store/module/user.ts | 92 + Cunkebao/src/store/persistUtils.ts | 424 + Cunkebao/src/styles/global.scss | 318 + Cunkebao/src/types/common.ts | 43 - Cunkebao/src/types/device.ts | 167 +- Cunkebao/src/types/moments-sync.ts | 95 - Cunkebao/src/types/wechat.ts | 35 - Cunkebao/src/utils/apiUrl.ts | 73 + Cunkebao/src/utils/common.ts | 70 + Cunkebao/src/utils/env.ts | 46 + Cunkebao/src/utils/index.ts | 46 - Cunkebao/src/utils/postApp.ts | 72 + Cunkebao/src/utils/updateChecker.ts | 217 + Cunkebao/src/vite-env.d.ts | 11 + Cunkebao/tailwind.config.js | 56 - Cunkebao/tsconfig.json | 31 +- Cunkebao/vite-pwa.config.ts | 58 + Cunkebao/vite.config.ts | 50 + Cunkebao/yarn.lock | 11480 ++------- Cunkebao/技术栈.md | 26 + 421 files changed, 54063 insertions(+), 53044 deletions(-) create mode 100644 Cunkebao/.env.development create mode 100644 Cunkebao/.env.production create mode 100644 Cunkebao/.eslintrc.js create mode 100644 Cunkebao/.gitattributes create mode 100644 Cunkebao/.prettierrc create mode 100644 Cunkebao/.vite/deps/_metadata.json create mode 100644 Cunkebao/.vite/deps/package.json create mode 100644 Cunkebao/.vscode/extensions.json create mode 100644 Cunkebao/.vscode/settings.json delete mode 100644 Cunkebao/README.md delete mode 100644 Cunkebao/craco.config.js create mode 100644 Cunkebao/devlop.py create mode 100644 Cunkebao/favicon.ico create mode 100644 Cunkebao/index.html delete mode 100644 Cunkebao/next-env.d.ts delete mode 100644 Cunkebao/public/favicon.ico delete mode 100644 Cunkebao/public/index.html create mode 100644 Cunkebao/public/logo.png delete mode 100644 Cunkebao/public/logo192.png delete mode 100644 Cunkebao/public/logo512.png delete mode 100644 Cunkebao/public/robots.txt create mode 100644 Cunkebao/public/websdk.js delete mode 100644 Cunkebao/src/App.css delete mode 100644 Cunkebao/src/App.test.tsx delete mode 100644 Cunkebao/src/api/auth.ts delete mode 100644 Cunkebao/src/api/autoLike.ts create mode 100644 Cunkebao/src/api/common.ts delete mode 100644 Cunkebao/src/api/content.ts delete mode 100644 Cunkebao/src/api/devices.ts delete mode 100644 Cunkebao/src/api/groupPush.ts delete mode 100644 Cunkebao/src/api/index.ts delete mode 100644 Cunkebao/src/api/interceptors.ts delete mode 100644 Cunkebao/src/api/momentsSync.ts delete mode 100644 Cunkebao/src/api/scenarios.ts delete mode 100644 Cunkebao/src/api/trafficDistribution.ts delete mode 100644 Cunkebao/src/api/upload.ts delete mode 100644 Cunkebao/src/api/utils.ts delete mode 100644 Cunkebao/src/api/wechat-accounts.ts create mode 100644 Cunkebao/src/components/AccountSelection/api.ts create mode 100644 Cunkebao/src/components/AccountSelection/data.ts create mode 100644 Cunkebao/src/components/AccountSelection/index.module.scss create mode 100644 Cunkebao/src/components/AccountSelection/index.tsx create mode 100644 Cunkebao/src/components/AccountSelection/selectionPopup.tsx delete mode 100644 Cunkebao/src/components/BackButton.tsx delete mode 100644 Cunkebao/src/components/BottomNav.tsx delete mode 100644 Cunkebao/src/components/ContentLibrarySelectionDialog.tsx create mode 100644 Cunkebao/src/components/ContentSelection/api.ts create mode 100644 Cunkebao/src/components/ContentSelection/data.ts create mode 100644 Cunkebao/src/components/ContentSelection/index.module.scss create mode 100644 Cunkebao/src/components/ContentSelection/index.tsx delete mode 100644 Cunkebao/src/components/DeviceSelection.tsx create mode 100644 Cunkebao/src/components/DeviceSelection/api.ts create mode 100644 Cunkebao/src/components/DeviceSelection/data.ts create mode 100644 Cunkebao/src/components/DeviceSelection/index.module.scss create mode 100644 Cunkebao/src/components/DeviceSelection/index.tsx create mode 100644 Cunkebao/src/components/DeviceSelection/selectionPopup.tsx delete mode 100644 Cunkebao/src/components/DeviceSelectionDialog.tsx delete mode 100644 Cunkebao/src/components/FriendSelection.tsx create mode 100644 Cunkebao/src/components/FriendSelection/api.ts create mode 100644 Cunkebao/src/components/FriendSelection/data.ts create mode 100644 Cunkebao/src/components/FriendSelection/index.module.scss create mode 100644 Cunkebao/src/components/FriendSelection/index.tsx create mode 100644 Cunkebao/src/components/FriendSelection/selectionPopup.tsx delete mode 100644 Cunkebao/src/components/GroupSelection.tsx create mode 100644 Cunkebao/src/components/GroupSelection/api.ts create mode 100644 Cunkebao/src/components/GroupSelection/data.ts create mode 100644 Cunkebao/src/components/GroupSelection/index.module.scss create mode 100644 Cunkebao/src/components/GroupSelection/index.tsx create mode 100644 Cunkebao/src/components/GroupSelection/selectionPopup.tsx create mode 100644 Cunkebao/src/components/InfiniteList/InfiniteList.module.scss create mode 100644 Cunkebao/src/components/InfiniteList/InfiniteList.tsx delete mode 100644 Cunkebao/src/components/Layout.css delete mode 100644 Cunkebao/src/components/Layout.tsx create mode 100644 Cunkebao/src/components/Layout/Layout.tsx create mode 100644 Cunkebao/src/components/Layout/layout.module.scss delete mode 100644 Cunkebao/src/components/LayoutWrapper.tsx create mode 100644 Cunkebao/src/components/LineChart.tsx create mode 100644 Cunkebao/src/components/MeauMobile/MeauMoible.tsx create mode 100644 Cunkebao/src/components/NavCommon/index.tsx delete mode 100644 Cunkebao/src/components/PageHeader.tsx create mode 100644 Cunkebao/src/components/PlaceholderPage.tsx create mode 100644 Cunkebao/src/components/PopuLayout/footer.module.scss create mode 100644 Cunkebao/src/components/PopuLayout/footer.tsx create mode 100644 Cunkebao/src/components/PopuLayout/header.module.scss create mode 100644 Cunkebao/src/components/PopuLayout/header.tsx delete mode 100644 Cunkebao/src/components/ProtectedRoute.tsx delete mode 100644 Cunkebao/src/components/ScenarioAcquisitionCard.tsx create mode 100644 Cunkebao/src/components/StepIndicator/index.tsx delete mode 100644 Cunkebao/src/components/TestComponent.tsx delete mode 100644 Cunkebao/src/components/ThrottledButton.tsx delete mode 100644 Cunkebao/src/components/TrafficPoolSelection.tsx delete mode 100644 Cunkebao/src/components/UnifiedHeader.tsx create mode 100644 Cunkebao/src/components/UpdateNotification/index.tsx create mode 100644 Cunkebao/src/components/Upload/AvatarUpload/index.module.scss create mode 100644 Cunkebao/src/components/Upload/AvatarUpload/index.tsx create mode 100644 Cunkebao/src/components/Upload/ChatFileUpload/example.tsx create mode 100644 Cunkebao/src/components/Upload/ChatFileUpload/index.module.scss create mode 100644 Cunkebao/src/components/Upload/ChatFileUpload/index.tsx create mode 100644 Cunkebao/src/components/Upload/FileUpload/index.module.scss create mode 100644 Cunkebao/src/components/Upload/FileUpload/index.tsx create mode 100644 Cunkebao/src/components/Upload/ImageUpload/ImageUpload.tsx create mode 100644 Cunkebao/src/components/Upload/ImageUpload/index.module.scss create mode 100644 Cunkebao/src/components/Upload/MainImgUpload/index.module.scss create mode 100644 Cunkebao/src/components/Upload/MainImgUpload/index.tsx create mode 100644 Cunkebao/src/components/Upload/README.md create mode 100644 Cunkebao/src/components/Upload/VideoUpload/index.module.scss create mode 100644 Cunkebao/src/components/Upload/VideoUpload/index.tsx delete mode 100644 Cunkebao/src/components/UploadImage.tsx delete mode 100644 Cunkebao/src/components/UploadVideo.tsx delete mode 100644 Cunkebao/src/components/icons/AppleIcon.tsx delete mode 100644 Cunkebao/src/components/icons/EyeIcon.tsx delete mode 100644 Cunkebao/src/components/icons/WeChatIcon.tsx delete mode 100644 Cunkebao/src/components/ui/alert.tsx delete mode 100644 Cunkebao/src/components/ui/avatar.tsx delete mode 100644 Cunkebao/src/components/ui/badge.tsx delete mode 100644 Cunkebao/src/components/ui/button.tsx delete mode 100644 Cunkebao/src/components/ui/card.tsx delete mode 100644 Cunkebao/src/components/ui/checkbox.tsx delete mode 100644 Cunkebao/src/components/ui/dialog.tsx delete mode 100644 Cunkebao/src/components/ui/dropdown-menu.tsx delete mode 100644 Cunkebao/src/components/ui/input.tsx delete mode 100644 Cunkebao/src/components/ui/label.tsx delete mode 100644 Cunkebao/src/components/ui/progress.tsx delete mode 100644 Cunkebao/src/components/ui/radio-group.tsx delete mode 100644 Cunkebao/src/components/ui/scroll-area.tsx delete mode 100644 Cunkebao/src/components/ui/select.tsx delete mode 100644 Cunkebao/src/components/ui/separator.tsx delete mode 100644 Cunkebao/src/components/ui/skeleton.tsx delete mode 100644 Cunkebao/src/components/ui/switch.tsx delete mode 100644 Cunkebao/src/components/ui/table.tsx delete mode 100644 Cunkebao/src/components/ui/tabs.tsx delete mode 100644 Cunkebao/src/components/ui/textarea.tsx delete mode 100644 Cunkebao/src/components/ui/toast.tsx delete mode 100644 Cunkebao/src/components/ui/tooltip.tsx delete mode 100644 Cunkebao/src/components/ui/use-toast.ts delete mode 100644 Cunkebao/src/contexts/AuthContext.tsx delete mode 100644 Cunkebao/src/contexts/WechatAccountContext.tsx delete mode 100644 Cunkebao/src/hooks/use-debounce.ts delete mode 100644 Cunkebao/src/hooks/useAuthGuard.ts delete mode 100644 Cunkebao/src/hooks/useBackNavigation.ts delete mode 100644 Cunkebao/src/hooks/useThrottledRequest.ts delete mode 100644 Cunkebao/src/index.css delete mode 100644 Cunkebao/src/index.tsx delete mode 100644 Cunkebao/src/logo.svg create mode 100644 Cunkebao/src/main.tsx delete mode 100644 Cunkebao/src/pages/Home.tsx delete mode 100644 Cunkebao/src/pages/contact-import/ContactImport.tsx delete mode 100644 Cunkebao/src/pages/content/Content.tsx delete mode 100644 Cunkebao/src/pages/content/NewContent.tsx delete mode 100644 Cunkebao/src/pages/content/materials/List.tsx delete mode 100644 Cunkebao/src/pages/content/materials/New.tsx delete mode 100644 Cunkebao/src/pages/devices/DeviceDetail.tsx delete mode 100644 Cunkebao/src/pages/devices/Devices.tsx create mode 100644 Cunkebao/src/pages/guide/api.ts create mode 100644 Cunkebao/src/pages/guide/index.module.scss create mode 100644 Cunkebao/src/pages/guide/index.tsx create mode 100644 Cunkebao/src/pages/iframe/index.module.scss create mode 100644 Cunkebao/src/pages/iframe/index.tsx create mode 100644 Cunkebao/src/pages/iframe/init.tsx create mode 100644 Cunkebao/src/pages/login/api.ts create mode 100644 Cunkebao/src/pages/login/login.module.scss create mode 100644 Cunkebao/src/pages/mobile/content/form/api.ts create mode 100644 Cunkebao/src/pages/mobile/content/form/data.ts create mode 100644 Cunkebao/src/pages/mobile/content/form/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/content/form/index.tsx create mode 100644 Cunkebao/src/pages/mobile/content/list/api.ts create mode 100644 Cunkebao/src/pages/mobile/content/list/data.ts create mode 100644 Cunkebao/src/pages/mobile/content/list/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/content/list/index.tsx create mode 100644 Cunkebao/src/pages/mobile/content/materials/form/api.ts create mode 100644 Cunkebao/src/pages/mobile/content/materials/form/data.ts create mode 100644 Cunkebao/src/pages/mobile/content/materials/form/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/content/materials/form/index.tsx create mode 100644 Cunkebao/src/pages/mobile/content/materials/list/api.ts create mode 100644 Cunkebao/src/pages/mobile/content/materials/list/data.ts create mode 100644 Cunkebao/src/pages/mobile/content/materials/list/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/content/materials/list/index.tsx create mode 100644 Cunkebao/src/pages/mobile/home/api.ts create mode 100644 Cunkebao/src/pages/mobile/home/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/home/index.tsx create mode 100644 Cunkebao/src/pages/mobile/mine/content/form/api.ts create mode 100644 Cunkebao/src/pages/mobile/mine/content/form/data.ts create mode 100644 Cunkebao/src/pages/mobile/mine/content/form/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/mine/content/form/index.tsx create mode 100644 Cunkebao/src/pages/mobile/mine/content/list/api.ts create mode 100644 Cunkebao/src/pages/mobile/mine/content/list/data.ts create mode 100644 Cunkebao/src/pages/mobile/mine/content/list/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/mine/content/list/index.tsx create mode 100644 Cunkebao/src/pages/mobile/mine/content/materials/form/api.ts create mode 100644 Cunkebao/src/pages/mobile/mine/content/materials/form/data.ts create mode 100644 Cunkebao/src/pages/mobile/mine/content/materials/form/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/mine/content/materials/form/index.tsx create mode 100644 Cunkebao/src/pages/mobile/mine/content/materials/list/api.ts create mode 100644 Cunkebao/src/pages/mobile/mine/content/materials/list/data.ts create mode 100644 Cunkebao/src/pages/mobile/mine/content/materials/list/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/mine/content/materials/list/index.tsx create mode 100644 Cunkebao/src/pages/mobile/mine/devices/DeviceDetail.tsx create mode 100644 Cunkebao/src/pages/mobile/mine/devices/api.ts create mode 100644 Cunkebao/src/pages/mobile/mine/devices/index.tsx create mode 100644 Cunkebao/src/pages/mobile/mine/main/api.ts create mode 100644 Cunkebao/src/pages/mobile/mine/main/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/mine/main/index.tsx create mode 100644 Cunkebao/src/pages/mobile/mine/recharge/index/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/mine/recharge/index/index.tsx create mode 100644 Cunkebao/src/pages/mobile/mine/recharge/order/api.ts create mode 100644 Cunkebao/src/pages/mobile/mine/recharge/order/data.ts create mode 100644 Cunkebao/src/pages/mobile/mine/recharge/order/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/mine/recharge/order/index.tsx create mode 100644 Cunkebao/src/pages/mobile/mine/setting/About.tsx create mode 100644 Cunkebao/src/pages/mobile/mine/setting/Privacy.tsx create mode 100644 Cunkebao/src/pages/mobile/mine/setting/README.md create mode 100644 Cunkebao/src/pages/mobile/mine/setting/SecuritySetting.tsx create mode 100644 Cunkebao/src/pages/mobile/mine/setting/UserSetting.tsx create mode 100644 Cunkebao/src/pages/mobile/mine/setting/api.ts create mode 100644 Cunkebao/src/pages/mobile/mine/setting/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/mine/setting/index.tsx create mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/detail/api.ts create mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/detail/data.ts create mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/detail/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/detail/index.tsx create mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/list/BatchAddModal.tsx create mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/list/DataAnalysisPanel.tsx create mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/list/FilterModal.tsx create mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/list/api.ts create mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/list/data.ts create mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/list/dataAnyx.tsx create mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/list/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/mine/traffic-pool/list/index.tsx create mode 100644 Cunkebao/src/pages/mobile/mine/wechat-accounts/detail/api.ts create mode 100644 Cunkebao/src/pages/mobile/mine/wechat-accounts/detail/data.ts create mode 100644 Cunkebao/src/pages/mobile/mine/wechat-accounts/detail/detail.module.scss create mode 100644 Cunkebao/src/pages/mobile/mine/wechat-accounts/detail/index.tsx create mode 100644 Cunkebao/src/pages/mobile/mine/wechat-accounts/list/api.ts create mode 100644 Cunkebao/src/pages/mobile/mine/wechat-accounts/list/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/mine/wechat-accounts/list/index.tsx create mode 100644 Cunkebao/src/pages/mobile/scenarios/list/api.ts create mode 100644 Cunkebao/src/pages/mobile/scenarios/list/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/scenarios/list/index.tsx create mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/list/api.ts create mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/list/data.ts create mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/list/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/list/index.tsx create mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/list/planApi.module.scss create mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/list/planApi.tsx create mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/new/index.api.ts create mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/new/index.tsx create mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/new/steps/BasicSettings.tsx create mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/new/steps/FriendRequestSettings.tsx create mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/new/steps/MessageSettings.tsx create mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/new/steps/base.data.ts create mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/new/steps/base.module.scss create mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/new/steps/friend.module.scss create mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/new/steps/messages.module.scss create mode 100644 Cunkebao/src/pages/mobile/scenarios/plan/new/steps/step.api.ts create mode 100644 Cunkebao/src/pages/mobile/test/README.md create mode 100644 Cunkebao/src/pages/mobile/test/index.tsx create mode 100644 Cunkebao/src/pages/mobile/test/select.tsx create mode 100644 Cunkebao/src/pages/mobile/test/upload.module.scss create mode 100644 Cunkebao/src/pages/mobile/test/upload.tsx create mode 100644 Cunkebao/src/pages/mobile/workspace/ai-analyzer/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/workspace/ai-analyzer/index.tsx create mode 100644 Cunkebao/src/pages/mobile/workspace/ai-assistant/AIAssistant.module.scss create mode 100644 Cunkebao/src/pages/mobile/workspace/ai-assistant/AIAssistant.tsx create mode 100644 Cunkebao/src/pages/mobile/workspace/auto-group/detail/api.ts create mode 100644 Cunkebao/src/pages/mobile/workspace/auto-group/detail/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/workspace/auto-group/detail/index.tsx create mode 100644 Cunkebao/src/pages/mobile/workspace/auto-group/form/api.ts create mode 100644 Cunkebao/src/pages/mobile/workspace/auto-group/form/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/workspace/auto-group/form/index.tsx create mode 100644 Cunkebao/src/pages/mobile/workspace/auto-group/list/api.ts create mode 100644 Cunkebao/src/pages/mobile/workspace/auto-group/list/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/workspace/auto-group/list/index.tsx create mode 100644 Cunkebao/src/pages/mobile/workspace/auto-like/list/api.ts rename Cunkebao/src/{types/auto-like.ts => pages/mobile/workspace/auto-like/list/data.ts} (94%) create mode 100644 Cunkebao/src/pages/mobile/workspace/auto-like/list/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/workspace/auto-like/list/index.tsx create mode 100644 Cunkebao/src/pages/mobile/workspace/auto-like/new/api.ts create mode 100644 Cunkebao/src/pages/mobile/workspace/auto-like/new/data.ts create mode 100644 Cunkebao/src/pages/mobile/workspace/auto-like/new/index.tsx create mode 100644 Cunkebao/src/pages/mobile/workspace/auto-like/new/new.module.scss create mode 100644 Cunkebao/src/pages/mobile/workspace/auto-like/record/api.ts create mode 100644 Cunkebao/src/pages/mobile/workspace/auto-like/record/data.ts create mode 100644 Cunkebao/src/pages/mobile/workspace/auto-like/record/index.tsx create mode 100644 Cunkebao/src/pages/mobile/workspace/auto-like/record/record.module.scss create mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/detail/groupPush.ts create mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/detail/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/detail/index.tsx create mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/form/components/BasicSettings.tsx create mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/form/components/ContentSelector.tsx create mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/form/components/GroupSelector.tsx create mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/form/components/JingDongLink.tsx create mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/form/index.api.ts create mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/form/index.data.ts create mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/form/index.tsx create mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/list/index.api.ts create mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/list/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/workspace/group-push/list/index.tsx create mode 100644 Cunkebao/src/pages/mobile/workspace/main/api.ts create mode 100644 Cunkebao/src/pages/mobile/workspace/main/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/workspace/main/index.tsx create mode 100644 Cunkebao/src/pages/mobile/workspace/moments-sync/Detail.tsx create mode 100644 Cunkebao/src/pages/mobile/workspace/moments-sync/MomentsSync.tsx create mode 100644 Cunkebao/src/pages/mobile/workspace/moments-sync/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/workspace/moments-sync/new/api.ts create mode 100644 Cunkebao/src/pages/mobile/workspace/moments-sync/new/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/workspace/moments-sync/new/index.tsx create mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/detail/api.ts create mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/detail/data.ts create mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/detail/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/detail/index.tsx create mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/form/api.ts create mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/form/data.ts create mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/form/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/form/index.tsx create mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/list/api.ts create mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/list/data.ts create mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/list/index.module.scss create mode 100644 Cunkebao/src/pages/mobile/workspace/traffic-distribution/list/index.tsx delete mode 100644 Cunkebao/src/pages/orders/Orders.tsx create mode 100644 Cunkebao/src/pages/pc/ckbox/README.md create mode 100644 Cunkebao/src/pages/pc/ckbox/api.ts create mode 100644 Cunkebao/src/pages/pc/ckbox/components/ChatWindow/ChatWindow.module.scss create mode 100644 Cunkebao/src/pages/pc/ckbox/components/ChatWindow/index.tsx create mode 100644 Cunkebao/src/pages/pc/ckbox/components/ContactList/ContactList.module.scss create mode 100644 Cunkebao/src/pages/pc/ckbox/components/ContactList/index.tsx create mode 100644 Cunkebao/src/pages/pc/ckbox/components/CustomerDetailModal.module.scss create mode 100644 Cunkebao/src/pages/pc/ckbox/components/CustomerDetailModal.tsx create mode 100644 Cunkebao/src/pages/pc/ckbox/components/CustomerFilter.module.scss create mode 100644 Cunkebao/src/pages/pc/ckbox/components/CustomerFilter.tsx create mode 100644 Cunkebao/src/pages/pc/ckbox/components/CustomerFormModal.module.scss create mode 100644 Cunkebao/src/pages/pc/ckbox/components/CustomerFormModal.tsx create mode 100644 Cunkebao/src/pages/pc/ckbox/components/CustomerTagModal.module.scss create mode 100644 Cunkebao/src/pages/pc/ckbox/components/CustomerTagModal.tsx create mode 100644 Cunkebao/src/pages/pc/ckbox/components/MessageList/MessageList.module.scss create mode 100644 Cunkebao/src/pages/pc/ckbox/components/MessageList/index.tsx create mode 100644 Cunkebao/src/pages/pc/ckbox/data.ts create mode 100644 Cunkebao/src/pages/pc/ckbox/index.module.scss create mode 100644 Cunkebao/src/pages/pc/ckbox/index.tsx create mode 100644 Cunkebao/src/pages/pc/ckbox/test.tsx delete mode 100644 Cunkebao/src/pages/plans/PlanDetail.tsx delete mode 100644 Cunkebao/src/pages/plans/Plans.tsx delete mode 100644 Cunkebao/src/pages/profile/Profile.tsx delete mode 100644 Cunkebao/src/pages/scenarios/ScenarioList.tsx delete mode 100644 Cunkebao/src/pages/scenarios/Scenarios.tsx delete mode 100644 Cunkebao/src/pages/scenarios/new/page.tsx delete mode 100644 Cunkebao/src/pages/scenarios/new/steps/BasicSettings.tsx delete mode 100644 Cunkebao/src/pages/scenarios/new/steps/FriendRequestSettings.tsx delete mode 100644 Cunkebao/src/pages/scenarios/new/steps/MessageSettings.tsx delete mode 100644 Cunkebao/src/pages/scenarios/new/steps/TagSettings.tsx delete mode 100644 Cunkebao/src/pages/traffic-pool/TrafficPool.tsx delete mode 100644 Cunkebao/src/pages/traffic-pool/TrafficPoolDetail.tsx delete mode 100644 Cunkebao/src/pages/wechat-accounts/WechatAccountDetail.tsx delete mode 100644 Cunkebao/src/pages/wechat-accounts/WechatAccounts.tsx delete mode 100644 Cunkebao/src/pages/workspace/Workspace.tsx delete mode 100644 Cunkebao/src/pages/workspace/ai-assistant/AIAssistant.tsx delete mode 100644 Cunkebao/src/pages/workspace/auto-group/AutoGroup.tsx delete mode 100644 Cunkebao/src/pages/workspace/auto-group/Detail.tsx delete mode 100644 Cunkebao/src/pages/workspace/auto-like/AutoLike.tsx delete mode 100644 Cunkebao/src/pages/workspace/auto-like/AutoLikeDetail.tsx delete mode 100644 Cunkebao/src/pages/workspace/auto-like/NewAutoLike.tsx delete mode 100644 Cunkebao/src/pages/workspace/group-push/GroupPush.tsx delete mode 100644 Cunkebao/src/pages/workspace/group-push/components/BasicSettings.tsx delete mode 100644 Cunkebao/src/pages/workspace/group-push/components/ContentSelector.tsx delete mode 100644 Cunkebao/src/pages/workspace/group-push/components/GroupSelector.tsx delete mode 100644 Cunkebao/src/pages/workspace/group-push/components/StepIndicator.tsx delete mode 100644 Cunkebao/src/pages/workspace/group-push/new.tsx delete mode 100644 Cunkebao/src/pages/workspace/moments-sync/Detail.tsx delete mode 100644 Cunkebao/src/pages/workspace/moments-sync/MomentsSync.tsx delete mode 100644 Cunkebao/src/pages/workspace/moments-sync/index.tsx delete mode 100644 Cunkebao/src/pages/workspace/moments-sync/new.tsx delete mode 100644 Cunkebao/src/pages/workspace/traffic-distribution/Detail.tsx delete mode 100644 Cunkebao/src/pages/workspace/traffic-distribution/NewDistribution.tsx delete mode 100644 Cunkebao/src/pages/workspace/traffic-distribution/TrafficDistribution.tsx delete mode 100644 Cunkebao/src/reportWebVitals.ts create mode 100644 Cunkebao/src/router/config.ts create mode 100644 Cunkebao/src/router/index.tsx create mode 100644 Cunkebao/src/router/module/auth.tsx create mode 100644 Cunkebao/src/router/module/ckbox.tsx create mode 100644 Cunkebao/src/router/module/content.tsx create mode 100644 Cunkebao/src/router/module/index.tsx create mode 100644 Cunkebao/src/router/module/mine.tsx create mode 100644 Cunkebao/src/router/module/scenarios.tsx create mode 100644 Cunkebao/src/router/module/test.tsx create mode 100644 Cunkebao/src/router/module/wechat-accounts.tsx create mode 100644 Cunkebao/src/router/module/workspace.tsx create mode 100644 Cunkebao/src/router/permissionRoute.tsx delete mode 100644 Cunkebao/src/setupTests.ts create mode 100644 Cunkebao/src/store/README.md create mode 100644 Cunkebao/src/store/createPersistStore.ts create mode 100644 Cunkebao/src/store/examples.ts create mode 100644 Cunkebao/src/store/index.ts create mode 100644 Cunkebao/src/store/module/app.ts create mode 100644 Cunkebao/src/store/module/settings.ts create mode 100644 Cunkebao/src/store/module/user.ts create mode 100644 Cunkebao/src/store/persistUtils.ts create mode 100644 Cunkebao/src/styles/global.scss delete mode 100644 Cunkebao/src/types/common.ts delete mode 100644 Cunkebao/src/types/moments-sync.ts delete mode 100644 Cunkebao/src/types/wechat.ts create mode 100644 Cunkebao/src/utils/apiUrl.ts create mode 100644 Cunkebao/src/utils/common.ts create mode 100644 Cunkebao/src/utils/env.ts delete mode 100644 Cunkebao/src/utils/index.ts create mode 100644 Cunkebao/src/utils/postApp.ts create mode 100644 Cunkebao/src/utils/updateChecker.ts create mode 100644 Cunkebao/src/vite-env.d.ts delete mode 100644 Cunkebao/tailwind.config.js create mode 100644 Cunkebao/vite-pwa.config.ts create mode 100644 Cunkebao/vite.config.ts create mode 100644 Cunkebao/技术栈.md diff --git a/Cunkebao/.env.development b/Cunkebao/.env.development new file mode 100644 index 00000000..7afdd84c --- /dev/null +++ b/Cunkebao/.env.development @@ -0,0 +1,4 @@ +# 基础环境变量示例 +# VITE_API_BASE_URL=http://www.yishi.com +VITE_API_BASE_URL=https://ckbapi.quwanzhi.com +VITE_APP_TITLE=存客宝 diff --git a/Cunkebao/.env.production b/Cunkebao/.env.production new file mode 100644 index 00000000..1c009a77 --- /dev/null +++ b/Cunkebao/.env.production @@ -0,0 +1,3 @@ +# 基础环境变量示例 +VITE_API_BASE_URL=https://ckbapi.quwanzhi.com +VITE_APP_TITLE=存客宝 diff --git a/Cunkebao/.eslintrc.js b/Cunkebao/.eslintrc.js new file mode 100644 index 00000000..0ffa2239 --- /dev/null +++ b/Cunkebao/.eslintrc.js @@ -0,0 +1,64 @@ +module.exports = { + root: true, + env: { + browser: true, + es2021: true, + node: true, + }, + extends: [ + "eslint:recommended", + "plugin:react/recommended", + "plugin:react-hooks/recommended", + "plugin:@typescript-eslint/recommended", + "plugin:prettier/recommended", // 这个配置会自动处理大部分冲突 + ], + parser: "@typescript-eslint/parser", + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + ecmaVersion: 12, + sourceType: "module", + }, + plugins: ["react", "react-hooks", "@typescript-eslint", "prettier"], + rules: { + "prettier/prettier": "error", + "react/react-in-jsx-scope": "off", + "@typescript-eslint/no-unused-vars": "warn", + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-unnecessary-type-constraint": "warn", + "react/prop-types": "off", + "linebreak-style": "off", + "eol-last": "off", + "no-empty": "warn", + "prefer-const": "warn", + // 确保与 Prettier 完全兼容 + "comma-dangle": "off", + "comma-spacing": "off", + "comma-style": "off", + "object-curly-spacing": "off", + "array-bracket-spacing": "off", + indent: "off", + quotes: "off", + semi: "off", + "arrow-parens": "off", + "no-multiple-empty-lines": "off", + "max-len": "off", + "space-before-function-paren": "off", + "space-before-blocks": "off", + "keyword-spacing": "off", + "space-infix-ops": "off", + "space-in-parens": "off", + "space-in-brackets": "off", + "object-property-newline": "off", + "array-element-newline": "off", + "function-paren-newline": "off", + "object-curly-newline": "off", + "array-bracket-newline": "off", + }, + settings: { + react: { + version: "detect", + }, + }, +}; diff --git a/Cunkebao/.gitattributes b/Cunkebao/.gitattributes new file mode 100644 index 00000000..b1c74b26 --- /dev/null +++ b/Cunkebao/.gitattributes @@ -0,0 +1,27 @@ +# 设置默认行为,如果core.autocrlf没有设置,Git会自动处理行尾符 +* text=auto + +# 明确指定文本文件使用LF +*.js text eol=lf +*.jsx text eol=lf +*.ts text eol=lf +*.tsx text eol=lf +*.json text eol=lf +*.css text eol=lf +*.scss text eol=lf +*.html text eol=lf +*.md text eol=lf +*.yml text eol=lf +*.yaml text eol=lf + +# 二进制文件 +*.png binary +*.jpg binary +*.jpeg binary +*.gif binary +*.ico binary +*.svg binary +*.woff binary +*.woff2 binary +*.ttf binary +*.eot binary diff --git a/Cunkebao/.gitignore b/Cunkebao/.gitignore index 4d29575d..dcf55aed 100644 --- a/Cunkebao/.gitignore +++ b/Cunkebao/.gitignore @@ -1,23 +1,6 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# production -/build - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* +node_modules/ +dist/ +build/ +yarn.lock +.env +.DS_Store \ No newline at end of file diff --git a/Cunkebao/.prettierrc b/Cunkebao/.prettierrc new file mode 100644 index 00000000..e8e77819 --- /dev/null +++ b/Cunkebao/.prettierrc @@ -0,0 +1,13 @@ +{ + "semi": true, + "trailingComma": "all", + "singleQuote": false, + "printWidth": 80, + "tabWidth": 2, + "useTabs": false, + "endOfLine": "lf", + "bracketSpacing": true, + "arrowParens": "avoid", + "jsxSingleQuote": false, + "quoteProps": "as-needed" +} \ No newline at end of file diff --git a/Cunkebao/.vite/deps/_metadata.json b/Cunkebao/.vite/deps/_metadata.json new file mode 100644 index 00000000..b6601954 --- /dev/null +++ b/Cunkebao/.vite/deps/_metadata.json @@ -0,0 +1,8 @@ +{ + "hash": "efe0acf4", + "configHash": "2bed34b3", + "lockfileHash": "ef01d341", + "browserHash": "91bd3b2c", + "optimized": {}, + "chunks": {} +} \ No newline at end of file diff --git a/Cunkebao/.vite/deps/package.json b/Cunkebao/.vite/deps/package.json new file mode 100644 index 00000000..3dbc1ca5 --- /dev/null +++ b/Cunkebao/.vite/deps/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} diff --git a/Cunkebao/.vscode/extensions.json b/Cunkebao/.vscode/extensions.json new file mode 100644 index 00000000..37f481a2 --- /dev/null +++ b/Cunkebao/.vscode/extensions.json @@ -0,0 +1,11 @@ +{ + "recommendations": [ + "esbenp.prettier-vscode", + "dbaeumer.vscode-eslint", + "bradlc.vscode-tailwindcss", + "ms-vscode.vscode-typescript-next", + "formulahendry.auto-rename-tag", + "christian-kohler.path-intellisense", + "ms-vscode.vscode-json" + ] +} diff --git a/Cunkebao/.vscode/settings.json b/Cunkebao/.vscode/settings.json new file mode 100644 index 00000000..7241ea90 --- /dev/null +++ b/Cunkebao/.vscode/settings.json @@ -0,0 +1,45 @@ +{ + "files.eol": "\n", + "files.insertFinalNewline": true, + "files.trimFinalNewlines": true, + "files.trimTrailingWhitespace": true, + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit", + "source.organizeImports": "never" + }, + "eslint.validate": [ + "javascript", + "javascriptreact", + "typescript", + "typescriptreact" + ], + "eslint.format.enable": false, + "[javascript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[typescript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[javascriptreact]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[typescriptreact]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[json]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[scss]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[css]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "typescript.preferences.importModuleSpecifier": "relative", + "typescript.suggest.autoImports": true, + "editor.tabSize": 2, + "editor.insertSpaces": true, + "editor.detectIndentation": false +} diff --git a/Cunkebao/README.md b/Cunkebao/README.md deleted file mode 100644 index 7167bc10..00000000 --- a/Cunkebao/README.md +++ /dev/null @@ -1,293 +0,0 @@ -# 内客宝 - 智能获客管理平台 - -## 📋 项目简介 - -内客宝是一个专业的微信获客和流量管理平台,基于 React 技术栈构建。平台提供智能化的客户获取、管理和运营解决方案,集成了多种自动化工具,帮助企业高效管理存客宝活动。 - -## 🚀 技术栈详解 - -### 核心框架 - -- **React 18.2.0** - 现代化的用户界面库 -- **TypeScript 4.9.5** - 类型安全的 JavaScript 超集 -- **Create React App (CRA) 5.0.1** - React 应用脚手架 -- **React Router DOM 6.20.0** - 客户端路由管理 - -### 构建工具 - -- **CRACO 7.1.0** - Create React App Configuration Override - - 支持自定义 webpack 配置 - - 路径别名配置 - - 构建优化 - -### UI 组件库 - -- **Radix UI** - 无样式的可访问组件库 - - 完整的组件生态系统(30+ 组件) - - 优秀的无障碍访问支持 - - 高度可定制 -- **Tailwind CSS 3.4.17** - 实用优先的 CSS 框架 - - 响应式设计支持 - - 自定义主题配置 - - 原子化 CSS 类 - -### 图标和样式 - -- **Lucide React 0.454.0** - 精美的图标库 -- **Tailwind CSS Animate** - CSS 动画库 -- **Class Variance Authority** - 组件变体管理 -- **Tailwind Merge** - Tailwind 类名合并工具 - -### 状态管理和表单 - -- **React Hook Form 7.54.1** - 高性能表单库 -- **Zod 3.24.1** - TypeScript 优先的模式验证 -- **@hookform/resolvers 3.9.1** - 表单验证解析器 - -### 数据可视化 - -- **Recharts** - 基于 React 的图表库 -- **Chart.js 4.5.0** - 灵活的图表库 -- **@ant-design/plots** - Ant Design 图表组件 - -### HTTP 请求和数据处理 - -- **Axios 1.6.0** - HTTP 客户端 -- **Crypto-js 4.2.0** - 加密库 -- **Date-fns** - 日期处理库 -- **XLSX 0.18.5** - Excel 文件处理 - -### 通知和反馈 - -- **React Hot Toast 2.5.2** - 轻量级通知库 -- **Sonner 1.7.4** - 现代化 Toast 组件 - -### 高级组件 - -- **@tanstack/react-table** - 功能强大的表格组件 -- **Embla Carousel React 8.5.1** - 轮播组件 -- **React Resizable Panels 2.1.7** - 可调整大小的面板 -- **Vaul 0.9.6** - 抽屉组件 -- **Input OTP 1.4.1** - OTP 输入组件 -- **React Day Picker** - 日期选择器 - -### 开发工具 - -- **PostCSS 8** - CSS 后处理器 -- **Autoprefixer 10.4.20** - CSS 前缀自动添加 -- **ESLint** - 代码质量检查 -- **Jest** - 单元测试框架 -- **Testing Library** - React 测试工具 - -## 📁 项目结构 - -``` -nkebao/ -├── public/ # 静态资源 -├── src/ # 源代码 -│ ├── api/ # API 接口封装 -│ ├── components/ # 全局组件 -│ │ ├── ui/ # UI 基础组件 -│ │ └── icons/ # 图标组件 -│ ├── config/ # 配置文件 -│ ├── contexts/ # React Context -│ ├── hooks/ # 自定义 Hooks -│ ├── pages/ # 页面组件 -│ │ ├── workspace/ # 工作台模块 -│ │ │ ├── auto-like/ # 自动点赞 -│ │ │ ├── auto-group/ # 自动建群 -│ │ │ ├── group-push/ # 群消息推送 -│ │ │ ├── moments-sync/ # 朋友圈同步 -│ │ │ ├── ai-assistant/ # AI 对话助手 -│ │ │ └── traffic-distribution/ # 流量分发 -│ │ ├── devices/ # 设备管理 -│ │ ├── scenarios/ # 场景管理 -│ │ ├── content/ # 内容管理 -│ │ └── ... -│ ├── types/ # TypeScript 类型定义 -│ ├── utils/ # 工具函数 -│ ├── App.tsx # 应用根组件 -│ └── index.tsx # 应用入口 -├── craco.config.js # CRACO 配置 -├── tailwind.config.js # Tailwind CSS 配置 -├── tsconfig.json # TypeScript 配置 -└── package.json # 项目依赖 -``` - -## 🎯 核心功能模块 - -### 工作台 (Workspace) - -- **自动点赞** - 智能点赞管理和配置 -- **自动建群** - 群组自动化创建和管理 -- **群消息推送** - 群组消息批量发送 -- **朋友圈同步** - 内容同步和发布 -- **AI 对话助手** - 智能客服和对话管理 -- **流量分发** - 流量分配和策略管理 - -### 设备管理 (Devices) - -- 设备状态监控和配置 -- 设备性能分析 -- 设备权限管理 - -### 场景管理 (Scenarios) - -- 营销场景配置 -- 自动化流程设计 -- 场景效果分析 - -### 内容管理 (Content) - -- 内容创建与编辑 -- 内容模板管理 -- 内容发布调度 - -### 其他模块 - -- 用户管理 (Users) -- 订单管理 (Orders) -- 流量池管理 (Traffic Pool) -- 联系人导入 (Contact Import) - -## 🛠️ 开发指南 - -### 环境要求 - -- **Node.js** 16+ -- **npm** 或 **yarn** - -### 安装依赖 - -```bash -# 使用 npm -npm install - -# 使用 yarn -yarn install -``` - -### 开发环境启动 - -```bash -# 使用 npm -npm start - -# 使用 yarn -yarn start -``` - -### 构建生产版本 - -```bash -# 使用 npm -npm run build - -# 使用 yarn -yarn build -``` - -### 运行测试 - -```bash -# 使用 npm -npm test - -# 使用 yarn -yarn test -``` - -## 🔧 配置说明 - -### 路径别名配置 - -项目使用 CRACO 配置了路径别名: - -```javascript -'@': path.resolve(__dirname, 'src'), -'@/components': path.resolve(__dirname, 'src/components'), -'@/api': path.resolve(__dirname, 'src/api'), -'@/types': path.resolve(__dirname, 'src/types'), -'@/hooks': path.resolve(__dirname, 'src/hooks'), -'@/utils': path.resolve(__dirname, 'src/utils'), -'@/styles': path.resolve(__dirname, 'src/styles'), -'@/pages': path.resolve(__dirname, 'src/pages'), -``` - -### Tailwind CSS 配置 - -- 自定义字体大小和间距 -- 响应式断点配置 -- 主题颜色系统 - -### TypeScript 配置 - -- 严格模式启用 -- 路径映射配置 -- JSX 支持 - -## 📱 响应式设计 - -项目采用移动优先的响应式设计: - -- 支持桌面端、平板端、移动端 -- 自适应布局组件 -- 触摸友好的交互设计 - -## 🎨 UI 设计系统 - -### 设计原则 - -- 简洁现代的设计风格 -- 一致的用户体验 -- 无障碍访问支持 - -### 组件库特点 - -- 基于 Radix UI 的高质量组件 -- 完整的表单组件系统 -- 数据展示组件 -- 导航和布局组件 - -## 🔒 安全特性 - -- 身份验证和授权 -- API 请求拦截 -- 数据验证和清理 -- 加密功能支持 - -## 📊 性能优化 - -- 代码分割和懒加载 -- 组件优化 -- 缓存策略 -- 包大小优化 - -## 🧪 测试策略 - -- 单元测试 (Jest + Testing Library) -- 组件测试 -- 集成测试支持 - -## 🤝 贡献指南 - -1. Fork 项目 -2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) -3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) -4. 推送到分支 (`git push origin feature/AmazingFeature`) -5. 创建 Pull Request - -## 📄 许可证 - -本项目采用 MIT 许可证。 - -## 📞 联系方式 - -如有问题或建议,请联系开发团队。 - ---- - -**项目名称**: 内客宝 (nkebao2) -**版本**: 0.1.0 -**技术栈**: React + TypeScript + CRA + Tailwind CSS -**最后更新**: 2024 年 12 月 diff --git a/Cunkebao/craco.config.js b/Cunkebao/craco.config.js deleted file mode 100644 index 7f4c82fe..00000000 --- a/Cunkebao/craco.config.js +++ /dev/null @@ -1,16 +0,0 @@ -const path = require('path'); - -module.exports = { - webpack: { - alias: { - '@': path.resolve(__dirname, 'src'), - '@/components': path.resolve(__dirname, 'src/components'), - '@/api': path.resolve(__dirname, 'src/api'), - '@/types': path.resolve(__dirname, 'src/types'), - '@/hooks': path.resolve(__dirname, 'src/hooks'), - '@/utils': path.resolve(__dirname, 'src/utils'), - '@/styles': path.resolve(__dirname, 'src/styles'), - '@/pages': path.resolve(__dirname, 'src/pages'), - }, - }, -}; \ No newline at end of file diff --git a/Cunkebao/devlop.py b/Cunkebao/devlop.py new file mode 100644 index 00000000..b96ddca5 --- /dev/null +++ b/Cunkebao/devlop.py @@ -0,0 +1,95 @@ +import os +import zipfile +import paramiko + +# 配置 +local_dir = './dist' # 本地要打包的目录 +zip_name = 'dist.zip' +# 上传到服务器的 zip 路径 +remote_path = '/www/wwwroot/auto-devlop/ckb-operation/dist.zip' # 服务器上的临时zip路径 +server_ip = '42.194.245.239' +server_port = 6523 +server_user = 'yongpxu' +server_pwd = 'Aa123456789.' +# 服务器 dist 相关目录 +remote_base_dir = '/www/wwwroot/auto-devlop/ckb-operation' +dist_dir = f'{remote_base_dir}/dist' +dist1_dir = f'{remote_base_dir}/dist1' +dist2_dir = f'{remote_base_dir}/dist2' + +# 美化输出用的函数 +from datetime import datetime + +def info(msg): + print(f"\033[36m[INFO {datetime.now().strftime('%H:%M:%S')}] {msg}\033[0m") + +def success(msg): + print(f"\033[32m[SUCCESS] {msg}\033[0m") + +def error(msg): + print(f"\033[31m[ERROR] {msg}\033[0m") + +def step(msg): + print(f"\n\033[35m==== {msg} ====" + "\033[0m") + +# 1. 先运行 yarn build +step('Step 1: 构建项目 (yarn build)') +info('开始执行 yarn build...') +ret = os.system('yarn build') +if ret != 0: + error('yarn build 失败,终止部署!') + exit(1) +success('yarn build 完成') + +# 2. 打包 +step('Step 2: 打包 dist 目录为 zip') +info('开始打包 dist 目录...') +with zipfile.ZipFile(zip_name, 'w', zipfile.ZIP_DEFLATED) as zipf: + for root, dirs, files in os.walk(local_dir): + for file in files: + filepath = os.path.join(root, file) + arcname = os.path.relpath(filepath, local_dir) + zipf.write(filepath, arcname) +success('本地打包完成') + +# 3. 上传 +step('Step 3: 上传 zip 包到服务器') +info('开始上传 zip 包...') +transport = paramiko.Transport((server_ip, server_port)) +transport.connect(username=server_user, password=server_pwd) +sftp = paramiko.SFTPClient.from_transport(transport) +sftp.put(zip_name, remote_path) +sftp.close() +transport.close() +success('上传到服务器完成') + +# 删除本地 dist.zip +try: + os.remove(zip_name) + success('本地 dist.zip 已删除') +except Exception as e: + error(f'本地 dist.zip 删除失败: {e}') + +# 4. 远程解压并覆盖 +step('Step 4: 服务器端解压、切换目录') +ssh = paramiko.SSHClient() +ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) +ssh.connect(server_ip, server_port, server_user, server_pwd) +commands = [ + f'unzip -oq {remote_path} -d {dist2_dir}', # 静默解压 + f'rm {remote_path}', + f'if [ -d {dist_dir} ]; then mv {dist_dir} {dist1_dir}; fi', + f'mv {dist2_dir} {dist_dir}', + f'rm -rf {dist1_dir}' +] +for i, cmd in enumerate(commands, 1): + info(f'执行第{i}步: {cmd}') + stdin, stdout, stderr = ssh.exec_command(cmd) + out, err = stdout.read().decode(), stderr.read().decode() + # 只打印非 unzip 命令的输出 + if i != 1 and out.strip(): + print(out.strip()) + if err.strip(): + error(err.strip()) +ssh.close() +success('服务器解压并覆盖完成,部署成功!') diff --git a/Cunkebao/favicon.ico b/Cunkebao/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..54e9891c85fd9bceae3e93ee7a5d8286ba81559a GIT binary patch literal 3922 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 literal 0 HcmV?d00001 diff --git a/Cunkebao/index.html b/Cunkebao/index.html new file mode 100644 index 00000000..92ab92a7 --- /dev/null +++ b/Cunkebao/index.html @@ -0,0 +1,19 @@ + + + + + + 存客宝 + + + + + +
+ + + diff --git a/Cunkebao/next-env.d.ts b/Cunkebao/next-env.d.ts deleted file mode 100644 index 3cd7048e..00000000 --- a/Cunkebao/next-env.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -/// -/// -/// - -// NOTE: This file should not be edited -// see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/Cunkebao/package-lock.json b/Cunkebao/package-lock.json index 01161277..3a81b88f 100644 --- a/Cunkebao/package-lock.json +++ b/Cunkebao/package-lock.json @@ -1,112 +1,53 @@ { - "name": "nkebao2", - "version": "0.1.0", + "name": "cunkebao", + "version": "3.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "nkebao2", - "version": "0.1.0", + "name": "cunkebao", + "version": "3.0.0", + "license": "MIT", "dependencies": { - "@ant-design/plots": "latest", - "@hookform/resolvers": "^3.9.1", - "@radix-ui/react-accordion": "latest", - "@radix-ui/react-alert-dialog": "^1.1.4", - "@radix-ui/react-aspect-ratio": "^1.1.1", - "@radix-ui/react-avatar": "latest", - "@radix-ui/react-checkbox": "latest", - "@radix-ui/react-collapsible": "latest", - "@radix-ui/react-context-menu": "^2.2.4", - "@radix-ui/react-dialog": "latest", - "@radix-ui/react-dropdown-menu": "latest", - "@radix-ui/react-hover-card": "^1.1.4", - "@radix-ui/react-icons": "latest", - "@radix-ui/react-label": "latest", - "@radix-ui/react-menubar": "^1.1.4", - "@radix-ui/react-navigation-menu": "^1.2.3", - "@radix-ui/react-popover": "latest", - "@radix-ui/react-progress": "latest", - "@radix-ui/react-radio-group": "latest", - "@radix-ui/react-scroll-area": "latest", - "@radix-ui/react-select": "latest", - "@radix-ui/react-separator": "^1.1.1", - "@radix-ui/react-slider": "^1.3.5", - "@radix-ui/react-slot": "^1.1.1", - "@radix-ui/react-switch": "latest", - "@radix-ui/react-tabs": "latest", - "@radix-ui/react-toast": "latest", - "@radix-ui/react-toggle": "^1.1.1", - "@radix-ui/react-toggle-group": "^1.1.1", - "@radix-ui/react-tooltip": "latest", - "@tanstack/react-table": "latest", - "@testing-library/dom": "^10.4.0", - "@testing-library/jest-dom": "^6.6.3", - "@testing-library/react": "^13.4.0", - "@testing-library/user-event": "^13.5.0", - "@types/crypto-js": "^4.2.2", - "@types/jest": "^27.5.2", - "@types/node": "^18.19.34", - "@types/react": "^18.2.43", - "@types/react-dom": "^18.2.17", - "autoprefixer": "^10.4.20", - "axios": "^1.6.0", - "chart.js": "^4.5.0", - "class-variance-authority": "^0.7.1", - "clsx": "^2.1.1", - "cmdk": "1.0.4", - "crypto-js": "^4.2.0", - "date-fns": "^4.1.0", - "embla-carousel-react": "8.5.1", - "input-otp": "1.4.1", - "lucide-react": "^0.525.0", + "@ant-design/icons": "^5.6.1", + "@capacitor/android": "^7.4.2", + "antd": "^5.13.1", + "antd-mobile": "^5.39.1", + "axios": "^1.6.7", + "dayjs": "^1.11.13", + "echarts": "^5.6.0", + "echarts-for-react": "^3.0.2", "react": "^18.2.0", - "react-day-picker": "latest", "react-dom": "^18.2.0", - "react-hook-form": "^7.54.1", - "react-hot-toast": "^2.5.2", - "react-resizable-panels": "^2.1.7", "react-router-dom": "^6.20.0", - "react-scripts": "5.0.1", - "recharts": "latest", - "regenerator-runtime": "latest", - "sonner": "^1.7.4", - "tailwind-merge": "^2.6.0", - "tailwindcss-animate": "^1.0.7", - "tdesign-mobile-react": "^0.16.0", - "vaul": "^0.9.6", - "web-vitals": "^2.1.4", - "xlsx": "^0.18.5", - "zod": "^3.24.1" + "vconsole": "^3.15.1", + "zustand": "^5.0.6" }, "devDependencies": { - "@craco/craco": "^7.1.0", - "postcss": "^8", - "tailwindcss": "^3.4.17", - "typescript": "^4.9.5" - } - }, - "node_modules/@adobe/css-tools": { - "version": "4.4.3", - "resolved": "https://registry.npmmirror.com/@adobe/css-tools/-/css-tools-4.4.3.tgz", - "integrity": "sha512-VQKMkwriZbaOgVCby1UDY/LDk5fIjhQicCvVPFqfe+69fWaPWydbWJ3wRt59/YzIwda1I81loas3oCoHxnqvdA==", - "license": "MIT" - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@types/node": "^24.0.14", + "@types/react": "^19.1.8", + "@types/react-dom": "^19.1.6", + "@typescript-eslint/eslint-plugin": "^7.7.0", + "@typescript-eslint/parser": "^7.7.0", + "@vitejs/plugin-react": "^4.6.0", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-react": "^7.34.1", + "eslint-plugin-react-hooks": "^5.2.0", + "postcss": "^8.4.38", + "postcss-pxtorem": "^6.0.0", + "prettier": "^3.2.5", + "sass": "^1.75.0", + "typescript": "^5.4.5", + "vite": "^7.0.5" } }, "node_modules/@ampproject/remapping": { "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz", + "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", @@ -116,381 +57,108 @@ "node": ">=6.0.0" } }, - "node_modules/@ant-design/charts-util": { - "version": "0.0.2", - "resolved": "https://registry.npmmirror.com/@ant-design/charts-util/-/charts-util-0.0.2.tgz", - "integrity": "sha512-JuThvtHE8R3PldXzTkL3bmmFf0HVhih49CYinRrkwgovOmvDYaaKHnI53EWJbW8n4Ndcyy8jiZTSkoxcjGS6Zg==", + "node_modules/@ant-design/colors": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.2.1.tgz", + "integrity": "sha512-lCHDcEzieu4GA3n8ELeZ5VQ8pKQAWcGGLRTQ50aQM2iqPpq2evTxER84jfdPvsPAtEcZ7m44NI45edFMo8oOYQ==", "license": "MIT", "dependencies": { - "lodash": "^4.17.21" + "@ant-design/fast-color": "^2.0.6" + } + }, + "node_modules/@ant-design/cssinjs": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.23.0.tgz", + "integrity": "sha512-7GAg9bD/iC9ikWatU9ym+P9ugJhi/WbsTWzcKN6T4gU0aehsprtke1UAaaSxxkjjmkJb3llet/rbUSLPgwlY4w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "@emotion/hash": "^0.8.0", + "@emotion/unitless": "^0.7.5", + "classnames": "^2.3.1", + "csstype": "^3.1.3", + "rc-util": "^5.35.0", + "stylis": "^4.3.4" }, "peerDependencies": { - "react": ">=16.8.4", - "react-dom": ">=16.8.4" + "react": ">=16.0.0", + "react-dom": ">=16.0.0" } }, - "node_modules/@ant-design/plots": { - "version": "2.6.0", - "resolved": "https://registry.npmmirror.com/@ant-design/plots/-/plots-2.6.0.tgz", - "integrity": "sha512-l6sZLPoKPKWG6kdvHe+H7vUqNQk2i1xjsiBQe/8ABZ9KDRDnig+LzHBjHnVl0fvqmzDPI3O3RFEccl1tfA1i4A==", + "node_modules/@ant-design/cssinjs-utils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs-utils/-/cssinjs-utils-1.1.3.tgz", + "integrity": "sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg==", "license": "MIT", "dependencies": { - "@ant-design/charts-util": "0.0.2", - "@antv/event-emitter": "^0.1.3", - "@antv/g": "^6.1.7", - "@antv/g2": "^5.2.7", - "@antv/g2-extension-plot": "^0.2.1", - "lodash": "^4.17.21" + "@ant-design/cssinjs": "^1.21.0", + "@babel/runtime": "^7.23.2", + "rc-util": "^5.38.0" }, "peerDependencies": { - "react": ">=16.8.4", - "react-dom": ">=16.8.4" + "react": ">=16.9.0", + "react-dom": ">=16.9.0" } }, - "node_modules/@antv/component": { - "version": "2.1.4", - "resolved": "https://registry.npmmirror.com/@antv/component/-/component-2.1.4.tgz", - "integrity": "sha512-B6xhxYCk57VkyPViWSR5nry8d3Qog51rcFhfuNHJp5S1kKkGqojkzt6aP/45llF/jHNnBLdxnPNQFlCIxZERDQ==", + "node_modules/@ant-design/fast-color": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@ant-design/fast-color/-/fast-color-2.0.6.tgz", + "integrity": "sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==", "license": "MIT", "dependencies": { - "@antv/g": "^6.1.11", - "@antv/scale": "^0.4.16", - "@antv/util": "^3.3.10", - "svg-path-parser": "^1.1.0" + "@babel/runtime": "^7.24.7" + }, + "engines": { + "node": ">=8.x" } }, - "node_modules/@antv/coord": { - "version": "0.4.7", - "resolved": "https://registry.npmmirror.com/@antv/coord/-/coord-0.4.7.tgz", - "integrity": "sha512-UTbrMLhwJUkKzqJx5KFnSRpU3BqrdLORJbwUbHK2zHSCT3q3bjcFA//ZYLVfIlwqFDXp/hzfMyRtp0c77A9ZVA==", + "node_modules/@ant-design/icons": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.6.1.tgz", + "integrity": "sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==", "license": "MIT", "dependencies": { - "@antv/scale": "^0.4.12", - "@antv/util": "^2.0.13", - "gl-matrix": "^3.4.3" + "@ant-design/colors": "^7.0.0", + "@ant-design/icons-svg": "^4.4.0", + "@babel/runtime": "^7.24.8", + "classnames": "^2.2.6", + "rc-util": "^5.31.1" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" } }, - "node_modules/@antv/coord/node_modules/@antv/util": { - "version": "2.0.17", - "resolved": "https://registry.npmmirror.com/@antv/util/-/util-2.0.17.tgz", - "integrity": "sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q==", - "license": "ISC", - "dependencies": { - "csstype": "^3.0.8", - "tslib": "^2.0.3" - } - }, - "node_modules/@antv/event-emitter": { - "version": "0.1.3", - "resolved": "https://registry.npmmirror.com/@antv/event-emitter/-/event-emitter-0.1.3.tgz", - "integrity": "sha512-4ddpsiHN9Pd4UIlWuKVK1C4IiZIdbwQvy9i7DUSI3xNJ89FPUFt8lxDYj8GzzfdllV0NkJTRxnG+FvLk0llidg==", + "node_modules/@ant-design/icons-svg": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", + "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==", "license": "MIT" }, - "node_modules/@antv/expr": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/@antv/expr/-/expr-1.0.2.tgz", - "integrity": "sha512-vrfdmPHkTuiS5voVutKl2l06w1ihBh9A8SFdQPEE+2KMVpkymzGOF1eWpfkbGZ7tiFE15GodVdhhHomD/hdIwg==", - "license": "MIT" - }, - "node_modules/@antv/g": { - "version": "6.1.26", - "resolved": "https://registry.npmmirror.com/@antv/g/-/g-6.1.26.tgz", - "integrity": "sha512-+Pf23pz8o/u98pKpb3CqLfz4iJaZh6HIo0Z5FJdSTCZUrMIEgmNMFnZiJf9Ow0mnLA9KVdv5ekF17f82G5TyRw==", + "node_modules/@ant-design/react-slick": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.1.2.tgz", + "integrity": "sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==", "license": "MIT", "dependencies": { - "@antv/g-camera-api": "2.0.39", - "@antv/g-dom-mutation-observer-api": "2.0.36", - "@antv/g-lite": "2.3.0", - "@antv/g-web-animations-api": "2.1.26", - "@babel/runtime": "^7.25.6" - } - }, - "node_modules/@antv/g-camera-api": { - "version": "2.0.39", - "resolved": "https://registry.npmmirror.com/@antv/g-camera-api/-/g-camera-api-2.0.39.tgz", - "integrity": "sha512-DsVcXxnY3NNlHqkqr/egAlOGRfFErGfVNGmHCsEHswr0bL8kmo4B5VarAYsCymjgzHxEQ/g39gEagUPnD/3O8g==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.3.0", - "@antv/util": "^3.3.5", - "@babel/runtime": "^7.25.6", - "gl-matrix": "^3.4.3", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-canvas": { - "version": "2.0.45", - "resolved": "https://registry.npmmirror.com/@antv/g-canvas/-/g-canvas-2.0.45.tgz", - "integrity": "sha512-CV3KxLnRnP5Ae3NfnJ9k9tIfj2HJTzGjDWCoEfgK347vIsVxIVFVz1sR4zWmDcj9EVp/oD6OktUDAsBFN2qRGA==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.3.0", - "@antv/g-plugin-canvas-path-generator": "2.1.20", - "@antv/g-plugin-canvas-picker": "2.1.24", - "@antv/g-plugin-canvas-renderer": "2.3.0", - "@antv/g-plugin-dom-interaction": "2.1.25", - "@antv/g-plugin-html-renderer": "2.1.25", - "@antv/g-plugin-image-loader": "2.1.24", - "@antv/util": "^3.3.5", - "@babel/runtime": "^7.25.6", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-dom-mutation-observer-api": { - "version": "2.0.36", - "resolved": "https://registry.npmmirror.com/@antv/g-dom-mutation-observer-api/-/g-dom-mutation-observer-api-2.0.36.tgz", - "integrity": "sha512-W0oJv6yGLVy3xD05201RP2+GtinIFQznSivVKpkBWerCFw/nms7a2WvwBeN5EVaZ7qPUnFTKGapDETufw7KhuA==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.3.0", - "@babel/runtime": "^7.25.6" - } - }, - "node_modules/@antv/g-lite": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/@antv/g-lite/-/g-lite-2.3.0.tgz", - "integrity": "sha512-Gua5FtIAumkT/bPcIl7twQF5T1RtuaUT9CpbIYKaiEAwMbecrjGLeTbm9kNKoUT5Tub4HcW2gzfQQ4O21zJdzg==", - "license": "MIT", - "dependencies": { - "@antv/g-math": "3.0.1", - "@antv/util": "^3.3.5", - "@antv/vendor": "^1.0.3", - "@babel/runtime": "^7.25.6", - "eventemitter3": "^5.0.1", - "gl-matrix": "^3.4.3", - "rbush": "^3.0.1", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-lite/node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "license": "MIT" - }, - "node_modules/@antv/g-math": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/@antv/g-math/-/g-math-3.0.1.tgz", - "integrity": "sha512-FvkDBNRpj+HsLINunrL2PW0OlG368MlpHuihbxleuajGim5kra8tgISwCLmAf8Yz2b1CgZ9PvpohqiLzHS7HLg==", - "license": "MIT", - "dependencies": { - "@antv/util": "^3.3.5", - "@babel/runtime": "^7.25.6", - "gl-matrix": "^3.4.3", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-plugin-canvas-path-generator": { - "version": "2.1.20", - "resolved": "https://registry.npmmirror.com/@antv/g-plugin-canvas-path-generator/-/g-plugin-canvas-path-generator-2.1.20.tgz", - "integrity": "sha512-11sBBD0O0d3RKaovKd2EBhixRv99Uk1r3tAEb85TxMkthMJctGkxfhCJWdgRUwMg3AGAKtZuZd2MHgr3IKFvyA==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.3.0", - "@antv/g-math": "3.0.1", - "@antv/util": "^3.3.5", - "@babel/runtime": "^7.25.6", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-plugin-canvas-picker": { - "version": "2.1.24", - "resolved": "https://registry.npmmirror.com/@antv/g-plugin-canvas-picker/-/g-plugin-canvas-picker-2.1.24.tgz", - "integrity": "sha512-RbzBTDG5+ZPzolj6vutm31Q1ThOd8Wobx4Q3j4+9o1unvGIhHqoQIMtbRK0M5aaOWDWXTfKSut5aA6v99ZdXMg==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.3.0", - "@antv/g-math": "3.0.1", - "@antv/g-plugin-canvas-path-generator": "2.1.20", - "@antv/g-plugin-canvas-renderer": "2.3.0", - "@antv/util": "^3.3.5", - "@babel/runtime": "^7.25.6", - "gl-matrix": "^3.4.3", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-plugin-canvas-renderer": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/@antv/g-plugin-canvas-renderer/-/g-plugin-canvas-renderer-2.3.0.tgz", - "integrity": "sha512-uWamPK6TJCtg7AW4X33N+F0uq5+kDDhEZF3iIphZEIVAVPXE+oTWR3s1Vcx11a03B4MSj3wuW8d+E8hxCtE/IA==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.3.0", - "@antv/g-math": "3.0.1", - "@antv/g-plugin-canvas-path-generator": "2.1.20", - "@antv/g-plugin-image-loader": "2.1.24", - "@antv/util": "^3.3.5", - "@babel/runtime": "^7.25.6", - "gl-matrix": "^3.4.3", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-plugin-dom-interaction": { - "version": "2.1.25", - "resolved": "https://registry.npmmirror.com/@antv/g-plugin-dom-interaction/-/g-plugin-dom-interaction-2.1.25.tgz", - "integrity": "sha512-Qqc5dbuteW6xcJ5juMLTpCAZ3tQjjZNWLrNZO1nNKBQIsNivA/sGQ+wSpZggreKP0WuobV5w0kALixskeA9qSg==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.3.0", - "@babel/runtime": "^7.25.6", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-plugin-dragndrop": { - "version": "2.0.36", - "resolved": "https://registry.npmmirror.com/@antv/g-plugin-dragndrop/-/g-plugin-dragndrop-2.0.36.tgz", - "integrity": "sha512-LGkvrT0tal5NEYnR2F+CKffsTEgi6dB8FaQ/HC5Pd0bN6ZKhbPisdXWZkliGDrmS9wL+Yr9K5qguFsLv9KDvHg==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.3.0", - "@antv/util": "^3.3.5", - "@babel/runtime": "^7.25.6", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-plugin-html-renderer": { - "version": "2.1.25", - "resolved": "https://registry.npmmirror.com/@antv/g-plugin-html-renderer/-/g-plugin-html-renderer-2.1.25.tgz", - "integrity": "sha512-kmS2vW+SltsQH6NhjbzXK0R+UPHjQRDno5LwL2dX8BG1SegTkckUAGo5QNK/Ajk25fdwd1KbvKZU6iq6bAzZkQ==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.3.0", - "@antv/util": "^3.3.5", - "@babel/runtime": "^7.25.6", - "gl-matrix": "^3.4.3", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-plugin-image-loader": { - "version": "2.1.24", - "resolved": "https://registry.npmmirror.com/@antv/g-plugin-image-loader/-/g-plugin-image-loader-2.1.24.tgz", - "integrity": "sha512-uSdsEp35Mrw718fuDyHIXzje3CiQcwWWwePM/FshQOL7IKvq7pClqTPmiaavHVvIf19tuBaBP0/byPO/+ZVOtA==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.3.0", - "@antv/util": "^3.3.5", - "@babel/runtime": "^7.25.6", - "gl-matrix": "^3.4.3", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g-web-animations-api": { - "version": "2.1.26", - "resolved": "https://registry.npmmirror.com/@antv/g-web-animations-api/-/g-web-animations-api-2.1.26.tgz", - "integrity": "sha512-8tSGpxDBudfLkalcupzOOlO7p+7cW2j3kYoBer288o56SyQC1PXHxZmbDGgCNMqZRsO9SDfQZYVExJ/hgNbJDg==", - "license": "MIT", - "dependencies": { - "@antv/g-lite": "2.3.0", - "@antv/util": "^3.3.5", - "@babel/runtime": "^7.25.6", - "tslib": "^2.5.3" - } - }, - "node_modules/@antv/g2": { - "version": "5.3.3", - "resolved": "https://registry.npmmirror.com/@antv/g2/-/g2-5.3.3.tgz", - "integrity": "sha512-K+Pf1ZRslGn2IHQzA+2NrukeaNqrpOZB76zytkmt5bhGOhZgSWSfc9ubxi0OAlrBY+Yc6DfYcLiHziuASYoG5w==", - "license": "MIT", - "dependencies": { - "@antv/component": "^2.1.2", - "@antv/coord": "^0.4.7", - "@antv/event-emitter": "^0.1.3", - "@antv/expr": "^1.0.2", - "@antv/g": "^6.1.23", - "@antv/g-canvas": "^2.0.42", - "@antv/g-plugin-dragndrop": "^2.0.34", - "@antv/scale": "^0.4.16", - "@antv/util": "^3.3.10", - "@antv/vendor": "^1.0.8", - "flru": "^1.0.2", - "pdfast": "^0.2.0" - } - }, - "node_modules/@antv/g2-extension-plot": { - "version": "0.2.2", - "resolved": "https://registry.npmmirror.com/@antv/g2-extension-plot/-/g2-extension-plot-0.2.2.tgz", - "integrity": "sha512-KJXCXO7as+h0hDqirGXf1omrNuYzQmY3VmBmp7lIvkepbQ7sz3pPwy895r1FWETGF3vTk5UeFcAF5yzzBHWgbw==", - "dependencies": { - "@antv/g2": "^5.1.8", - "@antv/util": "^3.3.5", - "@antv/vendor": "^1.0.10" - } - }, - "node_modules/@antv/scale": { - "version": "0.4.16", - "resolved": "https://registry.npmmirror.com/@antv/scale/-/scale-0.4.16.tgz", - "integrity": "sha512-5wg/zB5kXHxpTV5OYwJD3ja6R8yTiqIOkjOhmpEJiowkzRlbEC/BOyMvNUq5fqFIHnMCE9woO7+c3zxEQCKPjw==", - "license": "MIT", - "dependencies": { - "@antv/util": "^3.3.7", - "color-string": "^1.5.5", - "fecha": "^4.2.1" - } - }, - "node_modules/@antv/util": { - "version": "3.3.11", - "resolved": "https://registry.npmmirror.com/@antv/util/-/util-3.3.11.tgz", - "integrity": "sha512-FII08DFM4ABh2q5rPYdr0hMtKXRgeZazvXaFYCs7J7uTcWDHUhczab2qOCJLNDugoj8jFag1djb7wS9ehaRYBg==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "gl-matrix": "^3.3.0", - "tslib": "^2.3.1" - } - }, - "node_modules/@antv/vendor": { - "version": "1.0.11", - "resolved": "https://registry.npmmirror.com/@antv/vendor/-/vendor-1.0.11.tgz", - "integrity": "sha512-LmhPEQ+aapk3barntaiIxJ5VHno/Tyab2JnfdcPzp5xONh/8VSfed4bo/9xKo5HcUAEydko38vYLfj6lJliLiw==", - "license": "MIT AND ISC", - "dependencies": { - "@types/d3-array": "^3.2.1", - "@types/d3-color": "^3.1.3", - "@types/d3-dispatch": "^3.0.6", - "@types/d3-dsv": "^3.0.7", - "@types/d3-ease": "^3.0.2", - "@types/d3-fetch": "^3.0.7", - "@types/d3-force": "^3.0.10", - "@types/d3-format": "^3.0.4", - "@types/d3-geo": "^3.1.0", - "@types/d3-hierarchy": "^3.1.7", - "@types/d3-interpolate": "^3.0.4", - "@types/d3-path": "^3.1.0", - "@types/d3-quadtree": "^3.0.6", - "@types/d3-random": "^3.0.3", - "@types/d3-scale": "^4.0.9", - "@types/d3-scale-chromatic": "^3.1.0", - "@types/d3-shape": "^3.1.7", - "@types/d3-time": "^3.0.4", - "@types/d3-timer": "^3.0.2", - "d3-array": "^3.2.4", - "d3-color": "^3.1.0", - "d3-dispatch": "^3.0.1", - "d3-dsv": "^3.0.1", - "d3-ease": "^3.0.1", - "d3-fetch": "^3.0.1", - "d3-force": "^3.0.0", - "d3-force-3d": "^3.0.5", - "d3-format": "^3.1.0", - "d3-geo": "^3.1.1", - "d3-geo-projection": "^4.0.0", - "d3-hierarchy": "^3.1.2", - "d3-interpolate": "^3.0.1", - "d3-path": "^3.1.0", - "d3-quadtree": "^3.0.1", - "d3-random": "^3.0.1", - "d3-regression": "^1.3.10", - "d3-scale": "^4.0.2", - "d3-scale-chromatic": "^3.1.0", - "d3-shape": "^3.2.0", - "d3-time": "^3.1.0", - "d3-timer": "^3.0.1" + "@babel/runtime": "^7.10.4", + "classnames": "^2.2.5", + "json2mq": "^0.2.0", + "resize-observer-polyfill": "^1.5.1", + "throttle-debounce": "^5.0.0" + }, + "peerDependencies": { + "react": ">=16.9.0" } }, "node_modules/@babel/code-frame": { "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.27.1.tgz", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", @@ -503,8 +171,9 @@ }, "node_modules/@babel/compat-data": { "version": "7.28.0", - "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.28.0.tgz", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -512,8 +181,9 @@ }, "node_modules/@babel/core": { "version": "7.28.0", - "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.28.0.tgz", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz", "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", + "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", @@ -540,55 +210,11 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/eslint-parser": { - "version": "7.28.0", - "resolved": "https://registry.npmmirror.com/@babel/eslint-parser/-/eslint-parser-7.28.0.tgz", - "integrity": "sha512-N4ntErOlKvcbTt01rr5wj3y55xnIdx1ymrfIr8C2WnM1Y9glFgWaGDEULJIazOX3XM9NRzhfJ6zZnQ1sBNWU+w==", - "license": "MIT", - "dependencies": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.11.0", - "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" - } - }, - "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "license": "Apache-2.0", - "engines": { - "node": ">=10" - } - }, - "node_modules/@babel/eslint-parser/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/generator": { "version": "7.28.0", - "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.28.0.tgz", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz", "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==", + "dev": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.28.0", @@ -601,22 +227,11 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.27.3", - "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", - "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.27.3" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-compilation-targets": { "version": "7.27.2", - "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, "license": "MIT", "dependencies": { "@babel/compat-data": "^7.27.2", @@ -629,113 +244,21 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", - "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-member-expression-to-functions": "^7.27.1", - "@babel/helper-optimise-call-expression": "^7.27.1", - "@babel/helper-replace-supers": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/traverse": "^7.27.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", - "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "regexpu-core": "^6.2.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.5", - "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", - "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "debug": "^4.4.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.22.10" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, "node_modules/@babel/helper-globals": { "version": "7.28.0", - "resolved": "https://registry.npmmirror.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", - "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-module-imports": { "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, "license": "MIT", "dependencies": { "@babel/traverse": "^7.27.1", @@ -747,8 +270,9 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.27.3", - "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.27.1", @@ -762,78 +286,21 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", - "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-plugin-utils": { "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", - "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-wrap-function": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", - "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", - "license": "MIT", - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.27.1", - "@babel/helper-optimise-call-expression": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", - "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-string-parser": { "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -841,8 +308,9 @@ }, "node_modules/@babel/helper-validator-identifier": { "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -850,31 +318,19 @@ }, "node_modules/@babel/helper-validator-option": { "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz", - "integrity": "sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.27.1", - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helpers": { "version": "7.27.6", - "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.27.6.tgz", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", + "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^7.27.2", @@ -886,8 +342,9 @@ }, "node_modules/@babel/parser": { "version": "7.28.0", - "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.28.0.tgz", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", + "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.28.0" @@ -899,255 +356,11 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "node_modules/@babel/plugin-transform-react-jsx-self": { "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz", - "integrity": "sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", - "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", - "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", - "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/plugin-transform-optional-chaining": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz", - "integrity": "sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.28.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.28.0.tgz", - "integrity": "sha512-zOiZqvANjWDUaUS9xMxbMcK/Zccztbe/6ikvUXaG9nsPH3w6qh5UaPGAnirI/WhIbZ8m3OHU0ReyPrknG+ZKeg==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-syntax-decorators": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.27.1.tgz", - "integrity": "sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A==", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -1159,10 +372,11 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-flow": { + "node_modules/@babel/plugin-transform-react-jsx-source": { "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.27.1.tgz", - "integrity": "sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -1174,1306 +388,9 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", - "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", - "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", - "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", - "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", - "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.28.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", - "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-remap-async-to-generator": "^7.27.1", - "@babel/traverse": "^7.28.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", - "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-remap-async-to-generator": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", - "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.28.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.0.tgz", - "integrity": "sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", - "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz", - "integrity": "sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.28.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.0.tgz", - "integrity": "sha512-IjM1IoJNw72AZFlj33Cu8X0q2XK/6AaVC3jQu+cgQ5lThWD5ajnuUAml80dqRmOhmPkTH8uAwnpMu9Rvj0LTRA==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-globals": "^7.28.0", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-replace-supers": "^7.27.1", - "@babel/traverse": "^7.28.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", - "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/template": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.28.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.0.tgz", - "integrity": "sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.28.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", - "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", - "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", - "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", - "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-explicit-resource-management": { - "version": "7.28.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz", - "integrity": "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.28.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", - "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", - "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.27.1.tgz", - "integrity": "sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-syntax-flow": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", - "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", - "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", - "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", - "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", - "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", - "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", - "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", - "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz", - "integrity": "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", - "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", - "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", - "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", - "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", - "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.28.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.0.tgz", - "integrity": "sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.28.0", - "@babel/plugin-transform-parameters": "^7.27.7", - "@babel/traverse": "^7.28.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", - "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-replace-supers": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", - "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", - "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.27.7", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", - "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", - "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", - "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", - "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.27.1.tgz", - "integrity": "sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.28.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", - "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", - "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-syntax-jsx": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", - "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", - "license": "MIT", - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", - "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.28.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.0.tgz", - "integrity": "sha512-LOAozRVbqxEVjSKfhGnuLoE4Kz4Oc5UJzuvFUhSsQzdCdaAQu06mG8zDv2GFSerM62nImUZ7K92vxnQcLSDlCQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regexp-modifiers": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", - "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", - "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.28.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.0.tgz", - "integrity": "sha512-dGopk9nZrtCs2+nfIem25UuHyt5moSJamArzIoh9/vezUQPmYDOzjaHDCkAzuGJibCIkPup8rMT2+wYB6S73cA==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "babel-plugin-polyfill-corejs2": "^0.4.14", - "babel-plugin-polyfill-corejs3": "^0.13.0", - "babel-plugin-polyfill-regenerator": "^0.6.5", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", - "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", - "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", - "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", - "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", - "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.28.0", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.0.tgz", - "integrity": "sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/plugin-syntax-typescript": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", - "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", - "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", - "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", - "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.28.0", - "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.28.0.tgz", - "integrity": "sha512-VmaxeGOwuDqzLl5JUkIRM1X2Qu2uKGxHEQWh+cvvbl7JuJRgKGJSfsEF/bUaxFhJl/XAyxBe7q7qSuTbKFuCyg==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.28.0", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.27.1", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.27.1", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.27.1", - "@babel/plugin-syntax-import-attributes": "^7.27.1", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.27.1", - "@babel/plugin-transform-async-generator-functions": "^7.28.0", - "@babel/plugin-transform-async-to-generator": "^7.27.1", - "@babel/plugin-transform-block-scoped-functions": "^7.27.1", - "@babel/plugin-transform-block-scoping": "^7.28.0", - "@babel/plugin-transform-class-properties": "^7.27.1", - "@babel/plugin-transform-class-static-block": "^7.27.1", - "@babel/plugin-transform-classes": "^7.28.0", - "@babel/plugin-transform-computed-properties": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.28.0", - "@babel/plugin-transform-dotall-regex": "^7.27.1", - "@babel/plugin-transform-duplicate-keys": "^7.27.1", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", - "@babel/plugin-transform-dynamic-import": "^7.27.1", - "@babel/plugin-transform-explicit-resource-management": "^7.28.0", - "@babel/plugin-transform-exponentiation-operator": "^7.27.1", - "@babel/plugin-transform-export-namespace-from": "^7.27.1", - "@babel/plugin-transform-for-of": "^7.27.1", - "@babel/plugin-transform-function-name": "^7.27.1", - "@babel/plugin-transform-json-strings": "^7.27.1", - "@babel/plugin-transform-literals": "^7.27.1", - "@babel/plugin-transform-logical-assignment-operators": "^7.27.1", - "@babel/plugin-transform-member-expression-literals": "^7.27.1", - "@babel/plugin-transform-modules-amd": "^7.27.1", - "@babel/plugin-transform-modules-commonjs": "^7.27.1", - "@babel/plugin-transform-modules-systemjs": "^7.27.1", - "@babel/plugin-transform-modules-umd": "^7.27.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", - "@babel/plugin-transform-new-target": "^7.27.1", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", - "@babel/plugin-transform-numeric-separator": "^7.27.1", - "@babel/plugin-transform-object-rest-spread": "^7.28.0", - "@babel/plugin-transform-object-super": "^7.27.1", - "@babel/plugin-transform-optional-catch-binding": "^7.27.1", - "@babel/plugin-transform-optional-chaining": "^7.27.1", - "@babel/plugin-transform-parameters": "^7.27.7", - "@babel/plugin-transform-private-methods": "^7.27.1", - "@babel/plugin-transform-private-property-in-object": "^7.27.1", - "@babel/plugin-transform-property-literals": "^7.27.1", - "@babel/plugin-transform-regenerator": "^7.28.0", - "@babel/plugin-transform-regexp-modifiers": "^7.27.1", - "@babel/plugin-transform-reserved-words": "^7.27.1", - "@babel/plugin-transform-shorthand-properties": "^7.27.1", - "@babel/plugin-transform-spread": "^7.27.1", - "@babel/plugin-transform-sticky-regex": "^7.27.1", - "@babel/plugin-transform-template-literals": "^7.27.1", - "@babel/plugin-transform-typeof-symbol": "^7.27.1", - "@babel/plugin-transform-unicode-escapes": "^7.27.1", - "@babel/plugin-transform-unicode-property-regex": "^7.27.1", - "@babel/plugin-transform-unicode-regex": "^7.27.1", - "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.14", - "babel-plugin-polyfill-corejs3": "^0.13.0", - "babel-plugin-polyfill-regenerator": "^0.6.5", - "core-js-compat": "^3.43.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/preset-react/-/preset-react-7.27.1.tgz", - "integrity": "sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-transform-react-display-name": "^7.27.1", - "@babel/plugin-transform-react-jsx": "^7.27.1", - "@babel/plugin-transform-react-jsx-development": "^7.27.1", - "@babel/plugin-transform-react-pure-annotations": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.27.1", - "resolved": "https://registry.npmmirror.com/@babel/preset-typescript/-/preset-typescript-7.27.1.tgz", - "integrity": "sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-syntax-jsx": "^7.27.1", - "@babel/plugin-transform-modules-commonjs": "^7.27.1", - "@babel/plugin-transform-typescript": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/runtime": { "version": "7.27.6", - "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.27.6.tgz", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz", "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", "license": "MIT", "engines": { @@ -2482,8 +399,9 @@ }, "node_modules/@babel/template": { "version": "7.27.2", - "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.27.2.tgz", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", @@ -2496,8 +414,9 @@ }, "node_modules/@babel/traverse": { "version": "7.28.0", - "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.28.0.tgz", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz", "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==", + "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", @@ -2513,9 +432,10 @@ } }, "node_modules/@babel/types": { - "version": "7.28.0", - "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.28.0.tgz", - "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "version": "7.28.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz", + "integrity": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", @@ -2525,357 +445,59 @@ "node": ">=6.9.0" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmmirror.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "node_modules/@capacitor/android": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-7.4.2.tgz", + "integrity": "sha512-FZ7M9NwFkljR7EP5eXiE32mAIfZNcYw2CzRMCG3rQu0u0ZaIoeOeq5/oK4YcDnGpNmu8jpngKJqZ+9OiSQSwDg==", + "license": "MIT", + "peerDependencies": { + "@capacitor/core": "^7.4.0" + } + }, + "node_modules/@capacitor/core": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-7.4.2.tgz", + "integrity": "sha512-akCf9A1FUR8AWTtmgGjHEq6LmGsjA2U7igaJ9PxiCBfyxKqlDbuGHrlNdpvHEjV5tUPH3KYtkze6gtFcNKPU9A==", + "license": "MIT", + "peer": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", "license": "MIT" }, - "node_modules/@craco/craco": { - "version": "7.1.0", - "resolved": "https://registry.npmmirror.com/@craco/craco/-/craco-7.1.0.tgz", - "integrity": "sha512-oRAcPIKYrfPXp9rSzlsDNeOaVtDiKhoyqSXUoqiK24jCkHr4T8m/a2f74yXIzCbIheoUWDOIfWZyRgFgT+cpqA==", + "node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", + "license": "MIT" + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.6.tgz", + "integrity": "sha512-NgJPHHbEpLQgDH2MjQu90pzW/5vvXIZ7KOnPyNBm92A6WgZ/7b6fJyUBjoumLqeOQQGqY2QjQxRo97ah4Sj0cA==", + "cpu": [ + "x64" + ], "dev": true, - "license": "Apache-2.0", - "dependencies": { - "autoprefixer": "^10.4.12", - "cosmiconfig": "^7.0.1", - "cosmiconfig-typescript-loader": "^1.0.0", - "cross-spawn": "^7.0.3", - "lodash": "^4.17.21", - "semver": "^7.3.7", - "webpack-merge": "^5.8.0" - }, - "bin": { - "craco": "dist/bin/craco.js" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "react-scripts": "^5.0.0" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmmirror.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "devOptional": true, "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=12" + "node": ">=18" } }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@csstools/normalize.css": { - "version": "12.1.1", - "resolved": "https://registry.npmmirror.com/@csstools/normalize.css/-/normalize.css-12.1.1.tgz", - "integrity": "sha512-YAYeJ+Xqh7fUou1d1j9XHl44BmsuThiTr4iNrgCQ3J27IbhXsxXDGZ1cXv8Qvs99d4rBbLiSKy3+WZiet32PcQ==", - "license": "CC0-1.0" - }, - "node_modules/@csstools/postcss-cascade-layers": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", - "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/selector-specificity": "^2.0.2", - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-color-function": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", - "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-font-format-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", - "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-hwb-function": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", - "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-ic-unit": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", - "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-is-pseudo-class": { - "version": "2.0.7", - "resolved": "https://registry.npmmirror.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", - "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/selector-specificity": "^2.0.0", - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-nested-calc": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", - "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-normalize-display-values": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", - "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-oklab-function": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", - "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", - "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/@csstools/postcss-stepped-value-functions": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", - "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-text-decoration-shorthand": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", - "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-trigonometric-functions": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", - "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/postcss-unset-value": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", - "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", - "license": "CC0-1.0", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/@csstools/selector-specificity": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", - "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", - "license": "CC0-1.0", - "engines": { - "node": "^14 || ^16 || >=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss-selector-parser": "^6.0.10" - } - }, - "node_modules/@date-fns/tz": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/@date-fns/tz/-/tz-1.2.0.tgz", - "integrity": "sha512-LBrd7MiJZ9McsOgxqWX7AaxrDjcFVjWH/tIKJd7pnR7McaslGYOP1QmmiBXdJH/H/yLCT+rcQ7FaPBUxRGUtrg==", - "license": "MIT" - }, "node_modules/@eslint-community/eslint-utils": { "version": "4.7.0", - "resolved": "https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", + "dev": true, "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.4.3" @@ -2892,8 +514,9 @@ }, "node_modules/@eslint-community/regexpp": { "version": "4.12.1", - "resolved": "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "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" @@ -2901,8 +524,9 @@ }, "node_modules/@eslint/eslintrc": { "version": "2.1.4", - "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, "license": "MIT", "dependencies": { "ajv": "^6.12.4", @@ -2922,28 +546,11 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/@eslint/js": { "version": "8.57.1", - "resolved": "https://registry.npmmirror.com/@eslint/js/-/js-8.57.1.tgz", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2951,7 +558,7 @@ }, "node_modules/@floating-ui/core": { "version": "1.7.2", - "resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-1.7.2.tgz", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.2.tgz", "integrity": "sha512-wNB5ooIKHQc+Kui96jE/n69rHFWAVoxn5CAzL1Xdd8FG03cgY3MLO+GF9U3W737fYDSgPWA6MReKhBQBop6Pcw==", "license": "MIT", "dependencies": { @@ -2960,7 +567,7 @@ }, "node_modules/@floating-ui/dom": { "version": "1.7.2", - "resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.7.2.tgz", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.2.tgz", "integrity": "sha512-7cfaOQuCS27HD7DX+6ib2OrnW+b4ZBwDNnCcT0uTyidcmyWb03FnQqJybDBoCnpdxwBSfA94UAYlRCt7mV+TbA==", "license": "MIT", "dependencies": { @@ -2968,39 +575,17 @@ "@floating-ui/utils": "^0.2.10" } }, - "node_modules/@floating-ui/react-dom": { - "version": "2.1.4", - "resolved": "https://registry.npmmirror.com/@floating-ui/react-dom/-/react-dom-2.1.4.tgz", - "integrity": "sha512-JbbpPhp38UmXDDAu60RJmbeme37Jbgsm7NrHGgzYYFKmblzRUh6Pa641dII6LsjwF4XlScDrde2UAzDo/b9KPw==", - "license": "MIT", - "dependencies": { - "@floating-ui/dom": "^1.7.2" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, "node_modules/@floating-ui/utils": { "version": "0.2.10", - "resolved": "https://registry.npmmirror.com/@floating-ui/utils/-/utils-0.2.10.tgz", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", "license": "MIT" }, - "node_modules/@hookform/resolvers": { - "version": "3.10.0", - "resolved": "https://registry.npmmirror.com/@hookform/resolvers/-/resolvers-3.10.0.tgz", - "integrity": "sha512-79Dv+3mDF7i+2ajj7SkypSKHhl1cbln1OGavqrsF7p6mbUv11xpqpacPsGDCTRvCSjEEIez2ef1NveSVL3b0Ag==", - "license": "MIT", - "peerDependencies": { - "react-hook-form": "^7.0.0" - } - }, "node_modules/@humanwhocodes/config-array": { "version": "0.13.0", - "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", + "dev": true, "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^2.0.3", @@ -3013,8 +598,9 @@ }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "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" @@ -3026,424 +612,16 @@ }, "node_modules/@humanwhocodes/object-schema": { "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", + "dev": true, "license": "BSD-3-Clause" }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmmirror.com/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "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/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "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/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "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/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmmirror.com/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", - "license": "MIT", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", - "license": "MIT", - "dependencies": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", - "license": "MIT", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/schemas": { - "version": "28.1.3", - "resolved": "https://registry.npmmirror.com/@jest/schemas/-/schemas-28.1.3.tgz", - "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.24.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/source-map/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", - "license": "MIT", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", - "license": "MIT", - "dependencies": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "license": "MIT" - }, - "node_modules/@jest/transform/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.12", - "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", @@ -3452,86 +630,37 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "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/source-map": { - "version": "0.3.10", - "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.10.tgz", - "integrity": "sha512-0pPkgz9dY+bijgistcTTJ5mR+ocqRXLuhXHYdzoMmmoJ2C9S46RCm2GMUbatPEUK9Yjy26IrAy8D/M00lLkv+Q==", - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.4", - "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==", + "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.29", - "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@kurkle/color": { - "version": "0.3.4", - "resolved": "https://registry.npmmirror.com/@kurkle/color/-/color-0.3.4.tgz", - "integrity": "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==", - "license": "MIT" - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", - "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", - "license": "MIT" - }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "resolved": "https://registry.npmmirror.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", - "license": "MIT", - "dependencies": { - "eslint-scope": "5.1.1" - } - }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "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", @@ -3543,8 +672,9 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "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" @@ -3552,8 +682,9 @@ }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "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", @@ -3563,2060 +694,334 @@ "node": ">= 8" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmmirror.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "node_modules/@parcel/watcher": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", + "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "dev": true, + "hasInstallScript": true, "license": "MIT", "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.17", - "resolved": "https://registry.npmmirror.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.17.tgz", - "integrity": "sha512-tXDyE1/jzFsHXjhRZQ3hMl0IVhYe5qula43LDWIhVfjp9G/nT5OQY5AORVOrkEGAUltBJOfOWeETbmhm6kHhuQ==", - "license": "MIT", "dependencies": { - "ansi-html": "^0.0.9", - "core-js-pure": "^3.23.3", - "error-stack-parser": "^2.0.6", - "html-entities": "^2.1.0", - "loader-utils": "^2.0.4", - "schema-utils": "^4.2.0", - "source-map": "^0.7.3" + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" }, "engines": { - "node": ">= 10.13" + "node": ">= 10.0.0" }, - "peerDependencies": { - "@types/webpack": "4.x || 5.x", - "react-refresh": ">=0.10.0 <1.0.0", - "sockjs-client": "^1.4.0", - "type-fest": ">=0.17.0 <5.0.0", - "webpack": ">=4.43.0 <6.0.0", - "webpack-dev-server": "3.x || 4.x || 5.x", - "webpack-hot-middleware": "2.x", - "webpack-plugin-serve": "0.x || 1.x" - }, - "peerDependenciesMeta": { - "@types/webpack": { - "optional": true - }, - "sockjs-client": { - "optional": true - }, - "type-fest": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - }, - "webpack-hot-middleware": { - "optional": true - }, - "webpack-plugin-serve": { - "optional": true - } - } - }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "license": "MIT", "funding": { "type": "opencollective", - "url": "https://opencollective.com/popperjs" + "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/@radix-ui/number": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/@radix-ui/number/-/number-1.1.1.tgz", - "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==", - "license": "MIT" - }, - "node_modules/@radix-ui/primitive": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/@radix-ui/primitive/-/primitive-1.1.2.tgz", - "integrity": "sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==", - "license": "MIT" - }, - "node_modules/@radix-ui/react-accordion": { - "version": "1.2.11", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-accordion/-/react-accordion-1.2.11.tgz", - "integrity": "sha512-l3W5D54emV2ues7jjeG1xcyN7S3jnK3zE2zHqgn0CmMsy9lNJwmgcrmaxS+7ipw15FAivzKNzH3d5EcGoFKw0A==", + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-collapsible": "1.1.11", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-controllable-state": "1.2.2" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.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-alert-dialog": { - "version": "1.1.14", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.14.tgz", - "integrity": "sha512-IOZfZ3nPvN6lXpJTBCunFQPRSvK8MDgSc1FB85xnIpUKOw9en0dJj8JmCAxV7BiZdtYlUpmrQjoTFkVYtdoWzQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dialog": "1.1.14", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3" - }, - "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.7", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz", - "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-primitive": "2.1.3" - }, - "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-aspect-ratio": { - "version": "1.1.7", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.1.7.tgz", - "integrity": "sha512-Yq6lvO9HQyPwev1onK1daHCHqXVLzPhSVjmsNjCa2Zcxy2f7uJD2itDtxknv6FzAKCwD1qQkeVDmX/cev13n/g==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-primitive": "2.1.3" - }, - "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.10", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-avatar/-/react-avatar-1.1.10.tgz", - "integrity": "sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-is-hydrated": "0.1.0", - "@radix-ui/react-use-layout-effect": "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-checkbox": { - "version": "1.3.2", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-checkbox/-/react-checkbox-1.3.2.tgz", - "integrity": "sha512-yd+dI56KZqawxKZrJ31eENUwqc1QSqg4OZ15rybGjF2ZNwMO+wCyHzAVLRp9qoYJf7kYy0YpZ2b0JCzJ42HZpA==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-previous": "1.1.1", - "@radix-ui/react-use-size": "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-collapsible": { - "version": "1.1.11", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-collapsible/-/react-collapsible-1.1.11.tgz", - "integrity": "sha512-2qrRsVGSCYasSz1RFOorXwl0H7g7J1frQtgpQgYrt+MOidtPAINHn9CPovQXb83r8ahapdx3Tu0fa/pdFFSdPg==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-layout-effect": "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-collection": { - "version": "1.1.7", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", - "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3" - }, - "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.2", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", - "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.2", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-context/-/react-context-1.1.2.tgz", - "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", - "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-menu": { - "version": "2.2.15", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-context-menu/-/react-context-menu-2.2.15.tgz", - "integrity": "sha512-UsQUMjcYTsBjTSXw0P3GO0werEQvUY2plgRQuKoCTtkNr45q1DiL51j4m7gxhABzZ0BadoXNsIbg7F3KwiUBbw==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-menu": "2.1.15", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-controllable-state": "1.2.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-dialog": { - "version": "1.1.14", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-dialog/-/react-dialog-1.1.14.tgz", - "integrity": "sha512-+CpweKjqpzTmwRwcYECQcNYbI8V9VSQt0SNFKeEBLgfucbsLssU6Ppq7wUdNXEGb573bMjFhVjKVll8rmV6zMw==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.10", - "@radix-ui/react-focus-guards": "1.1.2", - "@radix-ui/react-focus-scope": "1.1.7", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.6.3" - }, - "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.1", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", - "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", - "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.10", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.10.tgz", - "integrity": "sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-escape-keydown": "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-dropdown-menu": { - "version": "2.1.15", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.15.tgz", - "integrity": "sha512-mIBnOjgwo9AH3FyKaSWoSu/dYj6VdhJ7frEPiGTeXCdUFHjl9h3mFh2wwhEtINOmYXWhdpf1rY2minFsmaNgVQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-menu": "2.1.15", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-controllable-state": "1.2.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-focus-guards": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.2.tgz", - "integrity": "sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==", - "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.7", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", - "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "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-hover-card": { - "version": "1.1.14", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-hover-card/-/react-hover-card-1.1.14.tgz", - "integrity": "sha512-CPYZ24Mhirm+g6D8jArmLzjYu4Eyg3TTUHswR26QgzXBHBe64BO/RHOJKzmF/Dxb4y4f9PKyJdwm/O/AhNkb+Q==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.10", - "@radix-ui/react-popper": "1.2.7", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-controllable-state": "1.2.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-icons": { - "version": "1.3.2", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-icons/-/react-icons-1.3.2.tgz", - "integrity": "sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==", - "license": "MIT", - "peerDependencies": { - "react": "^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc" - } - }, - "node_modules/@radix-ui/react-id": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-id/-/react-id-1.1.1.tgz", - "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "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-label": { - "version": "2.1.7", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-label/-/react-label-2.1.7.tgz", - "integrity": "sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-primitive": "2.1.3" - }, - "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.15", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-menu/-/react-menu-2.1.15.tgz", - "integrity": "sha512-tVlmA3Vb9n8SZSd+YSbuFR66l87Wiy4du+YE+0hzKQEANA+7cWKH1WgqcEX4pXqxUFQKrWQGHdvEfw00TjFiew==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.10", - "@radix-ui/react-focus-guards": "1.1.2", - "@radix-ui/react-focus-scope": "1.1.7", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-popper": "1.2.7", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-roving-focus": "1.1.10", - "@radix-ui/react-slot": "1.2.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.6.3" - }, - "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-menubar": { - "version": "1.1.15", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-menubar/-/react-menubar-1.1.15.tgz", - "integrity": "sha512-Z71C7LGD+YDYo3TV81paUs8f3Zbmkvg6VLRQpKYfzioOE6n7fOhA3ApK/V/2Odolxjoc4ENk8AYCjohCNayd5A==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-menu": "2.1.15", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-roving-focus": "1.1.10", - "@radix-ui/react-use-controllable-state": "1.2.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-navigation-menu": { - "version": "1.2.13", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.13.tgz", - "integrity": "sha512-WG8wWfDiJlSF5hELjwfjSGOXcBR/ZMhBFCGYe8vERpC39CQYZeq1PQ2kaYHdye3V95d06H89KGMsVCIE4LWo3g==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.10", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-layout-effect": "1.1.1", - "@radix-ui/react-use-previous": "1.1.1", - "@radix-ui/react-visually-hidden": "1.2.3" - }, - "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-popover": { - "version": "1.1.14", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-popover/-/react-popover-1.1.14.tgz", - "integrity": "sha512-ODz16+1iIbGUfFEfKx2HTPKizg2MN39uIOV8MXeHnmdd3i/N9Wt7vU46wbHsqA0xoaQyXVcs0KIlBdOA2Y95bw==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.10", - "@radix-ui/react-focus-guards": "1.1.2", - "@radix-ui/react-focus-scope": "1.1.7", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-popper": "1.2.7", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.6.3" - }, - "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.7", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-popper/-/react-popper-1.2.7.tgz", - "integrity": "sha512-IUFAccz1JyKcf/RjB552PlWwxjeCJB8/4KxT7EhBHOJM+mN7LdW+B3kacJXILm32xawcMMjb2i0cIZpo+f9kiQ==", - "license": "MIT", - "dependencies": { - "@floating-ui/react-dom": "^2.0.0", - "@radix-ui/react-arrow": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-layout-effect": "1.1.1", - "@radix-ui/react-use-rect": "1.1.1", - "@radix-ui/react-use-size": "1.1.1", - "@radix-ui/rect": "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-portal": { - "version": "1.1.9", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", - "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-layout-effect": "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-presence": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-presence/-/react-presence-1.1.4.tgz", - "integrity": "sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-use-layout-effect": "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-primitive": { - "version": "2.1.3", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", - "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-slot": "1.2.3" - }, - "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-progress": { - "version": "1.1.7", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-progress/-/react-progress-1.1.7.tgz", - "integrity": "sha512-vPdg/tF6YC/ynuBIJlk1mm7Le0VgW6ub6J2UWnTQ7/D23KXcPI1qy+0vBkgKgd38RCMJavBXpB83HPNFMTb0Fg==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.3" - }, - "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-radio-group": { - "version": "1.3.7", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-radio-group/-/react-radio-group-1.3.7.tgz", - "integrity": "sha512-9w5XhD0KPOrm92OTTE0SysH3sYzHsSTHNvZgUBo/VZ80VdYyB5RneDbc0dKpURS24IxkoFRu/hI0i4XyfFwY6g==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-roving-focus": "1.1.10", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-previous": "1.1.1", - "@radix-ui/react-use-size": "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.10", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.10.tgz", - "integrity": "sha512-dT9aOXUen9JSsxnMPv/0VqySQf5eDQ6LCk5Sw28kamz8wSOW2bJdlX2Bg5VUIIcV+6XlHpWTIuTPCf/UNIyq8Q==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-controllable-state": "1.2.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-scroll-area": { - "version": "1.2.9", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.9.tgz", - "integrity": "sha512-YSjEfBXnhUELsO2VzjdtYYD4CfQjvao+lhhrX5XsHD7/cyUNzljF1FHEbgTPN7LH2MClfwRMIsYlqTYpKTTe2A==", - "license": "MIT", - "dependencies": { - "@radix-ui/number": "1.1.1", - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-layout-effect": "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-select": { - "version": "2.2.5", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-select/-/react-select-2.2.5.tgz", - "integrity": "sha512-HnMTdXEVuuyzx63ME0ut4+sEMYW6oouHWNGUZc7ddvUWIcfCva/AMoqEW/3wnEllriMWBa0RHspCYnfCWJQYmA==", - "license": "MIT", - "dependencies": { - "@radix-ui/number": "1.1.1", - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.10", - "@radix-ui/react-focus-guards": "1.1.2", - "@radix-ui/react-focus-scope": "1.1.7", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-popper": "1.2.7", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-layout-effect": "1.1.1", - "@radix-ui/react-use-previous": "1.1.1", - "@radix-ui/react-visually-hidden": "1.2.3", - "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.6.3" - }, - "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-separator": { - "version": "1.1.7", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-separator/-/react-separator-1.1.7.tgz", - "integrity": "sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-primitive": "2.1.3" - }, - "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-slider": { - "version": "1.3.5", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-slider/-/react-slider-1.3.5.tgz", - "integrity": "sha512-rkfe2pU2NBAYfGaxa3Mqosi7VZEWX5CxKaanRv0vZd4Zhl9fvQrg0VM93dv3xGLGfrHuoTRF3JXH8nb9g+B3fw==", - "license": "MIT", - "dependencies": { - "@radix-ui/number": "1.1.1", - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-layout-effect": "1.1.1", - "@radix-ui/react-use-previous": "1.1.1", - "@radix-ui/react-use-size": "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-slot": { - "version": "1.2.3", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", - "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" - }, - "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-switch": { - "version": "1.2.5", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-switch/-/react-switch-1.2.5.tgz", - "integrity": "sha512-5ijLkak6ZMylXsaImpZ8u4Rlf5grRmoc0p0QeX9VJtlrM4f5m3nCTX8tWga/zOA8PZYIR/t0p2Mnvd7InrJ6yQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-previous": "1.1.1", - "@radix-ui/react-use-size": "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-tabs": { - "version": "1.1.12", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-tabs/-/react-tabs-1.1.12.tgz", - "integrity": "sha512-GTVAlRVrQrSw3cEARM0nAx73ixrWDPNZAruETn3oHCNP6SbZ/hNxdxp+u7VkIEv3/sFoLq1PfcHrl7Pnp0CDpw==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-roving-focus": "1.1.10", - "@radix-ui/react-use-controllable-state": "1.2.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-toast": { - "version": "1.2.14", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-toast/-/react-toast-1.2.14.tgz", - "integrity": "sha512-nAP5FBxBJGQ/YfUB+r+O6USFVkWq3gAInkxyEnmvEV5jtSbfDhfa4hwX8CraCnbjMLsE7XSf/K75l9xXY7joWg==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.10", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-layout-effect": "1.1.1", - "@radix-ui/react-visually-hidden": "1.2.3" - }, - "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-toggle": { - "version": "1.1.9", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-toggle/-/react-toggle-1.1.9.tgz", - "integrity": "sha512-ZoFkBBz9zv9GWer7wIjvdRxmh2wyc2oKWw6C6CseWd6/yq1DK/l5lJ+wnsmFwJZbBYqr02mrf8A2q/CVCuM3ZA==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-controllable-state": "1.2.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-toggle-group": { - "version": "1.1.10", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.10.tgz", - "integrity": "sha512-kiU694Km3WFLTC75DdqgM/3Jauf3rD9wxeS9XtyWFKsBUeZA337lC+6uUazT7I1DhanZ5gyD5Stf8uf2dbQxOQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-roving-focus": "1.1.10", - "@radix-ui/react-toggle": "1.1.9", - "@radix-ui/react-use-controllable-state": "1.2.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-tooltip": { - "version": "1.2.7", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-tooltip/-/react-tooltip-1.2.7.tgz", - "integrity": "sha512-Ap+fNYwKTYJ9pzqW+Xe2HtMRbQ/EeWkj2qykZ6SuEV4iS/o1bZI5ssJbk4D2r8XuDuOBVz/tIx2JObtuqU+5Zw==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.10", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-popper": "1.2.7", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-visually-hidden": "1.2.3" - }, - "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.1", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", - "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", - "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.2.2", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", - "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-effect-event": "0.0.2", - "@radix-ui/react-use-layout-effect": "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-effect-event": { - "version": "0.0.2", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", - "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "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-escape-keydown": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", - "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-callback-ref": "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-is-hydrated": { - "version": "0.1.0", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.0.tgz", - "integrity": "sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==", - "license": "MIT", - "dependencies": { - "use-sync-external-store": "^1.5.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.1", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", - "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", - "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-previous": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz", - "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==", - "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.1", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz", - "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==", - "license": "MIT", - "dependencies": { - "@radix-ui/rect": "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-size": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz", - "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "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-visually-hidden": { - "version": "1.2.3", - "resolved": "https://registry.npmmirror.com/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz", - "integrity": "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-primitive": "2.1.3" - }, - "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/rect": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/@radix-ui/rect/-/rect-1.1.1.tgz", - "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==", - "license": "MIT" - }, - "node_modules/@reduxjs/toolkit": { - "version": "2.8.2", - "resolved": "https://registry.npmmirror.com/@reduxjs/toolkit/-/toolkit-2.8.2.tgz", - "integrity": "sha512-MYlOhQ0sLdw4ud48FoC5w0dH9VfWQjtCjreKwYTT3l+r427qYC5Y8PihNutepr8XrNaBUDQo9khWUwQxZaqt5A==", - "license": "MIT", - "dependencies": { - "@standard-schema/spec": "^1.0.0", - "@standard-schema/utils": "^0.3.0", - "immer": "^10.0.3", - "redux": "^5.0.1", - "redux-thunk": "^3.1.0", - "reselect": "^5.1.0" - }, - "peerDependencies": { - "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", - "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-redux": { - "optional": true - } - } - }, - "node_modules/@reduxjs/toolkit/node_modules/immer": { - "version": "10.1.1", - "resolved": "https://registry.npmmirror.com/immer/-/immer-10.1.1.tgz", - "integrity": "sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==", - "license": "MIT", "funding": { "type": "opencollective", - "url": "https://opencollective.com/immer" + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@pkgr/core": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.7.tgz", + "integrity": "sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@rc-component/async-validator": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-5.0.4.tgz", + "integrity": "sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.4" + }, + "engines": { + "node": ">=14.x" + } + }, + "node_modules/@rc-component/color-picker": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-2.0.1.tgz", + "integrity": "sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==", + "license": "MIT", + "dependencies": { + "@ant-design/fast-color": "^2.0.6", + "@babel/runtime": "^7.23.6", + "classnames": "^2.2.6", + "rc-util": "^5.38.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/context": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-1.4.0.tgz", + "integrity": "sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/mini-decimal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz", + "integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0" + }, + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@rc-component/mutate-observer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz", + "integrity": "sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/qrcode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@rc-component/qrcode/-/qrcode-1.0.0.tgz", + "integrity": "sha512-L+rZ4HXP2sJ1gHMGHjsg9jlYBX/SLN2D6OxP9Zn3qgtpMWtO2vUfxVFwiogHpAIqs54FnALxraUy/BCO1yRIgg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7", + "classnames": "^2.3.2", + "rc-util": "^5.38.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/tour": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.15.1.tgz", + "integrity": "sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "@rc-component/portal": "^1.0.0-9", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/trigger": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.2.7.tgz", + "integrity": "sha512-Qggj4Z0AA2i5dJhzlfFSmg1Qrziu8dsdHOihROL5Kl18seO2Eh/ZaTYt2c8a/CyGaTChnFry7BEYew1+/fhSbA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@rc-component/portal": "^1.1.0", + "classnames": "^2.3.2", + "rc-motion": "^2.0.0", + "rc-resize-observer": "^1.3.1", + "rc-util": "^5.44.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@react-spring/animated": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.6.1.tgz", + "integrity": "sha512-ls/rJBrAqiAYozjLo5EPPLLOb1LM0lNVQcXODTC1SMtS6DbuBCPaKco5svFUQFMP2dso3O+qcC4k9FsKc0KxMQ==", + "license": "MIT", + "dependencies": { + "@react-spring/shared": "~9.6.1", + "@react-spring/types": "~9.6.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@react-spring/core": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.6.1.tgz", + "integrity": "sha512-3HAAinAyCPessyQNNXe5W0OHzRfa8Yo5P748paPcmMowZ/4sMfaZ2ZB6e5x5khQI8NusOHj8nquoutd6FRY5WQ==", + "license": "MIT", + "dependencies": { + "@react-spring/animated": "~9.6.1", + "@react-spring/rafz": "~9.6.1", + "@react-spring/shared": "~9.6.1", + "@react-spring/types": "~9.6.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-spring/donate" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@react-spring/rafz": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.6.1.tgz", + "integrity": "sha512-v6qbgNRpztJFFfSE3e2W1Uz+g8KnIBs6SmzCzcVVF61GdGfGOuBrbjIcp+nUz301awVmREKi4eMQb2Ab2gGgyQ==", + "license": "MIT" + }, + "node_modules/@react-spring/shared": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.6.1.tgz", + "integrity": "sha512-PBFBXabxFEuF8enNLkVqMC9h5uLRBo6GQhRMQT/nRTnemVENimgRd+0ZT4yFnAQ0AxWNiJfX3qux+bW2LbG6Bw==", + "license": "MIT", + "dependencies": { + "@react-spring/rafz": "~9.6.1", + "@react-spring/types": "~9.6.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@react-spring/types": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.6.1.tgz", + "integrity": "sha512-POu8Mk0hIU3lRXB3bGIGe4VHIwwDsQyoD1F394OK7STTiX9w4dG3cTLljjYswkQN+hDSHRrj4O36kuVa7KPU8Q==", + "license": "MIT" + }, + "node_modules/@react-spring/web": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.6.1.tgz", + "integrity": "sha512-X2zR6q2Z+FjsWfGAmAXlQaoUHbPmfuCaXpuM6TcwXPpLE1ZD4A1eys/wpXboFQmDkjnrlTmKvpVna1MjWpZ5Hw==", + "license": "MIT", + "dependencies": { + "@react-spring/animated": "~9.6.1", + "@react-spring/core": "~9.6.1", + "@react-spring/shared": "~9.6.1", + "@react-spring/types": "~9.6.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, "node_modules/@remix-run/router": { "version": "1.23.0", - "resolved": "https://registry.npmmirror.com/@remix-run/router/-/router-1.23.0.tgz", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.0.tgz", "integrity": "sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA==", "license": "MIT", "engines": { "node": ">=14.0.0" } }, - "node_modules/@rollup/plugin-babel": { - "version": "5.3.1", - "resolved": "https://registry.npmmirror.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", - "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "@types/babel__core": "^7.1.9", - "rollup": "^1.20.0||^2.0.0" - }, - "peerDependenciesMeta": { - "@types/babel__core": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "11.2.1", - "resolved": "https://registry.npmmirror.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", - "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/plugin-replace": { - "version": "2.4.2", - "resolved": "https://registry.npmmirror.com/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", - "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" - }, - "peerDependencies": { - "rollup": "^1.20.0 || ^2.0.0" - } - }, - "node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "license": "MIT", - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/pluginutils/node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.19", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz", + "integrity": "sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==", + "dev": true, "license": "MIT" }, - "node_modules/@rtsao/scc": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/@rtsao/scc/-/scc-1.1.0.tgz", - "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "license": "MIT" - }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.12.0", - "resolved": "https://registry.npmmirror.com/@rushstack/eslint-patch/-/eslint-patch-1.12.0.tgz", - "integrity": "sha512-5EwMtOqvJMMa3HbmxLlF74e+3/HhwBTMcvt3nqVJgGCozO6hzIPOBlwm8mGVNR9SN2IJpxSnlxczyDjcn7qIyw==", - "license": "MIT" - }, - "node_modules/@sinclair/typebox": { - "version": "0.24.51", - "resolved": "https://registry.npmmirror.com/@sinclair/typebox/-/typebox-0.24.51.tgz", - "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", - "license": "MIT" - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmmirror.com/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmmirror.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@standard-schema/spec": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/@standard-schema/spec/-/spec-1.0.0.tgz", - "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", - "license": "MIT" - }, - "node_modules/@standard-schema/utils": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/@standard-schema/utils/-/utils-0.3.0.tgz", - "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", - "license": "MIT" - }, - "node_modules/@surma/rollup-plugin-off-main-thread": { - "version": "2.2.3", - "resolved": "https://registry.npmmirror.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", - "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", - "license": "Apache-2.0", - "dependencies": { - "ejs": "^3.1.6", - "json5": "^2.2.0", - "magic-string": "^0.25.0", - "string.prototype.matchall": "^4.0.6" - } - }, - "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", - "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.1.tgz", + "integrity": "sha512-M/fKi4sasCdM8i0aWJjCSFm2qEnYRR8AMLG2kxp6wD13+tMGA4Z1tVAuHkNRjud5SW2EM3naLuK35w9twvf6aA==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", - "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", - "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", - "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "5.4.0", - "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", - "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "5.4.0", - "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", - "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "5.4.0", - "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", - "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", - "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-preset": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", - "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", - "license": "MIT", - "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", - "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", - "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", - "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", - "@svgr/babel-plugin-transform-svg-component": "^5.5.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/core": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/@svgr/core/-/core-5.5.0.tgz", - "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", - "license": "MIT", - "dependencies": { - "@svgr/plugin-jsx": "^5.5.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", - "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.12.6" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/plugin-jsx": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", - "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.12.3", - "@svgr/babel-preset": "^5.5.0", - "@svgr/hast-util-to-babel-ast": "^5.5.0", - "svg-parser": "^2.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/plugin-svgo": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", - "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", - "license": "MIT", - "dependencies": { - "cosmiconfig": "^7.0.0", - "deepmerge": "^4.2.2", - "svgo": "^1.2.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/webpack": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/@svgr/webpack/-/webpack-5.5.0.tgz", - "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/plugin-transform-react-constant-elements": "^7.12.1", - "@babel/preset-env": "^7.12.1", - "@babel/preset-react": "^7.12.5", - "@svgr/core": "^5.5.0", - "@svgr/plugin-jsx": "^5.5.0", - "@svgr/plugin-svgo": "^5.5.0", - "loader-utils": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@tanstack/react-table": { - "version": "8.21.3", - "resolved": "https://registry.npmmirror.com/@tanstack/react-table/-/react-table-8.21.3.tgz", - "integrity": "sha512-5nNMTSETP4ykGegmVkhjcS8tTLW6Vl4axfEGQN3v0zdHYbK4UfoqfPChclTrJ4EoK9QynqAu9oUf8VEmrpZ5Ww==", - "license": "MIT", - "dependencies": { - "@tanstack/table-core": "8.21.3" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" - } - }, - "node_modules/@tanstack/table-core": { - "version": "8.21.3", - "resolved": "https://registry.npmmirror.com/@tanstack/table-core/-/table-core-8.21.3.tgz", - "integrity": "sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@testing-library/dom": { - "version": "10.4.0", - "resolved": "https://registry.npmmirror.com/@testing-library/dom/-/dom-10.4.0.tgz", - "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "5.3.0", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.5.0", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@testing-library/dom/node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmmirror.com/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "license": "Apache-2.0", - "dependencies": { - "dequal": "^2.0.3" - } - }, - "node_modules/@testing-library/jest-dom": { - "version": "6.6.3", - "resolved": "https://registry.npmmirror.com/@testing-library/jest-dom/-/jest-dom-6.6.3.tgz", - "integrity": "sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==", - "license": "MIT", - "dependencies": { - "@adobe/css-tools": "^4.4.0", - "aria-query": "^5.0.0", - "chalk": "^3.0.0", - "css.escape": "^1.5.1", - "dom-accessibility-api": "^0.6.3", - "lodash": "^4.17.21", - "redent": "^3.0.0" - }, - "engines": { - "node": ">=14", - "npm": ">=6", - "yarn": ">=1" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { - "version": "0.6.3", - "resolved": "https://registry.npmmirror.com/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", - "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", - "license": "MIT" - }, - "node_modules/@testing-library/react": { - "version": "13.4.0", - "resolved": "https://registry.npmmirror.com/@testing-library/react/-/react-13.4.0.tgz", - "integrity": "sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^8.5.0", - "@types/react-dom": "^18.0.0" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@testing-library/react/node_modules/@testing-library/dom": { - "version": "8.20.1", - "resolved": "https://registry.npmmirror.com/@testing-library/dom/-/dom-8.20.1.tgz", - "integrity": "sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "5.1.3", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.5.0", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@testing-library/react/node_modules/aria-query": { - "version": "5.1.3", - "resolved": "https://registry.npmmirror.com/aria-query/-/aria-query-5.1.3.tgz", - "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", - "license": "Apache-2.0", - "dependencies": { - "deep-equal": "^2.0.5" - } - }, - "node_modules/@testing-library/user-event": { - "version": "13.5.0", - "resolved": "https://registry.npmmirror.com/@testing-library/user-event/-/user-event-13.5.0.tgz", - "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - }, - "peerDependencies": { - "@testing-library/dom": ">=7.21.4" - } - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "license": "ISC", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmmirror.com/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmmirror.com/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/@types/aria-query": { - "version": "5.0.4", - "resolved": "https://registry.npmmirror.com/@types/aria-query/-/aria-query-5.0.4.tgz", - "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", - "license": "MIT" + "optional": true, + "os": [ + "win32" + ] }, "node_modules/@types/babel__core": { "version": "7.20.5", - "resolved": "https://registry.npmmirror.com/@types/babel__core/-/babel__core-7.20.5.tgz", + "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", @@ -5628,8 +1033,9 @@ }, "node_modules/@types/babel__generator": { "version": "7.27.0", - "resolved": "https://registry.npmmirror.com/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" @@ -5637,8 +1043,9 @@ }, "node_modules/@types/babel__template": { "version": "7.4.4", - "resolved": "https://registry.npmmirror.com/@types/babel__template/-/babel__template-7.4.4.tgz", + "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", @@ -5647,538 +1054,78 @@ }, "node_modules/@types/babel__traverse": { "version": "7.20.7", - "resolved": "https://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", + "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.20.7" } }, - "node_modules/@types/body-parser": { - "version": "1.19.6", - "resolved": "https://registry.npmmirror.com/@types/body-parser/-/body-parser-1.19.6.tgz", - "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.13", - "resolved": "https://registry.npmmirror.com/@types/bonjour/-/bonjour-3.5.13.tgz", - "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmmirror.com/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.4", - "resolved": "https://registry.npmmirror.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", - "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", - "license": "MIT", - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/crypto-js": { - "version": "4.2.2", - "resolved": "https://registry.npmmirror.com/@types/crypto-js/-/crypto-js-4.2.2.tgz", - "integrity": "sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ==", - "license": "MIT" - }, - "node_modules/@types/d3-array": { - "version": "3.2.1", - "resolved": "https://registry.npmmirror.com/@types/d3-array/-/d3-array-3.2.1.tgz", - "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==", - "license": "MIT" - }, - "node_modules/@types/d3-color": { - "version": "3.1.3", - "resolved": "https://registry.npmmirror.com/@types/d3-color/-/d3-color-3.1.3.tgz", - "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", - "license": "MIT" - }, - "node_modules/@types/d3-dispatch": { - "version": "3.0.6", - "resolved": "https://registry.npmmirror.com/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz", - "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==", - "license": "MIT" - }, - "node_modules/@types/d3-dsv": { - "version": "3.0.7", - "resolved": "https://registry.npmmirror.com/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", - "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", - "license": "MIT" - }, - "node_modules/@types/d3-ease": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/@types/d3-ease/-/d3-ease-3.0.2.tgz", - "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", - "license": "MIT" - }, - "node_modules/@types/d3-fetch": { - "version": "3.0.7", - "resolved": "https://registry.npmmirror.com/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", - "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", - "license": "MIT", - "dependencies": { - "@types/d3-dsv": "*" - } - }, - "node_modules/@types/d3-force": { - "version": "3.0.10", - "resolved": "https://registry.npmmirror.com/@types/d3-force/-/d3-force-3.0.10.tgz", - "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", - "license": "MIT" - }, - "node_modules/@types/d3-format": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/@types/d3-format/-/d3-format-3.0.4.tgz", - "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", - "license": "MIT" - }, - "node_modules/@types/d3-geo": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/@types/d3-geo/-/d3-geo-3.1.0.tgz", - "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", - "license": "MIT", - "dependencies": { - "@types/geojson": "*" - } - }, - "node_modules/@types/d3-hierarchy": { - "version": "3.1.7", - "resolved": "https://registry.npmmirror.com/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", - "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", - "license": "MIT" - }, - "node_modules/@types/d3-interpolate": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", - "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", - "license": "MIT", - "dependencies": { - "@types/d3-color": "*" - } - }, - "node_modules/@types/d3-path": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/@types/d3-path/-/d3-path-3.1.1.tgz", - "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", - "license": "MIT" - }, - "node_modules/@types/d3-quadtree": { - "version": "3.0.6", - "resolved": "https://registry.npmmirror.com/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", - "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", - "license": "MIT" - }, - "node_modules/@types/d3-random": { - "version": "3.0.3", - "resolved": "https://registry.npmmirror.com/@types/d3-random/-/d3-random-3.0.3.tgz", - "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", - "license": "MIT" - }, - "node_modules/@types/d3-scale": { - "version": "4.0.9", - "resolved": "https://registry.npmmirror.com/@types/d3-scale/-/d3-scale-4.0.9.tgz", - "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", - "license": "MIT", - "dependencies": { - "@types/d3-time": "*" - } - }, - "node_modules/@types/d3-scale-chromatic": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", - "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", - "license": "MIT" - }, - "node_modules/@types/d3-shape": { - "version": "3.1.7", - "resolved": "https://registry.npmmirror.com/@types/d3-shape/-/d3-shape-3.1.7.tgz", - "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==", - "license": "MIT", - "dependencies": { - "@types/d3-path": "*" - } - }, - "node_modules/@types/d3-time": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/@types/d3-time/-/d3-time-3.0.4.tgz", - "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", - "license": "MIT" - }, - "node_modules/@types/d3-timer": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/@types/d3-timer/-/d3-timer-3.0.2.tgz", - "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", - "license": "MIT" - }, - "node_modules/@types/eslint": { - "version": "8.56.12", - "resolved": "https://registry.npmmirror.com/@types/eslint/-/eslint-8.56.12.tgz", - "integrity": "sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==", - "license": "MIT", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "license": "MIT", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.8", - "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.8.tgz", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "license": "MIT" - }, - "node_modules/@types/express": { - "version": "4.17.23", - "resolved": "https://registry.npmmirror.com/@types/express/-/express-4.17.23.tgz", - "integrity": "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==", - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "5.0.6", - "resolved": "https://registry.npmmirror.com/@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/express/node_modules/@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmmirror.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/geojson": { - "version": "7946.0.16", - "resolved": "https://registry.npmmirror.com/@types/geojson/-/geojson-7946.0.16.tgz", - "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", - "license": "MIT" - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmmirror.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", - "license": "MIT" - }, - "node_modules/@types/http-errors": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/@types/http-errors/-/http-errors-2.0.5.tgz", - "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", - "license": "MIT" - }, - "node_modules/@types/http-proxy": { - "version": "1.17.16", - "resolved": "https://registry.npmmirror.com/@types/http-proxy/-/http-proxy-1.17.16.tgz", - "integrity": "sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmmirror.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "27.5.2", - "resolved": "https://registry.npmmirror.com/@types/jest/-/jest-27.5.2.tgz", - "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==", - "license": "MIT", - "dependencies": { - "jest-matcher-utils": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "license": "MIT" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmmirror.com/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "license": "MIT" - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmmirror.com/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true, "license": "MIT" }, "node_modules/@types/node": { - "version": "18.19.115", - "resolved": "https://registry.npmmirror.com/@types/node/-/node-18.19.115.tgz", - "integrity": "sha512-kNrFiTgG4a9JAn1LMQeLOv3MvXIPokzXziohMrMsvpYgLpdEt/mMiVYc4sGKtDfyxM5gIDF4VgrPRyCw4fHOYg==", + "version": "24.0.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.14.tgz", + "integrity": "sha512-4zXMWD91vBLGRtHK3YbIoFMia+1nqEz72coM42C5ETjnNCa/heoj7NT1G67iAfOqMmcfhuCZ4uNpyz8EjlAejw==", + "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~7.8.0" } }, - "node_modules/@types/node-forge": { - "version": "1.3.12", - "resolved": "https://registry.npmmirror.com/@types/node-forge/-/node-forge-1.3.12.tgz", - "integrity": "sha512-a0ToKlRVnUw3aXKQq2F+krxZKq7B8LEQijzPn5RdFAMatARD2JX9o8FBpMXOOrjob0uc13aN+V/AXniOXW4d9A==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/parse-json": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", - "license": "MIT" - }, - "node_modules/@types/prettier": { - "version": "2.7.3", - "resolved": "https://registry.npmmirror.com/@types/prettier/-/prettier-2.7.3.tgz", - "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", - "license": "MIT" - }, - "node_modules/@types/prop-types": { - "version": "15.7.15", - "resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.15.tgz", - "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", - "license": "MIT" - }, - "node_modules/@types/q": { - "version": "1.5.8", - "resolved": "https://registry.npmmirror.com/@types/q/-/q-1.5.8.tgz", - "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==", - "license": "MIT" - }, - "node_modules/@types/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmmirror.com/@types/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmmirror.com/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "license": "MIT" - }, "node_modules/@types/react": { - "version": "18.3.23", - "resolved": "https://registry.npmmirror.com/@types/react/-/react-18.3.23.tgz", - "integrity": "sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==", + "version": "19.1.8", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz", + "integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==", + "devOptional": true, "license": "MIT", "dependencies": { - "@types/prop-types": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "18.3.7", - "resolved": "https://registry.npmmirror.com/@types/react-dom/-/react-dom-18.3.7.tgz", - "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", + "version": "19.1.6", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.6.tgz", + "integrity": "sha512-4hOiT/dwO8Ko0gV1m/TJZYk3y0KBnY9vzDh7W+DH17b2HFSOGgdj33dhihPeuy3l0q23+4e+hoXHV6hCC4dCXw==", + "dev": true, "license": "MIT", "peerDependencies": { - "@types/react": "^18.0.0" + "@types/react": "^19.0.0" } }, - "node_modules/@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmmirror.com/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmmirror.com/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "license": "MIT" - }, - "node_modules/@types/semver": { - "version": "7.7.0", - "resolved": "https://registry.npmmirror.com/@types/semver/-/semver-7.7.0.tgz", - "integrity": "sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==", - "license": "MIT" - }, - "node_modules/@types/send": { - "version": "0.17.5", - "resolved": "https://registry.npmmirror.com/@types/send/-/send-0.17.5.tgz", - "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", - "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-index": { - "version": "1.9.4", - "resolved": "https://registry.npmmirror.com/@types/serve-index/-/serve-index-1.9.4.tgz", - "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", - "license": "MIT", - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.8", - "resolved": "https://registry.npmmirror.com/@types/serve-static/-/serve-static-1.15.8.tgz", - "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", - "license": "MIT", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.36", - "resolved": "https://registry.npmmirror.com/@types/sockjs/-/sockjs-0.3.36.tgz", - "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "license": "MIT" - }, - "node_modules/@types/trusted-types": { - "version": "2.0.7", - "resolved": "https://registry.npmmirror.com/@types/trusted-types/-/trusted-types-2.0.7.tgz", - "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", - "license": "MIT" - }, - "node_modules/@types/use-sync-external-store": { - "version": "0.0.6", - "resolved": "https://registry.npmmirror.com/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", - "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", - "license": "MIT" - }, - "node_modules/@types/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmmirror.com/@types/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "16.0.9", - "resolved": "https://registry.npmmirror.com/@types/yargs/-/yargs-16.0.9.tgz", - "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmmirror.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "license": "MIT" - }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", + "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", + "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/type-utils": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -6186,45 +1133,28 @@ } } }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", - "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/utils": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", + "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", "debug": "^4.3.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -6233,16 +1163,17 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", + "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -6250,25 +1181,26 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", + "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", + "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/utils": "7.18.0", "debug": "^4.3.4", - "tsutils": "^3.21.0" + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "*" + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -6277,12 +1209,13 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", + "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", + "dev": true, "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -6290,21 +1223,23 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", + "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -6316,65 +1251,80 @@ } } }, - "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "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": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", + "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" + "eslint": "^8.56.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", + "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" + "@typescript-eslint/types": "7.18.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -6383,241 +1333,55 @@ }, "node_modules/@ungap/structured-clone": { "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, "license": "ISC" }, "node_modules/@use-gesture/core": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@use-gesture/core/-/core-10.3.1.tgz", - "integrity": "sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@use-gesture/core/-/core-10.3.0.tgz", + "integrity": "sha512-rh+6MND31zfHcy9VU3dOZCqGY511lvGcfyJenN4cWZe0u1BH6brBpBddLVXhF2r4BMqWbvxfsbL7D287thJU2A==", "license": "MIT" }, "node_modules/@use-gesture/react": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@use-gesture/react/-/react-10.3.1.tgz", - "integrity": "sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@use-gesture/react/-/react-10.3.0.tgz", + "integrity": "sha512-3zc+Ve99z4usVP6l9knYVbVnZgfqhKah7sIG+PS2w+vpig2v2OLct05vs+ZXMzwxdNCMka8B+8WlOo0z6Pn6DA==", "license": "MIT", "dependencies": { - "@use-gesture/core": "10.3.1" + "@use-gesture/core": "10.3.0" }, "peerDependencies": { "react": ">= 16.8.0" } }, - "node_modules/@webassemblyjs/ast": { - "version": "1.14.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.14.1.tgz", - "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "node_modules/@vitejs/plugin-react": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz", + "integrity": "sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==", + "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.13.2", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.13.2", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", - "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.14.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", - "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.13.2", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", - "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.13.2", - "@webassemblyjs/helper-api-error": "1.13.2", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.13.2", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", - "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.14.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", - "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/wasm-gen": "1.14.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.13.2", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", - "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", - "license": "MIT", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.13.2", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", - "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", - "license": "Apache-2.0", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.13.2", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", - "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.14.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", - "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/helper-wasm-section": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-opt": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1", - "@webassemblyjs/wast-printer": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.14.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", - "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.14.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", - "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.14.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", - "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-api-error": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.14.1", - "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", - "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "license": "BSD-3-Clause" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "license": "Apache-2.0" - }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "deprecated": "Use your platform's native atob() and btoa() methods instead", - "license": "BSD-3-Clause" - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "@babel/core": "^7.27.4", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.19", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" }, "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" } }, "node_modules/acorn": { "version": "8.15.0", - "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.15.0.tgz", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "license": "MIT", - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -6628,65 +1392,14 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "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/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/address": { - "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/adjust-sourcemap-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", - "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/adler-32": { - "version": "1.3.1", - "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz", - "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==", - "license": "Apache-2.0", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, "node_modules/ahooks": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ahooks/-/ahooks-3.9.0.tgz", @@ -6711,10 +1424,17 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, + "node_modules/ahooks/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/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz", + "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", @@ -6727,109 +1447,11 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "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.npmmirror.com/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "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.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html": { - "version": "0.0.9", - "resolved": "https://registry.npmmirror.com/ansi-html/-/ansi-html-0.0.9.tgz", - "integrity": "sha512-ozbS3LuenHVxNRh/wdnN16QapUHzauqSomAl1jwwJRRsGwFwtj644lIhxfWu0Fy0acCij2+AEgHvjscq3dlVXg==", - "engines": [ - "node >= 0.8.0" - ], - "license": "Apache-2.0", - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmmirror.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "engines": [ - "node >= 0.8.0" - ], - "license": "Apache-2.0", - "bin": { - "ansi-html": "bin/ansi-html" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -6837,8 +1459,9 @@ }, "node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "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" @@ -6850,65 +1473,167 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "license": "MIT" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "license": "ISC", + "node_modules/antd": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/antd/-/antd-5.26.5.tgz", + "integrity": "sha512-HB7Cr0tPZMMeAyDDH8KZU0aP8/uO51oasmflJhDBzaRRZmLT8Pyjtt8qS22Sc839glm8gpKQcaG0mln66Gt9Fg==", + "license": "MIT", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "@ant-design/colors": "^7.2.1", + "@ant-design/cssinjs": "^1.23.0", + "@ant-design/cssinjs-utils": "^1.1.3", + "@ant-design/fast-color": "^2.0.6", + "@ant-design/icons": "^5.6.1", + "@ant-design/react-slick": "~1.1.2", + "@babel/runtime": "^7.26.0", + "@rc-component/color-picker": "~2.0.1", + "@rc-component/mutate-observer": "^1.1.0", + "@rc-component/qrcode": "~1.0.0", + "@rc-component/tour": "~1.15.1", + "@rc-component/trigger": "^2.2.7", + "classnames": "^2.5.1", + "copy-to-clipboard": "^3.3.3", + "dayjs": "^1.11.11", + "rc-cascader": "~3.34.0", + "rc-checkbox": "~3.5.0", + "rc-collapse": "~3.9.0", + "rc-dialog": "~9.6.0", + "rc-drawer": "~7.3.0", + "rc-dropdown": "~4.2.1", + "rc-field-form": "~2.7.0", + "rc-image": "~7.12.0", + "rc-input": "~1.8.0", + "rc-input-number": "~9.5.0", + "rc-mentions": "~2.20.0", + "rc-menu": "~9.16.1", + "rc-motion": "^2.9.5", + "rc-notification": "~5.6.4", + "rc-pagination": "~5.1.0", + "rc-picker": "~4.11.3", + "rc-progress": "~4.0.0", + "rc-rate": "~2.13.1", + "rc-resize-observer": "^1.4.3", + "rc-segmented": "~2.7.0", + "rc-select": "~14.16.8", + "rc-slider": "~11.1.8", + "rc-steps": "~6.0.1", + "rc-switch": "~4.1.0", + "rc-table": "~7.51.1", + "rc-tabs": "~15.6.1", + "rc-textarea": "~1.10.0", + "rc-tooltip": "~6.4.0", + "rc-tree": "~5.13.1", + "rc-tree-select": "~5.27.0", + "rc-upload": "~4.9.2", + "rc-util": "^5.44.4", + "scroll-into-view-if-needed": "^3.1.0", + "throttle-debounce": "^5.0.2" }, - "engines": { - "node": ">= 8" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ant-design" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" } }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmmirror.com/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "node_modules/antd-mobile": { + "version": "5.40.0", + "resolved": "https://registry.npmjs.org/antd-mobile/-/antd-mobile-5.40.0.tgz", + "integrity": "sha512-nNfkTLiYPsa7A2i7eoG/hr2BM0agR4cfugE2+5HTyGnCg5xQT04Pmt9qEoKv7MOW5BaiiMyjO462Kh8KRF5QBA==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.4.2", + "@rc-component/mini-decimal": "^1.1.0", + "@react-spring/web": "~9.6.1", + "@use-gesture/react": "10.3.0", + "ahooks": "^3.7.6", + "antd-mobile-icons": "^0.3.0", + "antd-mobile-v5-count": "^1.0.1", + "classnames": "^2.3.2", + "dayjs": "^1.11.7", + "deepmerge": "^4.3.1", + "nano-memoize": "^3.0.16", + "rc-field-form": "^1.34.2", + "rc-segmented": "~2.4.1", + "rc-util": "^5.44.4", + "react-fast-compare": "^3.2.2", + "react-is": "^18.2.0", + "runes2": "^1.1.2", + "staged-components": "^1.1.3", + "tslib": "^2.5.0", + "use-sync-external-store": "^1.2.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/antd-mobile-icons": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/antd-mobile-icons/-/antd-mobile-icons-0.3.0.tgz", + "integrity": "sha512-rqINQpJWZWrva9moCd1Ye695MZYWmqLPE+bY8d2xLRy7iSQwPsinCdZYjpUPp2zL/LnKYSyXxP2ut2A+DC+whQ==", "license": "MIT" }, + "node_modules/antd-mobile-v5-count": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/antd-mobile-v5-count/-/antd-mobile-v5-count-1.0.1.tgz", + "integrity": "sha512-YGsiEDCPUDz3SzfXi6gLZn/HpeSMW+jgPc4qiYUr1fSopg3hkUie2TnooJdExgfiETHefH3Ggs58He0OVfegLA==", + "license": "MIT" + }, + "node_modules/antd-mobile/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/antd/node_modules/rc-field-form": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-2.7.0.tgz", + "integrity": "sha512-hgKsCay2taxzVnBPZl+1n4ZondsV78G++XVsMIJCAoioMjlMQR9YwAp7JZDIECzIu2Z66R+f4SFIRrO2DjDNAA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "@rc-component/async-validator": "^5.0.3", + "rc-util": "^5.32.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/antd/node_modules/rc-segmented": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.7.0.tgz", + "integrity": "sha512-liijAjXz+KnTRVnxxXG2sYDGd6iLL7VpGGdR8gwoxAXy2KglviKCxLWZdjKYJzYzGSUwKDSTdYk8brj54Bn5BA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-motion": "^2.4.4", + "rc-util": "^5.17.0" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/aria-hidden": { - "version": "1.2.6", - "resolved": "https://registry.npmmirror.com/aria-hidden/-/aria-hidden-1.2.6.tgz", - "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/aria-query": { - "version": "5.3.2", - "resolved": "https://registry.npmmirror.com/aria-query/-/aria-query-5.3.2.tgz", - "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } + "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/array-buffer-byte-length": { "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "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", @@ -6921,16 +1646,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "license": "MIT" - }, "node_modules/array-includes": { "version": "3.1.9", - "resolved": "https://registry.npmmirror.com/array-includes/-/array-includes-3.1.9.tgz", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.8", @@ -6951,8 +1671,9 @@ }, "node_modules/array-union": { "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -6960,8 +1681,9 @@ }, "node_modules/array.prototype.findlast": { "version": "1.2.5", - "resolved": "https://registry.npmmirror.com/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -6978,31 +1700,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.6", - "resolved": "https://registry.npmmirror.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", - "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-shim-unscopables": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array.prototype.flat": { "version": "1.3.3", - "resolved": "https://registry.npmmirror.com/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.8", @@ -7019,8 +1721,9 @@ }, "node_modules/array.prototype.flatmap": { "version": "1.3.3", - "resolved": "https://registry.npmmirror.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.8", @@ -7035,32 +1738,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.reduce": { - "version": "1.0.8", - "resolved": "https://registry.npmmirror.com/array.prototype.reduce/-/array.prototype.reduce-1.0.8.tgz", - "integrity": "sha512-DwuEqgXFBwbmZSRqt3BpQigWNUoqw9Ml2dTWdF3B2zQlQX4OeUE0zyuzX0fX0IbTvjdkZbcBTU3idgpO78qkTw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-array-method-boxes-properly": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "is-string": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array.prototype.tosorted": { "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -7075,8 +1757,9 @@ }, "node_modules/arraybuffer.prototype.slice": { "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "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", @@ -7094,89 +1777,33 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "license": "MIT" - }, - "node_modules/ast-types-flow": { - "version": "0.0.8", - "resolved": "https://registry.npmmirror.com/ast-types-flow/-/ast-types-flow-0.0.8.tgz", - "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", - "license": "MIT" - }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmmirror.com/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "license": "MIT" - }, "node_modules/async-function": { "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/async-function/-/async-function-1.0.0.tgz", + "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/async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==", + "license": "MIT" + }, "node_modules/asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "license": "MIT" }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "license": "ISC", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.21", - "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.21.tgz", - "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", - "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.24.4", - "caniuse-lite": "^1.0.30001702", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.1.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", - "resolved": "https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "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": { "possible-typed-array-names": "^1.0.0" @@ -7188,18 +1815,9 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/axe-core": { - "version": "4.10.3", - "resolved": "https://registry.npmmirror.com/axe-core/-/axe-core-4.10.3.tgz", - "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==", - "license": "MPL-2.0", - "engines": { - "node": ">=4" - } - }, "node_modules/axios": { "version": "1.10.0", - "resolved": "https://registry.npmmirror.com/axios/-/axios-1.10.0.tgz", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.10.0.tgz", "integrity": "sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==", "license": "MIT", "dependencies": { @@ -7208,411 +1826,18 @@ "proxy-from-env": "^1.1.0" } }, - "node_modules/axios/node_modules/form-data": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.3.tgz", - "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/axobject-query": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/axobject-query/-/axobject-query-4.1.0.tgz", - "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", - "license": "MIT", - "dependencies": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-loader": { - "version": "8.4.1", - "resolved": "https://registry.npmmirror.com/babel-loader/-/babel-loader-8.4.1.tgz", - "integrity": "sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==", - "license": "MIT", - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.4", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-loader/node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmmirror.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - } - }, - "node_modules/babel-plugin-named-asset-import": { - "version": "0.3.8", - "resolved": "https://registry.npmmirror.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", - "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", - "license": "MIT", - "peerDependencies": { - "@babel/core": "^7.1.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.14", - "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", - "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.27.7", - "@babel/helper-define-polyfill-provider": "^0.6.5", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.13.0", - "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", - "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.5", - "core-js-compat": "^3.43.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.5", - "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", - "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.5" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "resolved": "https://registry.npmmirror.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", - "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==", - "license": "MIT" - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", - "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-react-app": { - "version": "10.1.0", - "resolved": "https://registry.npmmirror.com/babel-preset-react-app/-/babel-preset-react-app-10.1.0.tgz", - "integrity": "sha512-f9B1xMdnkCIqe+2dHrJsoQFRz7reChaAHE/65SdaykPklQqhme2WaC08oD3is77x9ff98/9EazAKFDZv5rFEQg==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.16.0", - "@babel/plugin-proposal-class-properties": "^7.16.0", - "@babel/plugin-proposal-decorators": "^7.16.4", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", - "@babel/plugin-proposal-numeric-separator": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-private-methods": "^7.16.0", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-transform-flow-strip-types": "^7.16.0", - "@babel/plugin-transform-react-display-name": "^7.16.0", - "@babel/plugin-transform-runtime": "^7.16.4", - "@babel/preset-env": "^7.16.4", - "@babel/preset-react": "^7.16.0", - "@babel/preset-typescript": "^7.16.0", - "@babel/runtime": "^7.16.3", - "babel-plugin-macros": "^3.1.0", - "babel-plugin-transform-react-remove-prop-types": "^0.4.24" - } - }, - "node_modules/babel-preset-react-app/node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.11", - "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", - "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, "license": "MIT" }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "license": "MIT" - }, - "node_modules/bfj": { - "version": "7.1.0", - "resolved": "https://registry.npmmirror.com/bfj/-/bfj-7.1.0.tgz", - "integrity": "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==", - "license": "MIT", - "dependencies": { - "bluebird": "^3.7.2", - "check-types": "^11.2.3", - "hoopy": "^0.1.4", - "jsonpath": "^1.1.1", - "tryer": "^1.0.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "license": "MIT" - }, - "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/bonjour-service": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/bonjour-service/-/bonjour-service-1.3.0.tgz", - "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "license": "ISC" - }, "node_modules/brace-expansion": { "version": "1.1.12", - "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.12.tgz", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -7621,8 +1846,9 @@ }, "node_modules/braces": { "version": "3.0.3", - "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "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" @@ -7631,16 +1857,11 @@ "node": ">=8" } }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "license": "BSD-2-Clause" - }, "node_modules/browserslist": { "version": "4.25.1", - "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.25.1.tgz", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz", "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==", + "dev": true, "funding": [ { "type": "opencollective", @@ -7669,46 +1890,11 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "license": "Apache-2.0", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "license": "MIT" - }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmmirror.com/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/call-bind": { "version": "1.0.8", - "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.8.tgz", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.0", @@ -7725,7 +1911,7 @@ }, "node_modules/call-bind-apply-helpers": { "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "license": "MIT", "dependencies": { @@ -7738,8 +1924,9 @@ }, "node_modules/call-bound": { "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/call-bound/-/call-bound-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", @@ -7754,60 +1941,19 @@ }, "node_modules/callsites": { "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", + "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/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "license": "MIT", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, "node_modules/caniuse-lite": { - "version": "1.0.30001726", - "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001726.tgz", - "integrity": "sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw==", + "version": "1.0.30001727", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz", + "integrity": "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==", + "dev": true, "funding": [ { "type": "opencollective", @@ -7824,32 +1970,11 @@ ], "license": "CC-BY-4.0" }, - "node_modules/case-sensitive-paths-webpack-plugin": { - "version": "2.4.0", - "resolved": "https://registry.npmmirror.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", - "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/cfb": { - "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz", - "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", - "license": "Apache-2.0", - "dependencies": { - "adler-32": "~1.3.0", - "crc-32": "~1.2.0" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "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", @@ -7862,109 +1987,20 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/chart.js": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/chart.js/-/chart.js-4.5.0.tgz", - "integrity": "sha512-aYeC/jDgSEx8SHWZvANYMioYMZ2KX02W6f6uVfyteuCGcadDLcYVHdfdygsTQkQ4TKn5lghoojAsPj5pu0SnvQ==", - "license": "MIT", - "dependencies": { - "@kurkle/color": "^0.3.0" - }, - "engines": { - "pnpm": ">=8" - } - }, - "node_modules/check-types": { - "version": "11.2.3", - "resolved": "https://registry.npmmirror.com/check-types/-/check-types-11.2.3.tgz", - "integrity": "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg==", - "license": "MIT" - }, "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "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" + "readdirp": "^4.0.1" }, "engines": { - "node": ">= 8.10.0" + "node": ">= 14.16.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.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", - "license": "MIT", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmmirror.com/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.4.3", - "resolved": "https://registry.npmmirror.com/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", - "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", - "license": "MIT" - }, - "node_modules/class-variance-authority": { - "version": "0.7.1", - "resolved": "https://registry.npmmirror.com/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/classnames": { @@ -7973,192 +2009,11 @@ "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", "license": "MIT" }, - "node_modules/clean-css": { - "version": "5.3.3", - "resolved": "https://registry.npmmirror.com/clean-css/-/clean-css-5.3.3.tgz", - "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", - "license": "MIT", - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 10.0" - } - }, - "node_modules/clean-css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/cmdk": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/cmdk/-/cmdk-1.0.4.tgz", - "integrity": "sha512-AnsjfHyHpQ/EFeAnG216WY7A5LiYCoZzCSygiLvfXC3H3LFGCprErteUcszaVluGOhuOTbJS3jWHrSDYPBBygg==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-dialog": "^1.1.2", - "@radix-ui/react-id": "^1.1.0", - "@radix-ui/react-primitive": "^2.0.0", - "use-sync-external-store": "^1.2.2" - }, - "peerDependencies": { - "react": "^18 || ^19 || ^19.0.0-rc", - "react-dom": "^18 || ^19 || ^19.0.0-rc" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmmirror.com/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/coa": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "license": "MIT", - "dependencies": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/coa/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/coa/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/coa/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/coa/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "license": "MIT" - }, - "node_modules/coa/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/coa/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/coa/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/codepage": { - "version": "1.15.0", - "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz", - "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==", - "license": "Apache-2.0", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "license": "MIT" - }, "node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "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" @@ -8169,35 +2024,14 @@ }, "node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmmirror.com/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "license": "MIT", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmmirror.com/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "license": "MIT" - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmmirror.com/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, "license": "MIT" }, "node_modules/combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "license": "MIT", "dependencies": { @@ -8207,142 +2041,51 @@ "node": ">= 0.8" } }, - "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/common-tags": { - "version": "1.8.2", - "resolved": "https://registry.npmmirror.com/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "license": "MIT" - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmmirror.com/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "license": "MIT", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.8.0", - "resolved": "https://registry.npmmirror.com/compression/-/compression-1.8.0.tgz", - "integrity": "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "compressible": "~2.0.18", - "debug": "2.6.9", - "negotiator": "~0.6.4", - "on-headers": "~1.0.2", - "safe-buffer": "5.2.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "node_modules/compute-scroll-into-view": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz", + "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==", "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, "license": "MIT" }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmmirror.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "license": "MIT" - }, - "node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/convert-source-map": { "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz", + "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": "0.7.1", - "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "node_modules/copy-text-to-clipboard": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz", + "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==", "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "license": "MIT" + "node_modules/copy-to-clipboard": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", + "license": "MIT", + "dependencies": { + "toggle-selection": "^1.0.6" + } }, "node_modules/core-js": { - "version": "3.43.0", - "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.43.0.tgz", - "integrity": "sha512-N6wEbTTZSYOY2rYAn85CuvWWkCK6QweMn7/4Nr3w+gDBeBhk/x4EJeY6FPo4QzDoJZxVTv8U7CMvgWk6pOHHqA==", + "version": "3.44.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.44.0.tgz", + "integrity": "sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw==", "hasInstallScript": true, "license": "MIT", "funding": { @@ -8350,95 +2093,11 @@ "url": "https://opencollective.com/core-js" } }, - "node_modules/core-js-compat": { - "version": "3.43.0", - "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.43.0.tgz", - "integrity": "sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.25.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-pure": { - "version": "3.43.0", - "resolved": "https://registry.npmmirror.com/core-js-pure/-/core-js-pure-3.43.0.tgz", - "integrity": "sha512-i/AgxU2+A+BbJdMxh3v7/vxi2SbFqxiFmg6VsDwYB4jkucrd1BZNA9a9gphC0fYMG5IBSgQcbQnk865VCLe7xA==", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "license": "MIT" - }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cosmiconfig-typescript-loader": { - "version": "1.0.9", - "resolved": "https://registry.npmmirror.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-1.0.9.tgz", - "integrity": "sha512-tRuMRhxN4m1Y8hP9SNYfz7jRwt8lZdWxdjg/ohg5esKmsndJIn4yT96oJVcf5x0eA11taXl+sIp+ielu529k6g==", - "dev": true, - "license": "MIT", - "dependencies": { - "cosmiconfig": "^7", - "ts-node": "^10.7.0" - }, - "engines": { - "node": ">=12", - "npm": ">=6" - }, - "peerDependencies": { - "@types/node": "*", - "cosmiconfig": ">=7", - "typescript": ">=3" - } - }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "license": "Apache-2.0", - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "devOptional": true, - "license": "MIT" - }, "node_modules/cross-spawn": { "version": "7.0.6", - "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.6.tgz", + "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", @@ -8449,732 +2108,17 @@ "node": ">= 8" } }, - "node_modules/crypto-js": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.2.0.tgz", - "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==", - "license": "MIT" - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/css-blank-pseudo": { - "version": "3.0.3", - "resolved": "https://registry.npmmirror.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", - "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", - "license": "CC0-1.0", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "bin": { - "css-blank-pseudo": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-declaration-sorter": { - "version": "6.4.1", - "resolved": "https://registry.npmmirror.com/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", - "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-has-pseudo": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", - "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", - "license": "CC0-1.0", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "bin": { - "css-has-pseudo": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-loader": { - "version": "6.11.0", - "resolved": "https://registry.npmmirror.com/css-loader/-/css-loader-6.11.0.tgz", - "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", - "license": "MIT", - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.33", - "postcss-modules-extract-imports": "^3.1.0", - "postcss-modules-local-by-default": "^4.0.5", - "postcss-modules-scope": "^3.2.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/css-minimizer-webpack-plugin": { - "version": "3.4.1", - "resolved": "https://registry.npmmirror.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", - "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", - "license": "MIT", - "dependencies": { - "cssnano": "^5.0.6", - "jest-worker": "^27.0.2", - "postcss": "^8.3.5", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@parcel/css": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-prefers-color-scheme": { - "version": "6.0.3", - "resolved": "https://registry.npmmirror.com/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", - "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", - "license": "CC0-1.0", - "bin": { - "css-prefers-color-scheme": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmmirror.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", - "license": "MIT" - }, - "node_modules/css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-tree/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-what": { - "version": "6.2.2", - "resolved": "https://registry.npmmirror.com/css-what/-/css-what-6.2.2.tgz", - "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmmirror.com/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", - "license": "MIT" - }, - "node_modules/cssdb": { - "version": "7.11.2", - "resolved": "https://registry.npmmirror.com/cssdb/-/cssdb-7.11.2.tgz", - "integrity": "sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - } - ], - "license": "CC0-1.0" - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "5.1.15", - "resolved": "https://registry.npmmirror.com/cssnano/-/cssnano-5.1.15.tgz", - "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", - "license": "MIT", - "dependencies": { - "cssnano-preset-default": "^5.2.14", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-preset-default": { - "version": "5.2.14", - "resolved": "https://registry.npmmirror.com/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", - "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", - "license": "MIT", - "dependencies": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.1", - "postcss-convert-values": "^5.1.3", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.4", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.4", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.2", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "license": "MIT", - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "license": "CC0-1.0" - }, - "node_modules/csso/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmmirror.com/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "license": "MIT" - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "license": "MIT", - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmmirror.com/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "license": "MIT" - }, "node_modules/csstype": { "version": "3.1.3", - "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "license": "MIT" }, - "node_modules/d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmmirror.com/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", - "license": "ISC", - "dependencies": { - "internmap": "1 - 2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-binarytree": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/d3-binarytree/-/d3-binarytree-1.0.2.tgz", - "integrity": "sha512-cElUNH+sHu95L04m92pG73t2MEJXKu+GeKUN1TJkFsu93E5W8E9Sc3kHEGJKgenGvj19m6upSn2EunvMgMD2Yw==", - "license": "MIT" - }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dispatch": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz", - "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dsv": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-dsv/-/d3-dsv-3.0.1.tgz", - "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", - "license": "ISC", - "dependencies": { - "commander": "7", - "iconv-lite": "0.6", - "rw": "1" - }, - "bin": { - "csv2json": "bin/dsv2json.js", - "csv2tsv": "bin/dsv2dsv.js", - "dsv2dsv": "bin/dsv2dsv.js", - "dsv2json": "bin/dsv2json.js", - "json2csv": "bin/json2dsv.js", - "json2dsv": "bin/json2dsv.js", - "json2tsv": "bin/json2dsv.js", - "tsv2csv": "bin/dsv2dsv.js", - "tsv2json": "bin/dsv2json.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dsv/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-fetch/-/d3-fetch-3.0.1.tgz", - "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", - "license": "ISC", - "dependencies": { - "d3-dsv": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-force": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/d3-force/-/d3-force-3.0.0.tgz", - "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", - "license": "ISC", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-quadtree": "1 - 3", - "d3-timer": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-force-3d": { - "version": "3.0.6", - "resolved": "https://registry.npmmirror.com/d3-force-3d/-/d3-force-3d-3.0.6.tgz", - "integrity": "sha512-4tsKHUPLOVkyfEffZo1v6sFHvGFwAIIjt/W8IThbp08DYAsXZck+2pSHEG5W1+gQgEvFLdZkYvmJAbRM2EzMnA==", - "license": "MIT", - "dependencies": { - "d3-binarytree": "1", - "d3-dispatch": "1 - 3", - "d3-octree": "1", - "d3-quadtree": "1 - 3", - "d3-timer": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-format": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/d3-format/-/d3-format-3.1.0.tgz", - "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-geo": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/d3-geo/-/d3-geo-3.1.1.tgz", - "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", - "license": "ISC", - "dependencies": { - "d3-array": "2.5.0 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-geo-projection": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", - "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", - "license": "ISC", - "dependencies": { - "commander": "7", - "d3-array": "1 - 3", - "d3-geo": "1.12.0 - 3" - }, - "bin": { - "geo2svg": "bin/geo2svg.js", - "geograticule": "bin/geograticule.js", - "geoproject": "bin/geoproject.js", - "geoquantize": "bin/geoquantize.js", - "geostitch": "bin/geostitch.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-geo-projection/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/d3-hierarchy": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", - "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-octree": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/d3-octree/-/d3-octree-1.1.0.tgz", - "integrity": "sha512-F8gPlqpP+HwRPMO/8uOu5wjH110+6q4cgJvgJT6vlpy3BEaDIKlTZrgHKZSp/i1InRpVfh4puY/kvL6MxK930A==", - "license": "MIT" - }, - "node_modules/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-quadtree": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz", - "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-random": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-random/-/d3-random-3.0.1.tgz", - "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-regression": { - "version": "1.3.10", - "resolved": "https://registry.npmmirror.com/d3-regression/-/d3-regression-1.3.10.tgz", - "integrity": "sha512-PF8GWEL70cHHWpx2jUQXc68r1pyPHIA+St16muk/XRokETzlegj5LriNKg7o4LR0TySug4nHYPJNNRz/W+/Niw==", - "license": "BSD-3-Clause" - }, - "node_modules/d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", - "license": "ISC", - "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-scale-chromatic": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", - "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3", - "d3-interpolate": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-shape": { - "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", - "license": "ISC", - "dependencies": { - "d3-path": "^3.1.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", - "license": "ISC", - "dependencies": { - "d3-array": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", - "license": "ISC", - "dependencies": { - "d3-time": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmmirror.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "license": "BSD-2-Clause" - }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "license": "MIT", - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/data-view-buffer": { "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "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", @@ -9190,8 +2134,9 @@ }, "node_modules/data-view-byte-length": { "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "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", @@ -9207,8 +2152,9 @@ }, "node_modules/data-view-byte-offset": { "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "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", @@ -9222,22 +2168,6 @@ "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", - "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/kossnocorp" - } - }, - "node_modules/date-fns-jalali": { - "version": "4.1.0-0", - "resolved": "https://registry.npmmirror.com/date-fns-jalali/-/date-fns-jalali-4.1.0-0.tgz", - "integrity": "sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==", - "license": "MIT" - }, "node_modules/dayjs": { "version": "1.11.13", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", @@ -9246,8 +2176,9 @@ }, "node_modules/debug": { "version": "4.4.1", - "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.1.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -9261,87 +2192,27 @@ } } }, - "node_modules/decimal.js": { - "version": "10.5.0", - "resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.5.0.tgz", - "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", - "license": "MIT" - }, - "node_modules/decimal.js-light": { - "version": "2.5.1", - "resolved": "https://registry.npmmirror.com/decimal.js-light/-/decimal.js-light-2.5.1.tgz", - "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==", - "license": "MIT" - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmmirror.com/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "license": "MIT" - }, - "node_modules/deep-equal": { - "version": "2.2.3", - "resolved": "https://registry.npmmirror.com/deep-equal/-/deep-equal-2.2.3.tgz", - "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.5", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.2", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/deep-is": { "version": "0.1.4", - "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz", + "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/deepmerge": { "version": "4.3.1", - "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmmirror.com/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "license": "BSD-2-Clause", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/define-data-property": { "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", + "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": { "es-define-property": "^1.0.0", @@ -9355,19 +2226,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/define-properties": { "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", @@ -9383,123 +2246,32 @@ }, "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "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/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "license": "MIT" - }, - "node_modules/detect-node-es": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", - "license": "MIT" - }, - "node_modules/detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmmirror.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "license": "MIT", - "dependencies": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "license": "Apache-2.0", + "optional": true, "bin": { - "detect": "bin/detect-port", - "detect-port": "bin/detect-port" + "detect-libc": "bin/detect-libc.js" }, "engines": { - "node": ">= 4.2.1" - } - }, - "node_modules/detect-port-alt/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/detect-port-alt/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "license": "Apache-2.0" - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "devOptional": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=0.10" } }, "node_modules/dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, "license": "MIT", "dependencies": { "path-type": "^4.0.0" @@ -9508,166 +2280,22 @@ "node": ">=8" } }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "license": "MIT" - }, - "node_modules/dns-packet": { - "version": "5.6.1", - "resolved": "https://registry.npmmirror.com/dns-packet/-/dns-packet-5.6.1.tgz", - "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", - "license": "MIT", - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, "engines": { - "node": ">=6.0.0" + "node": ">=0.10.0" } }, - "node_modules/dom-accessibility-api": { - "version": "0.5.16", - "resolved": "https://registry.npmmirror.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", - "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", - "license": "MIT" - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "license": "MIT", - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "deprecated": "Use your platform's native DOMException instead", - "license": "MIT", - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmmirror.com/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=10" - } - }, - "node_modules/dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", - "license": "BSD-2-Clause" - }, "node_modules/dunder-proto": { "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", "license": "MIT", "dependencies": { @@ -9679,153 +2307,42 @@ "node": ">= 0.4" } }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "license": "MIT" - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "license": "MIT" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "license": "MIT" - }, - "node_modules/ejs": { - "version": "3.1.10", - "resolved": "https://registry.npmmirror.com/ejs/-/ejs-3.1.10.tgz", - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "node_modules/echarts": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.6.0.tgz", + "integrity": "sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==", "license": "Apache-2.0", "dependencies": { - "jake": "^10.8.5" + "tslib": "2.3.0", + "zrender": "5.6.1" + } + }, + "node_modules/echarts-for-react": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/echarts-for-react/-/echarts-for-react-3.0.2.tgz", + "integrity": "sha512-DRwIiTzx8JfwPOVgGttDytBqdp5VzCSyMRIxubgU/g2n9y3VLUmF2FK7Icmg/sNVkv4+rktmrLN9w22U2yy3fA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "size-sensor": "^1.0.1" }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" + "peerDependencies": { + "echarts": "^3.0.0 || ^4.0.0 || ^5.0.0", + "react": "^15.0.0 || >=16.0.0" } }, "node_modules/electron-to-chromium": { - "version": "1.5.179", - "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.179.tgz", - "integrity": "sha512-UWKi/EbBopgfFsc5k61wFpV7WrnnSlSzW/e2XcBmS6qKYTivZlLtoll5/rdqRTxGglGHkmkW0j0pFNJG10EUIQ==", + "version": "1.5.186", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.186.tgz", + "integrity": "sha512-lur7L4BFklgepaJxj4DqPk7vKbTEl0pajNlg2QjE5shefmlmBLm2HvQ7PMf1R/GvlevT/581cop33/quQcfX3A==", + "dev": true, "license": "ISC" }, - "node_modules/embla-carousel": { - "version": "8.5.1", - "resolved": "https://registry.npmmirror.com/embla-carousel/-/embla-carousel-8.5.1.tgz", - "integrity": "sha512-JUb5+FOHobSiWQ2EJNaueCNT/cQU9L6XWBbWmorWPQT9bkbk+fhsuLr8wWrzXKagO3oWszBO7MSx+GfaRk4E6A==", - "license": "MIT" - }, - "node_modules/embla-carousel-react": { - "version": "8.5.1", - "resolved": "https://registry.npmmirror.com/embla-carousel-react/-/embla-carousel-react-8.5.1.tgz", - "integrity": "sha512-z9Y0K84BJvhChXgqn2CFYbfEi6AwEr+FFVVKm/MqbTQ2zIzO1VQri6w67LcfpVF0AjbhwVMywDZqY4alYkjW5w==", - "license": "MIT", - "dependencies": { - "embla-carousel": "8.5.1", - "embla-carousel-reactive-utils": "8.5.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - } - }, - "node_modules/embla-carousel-reactive-utils": { - "version": "8.5.1", - "resolved": "https://registry.npmmirror.com/embla-carousel-reactive-utils/-/embla-carousel-reactive-utils-8.5.1.tgz", - "integrity": "sha512-n7VSoGIiiDIc4MfXF3ZRTO59KDp820QDuyBDGlt5/65+lumPHxX2JLz0EZ23hZ4eg4vZGUXwMkYv02fw2JVo/A==", - "license": "MIT", - "peerDependencies": { - "embla-carousel": "8.5.1" - } - }, - "node_modules/emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmmirror.com/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "license": "MIT" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.18.2", - "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.18.2.tgz", - "integrity": "sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/error-stack-parser": { - "version": "2.1.4", - "resolved": "https://registry.npmmirror.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz", - "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", - "license": "MIT", - "dependencies": { - "stackframe": "^1.3.4" - } - }, "node_modules/es-abstract": { "version": "1.24.0", - "resolved": "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.24.0.tgz", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", + "dev": true, "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.2", @@ -9890,15 +2407,9 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "license": "MIT" - }, "node_modules/es-define-property": { "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "license": "MIT", "engines": { @@ -9907,37 +2418,18 @@ }, "node_modules/es-errors": { "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "license": "MIT", "engines": { "node": ">= 0.4" } }, - "node_modules/es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/es-iterator-helpers": { "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.8", @@ -9961,15 +2453,9 @@ "node": ">= 0.4" } }, - "node_modules/es-module-lexer": { - "version": "1.7.0", - "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz", - "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", - "license": "MIT" - }, "node_modules/es-object-atoms": { "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", "license": "MIT", "dependencies": { @@ -9981,7 +2467,7 @@ }, "node_modules/es-set-tostringtag": { "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "license": "MIT", "dependencies": { @@ -9996,8 +2482,9 @@ }, "node_modules/es-shim-unscopables": { "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, "license": "MIT", "dependencies": { "hasown": "^2.0.2" @@ -10008,8 +2495,9 @@ }, "node_modules/es-to-primitive": { "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "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", @@ -10023,35 +2511,63 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-toolkit": { - "version": "1.39.6", - "resolved": "https://registry.npmmirror.com/es-toolkit/-/es-toolkit-1.39.6.tgz", - "integrity": "sha512-uiVjnLem6kkfXumlwUEWEKnwUN5QbSEB0DHy2rNJt0nkYcob5K0TXJ7oJRzhAcvx+SRmz4TahKyN5V9cly/IPA==", + "node_modules/esbuild": { + "version": "0.25.6", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.6.tgz", + "integrity": "sha512-GVuzuUwtdsghE3ocJ9Bs8PNoF13HNQ5TXbEi2AhvVb8xU1Iwt9Fos9FEamfoee+u/TOsn7GUWc04lz46n2bbTg==", + "dev": true, + "hasInstallScript": true, "license": "MIT", - "workspaces": [ - "docs", - "benchmarks" - ] + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.6", + "@esbuild/android-arm": "0.25.6", + "@esbuild/android-arm64": "0.25.6", + "@esbuild/android-x64": "0.25.6", + "@esbuild/darwin-arm64": "0.25.6", + "@esbuild/darwin-x64": "0.25.6", + "@esbuild/freebsd-arm64": "0.25.6", + "@esbuild/freebsd-x64": "0.25.6", + "@esbuild/linux-arm": "0.25.6", + "@esbuild/linux-arm64": "0.25.6", + "@esbuild/linux-ia32": "0.25.6", + "@esbuild/linux-loong64": "0.25.6", + "@esbuild/linux-mips64el": "0.25.6", + "@esbuild/linux-ppc64": "0.25.6", + "@esbuild/linux-riscv64": "0.25.6", + "@esbuild/linux-s390x": "0.25.6", + "@esbuild/linux-x64": "0.25.6", + "@esbuild/netbsd-arm64": "0.25.6", + "@esbuild/netbsd-x64": "0.25.6", + "@esbuild/openbsd-arm64": "0.25.6", + "@esbuild/openbsd-x64": "0.25.6", + "@esbuild/openharmony-arm64": "0.25.6", + "@esbuild/sunos-x64": "0.25.6", + "@esbuild/win32-arm64": "0.25.6", + "@esbuild/win32-ia32": "0.25.6", + "@esbuild/win32-x64": "0.25.6" + } }, "node_modules/escalade": { "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz", + "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-html": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "license": "MIT" - }, "node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "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" @@ -10060,42 +2576,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eslint": { "version": "8.57.1", - "resolved": "https://registry.npmmirror.com/eslint/-/eslint-8.57.1.tgz", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", @@ -10147,218 +2632,55 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint-config-react-app": { - "version": "7.0.1", - "resolved": "https://registry.npmmirror.com/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", - "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, "license": "MIT", - "dependencies": { - "@babel/core": "^7.16.0", - "@babel/eslint-parser": "^7.16.3", - "@rushstack/eslint-patch": "^1.1.0", - "@typescript-eslint/eslint-plugin": "^5.5.0", - "@typescript-eslint/parser": "^5.5.0", - "babel-preset-react-app": "^10.0.1", - "confusing-browser-globals": "^1.0.11", - "eslint-plugin-flowtype": "^8.0.3", - "eslint-plugin-import": "^2.25.3", - "eslint-plugin-jest": "^25.3.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.27.1", - "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-testing-library": "^5.0.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "eslint": "^8.0.0" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmmirror.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.12.1", - "resolved": "https://registry.npmmirror.com/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", - "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", - "license": "MIT", - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-flowtype": { - "version": "8.0.3", - "resolved": "https://registry.npmmirror.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", - "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", - "license": "BSD-3-Clause", - "dependencies": { - "lodash": "^4.17.21", - "string-natural-compare": "^3.0.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@babel/plugin-syntax-flow": "^7.14.5", - "@babel/plugin-transform-react-jsx": "^7.14.9", - "eslint": "^8.1.0" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.32.0", - "resolved": "https://registry.npmmirror.com/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", - "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", - "license": "MIT", - "dependencies": { - "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.9", - "array.prototype.findlastindex": "^1.2.6", - "array.prototype.flat": "^1.3.3", - "array.prototype.flatmap": "^1.3.3", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.1", - "hasown": "^2.0.2", - "is-core-module": "^2.16.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "object.groupby": "^1.0.3", - "object.values": "^1.2.1", - "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.9", - "tsconfig-paths": "^3.15.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-jest": { - "version": "25.7.0", - "resolved": "https://registry.npmmirror.com/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", - "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/experimental-utils": "^5.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "eslint-config-prettier": "bin/cli.js" }, "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.1.tgz", + "integrity": "sha512-dobTkHT6XaEVOo8IO90Q4DOSxnm3Y151QxPJlM/vKC0bVy+d6cVWQZLlFiuZPP0wS6vZwSKeJgKkcS+KfMBlRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.11.7" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", + "prettier": ">=3.0.0" }, "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { + "@types/eslint": { "optional": true }, - "jest": { + "eslint-config-prettier": { "optional": true } } }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.10.2", - "resolved": "https://registry.npmmirror.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", - "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", - "license": "MIT", - "dependencies": { - "aria-query": "^5.3.2", - "array-includes": "^3.1.8", - "array.prototype.flatmap": "^1.3.2", - "ast-types-flow": "^0.0.8", - "axe-core": "^4.10.0", - "axobject-query": "^4.1.0", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "hasown": "^2.0.2", - "jsx-ast-utils": "^3.3.5", - "language-tags": "^1.0.9", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "safe-regex-test": "^1.0.3", - "string.prototype.includes": "^2.0.1" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" - } - }, "node_modules/eslint-plugin-react": { "version": "7.37.5", - "resolved": "https://registry.npmmirror.com/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "dev": true, "license": "MIT", "dependencies": { "array-includes": "^3.1.8", @@ -10388,75 +2710,23 @@ } }, "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.2", - "resolved": "https://registry.npmmirror.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", - "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", + "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" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmmirror.com/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-testing-library": { - "version": "5.11.1", - "resolved": "https://registry.npmmirror.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.1.tgz", - "integrity": "sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/utils": "^5.58.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0", - "npm": ">=6" - }, - "peerDependencies": { - "eslint": "^7.5.0 || ^8.0.0" + "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-scope": { "version": "7.2.2", - "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.2.2.tgz", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", @@ -10471,8 +2741,9 @@ }, "node_modules/eslint-visitor-keys": { "version": "3.4.3", - "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "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" @@ -10481,142 +2752,24 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", - "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", - "license": "MIT", + "node_modules/eslint/node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "@types/eslint": "^7.29.0 || ^8.4.1", - "jest-worker": "^28.0.2", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0" + "esutils": "^2.0.2" }, "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0", - "webpack": "^5.0.0" - } - }, - "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/eslint-webpack-plugin/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "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/eslint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6.0.0" } }, "node_modules/espree": { "version": "9.6.1", - "resolved": "https://registry.npmmirror.com/espree/-/espree-9.6.1.tgz", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.9.0", @@ -10630,23 +2783,11 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/esquery": { "version": "1.6.0", - "resolved": "https://registry.npmmirror.com/esquery/-/esquery-1.6.0.tgz", + "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" @@ -10657,8 +2798,9 @@ }, "node_modules/esrecurse": { "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz", + "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" @@ -10669,169 +2811,42 @@ }, "node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "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/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "license": "MIT" - }, "node_modules/esutils": { "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", + "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/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "license": "MIT" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmmirror.com/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmmirror.com/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "license": "MIT" }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/fast-glob": { "version": "3.3.3", - "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.3.tgz", + "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", @@ -10846,8 +2861,9 @@ }, "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "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" @@ -10858,72 +2874,48 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "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.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, "license": "MIT" }, - "node_modules/fast-uri": { - "version": "3.0.6", - "resolved": "https://registry.npmmirror.com/fast-uri/-/fast-uri-3.0.6.tgz", - "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", - "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.19.1", - "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.19.1.tgz", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmmirror.com/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "license": "Apache-2.0", - "dependencies": { - "websocket-driver": ">=0.5.1" + "node_modules/fdir": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", + "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" }, - "engines": { - "node": ">=0.8.0" + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "license": "Apache-2.0", - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/fecha": { - "version": "4.2.3", - "resolved": "https://registry.npmmirror.com/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", - "license": "MIT" - }, "node_modules/file-entry-cache": { "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" @@ -10932,87 +2924,11 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmmirror.com/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/file-loader/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "license": "Apache-2.0", - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/filesize": { - "version": "8.0.7", - "resolved": "https://registry.npmmirror.com/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/fill-range": { "version": "7.1.1", - "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "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" @@ -11021,83 +2937,28 @@ "node": ">=8" } }, - "node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "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": "^5.0.0", + "locate-path": "^6.0.0", "path-exists": "^4.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmmirror.com/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/flat-cache": { "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.2.0.tgz", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, "license": "MIT", "dependencies": { "flatted": "^3.2.9", @@ -11110,22 +2971,14 @@ }, "node_modules/flatted": { "version": "3.3.3", - "resolved": "https://registry.npmmirror.com/flatted/-/flatted-3.3.3.tgz", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, "license": "ISC" }, - "node_modules/flru": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/flru/-/flru-1.0.2.tgz", - "integrity": "sha512-kWyh8ADvHBFz6ua5xYOPnUroZTT/bwWfrCeL0Wj1dzG4/YOmOcfJ99W8dOVyyynJN35rZ9aCOtHChqQovV7yog==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/follow-redirects": { "version": "1.15.9", - "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.9.tgz", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "funding": [ { @@ -11145,8 +2998,9 @@ }, "node_modules/for-each": { "version": "0.3.5", - "resolved": "https://registry.npmmirror.com/for-each/-/for-each-0.3.5.tgz", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, "license": "MIT", "dependencies": { "is-callable": "^1.2.7" @@ -11158,229 +3012,32 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmmirror.com/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "6.5.3", - "resolved": "https://registry.npmmirror.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", - "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=10", - "yarn": ">=1.0.0" - }, - "peerDependencies": { - "eslint": ">= 6", - "typescript": ">= 2.7", - "vue-template-compiler": "*", - "webpack": ">= 4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/form-data": { - "version": "3.0.3", - "resolved": "https://registry.npmmirror.com/form-data/-/form-data-3.0.3.tgz", - "integrity": "sha512-q5YBMeWy6E2Un0nMGWMgI65MAKtaylxfNJGJxpGh45YDciZB4epbWpaAfImil6CPAPTYB4sh0URQNDRIZG5F2w==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", - "mime-types": "^2.1.35" + "hasown": "^2.0.2", + "mime-types": "^2.1.12" }, "engines": { "node": ">= 6" } }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/frac": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz", - "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==", - "license": "Apache-2.0", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.6", - "resolved": "https://registry.npmmirror.com/fs-monkey/-/fs-monkey-1.0.6.tgz", - "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", - "license": "Unlicense" - }, "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, "license": "ISC" }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": 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", - "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "license": "MIT", "funding": { @@ -11389,8 +3046,9 @@ }, "node_modules/function.prototype.name": { "version": "1.1.8", - "resolved": "https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "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", @@ -11409,8 +3067,9 @@ }, "node_modules/functions-have-names": { "version": "1.2.3", - "resolved": "https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz", + "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" @@ -11418,25 +3077,17 @@ }, "node_modules/gensync": { "version": "1.0.0-beta.2", - "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz", + "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-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, "node_modules/get-intrinsic": { "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "license": "MIT", "dependencies": { @@ -11458,33 +3109,9 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "license": "ISC" - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmmirror.com/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/get-proto": { "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "license": "MIT", "dependencies": { @@ -11495,22 +3122,11 @@ "node": ">= 0.4" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/get-symbol-description": { "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "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", @@ -11524,17 +3140,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gl-matrix": { - "version": "3.4.3", - "resolved": "https://registry.npmmirror.com/gl-matrix/-/gl-matrix-3.4.3.tgz", - "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==", - "license": "MIT" - }, "node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", @@ -11553,8 +3163,9 @@ }, "node_modules/glob-parent": { "version": "6.0.2", - "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz", + "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" @@ -11563,54 +3174,11 @@ "node": ">=10.13.0" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "license": "BSD-2-Clause" - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "license": "MIT", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "license": "MIT", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmmirror.com/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, "node_modules/globals": { "version": "13.24.0", - "resolved": "https://registry.npmmirror.com/globals/-/globals-13.24.0.tgz", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, "license": "MIT", "dependencies": { "type-fest": "^0.20.2" @@ -11624,8 +3192,9 @@ }, "node_modules/globalthis": { "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz", + "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", @@ -11640,8 +3209,9 @@ }, "node_modules/globby": { "version": "11.1.0", - "resolved": "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, "license": "MIT", "dependencies": { "array-union": "^2.1.0", @@ -11658,18 +3228,9 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/goober": { - "version": "2.1.16", - "resolved": "https://registry.npmmirror.com/goober/-/goober-2.1.16.tgz", - "integrity": "sha512-erjk19y1U33+XAMe1VTvIONHYoSqE4iS7BYUZfHaqeohLmnC0FdxEh7rQU+6MZ4OajItzjZFSRtVANrQwNq6/g==", - "license": "MIT", - "peerDependencies": { - "csstype": "^3.0.10" - } - }, "node_modules/gopd": { "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "license": "MIT", "engines": { @@ -11679,49 +3240,18 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC" - }, "node_modules/graphemer": { "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/graphemer/-/graphemer-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, "license": "MIT" }, - "node_modules/gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "license": "MIT", - "dependencies": { - "duplexer": "^0.1.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "license": "MIT" - }, - "node_modules/harmony-reflect": { - "version": "1.6.2", - "resolved": "https://registry.npmmirror.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz", - "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==", - "license": "(Apache-2.0 OR MPL-1.1)" - }, "node_modules/has-bigints": { "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/has-bigints/-/has-bigints-1.1.0.tgz", + "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" @@ -11732,8 +3262,9 @@ }, "node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "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" @@ -11741,8 +3272,9 @@ }, "node_modules/has-property-descriptors": { "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "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": { "es-define-property": "^1.0.0" @@ -11753,8 +3285,9 @@ }, "node_modules/has-proto": { "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.2.0.tgz", + "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" @@ -11768,7 +3301,7 @@ }, "node_modules/has-symbols": { "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "license": "MIT", "engines": { @@ -11780,7 +3313,7 @@ }, "node_modules/has-tostringtag": { "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "license": "MIT", "dependencies": { @@ -11795,7 +3328,7 @@ }, "node_modules/hasown": { "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "license": "MIT", "dependencies": { @@ -11805,360 +3338,28 @@ "node": ">= 0.4" } }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "license": "BSD-3-Clause", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hoist-non-react-statics/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/hoopy": { - "version": "0.1.4", - "resolved": "https://registry.npmmirror.com/hoopy/-/hoopy-0.1.4.tgz", - "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", - "license": "MIT", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmmirror.com/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "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/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "license": "MIT", - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-entities": { - "version": "2.6.0", - "resolved": "https://registry.npmmirror.com/html-entities/-/html-entities-2.6.0.tgz", - "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ], - "license": "MIT" - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "license": "MIT" - }, - "node_modules/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "license": "MIT", - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/html-webpack-plugin": { - "version": "5.6.3", - "resolved": "https://registry.npmmirror.com/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz", - "integrity": "sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==", - "license": "MIT", - "dependencies": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/html-webpack-plugin" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.20.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmmirror.com/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "license": "MIT" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.10", - "resolved": "https://registry.npmmirror.com/http-parser-js/-/http-parser-js-0.5.10.tgz", - "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", - "license": "MIT" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmmirror.com/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "license": "MIT", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "license": "MIT", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.9", - "resolved": "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", - "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==", - "license": "MIT", - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/idb": { - "version": "7.1.1", - "resolved": "https://registry.npmmirror.com/idb/-/idb-7.1.1.tgz", - "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", - "license": "ISC" - }, - "node_modules/identity-obj-proxy": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", - "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", - "license": "MIT", - "dependencies": { - "harmony-reflect": "^1.4.6" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/ignore": { "version": "5.3.2", - "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.3.2.tgz", + "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/immer": { - "version": "9.0.21", - "resolved": "https://registry.npmmirror.com/immer/-/immer-9.0.21.tgz", - "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } + "node_modules/immutable": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.3.tgz", + "integrity": "sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==", + "dev": true, + "license": "MIT" }, "node_modules/import-fresh": { "version": "3.3.1", - "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.1.tgz", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, "license": "MIT", "dependencies": { "parent-module": "^1.0.0", @@ -12171,57 +3372,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/import-local/-/import-local-3.2.0.tgz", - "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", - "license": "MIT", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz", + "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/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/inflight": { "version": "1.0.6", - "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, "license": "ISC", "dependencies": { "once": "^1.3.0", @@ -12230,30 +3395,16 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, "license": "ISC" }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "license": "ISC" - }, - "node_modules/input-otp": { - "version": "1.4.1", - "resolved": "https://registry.npmmirror.com/input-otp/-/input-otp-1.4.1.tgz", - "integrity": "sha512-+yvpmKYKHi9jIGngxagY9oWiiblPB7+nEO75F2l2o4vs+6vpPZZmUl4tBNYuTCvQjhvEIbdNeJu70bhfYP2nbw==", - "license": "MIT", - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc" - } - }, "node_modules/internal-slot": { "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.1.0.tgz", + "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", @@ -12264,50 +3415,17 @@ "node": ">= 0.4" } }, - "node_modules/internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "node_modules/intersection-observer": { "version": "0.12.2", "resolved": "https://registry.npmjs.org/intersection-observer/-/intersection-observer-0.12.2.tgz", "integrity": "sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==", "license": "Apache-2.0" }, - "node_modules/ipaddr.js": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/is-arguments": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/is-arguments/-/is-arguments-1.2.0.tgz", - "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", - "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.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "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": { "call-bind": "^1.0.8", @@ -12321,16 +3439,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "license": "MIT" - }, "node_modules/is-async-function": { "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/is-async-function/-/is-async-function-2.1.1.tgz", + "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", @@ -12348,8 +3461,9 @@ }, "node_modules/is-bigint": { "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/is-bigint/-/is-bigint-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, "license": "MIT", "dependencies": { "has-bigints": "^1.0.2" @@ -12361,22 +3475,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/is-boolean-object": { "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.3", @@ -12391,8 +3494,9 @@ }, "node_modules/is-callable": { "version": "1.2.7", - "resolved": "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz", + "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" @@ -12403,8 +3507,9 @@ }, "node_modules/is-core-module": { "version": "2.16.1", - "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.16.1.tgz", + "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" @@ -12418,8 +3523,9 @@ }, "node_modules/is-data-view": { "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/is-data-view/-/is-data-view-1.0.2.tgz", + "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", @@ -12435,8 +3541,9 @@ }, "node_modules/is-date-object": { "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/is-date-object/-/is-date-object-1.1.0.tgz", + "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", @@ -12449,25 +3556,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "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" @@ -12475,8 +3568,9 @@ }, "node_modules/is-finalizationregistry": { "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "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" @@ -12488,28 +3582,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/is-generator-function": { "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/is-generator-function/-/is-generator-function-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.3", @@ -12526,8 +3603,9 @@ }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "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" @@ -12538,8 +3616,9 @@ }, "node_modules/is-map": { "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/is-map/-/is-map-2.0.3.tgz", + "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" @@ -12548,16 +3627,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "license": "MIT" - }, "node_modules/is-negative-zero": { "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -12568,8 +3642,9 @@ }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "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" @@ -12577,8 +3652,9 @@ }, "node_modules/is-number-object": { "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/is-number-object/-/is-number-object-1.1.1.tgz", + "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", @@ -12591,59 +3667,21 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-path-inside": { "version": "3.0.3", - "resolved": "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-3.0.3.tgz", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "license": "MIT" - }, "node_modules/is-regex": { "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/is-regex/-/is-regex-1.2.1.tgz", + "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": { "call-bound": "^1.0.2", @@ -12658,28 +3696,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/is-set": { "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/is-set/-/is-set-2.0.3.tgz", + "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" @@ -12690,8 +3711,9 @@ }, "node_modules/is-shared-array-buffer": { "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "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" @@ -12703,22 +3725,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-string": { "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/is-string/-/is-string-1.1.1.tgz", + "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", @@ -12733,8 +3744,9 @@ }, "node_modules/is-symbol": { "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/is-symbol/-/is-symbol-1.1.1.tgz", + "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", @@ -12750,8 +3762,9 @@ }, "node_modules/is-typed-array": { "version": "1.1.15", - "resolved": "https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.15.tgz", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, "license": "MIT", "dependencies": { "which-typed-array": "^1.1.16" @@ -12763,16 +3776,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "license": "MIT" - }, "node_modules/is-weakmap": { "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/is-weakmap/-/is-weakmap-2.0.2.tgz", + "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" @@ -12783,8 +3791,9 @@ }, "node_modules/is-weakref": { "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.3" @@ -12798,8 +3807,9 @@ }, "node_modules/is-weakset": { "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/is-weakset/-/is-weakset-2.0.4.tgz", + "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", @@ -12812,143 +3822,25 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/isarray": { "version": "2.0.5", - "resolved": "https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "license": "ISC" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmmirror.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report/node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmmirror.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "ISC" }, "node_modules/iterator.prototype": { "version": "1.1.5", - "resolved": "https://registry.npmmirror.com/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", @@ -12962,945 +3854,6 @@ "node": ">= 0.4" } }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmmirror.com/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "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/jake": { - "version": "10.9.2", - "resolved": "https://registry.npmmirror.com/jake/-/jake-10.9.2.tgz", - "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", - "license": "Apache-2.0", - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", - "license": "MIT", - "dependencies": { - "@jest/core": "^27.5.1", - "import-local": "^3.0.2", - "jest-cli": "^27.5.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", - "license": "MIT", - "dependencies": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-config": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", - "license": "MIT", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", - "license": "MIT", - "dependencies": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmmirror.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", - "license": "MIT", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-watch-typeahead": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", - "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.0.0", - "jest-regex-util": "^28.0.0", - "jest-watcher": "^28.0.0", - "slash": "^4.0.0", - "string-length": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "jest": "^27.0.0 || ^28.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@jest/console": { - "version": "28.1.3", - "resolved": "https://registry.npmmirror.com/@jest/console/-/console-28.1.3.tgz", - "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", - "license": "MIT", - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@jest/console/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": { - "version": "28.1.3", - "resolved": "https://registry.npmmirror.com/@jest/test-result/-/test-result-28.1.3.tgz", - "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", - "license": "MIT", - "dependencies": { - "@jest/console": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@jest/types": { - "version": "28.1.3", - "resolved": "https://registry.npmmirror.com/@jest/types/-/types-28.1.3.tgz", - "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", - "license": "MIT", - "dependencies": { - "@jest/schemas": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/@types/yargs": { - "version": "17.0.33", - "resolved": "https://registry.npmmirror.com/@types/yargs/-/yargs-17.0.33.tgz", - "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/jest-watch-typeahead/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/node_modules/emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmmirror.com/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmmirror.com/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-message-util/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": { - "version": "28.0.2", - "resolved": "https://registry.npmmirror.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz", - "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", - "license": "MIT", - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmmirror.com/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "license": "MIT", - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-watcher": { - "version": "28.1.3", - "resolved": "https://registry.npmmirror.com/jest-watcher/-/jest-watcher-28.1.3.tgz", - "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", - "license": "MIT", - "dependencies": { - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "jest-util": "^28.1.3", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "license": "MIT", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watch-typeahead/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmmirror.com/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "license": "MIT", - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmmirror.com/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "license": "MIT" - }, - "node_modules/jest-watch-typeahead/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watch-typeahead/node_modules/string-length": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/string-length/-/string-length-5.0.1.tgz", - "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", - "license": "MIT", - "dependencies": { - "char-regex": "^2.0.0", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/char-regex/-/char-regex-2.0.2.tgz", - "integrity": "sha512-cbGOjAptfM2LVmWhwRFHEKTPkLwNddVmuqYZQt895yXwAsWsXObCG+YN4DGQ/JBtT4GP1a1lPPdio2z413LmTg==", - "license": "MIT", - "engines": { - "node": ">=12.20" - } - }, - "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", - "license": "MIT", - "dependencies": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jiti": { - "version": "1.21.7", - "resolved": "https://registry.npmmirror.com/jiti/-/jiti-1.21.7.tgz", - "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", - "license": "MIT", - "bin": { - "jiti": "bin/jiti.js" - } - }, "node_modules/js-cookie": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", @@ -13912,73 +3865,28 @@ }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "license": "MIT" }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "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": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmmirror.com/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "license": "MIT", - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, "node_modules/jsesc": { "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, "license": "MIT", "bin": { "jsesc": "bin/jsesc" @@ -13989,38 +3897,39 @@ }, "node_modules/json-buffer": { "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz", + "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-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "license": "MIT" - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmmirror.com/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "license": "(AFL-2.1 OR BSD-3-Clause)" - }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "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.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "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/json2mq": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", + "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==", + "license": "MIT", + "dependencies": { + "string-convert": "^0.2.0" + } + }, "node_modules/json5": { "version": "2.2.3", - "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "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" @@ -14029,54 +3938,11 @@ "node": ">=6" } }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonpath": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/jsonpath/-/jsonpath-1.1.1.tgz", - "integrity": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==", - "license": "MIT", - "dependencies": { - "esprima": "1.2.2", - "static-eval": "2.0.2", - "underscore": "1.12.1" - } - }, - "node_modules/jsonpath/node_modules/esprima": { - "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/esprima/-/esprima-1.2.2.tgz", - "integrity": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/jsonpointer": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/jsonpointer/-/jsonpointer-5.0.1.tgz", - "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/jsx-ast-utils": { "version": "3.3.5", - "resolved": "https://registry.npmmirror.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, "license": "MIT", "dependencies": { "array-includes": "^3.1.6", @@ -14090,81 +3956,19 @@ }, "node_modules/keyv": { "version": "4.5.4", - "resolved": "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz", + "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/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmmirror.com/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/klona": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/language-subtag-registry": { - "version": "0.3.23", - "resolved": "https://registry.npmmirror.com/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", - "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", - "license": "CC0-1.0" - }, - "node_modules/language-tags": { - "version": "1.0.9", - "resolved": "https://registry.npmmirror.com/language-tags/-/language-tags-1.0.9.tgz", - "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", - "license": "MIT", - "dependencies": { - "language-subtag-registry": "^0.3.20" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/launch-editor": { - "version": "2.10.0", - "resolved": "https://registry.npmmirror.com/launch-editor/-/launch-editor-2.10.0.tgz", - "integrity": "sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA==", - "license": "MIT", - "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/levn": { "version": "0.4.1", - "resolved": "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz", + "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", @@ -14174,101 +3978,38 @@ "node": ">= 0.8.0" } }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "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" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "license": "MIT" - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "license": "MIT", - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { "version": "4.17.21", - "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "license": "MIT" }, - "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "license": "MIT" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "license": "MIT" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "license": "MIT" - }, "node_modules/lodash.merge": { "version": "4.6.2", - "resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "license": "MIT" - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmmirror.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", - "license": "MIT" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true, "license": "MIT" }, "node_modules/loose-envify": { "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "license": "MIT", "dependencies": { @@ -14278,164 +4019,40 @@ "loose-envify": "cli.js" } }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.3" - } - }, "node_modules/lru-cache": { "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz", + "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/lucide-react": { - "version": "0.525.0", - "resolved": "https://registry.npmmirror.com/lucide-react/-/lucide-react-0.525.0.tgz", - "integrity": "sha512-Tm1txJ2OkymCGkvwoHt33Y2JpN5xucVq1slHcgE6Lk0WjDfjgKWor5CdVER8U6DvcfMwh4M8XxmpTiyzfmfDYQ==", - "license": "ISC", - "peerDependencies": { - "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/lz-string": { - "version": "1.5.0", - "resolved": "https://registry.npmmirror.com/lz-string/-/lz-string-1.5.0.tgz", - "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", - "license": "MIT", - "bin": { - "lz-string": "bin/bin.js" - } - }, - "node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "license": "MIT", - "dependencies": { - "sourcemap-codec": "^1.4.8" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmmirror.com/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "devOptional": true, - "license": "ISC" - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmmirror.com/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.5" - } - }, "node_modules/math-intrinsics": { "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "license": "MIT", "engines": { "node": ">= 0.4" } }, - "node_modules/mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", - "license": "CC0-1.0" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmmirror.com/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", - "license": "Unlicense", - "dependencies": { - "fs-monkey": "^1.0.4" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "license": "MIT" - }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "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/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/micromatch": { "version": "4.0.8", - "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.8.tgz", + "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", @@ -14445,21 +4062,22 @@ "node": ">=8.6" } }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "node_modules/micromatch/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", - "bin": { - "mime": "cli.js" - }, "engines": { - "node": ">=4" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/mime-db": { "version": "1.52.0", - "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "license": "MIT", "engines": { @@ -14468,7 +4086,7 @@ }, "node_modules/mime-types": { "version": "2.1.35", - "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "license": "MIT", "dependencies": { @@ -14478,54 +4096,11 @@ "node": ">= 0.6" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "2.9.2", - "resolved": "https://registry.npmmirror.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", - "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", - "license": "MIT", - "dependencies": { - "schema-utils": "^4.0.0", - "tapable": "^2.2.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "license": "ISC" - }, "node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "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" @@ -14534,70 +4109,29 @@ "node": "*" } }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmmirror.com/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, "node_modules/ms": { "version": "2.1.3", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT" }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmmirror.com/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "license": "MIT", - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } + "node_modules/mutation-observer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mutation-observer/-/mutation-observer-1.0.3.tgz", + "integrity": "sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA==" }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } + "node_modules/nano-memoize": { + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/nano-memoize/-/nano-memoize-3.0.16.tgz", + "integrity": "sha512-JyK96AKVGAwVeMj3MoMhaSXaUNqgMbCRSQB3trUV8tYZfWEzqUBKdK1qJpfuNXgKeHOx1jv/IEYTM659ly7zUA==", + "license": "MIT" }, "node_modules/nanoid": { "version": "3.3.11", - "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.11.tgz", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, "funding": [ { "type": "github", @@ -14614,144 +4148,41 @@ }, "node_modules/natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, "license": "MIT" }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "license": "MIT" - }, - "node_modules/negotiator": { - "version": "0.6.4", - "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "license": "MIT" - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "license": "MIT", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmmirror.com/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "license": "(BSD-3-Clause OR GPL-2.0)", - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmmirror.com/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "license": "MIT" + "optional": true }, "node_modules/node-releases": { "version": "2.0.19", - "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.19.tgz", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "license": "MIT" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/nwsapi": { - "version": "2.2.20", - "resolved": "https://registry.npmmirror.com/nwsapi/-/nwsapi-2.2.20.tgz", - "integrity": "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==", + "dev": true, "license": "MIT" }, "node_modules/object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, "node_modules/object-inspect": { "version": "1.13.4", - "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.4.tgz", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -14760,26 +4191,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object-is": { - "version": "1.1.6", - "resolved": "https://registry.npmmirror.com/object-is/-/object-is-1.1.6.tgz", - "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", - "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.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -14787,8 +4203,9 @@ }, "node_modules/object.assign": { "version": "4.1.7", - "resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.7.tgz", + "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": { "call-bind": "^1.0.8", @@ -14807,8 +4224,9 @@ }, "node_modules/object.entries": { "version": "1.1.9", - "resolved": "https://registry.npmmirror.com/object.entries/-/object.entries-1.1.9.tgz", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.8", @@ -14822,8 +4240,9 @@ }, "node_modules/object.fromentries": { "version": "2.0.8", - "resolved": "https://registry.npmmirror.com/object.fromentries/-/object.fromentries-2.0.8.tgz", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -14838,45 +4257,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.8", - "resolved": "https://registry.npmmirror.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz", - "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==", - "license": "MIT", - "dependencies": { - "array.prototype.reduce": "^1.0.6", - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "gopd": "^1.0.1", - "safe-array-concat": "^1.1.2" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/object.groupby/-/object.groupby-1.0.3.tgz", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/object.values": { "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/object.values/-/object.values-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.8", @@ -14891,78 +4276,21 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "license": "MIT" - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/once": { "version": "1.4.0", - "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, "license": "ISC", "dependencies": { "wrappy": "1" } }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmmirror.com/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "license": "MIT", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/optionator": { "version": "0.9.4", - "resolved": "https://registry.npmmirror.com/optionator/-/optionator-0.9.4.tgz", + "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", @@ -14978,8 +4306,9 @@ }, "node_modules/own-keys": { "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/own-keys/-/own-keys-1.0.1.tgz", + "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", @@ -14994,74 +4323,42 @@ } }, "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "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": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "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": "^2.2.0" + "p-limit": "^3.0.2" }, "engines": { - "node": ">=8" - } - }, - "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmmirror.com/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "license": "MIT", - "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" + "node": ">=10" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "license": "BlueOak-1.0.0" - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "license": "MIT", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz", + "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" @@ -15070,53 +4367,11 @@ "node": ">=6" } }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "license": "MIT" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, "node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", + "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" @@ -15124,8 +4379,9 @@ }, "node_modules/path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -15133,8 +4389,9 @@ }, "node_modules/path-key": { "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "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" @@ -15142,169 +4399,46 @@ }, "node_modules/path-parse": { "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmmirror.com/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "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.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "license": "ISC" - }, - "node_modules/path-to-regexp": { - "version": "0.1.12", - "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "dev": true, "license": "MIT" }, "node_modules/path-type": { "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/pdfast": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/pdfast/-/pdfast-0.2.0.tgz", - "integrity": "sha512-cq6TTu6qKSFUHwEahi68k/kqN2mfepjkGrG9Un70cgdRRKLKY6Rf8P8uvP2NvZktaQZNF3YE7agEkLj0vGK9bA==", - "license": "MIT" - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "license": "MIT" - }, "node_modules/picocolors": { "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz", + "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.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.7", - "resolved": "https://registry.npmmirror.com/pirates/-/pirates-4.0.7.tgz", - "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "license": "MIT", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "license": "MIT", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "license": "MIT", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "license": "MIT", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/possible-typed-array-names": { "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -15312,8 +4446,9 @@ }, "node_modules/postcss": { "version": "8.5.6", - "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.6.tgz", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, "funding": [ { "type": "opencollective", @@ -15338,1376 +4473,60 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/postcss-attribute-case-insensitive": { - "version": "5.0.2", - "resolved": "https://registry.npmmirror.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", - "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-browser-comments": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", - "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", - "license": "CC0-1.0", - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "browserslist": ">=4", - "postcss": ">=8" - } - }, - "node_modules/postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmmirror.com/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/postcss-clamp": { - "version": "4.1.0", - "resolved": "https://registry.npmmirror.com/postcss-clamp/-/postcss-clamp-4.1.0.tgz", - "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=7.6.0" - }, - "peerDependencies": { - "postcss": "^8.4.6" - } - }, - "node_modules/postcss-color-functional-notation": { - "version": "4.2.4", - "resolved": "https://registry.npmmirror.com/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", - "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-color-hex-alpha": { - "version": "8.0.4", - "resolved": "https://registry.npmmirror.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", - "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-color-rebeccapurple": { - "version": "7.1.1", - "resolved": "https://registry.npmmirror.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", - "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-colormin": { - "version": "5.3.1", - "resolved": "https://registry.npmmirror.com/postcss-colormin/-/postcss-colormin-5.3.1.tgz", - "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-convert-values": { - "version": "5.1.3", - "resolved": "https://registry.npmmirror.com/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", - "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-custom-media": { - "version": "8.0.2", - "resolved": "https://registry.npmmirror.com/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", - "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/postcss-custom-properties": { - "version": "12.1.11", - "resolved": "https://registry.npmmirror.com/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz", - "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-custom-selectors": { - "version": "6.0.3", - "resolved": "https://registry.npmmirror.com/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", - "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/postcss-dir-pseudo-class": { - "version": "6.0.5", - "resolved": "https://registry.npmmirror.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", - "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", - "license": "CC0-1.0", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-double-position-gradients": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", - "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-env-function": { - "version": "4.0.6", - "resolved": "https://registry.npmmirror.com/postcss-env-function/-/postcss-env-function-4.0.6.tgz", - "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-flexbugs-fixes": { - "version": "5.0.2", - "resolved": "https://registry.npmmirror.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", - "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", - "license": "MIT", - "peerDependencies": { - "postcss": "^8.1.4" - } - }, - "node_modules/postcss-focus-visible": { - "version": "6.0.4", - "resolved": "https://registry.npmmirror.com/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", - "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", - "license": "CC0-1.0", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-focus-within": { - "version": "5.0.4", - "resolved": "https://registry.npmmirror.com/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", - "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", - "license": "CC0-1.0", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-font-variant": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", - "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "license": "MIT", - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-gap-properties": { - "version": "3.0.5", - "resolved": "https://registry.npmmirror.com/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", - "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", - "license": "CC0-1.0", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-image-set-function": { - "version": "4.0.7", - "resolved": "https://registry.npmmirror.com/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", - "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmmirror.com/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "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-initial": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/postcss-initial/-/postcss-initial-4.0.1.tgz", - "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "node_modules/postcss-pxtorem": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-pxtorem/-/postcss-pxtorem-6.1.0.tgz", + "integrity": "sha512-ROODSNci9ADal3zUcPHOF/K83TiCgNSPXQFSbwyPHNV8ioHIE4SaC+FPOufd8jsr5jV2uIz29v1Uqy1c4ov42g==", + "dev": true, "license": "MIT", "peerDependencies": { "postcss": "^8.0.0" } }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmmirror.com/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "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-lab-function": { - "version": "4.2.1", - "resolved": "https://registry.npmmirror.com/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", - "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "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-load-config/node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/postcss-load-config/node_modules/yaml": { - "version": "2.8.0", - "resolved": "https://registry.npmmirror.com/yaml/-/yaml-2.8.0.tgz", - "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - } - }, - "node_modules/postcss-loader": { - "version": "6.2.1", - "resolved": "https://registry.npmmirror.com/postcss-loader/-/postcss-loader-6.2.1.tgz", - "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", - "license": "MIT", - "dependencies": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "semver": "^7.3.5" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - } - }, - "node_modules/postcss-logical": { - "version": "5.0.4", - "resolved": "https://registry.npmmirror.com/postcss-logical/-/postcss-logical-5.0.4.tgz", - "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", - "license": "CC0-1.0", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-media-minmax": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", - "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "5.1.7", - "resolved": "https://registry.npmmirror.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", - "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-merge-rules": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", - "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", - "license": "MIT", - "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-params": { - "version": "5.1.4", - "resolved": "https://registry.npmmirror.com/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", - "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", - "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", - "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", - "license": "MIT", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.2.1", - "resolved": "https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", - "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", - "license": "ISC", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "license": "ISC", - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-nested": { - "version": "6.2.0", - "resolved": "https://registry.npmmirror.com/postcss-nested/-/postcss-nested-6.2.0.tgz", - "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", - "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-nesting": { - "version": "10.2.0", - "resolved": "https://registry.npmmirror.com/postcss-nesting/-/postcss-nesting-10.2.0.tgz", - "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/selector-specificity": "^2.0.0", - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-normalize": { - "version": "10.0.1", - "resolved": "https://registry.npmmirror.com/postcss-normalize/-/postcss-normalize-10.0.1.tgz", - "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/normalize.css": "*", - "postcss-browser-comments": "^4", - "sanitize.css": "*" - }, - "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "browserslist": ">= 4", - "postcss": ">= 8" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "license": "MIT", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", - "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", - "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", - "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", - "license": "MIT", - "dependencies": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-opacity-percentage": { - "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz", - "integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==", - "funding": [ - { - "type": "kofi", - "url": "https://ko-fi.com/mrcgrtz" - }, - { - "type": "liberapay", - "url": "https://liberapay.com/mrcgrtz" - } - ], - "license": "MIT", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-ordered-values": { - "version": "5.1.3", - "resolved": "https://registry.npmmirror.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", - "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", - "license": "MIT", - "dependencies": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-overflow-shorthand": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", - "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-page-break": { - "version": "3.0.4", - "resolved": "https://registry.npmmirror.com/postcss-page-break/-/postcss-page-break-3.0.4.tgz", - "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "license": "MIT", - "peerDependencies": { - "postcss": "^8" - } - }, - "node_modules/postcss-place": { - "version": "7.0.5", - "resolved": "https://registry.npmmirror.com/postcss-place/-/postcss-place-7.0.5.tgz", - "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", - "license": "CC0-1.0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-preset-env": { - "version": "7.8.3", - "resolved": "https://registry.npmmirror.com/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz", - "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==", - "license": "CC0-1.0", - "dependencies": { - "@csstools/postcss-cascade-layers": "^1.1.1", - "@csstools/postcss-color-function": "^1.1.1", - "@csstools/postcss-font-format-keywords": "^1.0.1", - "@csstools/postcss-hwb-function": "^1.0.2", - "@csstools/postcss-ic-unit": "^1.0.1", - "@csstools/postcss-is-pseudo-class": "^2.0.7", - "@csstools/postcss-nested-calc": "^1.0.0", - "@csstools/postcss-normalize-display-values": "^1.0.1", - "@csstools/postcss-oklab-function": "^1.1.1", - "@csstools/postcss-progressive-custom-properties": "^1.3.0", - "@csstools/postcss-stepped-value-functions": "^1.0.1", - "@csstools/postcss-text-decoration-shorthand": "^1.0.0", - "@csstools/postcss-trigonometric-functions": "^1.0.2", - "@csstools/postcss-unset-value": "^1.0.2", - "autoprefixer": "^10.4.13", - "browserslist": "^4.21.4", - "css-blank-pseudo": "^3.0.3", - "css-has-pseudo": "^3.0.4", - "css-prefers-color-scheme": "^6.0.3", - "cssdb": "^7.1.0", - "postcss-attribute-case-insensitive": "^5.0.2", - "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^4.2.4", - "postcss-color-hex-alpha": "^8.0.4", - "postcss-color-rebeccapurple": "^7.1.1", - "postcss-custom-media": "^8.0.2", - "postcss-custom-properties": "^12.1.10", - "postcss-custom-selectors": "^6.0.3", - "postcss-dir-pseudo-class": "^6.0.5", - "postcss-double-position-gradients": "^3.1.2", - "postcss-env-function": "^4.0.6", - "postcss-focus-visible": "^6.0.4", - "postcss-focus-within": "^5.0.4", - "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^3.0.5", - "postcss-image-set-function": "^4.0.7", - "postcss-initial": "^4.0.1", - "postcss-lab-function": "^4.2.1", - "postcss-logical": "^5.0.4", - "postcss-media-minmax": "^5.0.0", - "postcss-nesting": "^10.2.0", - "postcss-opacity-percentage": "^1.1.2", - "postcss-overflow-shorthand": "^3.0.4", - "postcss-page-break": "^3.0.4", - "postcss-place": "^7.0.5", - "postcss-pseudo-class-any-link": "^7.1.6", - "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^6.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-pseudo-class-any-link": { - "version": "7.1.6", - "resolved": "https://registry.npmmirror.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", - "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", - "license": "CC0-1.0", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "5.1.2", - "resolved": "https://registry.npmmirror.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", - "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-replace-overflow-wrap": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", - "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "license": "MIT", - "peerDependencies": { - "postcss": "^8.0.3" - } - }, - "node_modules/postcss-selector-not": { - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", - "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.2" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/postcss-svgo/node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/postcss-svgo/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "license": "CC0-1.0" - }, - "node_modules/postcss-svgo/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-svgo/node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmmirror.com/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "license": "MIT", - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "license": "MIT" - }, "node_modules/prelude-ls": { "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz", + "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/pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmmirror.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "node_modules/prettier": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", + "dev": true, "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, "engines": { - "node": ">=6" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, "license": "MIT", "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmmirror.com/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" + "fast-diff": "^1.1.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "license": "MIT" - }, - "node_modules/promise": { - "version": "8.3.0", - "resolved": "https://registry.npmmirror.com/promise/-/promise-8.3.0.tgz", - "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", - "license": "MIT", - "dependencies": { - "asap": "~2.0.6" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmmirror.com/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" + "node": ">=6.0.0" } }, "node_modules/prop-types": { "version": "15.8.1", - "resolved": "https://registry.npmmirror.com/prop-types/-/prop-types-15.8.1.tgz", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", @@ -16717,95 +4536,32 @@ }, "node_modules/prop-types/node_modules/react-is": { "version": "16.13.1", - "resolved": "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true, "license": "MIT" }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, "node_modules/proxy-from-env": { "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "license": "MIT" }, - "node_modules/psl": { - "version": "1.15.0", - "resolved": "https://registry.npmmirror.com/psl/-/psl-1.15.0.tgz", - "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "funding": { - "url": "https://github.com/sponsors/lupomontero" - } - }, "node_modules/punycode": { "version": "2.3.1", - "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz", + "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/q": { - "version": "1.5.1", - "resolved": "https://registry.npmmirror.com/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", - "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", - "license": "MIT", - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmmirror.com/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "license": "MIT" - }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, "funding": [ { "type": "github", @@ -16822,78 +4578,615 @@ ], "license": "MIT" }, - "node_modules/quickselect": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", - "license": "ISC" - }, - "node_modules/raf": { - "version": "3.4.1", - "resolved": "https://registry.npmmirror.com/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "node_modules/rc-cascader": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.34.0.tgz", + "integrity": "sha512-KpXypcvju9ptjW9FaN2NFcA2QH9E9LHKq169Y0eWtH4e/wHQ5Wh5qZakAgvb8EKZ736WZ3B0zLLOBsrsja5Dag==", "license": "MIT", "dependencies": { - "performance-now": "^2.1.0" + "@babel/runtime": "^7.25.7", + "classnames": "^2.3.1", + "rc-select": "~14.16.2", + "rc-tree": "~5.13.0", + "rc-util": "^5.43.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" } }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "node_modules/rc-checkbox": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.5.0.tgz", + "integrity": "sha512-aOAQc3E98HteIIsSqm6Xk2FPKIER6+5vyEFMZfo73TqM+VVAIqOkHoPjgKLqSNtVLWScoaM7vY2ZrGEheI79yg==", "license": "MIT", "dependencies": { - "safe-buffer": "^5.1.0" + "@babel/runtime": "^7.10.1", + "classnames": "^2.3.2", + "rc-util": "^5.25.2" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" } }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "node_modules/rc-collapse": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.9.0.tgz", + "integrity": "sha512-swDdz4QZ4dFTo4RAUMLL50qP0EY62N2kvmk2We5xYdRwcRn8WcYtuetCJpwpaCbUfUt5+huLpVxhvmnK+PHrkA==", "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.3.4", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-dialog": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.6.0.tgz", + "integrity": "sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/portal": "^1.0.0-8", + "classnames": "^2.2.6", + "rc-motion": "^2.3.0", + "rc-util": "^5.21.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-drawer": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.3.0.tgz", + "integrity": "sha512-DX6CIgiBWNpJIMGFO8BAISFkxiuKitoizooj4BDyee8/SnBn0zwO2FHrNDpqqepj0E/TFTDpmEBCyFuTgC7MOg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@rc-component/portal": "^1.1.1", + "classnames": "^2.2.6", + "rc-motion": "^2.6.1", + "rc-util": "^5.38.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-dropdown": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.2.1.tgz", + "integrity": "sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.6", + "rc-util": "^5.44.1" + }, + "peerDependencies": { + "react": ">=16.11.0", + "react-dom": ">=16.11.0" + } + }, + "node_modules/rc-field-form": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.44.0.tgz", + "integrity": "sha512-el7w87fyDUsca63Y/s8qJcq9kNkf/J5h+iTdqG5WsSHLH0e6Usl7QuYSmSVzJMgtp40mOVZIY/W/QP9zwrp1FA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "async-validator": "^4.1.0", + "rc-util": "^5.32.2" }, "engines": { - "node": ">= 0.8" + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" } }, - "node_modules/raw-body/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "node_modules/rc-image": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.12.0.tgz", + "integrity": "sha512-cZ3HTyyckPnNnUb9/DRqduqzLfrQRyi+CdHjdqgsyDpI3Ln5UX1kXnAhPBSJj9pVRzwRFgqkN7p9b6HBDjmu/Q==", "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "@babel/runtime": "^7.11.2", + "@rc-component/portal": "^1.0.2", + "classnames": "^2.2.6", + "rc-dialog": "~9.6.0", + "rc-motion": "^2.6.2", + "rc-util": "^5.34.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-input": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.8.0.tgz", + "integrity": "sha512-KXvaTbX+7ha8a/k+eg6SYRVERK0NddX8QX7a7AnRvUa/rEH0CNMlpcBzBkhI0wp2C8C4HlMoYl8TImSN+fuHKA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.18.1" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/rc-input-number": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-9.5.0.tgz", + "integrity": "sha512-bKaEvB5tHebUURAEXw35LDcnRZLq3x1k7GxfAqBMzmpHkDGzjAtnUL8y4y5N15rIFIg5IJgwr211jInl3cipag==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/mini-decimal": "^1.0.1", + "classnames": "^2.2.5", + "rc-input": "~1.8.0", + "rc-util": "^5.40.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-mentions": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.20.0.tgz", + "integrity": "sha512-w8HCMZEh3f0nR8ZEd466ATqmXFCMGMN5UFCzEUL0bM/nGw/wOS2GgRzKBcm19K++jDyuWCOJOdgcKGXU3fXfbQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.22.5", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.6", + "rc-input": "~1.8.0", + "rc-menu": "~9.16.0", + "rc-textarea": "~1.10.0", + "rc-util": "^5.34.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-menu": { + "version": "9.16.1", + "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.16.1.tgz", + "integrity": "sha512-ghHx6/6Dvp+fw8CJhDUHFHDJ84hJE3BXNCzSgLdmNiFErWSOaZNsihDAsKq9ByTALo/xkNIwtDFGIl6r+RPXBg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.0.0", + "classnames": "2.x", + "rc-motion": "^2.4.3", + "rc-overflow": "^1.3.1", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-motion": { + "version": "2.9.5", + "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.5.tgz", + "integrity": "sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.44.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-notification": { + "version": "5.6.4", + "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.6.4.tgz", + "integrity": "sha512-KcS4O6B4qzM3KH7lkwOB7ooLPZ4b6J+VMmQgT51VZCeEcmghdeR4IrMcFq0LG+RPdnbe/ArT086tGM8Snimgiw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.9.0", + "rc-util": "^5.20.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" } }, - "node_modules/rbush": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/rbush/-/rbush-3.0.1.tgz", - "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", + "node_modules/rc-overflow": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.4.1.tgz", + "integrity": "sha512-3MoPQQPV1uKyOMVNd6SZfONi+f3st0r8PksexIdBTeIYbMX0Jr+k7pHEDvsXtR4BpCv90/Pv2MovVNhktKrwvw==", "license": "MIT", "dependencies": { - "quickselect": "^2.0.0" + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.37.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-pagination": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-5.1.0.tgz", + "integrity": "sha512-8416Yip/+eclTFdHXLKTxZvn70duYVGTvUUWbckCCZoIl3jagqke3GLsFrMs0bsQBikiYpZLD9206Ej4SOdOXQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.3.2", + "rc-util": "^5.38.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-picker": { + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.11.3.tgz", + "integrity": "sha512-MJ5teb7FlNE0NFHTncxXQ62Y5lytq6sh5nUw0iH8OkHL/TjARSEvSHpr940pWgjGANpjCwyMdvsEV55l5tYNSg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.1", + "rc-overflow": "^1.3.2", + "rc-resize-observer": "^1.4.0", + "rc-util": "^5.43.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "date-fns": ">= 2.x", + "dayjs": ">= 1.x", + "luxon": ">= 3.x", + "moment": ">= 2.x", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + }, + "peerDependenciesMeta": { + "date-fns": { + "optional": true + }, + "dayjs": { + "optional": true + }, + "luxon": { + "optional": true + }, + "moment": { + "optional": true + } + } + }, + "node_modules/rc-progress": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-4.0.0.tgz", + "integrity": "sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.6", + "rc-util": "^5.16.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-rate": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.13.1.tgz", + "integrity": "sha512-QUhQ9ivQ8Gy7mtMZPAjLbxBt5y9GRp65VcUyGUMF3N3fhiftivPHdpuDIaWIMOTEprAjZPC08bls1dQB+I1F2Q==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.0.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-resize-observer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.4.3.tgz", + "integrity": "sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.7", + "classnames": "^2.2.1", + "rc-util": "^5.44.1", + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-segmented": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.4.1.tgz", + "integrity": "sha512-KUi+JJFdKnumV9iXlm+BJ00O4NdVBp2TEexLCk6bK1x/RH83TvYKQMzIz/7m3UTRPD08RM/8VG/JNjWgWbd4cw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-motion": "^2.4.4", + "rc-util": "^5.17.0" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/rc-select": { + "version": "14.16.8", + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.16.8.tgz", + "integrity": "sha512-NOV5BZa1wZrsdkKaiK7LHRuo5ZjZYMDxPP6/1+09+FB4KoNi8jcG1ZqLE3AVCxEsYMBe65OBx71wFoHRTP3LRg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.1.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-overflow": "^1.3.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-slider": { + "version": "11.1.8", + "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-11.1.8.tgz", + "integrity": "sha512-2gg/72YFSpKP+Ja5AjC5DPL1YnV8DEITDQrcc1eASrUYjl0esptaBVJBh5nLTXCCp15eD8EuGjwezVGSHhs9tQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.36.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-steps": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-6.0.1.tgz", + "integrity": "sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.16.7", + "classnames": "^2.2.3", + "rc-util": "^5.16.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-switch": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-4.1.0.tgz", + "integrity": "sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.21.0", + "classnames": "^2.2.1", + "rc-util": "^5.30.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-table": { + "version": "7.51.1", + "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.51.1.tgz", + "integrity": "sha512-5iq15mTHhvC42TlBLRCoCBLoCmGlbRZAlyF21FonFnS/DIC8DeRqnmdyVREwt2CFbPceM0zSNdEeVfiGaqYsKw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/context": "^1.4.0", + "classnames": "^2.2.5", + "rc-resize-observer": "^1.1.0", + "rc-util": "^5.44.3", + "rc-virtual-list": "^3.14.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tabs": { + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-15.6.1.tgz", + "integrity": "sha512-/HzDV1VqOsUWyuC0c6AkxVYFjvx9+rFPKZ32ejxX0Uc7QCzcEjTA9/xMgv4HemPKwzBNX8KhGVbbumDjnj92aA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "classnames": "2.x", + "rc-dropdown": "~4.2.0", + "rc-menu": "~9.16.0", + "rc-motion": "^2.6.2", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.34.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-textarea": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.10.0.tgz", + "integrity": "sha512-ai9IkanNuyBS4x6sOL8qu/Ld40e6cEs6pgk93R+XLYg0mDSjNBGey6/ZpDs5+gNLD7urQ14po3V6Ck2dJLt9SA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.1", + "rc-input": "~1.8.0", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tooltip": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.4.0.tgz", + "integrity": "sha512-kqyivim5cp8I5RkHmpsp1Nn/Wk+1oeloMv9c7LXNgDxUpGm+RbXJGL+OPvDlcRnx9DBeOe4wyOIl4OKUERyH1g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.1", + "rc-util": "^5.44.3" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tree": { + "version": "5.13.1", + "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.13.1.tgz", + "integrity": "sha512-FNhIefhftobCdUJshO7M8uZTA9F4OPGVXqGfZkkD/5soDeOhwO06T/aKTrg0WD8gRg/pyfq+ql3aMymLHCTC4A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.1" + }, + "engines": { + "node": ">=10.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-tree-select": { + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.27.0.tgz", + "integrity": "sha512-2qTBTzwIT7LRI1o7zLyrCzmo5tQanmyGbSaGTIf7sYimCklAToVVfpMC6OAldSKolcnjorBYPNSKQqJmN3TCww==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.25.7", + "classnames": "2.x", + "rc-select": "~14.16.2", + "rc-tree": "~5.13.0", + "rc-util": "^5.43.0" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-upload": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.9.2.tgz", + "integrity": "sha512-nHx+9rbd1FKMiMRYsqQ3NkXUv7COHPBo3X1Obwq9SWS6/diF/A0aJ5OHubvwUAIDs+4RMleljV0pcrNUc823GQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "classnames": "^2.2.5", + "rc-util": "^5.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-util": { + "version": "5.44.4", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.44.4.tgz", + "integrity": "sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "react-is": "^18.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-virtual-list": { + "version": "3.19.1", + "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.19.1.tgz", + "integrity": "sha512-DCapO2oyPqmooGhxBuXHM4lFuX+sshQwWqqkuyFA+4rShLe//+GEPVwiDgO+jKtKHtbeYwZoNvetwfHdOf+iUQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.0", + "classnames": "^2.2.6", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.36.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" } }, "node_modules/react": { "version": "18.3.1", - "resolved": "https://registry.npmmirror.com/react/-/react-18.3.1.tgz", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", "dependencies": { @@ -16903,152 +5196,9 @@ "node": ">=0.10.0" } }, - "node_modules/react-app-polyfill": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", - "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", - "license": "MIT", - "dependencies": { - "core-js": "^3.19.2", - "object-assign": "^4.1.1", - "promise": "^8.1.0", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.9", - "whatwg-fetch": "^3.6.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-day-picker": { - "version": "9.7.0", - "resolved": "https://registry.npmmirror.com/react-day-picker/-/react-day-picker-9.7.0.tgz", - "integrity": "sha512-urlK4C9XJZVpQ81tmVgd2O7lZ0VQldZeHzNejbwLWZSkzHH498KnArT0EHNfKBOWwKc935iMLGZdxXPRISzUxQ==", - "license": "MIT", - "dependencies": { - "@date-fns/tz": "1.2.0", - "date-fns": "4.1.0", - "date-fns-jalali": "4.1.0-0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "individual", - "url": "https://github.com/sponsors/gpbl" - }, - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/react-dev-utils": { - "version": "12.0.1", - "resolved": "https://registry.npmmirror.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz", - "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.11", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-dev-utils/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "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/react-dev-utils/node_modules/loader-utils": { - "version": "3.3.1", - "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-3.3.1.tgz", - "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", - "license": "MIT", - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/react-dev-utils/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/react-dom": { "version": "18.3.1", - "resolved": "https://registry.npmmirror.com/react-dom/-/react-dom-18.3.1.tgz", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", "dependencies": { @@ -17059,149 +5209,31 @@ "react": "^18.3.1" } }, - "node_modules/react-error-overlay": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/react-error-overlay/-/react-error-overlay-6.1.0.tgz", - "integrity": "sha512-SN/U6Ytxf1QGkw/9ve5Y+NxBbZM6Ht95tuXNMKs8EJyFa/Vy/+Co3stop3KBHARfn/giv+Lj1uUnTfOJ3moFEQ==", - "license": "MIT" - }, "node_modules/react-fast-compare": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", "license": "MIT" }, - "node_modules/react-hook-form": { - "version": "7.59.0", - "resolved": "https://registry.npmmirror.com/react-hook-form/-/react-hook-form-7.59.0.tgz", - "integrity": "sha512-kmkek2/8grqarTJExFNjy+RXDIP8yM+QTl3QL6m6Q8b2bih4ltmiXxH7T9n+yXNK477xPh5yZT/6vD8sYGzJTA==", - "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-hot-toast": { - "version": "2.5.2", - "resolved": "https://registry.npmmirror.com/react-hot-toast/-/react-hot-toast-2.5.2.tgz", - "integrity": "sha512-Tun3BbCxzmXXM7C+NI4qiv6lT0uwGh4oAfeJyNOjYUejTsm35mK9iCaYLGv8cBz9L5YxZLx/2ii7zsIwPtPUdw==", - "license": "MIT", - "dependencies": { - "csstype": "^3.1.3", - "goober": "^2.1.16" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": ">=16", - "react-dom": ">=16" - } - }, "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmmirror.com/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "license": "MIT" }, - "node_modules/react-redux": { - "version": "9.2.0", - "resolved": "https://registry.npmmirror.com/react-redux/-/react-redux-9.2.0.tgz", - "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==", - "license": "MIT", - "dependencies": { - "@types/use-sync-external-store": "^0.0.6", - "use-sync-external-store": "^1.4.0" - }, - "peerDependencies": { - "@types/react": "^18.2.25 || ^19", - "react": "^18.0 || ^19", - "redux": "^5.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "redux": { - "optional": true - } - } - }, "node_modules/react-refresh": { - "version": "0.11.0", - "resolved": "https://registry.npmmirror.com/react-refresh/-/react-refresh-0.11.0.tgz", - "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/react-remove-scroll": { - "version": "2.7.1", - "resolved": "https://registry.npmmirror.com/react-remove-scroll/-/react-remove-scroll-2.7.1.tgz", - "integrity": "sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==", - "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.npmmirror.com/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-resizable-panels": { - "version": "2.1.9", - "resolved": "https://registry.npmmirror.com/react-resizable-panels/-/react-resizable-panels-2.1.9.tgz", - "integrity": "sha512-z77+X08YDIrgAes4jl8xhnUu1LNIRp4+E7cv4xHmLOxxUPO/ML7PSrE813b90vj7xvQ1lcf7g2uA9GeMZonjhQ==", - "license": "MIT", - "peerDependencies": { - "react": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", - "react-dom": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - } - }, "node_modules/react-router": { "version": "6.30.1", - "resolved": "https://registry.npmmirror.com/react-router/-/react-router-6.30.1.tgz", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.1.tgz", "integrity": "sha512-X1m21aEmxGXqENEPG3T6u0Th7g0aS4ZmoNynhbs+Cn+q+QGTLt+d5IQ2bHAXKzKcxGJjxACpVbnYQSCRcfxHlQ==", "license": "MIT", "dependencies": { @@ -17216,7 +5248,7 @@ }, "node_modules/react-router-dom": { "version": "6.30.1", - "resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.30.1.tgz", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.1.tgz", "integrity": "sha512-llKsgOkZdbPU1Eg3zK8lCn+sjD9wMRZZPuzmdWWX5SUs8OFkN5HnFVC0u5KMeMaC9aoancFI/KoLuKPqN+hxHw==", "license": "MIT", "dependencies": { @@ -17231,239 +5263,25 @@ "react-dom": ">=16.8" } }, - "node_modules/react-scripts": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/react-scripts/-/react-scripts-5.0.1.tgz", - "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.16.0", - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", - "@svgr/webpack": "^5.5.0", - "babel-jest": "^27.4.2", - "babel-loader": "^8.2.3", - "babel-plugin-named-asset-import": "^0.3.8", - "babel-preset-react-app": "^10.0.1", - "bfj": "^7.0.2", - "browserslist": "^4.18.1", - "camelcase": "^6.2.1", - "case-sensitive-paths-webpack-plugin": "^2.4.0", - "css-loader": "^6.5.1", - "css-minimizer-webpack-plugin": "^3.2.0", - "dotenv": "^10.0.0", - "dotenv-expand": "^5.1.0", - "eslint": "^8.3.0", - "eslint-config-react-app": "^7.0.1", - "eslint-webpack-plugin": "^3.1.1", - "file-loader": "^6.2.0", - "fs-extra": "^10.0.0", - "html-webpack-plugin": "^5.5.0", - "identity-obj-proxy": "^3.0.0", - "jest": "^27.4.3", - "jest-resolve": "^27.4.2", - "jest-watch-typeahead": "^1.0.0", - "mini-css-extract-plugin": "^2.4.5", - "postcss": "^8.4.4", - "postcss-flexbugs-fixes": "^5.0.2", - "postcss-loader": "^6.2.1", - "postcss-normalize": "^10.0.1", - "postcss-preset-env": "^7.0.1", - "prompts": "^2.4.2", - "react-app-polyfill": "^3.0.0", - "react-dev-utils": "^12.0.1", - "react-refresh": "^0.11.0", - "resolve": "^1.20.0", - "resolve-url-loader": "^4.0.0", - "sass-loader": "^12.3.0", - "semver": "^7.3.5", - "source-map-loader": "^3.0.0", - "style-loader": "^3.3.1", - "tailwindcss": "^3.0.2", - "terser-webpack-plugin": "^5.2.5", - "webpack": "^5.64.4", - "webpack-dev-server": "^4.6.0", - "webpack-manifest-plugin": "^4.0.2", - "workbox-webpack-plugin": "^6.4.1" - }, - "bin": { - "react-scripts": "bin/react-scripts.js" - }, - "engines": { - "node": ">=14.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - }, - "peerDependencies": { - "react": ">= 16", - "typescript": "^3.2.1 || ^4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/react-style-singleton": { - "version": "2.2.3", - "resolved": "https://registry.npmmirror.com/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/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "license": "MIT", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "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.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/recharts": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/recharts/-/recharts-3.0.2.tgz", - "integrity": "sha512-eDc3ile9qJU9Dp/EekSthQPhAVPG48/uM47jk+PF7VBQngxeW3cwQpPHb/GHC1uqwyCRWXcIrDzuHRVrnRryoQ==", - "license": "MIT", - "dependencies": { - "@reduxjs/toolkit": "1.x.x || 2.x.x", - "clsx": "^2.1.1", - "decimal.js-light": "^2.5.1", - "es-toolkit": "^1.39.3", - "eventemitter3": "^5.0.1", - "immer": "^10.1.1", - "react-redux": "8.x.x || 9.x.x", - "reselect": "5.1.1", - "tiny-invariant": "^1.3.3", - "use-sync-external-store": "^1.2.2", - "victory-vendor": "^37.0.2" + "node": ">= 14.18.0" }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-is": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/recharts/node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "license": "MIT" - }, - "node_modules/recharts/node_modules/immer": { - "version": "10.1.1", - "resolved": "https://registry.npmmirror.com/immer/-/immer-10.1.1.tgz", - "integrity": "sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==", - "license": "MIT", "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "node_modules/recursive-readdir": { - "version": "2.2.3", - "resolved": "https://registry.npmmirror.com/recursive-readdir/-/recursive-readdir-2.2.3.tgz", - "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", - "license": "MIT", - "dependencies": { - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "license": "MIT", - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/redux": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/redux/-/redux-5.0.1.tgz", - "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", - "license": "MIT" - }, - "node_modules/redux-thunk": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/redux-thunk/-/redux-thunk-3.1.0.tgz", - "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", - "license": "MIT", - "peerDependencies": { - "redux": "^5.0.0" + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", - "resolved": "https://registry.npmmirror.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "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", @@ -17482,40 +5300,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "license": "MIT" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.2.0", - "resolved": "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", - "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "license": "MIT" - }, - "node_modules/regex-parser": { - "version": "2.3.1", - "resolved": "https://registry.npmmirror.com/regex-parser/-/regex-parser-2.3.1.tgz", - "integrity": "sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ==", - "license": "MIT" - }, "node_modules/regexp.prototype.flags": { "version": "1.5.4", - "resolved": "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "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", @@ -17532,105 +5321,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regexpu-core": { - "version": "6.2.0", - "resolved": "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-6.2.0.tgz", - "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.0", - "regjsgen": "^0.8.0", - "regjsparser": "^0.12.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmmirror.com/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", - "license": "MIT" - }, - "node_modules/regjsparser": { - "version": "0.12.0", - "resolved": "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.12.0.tgz", - "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", - "license": "BSD-2-Clause", - "dependencies": { - "jsesc": "~3.0.2" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmmirror.com/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "license": "MIT", - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "license": "MIT" - }, - "node_modules/reselect": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/reselect/-/reselect-5.1.1.tgz", - "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==", - "license": "MIT" - }, "node_modules/resize-observer-polyfill": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", @@ -17638,134 +5328,38 @@ "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, "license": "MIT", "dependencies": { - "is-core-module": "^2.16.0", + "is-core-module": "^2.13.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-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-url-loader": { "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", - "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", - "license": "MIT", - "dependencies": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^7.0.35", - "source-map": "0.6.1" - }, - "engines": { - "node": ">=8.9" - }, - "peerDependencies": { - "rework": "1.0.1", - "rework-visit": "1.0.0" - }, - "peerDependenciesMeta": { - "rework": { - "optional": true - }, - "rework-visit": { - "optional": true - } - } - }, - "node_modules/resolve-url-loader/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "license": "MIT" - }, - "node_modules/resolve-url-loader/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "license": "ISC" - }, - "node_modules/resolve-url-loader/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmmirror.com/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "license": "MIT", - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/resolve-url-loader/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve.exports": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/resolve.exports/-/resolve.exports-1.1.1.tgz", - "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "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": ">=10" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmmirror.com/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "license": "MIT", - "engines": { - "node": ">= 4" + "node": ">=4" } }, "node_modules/reusify": { "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, "license": "MIT", "engines": { "iojs": ">=1.0.0", @@ -17774,9 +5368,9 @@ }, "node_modules/rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, "license": "ISC", "dependencies": { "glob": "^7.1.3" @@ -17789,63 +5383,50 @@ } }, "node_modules/rollup": { - "version": "2.79.2", - "resolved": "https://registry.npmmirror.com/rollup/-/rollup-2.79.2.tgz", - "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.45.1.tgz", + "integrity": "sha512-4iya7Jb76fVpQyLoiVpzUrsjQ12r3dM7fIVz+4NwoYvZOShknRmiv+iu9CClZml5ZLGb0XMcYLutK6w9tgxHDw==", + "dev": true, "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=10.0.0" + "node": ">=18.0.0", + "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.45.1", + "@rollup/rollup-android-arm64": "4.45.1", + "@rollup/rollup-darwin-arm64": "4.45.1", + "@rollup/rollup-darwin-x64": "4.45.1", + "@rollup/rollup-freebsd-arm64": "4.45.1", + "@rollup/rollup-freebsd-x64": "4.45.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.45.1", + "@rollup/rollup-linux-arm-musleabihf": "4.45.1", + "@rollup/rollup-linux-arm64-gnu": "4.45.1", + "@rollup/rollup-linux-arm64-musl": "4.45.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.45.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.45.1", + "@rollup/rollup-linux-riscv64-gnu": "4.45.1", + "@rollup/rollup-linux-riscv64-musl": "4.45.1", + "@rollup/rollup-linux-s390x-gnu": "4.45.1", + "@rollup/rollup-linux-x64-gnu": "4.45.1", + "@rollup/rollup-linux-x64-musl": "4.45.1", + "@rollup/rollup-win32-arm64-msvc": "4.45.1", + "@rollup/rollup-win32-ia32-msvc": "4.45.1", + "@rollup/rollup-win32-x64-msvc": "4.45.1", "fsevents": "~2.3.2" } }, - "node_modules/rollup-plugin-terser": { - "version": "7.0.2", - "resolved": "https://registry.npmmirror.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", - "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", - "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" - }, - "peerDependencies": { - "rollup": "^2.0.0" - } - }, - "node_modules/rollup-plugin-terser/node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, "funding": [ { "type": "github", @@ -17865,16 +5446,17 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/rw": { - "version": "1.3.3", - "resolved": "https://registry.npmmirror.com/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", - "license": "BSD-3-Clause" + "node_modules/runes2": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/runes2/-/runes2-1.1.4.tgz", + "integrity": "sha512-LNPnEDPOOU4ehF71m5JoQyzT2yxwD6ZreFJ7MxZUAoMKNMY1XrAo60H1CUoX5ncSm0rIuKlqn9JZNRrRkNou2g==", + "license": "MIT" }, "node_modules/safe-array-concat": { "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "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", @@ -17890,30 +5472,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "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.npmmirror.com/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "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", @@ -17928,8 +5491,9 @@ }, "node_modules/safe-regex-test": { "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "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": { "call-bound": "^1.0.2", @@ -17943,136 +5507,36 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, - "node_modules/sanitize.css": { - "version": "13.0.0", - "resolved": "https://registry.npmmirror.com/sanitize.css/-/sanitize.css-13.0.0.tgz", - "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==", - "license": "CC0-1.0" - }, - "node_modules/sass-loader": { - "version": "12.6.0", - "resolved": "https://registry.npmmirror.com/sass-loader/-/sass-loader-12.6.0.tgz", - "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "node_modules/sass": { + "version": "1.89.2", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.89.2.tgz", + "integrity": "sha512-xCmtksBKd/jdJ9Bt9p7nPKiuqrlBMBuuGkQlkhZjjQk3Ty48lv93k5Dq6OPkKt4XwxDJ7tvlfrTa1MPA9bf+QA==", + "dev": true, "license": "MIT", "dependencies": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" }, "engines": { - "node": ">= 12.13.0" + "node": ">=14.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - } - } - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "license": "ISC" - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "license": "ISC", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" } }, "node_modules/scheduler": { "version": "0.23.2", - "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.23.2.tgz", + "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/schema-utils": { - "version": "4.3.2", - "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.3.2.tgz", - "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "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/schema-utils/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/schema-utils/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" - }, "node_modules/screenfull": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/screenfull/-/screenfull-5.2.0.tgz", @@ -18085,191 +5549,30 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "license": "MIT" - }, - "node_modules/selfsigned": { - "version": "2.4.1", - "resolved": "https://registry.npmmirror.com/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "node_modules/scroll-into-view-if-needed": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", + "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", "license": "MIT", "dependencies": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" - }, - "engines": { - "node": ">=10" + "compute-scroll-into-view": "^3.0.2" } }, "node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "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" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmmirror.com/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmmirror.com/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "license": "MIT", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "license": "ISC" - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "license": "ISC" - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" } }, "node_modules/set-function-length": { "version": "1.2.2", - "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz", + "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": { "define-data-property": "^1.1.4", @@ -18285,8 +5588,9 @@ }, "node_modules/set-function-name": { "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.2.tgz", + "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", @@ -18300,8 +5604,9 @@ }, "node_modules/set-proto": { "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/set-proto/-/set-proto-1.0.0.tgz", + "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", @@ -18312,29 +5617,11 @@ "node": ">= 0.4" } }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "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" @@ -18345,29 +5632,19 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "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/shell-quote": { - "version": "1.8.3", - "resolved": "https://registry.npmmirror.com/shell-quote/-/shell-quote-1.8.3.tgz", - "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/side-channel": { "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -18385,8 +5662,9 @@ }, "node_modules/side-channel-list": { "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/side-channel-list/-/side-channel-list-1.0.0.tgz", + "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": { "es-errors": "^1.3.0", @@ -18401,8 +5679,9 @@ }, "node_modules/side-channel-map": { "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/side-channel-map/-/side-channel-map-1.0.1.tgz", + "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": { "call-bound": "^1.0.2", @@ -18419,8 +5698,9 @@ }, "node_modules/side-channel-weakmap": { "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "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": { "call-bound": "^1.0.2", @@ -18436,335 +5716,46 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "node_modules/size-sensor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/size-sensor/-/size-sensor-1.0.2.tgz", + "integrity": "sha512-2NCmWxY7A9pYKGXNBfteo4hy14gWu47rg5692peVMst6lQLPKrVjhY+UTEsPI5ceFRJSl3gVgMYaUi/hKuaiKw==", "license": "ISC" }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmmirror.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "license": "MIT" - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "license": "MIT" - }, "node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/smoothscroll-polyfill": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/smoothscroll-polyfill/-/smoothscroll-polyfill-0.4.4.tgz", - "integrity": "sha512-TK5ZA9U5RqCwMpfoMq/l1mrH0JAR7y7KRvOBx0n2869aLxch+gT9GhN3yUfjiw+d/DiF1mKo14+hd62JyMmoBg==", - "license": "MIT" - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmmirror.com/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "license": "MIT", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/sonner": { - "version": "1.7.4", - "resolved": "https://registry.npmmirror.com/sonner/-/sonner-1.7.4.tgz", - "integrity": "sha512-DIS8z4PfJRbIyfVFDVnK9rO3eYDtse4Omcm6bt0oEr5/jtLgysmjuBl1frJ9E/EQZrFmKx2A8m/s5s9CRXIzhw==", - "license": "MIT", - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", - "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" - } - }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "license": "MIT" - }, - "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, "node_modules/source-map-js": { "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz", + "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/source-map-loader": { - "version": "3.0.2", - "resolved": "https://registry.npmmirror.com/source-map-loader/-/source-map-loader-3.0.2.tgz", - "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", + "node_modules/staged-components": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/staged-components/-/staged-components-1.1.3.tgz", + "integrity": "sha512-9EIswzDqjwlEu+ymkV09TTlJfzSbKgEnNteUnZSTxkpMgr5Wx2CzzA9WcMFWBNCldqVPsHVnRGGrApduq2Se5A==", "license": "MIT", - "dependencies": { - "abab": "^2.0.5", - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead", - "license": "MIT" - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "license": "BSD-3-Clause" - }, - "node_modules/ssf": { - "version": "0.11.2", - "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz", - "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", - "license": "Apache-2.0", - "dependencies": { - "frac": "~1.1.2" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", - "license": "MIT" - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmmirror.com/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/stackframe": { - "version": "1.3.4", - "resolved": "https://registry.npmmirror.com/stackframe/-/stackframe-1.3.4.tgz", - "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", - "license": "MIT" - }, - "node_modules/static-eval": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/static-eval/-/static-eval-2.0.2.tgz", - "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", - "license": "MIT", - "dependencies": { - "escodegen": "^1.8.1" - } - }, - "node_modules/static-eval/node_modules/escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmmirror.com/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=4.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/static-eval/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/static-eval/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/static-eval/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmmirror.com/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "license": "MIT", - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/static-eval/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/static-eval/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-eval/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmmirror.com/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, "node_modules/stop-iteration-iterator": { "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -18774,93 +5765,17 @@ "node": ">= 0.4" } }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "license": "MIT", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-natural-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz", - "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==", + "node_modules/string-convert": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", + "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==", "license": "MIT" }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "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": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "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/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/string.prototype.includes": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", - "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/string.prototype.matchall": { "version": "4.0.12", - "resolved": "https://registry.npmmirror.com/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.8", @@ -18886,8 +5801,9 @@ }, "node_modules/string.prototype.repeat": { "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, "license": "MIT", "dependencies": { "define-properties": "^1.1.3", @@ -18896,8 +5812,9 @@ }, "node_modules/string.prototype.trim": { "version": "1.2.10", - "resolved": "https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "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", @@ -18917,8 +5834,9 @@ }, "node_modules/string.prototype.trimend": { "version": "1.0.9", - "resolved": "https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "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", @@ -18935,8 +5853,9 @@ }, "node_modules/string.prototype.trimstart": { "version": "1.0.8", - "resolved": "https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "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", @@ -18950,24 +5869,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmmirror.com/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "license": "BSD-2-Clause", - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "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" @@ -18976,62 +5882,11 @@ "node": ">=8" } }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/strip-comments/-/strip-comments-2.0.1.tgz", - "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "license": "MIT", - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "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" @@ -19040,117 +5895,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/style-loader": { - "version": "3.3.4", - "resolved": "https://registry.npmmirror.com/style-loader/-/style-loader-3.3.4.tgz", - "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", - "license": "MIT", - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/stylehacks": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/stylehacks/-/stylehacks-5.1.1.tgz", - "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.21.4", - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmmirror.com/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "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/sucrase/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/sucrase/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmmirror.com/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmmirror.com/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "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/sucrase/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "node_modules/stylis": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", + "license": "MIT" }, "node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "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" @@ -19159,23 +5914,11 @@ "node": ">=8" } }, - "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "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": { "node": ">= 0.4" @@ -19184,483 +5927,60 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", - "license": "MIT" - }, - "node_modules/svg-path-parser": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/svg-path-parser/-/svg-path-parser-1.1.0.tgz", - "integrity": "sha512-jGCUqcQyXpfe38R7RFfhrMyfXcBmpMNJI/B+4CE9/Unkh98UporAc461GTthv+TVDuZXsBx7/WiwJb1Oh4tt4A==", - "license": "MIT" - }, - "node_modules/svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmmirror.com/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "node_modules/synckit": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.8.tgz", + "integrity": "sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==", + "dev": true, "license": "MIT", "dependencies": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "bin": { - "svgo": "bin/svgo" + "@pkgr/core": "^0.2.4" }, "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/svgo/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/svgo/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/svgo/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/svgo/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "license": "MIT" - }, - "node_modules/svgo/node_modules/css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "node_modules/svgo/node_modules/css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmmirror.com/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" + "node": "^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/svgo/node_modules/dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "node_modules/svgo/node_modules/domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmmirror.com/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "license": "BSD-2-Clause" - }, - "node_modules/svgo/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/svgo/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/svgo/node_modules/nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "~1.0.0" - } - }, - "node_modules/svgo/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmmirror.com/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "license": "MIT" - }, - "node_modules/tailwind-merge": { - "version": "2.6.0", - "resolved": "https://registry.npmmirror.com/tailwind-merge/-/tailwind-merge-2.6.0.tgz", - "integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/dcastil" - } - }, - "node_modules/tailwindcss": { - "version": "3.4.17", - "resolved": "https://registry.npmmirror.com/tailwindcss/-/tailwindcss-3.4.17.tgz", - "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", - "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", - "resolved": "https://registry.npmmirror.com/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", - "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", - "license": "MIT", - "peerDependencies": { - "tailwindcss": ">=3.0.0 || insiders" - } - }, - "node_modules/tailwindcss/node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/tapable": { - "version": "2.2.2", - "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.2.tgz", - "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/tdesign-icons-react": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/tdesign-icons-react/-/tdesign-icons-react-0.5.0.tgz", - "integrity": "sha512-Gpl1Kxkb8+YXYjMsSW5W3kWy/drVB/huFLIHWhmJdUnEwUAW0Il+nDyb/BsRi51jLnalBwjYbOELEggH2qp6FQ==", - "dependencies": { - "@babel/runtime": "^7.16.5", - "classnames": "^2.2.6" - }, - "peerDependencies": { - "react": ">=16.13.1", - "react-dom": ">=16.13.1" - } - }, - "node_modules/tdesign-mobile-react": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/tdesign-mobile-react/-/tdesign-mobile-react-0.16.0.tgz", - "integrity": "sha512-b5oI3Fk/Fpi64tH/d2+2wvQ5b6wKiRUGX4DBayIXL9LAqqxk2L2LxM8bXvq2rV3WdVg4scM38A/o8F54mzONXg==", - "license": "MIT", - "dependencies": { - "@popperjs/core": "^2.11.8", - "@use-gesture/react": "^10.2.10", - "ahooks": "^3.8.5", - "classnames": "^2.3.1", - "dayjs": "^1.11.13", - "hoist-non-react-statics": "^3.3.2", - "lodash-es": "^4.17.21", - "react-transition-group": "^4.4.2", - "smoothscroll-polyfill": "^0.4.4", - "tdesign-icons-react": "^0.5.0", - "tinycolor2": "^1.6.0" - }, - "peerDependencies": { - "react": ">=18.0.0", - "react-dom": ">=18.0.0" - } - }, - "node_modules/temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/tempy": { - "version": "0.6.0", - "resolved": "https://registry.npmmirror.com/tempy/-/tempy-0.6.0.tgz", - "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", - "license": "MIT", - "dependencies": { - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tempy/node_modules/type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmmirror.com/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terser": { - "version": "5.43.1", - "resolved": "https://registry.npmmirror.com/terser/-/terser-5.43.1.tgz", - "integrity": "sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==", - "license": "BSD-2-Clause", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.14.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.14", - "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", - "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "jest-worker": "^27.4.5", - "schema-utils": "^4.3.0", - "serialize-javascript": "^6.0.2", - "terser": "^5.31.1" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT" - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" + "url": "https://opencollective.com/synckit" } }, "node_modules/text-table": { "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, "license": "MIT" }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "node_modules/throttle-debounce": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.2.tgz", + "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==", "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0" + "engines": { + "node": ">=12.22" } }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "node_modules/tinyglobby": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", + "dev": true, "license": "MIT", "dependencies": { - "thenify": ">= 3.1.0 < 4" + "fdir": "^6.4.4", + "picomatch": "^4.0.2" }, "engines": { - "node": ">=0.8" + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/throat": { - "version": "6.0.2", - "resolved": "https://registry.npmmirror.com/throat/-/throat-6.0.2.tgz", - "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", - "license": "MIT" - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "license": "MIT" - }, - "node_modules/tiny-invariant": { - "version": "1.3.3", - "resolved": "https://registry.npmmirror.com/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", - "license": "MIT" - }, - "node_modules/tinycolor2": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", - "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==", - "license": "MIT" - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "license": "BSD-3-Clause" - }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "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" @@ -19669,191 +5989,36 @@ "node": ">=8.0" } }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "4.1.4", - "resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-4.1.4.tgz", - "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", - "license": "BSD-3-Clause", - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "license": "MIT", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tryer": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/tryer/-/tryer-1.0.1.tgz", - "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==", "license": "MIT" }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmmirror.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "license": "Apache-2.0" - }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmmirror.com/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "devOptional": true, + "node_modules/ts-api-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", + "dev": true, "license": "MIT", - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" + "engines": { + "node": ">=16" }, "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/ts-node/node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ts-node/node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmmirror.com/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "license": "MIT", - "engines": { - "node": ">=4" + "typescript": ">=4.2.0" } }, "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmmirror.com/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", "license": "0BSD" }, "node_modules/type-check": { "version": "0.4.0", - "resolved": "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz", + "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" @@ -19862,19 +6027,11 @@ "node": ">= 0.8.0" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" @@ -19883,23 +6040,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/typed-array-buffer": { "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "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", @@ -19912,8 +6057,9 @@ }, "node_modules/typed-array-byte-length": { "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "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", @@ -19931,8 +6077,9 @@ }, "node_modules/typed-array-byte-offset": { "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "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", @@ -19952,8 +6099,9 @@ }, "node_modules/typed-array-length": { "version": "1.0.7", - "resolved": "https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.7.tgz", + "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", @@ -19970,32 +6118,25 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmmirror.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "dev": true, "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/unbox-primitive": { "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "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", @@ -20010,108 +6151,18 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/underscore": { - "version": "1.12.1", - "resolved": "https://registry.npmmirror.com/underscore/-/underscore-1.12.1.tgz", - "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", - "license": "MIT" - }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", + "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", + "dev": true, "license": "MIT" }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", - "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "license": "MIT", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", - "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "license": "MIT", - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==", - "license": "MIT" - }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmmirror.com/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "license": "MIT", - "engines": { - "node": ">=4", - "yarn": "*" - } - }, "node_modules/update-browserslist-db": { "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, "funding": [ { "type": "opencollective", @@ -20140,567 +6191,115 @@ }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", + "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/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmmirror.com/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "license": "MIT", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/use-callback-ref": { - "version": "1.3.3", - "resolved": "https://registry.npmmirror.com/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-sidecar": { - "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/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/use-sync-external-store": { "version": "1.5.0", - "resolved": "https://registry.npmmirror.com/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz", "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==", "license": "MIT", "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT" - }, - "node_modules/util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "node_modules/vconsole": { + "version": "3.15.1", + "resolved": "https://registry.npmjs.org/vconsole/-/vconsole-3.15.1.tgz", + "integrity": "sha512-KH8XLdrq9T5YHJO/ixrjivHfmF2PC2CdVoK6RWZB4yftMykYIaXY1mxZYAic70vADM54kpMQF+dYmvl5NRNy1g==", "license": "MIT", "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@babel/runtime": "^7.17.2", + "copy-text-to-clipboard": "^3.0.1", + "core-js": "^3.11.0", + "mutation-observer": "^1.0.3" } }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmmirror.com/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", - "license": "MIT" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmmirror.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", - "license": "ISC", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "license": "MIT" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vaul": { - "version": "0.9.9", - "resolved": "https://registry.npmmirror.com/vaul/-/vaul-0.9.9.tgz", - "integrity": "sha512-7afKg48srluhZwIkaU+lgGtFCUsYBSGOl8vcc8N/M3YQlZFlynHD15AE+pwrYdc826o7nrIND4lL9Y6b9WWZZQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-dialog": "^1.1.1" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - } - }, - "node_modules/victory-vendor": { - "version": "37.3.6", - "resolved": "https://registry.npmmirror.com/victory-vendor/-/victory-vendor-37.3.6.tgz", - "integrity": "sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==", - "license": "MIT AND ISC", - "dependencies": { - "@types/d3-array": "^3.0.3", - "@types/d3-ease": "^3.0.0", - "@types/d3-interpolate": "^3.0.1", - "@types/d3-scale": "^4.0.2", - "@types/d3-shape": "^3.1.0", - "@types/d3-time": "^3.0.0", - "@types/d3-timer": "^3.0.0", - "d3-array": "^3.1.6", - "d3-ease": "^3.0.1", - "d3-interpolate": "^3.0.1", - "d3-scale": "^4.0.2", - "d3-shape": "^3.1.0", - "d3-time": "^3.0.0", - "d3-timer": "^3.0.1" - } - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", - "license": "MIT", - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "license": "MIT", - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmmirror.com/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/watchpack": { - "version": "2.4.4", - "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.4.tgz", - "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", - "license": "MIT", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmmirror.com/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "license": "MIT", - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/web-vitals": { - "version": "2.1.4", - "resolved": "https://registry.npmmirror.com/web-vitals/-/web-vitals-2.1.4.tgz", - "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==", - "license": "Apache-2.0" - }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=10.4" - } - }, - "node_modules/webpack": { - "version": "5.99.9", - "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.99.9.tgz", - "integrity": "sha512-brOPwM3JnmOa+7kd3NsmOUOwbDAj8FT9xDsG3IW0MgbN9yZV7Oi/s/+MNQ/EcSMqw7qfoRyXPoeEWT8zLVdVGg==", - "license": "MIT", - "dependencies": { - "@types/eslint-scope": "^3.7.7", - "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", - "@webassemblyjs/ast": "^1.14.1", - "@webassemblyjs/wasm-edit": "^1.14.1", - "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.14.0", - "browserslist": "^4.24.0", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^4.3.2", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.11", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.4", - "resolved": "https://registry.npmmirror.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", - "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", - "license": "MIT", - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.15.2", - "resolved": "https://registry.npmmirror.com/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", - "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", - "license": "MIT", - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.4", - "ws": "^8.13.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.18.3", - "resolved": "https://registry.npmmirror.com/ws/-/ws-8.18.3.tgz", - "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", - "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/webpack-manifest-plugin": { - "version": "4.1.1", - "resolved": "https://registry.npmmirror.com/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", - "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", - "license": "MIT", - "dependencies": { - "tapable": "^2.0.0", - "webpack-sources": "^2.2.0" - }, - "engines": { - "node": ">=12.22.0" - }, - "peerDependencies": { - "webpack": "^4.44.2 || ^5.47.0" - } - }, - "node_modules/webpack-manifest-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { - "version": "2.3.1", - "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-2.3.1.tgz", - "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", - "license": "MIT", - "dependencies": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmmirror.com/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "node_modules/vite": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.5.tgz", + "integrity": "sha512-1mncVwJxy2C9ThLwz0+2GKZyEXuC3MyWtAAlNftlZZXZDP3AJt5FmwcMit/IGGaNZ8ZOB2BNO/HFUB+CpN0NQw==", "dev": true, "license": "MIT", "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.0" + "esbuild": "^0.25.0", + "fdir": "^6.4.6", + "picomatch": "^4.0.2", + "postcss": "^8.5.6", + "rollup": "^4.40.0", + "tinyglobby": "^0.2.14" + }, + "bin": { + "vite": "bin/vite.js" }, "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.3.3", - "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.3.3.tgz", - "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "node": "^20.19.0 || >=22.12.0" }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmmirror.com/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "license": "Apache-2.0", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmmirror.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "license": "Apache-2.0", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "license": "MIT", - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-encoding/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "optionalDependencies": { + "fsevents": "~2.3.3" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/whatwg-fetch": { - "version": "3.6.20", - "resolved": "https://registry.npmmirror.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", - "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", - "license": "MIT" - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "license": "MIT" - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "license": "MIT", - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, - "engines": { - "node": ">=10" + "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/which": { "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "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" @@ -20714,8 +6313,9 @@ }, "node_modules/which-boxed-primitive": { "version": "1.1.1", - "resolved": "https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "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", @@ -20733,8 +6333,9 @@ }, "node_modules/which-builtin-type": { "version": "1.2.1", - "resolved": "https://registry.npmmirror.com/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "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", @@ -20760,8 +6361,9 @@ }, "node_modules/which-collection": { "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/which-collection/-/which-collection-1.0.2.tgz", + "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", @@ -20778,8 +6380,9 @@ }, "node_modules/which-typed-array": { "version": "1.1.19", - "resolved": "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.19.tgz", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "dev": true, "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", @@ -20797,535 +6400,35 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/wmf": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz", - "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==", - "license": "Apache-2.0", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/word": { - "version": "0.3.0", - "resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz", - "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==", - "license": "Apache-2.0", - "engines": { - "node": ">=0.8" - } - }, "node_modules/word-wrap": { "version": "1.2.5", - "resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz", + "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/workbox-background-sync": { - "version": "6.6.0", - "resolved": "https://registry.npmmirror.com/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", - "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", - "license": "MIT", - "dependencies": { - "idb": "^7.0.1", - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-broadcast-update": { - "version": "6.6.0", - "resolved": "https://registry.npmmirror.com/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", - "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", - "license": "MIT", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-build": { - "version": "6.6.0", - "resolved": "https://registry.npmmirror.com/workbox-build/-/workbox-build-6.6.0.tgz", - "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", - "license": "MIT", - "dependencies": { - "@apideck/better-ajv-errors": "^0.3.1", - "@babel/core": "^7.11.1", - "@babel/preset-env": "^7.11.0", - "@babel/runtime": "^7.11.2", - "@rollup/plugin-babel": "^5.2.0", - "@rollup/plugin-node-resolve": "^11.2.1", - "@rollup/plugin-replace": "^2.4.1", - "@surma/rollup-plugin-off-main-thread": "^2.2.3", - "ajv": "^8.6.0", - "common-tags": "^1.8.0", - "fast-json-stable-stringify": "^2.1.0", - "fs-extra": "^9.0.1", - "glob": "^7.1.6", - "lodash": "^4.17.20", - "pretty-bytes": "^5.3.0", - "rollup": "^2.43.1", - "rollup-plugin-terser": "^7.0.0", - "source-map": "^0.8.0-beta.0", - "stringify-object": "^3.3.0", - "strip-comments": "^2.0.1", - "tempy": "^0.6.0", - "upath": "^1.2.0", - "workbox-background-sync": "6.6.0", - "workbox-broadcast-update": "6.6.0", - "workbox-cacheable-response": "6.6.0", - "workbox-core": "6.6.0", - "workbox-expiration": "6.6.0", - "workbox-google-analytics": "6.6.0", - "workbox-navigation-preload": "6.6.0", - "workbox-precaching": "6.6.0", - "workbox-range-requests": "6.6.0", - "workbox-recipes": "6.6.0", - "workbox-routing": "6.6.0", - "workbox-strategies": "6.6.0", - "workbox-streams": "6.6.0", - "workbox-sw": "6.6.0", - "workbox-window": "6.6.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { - "version": "0.3.6", - "resolved": "https://registry.npmmirror.com/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", - "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", - "license": "MIT", - "dependencies": { - "json-schema": "^0.4.0", - "jsonpointer": "^5.0.0", - "leven": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "ajv": ">=8" - } - }, - "node_modules/workbox-build/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "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/workbox-build/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/workbox-build/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" - }, - "node_modules/workbox-build/node_modules/source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", - "license": "BSD-3-Clause", - "dependencies": { - "whatwg-url": "^7.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/workbox-build/node_modules/tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", - "license": "MIT", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/workbox-build/node_modules/webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "license": "BSD-2-Clause" - }, - "node_modules/workbox-build/node_modules/whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "license": "MIT", - "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "node_modules/workbox-cacheable-response": { - "version": "6.6.0", - "resolved": "https://registry.npmmirror.com/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", - "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", - "deprecated": "workbox-background-sync@6.6.0", - "license": "MIT", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-core": { - "version": "6.6.0", - "resolved": "https://registry.npmmirror.com/workbox-core/-/workbox-core-6.6.0.tgz", - "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==", - "license": "MIT" - }, - "node_modules/workbox-expiration": { - "version": "6.6.0", - "resolved": "https://registry.npmmirror.com/workbox-expiration/-/workbox-expiration-6.6.0.tgz", - "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", - "license": "MIT", - "dependencies": { - "idb": "^7.0.1", - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-google-analytics": { - "version": "6.6.0", - "resolved": "https://registry.npmmirror.com/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", - "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", - "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained", - "license": "MIT", - "dependencies": { - "workbox-background-sync": "6.6.0", - "workbox-core": "6.6.0", - "workbox-routing": "6.6.0", - "workbox-strategies": "6.6.0" - } - }, - "node_modules/workbox-navigation-preload": { - "version": "6.6.0", - "resolved": "https://registry.npmmirror.com/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", - "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", - "license": "MIT", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-precaching": { - "version": "6.6.0", - "resolved": "https://registry.npmmirror.com/workbox-precaching/-/workbox-precaching-6.6.0.tgz", - "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", - "license": "MIT", - "dependencies": { - "workbox-core": "6.6.0", - "workbox-routing": "6.6.0", - "workbox-strategies": "6.6.0" - } - }, - "node_modules/workbox-range-requests": { - "version": "6.6.0", - "resolved": "https://registry.npmmirror.com/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", - "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", - "license": "MIT", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-recipes": { - "version": "6.6.0", - "resolved": "https://registry.npmmirror.com/workbox-recipes/-/workbox-recipes-6.6.0.tgz", - "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", - "license": "MIT", - "dependencies": { - "workbox-cacheable-response": "6.6.0", - "workbox-core": "6.6.0", - "workbox-expiration": "6.6.0", - "workbox-precaching": "6.6.0", - "workbox-routing": "6.6.0", - "workbox-strategies": "6.6.0" - } - }, - "node_modules/workbox-routing": { - "version": "6.6.0", - "resolved": "https://registry.npmmirror.com/workbox-routing/-/workbox-routing-6.6.0.tgz", - "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", - "license": "MIT", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-strategies": { - "version": "6.6.0", - "resolved": "https://registry.npmmirror.com/workbox-strategies/-/workbox-strategies-6.6.0.tgz", - "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", - "license": "MIT", - "dependencies": { - "workbox-core": "6.6.0" - } - }, - "node_modules/workbox-streams": { - "version": "6.6.0", - "resolved": "https://registry.npmmirror.com/workbox-streams/-/workbox-streams-6.6.0.tgz", - "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", - "license": "MIT", - "dependencies": { - "workbox-core": "6.6.0", - "workbox-routing": "6.6.0" - } - }, - "node_modules/workbox-sw": { - "version": "6.6.0", - "resolved": "https://registry.npmmirror.com/workbox-sw/-/workbox-sw-6.6.0.tgz", - "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==", - "license": "MIT" - }, - "node_modules/workbox-webpack-plugin": { - "version": "6.6.0", - "resolved": "https://registry.npmmirror.com/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.0.tgz", - "integrity": "sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==", - "license": "MIT", - "dependencies": { - "fast-json-stable-stringify": "^2.1.0", - "pretty-bytes": "^5.4.1", - "upath": "^1.2.0", - "webpack-sources": "^1.4.3", - "workbox-build": "6.6.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "webpack": "^4.4.0 || ^5.9.0" - } - }, - "node_modules/workbox-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "license": "MIT", - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/workbox-window": { - "version": "6.6.0", - "resolved": "https://registry.npmmirror.com/workbox-window/-/workbox-window-6.6.0.tgz", - "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", - "license": "MIT", - "dependencies": { - "@types/trusted-types": "^2.0.2", - "workbox-core": "6.6.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "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": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "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/wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, "license": "ISC" }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmmirror.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.10", - "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xlsx": { - "version": "0.18.5", - "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz", - "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", - "license": "Apache-2.0", - "dependencies": { - "adler-32": "~1.3.0", - "cfb": "~1.2.1", - "codepage": "~1.15.0", - "crc-32": "~1.2.1", - "ssf": "~0.11.2", - "wmf": "~1.0.1", - "word": "~0.3.0" - }, - "bin": { - "xlsx": "bin/xlsx.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "license": "Apache-2.0" - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "license": "MIT" - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, "node_modules/yallist": { "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, "license": "ISC" }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmmirror.com/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz", + "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" @@ -21334,13 +6437,42 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/zod": { - "version": "3.25.71", - "resolved": "https://registry.npmmirror.com/zod/-/zod-3.25.71.tgz", - "integrity": "sha512-BsBc/NPk7h8WsUWYWYL+BajcJPY8YhjelaWu2NMLuzgraKAz4Lb4/6K11g9jpuDetjMiqhZ6YaexFLOC0Ogi3Q==", + "node_modules/zrender": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.6.1.tgz", + "integrity": "sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==", + "license": "BSD-3-Clause", + "dependencies": { + "tslib": "2.3.0" + } + }, + "node_modules/zustand": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.6.tgz", + "integrity": "sha512-ihAqNeUVhe0MAD+X8M5UzqyZ9k3FFZLBTtqo6JLPwV53cbRB/mJwBI0PxcIgqhBBHlEs8G45OTDTMq3gNcLq3A==", "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "immer": ">=9.0.6", + "react": ">=18.0.0", + "use-sync-external-store": ">=1.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + }, + "use-sync-external-store": { + "optional": true + } } } } diff --git a/Cunkebao/package.json b/Cunkebao/package.json index 3552c848..a8f4b087 100644 --- a/Cunkebao/package.json +++ b/Cunkebao/package.json @@ -1,106 +1,49 @@ { - "name": "nkebao2", - "version": "0.1.0", + "name": "cunkebao", + "version": "3.0.0", + "license": "MIT", "private": true, "dependencies": { - "@ant-design/plots": "latest", - "@hookform/resolvers": "^3.9.1", - "@radix-ui/react-accordion": "latest", - "@radix-ui/react-alert-dialog": "^1.1.4", - "@radix-ui/react-aspect-ratio": "^1.1.1", - "@radix-ui/react-avatar": "latest", - "@radix-ui/react-checkbox": "latest", - "@radix-ui/react-collapsible": "latest", - "@radix-ui/react-context-menu": "^2.2.4", - "@radix-ui/react-dialog": "latest", - "@radix-ui/react-dropdown-menu": "latest", - "@radix-ui/react-hover-card": "^1.1.4", - "@radix-ui/react-icons": "latest", - "@radix-ui/react-label": "latest", - "@radix-ui/react-menubar": "^1.1.4", - "@radix-ui/react-navigation-menu": "^1.2.3", - "@radix-ui/react-popover": "latest", - "@radix-ui/react-progress": "latest", - "@radix-ui/react-radio-group": "latest", - "@radix-ui/react-scroll-area": "latest", - "@radix-ui/react-select": "latest", - "@radix-ui/react-separator": "^1.1.1", - "@radix-ui/react-slider": "^1.3.5", - "@radix-ui/react-slot": "^1.1.1", - "@radix-ui/react-switch": "latest", - "@radix-ui/react-tabs": "latest", - "@radix-ui/react-toast": "latest", - "@radix-ui/react-toggle": "^1.1.1", - "@radix-ui/react-toggle-group": "^1.1.1", - "@radix-ui/react-tooltip": "latest", - "@tanstack/react-table": "latest", - "@testing-library/dom": "^10.4.0", - "@testing-library/jest-dom": "^6.6.3", - "@testing-library/react": "^13.4.0", - "@testing-library/user-event": "^13.5.0", - "@types/crypto-js": "^4.2.2", - "@types/jest": "^27.5.2", - "@types/node": "^18.19.34", - "@types/react": "^18.2.43", - "@types/react-dom": "^18.2.17", - "autoprefixer": "^10.4.20", - "axios": "^1.6.0", - "chart.js": "^4.5.0", - "class-variance-authority": "^0.7.1", - "clsx": "^2.1.1", - "cmdk": "1.0.4", - "crypto-js": "^4.2.0", - "date-fns": "^4.1.0", - "embla-carousel-react": "8.5.1", - "input-otp": "1.4.1", - "lucide-react": "^0.525.0", + "@ant-design/icons": "^5.6.1", + "antd": "^5.13.1", + "antd-mobile": "^5.39.1", + "axios": "^1.6.7", + "dayjs": "^1.11.13", + "echarts": "^5.6.0", + "echarts-for-react": "^3.0.2", "react": "^18.2.0", - "react-day-picker": "latest", "react-dom": "^18.2.0", - "react-hook-form": "^7.54.1", - "react-hot-toast": "^2.5.2", - "react-resizable-panels": "^2.1.7", "react-router-dom": "^6.20.0", - "react-scripts": "5.0.1", - "recharts": "latest", - "regenerator-runtime": "latest", - "sonner": "^1.7.4", - "tailwind-merge": "^2.6.0", - "tailwindcss-animate": "^1.0.7", - "tdesign-mobile-react": "^0.16.0", - "vaul": "^0.9.6", - "web-vitals": "^2.1.4", - "xlsx": "^0.18.5", - "zod": "^3.24.1" + "vconsole": "^3.15.1", + "zustand": "^5.0.6" }, "devDependencies": { - "@craco/craco": "^7.1.0", - "postcss": "^8", - "tailwindcss": "^3.4.17", - "typescript": "^4.9.5" + "@types/node": "^24.0.14", + "@types/react": "^19.1.8", + "@types/react-dom": "^19.1.6", + "@typescript-eslint/eslint-plugin": "^7.7.0", + "@typescript-eslint/parser": "^7.7.0", + "@vitejs/plugin-react": "^4.6.0", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-react": "^7.34.1", + "eslint-plugin-react-hooks": "^5.2.0", + "postcss": "^8.4.38", + "postcss-pxtorem": "^6.0.0", + "prettier": "^3.2.5", + "sass": "^1.75.0", + "typescript": "^5.4.5", + "vite": "^7.0.5" }, "scripts": { - "dev": "craco start", - "build": "craco build", - "test": "craco test", - "eject": "react-scripts eject" - }, - "eslintConfig": { - "extends": [ - "react-app", - "react-app/jest" - ] - }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] + "dev": "vite", + "build": "vite build", + "build:check": "tsc && vite build", + "preview": "vite preview", + "lint": "eslint src --ext .js,.jsx,.ts,.tsx --fix", + "format": "prettier --write \"src/**/*.{js,jsx,ts,tsx,json,scss,css}\"", + "lint:check": "eslint src --ext .js,.jsx,.ts,.tsx", + "format:check": "prettier --check \"src/**/*.{js,jsx,ts,tsx,json,scss,css}\"" } } diff --git a/Cunkebao/postcss.config.js b/Cunkebao/postcss.config.js index 0cc9a9de..82ee5d38 100644 --- a/Cunkebao/postcss.config.js +++ b/Cunkebao/postcss.config.js @@ -1,6 +1,8 @@ module.exports = { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -} \ No newline at end of file + plugins: { + 'postcss-pxtorem': { + rootValue: 16, + propList: ['*'], + }, + }, +}; \ No newline at end of file diff --git a/Cunkebao/public/favicon.ico b/Cunkebao/public/favicon.ico deleted file mode 100644 index a11777cc471a4344702741ab1c8a588998b1311a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ diff --git a/Cunkebao/public/index.html b/Cunkebao/public/index.html deleted file mode 100644 index aa069f27..00000000 --- a/Cunkebao/public/index.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - React App - - - -
- - - diff --git a/Cunkebao/public/logo.png b/Cunkebao/public/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..40daafb0df433304c61669ade36b4aae68aee896 GIT binary patch literal 499922 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
t%bowXe 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 *KaaK(hOsC78v8EKLfvS05Nlrt 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 _!oTfK48 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

sjIjS#C& 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/!sz6h5M||20~)wt<|Chn=6CxK=E$9$ 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�&5X#B; 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 {pNqp%xS&)m@ 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN diff --git a/Cunkebao/public/manifest.json b/Cunkebao/public/manifest.json index 080d6c77..fc1e9f5a 100644 --- a/Cunkebao/public/manifest.json +++ b/Cunkebao/public/manifest.json @@ -1,6 +1,13 @@ { - "short_name": "React App", - "name": "Create React App Sample", + "name": "Cunkebao", + "short_name": "Cunkebao", + "description": "Cunkebao Mobile App", + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone", + "orientation": "portrait", + "scope": "/", + "start_url": "/", "icons": [ { "src": "favicon.ico", @@ -8,18 +15,16 @@ "type": "image/x-icon" }, { - "src": "logo192.png", + "src": "logo.png", + "sizes": "192x192", "type": "image/png", - "sizes": "192x192" + "purpose": "any maskable" }, { - "src": "logo512.png", + "src": "logo.png", + "sizes": "512x512", "type": "image/png", - "sizes": "512x512" + "purpose": "any maskable" } - ], - "start_url": ".", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} + ] +} \ No newline at end of file diff --git a/Cunkebao/public/robots.txt b/Cunkebao/public/robots.txt deleted file mode 100644 index e9e57dc4..00000000 --- a/Cunkebao/public/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# https://www.robotstxt.org/robotstxt.html -User-agent: * -Disallow: diff --git a/Cunkebao/public/websdk.js b/Cunkebao/public/websdk.js new file mode 100644 index 00000000..99870fa4 --- /dev/null +++ b/Cunkebao/public/websdk.js @@ -0,0 +1,308 @@ +!(function (e, n) { + "object" == typeof exports && "undefined" != typeof module + ? (module.exports = n()) + : "function" == typeof define && define.amd + ? define(n) + : ((e = e || self).uni = n()); +})(this, function () { + "use strict"; + try { + var e = {}; + (Object.defineProperty(e, "passive", { + get: function () { + !0; + }, + }), + window.addEventListener("test-passive", null, e)); + } catch (e) {} + var n = Object.prototype.hasOwnProperty; + function i(e, i) { + return n.call(e, i); + } + var t = []; + function o() { + return window.__dcloud_weex_postMessage || window.__dcloud_weex_; + } + function a() { + return window.__uniapp_x_postMessage || window.__uniapp_x_; + } + var r = function (e, n) { + var i = { options: { timestamp: +new Date() }, name: e, arg: n }; + if (a()) { + if ("postMessage" === e) { + var r = { data: n }; + return window.__uniapp_x_postMessage + ? window.__uniapp_x_postMessage(r) + : window.__uniapp_x_.postMessage(JSON.stringify(r)); + } + var d = { + type: "WEB_INVOKE_APPSERVICE", + args: { data: i, webviewIds: t }, + }; + window.__uniapp_x_postMessage + ? window.__uniapp_x_postMessageToService(d) + : window.__uniapp_x_.postMessageToService(JSON.stringify(d)); + } else if (o()) { + if ("postMessage" === e) { + var s = { data: [n] }; + return window.__dcloud_weex_postMessage + ? window.__dcloud_weex_postMessage(s) + : window.__dcloud_weex_.postMessage(JSON.stringify(s)); + } + var w = { + type: "WEB_INVOKE_APPSERVICE", + args: { data: i, webviewIds: t }, + }; + window.__dcloud_weex_postMessage + ? window.__dcloud_weex_postMessageToService(w) + : window.__dcloud_weex_.postMessageToService(JSON.stringify(w)); + } else { + if (!window.plus) + return window.parent.postMessage( + { type: "WEB_INVOKE_APPSERVICE", data: i, pageId: "" }, + "*", + ); + if (0 === t.length) { + var u = plus.webview.currentWebview(); + if (!u) throw new Error("plus.webview.currentWebview() is undefined"); + var g = u.parent(), + v = ""; + ((v = g ? g.id : u.id), t.push(v)); + } + if (plus.webview.getWebviewById("__uniapp__service")) + plus.webview.postMessageToUniNView( + { type: "WEB_INVOKE_APPSERVICE", args: { data: i, webviewIds: t } }, + "__uniapp__service", + ); + else { + var c = JSON.stringify(i); + plus.webview + .getLaunchWebview() + .evalJS( + 'UniPlusBridge.subscribeHandler("' + .concat("WEB_INVOKE_APPSERVICE", '",') + .concat(c, ",") + .concat(JSON.stringify(t), ");"), + ); + } + } + }, + d = { + navigateTo: function () { + var e = + arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + n = e.url; + r("navigateTo", { url: encodeURI(n) }); + }, + navigateBack: function () { + var e = + arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + n = e.delta; + r("navigateBack", { delta: parseInt(n) || 1 }); + }, + switchTab: function () { + var e = + arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + n = e.url; + r("switchTab", { url: encodeURI(n) }); + }, + reLaunch: function () { + var e = + arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + n = e.url; + r("reLaunch", { url: encodeURI(n) }); + }, + redirectTo: function () { + var e = + arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + n = e.url; + r("redirectTo", { url: encodeURI(n) }); + }, + getEnv: function (e) { + a() + ? e({ uvue: !0 }) + : o() + ? e({ nvue: !0 }) + : window.plus + ? e({ plus: !0 }) + : e({ h5: !0 }); + }, + postMessage: function () { + var e = + arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + r("postMessage", e.data || {}); + }, + }, + s = /uni-app/i.test(navigator.userAgent), + w = /Html5Plus/i.test(navigator.userAgent), + u = /complete|loaded|interactive/; + var g = + window.my && + navigator.userAgent.indexOf( + ["t", "n", "e", "i", "l", "C", "y", "a", "p", "i", "l", "A"] + .reverse() + .join(""), + ) > -1; + var v = + window.swan && window.swan.webView && /swan/i.test(navigator.userAgent); + var c = + window.qq && + window.qq.miniProgram && + /QQ/i.test(navigator.userAgent) && + /miniProgram/i.test(navigator.userAgent); + var p = + window.tt && + window.tt.miniProgram && + /toutiaomicroapp/i.test(navigator.userAgent); + var _ = + window.wx && + window.wx.miniProgram && + /micromessenger/i.test(navigator.userAgent) && + /miniProgram/i.test(navigator.userAgent); + var m = window.qa && /quickapp/i.test(navigator.userAgent); + var f = + window.ks && + window.ks.miniProgram && + /micromessenger/i.test(navigator.userAgent) && + /miniProgram/i.test(navigator.userAgent); + var l = + window.tt && + window.tt.miniProgram && + /Lark|Feishu/i.test(navigator.userAgent); + var E = + window.jd && window.jd.miniProgram && /jdmp/i.test(navigator.userAgent); + var x = + window.xhs && + window.xhs.miniProgram && + /xhsminiapp/i.test(navigator.userAgent); + for ( + var S, + h = function () { + ((window.UniAppJSBridge = !0), + document.dispatchEvent( + new CustomEvent("UniAppJSBridgeReady", { + bubbles: !0, + cancelable: !0, + }), + )); + }, + y = [ + function (e) { + if (s || w) + return ( + window.__uniapp_x_postMessage || + window.__uniapp_x_ || + window.__dcloud_weex_postMessage || + window.__dcloud_weex_ + ? document.addEventListener("DOMContentLoaded", e) + : window.plus && u.test(document.readyState) + ? setTimeout(e, 0) + : document.addEventListener("plusready", e), + d + ); + }, + function (e) { + if (_) + return ( + window.WeixinJSBridge && window.WeixinJSBridge.invoke + ? setTimeout(e, 0) + : document.addEventListener("WeixinJSBridgeReady", e), + window.wx.miniProgram + ); + }, + function (e) { + if (c) + return ( + window.QQJSBridge && window.QQJSBridge.invoke + ? setTimeout(e, 0) + : document.addEventListener("QQJSBridgeReady", e), + window.qq.miniProgram + ); + }, + function (e) { + if (g) { + document.addEventListener("DOMContentLoaded", e); + var n = window.my; + return { + navigateTo: n.navigateTo, + navigateBack: n.navigateBack, + switchTab: n.switchTab, + reLaunch: n.reLaunch, + redirectTo: n.redirectTo, + postMessage: n.postMessage, + getEnv: n.getEnv, + }; + } + }, + function (e) { + if (v) + return ( + document.addEventListener("DOMContentLoaded", e), + window.swan.webView + ); + }, + function (e) { + if (p) + return ( + document.addEventListener("DOMContentLoaded", e), + window.tt.miniProgram + ); + }, + function (e) { + if (m) { + window.QaJSBridge && window.QaJSBridge.invoke + ? setTimeout(e, 0) + : document.addEventListener("QaJSBridgeReady", e); + var n = window.qa; + return { + navigateTo: n.navigateTo, + navigateBack: n.navigateBack, + switchTab: n.switchTab, + reLaunch: n.reLaunch, + redirectTo: n.redirectTo, + postMessage: n.postMessage, + getEnv: n.getEnv, + }; + } + }, + function (e) { + if (f) + return ( + window.WeixinJSBridge && window.WeixinJSBridge.invoke + ? setTimeout(e, 0) + : document.addEventListener("WeixinJSBridgeReady", e), + window.ks.miniProgram + ); + }, + function (e) { + if (l) + return ( + document.addEventListener("DOMContentLoaded", e), + window.tt.miniProgram + ); + }, + function (e) { + if (E) + return ( + window.JDJSBridgeReady && window.JDJSBridgeReady.invoke + ? setTimeout(e, 0) + : document.addEventListener("JDJSBridgeReady", e), + window.jd.miniProgram + ); + }, + function (e) { + if (x) return window.xhs.miniProgram; + }, + function (e) { + return (document.addEventListener("DOMContentLoaded", e), d); + }, + ], + M = 0; + M < y.length && !(S = y[M](h)); + M++ + ); + S || (S = {}); + var P = "undefined" != typeof uni ? uni : {}; + if (!P.navigateTo) for (var b in S) i(S, b) && (P[b] = S[b]); + return ((P.webView = S), P); +}); diff --git a/Cunkebao/src/App.css b/Cunkebao/src/App.css deleted file mode 100644 index 74b5e053..00000000 --- a/Cunkebao/src/App.css +++ /dev/null @@ -1,38 +0,0 @@ -.App { - text-align: center; -} - -.App-logo { - height: 40vmin; - pointer-events: none; -} - -@media (prefers-reduced-motion: no-preference) { - .App-logo { - animation: App-logo-spin infinite 20s linear; - } -} - -.App-header { - background-color: #282c34; - min-height: 100vh; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - font-size: calc(10px + 2vmin); - color: white; -} - -.App-link { - color: #61dafb; -} - -@keyframes App-logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} diff --git a/Cunkebao/src/App.test.tsx b/Cunkebao/src/App.test.tsx deleted file mode 100644 index 2a68616d..00000000 --- a/Cunkebao/src/App.test.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react'; -import { render, screen } from '@testing-library/react'; -import App from './App'; - -test('renders learn react link', () => { - render(); - const linkElement = screen.getByText(/learn react/i); - expect(linkElement).toBeInTheDocument(); -}); diff --git a/Cunkebao/src/App.tsx b/Cunkebao/src/App.tsx index 4980e6cb..01bf3208 100644 --- a/Cunkebao/src/App.tsx +++ b/Cunkebao/src/App.tsx @@ -1,190 +1,13 @@ -import React, { useEffect } from "react"; -import { BrowserRouter, Routes, Route } from "react-router-dom"; -import { AuthProvider } from "./contexts/AuthContext"; -import { WechatAccountProvider } from "./contexts/WechatAccountContext"; -import ProtectedRoute from "./components/ProtectedRoute"; -import LayoutWrapper from "./components/LayoutWrapper"; -import { initInterceptors } from "./api"; -import Home from "./pages/Home"; -import Login from "./pages/login/Login"; -import Devices from "./pages/devices/Devices"; -import DeviceDetail from "./pages/devices/DeviceDetail"; -import WechatAccounts from "./pages/wechat-accounts/WechatAccounts"; -import WechatAccountDetail from "./pages/wechat-accounts/WechatAccountDetail"; -import Workspace from "./pages/workspace/Workspace"; -import AutoLike from "./pages/workspace/auto-like/AutoLike"; -import NewAutoLike from "./pages/workspace/auto-like/NewAutoLike"; -import AutoLikeDetail from "./pages/workspace/auto-like/AutoLikeDetail"; -import NewDistribution from "./pages/workspace/traffic-distribution/NewDistribution"; -import AutoGroup from "./pages/workspace/auto-group/AutoGroup"; -import AutoGroupDetail from "./pages/workspace/auto-group/Detail"; -import GroupPush from "./pages/workspace/group-push/GroupPush"; -import MomentsSync from "./pages/workspace/moments-sync/MomentsSync"; -import MomentsSyncDetail from "./pages/workspace/moments-sync/Detail"; -import NewMomentsSync from "./pages/workspace/moments-sync/new"; -import AIAssistant from "./pages/workspace/ai-assistant/AIAssistant"; -import TrafficDistribution from "./pages/workspace/traffic-distribution/TrafficDistribution"; -import TrafficDistributionDetail from "./pages/workspace/traffic-distribution/Detail"; -import Scenarios from "./pages/scenarios/Scenarios"; -import NewPlan from "./pages/scenarios/new/page"; -import ScenarioList from "./pages/scenarios/ScenarioList"; -import Profile from "./pages/profile/Profile"; -import Plans from "./pages/plans/Plans"; -import PlanDetail from "./pages/plans/PlanDetail"; -import Orders from "./pages/orders/Orders"; -import TrafficPool from "./pages/traffic-pool/TrafficPool"; -import ContactImport from "./pages/contact-import/ContactImport"; -import Content from "./pages/content/Content"; -import TrafficPoolDetail from "./pages/traffic-pool/TrafficPoolDetail"; -import NewContent from "./pages/content/NewContent"; -import Materials from "./pages/content/materials/List"; -import MaterialsNew from "./pages/content/materials/New"; -import NewGroupPush from './pages/workspace/group-push/new'; -// 占位导入(如未实现可后续补充) -// import GroupPushDetail from './pages/workspace/group-push/GroupPushDetail'; -// import EditGroupPush from './pages/workspace/group-push/EditGroupPush'; -// import NewAutoGroup from './pages/workspace/auto-group/NewAutoGroup'; -// import EditAutoGroup from './pages/workspace/auto-group/EditAutoGroup'; +import React from "react"; +import AppRouter from "@/router"; +import UpdateNotification from "@/components/UpdateNotification"; function App() { - // 初始化HTTP拦截器 - useEffect(() => { - const cleanup = initInterceptors(); - return cleanup; - }, []); - return ( - - - - - - - } /> - } /> - } /> - } /> - } /> - } - /> - } /> - } /> - } - /> - } - /> - } - /> - } - /> - } - /> - } - /> - } /> - } - /> - } /> - } - /> - 群发推送详情页(待实现GroupPushDetail组件)} - /> - 编辑群发推送任务页(待实现EditGroupPush组件)} - /> - } - /> - } - /> - } - /> - } - /> - } - /> - } - /> - } - /> - {/* 场景计划开始 */} - } /> - } /> - } - /> - } /> - } - /> - {/* 场景计划结束 */} - } /> - } /> - } /> - } /> - } /> - } - /> - } /> - } /> - } /> - } /> - } /> - } - /> - } - /> - {/* 你可以继续添加更多路由 */} - - - - - - + <> + + + ); } diff --git a/Cunkebao/src/api/auth.ts b/Cunkebao/src/api/auth.ts deleted file mode 100644 index 848730e9..00000000 --- a/Cunkebao/src/api/auth.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { request } from './request'; -import type { ApiResponse } from '@/types/common'; - -// 登录响应数据类型 -export interface LoginResponse { - token: string; - token_expired: string; - member: { - id: number; - username: string; - account: string; - avatar?: string; - s2_accountId: string; - }; -} - -// 验证码响应类型 -export interface VerificationCodeResponse { - code: string; - expire_time: string; -} - -// 认证相关API -export const authApi = { - // 账号密码登录 - login: async (account: string, password: string) => { - const response = await request.post>('/v1/auth/login', { - account, - password, - typeId: 1 // 默认使用用户类型1 - }); - return response as unknown as ApiResponse; - }, - - // 验证码登录 - loginWithCode: async (account: string, code: string) => { - const response = await request.post>('/v1/auth/login/code', { - account, - code, - typeId: 1 - }); - return response as unknown as ApiResponse; - }, - - // 发送验证码 - sendVerificationCode: async (account: string) => { - const response = await request.post>('/v1/auth/send-code', { - account, - type: 'login' // 登录验证码 - }); - return response as unknown as ApiResponse; - }, - - // 获取用户信息 - getUserInfo: async () => { - const response = await request.get>('/v1/auth/info'); - return response as unknown as ApiResponse; - }, - - // 刷新Token - refreshToken: async () => { - const response = await request.post>('/v1/auth/refresh', {}); - return response as unknown as ApiResponse<{ token: string; token_expired: string }>; - }, - - // 微信登录 - wechatLogin: async (code: string) => { - const response = await request.post>('/v1/auth/wechat', { - code - }); - return response as unknown as ApiResponse; - }, - - // Apple登录 - appleLogin: async (identityToken: string, authorizationCode: string) => { - const response = await request.post>('/v1/auth/apple', { - identity_token: identityToken, - authorization_code: authorizationCode - }); - return response as unknown as ApiResponse; - }, -}; \ No newline at end of file diff --git a/Cunkebao/src/api/autoLike.ts b/Cunkebao/src/api/autoLike.ts deleted file mode 100644 index d9b9056c..00000000 --- a/Cunkebao/src/api/autoLike.ts +++ /dev/null @@ -1,119 +0,0 @@ -import { get, post, del } from './request'; -import { - LikeTask, - CreateLikeTaskData, - UpdateLikeTaskData, - LikeRecord, - ApiResponse, - PaginatedResponse -} from '@/types/auto-like'; - -// 获取自动点赞任务列表 -export async function fetchAutoLikeTasks(): Promise { - try { - const res = await get>>('/v1/workbench/list?type=1&page=1&limit=100'); - - if (res.code === 200 && res.data) { - return res.data.list || []; - } - return []; - } catch (error) { - console.error('获取自动点赞任务失败:', error); - return []; - } -} - -// 获取单个任务详情 -export async function fetchAutoLikeTaskDetail(id: string): Promise { - try { - console.log(`Fetching task detail for id: ${id}`); - // 使用any类型来处理可能的不同响应结构 - const res = await get(`/v1/workbench/detail?id=${id}`); - console.log('Task detail API response:', res); - - if (res.code === 200) { - // 检查响应中的data字段 - if (res.data) { - // 如果data是对象,直接返回 - if (typeof res.data === 'object') { - return res.data; - } else { - console.error('Task detail API response data is not an object:', res.data); - return null; - } - } else { - console.error('Task detail API response missing data field:', res); - return null; - } - } - - console.error('Task detail API error:', res.msg || 'Unknown error'); - return null; - } catch (error) { - console.error('获取任务详情失败:', error); - return null; - } -} - -// 创建自动点赞任务 -export async function createAutoLikeTask(data: CreateLikeTaskData): Promise { - return post('/v1/workbench/create', { - ...data, - type: 1 // 自动点赞类型 - }); -} - -// 更新自动点赞任务 -export async function updateAutoLikeTask(data: UpdateLikeTaskData): Promise { - return post('/v1/workbench/update', { - ...data, - type: 1 // 自动点赞类型 - }); -} - -// 删除自动点赞任务 -export async function deleteAutoLikeTask(id: string): Promise { - return del('/v1/workbench/delete', { params: { id } }); -} - -// 切换任务状态 -export async function toggleAutoLikeTask(id: string, status: string): Promise { - return post('/v1/workbench/update-status', { id, status }); -} - -// 复制自动点赞任务 -export async function copyAutoLikeTask(id: string): Promise { - return post('/v1/workbench/copy', { id }); -} - -// 获取点赞记录 -export async function fetchLikeRecords( - workbenchId: string, - page: number = 1, - limit: number = 20, - keyword?: string -): Promise> { - try { - const params = new URLSearchParams({ - workbenchId, - page: page.toString(), - limit: limit.toString() - }); - - if (keyword) { - params.append('keyword', keyword); - } - - const res = await get>>(`/v1/workbench/like-records?${params.toString()}`); - - if (res.code === 200 && res.data) { - return res.data; - } - return { list: [], total: 0, page, limit }; - } catch (error) { - console.error('获取点赞记录失败:', error); - return { list: [], total: 0, page, limit }; - } -} - -export type { LikeTask, LikeRecord, CreateLikeTaskData }; \ No newline at end of file diff --git a/Cunkebao/src/api/common.ts b/Cunkebao/src/api/common.ts new file mode 100644 index 00000000..77a0e7de --- /dev/null +++ b/Cunkebao/src/api/common.ts @@ -0,0 +1,27 @@ +import request from "./request"; +/** + * 通用文件上传方法(支持图片、文件) + * @param {File} file - 要上传的文件对象 + * @param {string} [uploadUrl='/v1/attachment/upload'] - 上传接口地址 + * @returns {Promise} - 上传成功后返回文件url + */ +export async function uploadFile( + file: File, + uploadUrl: string = "/v1/attachment/upload", +): Promise { + try { + // 创建 FormData 对象用于文件上传 + const formData = new FormData(); + formData.append("file", file); + + // 使用 request 方法上传文件,设置正确的 Content-Type + const res = await request(uploadUrl, formData, "POST", { + headers: { + "Content-Type": "multipart/form-data", + }, + }); + return res.url; + } catch (e: any) { + throw new Error(e?.message || "文件上传失败"); + } +} diff --git a/Cunkebao/src/api/content.ts b/Cunkebao/src/api/content.ts deleted file mode 100644 index e7cd0e63..00000000 --- a/Cunkebao/src/api/content.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { get, post, put, del } from './request'; -import type { ApiResponse, PaginatedResponse } from '@/types/common'; - -// 内容库类型定义 -export interface ContentLibrary { - id: string; - name: string; - sourceType: number; - creatorName: string; - updateTime: string; - status: number; -} - -// 内容库列表响应 -export interface ContentLibraryListResponse { - code: number; - msg: string; - data: { - list: ContentLibrary[]; - total: number; - page: number; - limit: number; - }; -} - -// 获取内容库列表 -export const fetchContentLibraryList = async ( - page: number = 1, - limit: number = 100, - keyword?: string -): Promise => { - const params = new URLSearchParams(); - params.append('page', page.toString()); - params.append('limit', limit.toString()); - - if (keyword) { - params.append('keyword', keyword); - } - - return get(`/v1/content/library/list?${params.toString()}`); -}; - -// 内容库API对象 -export const contentLibraryApi = { - // 获取内容库列表 - async getList(page: number = 1, limit: number = 100, keyword?: string): Promise { - return fetchContentLibraryList(page, limit, keyword); - }, - - // 创建内容库 - async create(params: { name: string; sourceType: number }): Promise> { - return post>('/v1/content/library', params); - }, - - // 更新内容库 - async update(id: string, params: Partial): Promise> { - return put>(`/v1/content/library/${id}`, params); - }, - - // 删除内容库 - async delete(id: string): Promise> { - return del>(`/v1/content/library/${id}`); - }, - - // 获取内容库详情 - async getById(id: string): Promise> { - return get>(`/v1/content/library/${id}`); - }, -}; \ No newline at end of file diff --git a/Cunkebao/src/api/devices.ts b/Cunkebao/src/api/devices.ts deleted file mode 100644 index da84ee8f..00000000 --- a/Cunkebao/src/api/devices.ts +++ /dev/null @@ -1,200 +0,0 @@ -import { get, post, put, del } from './request'; -import type { ApiResponse, PaginatedResponse } from '@/types/common'; -import type { - Device, - DeviceStats, - DeviceTaskRecord, - QueryDeviceParams, - CreateDeviceParams, - UpdateDeviceParams, - DeviceStatus, - ServerDevicesResponse -} from '@/types/device'; - -const API_BASE = "/devices"; - -// 获取设备列表 - 连接到服务器/v1/devices接口 -export const fetchDeviceList = async (page: number = 1, limit: number = 20, keyword?: string): Promise => { - const params = new URLSearchParams(); - params.append('page', page.toString()); - params.append('limit', limit.toString()); - - if (keyword) { - params.append('keyword', keyword); - } - - return get(`/v1/devices?${params.toString()}`); -}; - -// 获取设备详情 - 连接到服务器/v1/devices/:id接口 -export const fetchDeviceDetail = async (id: string | number): Promise> => { - return get>(`/v1/devices/${id}`); -}; - -// 获取设备关联的微信账号 -export const fetchDeviceRelatedAccounts = async (id: string | number): Promise> => { - return get>(`/v1/wechats/related-device/${id}`); -}; - -// 获取设备操作记录 -export const fetchDeviceHandleLogs = async (id: string | number, page: number = 1, limit: number = 10): Promise> => { - return get>(`/v1/devices/${id}/handle-logs?page=${page}&limit=${limit}`); -}; - -// 更新设备任务配置 -export const updateDeviceTaskConfig = async ( - config: { - deviceId: string | number; - autoAddFriend?: boolean; - autoReply?: boolean; - momentsSync?: boolean; - aiChat?: boolean; - } -): Promise> => { - return post>(`/v1/devices/task-config`, config); -}; - -// 删除设备 -export const deleteDevice = async (id: number): Promise> => { - return del>(`/v1/devices/${id}`); -}; - -// 设备管理API -export const devicesApi = { - // 获取设备列表 - async getList(page: number = 1, limit: number = 20, keyword?: string): Promise { - const params = new URLSearchParams(); - params.append('page', page.toString()); - params.append('limit', limit.toString()); - - if (keyword) { - params.append('keyword', keyword); - } - - return get(`/v1/devices?${params.toString()}`); - }, - - // 获取设备二维码 - async getQRCode(accountId: string): Promise> { - return post>('/v1/api/device/add', { accountId }); - }, - - // 通过IMEI添加设备 - async addByImei(imei: string, name: string): Promise> { - return post>('/v1/api/device/add-by-imei', { imei, name }); - }, - - // 创建设备 - async create(params: CreateDeviceParams): Promise> { - return post>(`${API_BASE}`, params); - }, - - // 更新设备 - async update(params: UpdateDeviceParams): Promise> { - return put>(`${API_BASE}/${params.id}`, params); - }, - - // 获取设备详情 - async getById(id: string): Promise> { - return get>(`${API_BASE}/${id}`); - }, - - // 查询设备列表 - async query(params: QueryDeviceParams): Promise>> { - // 创建一个新对象,用于构建URLSearchParams - const queryParams: Record = {}; - - // 按需将params中的属性添加到queryParams - if (params.keyword) queryParams.keyword = params.keyword; - if (params.status) queryParams.status = params.status; - if (params.type) queryParams.type = params.type; - if (params.page) queryParams.page = params.page.toString(); - if (params.pageSize) queryParams.pageSize = params.pageSize.toString(); - - // 特殊处理需要JSON序列化的属性 - if (params.tags) queryParams.tags = JSON.stringify(params.tags); - if (params.dateRange) queryParams.dateRange = JSON.stringify(params.dateRange); - - // 构建查询字符串 - const queryString = new URLSearchParams(queryParams).toString(); - return get>>(`${API_BASE}?${queryString}`); - }, - - // 删除设备(旧版本) - async deleteById(id: string): Promise> { - return del>(`${API_BASE}/${id}`); - }, - - // 删除设备(新版本) - async delete(id: number): Promise> { - return del>(`/v1/devices/${id}`); - }, - - // 重启设备 - async restart(id: string): Promise> { - return post>(`${API_BASE}/${id}/restart`); - }, - - // 解绑设备 - async unbind(id: string): Promise> { - return post>(`${API_BASE}/${id}/unbind`); - }, - - // 获取设备统计数据 - async getStats(id: string): Promise> { - return get>(`${API_BASE}/${id}/stats`); - }, - - // 获取设备任务记录 - async getTaskRecords(id: string, page = 1, pageSize = 20): Promise>> { - return get>>(`${API_BASE}/${id}/tasks?page=${page}&pageSize=${pageSize}`); - }, - - // 批量更新设备标签 - async updateTags(ids: string[], tags: string[]): Promise> { - return post>(`${API_BASE}/tags`, { deviceIds: ids, tags }); - }, - - // 批量导出设备数据 - async exportDevices(ids: string[]): Promise { - const response = await fetch(`${process.env.REACT_APP_API_BASE || 'http://localhost:3000/api'}${API_BASE}/export`, { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify({ deviceIds: ids }), - }); - return response.blob(); - }, - - // 检查设备在线状态 - async checkStatus(ids: string[]): Promise>> { - return post>>(`${API_BASE}/status`, { deviceIds: ids }); - }, - - // 获取设备关联的微信账号 - async getRelatedAccounts(id: string | number): Promise> { - return get>(`/v1/wechats/related-device/${id}`); - }, - - // 获取设备操作记录 - async getHandleLogs(id: string | number, page: number = 1, limit: number = 10): Promise> { - return get>(`/v1/devices/${id}/handle-logs?page=${page}&limit=${limit}`); - }, - - // 更新设备任务配置 - async updateTaskConfig(config: { - deviceId: string | number; - autoAddFriend?: boolean; - autoReply?: boolean; - momentsSync?: boolean; - aiChat?: boolean; - }): Promise> { - return post>(`/v1/devices/task-config`, config); - }, - - // 获取设备任务配置 - async getTaskConfig(id: string | number): Promise> { - return get>(`/v1/devices/${id}/task-config`); - }, -}; \ No newline at end of file diff --git a/Cunkebao/src/api/groupPush.ts b/Cunkebao/src/api/groupPush.ts deleted file mode 100644 index 8ad67712..00000000 --- a/Cunkebao/src/api/groupPush.ts +++ /dev/null @@ -1,201 +0,0 @@ -import { get, post, put, del } from './request'; - -// 群发推送任务类型定义 -export interface GroupPushTask { - id: string; - name: string; - status: number; // 1: 运行中, 2: 已暂停 - deviceCount: number; - targetGroups: string[]; - pushCount: number; - successCount: number; - lastPushTime: string; - createTime: string; - creator: string; - pushInterval: number; - maxPushPerDay: number; - timeRange: { start: string; end: string }; - messageType: 'text' | 'image' | 'video' | 'link'; - messageContent: string; - targetTags: string[]; - pushMode: 'immediate' | 'scheduled'; - scheduledTime?: string; -} - -// API响应类型 -interface ApiResponse { - code: number; - message: string; - data: T; -} - -/** - * 获取群发推送任务列表 - */ -export async function fetchGroupPushTasks(): Promise { - try { - const response = await get>('/v1/workspace/group-push/tasks'); - - if (response.code === 200 && Array.isArray(response.data)) { - return response.data; - } - - // 如果API不可用,返回模拟数据 - return getMockGroupPushTasks(); - } catch (error) { - console.error('获取群发推送任务失败:', error); - // 返回模拟数据作为降级方案 - return getMockGroupPushTasks(); - } -} - -/** - * 删除群发推送任务 - */ -export async function deleteGroupPushTask(id: string): Promise { - try { - const response = await del(`/v1/workspace/group-push/tasks/${id}`); - return response; - } catch (error) { - console.error('删除群发推送任务失败:', error); - throw error; - } -} - -/** - * 切换群发推送任务状态 - */ -export async function toggleGroupPushTask(id: string, status: string): Promise { - try { - const response = await post(`/v1/workspace/group-push/tasks/${id}/toggle`, { - status - }); - return response; - } catch (error) { - console.error('切换群发推送任务状态失败:', error); - throw error; - } -} - -/** - * 复制群发推送任务 - */ -export async function copyGroupPushTask(id: string): Promise { - try { - const response = await post(`/v1/workspace/group-push/tasks/${id}/copy`); - return response; - } catch (error) { - console.error('复制群发推送任务失败:', error); - throw error; - } -} - -/** - * 创建群发推送任务 - */ -export async function createGroupPushTask(taskData: Partial): Promise { - try { - const response = await post('/v1/workspace/group-push/tasks', taskData); - return response; - } catch (error) { - console.error('创建群发推送任务失败:', error); - throw error; - } -} - -/** - * 更新群发推送任务 - */ -export async function updateGroupPushTask(id: string, taskData: Partial): Promise { - try { - const response = await put(`/v1/workspace/group-push/tasks/${id}`, taskData); - return response; - } catch (error) { - console.error('更新群发推送任务失败:', error); - throw error; - } -} - -/** - * 获取群发推送任务详情 - */ -export async function getGroupPushTaskDetail(id: string): Promise { - try { - const response = await get>(`/v1/workspace/group-push/tasks/${id}`); - - if (response.code === 200 && response.data) { - return response.data; - } - - throw new Error(response.message || '获取任务详情失败'); - } catch (error) { - console.error('获取群发推送任务详情失败:', error); - throw error; - } -} - -/** - * 模拟数据 - 当API不可用时使用 - */ -function getMockGroupPushTasks(): GroupPushTask[] { - return [ - { - id: '1', - name: '产品推广群发', - deviceCount: 2, - targetGroups: ['VIP客户群', '潜在客户群'], - pushCount: 156, - successCount: 142, - lastPushTime: '2025-02-06 13:12:35', - createTime: '2024-11-20 19:04:14', - creator: 'admin', - status: 1, // 运行中 - pushInterval: 60, - maxPushPerDay: 200, - timeRange: { start: '09:00', end: '21:00' }, - messageType: 'text', - messageContent: '新品上市,限时优惠!点击查看详情...', - targetTags: ['VIP客户', '高意向'], - pushMode: 'immediate', - }, - { - id: '2', - name: '活动通知推送', - deviceCount: 1, - targetGroups: ['活动群', '推广群'], - pushCount: 89, - successCount: 78, - lastPushTime: '2024-03-04 14:09:35', - createTime: '2024-03-04 14:29:04', - creator: 'manager', - status: 2, // 已暂停 - pushInterval: 120, - maxPushPerDay: 100, - timeRange: { start: '10:00', end: '20:00' }, - messageType: 'image', - messageContent: '活动海报.jpg', - targetTags: ['活跃用户', '中意向'], - pushMode: 'scheduled', - scheduledTime: '2024-03-05 10:00:00', - }, - { - id: '3', - name: '新客户欢迎消息', - deviceCount: 3, - targetGroups: ['新客户群', '体验群'], - pushCount: 234, - successCount: 218, - lastPushTime: '2025-02-06 15:30:22', - createTime: '2024-12-01 09:15:30', - creator: 'admin', - status: 1, // 运行中 - pushInterval: 30, - maxPushPerDay: 300, - timeRange: { start: '08:00', end: '22:00' }, - messageType: 'text', - messageContent: '欢迎加入我们的大家庭!这里有最新的产品信息和优惠活动...', - targetTags: ['新客户', '欢迎'], - pushMode: 'immediate', - }, - ]; -} \ No newline at end of file diff --git a/Cunkebao/src/api/index.ts b/Cunkebao/src/api/index.ts deleted file mode 100644 index 2134d044..00000000 --- a/Cunkebao/src/api/index.ts +++ /dev/null @@ -1,14 +0,0 @@ -// 导出所有API相关的内容 -export * from './auth'; -export * from './utils'; -export * from './interceptors'; -export * from './request'; - -// 导出现有的API模块 -export * from './devices'; -export * from './scenarios'; -export * from './wechat-accounts'; -export * from './trafficDistribution'; - -// 默认导出request实例 -export { default as request } from './request'; \ No newline at end of file diff --git a/Cunkebao/src/api/interceptors.ts b/Cunkebao/src/api/interceptors.ts deleted file mode 100644 index c07c4570..00000000 --- a/Cunkebao/src/api/interceptors.ts +++ /dev/null @@ -1,152 +0,0 @@ -import { refreshAuthToken, isTokenExpiringSoon, clearToken } from './utils'; - -// Token过期处理 -export const handleTokenExpired = () => { - if (typeof window !== 'undefined') { - // 清除本地存储 - clearToken(); - - // 跳转到登录页面 - setTimeout(() => { - window.location.href = '/login'; - }, 0); - } -}; - -// 显示API错误,但不会重定向 -export const showApiError = (error: any, defaultMessage: string = '请求失败') => { - if (typeof window === 'undefined') return; // 服务端不处理 - - let errorMessage = defaultMessage; - - // 尝试从各种可能的错误格式中获取消息 - if (error) { - if (typeof error === 'string') { - errorMessage = error; - } else if (error instanceof Error) { - errorMessage = error.message || defaultMessage; - } else if (typeof error === 'object') { - // 尝试从API响应中获取错误消息 - errorMessage = error.msg || error.message || error.error || defaultMessage; - } - } - - // 显示错误消息 - console.error('API错误:', errorMessage); - - // 这里可以集成toast系统 - // 由于toast context在组件层级,这里暂时用console - // 实际项目中可以通过事件系统或其他方式集成 -}; - -// 请求拦截器 - 检查token是否需要刷新 -export const requestInterceptor = async (): Promise => { - if (typeof window === 'undefined') { - return true; - } - - // 检查token是否即将过期 - if (isTokenExpiringSoon()) { - try { - console.log('Token即将过期,尝试刷新...'); - const success = await refreshAuthToken(); - if (!success) { - console.log('Token刷新失败,需要重新登录'); - handleTokenExpired(); - return false; - } - console.log('Token刷新成功'); - } catch (error) { - console.error('Token刷新过程中出错:', error); - handleTokenExpired(); - return false; - } - } - - return true; -}; - -// 响应拦截器 - 处理常见错误 -export const responseInterceptor = (response: any, result: any) => { - // 处理401未授权 - if (response?.status === 401 || (result && result.code === 401)) { - handleTokenExpired(); - throw new Error('登录已过期,请重新登录'); - } - - // 处理403禁止访问 - if (response?.status === 403 || (result && result.code === 403)) { - throw new Error('没有权限访问此资源'); - } - - // 处理404未找到 - if (response?.status === 404 || (result && result.code === 404)) { - throw new Error('请求的资源不存在'); - } - - // 处理500服务器错误 - if (response?.status >= 500 || (result && result.code >= 500)) { - throw new Error('服务器内部错误,请稍后重试'); - } - - return result; -}; - -// 错误拦截器 - 统一错误处理 -export const errorInterceptor = (error: any) => { - console.error('API请求错误:', error); - - let errorMessage = '网络请求失败,请稍后重试'; - - if (error) { - if (typeof error === 'string') { - errorMessage = error; - } else if (error instanceof Error) { - errorMessage = error.message; - } else if (error.name === 'TypeError' && error.message.includes('fetch')) { - errorMessage = '网络连接失败,请检查网络设置'; - } else if (error.name === 'AbortError') { - errorMessage = '请求已取消'; - } - } - - showApiError(error, errorMessage); - throw new Error(errorMessage); -}; - -// 网络状态监听 -export const setupNetworkListener = () => { - if (typeof window === 'undefined') return; - - const handleOnline = () => { - console.log('网络已连接'); - // 可以在这里添加网络恢复后的处理逻辑 - }; - - const handleOffline = () => { - console.log('网络已断开'); - showApiError(null, '网络连接已断开,请检查网络设置'); - }; - - window.addEventListener('online', handleOnline); - window.addEventListener('offline', handleOffline); - - // 返回清理函数 - return () => { - window.removeEventListener('online', handleOnline); - window.removeEventListener('offline', handleOffline); - }; -}; - -// 初始化拦截器 -export const initInterceptors = () => { - // 设置网络监听 - const cleanupNetwork = setupNetworkListener(); - - // 返回清理函数 - return () => { - if (cleanupNetwork) { - cleanupNetwork(); - } - }; -}; \ No newline at end of file diff --git a/Cunkebao/src/api/momentsSync.ts b/Cunkebao/src/api/momentsSync.ts deleted file mode 100644 index 4d7ab0d9..00000000 --- a/Cunkebao/src/api/momentsSync.ts +++ /dev/null @@ -1,111 +0,0 @@ -import { get, post, del } from './request'; -import { - MomentsSyncTask, - CreateMomentsSyncData, - UpdateMomentsSyncData, - SyncRecord, - ApiResponse, - PaginatedResponse -} from '@/types/moments-sync'; - -// 获取朋友圈同步任务列表 -export async function fetchMomentsSyncTasks(): Promise { - try { - const res = await get>>('/v1/workbench/list?type=2&page=1&limit=100'); - - if (res.code === 200 && res.data) { - return res.data.list || []; - } - return []; - } catch (error) { - console.error('获取朋友圈同步任务失败:', error); - return []; - } -} - -// 获取单个任务详情 -export async function fetchMomentsSyncTaskDetail(id: string): Promise { - try { - const res = await get>(`/v1/workbench/detail?id=${id}`); - if (res.code === 200 && res.data) { - return res.data; - } - return null; - } catch (error) { - console.error('获取任务详情失败:', error); - return null; - } -} - -// 创建朋友圈同步任务 -export async function createMomentsSyncTask(data: CreateMomentsSyncData): Promise { - return post('/v1/workbench/create', { - ...data, - type: 2 // 朋友圈同步类型 - }); -} - -// 更新朋友圈同步任务 -export async function updateMomentsSyncTask(data: UpdateMomentsSyncData): Promise { - return post('/v1/workbench/update', { - ...data, - type: 2 // 朋友圈同步类型 - }); -} - -// 删除朋友圈同步任务 -export async function deleteMomentsSyncTask(id: string): Promise { - return del('/v1/workbench/delete', { params: { id } }); -} - -// 切换任务状态 -export async function toggleMomentsSyncTask(id: string, status: string): Promise { - return post('/v1/workbench/update-status', { id, status }); -} - -// 复制朋友圈同步任务 -export async function copyMomentsSyncTask(id: string): Promise { - return post('/v1/workbench/copy', { id }); -} - -// 获取同步记录 -export async function fetchSyncRecords( - workbenchId: string, - page: number = 1, - limit: number = 20, - keyword?: string -): Promise> { - try { - const params = new URLSearchParams({ - workbenchId, - page: page.toString(), - limit: limit.toString() - }); - - if (keyword) { - params.append('keyword', keyword); - } - - const res = await get>>(`/v1/workbench/sync-records?${params.toString()}`); - - if (res.code === 200 && res.data) { - return res.data; - } - return { list: [], total: 0, page, limit }; - } catch (error) { - console.error('获取同步记录失败:', error); - return { list: [], total: 0, page, limit }; - } -} - -// 手动同步 -export async function syncMoments(id: string): Promise { - return post('/v1/workbench/sync', { id }); -} - -// 同步所有任务 -export async function syncAllMoments(): Promise { - return post('/v1/workbench/sync-all', { type: 2 }); -} - -export type { MomentsSyncTask, SyncRecord, CreateMomentsSyncData }; \ No newline at end of file diff --git a/Cunkebao/src/api/request.ts b/Cunkebao/src/api/request.ts index fc598b49..6394d22e 100644 --- a/Cunkebao/src/api/request.ts +++ b/Cunkebao/src/api/request.ts @@ -1,73 +1,90 @@ -import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios'; -import { requestInterceptor, responseInterceptor, errorInterceptor } from './interceptors'; +import axios, { + AxiosInstance, + AxiosRequestConfig, + Method, + AxiosResponse, +} from "axios"; +import { Toast } from "antd-mobile"; +import { useUserStore } from "@/store/module/user"; +const { token } = useUserStore.getState(); +const DEFAULT_DEBOUNCE_GAP = 1000; +const debounceMap = new Map(); -// 创建axios实例 -const request: AxiosInstance = axios.create({ - baseURL: process.env.REACT_APP_API_BASE_URL || 'https://ckbapi.quwanzhi.com', +const instance: AxiosInstance = axios.create({ + baseURL: (import.meta as any).env?.VITE_API_BASE_URL || "/api", timeout: 20000, headers: { - 'Content-Type': 'application/json', + "Content-Type": "application/json", }, }); -// 请求拦截器 -request.interceptors.request.use( - async (config) => { - // 检查token是否需要刷新 - if (config.headers.Authorization) { - const shouldContinue = await requestInterceptor(); - if (!shouldContinue) { - throw new Error('请求被拦截,需要重新登录'); +instance.interceptors.request.use((config: any) => { + if (token) { + config.headers = config.headers || {}; + config.headers["Authorization"] = `Bearer ${token}`; + } + return config; +}); + +instance.interceptors.response.use( + (res: AxiosResponse) => { + const { code, success, msg } = res.data || {}; + if (code === 200 || success) { + return res.data.data ?? res.data; + } + Toast.show({ content: msg || "接口错误", position: "top" }); + if (code === 401) { + localStorage.removeItem("token"); + const currentPath = window.location.pathname + window.location.search; + if (currentPath === "/login") { + window.location.href = "/login"; + } else { + window.location.href = `/login?redirect=${encodeURIComponent(currentPath)}`; } } - - // 添加token到请求头 - const token = localStorage.getItem('token'); - if (token) { - config.headers.Authorization = `Bearer ${token}`; - } - - return config; + return Promise.reject(msg || "接口错误"); + }, + err => { + Toast.show({ content: err.message || "网络异常", position: "top" }); + return Promise.reject(err); }, - (error) => { - return Promise.reject(error); - } ); -// 响应拦截器 -request.interceptors.response.use( - (response: AxiosResponse) => { - // 处理响应数据 - const result = response.data; - const processedResult = responseInterceptor(response, result); - return processedResult; - }, - (error) => { - // 统一错误处理 - return errorInterceptor(error); +export function request( + url: string, + data?: any, + method: Method = "GET", + config?: AxiosRequestConfig, + debounceGap?: number, +): Promise { + const gap = + typeof debounceGap === "number" ? debounceGap : DEFAULT_DEBOUNCE_GAP; + const key = `${method}_${url}_${JSON.stringify(data)}`; + const now = Date.now(); + const last = debounceMap.get(key) || 0; + if (gap > 0 && now - last < gap) { + // Toast.show({ content: '请求过于频繁,请稍后再试', position: 'top' }); + return Promise.reject("请求过于频繁,请稍后再试"); } -); + debounceMap.set(key, now); -// 封装GET请求 -export const get = (url: string, config?: AxiosRequestConfig): Promise => { - return request.get(url, config); -}; + const axiosConfig: AxiosRequestConfig = { + url, + method, + ...config, + }; -// 封装POST请求 -export const post = (url: string, data?: any, config?: AxiosRequestConfig): Promise => { - return request.post(url, data, config); -}; + // 如果是FormData,不设置Content-Type,让浏览器自动设置 + if (data instanceof FormData) { + delete axiosConfig.headers?.["Content-Type"]; + } -// 封装PUT请求 -export const put = (url: string, data?: any, config?: AxiosRequestConfig): Promise => { - return request.put(url, data, config); -}; + if (method.toUpperCase() === "GET") { + axiosConfig.params = data; + } else { + axiosConfig.data = data; + } + return instance(axiosConfig); +} -// 封装DELETE请求 -export const del = (url: string, config?: AxiosRequestConfig): Promise => { - return request.delete(url, config); -}; - -// 导出request实例 -export { request }; -export default request; \ No newline at end of file +export default request; diff --git a/Cunkebao/src/api/scenarios.ts b/Cunkebao/src/api/scenarios.ts deleted file mode 100644 index ee3774a1..00000000 --- a/Cunkebao/src/api/scenarios.ts +++ /dev/null @@ -1,327 +0,0 @@ -import { get, del, post,put } from './request'; -import type { ApiResponse } from '@/types/common'; - -// 服务器返回的场景数据类型 -export interface SceneItem { - id: number; - name: string; - image: string; - status: number; - createTime: number; - updateTime: number | null; - deleteTime: number | null; -} - -// 前端使用的场景数据类型 -export interface Channel { - id: string; - name: string; - icon: string; - stats: { - daily: number; - growth: number; - }; - link?: string; - plans?: Plan[]; -} - -// 计划类型 -export interface Plan { - id: string; - name: string; - isNew?: boolean; - status: "active" | "paused" | "completed"; - acquisitionCount: number; -} - -// 任务类型 -export interface Task { - id: string; - name: string; - status: number; - stats: { - devices: number; - acquired: number; - added: number; - }; - lastUpdated: string; - executionTime: string; - nextExecutionTime: string; - trend: { date: string; customers: number }[]; -} - -// 消息内容类型 -export interface MessageContent { - id: string; - type: string; // "text" | "image" | "video" | "file" | "miniprogram" | "link" | "group" 等 - content?: string; - intervalUnit?: "seconds" | "minutes"; - sendInterval?: number; - // 其他可选字段 - [key: string]: any; -} - -// 每天的消息计划 -export interface MessagePlan { - day: number; - messages: MessageContent[]; -} - -// 海报类型 -export interface Poster { - id: string; - name: string; - type: string; - preview: string; -} - -// 标签类型 -export interface Tag { - id: string; - name: string; - [key: string]: any; -} - -// textUrl类型 -export interface TextUrl { - apiKey: string; - originalString?: string; - sign?: string; - fullUrl: string; -} - -// 计划详情类型 -export interface PlanDetail { - id: number; - name: string; - scenario: number; - scenarioTags: Tag[]; - customTags: Tag[]; - posters: Poster[]; - device: string[]; - enabled: boolean; - addInterval: number; - remarkFormat: string; - endTime: string; - greeting: string; - startTime: string; - remarkType: string; - addFriendInterval: number; - messagePlans: MessagePlan[]; - sceneId: number | string; - userId: number; - companyId: number; - status: number; - apiKey: string; - wxMinAppSrc?: any; - textUrl: TextUrl; - [key: string]: any; -} - -/** - * 获取获客场景列表 - * - * @param params 查询参数 - * @returns 获客场景列表 - */ -export const fetchScenes = async (params: { - page?: number; - limit?: number; - keyword?: string; -} = {}): Promise> => { - const { page = 1, limit = 10, keyword = "" } = params; - - const queryParams = new URLSearchParams(); - queryParams.append("page", String(page)); - queryParams.append("limit", String(limit)); - - if (keyword) { - queryParams.append("keyword", keyword); - } - - try { - return await get>(`/v1/plan/scenes?${queryParams.toString()}`); - } catch (error) { - console.error("Error fetching scenes:", error); - // 返回一个错误响应 - return { - code: 500, - msg: "获取场景列表失败", - data: [] - }; - } -}; - -/** - * 获取场景详情 - * - * @param id 场景ID - * @returns 场景详情 - */ -export const fetchSceneDetail = async (id: string | number): Promise> => { - try { - return await get>(`/v1/plan/scenes/${id}`); - } catch (error) { - console.error("Error fetching scene detail:", error); - return { - code: 500, - msg: "获取场景详情失败", - data: null - }; - } -}; - -/** - * 获取场景名称 - * - * @param channel 场景标识 - * @returns 场景名称 - */ -export const fetchSceneName = async (channel: string): Promise> => { - try { - return await get>(`/v1/plan/scenes-detail?id=${channel}`); - } catch (error) { - console.error("Error fetching scene name:", error); - return { - code: 500, - msg: "获取场景名称失败", - data: { name: channel } - }; - } -}; - -/** - * 获取计划列表 - * - * @param channel 场景标识 - * @param page 页码 - * @param pageSize 每页数量 - * @returns 计划列表 - */ -export const fetchPlanList = async ( - channel: string, - page: number = 1, - pageSize: number = 10 -): Promise> => { - try { - return await get>( - `/v1/plan/list?sceneId=${channel}&page=${page}&pageSize=${pageSize}` - ); - } catch (error) { - console.error("Error fetching plan list:", error); - return { - code: 500, - msg: "获取计划列表失败", - data: { list: [], total: 0 } - }; - } -}; - -/** - * 复制计划 - * - * @param planId 计划ID - * @returns 复制结果 - */ -export const copyPlan = async (planId: string): Promise> => { - try { - return await get>(`/v1/plan/copy?planId=${planId}`); - } catch (error) { - console.error("Error copying plan:", error); - return { - code: 500, - msg: "复制计划失败", - data: null - }; - } -}; - -/** - * 删除计划 - * - * @param planId 计划ID - * @returns 删除结果 - */ -export const deletePlan = async (planId: string): Promise> => { - try { - return await del>(`/v1/plan/delete?planId=${planId}`); - } catch (error) { - console.error("Error deleting plan:", error); - return { - code: 500, - msg: "删除计划失败", - data: null - }; - } -}; - -/** - * 获取计划详情 - * - * @param planId 计划ID - * @returns 计划详情 - */ -export const fetchPlanDetail = async (planId: string): Promise> => { - try { - return await get>(`/v1/plan/detail?planId=${planId}`); - } catch (error) { - console.error("Error fetching plan detail:", error); - return { - code: 500, - msg: "获取计划详情失败", - data: null - }; - } -}; - -/** - * 将服务器返回的场景数据转换为前端展示需要的格式 - * - * @param item 服务器返回的场景数据 - * @returns 前端展示的场景数据 - */ -export const transformSceneItem = (item: SceneItem): Channel => { - // 为每个场景生成随机的"今日"数据和"增长百分比" - const dailyCount = Math.floor(Math.random() * 100); - const growthPercent = Math.floor(Math.random() * 40) - 10; // -10% 到 30% 的随机值 - - // 默认图标(如果服务器没有返回) - const defaultIcon = "/assets/icons/poster-icon.svg"; - - return { - id: String(item.id), - name: item.name, - icon: item.image || defaultIcon, - stats: { - daily: dailyCount, - growth: growthPercent - } - }; -}; - -export const getPlanScenes = () => get('/v1/plan/scenes'); - -export async function createScenarioPlan(data: any) { - return post('/v1/plan/create', data); -} - -// 编辑计划 -export async function updateScenarioPlan(planId: number | string, data: any) { - return await put(`/v1/plan/update?planId=${planId}`, data); -} - -/** - * 获取计划小程序二维码 - * @param taskid 任务ID - * @returns base64二维码 - */ -export const getWxMinAppCode = async (taskId: string): Promise<{ code: number; data?: string; msg?: string }> => { - try { - return await get<{ code: number; data?: string; msg?: string }>( - `/v1/plan/getWxMinAppCode?taskId=${ taskId }`, - - ); - } catch (error) { - return { code: 500, msg: '获取小程序二维码失败' }; - } -}; \ No newline at end of file diff --git a/Cunkebao/src/api/trafficDistribution.ts b/Cunkebao/src/api/trafficDistribution.ts deleted file mode 100644 index b082f44b..00000000 --- a/Cunkebao/src/api/trafficDistribution.ts +++ /dev/null @@ -1,227 +0,0 @@ -import { get, post, put, del } from './request'; -import type { ApiResponse } from '@/types/common'; - -// 工作台任务类型 -export enum WorkbenchTaskType { - MOMENTS_SYNC = 1, // 朋友圈同步 - GROUP_PUSH = 2, // 社群推送 - AUTO_LIKE = 3, // 自动点赞 - AUTO_GROUP = 4, // 自动建群 - TRAFFIC_DISTRIBUTION = 5, // 流量分发 -} - -// 工作台任务状态 -export enum WorkbenchTaskStatus { - PENDING = 0, // 待处理 - RUNNING = 1, // 运行中 - PAUSED = 2, // 已暂停 - COMPLETED = 3, // 已完成 - FAILED = 4, // 失败 -} - -// 账号类型 -export interface Account { - id: string; - userName: string; - realName: string; - nickname: string; - memo: string; -} - -// 账号列表响应类型 -export interface AccountListResponse { - list: Account[]; - total: number; - page: number; - limit: number; -} - -// 流量池类型 -export interface TrafficPool { - id: string; - name: string; - count: number; - description?: string; - deviceIds: string[]; - createTime?: string; - updateTime?: string; -} - -// 流量池列表响应类型 -export interface TrafficPoolListResponse { - list: TrafficPool[]; - total: number; - page: number; - pageSize: number; -} - -// 流量分发规则类型 -export interface DistributionRule { - id: number; - name: string; - type: number; - status: number; - autoStart: number; - createTime: string; - updateTime: string; - companyId: number; - config?: { - id: number; - workbenchId: number; - distributeType: number; // 1-均分配, 2-优先级分配, 3-比例分配 - maxPerDay: number; // 每日最大分配量 - timeType: number; // 1-全天, 2-自定义时间段 - startTime: string; // 开始时间 - endTime: string; // 结束时间 - account: string[]; // 账号列表 - devices: string[]; // 设备列表 - pools: string[]; // 流量池列表 - createTime: string; - updateTime: string; - lastUpdated: string; - total: { - dailyAverage: number; // 日均分发量 - totalAccounts: number; // 分发账户总数 - deviceCount: number; // 分发设备数量 - poolCount: number; // 流量池数量 - totalUsers: number; // 总用户数 - }; - }; - auto_like?: any; - moments_sync?: any; - group_push?: any; -} - -// 流量分发列表响应类型 -export interface TrafficDistributionListResponse { - list: DistributionRule[]; - total: number; - page: number; - limit: number; -} - -/** - * 获取账号列表 - * @param params 查询参数 - * @returns 账号列表 - */ -export const fetchAccountList = async (params: { - page?: number; // 页码 - limit?: number; // 每页数量 - keyword?: string; // 搜索关键词 -} = {}): Promise> => { - const { page = 1, limit = 10, keyword = "" } = params; - - const queryParams = new URLSearchParams(); - queryParams.append('page', page.toString()); - queryParams.append('limit', limit.toString()); - - if (keyword) { - queryParams.append('keyword', keyword); - } - - return get>(`/v1/workbench/account-list?${queryParams.toString()}`); -}; - -/** - * 获取设备标签(流量池)列表 - * @param params 查询参数 - * @returns 流量池列表 - */ -export const fetchDeviceLabels = async (params: { - deviceIds: string[]; // 设备ID列表 - page?: number; // 页码 - pageSize?: number; // 每页数量 - keyword?: string; // 搜索关键词 -}): Promise> => { - const { deviceIds, page = 1, pageSize = 10, keyword = "" } = params; - - const queryParams = new URLSearchParams(); - queryParams.append('deviceIds', deviceIds.join(',')); - queryParams.append('page', page.toString()); - queryParams.append('pageSize', pageSize.toString()); - - if (keyword) { - queryParams.append('keyword', keyword); - } - - return get>(`/v1/workbench/device-labels?${queryParams.toString()}`); -}; - -/** - * 获取流量分发规则列表 - * @param params 查询参数 - * @returns 流量分发规则列表 - */ -export const fetchDistributionRules = async (params: { - page?: number; - limit?: number; - keyword?: string; -} = {}): Promise> => { - const { page = 1, limit = 10, keyword = "" } = params; - - const queryParams = new URLSearchParams(); - queryParams.append('type', WorkbenchTaskType.TRAFFIC_DISTRIBUTION.toString()); - queryParams.append('page', page.toString()); - queryParams.append('limit', limit.toString()); - - if (keyword) { - queryParams.append('keyword', keyword); - } - - return get>(`/v1/workbench/list?${queryParams.toString()}`); -}; - -/** - * 获取流量分发规则详情 - * @param id 规则ID - * @returns 流量分发规则详情 - */ -export const fetchDistributionRuleDetail = async (id: string): Promise> => { - return get>(`/v1/workbench/detail?id=${id}`); -}; - -/** - * 创建流量分发规则 - * @param params 创建参数 - * @returns 创建结果 - */ -export const createDistributionRule = async (params: any): Promise> => { - return post>('/v1/workbench/create', { - ...params, - type: WorkbenchTaskType.TRAFFIC_DISTRIBUTION - }); -}; - -/** - * 更新流量分发规则 - * @param id 规则ID - * @param params 更新参数 - * @returns 更新结果 - */ -export const updateDistributionRule = async (id : string, params: any): Promise> => { - return post>(`/v1/workbench/update`, { - id: id, - ...params, - type: WorkbenchTaskType.TRAFFIC_DISTRIBUTION - }); -}; - -/** - * 删除流量分发规则 - * @param id 规则ID - * @returns 删除结果 - */ -export const deleteDistributionRule = async (id: string): Promise> => { - return del>(`/v1/workbench/delete?id=${id}`); -}; - -/** - * 启动/暂停流量分发规则 - * @param id 规则ID - * @param status 状态:1-启动,0-暂停 - * @returns 操作结果 - */ -export const toggleDistributionRuleStatus = async (id: string, status: 0 | 1): Promise> => { - return post>('/v1/workbench/update-status', { id, status }); -}; \ No newline at end of file diff --git a/Cunkebao/src/api/upload.ts b/Cunkebao/src/api/upload.ts deleted file mode 100644 index 7fd2fcd5..00000000 --- a/Cunkebao/src/api/upload.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { request } from './request'; -import type { AxiosResponse } from 'axios'; - -// 上传图片,返回图片地址 -export async function uploadImage(file: File): Promise { - const formData = new FormData(); - formData.append('file', file); - const response: AxiosResponse = await request.post('/v1/attachment/upload', formData, { - headers: { - 'Content-Type': 'multipart/form-data', - }, - }); - const res = response.data || response; - if (res?.url) { - return res.url; - } - throw new Error(res?.msg || '图片上传失败'); -} \ No newline at end of file diff --git a/Cunkebao/src/api/utils.ts b/Cunkebao/src/api/utils.ts deleted file mode 100644 index 1fb11b08..00000000 --- a/Cunkebao/src/api/utils.ts +++ /dev/null @@ -1,195 +0,0 @@ -import { authApi } from './auth'; -import { get, post, put, del } from './request'; -import type { ApiResponse, PaginatedResponse } from '@/types/common'; -// 设置token到localStorage -export const setToken = (token: string) => { - if (typeof window !== 'undefined') { - localStorage.setItem('token', token); - } -}; - -// 获取token -export const getToken = (): string | null => { - if (typeof window !== 'undefined') { - return localStorage.getItem('token'); - } - return null; -}; - -// 清除token -export const clearToken = () => { - if (typeof window !== 'undefined') { - localStorage.removeItem('token'); - localStorage.removeItem('userInfo'); - localStorage.removeItem('token_expired'); - localStorage.removeItem('s2_accountId'); - } -}; - -// 验证token是否有效 -export const validateToken = async (): Promise => { - try { - const response = await authApi.getUserInfo(); - return response.code === 200; - } catch (error) { - console.error('Token验证失败:', error); - return false; - } -}; - -// 刷新令牌 -export const refreshAuthToken = async (): Promise => { - if (typeof window === 'undefined') { - return false; - } - - try { - const response = await authApi.refreshToken(); - if (response.code === 200 && response.data?.token) { - setToken(response.data.token); - // 更新过期时间 - if (response.data.token_expired) { - localStorage.setItem('token_expired', response.data.token_expired); - } - return true; - } - return false; - } catch (error) { - console.error('刷新Token失败:', error); - return false; - } -}; - -// 检查token是否即将过期 -export const isTokenExpiringSoon = (): boolean => { - if (typeof window === 'undefined') { - return false; - } - - const tokenExpired = localStorage.getItem('token_expired'); - if (!tokenExpired) return true; - - try { - const expiredTime = new Date(tokenExpired).getTime(); - const currentTime = new Date().getTime(); - // 提前10分钟认为即将过期 - return currentTime >= (expiredTime - 10 * 60 * 1000); - } catch (error) { - console.error('解析token过期时间失败:', error); - return true; - } -}; - -// 检查token是否已过期 -export const isTokenExpired = (): boolean => { - if (typeof window === 'undefined') { - return false; - } - - const tokenExpired = localStorage.getItem('token_expired'); - if (!tokenExpired) return true; - - try { - const expiredTime = new Date(tokenExpired).getTime(); - const currentTime = new Date().getTime(); - // 提前5分钟认为过期,给刷新留出时间 - return currentTime >= (expiredTime - 5 * 60 * 1000); - } catch (error) { - console.error('解析token过期时间失败:', error); - return true; - } -}; - -// 请求去重器 -class RequestDeduplicator { - private pendingRequests = new Map>(); - - async deduplicate(key: string, requestFn: () => Promise): Promise { - if (this.pendingRequests.has(key)) { - return this.pendingRequests.get(key)!; - } - - const promise = requestFn(); - this.pendingRequests.set(key, promise); - - try { - const result = await promise; - return result; - } finally { - this.pendingRequests.delete(key); - } - } - - getPendingCount(): number { - return this.pendingRequests.size; - } - - clear(): void { - this.pendingRequests.clear(); - } -} - -// 请求取消管理器 -class RequestCancelManager { - private abortControllers = new Map(); - - createController(key: string): AbortController { - // 取消之前的请求 - this.cancelRequest(key); - - const controller = new AbortController(); - this.abortControllers.set(key, controller); - return controller; - } - - cancelRequest(key: string): void { - const controller = this.abortControllers.get(key); - if (controller) { - controller.abort(); - this.abortControllers.delete(key); - } - } - - cancelAllRequests(): void { - this.abortControllers.forEach(controller => controller.abort()); - this.abortControllers.clear(); - } - - getController(key: string): AbortController | undefined { - return this.abortControllers.get(key); - } -} - -// 导出单例实例 -export const requestDeduplicator = new RequestDeduplicator(); -export const requestCancelManager = new RequestCancelManager(); - -/** - * 通用文件上传方法(支持图片、文件) - * @param {File} file - 要上传的文件对象 - * @param {string} [uploadUrl='/v1/attachment/upload'] - 上传接口地址 - * @returns {Promise} - 上传成功后返回文件url - */ -export async function uploadFile(file: File, uploadUrl: string = '/v1/attachment/upload'): Promise { - try { - // 创建 FormData 对象用于文件上传 - const formData = new FormData(); - formData.append('file', file); - - // 使用 post 方法上传文件,设置正确的 Content-Type - const res = await post(uploadUrl, formData, { - headers: { - 'Content-Type': 'multipart/form-data', - }, - }); - - // 检查响应结果 - if (res?.code === 200 && res?.data?.url) { - return res.data.url; - } else { - throw new Error(res?.msg || '文件上传失败'); - } - } catch (e: any) { - throw new Error(e?.message || '文件上传失败'); - } -} \ No newline at end of file diff --git a/Cunkebao/src/api/wechat-accounts.ts b/Cunkebao/src/api/wechat-accounts.ts deleted file mode 100644 index 1bb8e353..00000000 --- a/Cunkebao/src/api/wechat-accounts.ts +++ /dev/null @@ -1,207 +0,0 @@ -import { get, post, put } from './request'; -import type { ApiResponse } from '@/types/common'; - -// 添加接口返回数据类型定义 -interface WechatAccountSummary { - accountAge: string; - activityLevel: { - allTimes: number; - dayTimes: number; - }; - accountWeight: { - scope: number; - ageWeight: number; - activityWeigth: number; - restrictWeight: number; - realNameWeight: number; - }; - statistics: { - todayAdded: number; - addLimit: number; - }; - restrictions: { - id: number; - level: string; - reason: string; - date: string; - }[]; -} - -interface QueryWechatAccountParams { - page?: number; - limit?: number; - keyword?: string; - sort?: string; - order?: string; -} - -/** - * 获取微信账号列表 - * @param params 查询参数 - * @returns 微信账号列表响应 - */ -export const fetchWechatAccountList = async (params: QueryWechatAccountParams = {}): Promise> => { - const queryParams = new URLSearchParams(); - - // 添加查询参数 - if (params.page) queryParams.append('page', params.page.toString()); - if (params.limit) queryParams.append('limit', params.limit.toString()); - if (params.keyword) queryParams.append('nickname', params.keyword); // 使用nickname作为关键词搜索参数 - if (params.sort) queryParams.append('sort', params.sort); - if (params.order) queryParams.append('order', params.order); - - // 发起API请求 - return get>(`/v1/wechats?${queryParams.toString()}`); -}; - -/** - * 刷新微信账号状态 - * @returns 刷新结果 - */ -export const refreshWechatAccounts = async (): Promise> => { - return put>('/v1/wechats/refresh', {}); -}; - -/** - * 执行微信好友转移 - * @param sourceId 源微信账号ID - * @param targetId 目标微信账号ID - * @returns 转移结果 - */ -export const transferWechatFriends = async (sourceId: string | number, targetId: string | number): Promise> => { - return post>('/v1/wechats/transfer-friends', { - source_id: sourceId, - target_id: targetId - }); -}; - -/** - * 将服务器返回的微信账号数据转换为前端使用的格式 - * @param serverAccount 服务器返回的微信账号数据 - * @returns 前端使用的微信账号数据 - */ -export const transformWechatAccount = (serverAccount: any): any => { - // 从deviceInfo中提取设备信息 - let deviceName = ''; - - if (serverAccount.deviceInfo) { - // 尝试解析设备信息字符串 - const deviceInfo = serverAccount.deviceInfo.split(' '); - if (deviceInfo.length > 0) { - // 提取设备名称 - if (deviceInfo.length > 1) { - deviceName = deviceInfo[1] ? deviceInfo[1].replace(/[()]/g, '').trim() : ''; - } - } - } - - - // 如果没有设备名称,使用备用名称 - if (!deviceName) { - deviceName = serverAccount.deviceMemo || '未命名设备'; - } - - // 假设每天最多可添加20个好友 - const maxDailyAdds = 20; - const todayAdded = serverAccount.todayNewFriendCount || 0; - - return { - id: serverAccount.id.toString(), - avatar: serverAccount.avatar || '', - nickname: serverAccount.nickname || serverAccount.accountNickname || '未命名', - wechatId: serverAccount.wechatId || '', - deviceId: serverAccount.deviceId || '', - deviceName, - friendCount: serverAccount.totalFriend || 0, - todayAdded, - remainingAdds: serverAccount.canAddFriendCount || (maxDailyAdds - todayAdded), - maxDailyAdds, - status: serverAccount.wechatStatus === 1 ? "normal" : "abnormal" as "normal" | "abnormal", - lastActive: new Date().toLocaleString() // 服务端未提供,使用当前时间 - }; -}; - -/** - * 获取微信好友列表 - * @param wechatId 微信账号ID - * @param page 页码 - * @param pageSize 每页数量 - * @param searchQuery 搜索关键词 - * @returns 好友列表数据 - */ -export const fetchWechatFriends = async (wechatId: string, page: number = 1, pageSize: number = 20, searchQuery: string = ''): Promise> => { - try { - const queryParams = new URLSearchParams(); - queryParams.append('page', page.toString()); - queryParams.append('limit', pageSize.toString()); - if (searchQuery) { - queryParams.append('search', searchQuery); - } - - return get>(`/v1/wechats/${wechatId}/friends?${queryParams.toString()}`); - } catch (error) { - console.error("获取好友列表失败:", error); - throw error; - } -}; - -/** - * 获取微信账号概览信息 - * @param id 微信账号ID - * @returns 微信账号概览信息 - */ -export const fetchWechatAccountSummary = async (wechatId: string): Promise> => { - try { - return get>(`/v1/wechats/${wechatId}/summary`); - } catch (error) { - console.error("获取账号概览失败:", error); - throw error; - } -}; - -/** - * 获取好友详情信息 - * @param wechatId 微信账号ID - * @param friendId 好友ID - * @returns 好友详情信息 - */ -export interface WechatFriendDetail { - id: number; - avatar: string; - nickname: string; - region: string; - wechatId: string; - addDate: string; - tags: string[]; - memo: string; - source: string; -} - -export const fetchWechatFriendDetail = async (wechatId: string): Promise> => { - try { - return get>(`/v1/wechats/${wechatId}/friend-detail`); - } catch (error) { - console.error("获取好友详情失败:", error); - throw error; - } -}; \ No newline at end of file diff --git a/Cunkebao/src/components/AccountSelection/api.ts b/Cunkebao/src/components/AccountSelection/api.ts new file mode 100644 index 00000000..bf069cb8 --- /dev/null +++ b/Cunkebao/src/components/AccountSelection/api.ts @@ -0,0 +1,10 @@ +import request from "@/api/request"; + +// 获取好友列表 +export function getAccountList(params: { + page: number; + limit: number; + keyword?: string; +}) { + return request("/v1/workbench/account-list", params, "GET"); +} diff --git a/Cunkebao/src/components/AccountSelection/data.ts b/Cunkebao/src/components/AccountSelection/data.ts new file mode 100644 index 00000000..8c65ee8d --- /dev/null +++ b/Cunkebao/src/components/AccountSelection/data.ts @@ -0,0 +1,34 @@ +// 账号对象类型 +export interface AccountItem { + id: number; + userName: string; + realName: string; + departmentName: string; + avatar?: string; + [key: string]: any; +} +//弹窗的 +export interface SelectionPopupProps { + visible: boolean; + onVisibleChange: (visible: boolean) => void; + selectedOptions: AccountItem[]; + onSelect: (options: AccountItem[]) => void; + readonly?: boolean; + onConfirm?: (selectedOptions: AccountItem[]) => void; +} + +// 组件属性接口 +export interface AccountSelectionProps { + selectedOptions: AccountItem[]; + onSelect: (options: AccountItem[]) => void; + accounts?: AccountItem[]; // 可选:用于在外层显示已选账号详情 + placeholder?: string; + className?: string; + visible?: boolean; + onVisibleChange?: (visible: boolean) => void; + selectedListMaxHeight?: number; + showInput?: boolean; + showSelectedList?: boolean; + readonly?: boolean; + onConfirm?: (selectedOptions: AccountItem[]) => void; +} diff --git a/Cunkebao/src/components/AccountSelection/index.module.scss b/Cunkebao/src/components/AccountSelection/index.module.scss new file mode 100644 index 00000000..51eb1af5 --- /dev/null +++ b/Cunkebao/src/components/AccountSelection/index.module.scss @@ -0,0 +1,231 @@ +.inputWrapper { + position: relative; +} +.inputIcon { + position: absolute; + left: 12px; + top: 50%; + transform: translateY(-50%); + color: #bdbdbd; + font-size: 20px; +} +.input { + padding-left: 38px !important; + height: 48px; + border-radius: 16px !important; + border: 1px solid #e5e6eb !important; + font-size: 16px; + background: #f8f9fa; +} + +.popupContainer { + display: flex; + flex-direction: column; + height: 100vh; + background: #fff; +} +.popupHeader { + padding: 24px; +} +.popupTitle { + text-align: center; + font-size: 20px; + font-weight: 600; + margin-bottom: 24px; +} +.searchWrapper { + position: relative; + margin-bottom: 16px; +} +.searchInput { + padding-left: 40px !important; + padding-top: 8px !important; + padding-bottom: 8px !important; + border-radius: 24px !important; + border: 1px solid #e5e6eb !important; + font-size: 15px; + background: #f8f9fa; +} +.searchIcon { + position: absolute; + left: 12px; + top: 50%; + transform: translateY(-50%); + color: #bdbdbd; + font-size: 16px; +} +.clearBtn { + position: absolute; + right: 8px; + top: 50%; + transform: translateY(-50%); + height: 24px; + width: 24px; + border-radius: 50%; + min-width: 24px; +} + +.friendList { + flex: 1; + overflow-y: auto; +} +.friendListInner { + border-top: 1px solid #f0f0f0; +} +.friendItem { + display: flex; + align-items: center; + padding: 16px 24px; + border-bottom: 1px solid #f0f0f0; + cursor: pointer; + transition: background 0.2s; + &:hover { + background: #f5f6fa; + } +} +.radioWrapper { + margin-right: 12px; + display: flex; + align-items: center; + justify-content: center; +} +.radioSelected { + width: 20px; + height: 20px; + border-radius: 50%; + border: 2px solid #1890ff; + display: flex; + align-items: center; + justify-content: center; +} +.radioUnselected { + width: 20px; + height: 20px; + border-radius: 50%; + border: 2px solid #e5e6eb; + display: flex; + align-items: center; + justify-content: center; +} +.radioDot { + width: 12px; + height: 12px; + border-radius: 50%; + background: #1890ff; +} +.friendInfo { + display: flex; + align-items: center; + gap: 12px; + flex: 1; +} +.friendAvatar { + width: 40px; + height: 40px; + border-radius: 50%; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + display: flex; + align-items: center; + justify-content: center; + color: #fff; + font-size: 14px; + font-weight: 500; + overflow: hidden; +} +.avatarImg { + width: 100%; + height: 100%; + object-fit: cover; +} +.friendDetail { + flex: 1; +} +.friendName { + font-weight: 500; + font-size: 16px; + color: #222; + margin-bottom: 2px; +} +.friendId { + font-size: 13px; + color: #888; + margin-bottom: 2px; +} +.friendCustomer { + font-size: 13px; + color: #bdbdbd; +} + +.loadingBox { + display: flex; + align-items: center; + justify-content: center; + height: 100%; +} +.loadingText { + color: #888; + font-size: 15px; +} +.emptyBox { + display: flex; + align-items: center; + justify-content: center; + height: 100%; +} +.emptyText { + color: #888; + font-size: 15px; +} + +.paginationRow { + border-top: 1px solid #f0f0f0; + padding: 16px; + display: flex; + align-items: center; + justify-content: space-between; + background: #fff; +} +.totalCount { + font-size: 14px; + color: #888; +} +.paginationControls { + display: flex; + align-items: center; + gap: 8px; +} +.pageBtn { + padding: 0 8px; + height: 32px; + min-width: 32px; +} +.pageInfo { + font-size: 14px; + color: #222; +} + +.popupFooter { + display: flex; + align-items: center; + justify-content: space-between; + padding: 16px; + border-top: 1px solid #f0f0f0; + background: #fff; +} +.selectedCount { + font-size: 14px; + color: #888; +} +.footerBtnGroup { + display: flex; + gap: 12px; +} +.cancelBtn { + padding: 0 24px; + border-radius: 24px; + border: 1px solid #e5e6eb; +} +.confirmBtn { + padding: 0 24px; + border-radius: 24px; +} diff --git a/Cunkebao/src/components/AccountSelection/index.tsx b/Cunkebao/src/components/AccountSelection/index.tsx new file mode 100644 index 00000000..6e19a88b --- /dev/null +++ b/Cunkebao/src/components/AccountSelection/index.tsx @@ -0,0 +1,139 @@ +import React, { useState } from "react"; +import { SearchOutlined, DeleteOutlined } from "@ant-design/icons"; +import { Button, Input } from "antd"; +import style from "./index.module.scss"; +import SelectionPopup from "./selectionPopup"; +import { AccountItem, AccountSelectionProps } from "./data"; + +export default function AccountSelection({ + selectedOptions, + onSelect, + accounts: propAccounts = [], + placeholder = "选择账号", + className = "", + visible, + onVisibleChange, + selectedListMaxHeight = 300, + showInput = true, + showSelectedList = true, + readonly = false, + onConfirm, +}: AccountSelectionProps) { + const [popupVisible, setPopupVisible] = useState(false); + + // 受控弹窗逻辑 + const realVisible = visible !== undefined ? visible : popupVisible; + const setRealVisible = (v: boolean) => { + if (onVisibleChange) onVisibleChange(v); + if (visible === undefined) setPopupVisible(v); + }; + + // 打开弹窗 + const openPopup = () => { + if (readonly) return; + setRealVisible(true); + }; + + // 获取显示文本 + const getDisplayText = () => { + if (selectedOptions.length === 0) return ""; + return `已选择 ${selectedOptions.length} 个账号`; + }; + + // 删除已选账号 + const handleRemoveAccount = (id: number) => { + if (readonly) return; + onSelect(selectedOptions.filter(d => d.id !== id)); + }; + + return ( + <> + {/* 输入框 */} + {showInput && ( +

+ )} + {/* 已选账号列表窗口 */} + {showSelectedList && selectedOptions.length > 0 && ( +
+ {selectedOptions.map(acc => ( +
+
+ 【{acc.realName}】 {acc.userName} +
+ {!readonly && ( +
+ ))} +
+ )} + {/* 弹窗 */} + + + ); +} diff --git a/Cunkebao/src/components/AccountSelection/selectionPopup.tsx b/Cunkebao/src/components/AccountSelection/selectionPopup.tsx new file mode 100644 index 00000000..83021558 --- /dev/null +++ b/Cunkebao/src/components/AccountSelection/selectionPopup.tsx @@ -0,0 +1,202 @@ +import React, { useEffect, useMemo, useRef, useState } from "react"; +import { Popup } from "antd-mobile"; +import Layout from "@/components/Layout/Layout"; +import PopupHeader from "@/components/PopuLayout/header"; +import PopupFooter from "@/components/PopuLayout/footer"; +import style from "./index.module.scss"; +import { getAccountList } from "./api"; +import { AccountItem, SelectionPopupProps } from "./data"; + +export default function SelectionPopup({ + visible, + onVisibleChange, + selectedOptions, + onSelect, + readonly = false, + onConfirm, +}: SelectionPopupProps) { + const [accounts, setAccounts] = useState([]); + const [searchQuery, setSearchQuery] = useState(""); + const [currentPage, setCurrentPage] = useState(1); + const [totalPages, setTotalPages] = useState(1); + const [totalAccounts, setTotalAccounts] = useState(0); + const [loading, setLoading] = useState(false); + + // 累积已加载过的账号,确保确认时能返回更完整的对象 + const loadedAccountMapRef = useRef>(new Map()); + + const pageSize = 20; + + const fetchAccounts = async (page: number, keyword: string = "") => { + setLoading(true); + try { + const params: any = { page, limit: pageSize }; + if (keyword.trim()) params.keyword = keyword.trim(); + + const response = await getAccountList(params); + if (response && response.list) { + setAccounts(response.list); + const total: number = response.total || response.list.length || 0; + setTotalAccounts(total); + setTotalPages(Math.max(1, Math.ceil(total / pageSize))); + + // 累积到映射表 + response.list.forEach((acc: AccountItem) => { + loadedAccountMapRef.current.set(acc.id, acc); + }); + } else { + setAccounts([]); + setTotalAccounts(0); + setTotalPages(1); + } + } catch (error) { + console.error("获取账号列表失败:", error); + } finally { + setLoading(false); + } + }; + + const handleAccountToggle = (account: AccountItem) => { + if (readonly || !onSelect) return; + const isSelected = selectedOptions.some(opt => opt.id === account.id); + const next = isSelected + ? selectedOptions.filter(opt => opt.id !== account.id) + : selectedOptions.concat(account); + onSelect(next); + }; + + const handleConfirm = () => { + if (onConfirm) { + onConfirm(selectedOptions); + } + onVisibleChange(false); + }; + + // 弹窗打开时初始化数据 + useEffect(() => { + if (visible) { + setCurrentPage(1); + setSearchQuery(""); + loadedAccountMapRef.current.clear(); + fetchAccounts(1, ""); + } + }, [visible]); + + // 搜索防抖 + useEffect(() => { + if (!visible) return; + if (searchQuery === "") return; + const timer = setTimeout(() => { + setCurrentPage(1); + fetchAccounts(1, searchQuery); + }, 500); + return () => clearTimeout(timer); + }, [searchQuery, visible]); + + // 页码变化 + useEffect(() => { + if (!visible || currentPage === 1) return; + fetchAccounts(currentPage, searchQuery); + }, [currentPage, visible, searchQuery]); + + const selectedIdSet = useMemo( + () => new Set(selectedOptions.map(opt => opt.id)), + [selectedOptions], + ); + + return ( + onVisibleChange(false)} + position="bottom" + bodyStyle={{ height: "100vh" }} + > + fetchAccounts(currentPage, searchQuery)} + /> + } + footer={ + onVisibleChange(false)} + onConfirm={handleConfirm} + /> + } + > +
+ {loading ? ( +
+
加载中...
+
+ ) : accounts.length > 0 ? ( +
+ {accounts.map(acc => ( + + ))} +
+ ) : ( +
+
+ {searchQuery + ? `没有找到包含"${searchQuery}"的账号` + : "没有找到账号"} +
+
+ )} +
+
+
+ ); +} diff --git a/Cunkebao/src/components/BackButton.tsx b/Cunkebao/src/components/BackButton.tsx deleted file mode 100644 index 808bc01c..00000000 --- a/Cunkebao/src/components/BackButton.tsx +++ /dev/null @@ -1,92 +0,0 @@ -import React from 'react'; -import { useNavigate } from 'react-router-dom'; -import { ChevronLeft, ArrowLeft } from 'lucide-react'; - -interface BackButtonProps { - /** 返回按钮的样式变体 */ - variant?: 'icon' | 'button' | 'text'; - /** 自定义返回逻辑,如果不提供则使用navigate(-1) */ - onBack?: () => void; - /** 按钮文本,仅在button和text变体时使用 */ - text?: string; - /** 自定义CSS类名 */ - className?: string; - /** 图标大小 */ - iconSize?: number; - /** 是否显示图标 */ - showIcon?: boolean; - /** 自定义图标 */ - icon?: React.ReactNode; -} - -/** - * 通用返回上一页按钮组件 - * 使用React Router的navigate方法实现返回功能 - */ -export const BackButton: React.FC = ({ - variant = 'icon', - onBack, - text = '返回', - className = '', - iconSize = 6, - showIcon = true, - icon -}) => { - const navigate = useNavigate(); - - const handleBack = () => { - if (onBack) { - onBack(); - } else { - navigate(-1); - } - }; - - const defaultIcon = variant === 'icon' ? ( - - ) : ( - - ); - - const buttonIcon = icon || (showIcon ? defaultIcon : null); - - switch (variant) { - case 'icon': - return ( - - ); - - case 'button': - return ( - - ); - - case 'text': - return ( - - ); - - default: - return null; - } -}; - -export default BackButton; \ No newline at end of file diff --git a/Cunkebao/src/components/BottomNav.tsx b/Cunkebao/src/components/BottomNav.tsx deleted file mode 100644 index ecf19aaa..00000000 --- a/Cunkebao/src/components/BottomNav.tsx +++ /dev/null @@ -1,66 +0,0 @@ -import React from 'react'; -import { Link, useLocation } from 'react-router-dom'; -import { Home, Users, LayoutGrid, User } from 'lucide-react'; - -const navItems = [ - { - id: "home", - name: "首页", - href: "/", - icon: Home, - active: (pathname: string) => pathname === "/", - }, - { - id: "scenarios", - name: "场景获客", - href: "/scenarios", - icon: Users, - active: (pathname: string) => pathname.startsWith("/scenarios"), - }, - { - id: "workspace", - name: "工作台", - href: "/workspace", - icon: LayoutGrid, - active: (pathname: string) => pathname.startsWith("/workspace"), - }, - { - id: "profile", - name: "我的", - href: "/profile", - icon: User, - active: (pathname: string) => pathname.startsWith("/profile"), - }, -]; - -interface BottomNavProps { - activeTab?: string; -} - -export default function BottomNav({ activeTab }: BottomNavProps) { - const location = useLocation(); - - return ( -
-
- {navItems.map((item) => { - const IconComponent = item.icon; - const isActive = activeTab ? activeTab === item.id : item.active(location.pathname); - - return ( - - - {item.name} - - ); - })} -
-
- ); -} \ No newline at end of file diff --git a/Cunkebao/src/components/ContentLibrarySelectionDialog.tsx b/Cunkebao/src/components/ContentLibrarySelectionDialog.tsx deleted file mode 100644 index a2ecd9d4..00000000 --- a/Cunkebao/src/components/ContentLibrarySelectionDialog.tsx +++ /dev/null @@ -1,210 +0,0 @@ -import React, { useState, useEffect, useCallback } from "react"; -import { - Dialog, - DialogContent, - DialogHeader, - DialogTitle, -} from "@/components/ui/dialog"; -import { Input } from "@/components/ui/input"; -import { Button } from "@/components/ui/button"; -import { Badge } from "@/components/ui/badge"; -import { Search, RefreshCw, Loader2 } from "lucide-react"; -import { fetchContentLibraryList } from "@/api/content"; -import { ContentLibrary } from "@/api/content"; -import { useToast } from "@/components/ui/toast"; - -interface ContentLibrarySelectionDialogProps { - open: boolean; - onOpenChange: (open: boolean) => void; - selectedLibraries: string[]; - onSelect: (libraries: string[]) => void; -} - -export function ContentLibrarySelectionDialog({ - open, - onOpenChange, - selectedLibraries, - onSelect, -}: ContentLibrarySelectionDialogProps) { - const { toast } = useToast(); - const [searchQuery, setSearchQuery] = useState(""); - const [loading, setLoading] = useState(false); - const [libraries, setLibraries] = useState([]); - const [tempSelected, setTempSelected] = useState([]); - - // 获取内容库列表 - const fetchLibraries = useCallback(async () => { - setLoading(true); - try { - const response = await fetchContentLibraryList(1, 100, searchQuery); - if (response.code === 200 && response.data) { - setLibraries(response.data.list); - } else { - toast({ - title: "获取内容库列表失败", - description: response.msg, - variant: "destructive", - }); - } - } catch (error) { - console.error("获取内容库列表失败:", error); - toast({ - title: "获取内容库列表失败", - description: "请检查网络连接", - variant: "destructive", - }); - } finally { - setLoading(false); - } - }, [searchQuery, toast]); - - useEffect(() => { - if (open) { - fetchLibraries(); - setTempSelected(selectedLibraries); - } - }, [open, selectedLibraries, fetchLibraries]); - - const handleRefresh = () => { - fetchLibraries(); - }; - - const handleSelectAll = () => { - if (tempSelected.length === libraries.length) { - setTempSelected([]); - } else { - setTempSelected(libraries.map((lib) => lib.id)); - } - }; - - const handleLibraryToggle = (libraryId: string) => { - setTempSelected((prev) => - prev.includes(libraryId) - ? prev.filter((id) => id !== libraryId) - : [...prev, libraryId] - ); - }; - - const handleDialogOpenChange = (open: boolean) => { - if (!open) { - setTempSelected(selectedLibraries); - } - onOpenChange(open); - }; - - const handleConfirm = () => { - onSelect(tempSelected); - onOpenChange(false); - }; - - return ( - - - - 选择内容库 - - -
-
- - setSearchQuery(e.target.value)} - /> -
- -
- -
-
- 已选择 {tempSelected.length} 个内容库 -
-
- -
-
- -
-
- {loading ? ( -
- 加载中... -
- ) : libraries.length === 0 ? ( -
- 暂无数据 -
- ) : ( - libraries.map((library) => ( - - )) - )} -
-
- -
-
- 已选择 {tempSelected.length} 个内容库 -
-
- - -
-
-
-
- ); -} diff --git a/Cunkebao/src/components/ContentSelection/api.ts b/Cunkebao/src/components/ContentSelection/api.ts new file mode 100644 index 00000000..a4d4bf3e --- /dev/null +++ b/Cunkebao/src/components/ContentSelection/api.ts @@ -0,0 +1,5 @@ +import request from "@/api/request"; + +export function getContentLibraryList(params: any) { + return request("/v1/content/library/list", params, "GET"); +} diff --git a/Cunkebao/src/components/ContentSelection/data.ts b/Cunkebao/src/components/ContentSelection/data.ts new file mode 100644 index 00000000..1bf8fdb8 --- /dev/null +++ b/Cunkebao/src/components/ContentSelection/data.ts @@ -0,0 +1,21 @@ +// 内容库接口类型 +export interface ContentItem { + id: number; + name: string; + [key: string]: any; +} + +// 组件属性接口 +export interface ContentSelectionProps { + selectedOptions: ContentItem[]; + onSelect: (selectedItems: ContentItem[]) => void; + placeholder?: string; + className?: string; + visible?: boolean; + onVisibleChange?: (visible: boolean) => void; + selectedListMaxHeight?: number; + showInput?: boolean; + showSelectedList?: boolean; + readonly?: boolean; + onConfirm?: (selectedItems: ContentItem[]) => void; +} diff --git a/Cunkebao/src/components/ContentSelection/index.module.scss b/Cunkebao/src/components/ContentSelection/index.module.scss new file mode 100644 index 00000000..f877360a --- /dev/null +++ b/Cunkebao/src/components/ContentSelection/index.module.scss @@ -0,0 +1,117 @@ +.inputWrapper { + position: relative; +} +.selectedListWindow { + margin-top: 8px; + border: 1px solid #e5e6eb; + border-radius: 8px; + background: #fff; +} +.selectedListRow { + display: flex; + align-items: center; + padding: 4px 8px; + border-bottom: 1px solid #f0f0f0; + font-size: 14px; +} +.libraryList { + flex: 1; + overflow-y: auto; +} +.libraryListInner { + display: flex; + flex-direction: column; + gap: 12px; + padding: 16px; +} +.libraryItem { + display: flex; + align-items: flex-start; + gap: 12px; + padding: 16px; + border-radius: 12px; + border: 1px solid #f0f0f0; + background: #fff; + cursor: pointer; + transition: background 0.2s; + &:hover { + background: #f5f6fa; + } +} +.checkboxWrapper { + margin-top: 4px; +} +.checkboxSelected { + width: 20px; + height: 20px; + border-radius: 4px; + background: #1677ff; + display: flex; + align-items: center; + justify-content: center; +} +.checkboxUnselected { + width: 20px; + height: 20px; + border-radius: 4px; + border: 1px solid #e5e6eb; + background: #fff; +} +.checkboxDot { + width: 12px; + height: 12px; + border-radius: 2px; + background: #fff; +} +.libraryInfo { + flex: 1; +} +.libraryHeader { + display: flex; + align-items: center; + justify-content: space-between; +} +.libraryName { + font-weight: 500; + font-size: 16px; + color: #222; +} +.typeTag { + font-size: 12px; + color: #1677ff; + border: 1px solid #1677ff; + border-radius: 12px; + padding: 2px 10px; + margin-left: 8px; + background: #f4f8ff; + font-weight: 500; +} +.libraryMeta { + font-size: 12px; + color: #888; +} +.libraryDesc { + font-size: 13px; + color: #888; + margin-top: 4px; +} +.loadingBox { + display: flex; + align-items: center; + justify-content: center; + height: 100%; +} +.loadingText { + color: #888; + font-size: 15px; +} +.emptyBox { + display: flex; + align-items: center; + justify-content: center; + height: 100px; +} +.emptyText { + color: #888; + font-size: 15px; +} diff --git a/Cunkebao/src/components/ContentSelection/index.tsx b/Cunkebao/src/components/ContentSelection/index.tsx new file mode 100644 index 00000000..c5d996e3 --- /dev/null +++ b/Cunkebao/src/components/ContentSelection/index.tsx @@ -0,0 +1,302 @@ +import React, { useState, useEffect } from "react"; +import { SearchOutlined, DeleteOutlined } from "@ant-design/icons"; +import { Button, Input } from "antd"; +import { Popup, Checkbox } from "antd-mobile"; +import style from "./index.module.scss"; +import Layout from "@/components/Layout/Layout"; +import PopupHeader from "@/components/PopuLayout/header"; +import PopupFooter from "@/components/PopuLayout/footer"; +import { getContentLibraryList } from "./api"; +import { ContentItem, ContentSelectionProps } from "./data"; + +// 类型标签文本 +const getTypeText = (type?: number) => { + if (type === 1) return "文本"; + if (type === 2) return "图片"; + if (type === 3) return "视频"; + return "未知"; +}; + +// 时间格式化 +const formatDate = (dateStr?: string) => { + if (!dateStr) return "-"; + const d = new Date(dateStr); + if (isNaN(d.getTime())) return "-"; + return `${d.getFullYear()}/${(d.getMonth() + 1) + .toString() + .padStart(2, "0")}/${d.getDate().toString().padStart(2, "0")} ${d + .getHours() + .toString() + .padStart(2, "0")}:${d.getMinutes().toString().padStart(2, "0")}:${d + .getSeconds() + .toString() + .padStart(2, "0")}`; +}; + +export default function ContentSelection({ + selectedOptions, + onSelect, + placeholder = "选择内容库", + className = "", + visible, + onVisibleChange, + selectedListMaxHeight = 300, + showInput = true, + showSelectedList = true, + readonly = false, + onConfirm, +}: ContentSelectionProps) { + const [popupVisible, setPopupVisible] = useState(false); + const [libraries, setLibraries] = useState([]); + const [searchQuery, setSearchQuery] = useState(""); + const [currentPage, setCurrentPage] = useState(1); + const [totalPages, setTotalPages] = useState(1); + const [totalLibraries, setTotalLibraries] = useState(0); + const [loading, setLoading] = useState(false); + + // 删除已选内容库 + const handleRemoveLibrary = (id: number) => { + if (readonly) return; + onSelect(selectedOptions.filter(c => c.id !== id)); + }; + + // 受控弹窗逻辑 + const realVisible = visible !== undefined ? visible : popupVisible; + const setRealVisible = (v: boolean) => { + if (onVisibleChange) onVisibleChange(v); + if (visible === undefined) setPopupVisible(v); + }; + + // 打开弹窗 + const openPopup = () => { + if (readonly) return; + setCurrentPage(1); + setSearchQuery(""); + setRealVisible(true); + fetchLibraries(1, ""); + }; + + // 当页码变化时,拉取对应页数据(弹窗已打开时) + useEffect(() => { + if (realVisible && currentPage !== 1) { + fetchLibraries(currentPage, searchQuery); + } + }, [currentPage, realVisible, searchQuery]); + + // 搜索防抖 + useEffect(() => { + if (!realVisible) return; + const timer = setTimeout(() => { + setCurrentPage(1); + fetchLibraries(1, searchQuery); + }, 500); + return () => clearTimeout(timer); + }, [searchQuery, realVisible]); + + // 获取内容库列表API + const fetchLibraries = async (page: number, keyword: string = "") => { + setLoading(true); + try { + const params: any = { + page, + limit: 20, + }; + if (keyword.trim()) { + params.keyword = keyword.trim(); + } + const response = await getContentLibraryList(params); + if (response && response.list) { + setLibraries(response.list); + setTotalLibraries(response.total || 0); + setTotalPages(Math.ceil((response.total || 0) / 20)); + } + } catch (error) { + console.error("获取内容库列表失败:", error); + } finally { + setLoading(false); + } + }; + + // 处理内容库选择 + const handleLibraryToggle = (library: ContentItem) => { + if (readonly) return; + const newSelected = selectedOptions.some(c => c.id === library.id) + ? selectedOptions.filter(c => c.id !== library.id) + : [...selectedOptions, library]; + onSelect(newSelected); + }; + + // 获取显示文本 + const getDisplayText = () => { + if (selectedOptions.length === 0) return ""; + return `已选择 ${selectedOptions.length} 个内容库`; + }; + + // 确认选择 + const handleConfirm = () => { + if (onConfirm) { + onConfirm(selectedOptions); + } + setRealVisible(false); + }; + + return ( + <> + {/* 输入框 */} + {showInput && ( +
+ } + allowClear={!readonly} + size="large" + readOnly={readonly} + disabled={readonly} + style={ + readonly ? { background: "#f5f5f5", cursor: "not-allowed" } : {} + } + /> +
+ )} + {/* 已选内容库列表窗口 */} + {showSelectedList && selectedOptions.length > 0 && ( +
+ {selectedOptions.map(item => ( +
+
+ {item.name || item.id} +
+ {!readonly && ( +
+ ))} +
+ )} + {/* 弹窗 */} + setRealVisible(false)} + position="bottom" + bodyStyle={{ height: "100vh" }} + > + fetchLibraries(currentPage, searchQuery)} + /> + } + footer={ + setRealVisible(false)} + onConfirm={handleConfirm} + /> + } + > +
+ {loading ? ( +
+
加载中...
+
+ ) : libraries.length > 0 ? ( +
+ {libraries.map(item => ( + + ))} +
+ ) : ( +
+
+ {searchQuery + ? `没有找到包含"${searchQuery}"的内容库` + : "没有找到内容库"} +
+
+ )} +
+
+
+ + ); +} diff --git a/Cunkebao/src/components/DeviceSelection.tsx b/Cunkebao/src/components/DeviceSelection.tsx deleted file mode 100644 index be80a70a..00000000 --- a/Cunkebao/src/components/DeviceSelection.tsx +++ /dev/null @@ -1,211 +0,0 @@ -import React, { useState, useEffect } from "react"; -import { Search } from "lucide-react"; -import { Button } from "@/components/ui/button"; -import { Input } from "@/components/ui/input"; -import { ScrollArea } from "@/components/ui/scroll-area"; -import { Checkbox } from "@/components/ui/checkbox"; -import { - Dialog, - DialogContent, - DialogHeader, - DialogTitle, -} from "@/components/ui/dialog"; -import { fetchDeviceList } from "@/api/devices"; - -// 设备选择项接口 -interface DeviceSelectionItem { - id: string; - name: string; - imei: string; - wechatId: string; - status: "online" | "offline"; -} - -// 组件属性接口 -interface DeviceSelectionProps { - selectedDevices: string[]; - onSelect: (devices: string[]) => void; - placeholder?: string; - className?: string; -} - -export default function DeviceSelection({ - selectedDevices, - onSelect, - placeholder = "选择设备", - className = "", -}: DeviceSelectionProps) { - const [dialogOpen, setDialogOpen] = useState(false); - const [devices, setDevices] = useState([]); - const [searchQuery, setSearchQuery] = useState(""); - const [statusFilter, setStatusFilter] = useState("all"); - const [loading, setLoading] = useState(false); - - // 获取设备列表,支持keyword - const fetchDevices = async (keyword: string = "") => { - setLoading(true); - try { - const res = await fetchDeviceList(1, 100, keyword.trim() || undefined); - if (res && res.data && Array.isArray(res.data.list)) { - setDevices( - res.data.list.map((d) => ({ - id: d.id?.toString() || "", - name: d.memo || d.imei || "", - imei: d.imei || "", - wechatId: d.wechatId || "", - status: d.alive === 1 ? "online" : "offline", - })) - ); - } - } catch (error) { - console.error("获取设备列表失败:", error); - } finally { - setLoading(false); - } - }; - - // 打开弹窗时获取设备列表 - const openDialog = () => { - setSearchQuery(""); - setDialogOpen(true); - fetchDevices(""); - }; - - // 搜索防抖 - useEffect(() => { - if (!dialogOpen) return; - const timer = setTimeout(() => { - fetchDevices(searchQuery); - }, 500); - return () => clearTimeout(timer); - }, [searchQuery, dialogOpen]); - - // 过滤设备(只保留状态过滤) - const filteredDevices = devices.filter((device) => { - const matchesStatus = - statusFilter === "all" || - (statusFilter === "online" && device.status === "online") || - (statusFilter === "offline" && device.status === "offline"); - return matchesStatus; - }); - - // 处理设备选择 - const handleDeviceToggle = (deviceId: string) => { - if (selectedDevices.includes(deviceId)) { - onSelect(selectedDevices.filter((id) => id !== deviceId)); - } else { - onSelect([...selectedDevices, deviceId]); - } - }; - - // 获取显示文本 - const getDisplayText = () => { - if (selectedDevices.length === 0) return ""; - return `已选择 ${selectedDevices.length} 个设备`; - }; - - return ( - <> - {/* 输入框 */} -
- - -
- - {/* 设备选择弹窗 */} - - -
- 请选择一个或多个设备,支持搜索和筛选。 -
- - 选择设备 - - -
-
- - setSearchQuery(e.target.value)} - className="pl-9" - /> -
- -
- -
- {loading ? ( -
-
加载中...
-
- ) : ( -
- {filteredDevices.map((device) => ( - - ))} -
- )} -
- -
-
- 已选择 {selectedDevices.length} 个设备 -
-
- - -
-
-
-
- - ); -} diff --git a/Cunkebao/src/components/DeviceSelection/api.ts b/Cunkebao/src/components/DeviceSelection/api.ts new file mode 100644 index 00000000..db175dda --- /dev/null +++ b/Cunkebao/src/components/DeviceSelection/api.ts @@ -0,0 +1,10 @@ +import request from "@/api/request"; + +// 获取设备列表 +export function getDeviceList(params: { + page: number; + limit: number; + keyword?: string; +}) { + return request("/v1/devices", params, "GET"); +} diff --git a/Cunkebao/src/components/DeviceSelection/data.ts b/Cunkebao/src/components/DeviceSelection/data.ts new file mode 100644 index 00000000..abc9a214 --- /dev/null +++ b/Cunkebao/src/components/DeviceSelection/data.ts @@ -0,0 +1,26 @@ +// 设备选择项接口 +export interface DeviceSelectionItem { + id: number; + memo: string; + imei: string; + wechatId: string; + status: "online" | "offline"; + wxid?: string; + nickname?: string; + usedInPlans?: number; +} + +// 组件属性接口 +export interface DeviceSelectionProps { + selectedOptions: DeviceSelectionItem[]; + onSelect: (devices: DeviceSelectionItem[]) => void; + placeholder?: string; + className?: string; + mode?: "input" | "dialog"; // 新增,默认input + open?: boolean; // 仅mode=dialog时生效 + onOpenChange?: (open: boolean) => void; // 仅mode=dialog时生效 + selectedListMaxHeight?: number; // 新增,已选列表最大高度,默认500 + showInput?: boolean; // 新增 + showSelectedList?: boolean; // 新增 + readonly?: boolean; // 新增 +} diff --git a/Cunkebao/src/components/DeviceSelection/index.module.scss b/Cunkebao/src/components/DeviceSelection/index.module.scss new file mode 100644 index 00000000..ea776f81 --- /dev/null +++ b/Cunkebao/src/components/DeviceSelection/index.module.scss @@ -0,0 +1,182 @@ +.inputWrapper { + position: relative; +} +.inputIcon { + position: absolute; + left: 12px; + top: 50%; + transform: translateY(-50%); + color: #bdbdbd; + z-index: 10; + font-size: 18px; +} +.input { + padding-left: 38px !important; + height: 56px; + border-radius: 16px !important; + border: 1px solid #e5e6eb !important; + font-size: 16px; + background: #f8f9fa; +} + +.popupHeader { + padding: 16px; + border-bottom: 1px solid #f0f0f0; +} +.popupTitle { + font-size: 20px; + font-weight: 600; + text-align: center; +} +.popupSearchRow { + display: flex; + align-items: center; + gap: 16px; + padding: 16px; +} +.popupSearchInputWrap { + position: relative; + flex: 1; +} +.popupSearchInput { + padding-left: 36px !important; + border-radius: 12px !important; + height: 44px; + font-size: 15px; + border: 1px solid #e5e6eb !important; + background: #f8f9fa; +} +.statusSelect { + width: 120px; + height: 40px; + border-radius: 8px; + border: 1px solid #e5e6eb; + font-size: 15px; + padding: 0 10px; + background: #fff; +} +.deviceList { + flex: 1; + overflow-y: auto; +} +.deviceListInner { + display: flex; + flex-direction: column; + gap: 12px; + padding: 16px; +} +.deviceItem { + display: flex; + align-items: flex-start; + gap: 12px; + padding: 16px; + border-radius: 12px; + border: 1px solid #f0f0f0; + background: #fff; + cursor: pointer; + transition: background 0.2s; + &:hover { + background: #f5f6fa; + } +} +.deviceCheckbox { + margin-top: 4px; +} +.deviceInfo { + flex: 1; +} +.deviceInfoRow { + display: flex; + align-items: center; + justify-content: space-between; +} +.deviceName { + font-weight: 500; + font-size: 16px; + color: #222; +} +.statusOnline { + width: 56px; + height: 24px; + border-radius: 12px; + background: #52c41a; + color: #fff; + font-size: 13px; + display: flex; + align-items: center; + justify-content: center; +} +.statusOffline { + width: 56px; + height: 24px; + border-radius: 12px; + background: #e5e6eb; + color: #888; + font-size: 13px; + display: flex; + align-items: center; + justify-content: center; +} +.deviceInfoDetail { + font-size: 13px; + color: #888; + margin-top: 4px; +} +.loadingBox { + display: flex; + align-items: center; + justify-content: center; + height: 100%; +} +.loadingText { + color: #888; + font-size: 15px; +} +.popupFooter { + display: flex; + align-items: center; + justify-content: space-between; + padding: 16px; + border-top: 1px solid #f0f0f0; + background: #fff; +} +.selectedCount { + font-size: 14px; + color: #888; +} +.footerBtnGroup { + display: flex; + gap: 12px; +} +.refreshBtn { + width: 36px; + height: 36px; +} +.paginationRow { + border-top: 1px solid #f0f0f0; + padding: 16px; + display: flex; + align-items: center; + justify-content: space-between; + background: #fff; +} +.totalCount { + font-size: 14px; + color: #888; +} +.paginationControls { + display: flex; + align-items: center; + gap: 8px; +} +.pageBtn { + padding: 0 8px; + height: 32px; + min-width: 32px; + border-radius: 16px; +} +.pageInfo { + font-size: 14px; + color: #222; + margin: 0 8px; +} diff --git a/Cunkebao/src/components/DeviceSelection/index.tsx b/Cunkebao/src/components/DeviceSelection/index.tsx new file mode 100644 index 00000000..9d31e268 --- /dev/null +++ b/Cunkebao/src/components/DeviceSelection/index.tsx @@ -0,0 +1,139 @@ +import React, { useState } from "react"; +import { SearchOutlined } from "@ant-design/icons"; +import { Input, Button } from "antd"; +import { DeleteOutlined } from "@ant-design/icons"; +import { DeviceSelectionProps } from "./data"; +import SelectionPopup from "./selectionPopup"; +import style from "./index.module.scss"; + +const DeviceSelection: React.FC = ({ + selectedOptions, + onSelect, + placeholder = "选择设备", + className = "", + mode = "input", + open, + onOpenChange, + selectedListMaxHeight = 300, // 默认300 + showInput = true, + showSelectedList = true, + readonly = false, +}) => { + // 弹窗控制 + const [popupVisible, setPopupVisible] = useState(false); + const isDialog = mode === "dialog"; + const realVisible = isDialog ? !!open : popupVisible; + const setRealVisible = (v: boolean) => { + if (isDialog && onOpenChange) onOpenChange(v); + if (!isDialog) setPopupVisible(v); + }; + + // 打开弹窗 + const openPopup = () => { + if (readonly) return; + setRealVisible(true); + }; + + // 获取显示文本 + const getDisplayText = () => { + if (selectedOptions.length === 0) return ""; + return `已选择 ${selectedOptions.length} 个设备`; + }; + + // 删除已选设备 + const handleRemoveDevice = (id: number) => { + if (readonly) return; + onSelect(selectedOptions.filter(v => v.id !== id)); + }; + + return ( + <> + {/* mode=input 显示输入框,mode=dialog不显示 */} + {mode === "input" && showInput && ( +
+ } + allowClear={!readonly} + size="large" + readOnly={readonly} + disabled={readonly} + style={ + readonly ? { background: "#f5f5f5", cursor: "not-allowed" } : {} + } + /> +
+ )} + {/* 已选设备列表窗口 */} + {mode === "input" && showSelectedList && selectedOptions.length > 0 && ( +
+ {selectedOptions.map(device => ( +
+
+ 【 {device.memo}】 - {device.wechatId} +
+ {!readonly && ( +
+ ))} +
+ )} + {/* 弹窗 */} + setRealVisible(false)} + selectedOptions={selectedOptions} + onSelect={onSelect} + /> + + ); +}; + +export default DeviceSelection; diff --git a/Cunkebao/src/components/DeviceSelection/selectionPopup.tsx b/Cunkebao/src/components/DeviceSelection/selectionPopup.tsx new file mode 100644 index 00000000..46c8b399 --- /dev/null +++ b/Cunkebao/src/components/DeviceSelection/selectionPopup.tsx @@ -0,0 +1,198 @@ +import React, { useState, useEffect, useCallback } from "react"; +import { Checkbox, Popup } from "antd-mobile"; +import { getDeviceList } from "./api"; +import style from "./index.module.scss"; +import Layout from "@/components/Layout/Layout"; +import PopupHeader from "@/components/PopuLayout/header"; +import PopupFooter from "@/components/PopuLayout/footer"; +import { DeviceSelectionItem } from "./data"; + +interface SelectionPopupProps { + visible: boolean; + onClose: () => void; + selectedOptions: DeviceSelectionItem[]; + onSelect: (devices: DeviceSelectionItem[]) => void; +} + +const PAGE_SIZE = 20; + +const SelectionPopup: React.FC = ({ + visible, + onClose, + selectedOptions, + onSelect, +}) => { + // 设备数据 + const [devices, setDevices] = useState([]); + const [searchQuery, setSearchQuery] = useState(""); + const [statusFilter, setStatusFilter] = useState("all"); + const [loading, setLoading] = useState(false); + const [currentPage, setCurrentPage] = useState(1); + const [total, setTotal] = useState(0); + + // 获取设备列表,支持keyword和分页 + const fetchDevices = useCallback( + async (keyword: string = "", page: number = 1) => { + setLoading(true); + try { + const res = await getDeviceList({ + page, + limit: PAGE_SIZE, + keyword: keyword.trim() || undefined, + }); + if (res && Array.isArray(res.list)) { + setDevices( + res.list.map((d: any) => ({ + id: d.id?.toString() || "", + memo: d.memo || d.imei || "", + imei: d.imei || "", + wechatId: d.wechatId || "", + status: d.alive === 1 ? "online" : "offline", + wxid: d.wechatId || "", + nickname: d.nickname || "", + usedInPlans: d.usedInPlans || 0, + })), + ); + setTotal(res.total || 0); + } + } catch (error) { + console.error("获取设备列表失败:", error); + } finally { + setLoading(false); + } + }, + [], + ); + + // 打开弹窗时获取第一页 + useEffect(() => { + if (visible) { + setSearchQuery(""); + setCurrentPage(1); + fetchDevices("", 1); + } + }, [visible, fetchDevices]); + + // 搜索防抖 + useEffect(() => { + if (!visible) return; + const timer = setTimeout(() => { + setCurrentPage(1); + fetchDevices(searchQuery, 1); + }, 500); + return () => clearTimeout(timer); + }, [searchQuery, visible, fetchDevices]); + + // 翻页时重新请求 + useEffect(() => { + if (!visible) return; + fetchDevices(searchQuery, currentPage); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [currentPage]); + + // 过滤设备(只保留状态过滤) + const filteredDevices = devices.filter(device => { + const matchesStatus = + statusFilter === "all" || + (statusFilter === "online" && device.status === "online") || + (statusFilter === "offline" && device.status === "offline"); + return matchesStatus; + }); + + const totalPages = Math.max(1, Math.ceil(total / PAGE_SIZE)); + + // 处理设备选择 + const handleDeviceToggle = (device: DeviceSelectionItem) => { + if (selectedOptions.some(v => v.id === device.id)) { + onSelect(selectedOptions.filter(v => v.id !== device.id)); + } else { + const newSelectedOptions = [...selectedOptions, device]; + onSelect(newSelectedOptions); + } + }; + + return ( + + fetchDevices(searchQuery, currentPage)} + showTabs={true} + tabsConfig={{ + activeKey: statusFilter, + onChange: setStatusFilter, + tabs: [ + { title: "全部", key: "all" }, + { title: "在线", key: "online" }, + { title: "离线", key: "offline" }, + ], + }} + /> + } + footer={ + + } + > +
+ {loading ? ( +
+
加载中...
+
+ ) : ( +
+ {filteredDevices.map(device => ( + + ))} +
+ )} +
+
+
+ ); +}; + +export default SelectionPopup; diff --git a/Cunkebao/src/components/DeviceSelectionDialog.tsx b/Cunkebao/src/components/DeviceSelectionDialog.tsx deleted file mode 100644 index ebce30dd..00000000 --- a/Cunkebao/src/components/DeviceSelectionDialog.tsx +++ /dev/null @@ -1,234 +0,0 @@ -import React, { useState, useEffect, useCallback } from "react"; -import { - Dialog, - DialogContent, - DialogHeader, - DialogTitle, -} from "@/components/ui/dialog"; -import { Input } from "@/components/ui/input"; -import { Button } from "@/components/ui/button"; -import { Badge } from "@/components/ui/badge"; -import { Search, RefreshCw, Loader2 } from "lucide-react"; -import { fetchDeviceList } from "@/api/devices"; -import { ServerDevice } from "@/types/device"; -import { useToast } from "@/components/ui/toast"; - -interface Device { - id: string; - name: string; - imei: string; - wxid: string; - status: "online" | "offline"; - usedInPlans: number; - nickname: string; -} - -interface DeviceSelectionDialogProps { - open: boolean; - onOpenChange: (open: boolean) => void; - selectedDevices: string[]; - onSelect: (devices: string[]) => void; -} - -export function DeviceSelectionDialog({ - open, - onOpenChange, - selectedDevices, - onSelect, -}: DeviceSelectionDialogProps) { - const { toast } = useToast(); - const [searchQuery, setSearchQuery] = useState(""); - const [statusFilter, setStatusFilter] = useState("all"); - const [loading, setLoading] = useState(false); - const [devices, setDevices] = useState([]); - - // 获取设备列表,支持keyword - const fetchDevices = useCallback( - async (keyword: string = "") => { - setLoading(true); - try { - const response = await fetchDeviceList( - 1, - 100, - keyword.trim() || undefined - ); - if (response.code === 200 && response.data) { - // 转换服务端数据格式为组件需要的格式 - const convertedDevices: Device[] = response.data.list.map( - (serverDevice: ServerDevice) => ({ - id: serverDevice.id.toString(), - name: serverDevice.memo || `设备 ${serverDevice.id}`, - imei: serverDevice.imei, - wxid: serverDevice.wechatId || "", - status: serverDevice.alive === 1 ? "online" : "offline", - usedInPlans: 0, // 这个字段需要从其他API获取 - nickname: serverDevice.nickname || "", - }) - ); - setDevices(convertedDevices); - } else { - toast({ - title: "获取设备列表失败", - description: response.msg, - variant: "destructive", - }); - } - } catch (error) { - console.error("获取设备列表失败:", error); - toast({ - title: "获取设备列表失败", - description: "请检查网络连接", - variant: "destructive", - }); - } finally { - setLoading(false); - } - }, - [toast] - ); - - // 打开弹窗时获取设备列表 - useEffect(() => { - if (open) { - fetchDevices(""); - } - }, [open, fetchDevices]); - - // 搜索防抖 - useEffect(() => { - if (!open) return; - const timer = setTimeout(() => { - fetchDevices(searchQuery); - }, 500); - return () => clearTimeout(timer); - }, [searchQuery, open, fetchDevices]); - - // 过滤设备(只保留状态过滤) - const filteredDevices = devices.filter((device) => { - const matchesStatus = - statusFilter === "all" || - (statusFilter === "online" && device.status === "online") || - (statusFilter === "offline" && device.status === "offline"); - return matchesStatus; - }); - - const handleDeviceSelect = (deviceId: string) => { - if (selectedDevices.includes(deviceId)) { - onSelect(selectedDevices.filter((id) => id !== deviceId)); - } else { - onSelect([...selectedDevices, deviceId]); - } - }; - - return ( - - -
- 请选择一个或多个设备,支持搜索和筛选。 -
- - 选择设备 - - -
-
- - setSearchQuery(e.target.value)} - className="pl-9" - /> -
- - -
- -
- {loading ? ( -
- 加载中... -
- ) : filteredDevices.length === 0 ? ( -
- 暂无数据 -
- ) : ( - filteredDevices.map((device) => ( - - )) - )} -
- -
-
- 已选择 {selectedDevices.length} 个设备 -
-
- - -
-
-
-
- ); -} diff --git a/Cunkebao/src/components/FriendSelection.tsx b/Cunkebao/src/components/FriendSelection.tsx deleted file mode 100644 index fb9cd8dc..00000000 --- a/Cunkebao/src/components/FriendSelection.tsx +++ /dev/null @@ -1,381 +0,0 @@ -import React, { useState, useEffect } from "react"; -import { Search, X } from "lucide-react"; -import { Button } from "@/components/ui/button"; -import { Input } from "@/components/ui/input"; -import { ScrollArea } from "@/components/ui/scroll-area"; -import { Dialog, DialogContent, DialogTitle } from "@/components/ui/dialog"; -import { get } from "@/api/request"; - -// 微信好友接口类型 -interface WechatFriend { - id: string; - nickname: string; - wechatId: string; - avatar: string; - customer: string; -} - -// 好友列表API响应类型 -interface FriendsResponse { - code: number; - msg: string; - data: { - list: Array<{ - id: number; - nickname: string; - wechatId: string; - avatar?: string; - customer?: string; - }>; - total: number; - page: number; - limit: number; - }; -} - -// 获取好友列表API函数 - 添加 keyword 参数 -const fetchFriendsList = async (params: { - page: number; - limit: number; - deviceIds?: string[]; - keyword?: string; -}): Promise => { - if (params.deviceIds && params.deviceIds.length === 0) { - return { - code: 200, - msg: "success", - data: { - list: [], - total: 0, - page: params.page, - limit: params.limit, - }, - }; - } - - const deviceIdsParam = params?.deviceIds?.join(",") || ""; - const keywordParam = params?.keyword - ? `&keyword=${encodeURIComponent(params.keyword)}` - : ""; - - return get( - `/v1/friend?page=${params.page}&limit=${params.limit}&deviceIds=${deviceIdsParam}${keywordParam}` - ); -}; - -// 组件属性接口 -interface FriendSelectionProps { - selectedFriends: string[]; - onSelect: (friends: string[]) => void; - onSelectDetail?: (friends: WechatFriend[]) => void; // 新增 - deviceIds?: string[]; - enableDeviceFilter?: boolean; // 新增开关,默认true - placeholder?: string; - className?: string; -} - -export default function FriendSelection({ - selectedFriends, - onSelect, - onSelectDetail, - deviceIds = [], - enableDeviceFilter = true, - placeholder = "选择微信好友", - className = "", -}: FriendSelectionProps) { - const [dialogOpen, setDialogOpen] = useState(false); - const [friends, setFriends] = useState([]); - const [searchQuery, setSearchQuery] = useState(""); - const [currentPage, setCurrentPage] = useState(1); - const [totalPages, setTotalPages] = useState(1); - const [totalFriends, setTotalFriends] = useState(0); - const [loading, setLoading] = useState(false); - - // 打开弹窗并请求第一页好友 - const openDialog = () => { - setCurrentPage(1); - setSearchQuery(""); // 重置搜索关键词 - setDialogOpen(true); - fetchFriends(1, ""); - }; - - // 当页码变化时,拉取对应页数据(弹窗已打开时) - useEffect(() => { - if (dialogOpen && currentPage !== 1) { - fetchFriends(currentPage, searchQuery); - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [currentPage]); - - // 搜索防抖 - useEffect(() => { - if (!dialogOpen) return; - - const timer = setTimeout(() => { - setCurrentPage(1); // 重置到第一页 - fetchFriends(1, searchQuery); - }, 500); // 500 防抖 - - return () => clearTimeout(timer); - }, [searchQuery, dialogOpen]); - - // 获取好友列表API - 添加 keyword 参数 - const fetchFriends = async (page: number, keyword: string = "") => { - setLoading(true); - try { - let res; - if (enableDeviceFilter) { - if (deviceIds.length === 0) { - setFriends([]); - setTotalFriends(0); - setTotalPages(1); - setLoading(false); - return; - } - res = await fetchFriendsList({ - page, - limit: 20, - deviceIds: deviceIds, - keyword: keyword.trim() || undefined, - }); - } else { - res = await fetchFriendsList({ - page, - limit: 20, - keyword: keyword.trim() || undefined, - }); - } - - if (res && res.code === 200 && res.data) { - setFriends( - res.data.list.map((friend) => ({ - id: friend.id?.toString() || "", - nickname: friend.nickname || "", - wechatId: friend.wechatId || "", - avatar: friend.avatar || "", - customer: friend.customer || "", - })) - ); - setTotalFriends(res.data.total || 0); - setTotalPages(Math.ceil((res.data.total || 0) / 20)); - } - } catch (error) { - console.error("获取好友列表失败:", error); - } finally { - setLoading(false); - } - }; - - // 处理好友选择 - const handleFriendToggle = (friendId: string) => { - let newIds: string[]; - if (selectedFriends.includes(friendId)) { - newIds = selectedFriends.filter((id) => id !== friendId); - } else { - newIds = [...selectedFriends, friendId]; - } - onSelect(newIds); - if (onSelectDetail) { - const selectedObjs = friends.filter((f) => newIds.includes(f.id)); - onSelectDetail(selectedObjs); - } - }; - - // 获取显示文本 - const getDisplayText = () => { - if (selectedFriends.length === 0) return ""; - return `已选择 ${selectedFriends.length} 个好友`; - }; - - const handleConfirm = () => { - setDialogOpen(false); - }; - - // 清空搜索 - const handleClearSearch = () => { - setSearchQuery(""); - setCurrentPage(1); - fetchFriends(1, ""); - }; - - return ( - <> - {/* 输入框 */} -
- - - - - - -
- - {/* 微信好友选择弹窗 */} - - -
- 请选择一个或多个微信好友,支持搜索和分页。 -
-
- - 选择微信好友 - - -
- setSearchQuery(e.target.value)} - className="pl-10 py-2 rounded-full border-gray-200" - /> - - {searchQuery && ( - - )} -
-
- -
- {loading ? ( -
-
加载中...
-
- ) : friends.length > 0 ? ( -
- {friends.map((friend) => ( - - ))} -
- ) : ( -
-
- {deviceIds.length === 0 - ? "请先选择设备" - : searchQuery - ? `没有找到包含"${searchQuery}"的好友` - : "没有找到好友"} -
-
- )} -
- -
-
- 总计 {totalFriends} 个好友 -
-
- - - {currentPage} / {totalPages} - - -
-
- -
- - -
-
-
- - ); -} diff --git a/Cunkebao/src/components/FriendSelection/api.ts b/Cunkebao/src/components/FriendSelection/api.ts new file mode 100644 index 00000000..346253ef --- /dev/null +++ b/Cunkebao/src/components/FriendSelection/api.ts @@ -0,0 +1,11 @@ +import request from "@/api/request"; + +// 获取好友列表 +export function getFriendList(params: { + page: number; + limit: number; + deviceIds?: string; // 逗号分隔 + keyword?: string; +}) { + return request("/v1/friend", params, "GET"); +} diff --git a/Cunkebao/src/components/FriendSelection/data.ts b/Cunkebao/src/components/FriendSelection/data.ts new file mode 100644 index 00000000..30b9ec70 --- /dev/null +++ b/Cunkebao/src/components/FriendSelection/data.ts @@ -0,0 +1,27 @@ +export interface FriendSelectionItem { + id: number; + wechatId: string; + nickname: string; + avatar: string; + [key: string]: any; +} + +// 组件属性接口 +export interface FriendSelectionProps { + selectedOptions?: FriendSelectionItem[]; + onSelect: (friends: FriendSelectionItem[]) => void; + deviceIds?: string[]; + enableDeviceFilter?: boolean; + placeholder?: string; + className?: string; + visible?: boolean; // 新增 + onVisibleChange?: (visible: boolean) => void; // 新增 + selectedListMaxHeight?: number; + showInput?: boolean; + showSelectedList?: boolean; + readonly?: boolean; + onConfirm?: ( + selectedIds: number[], + selectedItems: FriendSelectionItem[], + ) => void; // 新增 +} diff --git a/Cunkebao/src/components/FriendSelection/index.module.scss b/Cunkebao/src/components/FriendSelection/index.module.scss new file mode 100644 index 00000000..f450dde2 --- /dev/null +++ b/Cunkebao/src/components/FriendSelection/index.module.scss @@ -0,0 +1,246 @@ +.inputWrapper { + position: relative; +} +.selectedListRow { + padding: 8px; + border-bottom: 1px solid #f0f0f0; + font-size: 14px; +} +.selectedListRowContent { + flex: 1; + display: flex; + align-items: center; + justify-content: space-between; + gap: 8px; +} +.selectedListRowContentText { + flex: 1; +} +.inputIcon { + position: absolute; + left: 12px; + top: 50%; + transform: translateY(-50%); + color: #bdbdbd; + font-size: 20px; +} +.input { + padding-left: 38px !important; + height: 48px; + border-radius: 16px !important; + border: 1px solid #e5e6eb !important; + font-size: 16px; + background: #f8f9fa; +} + +.popupContainer { + display: flex; + flex-direction: column; + height: 100vh; + background: #fff; +} +.popupHeader { + padding: 24px; +} +.popupTitle { + text-align: center; + font-size: 20px; + font-weight: 600; + margin-bottom: 24px; +} +.searchWrapper { + position: relative; + margin-bottom: 16px; +} +.searchInput { + padding-left: 40px !important; + padding-top: 8px !important; + padding-bottom: 8px !important; + border-radius: 24px !important; + border: 1px solid #e5e6eb !important; + font-size: 15px; + background: #f8f9fa; +} +.searchIcon { + position: absolute; + left: 12px; + top: 50%; + transform: translateY(-50%); + color: #bdbdbd; + font-size: 16px; +} +.clearBtn { + position: absolute; + right: 8px; + top: 50%; + transform: translateY(-50%); + height: 24px; + width: 24px; + border-radius: 50%; + min-width: 24px; +} + +.friendList { + flex: 1; + overflow-y: auto; +} +.friendListInner { + border-top: 1px solid #f0f0f0; +} +.friendItem { + display: flex; + align-items: center; + padding: 16px 24px; + border-bottom: 1px solid #f0f0f0; + cursor: pointer; + transition: background 0.2s; + &:hover { + background: #f5f6fa; + } +} +.radioWrapper { + margin-right: 12px; + display: flex; + align-items: center; + justify-content: center; +} +.radioSelected { + width: 20px; + height: 20px; + border-radius: 50%; + border: 2px solid #1890ff; + display: flex; + align-items: center; + justify-content: center; +} +.radioUnselected { + width: 20px; + height: 20px; + border-radius: 50%; + border: 2px solid #e5e6eb; + display: flex; + align-items: center; + justify-content: center; +} +.radioDot { + width: 12px; + height: 12px; + border-radius: 50%; + background: #1890ff; +} +.friendInfo { + display: flex; + align-items: center; + gap: 12px; + flex: 1; +} +.friendAvatar { + width: 40px; + height: 40px; + border-radius: 50%; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + display: flex; + align-items: center; + justify-content: center; + color: #fff; + font-size: 14px; + font-weight: 500; + overflow: hidden; +} +.avatarImg { + width: 100%; + height: 100%; + object-fit: cover; +} +.friendDetail { + flex: 1; +} +.friendName { + font-weight: 500; + font-size: 16px; + color: #222; + margin-bottom: 2px; +} +.friendId { + font-size: 13px; + color: #888; + margin-bottom: 2px; +} +.friendCustomer { + font-size: 13px; + color: #bdbdbd; +} + +.loadingBox { + display: flex; + align-items: center; + justify-content: center; + height: 100%; +} +.loadingText { + color: #888; + font-size: 15px; +} +.emptyBox { + display: flex; + align-items: center; + justify-content: center; + height: 100%; +} +.emptyText { + color: #888; + font-size: 15px; +} + +.paginationRow { + border-top: 1px solid #f0f0f0; + padding: 16px; + display: flex; + align-items: center; + justify-content: space-between; + background: #fff; +} +.totalCount { + font-size: 14px; + color: #888; +} +.paginationControls { + display: flex; + align-items: center; + gap: 8px; +} +.pageBtn { + padding: 0 8px; + height: 32px; + min-width: 32px; +} +.pageInfo { + font-size: 14px; + color: #222; +} + +.popupFooter { + display: flex; + align-items: center; + justify-content: space-between; + padding: 16px; + border-top: 1px solid #f0f0f0; + background: #fff; +} +.selectedCount { + font-size: 14px; + color: #888; +} +.footerBtnGroup { + display: flex; + gap: 12px; +} +.cancelBtn { + padding: 0 24px; + border-radius: 24px; + border: 1px solid #e5e6eb; +} +.confirmBtn { + padding: 0 24px; + border-radius: 24px; +} diff --git a/Cunkebao/src/components/FriendSelection/index.tsx b/Cunkebao/src/components/FriendSelection/index.tsx new file mode 100644 index 00000000..63c04a45 --- /dev/null +++ b/Cunkebao/src/components/FriendSelection/index.tsx @@ -0,0 +1,140 @@ +import React, { useState } from "react"; +import { SearchOutlined, DeleteOutlined } from "@ant-design/icons"; +import { Button, Input } from "antd"; +import { Avatar } from "antd-mobile"; +import style from "./index.module.scss"; +import { FriendSelectionProps } from "./data"; +import SelectionPopup from "./selectionPopup"; + +export default function FriendSelection({ + selectedOptions = [], + onSelect, + deviceIds = [], + enableDeviceFilter = true, + placeholder = "选择微信好友", + className = "", + visible, + onVisibleChange, + selectedListMaxHeight = 300, + showInput = true, + showSelectedList = true, + readonly = false, + onConfirm, +}: FriendSelectionProps) { + const [popupVisible, setPopupVisible] = useState(false); + // 内部弹窗交给 selectionPopup 处理 + + // 受控弹窗逻辑 + const realVisible = visible !== undefined ? visible : popupVisible; + const setRealVisible = (v: boolean) => { + if (onVisibleChange) onVisibleChange(v); + if (visible === undefined) setPopupVisible(v); + }; + + // 打开弹窗 + const openPopup = () => { + if (readonly) return; + setRealVisible(true); + }; + + // 获取显示文本 + const getDisplayText = () => { + if (!selectedOptions || selectedOptions.length === 0) return ""; + return `已选择 ${selectedOptions.length} 个好友`; + }; + + // 删除已选好友 + const handleRemoveFriend = (id: number) => { + if (readonly) return; + onSelect((selectedOptions || []).filter(v => v.id !== id)); + }; + + // 弹窗确认回调 + const handleConfirm = ( + selectedIds: number[], + selectedItems: typeof selectedOptions, + ) => { + onSelect(selectedItems); + if (onConfirm) onConfirm(selectedIds, selectedItems); + setRealVisible(false); + }; + + return ( + <> + {/* 输入框 */} + {showInput && ( +
+ } + allowClear={!readonly} + size="large" + readOnly={readonly} + disabled={readonly} + style={ + readonly ? { background: "#f5f5f5", cursor: "not-allowed" } : {} + } + /> +
+ )} + {/* 已选好友列表窗口 */} + {showSelectedList && (selectedOptions || []).length > 0 && ( +
+ {(selectedOptions || []).map(friend => ( +
+
+ +
+
{friend.nickname}
+
{friend.wechatId}
+
+ {!readonly && ( +
+
+ ))} +
+ )} + {/* 弹窗 */} + + + ); +} diff --git a/Cunkebao/src/components/FriendSelection/selectionPopup.tsx b/Cunkebao/src/components/FriendSelection/selectionPopup.tsx new file mode 100644 index 00000000..f5713c80 --- /dev/null +++ b/Cunkebao/src/components/FriendSelection/selectionPopup.tsx @@ -0,0 +1,213 @@ +import React, { useCallback, useEffect, useState } from "react"; +import { Popup, Checkbox } from "antd-mobile"; +import Layout from "@/components/Layout/Layout"; +import PopupHeader from "@/components/PopuLayout/header"; +import PopupFooter from "@/components/PopuLayout/footer"; +import { getFriendList } from "./api"; +import style from "./index.module.scss"; +import type { FriendSelectionItem } from "./data"; + +interface SelectionPopupProps { + visible: boolean; + onVisibleChange: (visible: boolean) => void; + selectedOptions: FriendSelectionItem[]; + onSelect: (friends: FriendSelectionItem[]) => void; + deviceIds?: string[]; + enableDeviceFilter?: boolean; + readonly?: boolean; + onConfirm?: ( + selectedIds: number[], + selectedItems: FriendSelectionItem[], + ) => void; +} + +const SelectionPopup: React.FC = ({ + visible, + onVisibleChange, + selectedOptions, + onSelect, + deviceIds = [], + enableDeviceFilter = true, + readonly = false, + onConfirm, +}) => { + const [friends, setFriends] = useState([]); + const [searchQuery, setSearchQuery] = useState(""); + const [currentPage, setCurrentPage] = useState(1); + const [totalPages, setTotalPages] = useState(1); + const [totalFriends, setTotalFriends] = useState(0); + const [loading, setLoading] = useState(false); + + // 获取好友列表API + const fetchFriends = useCallback( + async (page: number, keyword: string = "") => { + setLoading(true); + try { + const params: any = { + page, + limit: 20, + }; + + if (keyword.trim()) { + params.keyword = keyword.trim(); + } + + if (enableDeviceFilter && deviceIds.length > 0) { + params.deviceIds = deviceIds.join(","); + } + + const response = await getFriendList(params); + if (response && response.list) { + setFriends(response.list); + setTotalFriends(response.total || 0); + setTotalPages(Math.ceil((response.total || 0) / 20)); + } + } catch (error) { + console.error("获取好友列表失败:", error); + } finally { + setLoading(false); + } + }, + [deviceIds, enableDeviceFilter], + ); + + // 处理好友选择 + const handleFriendToggle = (friend: FriendSelectionItem) => { + if (readonly) return; + + const newSelectedFriends = selectedOptions.some(f => f.id === friend.id) + ? selectedOptions.filter(f => f.id !== friend.id) + : selectedOptions.concat(friend); + + onSelect(newSelectedFriends); + }; + + // 确认选择 + const handleConfirm = () => { + if (onConfirm) { + onConfirm( + selectedOptions.map(v => v.id), + selectedOptions, + ); + } + onVisibleChange(false); + }; + + // 弹窗打开时初始化 + useEffect(() => { + if (visible) { + setCurrentPage(1); + setSearchQuery(""); + fetchFriends(1, ""); + } + }, [visible]); // 只在弹窗开启时请求 + + // 搜索防抖(只在弹窗打开且搜索词变化时执行) + useEffect(() => { + if (!visible || searchQuery === "") return; // 弹窗关闭或搜索词为空时不请求 + + const timer = setTimeout(() => { + setCurrentPage(1); + fetchFriends(1, searchQuery); + }, 500); + + return () => clearTimeout(timer); + }, [searchQuery, visible]); + + // 页码变化时请求数据(只在弹窗打开且页码不是1时执行) + useEffect(() => { + if (!visible || currentPage === 1) return; // 弹窗关闭或第一页时不请求 + fetchFriends(currentPage, searchQuery); + }, [currentPage, visible, searchQuery]); + + return ( + onVisibleChange(false)} + position="bottom" + bodyStyle={{ height: "100vh" }} + > + fetchFriends(currentPage, searchQuery)} + /> + } + footer={ + onVisibleChange(false)} + onConfirm={handleConfirm} + /> + } + > +
+ {loading ? ( +
+
加载中...
+
+ ) : friends.length > 0 ? ( +
+ {friends.map(friend => ( +
+ f.id === friend.id)} + onChange={() => !readonly && handleFriendToggle(friend)} + disabled={readonly} + style={{ marginRight: 12 }} + /> +
+
+ {friend.avatar ? ( + {friend.nickname} + ) : ( + friend.nickname.charAt(0) + )} +
+
+
{friend.nickname}
+
+ 微信ID: {friend.wechatId} +
+ {friend.customer && ( +
+ 归属客户: {friend.customer} +
+ )} +
+
+
+ ))} +
+ ) : ( +
+
+ {deviceIds.length === 0 + ? "请先选择设备" + : searchQuery + ? `没有找到包含"${searchQuery}"的好友` + : "没有找到好友"} +
+
+ )} +
+
+
+ ); +}; + +export default SelectionPopup; diff --git a/Cunkebao/src/components/GroupSelection.tsx b/Cunkebao/src/components/GroupSelection.tsx deleted file mode 100644 index f2caef9d..00000000 --- a/Cunkebao/src/components/GroupSelection.tsx +++ /dev/null @@ -1,343 +0,0 @@ -import React, { useState, useEffect } from "react"; -import { Search, X } from "lucide-react"; -import { Button } from "@/components/ui/button"; -import { Input } from "@/components/ui/input"; -import { ScrollArea } from "@/components/ui/scroll-area"; -import { Dialog, DialogContent, DialogTitle } from "@/components/ui/dialog"; -import { get } from "@/api/request"; - -// 群组接口类型 -interface WechatGroup { - id: string; - chatroomId: string; - name: string; - avatar: string; - ownerWechatId: string; - ownerNickname: string; - ownerAvatar: string; -} - -interface GroupsResponse { - code: number; - msg: string; - data: { - list: Array<{ - id: number; - chatroomId: string; - name: string; - avatar?: string; - ownerWechatId?: string; - ownerNickname?: string; - ownerAvatar?: string; - }>; - total: number; - page: number; - limit: number; - }; -} - -// 修改:支持keyword参数 -const fetchGroupsList = async (params: { - page: number; - limit: number; - keyword?: string; -}): Promise => { - const keywordParam = params.keyword - ? `&keyword=${encodeURIComponent(params.keyword)}` - : ""; - return get( - `/v1/chatroom?page=${params.page}&limit=${params.limit}${keywordParam}` - ); -}; - -interface GroupSelectionProps { - selectedGroups: string[]; - onSelect: (groups: string[]) => void; - onSelectDetail?: (groups: WechatGroup[]) => void; // 新增 - placeholder?: string; - className?: string; -} - -export default function GroupSelection({ - selectedGroups, - onSelect, - onSelectDetail, - placeholder = "选择群聊", - className = "", -}: GroupSelectionProps) { - const [dialogOpen, setDialogOpen] = useState(false); - const [groups, setGroups] = useState([]); - const [searchQuery, setSearchQuery] = useState(""); - const [currentPage, setCurrentPage] = useState(1); - const [totalPages, setTotalPages] = useState(1); - const [totalGroups, setTotalGroups] = useState(0); - const [loading, setLoading] = useState(false); - - // 打开弹窗并请求第一页群组 - const openDialog = () => { - setCurrentPage(1); - setSearchQuery(""); // 重置搜索关键词 - setDialogOpen(true); - fetchGroups(1, ""); - }; - - // 当页码变化时,拉取对应页数据(弹窗已打开时) - useEffect(() => { - if (dialogOpen && currentPage !== 1) { - fetchGroups(currentPage, searchQuery); - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [currentPage]); - - // 搜索防抖 - useEffect(() => { - if (!dialogOpen) return; - const timer = setTimeout(() => { - setCurrentPage(1); - fetchGroups(1, searchQuery); - }, 500); - return () => clearTimeout(timer); - }, [searchQuery, dialogOpen]); - - // 获取群组列表API - 支持keyword - const fetchGroups = async (page: number, keyword: string = "") => { - setLoading(true); - try { - const res = await fetchGroupsList({ - page, - limit: 20, - keyword: keyword.trim() || undefined, - }); - if (res && res.code === 200 && res.data) { - setGroups( - res.data.list.map((group) => ({ - id: group.id?.toString() || "", - chatroomId: group.chatroomId || "", - name: group.name || "", - avatar: group.avatar || "", - ownerWechatId: group.ownerWechatId || "", - ownerNickname: group.ownerNickname || "", - ownerAvatar: group.ownerAvatar || "", - })) - ); - setTotalGroups(res.data.total || 0); - setTotalPages(Math.ceil((res.data.total || 0) / 20)); - } - } catch (error) { - console.error("获取群组列表失败:", error); - } finally { - setLoading(false); - } - }; - - // 处理群组选择 - const handleGroupToggle = (groupId: string) => { - let newIds: string[]; - if (selectedGroups.includes(groupId)) { - newIds = selectedGroups.filter((id) => id !== groupId); - } else { - newIds = [...selectedGroups, groupId]; - } - onSelect(newIds); - if (onSelectDetail) { - const selectedObjs = groups.filter((g) => newIds.includes(g.id)); - onSelectDetail(selectedObjs); - } - }; - - // 获取显示文本 - const getDisplayText = () => { - if (selectedGroups.length === 0) return ""; - return `已选择 ${selectedGroups.length} 个群聊`; - }; - - const handleConfirm = () => { - setDialogOpen(false); - }; - - // 清空搜索 - const handleClearSearch = () => { - setSearchQuery(""); - setCurrentPage(1); - fetchGroups(1, ""); - }; - - return ( - <> - {/* 输入框 */} -
- - - - - - -
- - {/* 群组选择弹窗 */} - - -
- 请选择一个或多个群聊,支持搜索和分页。 -
-
- - 选择群聊 - -
- setSearchQuery(e.target.value)} - className="pl-10 py-2 rounded-full border-gray-200" - /> - - {searchQuery && ( - - )} -
-
- -
- {loading ? ( -
-
加载中...
-
- ) : groups.length > 0 ? ( -
- {groups.map((group) => ( - - ))} -
- ) : ( -
-
- {searchQuery - ? `没有找到包含"${searchQuery}"的群聊` - : "没有找到群聊"} -
-
- )} -
- -
-
- 总计 {totalGroups} 个群聊 - {searchQuery && ` (搜索: "${searchQuery}")`} -
-
- - - {currentPage} / {totalPages} - - -
-
- -
- - -
-
-
- - ); -} diff --git a/Cunkebao/src/components/GroupSelection/api.ts b/Cunkebao/src/components/GroupSelection/api.ts new file mode 100644 index 00000000..cda84b81 --- /dev/null +++ b/Cunkebao/src/components/GroupSelection/api.ts @@ -0,0 +1,10 @@ +import request from "@/api/request"; + +// 获取群组列表 +export function getGroupList(params: { + page: number; + limit: number; + keyword?: string; +}) { + return request("/v1/chatroom", params, "GET"); +} diff --git a/Cunkebao/src/components/GroupSelection/data.ts b/Cunkebao/src/components/GroupSelection/data.ts new file mode 100644 index 00000000..b042b6d3 --- /dev/null +++ b/Cunkebao/src/components/GroupSelection/data.ts @@ -0,0 +1,43 @@ +// 群组接口类型 +export interface WechatGroup { + id: string; + chatroomId: string; + name: string; + avatar: string; + ownerWechatId: string; + ownerNickname: string; + ownerAvatar: string; +} + +export interface GroupSelectionItem { + id: string; + avatar: string; + chatroomId?: string; + createTime?: number; + identifier?: string; + name: string; + ownerAlias?: string; + ownerAvatar?: string; + ownerNickname?: string; + ownerWechatId?: string; + [key: string]: any; +} + +// 组件属性接口 +export interface GroupSelectionProps { + selectedOptions: GroupSelectionItem[]; + onSelect: (groups: GroupSelectionItem[]) => void; + onSelectDetail?: (groups: WechatGroup[]) => void; + placeholder?: string; + className?: string; + visible?: boolean; + onVisibleChange?: (visible: boolean) => void; + selectedListMaxHeight?: number; + showInput?: boolean; + showSelectedList?: boolean; + readonly?: boolean; + onConfirm?: ( + selectedIds: string[], + selectedItems: GroupSelectionItem[], + ) => void; // 新增 +} diff --git a/Cunkebao/src/components/GroupSelection/index.module.scss b/Cunkebao/src/components/GroupSelection/index.module.scss new file mode 100644 index 00000000..bedba3ef --- /dev/null +++ b/Cunkebao/src/components/GroupSelection/index.module.scss @@ -0,0 +1,206 @@ +.inputWrapper { + position: relative; +} +.inputIcon { + position: absolute; + left: 12px; + top: 50%; + transform: translateY(-50%); + color: #bdbdbd; + font-size: 20px; +} +.input { + padding-left: 38px !important; + height: 48px; + border-radius: 16px !important; + border: 1px solid #e5e6eb !important; + font-size: 16px; + background: #f8f9fa; +} +.selectedListRow { + padding: 8px; + border-bottom: 1px solid #f0f0f0; + font-size: 14px; +} +.selectedListRowContent { + flex: 1; + display: flex; + align-items: center; + justify-content: space-between; + gap: 8px; +} +.selectedListRowContentText { + flex: 1; +} + +.popupContainer { + display: flex; + flex-direction: column; + height: 100vh; + background: #fff; +} +.popupHeader { + padding: 24px; +} +.popupTitle { + text-align: center; + font-size: 20px; + font-weight: 600; + margin-bottom: 24px; +} +.searchWrapper { + position: relative; + margin-bottom: 16px; +} +.searchInput { + padding-left: 40px !important; + padding-top: 8px !important; + padding-bottom: 8px !important; + border-radius: 24px !important; + border: 1px solid #e5e6eb !important; + font-size: 15px; + background: #f8f9fa; +} +.searchIcon { + position: absolute; + left: 12px; + top: 50%; + transform: translateY(-50%); + color: #bdbdbd; + font-size: 16px; +} +.clearBtn { + position: absolute; + right: 8px; + top: 50%; + transform: translateY(-50%); + height: 24px; + width: 24px; + border-radius: 50%; + min-width: 24px; +} + +.groupList { + flex: 1; + overflow-y: auto; +} +.groupListInner { + border-top: 1px solid #f0f0f0; +} +.groupItem { + display: flex; + align-items: center; + padding: 16px 24px; + border-bottom: 1px solid #f0f0f0; + transition: background 0.2s; + &:hover { + background: #f5f6fa; + } +} +.groupInfo { + display: flex; + align-items: center; + gap: 12px; + flex: 1; +} +.groupAvatar { + width: 40px; + height: 40px; + border-radius: 50%; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + display: flex; + align-items: center; + justify-content: center; + color: #fff; + font-size: 14px; + font-weight: 500; + overflow: hidden; +} +.avatarImg { + width: 100%; + height: 100%; + object-fit: cover; +} +.groupDetail { + flex: 1; +} +.groupName { + font-weight: 500; + font-size: 16px; + color: #222; + margin-bottom: 2px; +} +.groupId { + font-size: 13px; + color: #888; + margin-bottom: 2px; +} +.groupOwner { + font-size: 13px; + color: #bdbdbd; +} + +.loadingBox { + display: flex; + align-items: center; + justify-content: center; + height: 100%; +} +.loadingText { + color: #888; + font-size: 15px; +} +.emptyBox { + display: flex; + align-items: center; + justify-content: center; + height: 100%; +} +.emptyText { + color: #888; + font-size: 15px; +} + +.paginationRow { + border-top: 1px solid #f0f0f0; + padding: 16px; + display: flex; + align-items: center; + justify-content: space-between; + background: #fff; +} +.totalCount { + font-size: 14px; + color: #888; +} +.paginationControls { + display: flex; + align-items: center; + gap: 8px; +} +.pageBtn { + padding: 0 8px; + height: 32px; + min-width: 32px; +} +.pageInfo { + font-size: 14px; + color: #222; +} + +.popupFooter { + display: flex; + align-items: center; + justify-content: space-between; + padding: 16px; + border-top: 1px solid #f0f0f0; + background: #fff; +} +.selectedCount { + font-size: 14px; + color: #888; +} +.footerBtnGroup { + display: flex; + gap: 12px; +} diff --git a/Cunkebao/src/components/GroupSelection/index.tsx b/Cunkebao/src/components/GroupSelection/index.tsx new file mode 100644 index 00000000..fe180054 --- /dev/null +++ b/Cunkebao/src/components/GroupSelection/index.tsx @@ -0,0 +1,126 @@ +import React, { useState } from "react"; +import { SearchOutlined, DeleteOutlined } from "@ant-design/icons"; +import { Button, Input } from "antd"; +import { Avatar } from "antd-mobile"; +import style from "./index.module.scss"; +import SelectionPopup from "./selectionPopup"; +import { GroupSelectionProps } from "./data"; +export default function GroupSelection({ + selectedOptions, + onSelect, + onSelectDetail, + placeholder = "选择群聊", + className = "", + visible, + onVisibleChange, + selectedListMaxHeight = 300, + showInput = true, + showSelectedList = true, + readonly = false, + onConfirm, +}: GroupSelectionProps) { + const [popupVisible, setPopupVisible] = useState(false); + + // 删除已选群聊 + const handleRemoveGroup = (id: string) => { + if (readonly) return; + onSelect(selectedOptions.filter(g => g.id !== id)); + }; + + // 受控弹窗逻辑 + const realVisible = visible !== undefined ? visible : popupVisible; + const setRealVisible = (v: boolean) => { + if (onVisibleChange) onVisibleChange(v); + if (visible === undefined) setPopupVisible(v); + }; + + // 打开弹窗 + const openPopup = () => { + if (readonly) return; + setRealVisible(true); + }; + + // 获取显示文本 + const getDisplayText = () => { + if (selectedOptions.length === 0) return ""; + return `已选择 ${selectedOptions.length} 个群聊`; + }; + + return ( + <> + {/* 输入框 */} + {showInput && ( +
+ } + allowClear={!readonly} + size="large" + readOnly={readonly} + disabled={readonly} + style={ + readonly ? { background: "#f5f5f5", cursor: "not-allowed" } : {} + } + /> +
+ )} + {/* 已选群聊列表窗口 */} + {showSelectedList && selectedOptions.length > 0 && ( +
+ {selectedOptions.map(group => ( +
+
+ +
+
{group.name}
+
{group.chatroomId}
+
+ {!readonly && ( +
+
+ ))} +
+ )} + {/* 弹窗 */} + + + ); +} diff --git a/Cunkebao/src/components/GroupSelection/selectionPopup.tsx b/Cunkebao/src/components/GroupSelection/selectionPopup.tsx new file mode 100644 index 00000000..6fb56806 --- /dev/null +++ b/Cunkebao/src/components/GroupSelection/selectionPopup.tsx @@ -0,0 +1,220 @@ +import React, { useState, useEffect } from "react"; +import { Popup, Checkbox } from "antd-mobile"; + +import { getGroupList } from "./api"; +import style from "./index.module.scss"; +import Layout from "@/components/Layout/Layout"; +import PopupHeader from "@/components/PopuLayout/header"; +import PopupFooter from "@/components/PopuLayout/footer"; +import { GroupSelectionItem } from "./data"; +// 群组接口类型 +interface WechatGroup { + id: string; + name: string; + avatar: string; + chatroomId?: string; + ownerWechatId?: string; + ownerNickname?: string; + ownerAvatar?: string; +} + +// 弹窗属性接口 +interface SelectionPopupProps { + visible: boolean; + onVisibleChange: (visible: boolean) => void; + selectedOptions: GroupSelectionItem[]; + onSelect: (groups: GroupSelectionItem[]) => void; + onSelectDetail?: (groups: WechatGroup[]) => void; + readonly?: boolean; + onConfirm?: ( + selectedIds: string[], + selectedItems: GroupSelectionItem[], + ) => void; +} + +export default function SelectionPopup({ + visible, + onVisibleChange, + selectedOptions, + onSelect, + onSelectDetail, + readonly = false, + onConfirm, +}: SelectionPopupProps) { + const [groups, setGroups] = useState([]); + const [searchQuery, setSearchQuery] = useState(""); + const [currentPage, setCurrentPage] = useState(1); + const [totalPages, setTotalPages] = useState(1); + const [totalGroups, setTotalGroups] = useState(0); + const [loading, setLoading] = useState(false); + + // 获取群聊列表API + const fetchGroups = async (page: number, keyword: string = "") => { + setLoading(true); + try { + const params: any = { + page, + limit: 20, + }; + + if (keyword.trim()) { + params.keyword = keyword.trim(); + } + + const response = await getGroupList(params); + if (response && response.list) { + setGroups(response.list); + setTotalGroups(response.total || 0); + setTotalPages(Math.ceil((response.total || 0) / 20)); + } + } catch (error) { + console.error("获取群聊列表失败:", error); + } finally { + setLoading(false); + } + }; + + // 处理群聊选择 + const handleGroupToggle = (group: GroupSelectionItem) => { + if (readonly) return; + + const newSelectedGroups = selectedOptions.some(g => g.id === group.id) + ? selectedOptions.filter(g => g.id !== group.id) + : selectedOptions.concat(group); + + onSelect(newSelectedGroups); + + // 如果有 onSelectDetail 回调,传递完整的群聊对象 + if (onSelectDetail) { + const selectedGroupObjs = groups.filter(group => + newSelectedGroups.some(g => g.id === group.id), + ); + onSelectDetail(selectedGroupObjs); + } + }; + + // 确认选择 + const handleConfirm = () => { + if (onConfirm) { + onConfirm( + selectedOptions.map(g => g.id), + selectedOptions, + ); + } + onVisibleChange(false); + }; + + // 弹窗打开时初始化数据(只执行一次) + useEffect(() => { + if (visible) { + setCurrentPage(1); + setSearchQuery(""); + fetchGroups(1, ""); + } + }, [visible]); + + // 搜索防抖(只在弹窗打开且搜索词变化时执行) + useEffect(() => { + if (!visible || searchQuery === "") return; + + const timer = setTimeout(() => { + setCurrentPage(1); + fetchGroups(1, searchQuery); + }, 500); + + return () => clearTimeout(timer); + }, [searchQuery, visible]); + + // 页码变化时请求数据(只在弹窗打开且页码不是1时执行) + useEffect(() => { + if (!visible || currentPage === 1) return; + fetchGroups(currentPage, searchQuery); + }, [currentPage, visible, searchQuery]); + + return ( + onVisibleChange(false)} + position="bottom" + bodyStyle={{ height: "100vh" }} + > + fetchGroups(currentPage, searchQuery)} + /> + } + footer={ + onVisibleChange(false)} + onConfirm={handleConfirm} + /> + } + > +
+ {loading ? ( +
+
加载中...
+
+ ) : groups.length > 0 ? ( +
+ {groups.map(group => ( +
+ g.id === group.id)} + onChange={() => !readonly && handleGroupToggle(group)} + disabled={readonly} + style={{ marginRight: 12 }} + /> +
+
+ {group.avatar ? ( + {group.name} + ) : ( + group.name.charAt(0) + )} +
+
+
{group.name}
+
+ 群ID: {group.chatroomId} +
+ {group.ownerNickname && ( +
+ 群主: {group.ownerNickname} +
+ )} +
+
+
+ ))} +
+ ) : ( +
+
+ {searchQuery + ? `没有找到包含"${searchQuery}"的群聊` + : "没有找到群聊"} +
+
+ )} +
+
+
+ ); +} diff --git a/Cunkebao/src/components/InfiniteList/InfiniteList.module.scss b/Cunkebao/src/components/InfiniteList/InfiniteList.module.scss new file mode 100644 index 00000000..a78dbf9e --- /dev/null +++ b/Cunkebao/src/components/InfiniteList/InfiniteList.module.scss @@ -0,0 +1,87 @@ +.listContainer { + display: flex; + flex-direction: column; + overflow: hidden; + position: relative; +} + +.listItem { + flex-shrink: 0; + width: 100%; +} + +.loadMoreButtonContainer { + display: flex; + justify-content: center; + align-items: center; + padding: 16px; + flex-shrink: 0; +} + +.noMoreText { + text-align: center; + color: #999; + font-size: 14px; + padding: 16px; + flex-shrink: 0; +} + +.emptyState { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 60px 20px; + color: #999; + flex: 1; + min-height: 200px; +} + +.emptyIcon { + font-size: 48px; + margin-bottom: 16px; + opacity: 0.5; +} + +.emptyText { + font-size: 14px; + color: #999; +} + +.pullToRefresh { + height: 100%; + overflow: auto; +} + +// 自定义滚动条样式 +.listContainer::-webkit-scrollbar { + width: 4px; +} + +.listContainer::-webkit-scrollbar-track { + background: transparent; +} + +.listContainer::-webkit-scrollbar-thumb { + background: rgba(0, 0, 0, 0.1); + border-radius: 2px; +} + +.listContainer::-webkit-scrollbar-thumb:hover { + background: rgba(0, 0, 0, 0.2); +} + +// 响应式设计 +@media (max-width: 768px) { + .listContainer { + padding: 0 8px; + } + + .loadMoreButtonContainer { + padding: 12px; + } + + .noMoreText { + padding: 12px; + } +} diff --git a/Cunkebao/src/components/InfiniteList/InfiniteList.tsx b/Cunkebao/src/components/InfiniteList/InfiniteList.tsx new file mode 100644 index 00000000..56e7369b --- /dev/null +++ b/Cunkebao/src/components/InfiniteList/InfiniteList.tsx @@ -0,0 +1,195 @@ +import React, { useState, useEffect, useRef, useCallback } from "react"; +import { + PullToRefresh, + InfiniteScroll, + Button, + SpinLoading, +} from "antd-mobile"; +import styles from "./InfiniteList.module.scss"; + +interface InfiniteListProps { + // 数据相关 + data: T[]; + loading?: boolean; + hasMore?: boolean; + loadingText?: string; + noMoreText?: string; + + // 渲染相关 + renderItem: (item: T, index: number) => React.ReactNode; + keyExtractor?: (item: T, index: number) => string | number; + + // 事件回调 + onLoadMore?: () => Promise | void; + onRefresh?: () => Promise | void; + + // 样式相关 + className?: string; + itemClassName?: string; + containerStyle?: React.CSSProperties; + + // 功能开关 + enablePullToRefresh?: boolean; + enableInfiniteScroll?: boolean; + enableLoadMoreButton?: boolean; + + // 自定义高度 + height?: string | number; + minHeight?: string | number; +} + +const InfiniteList = ({ + data, + loading = false, + hasMore = true, + loadingText = "加载中...", + noMoreText = "没有更多了", + + renderItem, + keyExtractor = (_, index) => index, + + onLoadMore, + onRefresh, + + className = "", + itemClassName = "", + containerStyle = {}, + + enablePullToRefresh = true, + enableInfiniteScroll = true, + enableLoadMoreButton = false, + + height = "100%", + minHeight = "200px", +}: InfiniteListProps) => { + const [refreshing, setRefreshing] = useState(false); + const [loadingMore, setLoadingMore] = useState(false); + const containerRef = useRef(null); + + // 处理下拉刷新 + const handleRefresh = useCallback(async () => { + if (!onRefresh) return; + + setRefreshing(true); + try { + await onRefresh(); + } catch (error) { + console.error("Refresh failed:", error); + } finally { + setRefreshing(false); + } + }, [onRefresh]); + + // 处理加载更多 + const handleLoadMore = useCallback(async () => { + if (!onLoadMore || loadingMore || !hasMore) return; + + setLoadingMore(true); + try { + await onLoadMore(); + } catch (error) { + console.error("Load more failed:", error); + } finally { + setLoadingMore(false); + } + }, [onLoadMore, loadingMore, hasMore]); + + // 点击加载更多按钮 + const handleLoadMoreClick = useCallback(() => { + handleLoadMore(); + }, [handleLoadMore]); + + // 容器样式 + const containerStyles: React.CSSProperties = { + height, + minHeight, + ...containerStyle, + }; + + // 渲染列表项 + const renderListItems = () => { + return data.map((item, index) => ( +
+ {renderItem(item, index)} +
+ )); + }; + + // 渲染加载更多按钮 + const renderLoadMoreButton = () => { + if (!enableLoadMoreButton || !hasMore) return null; + + return ( +
+ +
+ ); + }; + + // 渲染无更多数据提示 + const renderNoMoreText = () => { + if (hasMore || data.length === 0) return null; + + return
{noMoreText}
; + }; + + // 渲染空状态 + const renderEmptyState = () => { + if (data.length > 0 || loading) return null; + + return ( +
+
📝
+
暂无数据
+
+ ); + }; + + const content = ( +
+ {renderListItems()} + {renderLoadMoreButton()} + {renderNoMoreText()} + {renderEmptyState()} + + {/* 无限滚动组件 */} + {enableInfiniteScroll && ( + + )} +
+ ); + + // 如果启用下拉刷新,包装PullToRefresh + if (enablePullToRefresh && onRefresh) { + return ( + + {content} + + ); + } + + return content; +}; + +export default InfiniteList; diff --git a/Cunkebao/src/components/Layout.css b/Cunkebao/src/components/Layout.css deleted file mode 100644 index e6e6cb0b..00000000 --- a/Cunkebao/src/components/Layout.css +++ /dev/null @@ -1,10 +0,0 @@ -.container { - display: flex; - height: 100vh; - flex-direction: column; -} - -.container main { - flex: 1; - overflow: auto; -} \ No newline at end of file diff --git a/Cunkebao/src/components/Layout.tsx b/Cunkebao/src/components/Layout.tsx deleted file mode 100644 index 1f4a1f6b..00000000 --- a/Cunkebao/src/components/Layout.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import React from "react"; - -interface LayoutProps { - loading?: boolean; - children?: React.ReactNode; - header?: React.ReactNode; - footer?: React.ReactNode; -} - -const Layout: React.FC = ({ - loading, - children, - header, - footer, -}) => { - return ( -
- {header &&
{header}
} -
{children}
- {footer &&
{footer}
} -
- ); -}; - -export default Layout; diff --git a/Cunkebao/src/components/Layout/Layout.tsx b/Cunkebao/src/components/Layout/Layout.tsx new file mode 100644 index 00000000..160d993e --- /dev/null +++ b/Cunkebao/src/components/Layout/Layout.tsx @@ -0,0 +1,52 @@ +import React, { useEffect } from "react"; +import { SpinLoading } from "antd-mobile"; +import styles from "./layout.module.scss"; + +interface LayoutProps { + loading?: boolean; + children?: React.ReactNode; + header?: React.ReactNode; + footer?: React.ReactNode; +} + +const Layout: React.FC = ({ + children, + header, + footer, + loading = false, +}) => { + // 移动端100vh兼容 + useEffect(() => { + const setRealHeight = () => { + document.documentElement.style.setProperty( + "--real-vh", + `${window.innerHeight * 0.01}px`, + ); + }; + setRealHeight(); + window.addEventListener("resize", setRealHeight); + return () => window.removeEventListener("resize", setRealHeight); + }, []); + + return ( +
+ {header &&
{header}
} +
+ {loading ? ( +
+ +
加载中...
+
+ ) : ( + children + )} +
+ {footer &&
{footer}
} +
+ ); +}; + +export default Layout; diff --git a/Cunkebao/src/components/Layout/layout.module.scss b/Cunkebao/src/components/Layout/layout.module.scss new file mode 100644 index 00000000..3818f44d --- /dev/null +++ b/Cunkebao/src/components/Layout/layout.module.scss @@ -0,0 +1,28 @@ +.container { + display: flex; + height: 100vh; + flex-direction: column; + background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%); +} + +.container main { + flex: 1; + overflow: auto; +} + +.loadingContainer { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + height: 100%; + min-height: 300px; + background: rgba(255, 255, 255, 0.8); +} + +.loadingText { + margin-top: 16px; + color: #666; + font-size: 14px; + text-align: center; +} diff --git a/Cunkebao/src/components/LayoutWrapper.tsx b/Cunkebao/src/components/LayoutWrapper.tsx deleted file mode 100644 index 859eb2e7..00000000 --- a/Cunkebao/src/components/LayoutWrapper.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import React from 'react'; -import { useLocation } from 'react-router-dom'; -import BottomNav from './BottomNav'; - -// 配置需要底部导航的页面路径(白名单) -const BOTTOM_NAV_CONFIG = [ - '/', // 首页 - '/scenarios', // 场景获客 - '/workspace', // 工作台 - '/profile', // 我的 -]; - -interface LayoutWrapperProps { - children: React.ReactNode; -} - -export default function LayoutWrapper({ children }: LayoutWrapperProps) { - const location = useLocation(); - - // 检查当前路径是否需要底部导航 - const shouldShowBottomNav = BOTTOM_NAV_CONFIG.some(path => { - // 特殊处理首页路由 '/' - if (path === '/') { - return location.pathname === '/'; - } - return location.pathname === path; - }); - - // 如果是登录页面,直接渲染内容(不显示底部导航) - if (location.pathname === '/login') { - return <>{children}; - } - - // 只有在配置列表中的页面才显示底部导航 - return ( -
-
- {children} -
- {shouldShowBottomNav && } -
- ); -} \ No newline at end of file diff --git a/Cunkebao/src/components/LineChart.tsx b/Cunkebao/src/components/LineChart.tsx new file mode 100644 index 00000000..bb93e512 --- /dev/null +++ b/Cunkebao/src/components/LineChart.tsx @@ -0,0 +1,53 @@ +import React from "react"; +import ReactECharts from "echarts-for-react"; + +interface LineChartProps { + title?: string; + xData: string[]; + yData: number[]; + height?: number | string; +} + +const LineChart: React.FC = ({ + title = "", + xData, + yData, + height = 200, +}) => { + const option = { + title: { + text: title, + left: "center", + textStyle: { fontSize: 16 }, + }, + tooltip: { trigger: "axis" }, + xAxis: { + type: "category", + data: xData, + boundaryGap: false, + }, + yAxis: { + type: "value", + boundaryGap: ["10%", "10%"], // 上下留白 + min: (value: any) => value.min - 10, // 下方多留一点空间 + max: (value: any) => value.max + 10, // 上方多留一点空间 + minInterval: 1, + axisLabel: { margin: 12 }, + }, + series: [ + { + data: yData, + type: "line", + smooth: true, + symbol: "circle", + lineStyle: { color: "#1677ff" }, + itemStyle: { color: "#1677ff" }, + }, + ], + grid: { left: 40, right: 24, top: 40, bottom: 32 }, + }; + + return ; +}; + +export default LineChart; diff --git a/Cunkebao/src/components/MeauMobile/MeauMoible.tsx b/Cunkebao/src/components/MeauMobile/MeauMoible.tsx new file mode 100644 index 00000000..da838937 --- /dev/null +++ b/Cunkebao/src/components/MeauMobile/MeauMoible.tsx @@ -0,0 +1,57 @@ +import React from "react"; +import { TabBar } from "antd-mobile"; +import { PieOutline, UserOutline } from "antd-mobile-icons"; +import { HomeOutlined, TeamOutlined } from "@ant-design/icons"; +import { useNavigate } from "react-router-dom"; + +const tabs = [ + { + key: "home", + title: "首页", + icon: , + path: "/", + }, + { + key: "scenarios", + title: "场景获客", + icon: , + path: "/scenarios", + }, + { + key: "workspace", + title: "工作台", + icon: , + path: "/workspace", + }, + { + key: "mine", + title: "我的", + icon: , + path: "/mine", + }, +]; + +interface MeauMobileProps { + activeKey: string; +} + +const MeauMobile: React.FC = ({ activeKey }) => { + const navigate = useNavigate(); + + return ( + { + const tab = tabs.find(t => t.key === key); + if (tab && tab.path) navigate(tab.path); + }} + > + {tabs.map(item => ( + + ))} + + ); +}; + +export default MeauMobile; diff --git a/Cunkebao/src/components/NavCommon/index.tsx b/Cunkebao/src/components/NavCommon/index.tsx new file mode 100644 index 00000000..0ee5ec1b --- /dev/null +++ b/Cunkebao/src/components/NavCommon/index.tsx @@ -0,0 +1,62 @@ +import React, { useEffect, useState } from "react"; +import { NavBar } from "antd-mobile"; +import { ArrowLeftOutlined } from "@ant-design/icons"; +import { useNavigate } from "react-router-dom"; +import { getSafeAreaHeight } from "@/utils/common"; +interface NavCommonProps { + title: string; + backFn?: () => void; + right?: React.ReactNode; + left?: React.ReactNode; +} + +const NavCommon: React.FC = ({ + title, + backFn, + right, + left, +}) => { + const navigate = useNavigate(); + const [paddingTop, setPaddingTop] = useState("0px"); + useEffect(() => { + setPaddingTop(getSafeAreaHeight() + "px"); + }, []); + + return ( +
+ + { + if (backFn) { + backFn(); + } else { + navigate(-1); + } + }} + /> +
+ ) + } + right={right} + > + + {title} + + + + ); +}; + +export default NavCommon; diff --git a/Cunkebao/src/components/PageHeader.tsx b/Cunkebao/src/components/PageHeader.tsx deleted file mode 100644 index 33f4cd5f..00000000 --- a/Cunkebao/src/components/PageHeader.tsx +++ /dev/null @@ -1,83 +0,0 @@ -import React from 'react'; -import BackButton from './BackButton'; -import { useSimpleBack } from '@/hooks/useBackNavigation'; - -interface PageHeaderProps { - /** 页面标题 */ - title: string; - /** 返回按钮文本 */ - backText?: string; - /** 自定义返回逻辑 */ - onBack?: () => void; - /** 默认返回路径 */ - defaultBackPath?: string; - /** 是否显示返回按钮 */ - showBack?: boolean; - /** 右侧扩展内容 */ - rightContent?: React.ReactNode; - /** 自定义CSS类名 */ - className?: string; - /** 标题样式类名 */ - titleClassName?: string; - /** 返回按钮样式变体 */ - backButtonVariant?: 'icon' | 'button' | 'text'; - /** 返回按钮自定义样式类名 */ - backButtonClassName?: string; - /** 是否显示底部边框 */ - showBorder?: boolean; -} - -/** - * 通用页面Header组件 - * 支持返回按钮、标题和右侧扩展插槽 - */ -export const PageHeader: React.FC = ({ - title, - backText = '返回', - onBack, - defaultBackPath = '/', - showBack = true, - rightContent, - className = '', - titleClassName = '', - backButtonVariant = 'icon', - backButtonClassName = '', - showBorder = true -}) => { - const { goBack } = useSimpleBack(defaultBackPath); - - const handleBack = onBack || goBack; - - const baseClasses = `bg-white ${showBorder ? 'border-b border-gray-200' : ''}`; - const headerClasses = `${baseClasses} ${className}`; - // 默认小号按钮样式 - const defaultBackBtnClass = 'text-sm px-2 py-1 h-8 min-h-0'; - - return ( -
-
-
- {showBack && ( - - )} -

- {title} -

-
- - {rightContent && ( -
- {rightContent} -
- )} -
-
- ); -}; - -export default PageHeader; \ No newline at end of file diff --git a/Cunkebao/src/components/PlaceholderPage.tsx b/Cunkebao/src/components/PlaceholderPage.tsx new file mode 100644 index 00000000..4eec7f2f --- /dev/null +++ b/Cunkebao/src/components/PlaceholderPage.tsx @@ -0,0 +1,56 @@ +import React from "react"; +import { NavBar, Button } from "antd-mobile"; +import { PlusOutlined } from "@ant-design/icons"; +import Layout from "@/components/Layout/Layout"; +import MeauMobile from "@/components/MeauMobile/MeauMoible"; + +interface PlaceholderPageProps { + title: string; + showBack?: boolean; + showAddButton?: boolean; + addButtonText?: string; + showFooter?: boolean; +} + +const PlaceholderPage: React.FC = ({ + title, + showBack = true, + showAddButton = false, + addButtonText = "新建", + showFooter = true, +}) => { + return ( + window.history.back() : undefined} + left={ +
+ {title} +
+ } + right={ + showAddButton ? ( + + ) : undefined + } + /> + } + footer={showFooter ? : undefined} + > +
+

{title}页面

+

此页面正在开发中...

+
+
+ ); +}; + +export default PlaceholderPage; diff --git a/Cunkebao/src/components/PopuLayout/footer.module.scss b/Cunkebao/src/components/PopuLayout/footer.module.scss new file mode 100644 index 00000000..2890e9ba --- /dev/null +++ b/Cunkebao/src/components/PopuLayout/footer.module.scss @@ -0,0 +1,71 @@ +.popupFooter { + display: flex; + align-items: center; + justify-content: space-between; + padding: 16px; + border-top: 1px solid #f0f0f0; + background: #fff; +} + +.selectedCount { + font-size: 14px; + color: #888; +} + +.footerBtnGroup { + display: flex; + gap: 12px; +} + +.paginationRow { + border-top: 1px solid #f0f0f0; + padding: 16px; + display: flex; + align-items: center; + justify-content: space-between; + background: #fff; +} + +.totalCount { + font-size: 14px; + color: #888; +} + +.paginationControls { + display: flex; + align-items: center; + gap: 8px; +} + +.pageBtn { + padding: 0 8px; + height: 32px; + min-width: 32px; + border-radius: 16px; + border: 1px solid #d9d9d9; + color: #333; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + transition: all 0.2s; + + &:hover:not(:disabled) { + border-color: #1677ff; + color: #1677ff; + } + + &:disabled { + background: #f5f5f5; + color: #ccc; + cursor: not-allowed; + } +} + +.pageInfo { + font-size: 14px; + color: #222; + margin: 0 8px; + min-width: 60px; + text-align: center; +} diff --git a/Cunkebao/src/components/PopuLayout/footer.tsx b/Cunkebao/src/components/PopuLayout/footer.tsx new file mode 100644 index 00000000..df10ffa2 --- /dev/null +++ b/Cunkebao/src/components/PopuLayout/footer.tsx @@ -0,0 +1,67 @@ +import React from "react"; +import { Button } from "antd"; +import style from "./footer.module.scss"; +import { ArrowLeftOutlined, ArrowRightOutlined } from "@ant-design/icons"; + +interface PopupFooterProps { + total: number; + currentPage: number; + totalPages: number; + loading: boolean; + selectedCount: number; + onPageChange: (page: number) => void; + onCancel: () => void; + onConfirm: () => void; +} + +const PopupFooter: React.FC = ({ + total, + currentPage, + totalPages, + loading, + selectedCount, + onPageChange, + onCancel, + onConfirm, +}) => { + return ( + <> + {/* 分页栏 */} +
+
总计 {total} 条记录
+
+ + + {currentPage} / {totalPages} + + +
+
+
+
已选择 {selectedCount} 条记录
+
+ + +
+
+ + ); +}; + +export default PopupFooter; diff --git a/Cunkebao/src/components/PopuLayout/header.module.scss b/Cunkebao/src/components/PopuLayout/header.module.scss new file mode 100644 index 00000000..f54cbbee --- /dev/null +++ b/Cunkebao/src/components/PopuLayout/header.module.scss @@ -0,0 +1,51 @@ +.popupHeader { + padding: 16px; + border-bottom: 1px solid #f0f0f0; +} + +.popupTitle { + font-size: 20px; + font-weight: 600; + text-align: center; +} + +.popupSearchRow { + display: flex; + align-items: center; + gap: 5px; + padding: 16px; +} + +.popupSearchInputWrap { + position: relative; + flex: 1; +} + +.inputIcon { + position: absolute; + left: 12px; + top: 50%; + transform: translateY(-50%); + color: #bdbdbd; + z-index: 10; + font-size: 18px; +} + +.refreshBtn { + width: 36px; + height: 36px; +} + +.loadingIcon { + animation: spin 1s linear infinite; + font-size: 16px; +} + +@keyframes spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} diff --git a/Cunkebao/src/components/PopuLayout/header.tsx b/Cunkebao/src/components/PopuLayout/header.tsx new file mode 100644 index 00000000..652433c3 --- /dev/null +++ b/Cunkebao/src/components/PopuLayout/header.tsx @@ -0,0 +1,86 @@ +import React from "react"; +import { SearchOutlined, ReloadOutlined } from "@ant-design/icons"; +import { Input, Button } from "antd"; +import { Tabs } from "antd-mobile"; +import style from "./header.module.scss"; + +interface PopupHeaderProps { + title: string; + searchQuery: string; + setSearchQuery: (value: string) => void; + searchPlaceholder?: string; + loading?: boolean; + onRefresh?: () => void; + showRefresh?: boolean; + showSearch?: boolean; + showTabs?: boolean; + tabsConfig?: { + activeKey: string; + onChange: (key: string) => void; + tabs: Array<{ title: string; key: string }>; + }; +} + +const PopupHeader: React.FC = ({ + title, + searchQuery, + setSearchQuery, + searchPlaceholder = "搜索...", + loading = false, + onRefresh, + showRefresh = true, + showSearch = true, + showTabs = false, + tabsConfig, +}) => { + return ( + <> +
+
{title}
+
+ + {showSearch && ( +
+
+ setSearchQuery(e.target.value)} + prefix={} + size="large" + /> +
+ + {showRefresh && onRefresh && ( + + )} +
+ )} + + {showTabs && tabsConfig && ( + + {tabsConfig.tabs.map(tab => ( + + ))} + + )} + + ); +}; + +export default PopupHeader; diff --git a/Cunkebao/src/components/ProtectedRoute.tsx b/Cunkebao/src/components/ProtectedRoute.tsx deleted file mode 100644 index 8491882d..00000000 --- a/Cunkebao/src/components/ProtectedRoute.tsx +++ /dev/null @@ -1,71 +0,0 @@ -import React, { useEffect } from 'react'; -import { useNavigate, useLocation } from 'react-router-dom'; -import { useAuth } from '@/contexts/AuthContext'; - -// 不需要登录的公共页面路径 -const PUBLIC_PATHS = [ - '/login', - '/register', - '/forgot-password', - '/reset-password', - '/404', - '/500' -]; - -interface ProtectedRouteProps { - children: React.ReactNode; -} - -export default function ProtectedRoute({ children }: ProtectedRouteProps) { - const { isAuthenticated, isLoading } = useAuth(); - const navigate = useNavigate(); - const location = useLocation(); - - // 检查当前路径是否是公共页面 - const isPublicPath = PUBLIC_PATHS.some(path => - location.pathname.startsWith(path) - ); - - useEffect(() => { - // 如果正在加载,不进行任何跳转 - if (isLoading) { - return; - } - - // 如果未登录且不是公共页面,重定向到登录页面 - if (!isAuthenticated && !isPublicPath) { - // 保存当前URL,登录后可以重定向回来 - const returnUrl = encodeURIComponent(window.location.href); - navigate(`/login?returnUrl=${returnUrl}`, { replace: true }); - return; - } - - // 如果已登录且在登录页面,重定向到首页 - if (isAuthenticated && location.pathname === '/login') { - navigate('/', { replace: true }); - return; - } - }, [isAuthenticated, isLoading, location.pathname, navigate, isPublicPath]); - - // 如果正在加载,显示加载状态 - if (isLoading) { - return ( -
-
加载中...
-
- ); - } - - // 如果未登录且不是公共页面,不渲染内容(等待重定向) - if (!isAuthenticated && !isPublicPath) { - return null; - } - - // 如果已登录且在登录页面,不渲染内容(等待重定向) - if (isAuthenticated && location.pathname === '/login') { - return null; - } - - // 其他情况正常渲染 - return <>{children}; -} \ No newline at end of file diff --git a/Cunkebao/src/components/ScenarioAcquisitionCard.tsx b/Cunkebao/src/components/ScenarioAcquisitionCard.tsx deleted file mode 100644 index ad8343c8..00000000 --- a/Cunkebao/src/components/ScenarioAcquisitionCard.tsx +++ /dev/null @@ -1,206 +0,0 @@ -import React, { useState, useRef, useEffect } from 'react'; -import { Card } from './ui/card'; -import { Button } from './ui/button'; -import { Badge } from './ui/badge'; -import { MoreHorizontal, Copy, Pencil, Trash2, Clock, Link } from 'lucide-react'; - -interface Task { - id: string; - name: string; - status: "running" | "paused" | "completed"; - stats: { - devices: number; - acquired: number; - added: number; - }; - lastUpdated: string; - executionTime: string; - nextExecutionTime: string; - trend: { date: string; customers: number }[]; - reqConf?: { - device?: string[]; - selectedDevices?: string[]; - }; - acquiredCount?: number; - addedCount?: number; - passRate?: number; -} - -interface ScenarioAcquisitionCardProps { - task: Task; - channel: string; - onEdit: (taskId: string) => void; - onCopy: (taskId: string) => void; - onDelete: (taskId: string) => void; - onOpenSettings?: (taskId: string) => void; - onStatusChange?: (taskId: string, newStatus: "running" | "paused") => void; -} - -export function ScenarioAcquisitionCard({ - task, - channel, - onEdit, - onCopy, - onDelete, - onOpenSettings, - onStatusChange, -}: ScenarioAcquisitionCardProps) { - // 兼容后端真实数据结构 - const deviceCount = Array.isArray(task.reqConf?.device) - ? task.reqConf!.device.length - : Array.isArray(task.reqConf?.selectedDevices) - ? task.reqConf!.selectedDevices.length - : 0; - // 获客数和已添加数可根据 msgConf 或其它字段自定义 - const acquiredCount = task.acquiredCount ?? 0; - const addedCount = task.addedCount ?? 0; - const passRate = task.passRate ?? 0; - const [menuOpen, setMenuOpen] = useState(false); - const menuRef = useRef(null); - - const isActive = task.status === "running"; - - const handleStatusChange = (e: React.MouseEvent) => { - e.stopPropagation(); - if (onStatusChange) { - onStatusChange(task.id, task.status === "running" ? "paused" : "running"); - } - }; - - const handleEdit = (e: React.MouseEvent) => { - e.stopPropagation(); - setMenuOpen(false); - onEdit(task.id); - }; - - const handleCopy = (e: React.MouseEvent) => { - e.stopPropagation(); - setMenuOpen(false); - onCopy(task.id); - }; - - const handleOpenSettings = (e: React.MouseEvent) => { - e.stopPropagation(); - setMenuOpen(false); - if (onOpenSettings) { - onOpenSettings(task.id); - } - }; - - const handleDelete = (e: React.MouseEvent) => { - e.stopPropagation(); - setMenuOpen(false); - onDelete(task.id); - }; - - const toggleMenu = (e?: React.MouseEvent) => { - if (e) e.stopPropagation(); - setMenuOpen(!menuOpen); - }; - - // 点击外部关闭菜单 - useEffect(() => { - const handleClickOutside = (event: MouseEvent) => { - if (menuRef.current && !menuRef.current.contains(event.target as Node)) { - setMenuOpen(false); - } - }; - - document.addEventListener("mousedown", handleClickOutside); - return () => { - document.removeEventListener("mousedown", handleClickOutside); - }; - }, []); - - return ( - -
-
-

{task.name}

- - {isActive ? "进行中" : "已暂停"} - -
-
- - - {menuOpen && ( -
- - - {onOpenSettings && ( - - )} - -
- )} -
-
- -
-
- -
设备数
-
{deviceCount}
-
-
- -
- -
已获客
-
{acquiredCount}
-
-
- -
- -
已添加
-
{addedCount}
-
-
- - -
通过率
-
{passRate}%
-
-
- -
-
- - 上次执行:{task.lastUpdated} -
-
-
- ); -} \ No newline at end of file diff --git a/Cunkebao/src/components/StepIndicator/index.tsx b/Cunkebao/src/components/StepIndicator/index.tsx new file mode 100644 index 00000000..655bbafd --- /dev/null +++ b/Cunkebao/src/components/StepIndicator/index.tsx @@ -0,0 +1,43 @@ +import React from "react"; +import { Steps } from "antd-mobile"; + +interface StepIndicatorProps { + currentStep: number; + steps: { id: number; title: string; subtitle: string }[]; +} + +const StepIndicator: React.FC = ({ + currentStep, + steps, +}) => { + return ( +
+ + {steps.map((step, idx) => ( + + {step.id} +
+ } + /> + ))} + + + ); +}; + +export default StepIndicator; diff --git a/Cunkebao/src/components/TestComponent.tsx b/Cunkebao/src/components/TestComponent.tsx deleted file mode 100644 index 2591be21..00000000 --- a/Cunkebao/src/components/TestComponent.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import React from 'react'; -import { cn } from '@/utils'; - -interface TestComponentProps { - title: string; - className?: string; -} - -const TestComponent: React.FC = ({ title, className }) => { - return ( -
-

{title}

-

- 这是一个测试组件,用于验证路径别名 @/ 是否正常工作。 -

-
- ✓ 成功使用 @/utils 导入工具函数 -
-
- ); -}; - -export default TestComponent; \ No newline at end of file diff --git a/Cunkebao/src/components/ThrottledButton.tsx b/Cunkebao/src/components/ThrottledButton.tsx deleted file mode 100644 index 09d545cf..00000000 --- a/Cunkebao/src/components/ThrottledButton.tsx +++ /dev/null @@ -1,291 +0,0 @@ -import React from 'react'; -import { - useThrottledRequestWithLoading, - useThrottledRequestWithError, - useRequestWithRetry, - useCancellableRequest -} from '../hooks/useThrottledRequest'; - -interface ThrottledButtonProps { - onClick: () => Promise; - children: React.ReactNode; - delay?: number; - disabled?: boolean; - className?: string; - variant?: 'throttle' | 'debounce' | 'retry' | 'cancellable'; - maxRetries?: number; - retryDelay?: number; - showLoadingText?: boolean; - loadingText?: string; - errorText?: string; - onSuccess?: (result: any) => void; - onError?: (error: any) => void; -} - -export const ThrottledButton: React.FC = ({ - onClick, - children, - delay = 1000, - disabled = false, - className = '', - variant = 'throttle', - maxRetries = 3, - retryDelay = 1000, - showLoadingText = true, - loadingText = '处理中...', - errorText, - onSuccess, - onError -}) => { - // 处理请求结果 - const handleRequest = async () => { - try { - const result = await onClick(); - onSuccess?.(result); - } catch (error) { - onError?.(error); - } - }; - - // 根据variant渲染不同的按钮 - const renderButton = () => { - switch (variant) { - case 'retry': - return - {children} - ; - - case 'cancellable': - return - {children} - ; - - case 'debounce': - return - {children} - ; - - default: - return - {children} - ; - } - }; - - return renderButton(); -}; - -// 节流按钮内容组件 -const ThrottleButtonContent: React.FC<{ - onClick: () => Promise; - delay: number; - loadingText: string; - showLoadingText: boolean; - disabled: boolean; - className: string; - children: React.ReactNode; -}> = ({ onClick, delay, loadingText, showLoadingText, disabled, className, children }) => { - const { throttledRequest, loading } = useThrottledRequestWithLoading(onClick, delay); - - const getButtonText = () => { - return loading && showLoadingText ? loadingText : children; - }; - - const getButtonClassName = () => { - const baseClasses = 'px-4 py-2 rounded font-medium transition-colors duration-200 disabled:cursor-not-allowed'; - const variantClasses = loading - ? 'bg-gray-400 text-white cursor-not-allowed' - : 'bg-blue-500 text-white hover:bg-blue-600 disabled:bg-gray-400'; - - return `${baseClasses} ${variantClasses} ${className}`; - }; - - return ( - - ); -}; - -// 防抖按钮内容组件 -const DebounceButtonContent: React.FC<{ - onClick: () => Promise; - delay: number; - loadingText: string; - showLoadingText: boolean; - disabled: boolean; - className: string; - errorText?: string; - children: React.ReactNode; -}> = ({ onClick, delay, loadingText, showLoadingText, disabled, className, errorText, children }) => { - const { throttledRequest, loading, error } = useThrottledRequestWithError(onClick, delay); - - const getButtonText = () => { - return loading && showLoadingText ? loadingText : children; - }; - - const getButtonClassName = () => { - const baseClasses = 'px-4 py-2 rounded font-medium transition-colors duration-200 disabled:cursor-not-allowed'; - let variantClasses = ''; - if (loading) { - variantClasses = 'bg-gray-400 text-white cursor-not-allowed'; - } else if (error) { - variantClasses = 'bg-red-500 text-white hover:bg-red-600'; - } else { - variantClasses = 'bg-blue-500 text-white hover:bg-blue-600 disabled:bg-gray-400'; - } - - return `${baseClasses} ${variantClasses} ${className}`; - }; - - return ( -
- - - {error && errorText && ( - {errorText} - )} -
- ); -}; - -// 重试按钮内容组件 -const RetryButtonContent: React.FC<{ - onClick: () => Promise; - maxRetries: number; - retryDelay: number; - loadingText: string; - showLoadingText: boolean; - disabled: boolean; - className: string; - children: React.ReactNode; -}> = ({ onClick, maxRetries, retryDelay, loadingText, showLoadingText, disabled, className, children }) => { - const { requestWithRetry, loading, retryCount } = useRequestWithRetry(onClick, maxRetries, retryDelay); - - const getButtonText = () => { - if (loading) { - if (retryCount > 0) { - return `${loadingText} (重试 ${retryCount}/${maxRetries})`; - } - return showLoadingText ? loadingText : children; - } - return children; - }; - - const getButtonClassName = () => { - const baseClasses = 'px-4 py-2 rounded font-medium transition-colors duration-200 disabled:cursor-not-allowed'; - const variantClasses = loading - ? 'bg-gray-400 text-white cursor-not-allowed' - : 'bg-blue-500 text-white hover:bg-blue-600 disabled:bg-gray-400'; - - return `${baseClasses} ${variantClasses} ${className}`; - }; - - return ( - - ); -}; - -// 可取消按钮内容组件 -const CancellableButtonContent: React.FC<{ - onClick: () => Promise; - loadingText: string; - showLoadingText: boolean; - disabled: boolean; - className: string; - children: React.ReactNode; -}> = ({ onClick, loadingText, showLoadingText, disabled, className, children }) => { - const { cancellableRequest, loading, cancelRequest } = useCancellableRequest(onClick); - - const getButtonText = () => { - return loading && showLoadingText ? loadingText : children; - }; - - const getButtonClassName = () => { - const baseClasses = 'px-4 py-2 rounded font-medium transition-colors duration-200 disabled:cursor-not-allowed'; - const variantClasses = loading - ? 'bg-gray-400 text-white cursor-not-allowed' - : 'bg-blue-500 text-white hover:bg-blue-600 disabled:bg-gray-400'; - - return `${baseClasses} ${variantClasses} ${className}`; - }; - - return ( -
- - - {loading && cancelRequest && ( - - )} -
- ); -}; - -// 导出其他类型的按钮组件 -export const DebouncedButton: React.FC & { delay?: number }> = (props) => ( - -); - -export const RetryButton: React.FC & { maxRetries?: number; retryDelay?: number }> = (props) => ( - -); - -export const CancellableButton: React.FC> = (props) => ( - -); \ No newline at end of file diff --git a/Cunkebao/src/components/TrafficPoolSelection.tsx b/Cunkebao/src/components/TrafficPoolSelection.tsx deleted file mode 100644 index 29f808c2..00000000 --- a/Cunkebao/src/components/TrafficPoolSelection.tsx +++ /dev/null @@ -1,297 +0,0 @@ -import React, { useState, useEffect, useCallback } from 'react'; -import { Search, Database } from 'lucide-react'; -import { Button } from '@/components/ui/button'; -import { Input } from '@/components/ui/input'; -import { ScrollArea } from '@/components/ui/scroll-area'; -import { Dialog, DialogContent, DialogTitle } from '@/components/ui/dialog'; -import { useToast } from '@/components/ui/toast'; -import { fetchDeviceLabels, type TrafficPool } from '@/api/trafficDistribution'; - -// 组件属性接口 -interface TrafficPoolSelectionProps { - selectedPools: string[]; - onSelect: (pools: string[]) => void; - deviceIds: string[]; - placeholder?: string; - className?: string; -} - -export default function TrafficPoolSelection({ - selectedPools, - onSelect, - deviceIds, - placeholder = "选择流量池", - className = "" -}: TrafficPoolSelectionProps) { - const [dialogOpen, setDialogOpen] = useState(false); - const [pools, setPools] = useState([]); - const [searchQuery, setSearchQuery] = useState(''); - const [currentPage, setCurrentPage] = useState(1); - const [totalPages, setTotalPages] = useState(1); - const [totalPools, setTotalPools] = useState(0); - const [loading, setLoading] = useState(false); - const { toast } = useToast(); - - // 获取流量池列表API - const fetchPools = useCallback(async (page: number, keyword: string = '') => { - if (deviceIds.length === 0) return; - - setLoading(true); - try { - const res = await fetchDeviceLabels({ - deviceIds, - page, - pageSize: 10, - keyword - }); - - if (res && res.code === 200 && res.data) { - setPools(res.data.list || []); - setTotalPools(res.data.total || 0); - setTotalPages(Math.ceil((res.data.total || 0) / 10)); - } else { - toast({ - title: "获取流量池列表失败", - description: res?.msg || "请稍后重试", - variant: "destructive" - }); - - // 使用模拟数据作为降级处理 - const mockData: TrafficPool[] = [ - { id: "1", name: "新客流量池", count: 1250, description: "新获取的客户流量", deviceIds }, - { id: "2", name: "高意向流量池", count: 850, description: "有购买意向的客户", deviceIds }, - { id: "3", name: "复购流量池", count: 620, description: "已购买过产品的客户", deviceIds }, - { id: "4", name: "活跃流量池", count: 1580, description: "近期活跃的客户", deviceIds }, - { id: "5", name: "沉睡流量池", count: 2300, description: "长期未活跃的客户", deviceIds }, - { id: "6", name: "VIP客户池", count: 156, description: "VIP等级客户", deviceIds }, - { id: "7", name: "潜在客户池", count: 3200, description: "有潜在购买可能的客户", deviceIds }, - { id: "8", name: "游戏玩家池", count: 890, description: "游戏类产品感兴趣客户", deviceIds }, - ]; - - // 根据关键词过滤模拟数据 - const filteredData = keyword - ? mockData.filter(pool => - pool.name.toLowerCase().includes(keyword.toLowerCase()) || - (pool.description && pool.description.toLowerCase().includes(keyword.toLowerCase())) - ) - : mockData; - - // 分页处理模拟数据 - const startIndex = (page - 1) * 10; - const endIndex = startIndex + 10; - const paginatedData = filteredData.slice(startIndex, endIndex); - - setPools(paginatedData); - setTotalPools(filteredData.length); - setTotalPages(Math.ceil(filteredData.length / 10)); - } - } catch (error) { - console.error('获取流量池列表失败:', error); - toast({ - title: "网络错误", - description: "请检查网络连接后重试", - variant: "destructive" - }); - - // 网络错误时使用模拟数据 - const mockData: TrafficPool[] = [ - { id: "1", name: "新客流量池", count: 1250, description: "新获取的客户流量", deviceIds }, - { id: "2", name: "高意向流量池", count: 850, description: "有购买意向的客户", deviceIds }, - { id: "3", name: "复购流量池", count: 620, description: "已购买过产品的客户", deviceIds }, - { id: "4", name: "活跃流量池", count: 1580, description: "近期活跃的客户", deviceIds }, - { id: "5", name: "沉睡流量池", count: 2300, description: "长期未活跃的客户", deviceIds }, - ]; - - setPools(mockData); - setTotalPools(mockData.length); - setTotalPages(1); - } finally { - setLoading(false); - } - }, [deviceIds, toast]); - - // 当弹窗打开时获取流量池列表 - useEffect(() => { - if (dialogOpen && deviceIds.length > 0) { - // 弹窗打开时重置搜索和页码,然后立即请求第一页数据 - setSearchQuery(''); - setCurrentPage(1); - fetchPools(1, ''); - } - }, [dialogOpen, deviceIds, fetchPools]); - - // 监听页码变化,重新请求数据 - useEffect(() => { - if (dialogOpen && deviceIds.length > 0 && currentPage > 1) { - fetchPools(currentPage, searchQuery); - } - }, [currentPage, dialogOpen, deviceIds.length, fetchPools, searchQuery]); - - // 当设备ID变化时,清空已选择的流量池(如果需要的话) - useEffect(() => { - if (deviceIds.length === 0) { - setPools([]); - setTotalPools(0); - setTotalPages(1); - } - }, [deviceIds]); - - // 处理搜索 - const handleSearch = (keyword: string) => { - setSearchQuery(keyword); - setCurrentPage(1); - // 立即搜索,不管弹窗是否打开(因为这个函数只在弹窗内调用) - if (deviceIds.length > 0) { - fetchPools(1, keyword); - } - }; - - // 处理流量池选择 - const handlePoolToggle = (poolId: string) => { - if (selectedPools.includes(poolId)) { - onSelect(selectedPools.filter(id => id !== poolId)); - } else { - onSelect([...selectedPools, poolId]); - } - }; - - // 获取显示文本 - const getDisplayText = () => { - if (selectedPools.length === 0) return ''; - return `已选择 ${selectedPools.length} 个流量池`; - }; - - const handleConfirm = () => { - setDialogOpen(false); - }; - - // 处理输入框点击 - const handleInputClick = () => { - if (deviceIds.length === 0) { - toast({ - title: "请先选择设备", - description: "需要先选择设备才能选择流量池", - variant: "destructive" - }); - return; - } - setDialogOpen(true); - }; - - return ( - <> - {/* 输入框 */} -
- - - - -
- - {/* 流量池选择弹窗 */} - - -
- 选择流量池 - -
- handleSearch(e.target.value)} - className="pl-10 py-2 rounded-full border-gray-200" - /> - -
-
- - - {loading ? ( -
-
加载中...
-
- ) : pools.length > 0 ? ( -
- {pools.map((pool) => ( - - ))} -
- ) : ( -
-
- {deviceIds.length === 0 ? '请先选择设备' : '没有找到流量池'} -
-
- )} -
- -
-
- 总计 {totalPools} 个流量池 -
-
- - {currentPage} / {totalPages} - -
-
- -
- - -
-
-
- - ); -} \ No newline at end of file diff --git a/Cunkebao/src/components/UnifiedHeader.tsx b/Cunkebao/src/components/UnifiedHeader.tsx deleted file mode 100644 index 862f1c46..00000000 --- a/Cunkebao/src/components/UnifiedHeader.tsx +++ /dev/null @@ -1,296 +0,0 @@ -import React from 'react'; -import { ChevronLeft, Settings, Bell, Search, RefreshCw, Filter, Plus, MoreVertical } from 'lucide-react'; -import { Button } from '@/components/ui/button'; -import { Input } from '@/components/ui/input'; -import { useNavigate, useLocation } from 'react-router-dom'; - -interface HeaderAction { - type: 'button' | 'icon' | 'search' | 'custom'; - icon?: React.ComponentType; - label?: string; - onClick?: () => void; - variant?: 'default' | 'ghost' | 'outline' | 'destructive' | 'secondary'; - size?: 'default' | 'sm' | 'lg' | 'icon'; - className?: string; - content?: React.ReactNode; -} - -interface UnifiedHeaderProps { - /** 页面标题 */ - title: string; - /** 是否显示返回按钮 */ - showBack?: boolean; - /** 返回按钮文本 */ - backText?: string; - /** 自定义返回逻辑 */ - onBack?: () => void; - /** 默认返回路径 */ - defaultBackPath?: string; - /** 右侧操作按钮 */ - actions?: HeaderAction[]; - /** 自定义右侧内容 */ - rightContent?: React.ReactNode; - /** 是否显示搜索框 */ - showSearch?: boolean; - /** 搜索框占位符 */ - searchPlaceholder?: string; - /** 搜索值 */ - searchValue?: string; - /** 搜索回调 */ - onSearchChange?: (value: string) => void; - /** 是否显示底部边框 */ - showBorder?: boolean; - /** 背景样式 */ - background?: 'white' | 'transparent' | 'blur'; - /** 自定义CSS类名 */ - className?: string; - /** 标题样式类名 */ - titleClassName?: string; - /** 标题颜色 */ - titleColor?: 'default' | 'blue' | 'gray'; - /** 是否居中标题 */ - centerTitle?: boolean; - /** 头部高度 */ - height?: 'default' | 'compact' | 'tall'; -} - -const UnifiedHeader: React.FC = ({ - title, - showBack = true, - backText = '返回', - onBack, - defaultBackPath = '/', - actions = [], - rightContent, - showSearch = false, - searchPlaceholder = '搜索...', - searchValue = '', - onSearchChange, - showBorder = true, - background = 'white', - className = '', - titleClassName = '', - titleColor = 'default', - centerTitle = false, - height = 'default', -}) => { - const navigate = useNavigate(); - const location = useLocation(); - - const handleBack = () => { - if (onBack) { - onBack(); - } else if (defaultBackPath) { - navigate(defaultBackPath); - } else { - if (window.history.length > 1) { - navigate(-1); - } else { - navigate('/'); - } - } - }; - - // 背景样式 - const backgroundClasses = { - white: 'bg-white', - transparent: 'bg-transparent', - blur: 'bg-white/80 backdrop-blur-sm', - }; - - // 高度样式 - const heightClasses = { - default: 'h-14', - compact: 'h-12', - tall: 'h-16', - }; - - // 标题颜色样式 - const titleColorClasses = { - default: 'text-gray-900', - blue: 'text-blue-600', - gray: 'text-gray-600', - }; - - const headerClasses = [ - backgroundClasses[background], - heightClasses[height], - showBorder ? 'border-b border-gray-200' : '', - 'sticky top-0 z-50', - className, - ].filter(Boolean).join(' '); - - const titleClasses = [ - 'text-lg font-semibold', - titleColorClasses[titleColor], - centerTitle ? 'text-center' : '', - titleClassName, - ].filter(Boolean).join(' '); - - // 渲染操作按钮 - const renderAction = (action: HeaderAction, index: number) => { - if (action.type === 'custom' && action.content) { - return
{action.content}
; - } - - if (action.type === 'search') { - return ( -
- - onSearchChange?.(e.target.value)} - className="pl-9 w-48" - /> -
- ); - } - - const IconComponent = action.icon || MoreVertical; - - return ( - - ); - }; - - return ( -
-
- {/* 左侧:返回按钮和标题 */} -
- {showBack && ( - - )} - {!centerTitle && ( -

- {title} -

- )} -
- - {/* 中间:居中标题 */} - {centerTitle && ( -
-

- {title} -

-
- )} - - {/* 右侧:搜索框、操作按钮、自定义内容 */} -
- {showSearch && !actions.some(a => a.type === 'search') && ( -
- - onSearchChange?.(e.target.value)} - className="pl-9 w-48" - /> -
- )} - - {actions.map((action, index) => renderAction(action, index))} - - {rightContent && ( -
- {rightContent} -
- )} -
-
-
- ); -}; - -// 预设的常用Header配置 -export const HeaderPresets = { - // 基础页面Header(有返回按钮) - basic: (title: string, onBack?: () => void): UnifiedHeaderProps => ({ - title, - showBack: true, - onBack, - titleColor: 'blue', - }), - - // 主页Header(无返回按钮) - main: (title: string, actions?: HeaderAction[]): UnifiedHeaderProps => ({ - title, - showBack: false, - titleColor: 'blue', - actions: actions || [ - { - type: 'icon', - icon: Bell, - onClick: () => console.log('Notifications'), - }, - ], - }), - - // 搜索页面Header - search: (title: string, searchValue: string, onSearchChange: (value: string) => void): UnifiedHeaderProps => ({ - title, - showBack: true, - showSearch: true, - searchValue, - onSearchChange, - titleColor: 'blue', - }), - - // 列表页面Header(带刷新和添加) - list: (title: string, onRefresh?: () => void, onAdd?: () => void): UnifiedHeaderProps => ({ - title, - showBack: true, - titleColor: 'blue', - actions: [ - ...(onRefresh ? [{ - type: 'icon' as const, - icon: RefreshCw, - onClick: onRefresh, - }] : []), - ...(onAdd ? [{ - type: 'button' as const, - icon: Plus, - label: '新建', - size: 'sm' as const, - onClick: onAdd, - }] : []), - ], - }), - - // 设置页面Header - settings: (title: string): UnifiedHeaderProps => ({ - title, - showBack: true, - titleColor: 'blue', - actions: [ - { - type: 'icon', - icon: Settings, - onClick: () => console.log('Settings'), - }, - ], - }), -}; - -export default UnifiedHeader; \ No newline at end of file diff --git a/Cunkebao/src/components/UpdateNotification/index.tsx b/Cunkebao/src/components/UpdateNotification/index.tsx new file mode 100644 index 00000000..371b3d8a --- /dev/null +++ b/Cunkebao/src/components/UpdateNotification/index.tsx @@ -0,0 +1,180 @@ +import React, { useState, useEffect } from "react"; +import { Button } from "antd-mobile"; +import { updateChecker } from "@/utils/updateChecker"; +import { + ReloadOutlined, + CloudDownloadOutlined, + RocketOutlined, +} from "@ant-design/icons"; + +interface UpdateNotificationProps { + position?: "top" | "bottom"; + autoReload?: boolean; + showToast?: boolean; +} + +const UpdateNotification: React.FC = ({ + position = "top", + autoReload = false, + showToast = true, +}) => { + const [hasUpdate, setHasUpdate] = useState(false); + const [isVisible, setIsVisible] = useState(false); + + useEffect(() => { + // 注册更新检测回调 + const handleUpdate = (info: { hasUpdate: boolean }) => { + if (info.hasUpdate) { + setHasUpdate(true); + setIsVisible(true); + + if (autoReload) { + // 自动刷新 + setTimeout(() => { + updateChecker.forceReload(); + }, 3000); + } + } + }; + + updateChecker.onUpdate(handleUpdate); + + // 启动更新检测 + updateChecker.start(); + + return () => { + updateChecker.offUpdate(handleUpdate); + updateChecker.stop(); + }; + }, [autoReload, showToast]); + const handleReload = () => { + updateChecker.forceReload(); + }; + + if (!isVisible || !hasUpdate) { + return null; + } + + return ( +
+ {/* 背景装饰 */} +
+ +
+ + {/* 主要内容 */} +
+ {/* 图标 */} +
+ +
+ + {/* 标题 */} +
+ 发现新版本 +
+ + {/* 描述 */} +
+ 为了给您提供更好的体验,请更新到最新版本 +
+ + {/* 更新按钮 */} + + + {/* 提示文字 */} +
+ 更新将自动重启应用 +
+
+ + {/* 动画样式 */} + +
+ ); +}; + +export default UpdateNotification; diff --git a/Cunkebao/src/components/Upload/AvatarUpload/index.module.scss b/Cunkebao/src/components/Upload/AvatarUpload/index.module.scss new file mode 100644 index 00000000..abec0b86 --- /dev/null +++ b/Cunkebao/src/components/Upload/AvatarUpload/index.module.scss @@ -0,0 +1,484 @@ +.uploadContainer { + width: 100%; + + // 自定义上传组件样式 + :global { + .adm-image-uploader { + .adm-image-uploader-upload-button { + width: 100px; + height: 100px; + border: 1px dashed #d9d9d9; + border-radius: 8px; + background: #fafafa; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + transition: all 0.3s; + + &:hover { + border-color: #1677ff; + background: #f0f8ff; + } + + .adm-image-uploader-upload-button-icon { + font-size: 32px; + color: #999; + } + } + + .adm-image-uploader-item { + width: 100px; + height: 100px; + border-radius: 8px; + overflow: hidden; + position: relative; + + .adm-image-uploader-item-image { + width: 100%; + height: 100%; + object-fit: cover; + } + + .adm-image-uploader-item-delete { + position: absolute; + top: 4px; + right: 4px; + width: 24px; + height: 24px; + background: rgba(0, 0, 0, 0.6); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + color: white; + font-size: 14px; + cursor: pointer; + } + + .adm-image-uploader-item-loading { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(255, 255, 255, 0.8); + display: flex; + align-items: center; + justify-content: center; + } + } + } + } +} + +// 禁用状态 +.uploadContainer.disabled { + opacity: 0.6; + pointer-events: none; +} + +// 错误状态 +.uploadContainer.error { + :global { + .adm-image-uploader-upload-button { + border-color: #ff4d4f; + background: #fff2f0; + } + } +} + +// 响应式设计 +@media (max-width: 768px) { + .uploadContainer { + :global { + .adm-image-uploader { + .adm-image-uploader-upload-button, + .adm-image-uploader-item { + width: 80px; + height: 80px; + } + + .adm-image-uploader-upload-button-icon { + font-size: 28px; + } + } + } + } +} + +// 头像上传组件样式 +.avatarUploadContainer { + display: flex; + flex-direction: column; + align-items: center; + gap: 12px; + + .avatarWrapper { + position: relative; + border-radius: 50%; + overflow: hidden; + background: #f0f0f0; + border: 2px solid #e0e0e0; + cursor: pointer; + transition: all 0.3s ease; + + &:hover { + border-color: var(--primary-color); + box-shadow: 0 4px 12px rgba(24, 142, 238, 0.3); + } + + .avatarImage { + width: 100%; + height: 100%; + object-fit: cover; + } + + .avatarPlaceholder { + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + font-size: 40px; + } + + .avatarUploadOverlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.5); + display: flex; + align-items: center; + justify-content: center; + color: white; + font-size: 24px; + opacity: 0; + transition: opacity 0.3s ease; + + &:hover { + opacity: 1; + } + + .uploadLoading { + font-size: 12px; + text-align: center; + line-height: 1.4; + } + } + + .avatarDeleteBtn { + position: absolute; + top: -8px; + right: -8px; + width: 24px; + height: 24px; + background: #ff4d4f; + color: white; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-size: 16px; + font-weight: bold; + cursor: pointer; + transition: all 0.3s ease; + z-index: 10; + + &:hover { + background: #ff7875; + transform: scale(1.1); + } + } + + &:hover .avatarUploadOverlay { + opacity: 1; + } + } + + .avatarTip { + font-size: 12px; + color: #999; + text-align: center; + line-height: 1.4; + max-width: 200px; + } +} + +// 视频上传组件样式 +.videoUploadContainer { + width: 100%; + + .videoUploadButton { + width: 100%; + min-height: 120px; + border: 2px dashed #d9d9d9; + border-radius: 12px; + background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%); + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + transition: all 0.3s ease; + position: relative; + overflow: hidden; + + &:hover { + border-color: #1890ff; + background: linear-gradient(135deg, #f0f8ff 0%, #e6f7ff 100%); + transform: translateY(-2px); + box-shadow: 0 8px 25px rgba(24, 144, 255, 0.15); + } + + &:active { + transform: translateY(0); + } + + .uploadingContainer { + display: flex; + flex-direction: column; + align-items: center; + gap: 12px; + width: 100%; + padding: 20px; + + .uploadingIcon { + font-size: 32px; + color: #1890ff; + animation: pulse 2s infinite; + } + + .uploadingText { + font-size: 14px; + color: #666; + font-weight: 500; + } + + .uploadProgress { + width: 100%; + max-width: 200px; + } + } + + .uploadContent { + display: flex; + flex-direction: column; + align-items: center; + gap: 12px; + padding: 20px; + text-align: center; + + .uploadIcon { + font-size: 48px; + color: #1890ff; + transition: all 0.3s ease; + } + + .uploadText { + .uploadTitle { + font-size: 16px; + font-weight: 600; + color: #333; + margin-bottom: 4px; + } + + .uploadSubtitle { + font-size: 12px; + color: #666; + line-height: 1.4; + } + } + + &:hover .uploadIcon { + transform: scale(1.1); + color: #40a9ff; + } + } + } + + .videoItem { + width: 100%; + background: #fff; + border: 1px solid #f0f0f0; + border-radius: 8px; + padding: 12px; + margin-bottom: 8px; + transition: all 0.3s ease; + + &:hover { + border-color: #1890ff; + box-shadow: 0 4px 12px rgba(24, 144, 255, 0.1); + } + + .videoItemContent { + display: flex; + align-items: center; + gap: 12px; + + .videoIcon { + width: 40px; + height: 40px; + background: linear-gradient(135deg, #1890ff 0%, #40a9ff 100%); + border-radius: 8px; + display: flex; + align-items: center; + justify-content: center; + color: white; + font-size: 18px; + flex-shrink: 0; + } + + .videoInfo { + flex: 1; + min-width: 0; + + .videoName { + font-size: 14px; + font-weight: 500; + color: #333; + margin-bottom: 4px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + .videoSize { + font-size: 12px; + color: #666; + } + } + + .videoActions { + display: flex; + gap: 4px; + flex-shrink: 0; + + .previewBtn, + .deleteBtn { + padding: 4px 8px; + border-radius: 6px; + transition: all 0.3s ease; + + &:hover { + background: #f5f5f5; + } + } + + .previewBtn { + color: #1890ff; + + &:hover { + color: #40a9ff; + background: #e6f7ff; + } + } + + .deleteBtn { + color: #ff4d4f; + + &:hover { + color: #ff7875; + background: #fff2f0; + } + } + } + } + + .itemProgress { + margin-top: 8px; + } + } + + .videoPreview { + display: flex; + justify-content: center; + align-items: center; + background: #000; + border-radius: 8px; + overflow: hidden; + + video { + border-radius: 8px; + } + } +} + +// 动画效果 +@keyframes pulse { + 0% { + transform: scale(1); + } + 50% { + transform: scale(1.1); + } + 100% { + transform: scale(1); + } +} + +// 暗色主题支持 +@media (prefers-color-scheme: dark) { + .videoUploadContainer { + .videoUploadButton { + background: linear-gradient(135deg, #2a2a2a 0%, #1f1f1f 100%); + border-color: #434343; + + &:hover { + background: linear-gradient(135deg, #1a365d 0%, #2d3748 100%); + border-color: #40a9ff; + } + + .uploadingContainer { + .uploadingText { + color: #ccc; + } + } + + .uploadContent { + .uploadText { + .uploadTitle { + color: #fff; + } + + .uploadSubtitle { + color: #ccc; + } + } + } + } + + .videoItem { + background: #2a2a2a; + border-color: #434343; + + &:hover { + border-color: #40a9ff; + } + + .videoItemContent { + .videoInfo { + .videoName { + color: #fff; + } + + .videoSize { + color: #ccc; + } + } + + .videoActions { + .previewBtn, + .deleteBtn { + &:hover { + background: #434343; + } + } + } + } + } + } +} diff --git a/Cunkebao/src/components/Upload/AvatarUpload/index.tsx b/Cunkebao/src/components/Upload/AvatarUpload/index.tsx new file mode 100644 index 00000000..6c696375 --- /dev/null +++ b/Cunkebao/src/components/Upload/AvatarUpload/index.tsx @@ -0,0 +1,188 @@ +import React, { useState, useEffect } from "react"; +import { Toast, Dialog } from "antd-mobile"; +import { UserOutlined, CameraOutlined } from "@ant-design/icons"; +import style from "./index.module.scss"; + +interface AvatarUploadProps { + value?: string; + onChange?: (url: string) => void; + disabled?: boolean; + className?: string; + size?: number; // 头像尺寸 +} + +const AvatarUpload: React.FC = ({ + value = "", + onChange, + disabled = false, + className, + size = 100, +}) => { + const [uploading, setUploading] = useState(false); + const [avatarUrl, setAvatarUrl] = useState(value); + + useEffect(() => { + setAvatarUrl(value); + }, [value]); + + // 文件验证 + const beforeUpload = (file: File) => { + // 检查文件类型 + const isValidType = file.type.startsWith("image/"); + if (!isValidType) { + Toast.show("只能上传图片文件!"); + return null; + } + + // 检查文件大小 (5MB) + const isLt5M = file.size / 1024 / 1024 < 5; + if (!isLt5M) { + Toast.show("图片大小不能超过5MB!"); + return null; + } + + return file; + }; + + // 上传函数 + const upload = async (file: File): Promise<{ url: string }> => { + const formData = new FormData(); + formData.append("file", file); + + try { + const response = await fetch( + `${import.meta.env.VITE_API_BASE_URL}/v1/attachment/upload`, + { + method: "POST", + headers: { + Authorization: `Bearer ${localStorage.getItem("token")}`, + }, + body: formData, + }, + ); + + if (!response.ok) { + throw new Error("上传失败"); + } + + const result = await response.json(); + + if (result.code === 200) { + Toast.show("头像上传成功"); + // 确保返回的是字符串URL + let url = ""; + if (typeof result.data === "string") { + url = result.data; + } else if (result.data && typeof result.data === "object") { + url = result.data.url || ""; + } + return { url }; + } else { + throw new Error(result.msg || "上传失败"); + } + } catch (error) { + Toast.show("头像上传失败,请重试"); + throw error; + } + }; + + // 处理头像上传 + const handleAvatarChange = async (e: React.ChangeEvent) => { + const file = e.target.files?.[0]; + if (!file || disabled || uploading) return; + + const validatedFile = beforeUpload(file); + if (!validatedFile) return; + + setUploading(true); + try { + const result = await upload(validatedFile); + setAvatarUrl(result.url); + onChange?.(result.url); + } catch (error) { + console.error("头像上传失败:", error); + } finally { + setUploading(false); + } + }; + + // 删除头像 + const handleDelete = () => { + return Dialog.confirm({ + content: "确定要删除头像吗?", + onConfirm: () => { + setAvatarUrl(""); + onChange?.(""); + Toast.show("头像已删除"); + }, + }); + }; + + return ( +
+
+ {avatarUrl ? ( + 头像 + ) : ( +
+ +
+ )} + + {/* 上传覆盖层 */} +
+ !disabled && !uploading && fileInputRef.current?.click() + } + > + {uploading ? ( +
上传中...
+ ) : ( + + )} +
+ + {/* 删除按钮 */} + {avatarUrl && !disabled && ( +
+ × +
+ )} +
+ + {/* 隐藏的文件输入 */} + + + {/* 提示文字 */} +
+ {uploading + ? "正在上传头像..." + : "点击头像可更换,支持JPG、PNG格式,大小不超过5MB"} +
+
+ ); +}; + +// 创建 ref +const fileInputRef = React.createRef(); + +export default AvatarUpload; diff --git a/Cunkebao/src/components/Upload/ChatFileUpload/example.tsx b/Cunkebao/src/components/Upload/ChatFileUpload/example.tsx new file mode 100644 index 00000000..9795e00b --- /dev/null +++ b/Cunkebao/src/components/Upload/ChatFileUpload/example.tsx @@ -0,0 +1,254 @@ +import React, { useState } from "react"; +import { Input, Button, Card, Space, Typography, Divider } from "antd"; +import { SendOutlined } from "@ant-design/icons"; +import ChatFileUpload from "./index"; + +const { TextArea } = Input; +const { Text } = Typography; + +interface ChatMessage { + id: string; + type: "text" | "file"; + content: string; + timestamp: Date; + fileInfo?: { + url: string; + name: string; + type: string; + size: number; + }; +} + +const ChatFileUploadExample: React.FC = () => { + const [messages, setMessages] = useState([]); + const [inputValue, setInputValue] = useState(""); + + // 处理文件上传 + const handleFileUploaded = (fileInfo: { + url: string; + name: string; + type: string; + size: number; + }) => { + const newMessage: ChatMessage = { + id: Date.now().toString(), + type: "file", + content: `文件: ${fileInfo.name}`, + timestamp: new Date(), + fileInfo, + }; + + setMessages(prev => [...prev, newMessage]); + }; + + // 处理文本发送 + const handleSendText = () => { + if (!inputValue.trim()) return; + + const newMessage: ChatMessage = { + id: Date.now().toString(), + type: "text", + content: inputValue, + timestamp: new Date(), + }; + + setMessages(prev => [...prev, newMessage]); + setInputValue(""); + }; + + // 格式化文件大小 + const formatFileSize = (bytes: number) => { + if (bytes === 0) return "0 B"; + const k = 1024; + const sizes = ["B", "KB", "MB", "GB"]; + const i = Math.floor(Math.log(bytes) / Math.log(k)); + return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + " " + sizes[i]; + }; + + // 获取文件类型图标 + const getFileTypeIcon = (type: string, name: string) => { + const lowerType = type.toLowerCase(); + const lowerName = name.toLowerCase(); + + if (lowerType.startsWith("image/")) { + return "🖼️"; + } else if (lowerType.startsWith("video/")) { + return "🎥"; + } else if (lowerType.startsWith("audio/")) { + return "🎵"; + } else if (lowerType === "application/pdf") { + return "📄"; + } else if (lowerName.endsWith(".doc") || lowerName.endsWith(".docx")) { + return "📝"; + } else if (lowerName.endsWith(".xls") || lowerName.endsWith(".xlsx")) { + return "📊"; + } else if (lowerName.endsWith(".ppt") || lowerName.endsWith(".pptx")) { + return "📈"; + } else { + return "📎"; + } + }; + + return ( +
+ + + 功能特点: +
    +
  • 点击文件按钮直接唤醒文件选择框
  • +
  • 选择文件后自动上传
  • +
  • 上传成功后自动发送到聊天框
  • +
  • 支持各种文件类型和大小限制
  • +
  • 显示文件图标和大小信息
  • +
+
+
+ + {/* 聊天消息区域 */} + + {messages.length === 0 ? ( +
+ 暂无消息,开始聊天吧! +
+ ) : ( +
+ )} + + + {/* 输入区域 */} + + +

4P1dmVh3va& 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 z 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